-app/lib/perl5/*
-website/lib/vendor/*
\ No newline at end of file
+OLD/
{
- "intelephense.environment.includePaths": ["D:/Workspace/ledf_lu/website/lib/vendor"]
+"es6-css-minify.minifyOnSave": "no",
+"git.ignoreLimitWarning": true,
+"tidyHtml.formatOnSave": false,
+"tidyHtml.optionsTidy": {
+ "indent-attributes": falss,
+ "tab-size":2,
+ "indent":true,
+ "show-body-only":false,
+ "fix-uri": false,
+ "newline":"LF",
+ "drop-empty-elements": false,
+ "hide-comments": false,
+}
+
}
\ No newline at end of file
--- /dev/null
+
+[
+ {
+ "name": "ledf-sftp",
+ "protocol": "sftp",
+ "port": 22,
+ "secure": true,
+ "context": "public_html/",
+ "host": "dedi1781.your-server.de",
+ "username": "ledfxg",
+ "password": "3H0HTd8B88iKZ2WU",
+ "remotePath": "/public_html/"
+}
+]
+++ /dev/null
-RewriteEngine on
-
-DirectoryIndex index.cgi index.html
-AddHandler cgi-script .cgi
-#RewriteBase /
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
-
-RewriteRule "^(.*)$" "index.cgi" [NC,L,QSA]
\ No newline at end of file
+++ /dev/null
-#!/usr/local/bin/perl
-
-use strict;
-use FindBin qw/$Bin $RealBin/;
-use lib ($RealBin.'/lib/perl5');
-use lib ($RealBin.'/lib');
-use lib ($RealBin.'/backoffice/lib/perl5');
-use lib ($RealBin.'/backoffice/lib');
-use CGI;
-use CGI::Cookie;
-#use CGI::Carp qw/fatalsToBrowser/;
-use File::Basename;
-use JSON::PP;
-
-use dksconfig qw/$sitecfg/;
-use dksdb;
-
-use session;
-use sendemail;
-my $cgi = new CGI();
-my $scriptpath = $cgi->url(-absolute => 1);
-my $p = ();
-my @params = $cgi->param();
-foreach my $pe (@params){
- $p->{$pe} = $cgi->param($pe);
-}
-my $html->{result} = ();
-$p->{sid} = $cgi->cookie($sitecfg->{cookiename});
-my $se = session->new();
-my $sess = $se->getsession($p->{sid});
-print $cgi->header(-type=>"application/json", -charset => "utf-8");
-if ($sess == undef){
- $html->{error} = "No Authorisation";
- print JSON::PP::encode_json($html);
- exit(0);
-}
-# $html->{p} = $p;
-# $html->{sess} =$sess;
-#my $datapath = $ENV{"DOCUMENT_ROOT"}.dirname(dirname($scriptpath)).'/data/';
-if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
-
- my @params = $cgi->param();
- foreach my $pp (@params){
- $p->{$pp} = $cgi->param($pp);
- }
-
- if (exists($p->{fn})){
-
- my $db = dksdb->new();
- if ($p->{fn} eq "savefield"){
- # $html->{p} = $p;
- $html->{result}->{ident} = $p->{ident};
- delete $p->{ident};
- delete $p->{fn};
- delete $p->{sid};
- my $dd = ();
- my $retid=undef;
- my $type = "upd";
- foreach my $px (keys(%{$p})){
- $html->{result}->{datafield} = $px;
-
- if (($px =~ /\_id$/) && ($p->{$px} eq "")){
- $type = "ins";
- }
- }
- my @sql = ();
- if ($type eq "ins"){
- @sql = $db->create_ddl_insert($p);
- }
- else {
- @sql = $db->create_ddl_update($p);
- }
- #$html->{result}->{sql} = \@sql;
- foreach my $s (@sql){
- $retid= $db->dbquerysorted($s);
- }
- $html->{result}->{id} = $retid->{0};
- #$p->{table},#$p->{field},$p->{value},$p->{id},$p->{type}
- }
-
- elsif ($p->{fn} eq "saveform"){
- #
- $html->{p} = $p;
- $html->{result}->{ident} = $p->{ident};
- delete $p->{ident};
- delete $p->{fn};
- delete $p->{sid};
- my $retid=undef;
- my $type = "upd";
- foreach my $px (keys(%{$p})){
- $html->{result}->{datafield} = $px;
- if (($px =~ /\_id$/) && ($p->{$px} eq "")){
- $type = "ins";
- delete $p->{$px};
- }
-
- }
- my @sql = ();
- if ($type eq "ins"){
- @sql = $db->create_ddl_insert($p);
- }
- else {
- @sql = $db->create_ddl_update($p);
- }
- #$html->{sql} = \@sql;
- foreach my $s (@sql){
- #if ($type eq "ins"){
- $retid= $db->dbquerysorted($s);
- #}else {
-
- #}
-
- }
- $html->{result} = $retid->{0};
- #$p->{table},#$p->{field},$p->{value},$p->{id},$p->{type}
- }
- elsif($p->{fn} eq "deleterow"){
- delete $p->{fn};
- delete $p->{sid};
- my $retid = undef;
- my @sql = $db->create_ddl_delete($p);
- foreach my $s (@sql){
- $retid= $db->dbexec($s);
- }
- $html->{result}->{id} = $retid->{0};
- }
- elsif($p->{fn} eq "savepassword"){
- if ((length($p->{pwd}) > 7) && ($p->{pwd} =~ /\d/) && ($p->{pwd} =~ /[a-z]/) && ($p->{pwd} =~ /[A-Z]/) ){
- $se->savepassword($sess->{id},$p->{pwd});
- $html->{result} = "OK";
- }else {
- $html->{result} = "NOT OK";
- }
-
- }
- elsif ($p->{fn} eq "sendmailvcode"){
- my $vcode = $se->randomstring(6);
- $vcode = lc($vcode);
- $db->dbexec("UPDATE users set vcode='".$vcode."' where id=".$sess->{id}.";");
- my $eml = sendemail->new();
- my $mret = $eml->sendemail('user_verification',$sess->{id},$p->{mail},{vcode => $vcode},undef);
- if ($mret == 0){
- $html->{result}->{vcode} = $vcode;
- } else {
- $html->{result}->{vcode} = $vcode;
- $html->{result}->{error} = $mret;
- }
- }
- elsif ($p->{fn} eq "savenewemail"){
- $db->dbexec("update users set username='".$p->{email}."' where id=".$sess->{id}." and vcode='".$p->{vcode}."';");
- $html->{result} = "OK";
- }
- elsif($p->{fn} eq "getsitemedia"){
- my $path = dirname(dirname($0)).'/img';
- }
- }
-
-}
-print JSON::PP::encode_json($html);
+++ /dev/null
-#!/usr/local/bin/perl
-
-use strict;
-use FindBin qw/$Bin $RealBin/;
-use lib ($RealBin.'/lib/perl5');
-use lib ($RealBin.'/lib');
-use lib ($RealBin.'/backoffice/lib/perl5');
-use lib ($RealBin.'/backoffice/lib');
-use CGI;
-use CGI::Cookie;
-# use CGI::Carp qw/fatalsToBrowser/;
-use File::Basename;
-use JSON::PP;
-
-use dksconfig qw/$sitecfg/;
-use dksdb;
-
-use session;
-#use sendemail;
-my $cgi = new CGI();
-my $scriptpath = $cgi->url(-absolute => 1);
-my $p = ();
-my @params = $cgi->param();
-foreach my $pe (@params){
- $p->{$pe} = $cgi->param($pe);
-}
-my $html->{result} = ();
-$p->{sid} = $cgi->cookie($sitecfg->{cookiename});
-my $se = session->new();
-my $sess = $se->getsession($p->{sid});
-print $cgi->header(-type=>"application/json", -charset => "utf-8");
-if ($sess == undef){
- $html->{error} = "No Authorisation";
- print JSON::PP::encode_json($html);
- exit(0);
-}
-# $html->{p} = $p;
-# $html->{sess} =$sess;
-#my $datapath = $ENV{"DOCUMENT_ROOT"}.dirname(dirname($scriptpath)).'/data/';
-if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
-
- my @params = $cgi->param();
- foreach my $pp (@params){
- $p->{$pp} = $cgi->param($pp);
- }
- my $db = dksdb->new();
- if (exists($p->{get})){
- my $sql = "select * from vw_".$p->{get};
- if (exists($p->{fields}) ){
- $sql = "select ".$p->{fields}." from vw_".$p->{get};
- }
- if (exists($p->{filter})){
- $sql .= " WHERE ".$p->{filter}.";";
- }
- $html->{result}->{sqldata} = $db->dbqueryarray($sql);
- }
- elsif (exists($p->{set})){
- my $type = "ins";
- foreach my $x (keys(%{$p})){
- if (($x =~ /^ident_/) && ($p->{$x} ne "")){
- $type = "upd";
- last;
- }
- }
- my $x = $p;
- delete $x->{sid};
- delete $x->{set};
- my @sql = ();
- #$html->{result}->{params} = $x;
- if ($type eq "ins"){
- @sql = $db->create_ddl_insert($x);
- }else {
- @sql = $db->create_ddl_update($x);
- }
- if (scalar(@sql) > 0 ){
- my $rid = $db->dbquerysorted($sql[0]);
- if (keys(%{$rid}) > 0 ){
- $html->{result} = $rid->{0};
- }
- }
- #$html->{result}->{sql} = $sql[0];
- }
- elsif (exists($p->{fn})){
- my $x = $p;
- my $fn = $p->{fn};
- my $sql = "select * from ".$p->{fn}.'('.$p->{params}.');';
- # open FILE,">>tmp/sql.log";
- # print FILE "\n=db.cgi fn=\n$sql\n==\n";
- # close FILE;
- $html->{result} = $db->dbquerysorted($sql);
- # $html->{result}->{sql} = $sql;
- }
- elsif (exists($p->{del})){
- my $x = $p;
- delete $x->{sid};
- delete $x->{del};
- my @sql = $db->create_ddl_delete($x);
- if (scalar(@sql) > 0 ){
- my $rid = $db->dbexec($sql[0]);
- if (keys(%{$rid}) > 0 ){
- $html->{result} = $rid->{0};
- }
- }
- }
-}
-print JSON::PP::encode_json($html);
-# for my $e ( keys %ENV ) {
-# print "$e: $ENV{$e}<br/>";
-# }
\ No newline at end of file
+++ /dev/null
-#!/usr/local/bin/perl
-
-use strict;
-use FindBin qw/$Bin $RealBin/;
-use lib ($RealBin.'/lib/perl5');
-use lib ($RealBin.'/lib');
-use lib ($RealBin.'/backoffice/lib/perl5');
-use lib ($RealBin.'/backoffice/lib');
-use CGI;
-use CGI::Cookie;
-# use CGI::Carp qw/fatalsToBrowser/;
-use File::Basename;
-use File::Path qw/make_path/;
-use JSON::PP;
-use Image::Size;
-use dksconfig qw/$sitecfg/;
-use dksdb;
-
-use session;
-#use sendemail;
-my $cgi = new CGI();
-my $scriptpath = $cgi->url(-absolute => 1);
-my $p = ();
-my @params = $cgi->param();
-foreach my $pe (@params){
- $p->{$pe} = $cgi->param($pe);
-}
-# if ($sitecfg->{basepath} ne "/"){
-#$sitecfg->{docroot} = $sitecfg->{docroot}.substr($sitecfg->{basepath},0,index($sitecfg->{basepath},'backoffice')-1);
-# }
-my $html->{result} = ();
-$p->{sid} = $cgi->cookie($sitecfg->{cookiename});
-my $se = session->new();
-my $sess = $se->getsession($p->{sid});
-
-if ($sess == undef){
- print $cgi->header(-status => 404, -type=>"text/html", -charset => "utf-8");
- print "<h1>Du bass nët Authentifizéiert</h1>";
- exit(0);
-}
-#$html->{docroot} = $sitecfg->{docroot};
-# $html->{basepath} = $sitecfg->{basepath};
-if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
- if (exists($p->{file}) && $p->{file} ne ""){
- my $db = dksdb->new();
- my $filedata = $db->dbquerysorted("select * from documents where id='".$p->{file}."';");
- if (keys(%{$filedata}) > 0){
- if ($filedata->{0}->{filedata} ne ""){
- print $cgi->header(
- -type => $filedata->{0}->{mimetype},
- -target => $filedata->{0}->{filename},
- -attachment => $filedata->{0}->{filename}
- );
- my $rawdata = MIME::Base64::decode_base64($filedata->{0}->{filedata});
- print $rawdata;
- }
- else {
- print $cgi->header(-status => 404, -type=>"text/html", -charset => "utf-8");
- print "<h1>Deen gefroten Fichier existéiert nët!</h1>";
- }
-
- exit(0);
- }
- } else {
- print $cgi->header(-status => 404, -type=>"text/html", -charset => "utf-8");
- print "<h1>Deen gefroten Fichier existéiert nët!</h1>";
- exit(0)
- }
- # if (exists($p->{list}) && -d ){
- # if (exists($p->{folder})){
-
- # $p->{folder} =~ s/\.\.\///g;
- # my $cpath = $sitecfg->{docroot}.'/'.$p->{folder};
- # my @items = ();
- # my $up = ();
- # # if (index($p->{folder},'/') > 0){
- # # $up->{type} = "dir";
- # # $up->{name} = "..";
- # # $up->{sitepath} = $p->{folder};
- # # $up->{path} = $p->{folder};
- # # $up->{mimtype} = 'directory';
- # # $up->{size} = '';
- # # $up->{dimension};
- # # $up->{thumb} = '<img src="../../img/icons/file/dir.png" style="height:48px;"/>';
- # # push (@items,$up);
- # # }
- # opendir(DIR,$cpath);
-
- # while (my $d = readdir(DIR)){
- # if ($d =~ /^\./){ next; }
- # if ($d eq "thb"){ next; }
- # my $e = ();
- # if (-d $cpath.'/'.$d){
- # $e->{type} = "dir";
- # $e->{name} = $d;
- # $e->{sitepath} = $p->{folder}.'/'.$d;
- # $e->{path} = $p->{folder}.'/'.$d;
- # $e->{mimtype} = 'directory';
- # $e->{size} = '';
-
- # my $cmd = 'find "'.$cpath.'/'.$d.'" -type f | grep -v \'/thb/\' | wc -l';
- # my $dim = `$cmd`;
- # chomp($dim);
- # $e->{dimension} = $dim;
-
- # $e->{thumb} = '<img src="../../img/icons/file/dir.png" style="height:48px;"/>';
- # }
- # if (-f $cpath.'/'.$d){
- # my $cmd = 'file -i "'.$cpath.'/'.$d.'" | awk -F": " \'{ print $2 }\' | awk -F";" \'{ print $1 }\'';
- # my $mt = `$cmd`;
- # chomp($mt);
- # #if (($mt !~ /^image/ ) || ($mt !~ /^application\/pdf/ )) { next; }
- # if (($mt =~ /^image/ ) || ($mt !~ /^application\/pdf/ )) {
- # if (! -f $cpath.'/thb/'.$d.'.thb.png'){
- # if (! -d $cpath.'/thb'){
- # make_path($cpath.'/thb');
- # }
- # system('convert -thumbnail x96 -background white -alpha remove "'.$cpath.'/'.$d.'" "'.$cpath.'/thb/'.$d.'.thb.png"');
- # }
- # if ($mt =~ /^image/ ){
- # my ($ix, $iy) = imgsize($cpath.'/'.$d);
- # $e->{dimension} = $ix."x".$iy;
- # }
- # }
- # my @st = stat($cpath.'/'.$d);
- # $e->{type} = "file";
- # $e->{mimetype} = $mt;
- # my $s = $st[7];
- # my $hrs ="";
- # if ($s > 1000000024){
- # $s = $s/1024;
- # $s = $s/1024;
- # $s = $s/1024;
- # ($hrs) = $s =~ m/^(\d+\.\d\d).*/;
- # $hrs = $hrs." GB";
- # } elsif ($s > 1000024){
- # $s = $s/1024;
- # $s = $s/1024;
- # ($hrs) = $s =~ m/^(\d+\.\d\d).*/;
- # $hrs = $hrs." MB";
- # } elsif ($s > 1024){
- # $s = $s/1024;
- # ($hrs) = $s =~ m/^(\d+\.\d\d).*/;
- # $hrs = $hrs." KB";
- # } else {
- # $hrs = $s." B";
- # }
- # $e->{hrsize} = $hrs;
- # $e->{size} = $st[7];
- # $e->{name} = $d;
- # $e->{sitepath} = $p->{folder}.'/'.$d;
- # $e->{thumb} = '<img src="../../../'.$p->{folder}.'/thb/'.$d.'.thb.png" style="height: 48px;" />';
- # $e->{path} = '../../../'.$p->{folder}.'/'.$d;
- # }
- # push (@items,$e);
- # }
- # closedir(DIR);
- # $html->{result} = \@items;
-
- # }
- # }
-
-}
-
+++ /dev/null
-#!/usr/local/bin/perl
-
-use strict;
-use FindBin qw/$Bin $RealBin/;
-use lib ($RealBin.'/lib/perl5');
-use lib ($RealBin.'/lib');
-use lib ($RealBin.'/backoffice/lib/perl5');
-use lib ($RealBin.'/backoffice/lib');
-use File::Basename qw/dirname basename/;
-use Template;
-# use Template::Constants qw( :debug );
-use CGI;
-#use CGI::Carp qw(fatalsToBrowser);
-use CGI::Cookie;
-use Data::Dumper;
-use JSON::PP;
-
-use dksconfig qw/$sitecfg/;
-use session;
-
-my $skl = "index.tt";
-my $cgi = new CGI();
-my $p=();
-my $cookie;
-my $vars = $sitecfg;
-$vars->{page} = "index.html";
-$vars->{filepath} = substr($cgi->url({-absolute=>1}),length($vars->{basepath})+1);
-# $vars->{baseurl} = $cgi->url({-base=>1}).$vars->{basepath};
-if ($vars->{filepath} eq ""){
- $vars->{filepath} = "index.html";
-}
-if ($vars->{basepath} eq "/"){
- $vars->{siteurl} = $cgi->url({-base=>1});
-}else {
- $vars->{siteurl} = $cgi->url({-base=>1}).dirname($vars->{basepath});
- #$vars->{docroot} = $vars->{docroot}.dirname($vars->{basepath});
- #$vars->{sitepath} = dirname($vars->{basepath});
-}
-
-
-if ($vars->{filepath} ne ""){
- $vars->{suffix} = substr($vars->{filepath},rindex($vars->{filepath},'.'));
- $vars->{page} = $vars->{filepath};
- $vars->{page} =~ s/html$/tt/;
-}
-$vars->{abspath} = "";
-
-my $sess = ();
-my $se = session->new();
-$p->{sid} = $cgi->cookie($vars->{cookiename});
-# if ($cgi->request_method() eq "GET"){
-# my @params = $cgi->param();
-# foreach my $pp (@params){
-# $p->{$pp} = $cgi->param($pp);
-# }
-
-# }
-
-if ($cgi->request_method() eq "POST"){
-
- my @params = $cgi->param();
- foreach my $pp (@params){
- $p->{$pp} = $cgi->param($pp);
- }
- $vars->{hasposts} = $p;
- if (exists($p->{'btnlogin'})){
- my $ret = $se->checklogin($p->{login},$p->{password});
- if ($ret->{sid} ne ""){
- $p->{sid} = $ret->{sid};
- $cookie = CGI::Cookie->new(-name=>$vars->{cookiename},-value=>$p->{sid},-httponly => 1);
- }else {
- $vars->{message} = $ret->{message};
- $vars->{messagetype} = $ret->{messagetype};
- $vars->{page} = "message.tt";
- }
- }
- if (exists($p->{'btnregister'})){
-
- my $ret = $se->registeruser($p);
-
- $vars->{message} = $ret->{message};
- $vars->{messagetype} = $ret->{messagetype};
- $vars->{page} = $ret->{page};
- }
- if (exists($p->{'btnforgotpassword'})){
- my $ret = $se->passwordforgotten($p->{email});
- $vars->{message} = $ret->{message};
- $vars->{messagetype} = $ret->{messagetype};
- $vars->{page} = "message.tt";
- }
- if (exists($p->{'btnvalidateemail'})){
- my $ret = $se->validateaccount($p);
- $vars->{message} = $ret->{message};
- $vars->{messagetype} = $ret->{messagetype};
- $vars->{page} = "message.tt";
- }
- if (exists($p->{'btnresendcode'})){
- my $ret = $se->resendcode($p->{email});
- $vars->{message} = $ret->{message};
- $vars->{messagetype} = $ret->{messagetype};
- $vars->{page} = "message.tt";
- }
-
- if (exists($p->{logout})){
- $se->deletesession($p->{sid});
- $p->{sid} = "";
- $cookie = CGI::Cookie->new(-name=>$vars->{cookiename},-value=>"",-httponly => 1);
- }
- # if (exists($p->{btndeleteprofile})){
- # my $ret = $se->deleteprofile($p->{deleteprofile});
- # $vars->{message} = $ret->{message};
- # $vars->{messagetype} = $ret->{messagetype};
- # $vars->{page} = "message.tt";
- # if (exists($ret->{sid})){
- # $p->{sid} = "";
- # }
- # $cookie = CGI::Cookie->new(-name=>$vars->{cookiename},-value=>"",-httponly => 1);
- # }
-}
-
-if ($p->{sid} ne ""){
- $sess = $se->getsession($p->{sid});
-}
-
-
-#$vars->{beforex} = $vars->{page};
-if (!exists($sess->{id}) || (!exists($p->{sid})) || $p->{sid} eq ""){
- $skl = "login.tt";
-}
-# if ($vars->{page} eq "deleteprofile.tt") {
-# $skl = "skeleton/login.tt";
-# }
-# my ($appname) = $ENV{REQUEST_URI} =~ /.*\/module\/(\w+)\/.*/;
-if ($p->{sid} ne ""){
- $vars->{session} = $sess;
-}
-#SESSION - End
-# #BEGIN - Browser Blocking
-# if (($ENV{HTTP_USER_AGENT} !~ /Chrome/) || ($ENV{HTTP_USER_AGENT} =~ /Edge/) || ($ENV{HTTP_USER_AGENT} =~ /Firefox/)){
-# $skl = "skeleton/browser.tt";
-# }
-# #END - Browser Blocking
-my $ctype = 'text/html';
-if ($vars->{suffix} eq ".js"){
- $ctype= "text/javascript";
-} elsif ($vars->{suffix} eq ".css"){
- $ctype = "text/css";
-}
-print $cgi->header(-type=>$ctype, -charset=>"utf-8",-cookie => $cookie);
-# print dirname($ENV{"SCRIPT_FILENAME"});
-
-my $template = Template->new({INCLUDE_PATH => [$sitecfg->{tmplpath}]});
-#}
-
-my @lv = split(/\//,$vars->{filepath});
-my $absnum = scalar(@lv)-1;
-
-for (my $i=0;$i<$absnum;$i++){
- $vars->{abspath} .= "../";
-}
-if (($skl eq "index.tt") && ($vars->{page} eq "login.tt")){
- $vars->{page} = "index.tt";
-}
-# $vars->{page} = $vars->{page};
-if (-e $sitecfg->{tmplpath}.'/module/'.$vars->{page}){
- $vars->{page} = 'module/'.$vars->{page};
-}
-$vars->{pagename} = basename($vars->{page});
-$vars->{pagename} =~ s/\.tt$//;
-# my ($appname) = $ENV{REQUEST_URI} =~ /.*\/apps\/(\w+)\/.*/;
-#$vars->{requri} = $ENV{REQUEST_URI};
-
-if ($vars->{suffix} ne ".html"){
- $skl = "file.tt";
-}
-$vars->{params}= $p;
-$vars->{skl} = $skl;
-$vars->{lang} = "fr";
-
- $template->process($skl,$vars) || die "Template process failed: ", $template->error(), "\n";
-
- if ($vars->{page} =~ /\.tt/){
- print '<pre style="display: none;" >'.Dumper($vars)."<pre>";
- }
-
-
+++ /dev/null
-package dksconfig;
-
-use strict;
-use lib ('./lib/perl5');
-use lib ('./lib');
-use lib ('./');
-use File::Basename;
-use Exporter 'import';
-our @EXPORT_OK = qw($sitecfg);
-
-our $sitecfg ={
- cookiename => 'ledf',
- dbtype => 'PgPP',
- #dsn => 'DBI:PgPP:dbname=leedflu_db;host=DKS-LAPTOP.fritz.box',
- dsn => 'DBI:PgPP:dbname=ledf_db;host=sql12.your-server.de',
- dbuser => 'ledf_user',
- dbpassword => 'znWA9s3cgjEsRsWZ',
- page => 'index.tt',
- pagename => 'index',
- basepath => substr(dirname($0),length($ENV{"DOCUMENT_ROOT"})),
- datapath => dirname($0).'/data/',
- # docroot => $ENV{"DOCUMENT_ROOT"},
- registration_enabled => '0',
- default_group => 'users',
- sitename => 'LEDF',
- season => '2020-2021',
- season_id => 2,
- staticpath => 'static/',
- tmplpath => dirname($0).'/tmpl'
-};
-
-1;
\ No newline at end of file
+++ /dev/null
-package dksdb;
-
-use strict;
-use lib ('./lib/perl5');
-use lib ('./lib');
-use lib ('./');
-BEGIN { $ENV{DBI_PUREPERL} = 2 }
-use DBI;
-use File::Basename;
-
-use Digest::SHA::PurePerl qw(sha256_hex);
-use DBD::PgPP;
-use URI::Encode qw(uri_encode uri_decode);
-use Encode;
-use dksconfig qw($sitecfg);
-use Text::Unidecode;
-
-
-sub new {
- my $class = shift;
- my $p = shift;
- my $self = bless {}, $class;
- return $self;
-}
-
-sub securetext(){
- my $self = shift;
- my $text = shift;
- $text =~ s/'/''/g;
- return $text;
-}
-
-sub dbquery(){
- my $self = shift;
- my $stat = shift;
- # my $vw_info = shift;
- my $retdata = undef;
- my $dbh = DBI->connect($sitecfg->{dsn},$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>0,RaiseError=>0,AutoCommit=>1}) or return $retdata->{error} = "dbquery Connection Error!".$!;
- $stat = encode("utf8", $stat);
- # open FILE,">>tmp/sql.log";
- # print FILE "$stat\n";
- # close FILE;
- my $sth = $dbh->prepare($stat) or return $retdata->{error} = "dbquery".$dbh->errstr. "- SQL: ".$stat;;
-
-
- $sth->execute() or return $retdata->{error} = "dbquery: ".$sth->errstr;
-
- my $data = $sth->fetchrow_hashref();
- foreach my $k (keys %{$data}){
- $retdata->{$k} = decode("utf-8",$data->{$k});
- }
-
- $sth->finish();
- $dbh->disconnect();
-
- return $retdata;
-}
-
-sub dbquerybykey(){
- my $self = shift;
- my $key = shift;
- my $stat = shift;
- #my $retempty = shift;
- my $retdata =();
- my $dbh = DBI->connect($sitecfg->{dsn},$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>0,RaiseError=>0,AutoCommit=>1}) or return $retdata->{error} = "dbquery Connection Error!".$!;
- # $stat = encode("utf8", $stat);
-
- # open FILE,">>sql.log";
- # print FILE "$stat\n";
- # close FILE;
- my $sth = $dbh->prepare($stat) or return $retdata->{error} = "dbquery: ".$stat;
- $sth->execute() or return $retdata->{error} = "dbquery: ".$stat;
- while(my $data = $sth->fetchrow_hashref())
- {
- if (exists $data->{$key}){
- foreach my $k (keys %{$data}){
- #if ($k ne $key){
-
- $retdata->{$data->{$key}}{$k} =decode("utf-8",$data->{$k});
- #}
- }
- }
- }
- if (keys(%{$retdata}) == 0){
- $retdata =();
- }
- $sth->finish();
- $dbh->disconnect();
- return $retdata;
-}
-
-sub dbquerysorted(){
- my $self = shift;
- my $stat = shift;
- # my $vw_info = shift;
- my $retdata;
- my $dbh = DBI->connect($sitecfg->{dsn},$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>0,RaiseError=>0,AutoCommit=>1}) or return $retdata->{error} = "dbquery Connection Error!".$!;
- # $stat = encode("utf8", $stat);
- # open FILE,">>tmp/sql.log";
- # print FILE "\n==\n$stat\n==\n";
- # close FILE;
- my $sth = $dbh->prepare($stat) or return $retdata->{error} = "dbquerysorted ".$dbh->errstr. "- SQL: ".$stat;;
-
-
- $sth->execute() or return $retdata->{error} = "dbquerysorted: ".$sth->errstr;
- my $count = 0;
-
- while(my $data = $sth->fetchrow_hashref())
- {
- #$retdata->{$count} = $data;
- foreach my $k (keys %{$data}){
- $retdata->{$count}->{$k} = decode("utf-8",$data->{$k});
- }
- $count++;
- }
-
-# my $qstruct = ();
-# my $num_fields = $sth->{NUM_OF_FIELDS};
-
-# for ( my $i=0; $i< $num_fields; $i++ ) {
-# $qstruct->{$i}->{name} = $sth->{NAME}->[$i];
-# #$qstruct->{$i}->{type} = $sth->{COMMENT}->[$i];
-# #$qstruct->{$i}->{precision} = $sth->{PRECISION}->[$i];
-# }
-
- $sth->finish();
- $dbh->disconnect();
-
- return $retdata;
-}
-
-sub dbexec(){
- my $self = shift;
- my $stat = shift;
- my $retdata;
- my $dbh = DBI->connect($sitecfg->{dsn},$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>0,RaiseError=>0,AutoCommit=>1}) or return $retdata->{error} = "dbquery Connection Error!".$!;
- # $stat = decode("UTF-8", $stat);
- # open FILE,">>tmp/sql.log";
- # print FILE "\n==\n$stat\n==\n";
- # close FILE;
- my $sth = $dbh->prepare($stat) or return $retdata->{error} = "dbexec ".$dbh->errstr. "- SQL: ".$stat;;
- $retdata->{success} = $dbh->do($stat) or return $retdata->{error} = "dbexec ".$dbh->errstr. "- SQL: ".$stat;
- $dbh->disconnect();
- return $retdata;
-}
-
-sub dbqueryarray(){
- my $self = shift;
- my $stat = shift;
- my @retdata = ();
- my $dbh = DBI->connect($sitecfg->{dsn},$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>0,RaiseError=>0,AutoCommit=>1}) or return ({"error" => "dbqueryarray Connection Error!".$!});
- #$stat = encode("utf8", $stat);
- #open FILE,">>/tmp/sql.log";
- #print "$stat\n";
- # close FILE;
- my $sth = $dbh->prepare($stat);
-
- $sth->execute() or print "dbqueryarray: ".$sth->errstr;
- my $count = 0;
-
- while(my $data = $sth->fetchrow_hashref())
- {
- my $row = ();
- foreach my $k (keys %{$data}){
- $row->{$k} = decode("utf-8",$data->{$k});
- }
- push @retdata,$row;
- }
-
- $sth->finish();
- $dbh->disconnect();
- #%retdata = sort {$a <=> $b} keys %retdata;
- return \@retdata;
-}
-
-
-sub create_ddl_insert(){
- my $self = shift;
- my $data = shift;
- my $fields = ();
- my @ddl = ();
-
- foreach my $f (keys(%{$data})){
- if (($f =~ /\_/) && ($f !~ /^ident_/)){
- my $t = substr($f,0,index($f,"_"));
- my $c = substr($f,length($t)+1);
- #my ($t,$c) = $f =~ m/(.+)\_(.+)/;
- $fields->{$t}->{$c} = $data->{$f};
- } elsif ($f =~ /^ident_/){
- my $f2 = $f;
- $f2 =~ s/^ident_//;
-
- my $t = substr($f2,0,index($f2,"_"));
- my $c = substr($f2,length($t)+1);
- $fields->{$t}->{$c} = $data->{$f};
- }
-
- }
-
- foreach my $tb (keys(%{$fields})){
- my @sqlcol = ();
- my @sqlval = ();
- foreach my $c (keys(%{$fields->{$tb}})){
- my $v = $fields->{$tb}->{$c};
- $v =~ s/'/''/g;
- push (@sqlcol,$c);
- if ($v eq ''){
- $v = 'null';
- } else {
- $v = "'".$v."'";
- }
- push (@sqlval,$v);
- }
- push(@ddl,"INSERT INTO public.".$tb." (".join(",",@sqlcol).") VALUES (".join(",",@sqlval).") returning id;");
- }
- return @ddl;
-}
-
-sub create_ddl_insert_json(){
- my $self = shift;
- my $schema = shift;
- my $table = shift;
- my $columns = shift;
- my $data = shift;
- my @ddl = ();
- my @sqlcol = ();
- my @sqlval = ();
- foreach my $c (keys(%{$data})){
- #if (exists($columns->{$c})){
- push (@sqlcol,'"'.$c.'"');
- my $v = $data->{$c};
-
- if ($v eq ''){
- $v = 'null';
- }elsif ($v =~ /^data:.+;base64,/){
- $v =~ s/'/''/g;
- $v = "'".$v."'";
- }
- else {
- $v= uri_decode($v);
- $v =~ s/'/''/g;
- if ($columns->{$c}->{data_type} eq "ARRAY"){
- if (ref($data->{$c}) eq "ARRAY"){
- $v = "{\"".join("\",\"",@{$data->{$c}})."\"}";
- }
- else {
- $v = 'null';
- }
- $v =~ s/""/null/g;
- }elsif ($columns->{$c}->{data_type} =~ /^timestamp/ ){
-
- }elsif($columns->{$c}->{data_type} eq "date"){
-
- }elsif($columns->{$c}->{data_type} eq "time"){
-
- }
- $v = "'".$v."'";
- }
- push (@sqlval,$v);
- #}
- }
- return "INSERT INTO public.".$schema.".\"".$table."\" (".join(",",@sqlcol).") VALUES (".join(",",@sqlval).");";
-}
-
-sub create_ddl_update(){
- my $self = shift;
- my $data = shift;
- my $fields = ();
- my @ddl = ();
- foreach my $f (keys(%{$data})){
- if ($f =~ /^ident_/){
- my $fx = substr($f,6);
- my $t = substr($fx,0,index($fx,"_"));
- my $c = substr($fx,length($t)+1);
- #my ($t,$c) = $f =~ m/^ident_(.+)\_([a-z0-9|\_]+)/;
- $fields->{$t}->{cond}->{$c} = $data->{$f};
- } elsif ( ($f !~ /^ident/) && ($f =~ /.+\_.+/) ){
- my $t = substr($f,0,index($f,"_"));
- my $c = substr($f,length($t)+1);
- #my ($t,$c) = $f =~ m/^(.+)\_([a-z0-9|\_]+)/;
- $fields->{$t}->{fields}->{$c} = $data->{$f};
- }
- }
- foreach my $tb (keys(%{$fields})){
- my @sqlupd = ();
- my @sqlcond = ();
- foreach my $c (keys(%{$fields->{$tb}->{fields}})){
-
- my $v = $fields->{$tb}->{fields}->{$c};
- $v =~ s/'/''/g;
-
- if ($c =~ /-/){
- my @jp = split('-',$c);
- if ($v eq ''){
- $v = 'null';
- } else {
- $v = '"'.$v.'"';
- }
- $c = 'jsonb_set(to_jsonb('.$jp[0].'),\'{"'.$jp[1].'"}\',\''.$v.'\')::json';
- push (@sqlupd,$jp[0]."=".$c);
- }else {
- if ($v eq ''){
- $v = 'null';
- } else {
- $v = "'".$v."'";
- }
- push (@sqlupd,$c."=".$v);
- }
-
- }
- foreach my $c (keys(%{$fields->{$tb}->{cond}})){
- my $v = $fields->{$tb}->{cond}->{$c};
- $v =~ s/'/''/g;
- if ($v eq ''){
- $v = 'null';
- } else {
- $v = "'".$v."'";
- }
- push (@sqlcond,$c."=".$v);
- }
- push(@ddl,"UPDATE public.".$tb." SET ".join(",",@sqlupd)." WHERE ".join(" AND ",@sqlcond).";");
- }
-
- return @ddl;
-}
-
-sub create_cnt_statement(){
- my $self = shift;
- my $data = shift;
- my $fields = ();
- my @ddl = ();
- foreach my $f (keys(%{$data})){
- if ($f =~ /^ident_/){
- my $fx = substr($f,6);
- my $t = substr($fx,0,index($fx,"_"));
- my $c = substr($fx,length($t)+1);
- #my ($t,$c) = $f =~ m/^ident_(.+)\_([a-z0-9|\_]+)/;
- $fields->{$t}->{cond}->{$c} = $data->{$f};
- }
- }
- foreach my $tb (keys(%{$fields})){
- my @sqlcond = ();
- foreach my $c (keys(%{$fields->{$tb}->{cond}})){
- my $v = $fields->{$tb}->{cond}->{$c};
- $v =~ s/'/''/g;
- if ($v eq ''){
- $v = 'null';
- } else {
- $v = "'".$v."'";
- }
- push (@sqlcond,$c."=".$v);
- }
- push(@ddl,"SELECT count(*) as cnt from ".$tb." WHERE ".join(" AND ",@sqlcond).";");
- }
- # open FILE,">>tmp/sql.log";
- # print FILE "\n==\n".join("\n",@ddl)."\n==\n";
- # close FILE;
- return @ddl;
-}
-
-sub create_ddl_delete(){
- my $self = shift;
- my $data = shift;
- my $fields = ();
- my @ddl = ();
- my @refcols = ();
- my $refdata = ();
- foreach my $f (keys(%{$data})){
- if ($f =~ /^ident_/){
- my ($t,$c) = $f =~ m/ident_(.+)\_(.+)/;
-
- $fields->{$t}->{cond}->{$c} = $data->{$f};
- push(@refcols,"'".$c.'_'.$t."'");
- $refdata->{$c.'_'.$t} = $data->{$f};
- }
- }
-
-# my $ref = $self->dbquerysorted("select TABLE_NAME,COLUMN_NAME from information_schema.KEY_COLUMN_USAGE where COLUMN_NAME in (".join(",",@refcols).") and CONSTRAINT_SCHEMA='".$self->{dbname}."';");
-# foreach my $r (keys(%{$ref})){
-# my $refv = $refdata->{$ref->{$r}->{COLUMN_NAME}};
-# if ($refv eq ''){
-# $refv = ' is null';
-# } else {
-# $refv =~ s/'/''/g;
-# $refv = "='".$refv."'";
-# }
-# push(@ddl,"DELETE from ".$ref->{$r}->{TABLE_NAME}." where ".$ref->{$r}->{COLUMN_NAME}.$refv.";");
-# }
- foreach my $tb (keys(%{$fields})){
- my @sqlcond = ();
- foreach my $c (keys(%{$fields->{$tb}->{cond}})){
- my $v = $fields->{$tb}->{cond}->{$c};
- $v =~ s/'/''/g;
- push (@sqlcond,$c."='".$v."'");
- }
- push(@ddl,"DELETE FROM public.".$tb." WHERE ".join(" AND ",@sqlcond).";");
- }
- return @ddl;
-}
-
-sub textunidecode(){
- my $self = shift;
- my $text = shift;
- $text = lc(unidecode(decode("utf-8",$text)));
- $text =~ s/^[a-z0-9]//g;
- return $text;
-}
-
-1;
+++ /dev/null
-package dkssavefile;
-
-
-use strict;
-use lib ('./lib/perl5');
-use lib ('./lib');
-use lib ('./');
-use MIME::Base64;
-use MIME::Types;
-use URI;
-use Data::Dumper;
-use File::Path qw(make_path);
-
-sub new {
- my $class = shift;
- my $self = bless {}, $class;
- return $self;
-}
-
-sub saveb64toFile(){
- my $self = shift;
- # my $fd = shift;
- my $filename = shift;
- my $sitepath = shift;
- my $filepath = shift;
- my $data = shift;
- my $ds = URI->new($data);
- my $mimetype= $ds->media_type();
- my $mt = MIME::Types->new();
- my $sfx = $mt->type($mimetype);
- my $ext = $sfx->{MT_extensions};
- my $nfsfx = "";
- if (scalar(@$ext) > 0){
- $nfsfx = @$ext[0];
- }
- if (! -d $sitepath.'/'.$filepath){
- make_path($sitepath.'/'.$filepath);
- }
- open (NF,">".$sitepath.'/'.$filepath.'/'.$filename.'.'.$nfsfx);
- binmode(1);
- print NF $ds->data();
- close(NF);
- if (-e $sitepath.'/'.$filepath.'/'.$filename.'.'.$nfsfx){
- return $filepath.'/'.$filename.'.'.$nfsfx;
- }
- return "";
-}
-
-1;
\ No newline at end of file
+++ /dev/null
-package parsexlsx;
-
-use strict;
-use lib ('./lib/perl5');
-use lib ('./lib');
-use lib ('./');
-use Data::Dumper;
-use File::Basename qw/dirname basename/;
-use Spreadsheet::XLSX;
-use Encode;
-use dksdb;
-
-sub new {
- my $class = shift;
- my $self = bless {}, $class;
-
- return $self;
-}
-
-sub sheetdata(){
- my $self = shift;
- my $xlsxfile = shift;
- my $sheetname = shift;
- my @sheetdata = ();
- my $excel = Spreadsheet::XLSX -> new ($xlsxfile);
- foreach my $sheet (@{$excel -> {Worksheet}}) {
- #print $sheet->{Name}."\n";
- if (lc($sheet->{Name}) eq lc($sheetname)){
- $sheet -> {MaxRow} ||= $sheet -> {MinRow};
- foreach my $row ($sheet -> {MinRow} .. $sheet -> {MaxRow}) {
- $sheet -> {MaxCol} ||= $sheet -> {MinCol};
- my $rowdata = ();
- foreach my $col ($sheet -> {MinCol} .. $sheet -> {MaxCol}) {
- my $cell = $sheet -> {Cells} [$row] [$col];
-
- if ($cell) {
-
- $rowdata->{$col} = decode("utf-8",$cell->{Val});
- }
- }
- #print Dumper($rowdata);
- push @sheetdata,$rowdata;
- }
- }
- }
- return @sheetdata;
-}
-
-sub sheets(){
- my $self = shift;
- my $xlsxfile = shift;
- my @sheetnames = ();
- my $excel = Spreadsheet::XLSX -> new ($xlsxfile);
- foreach my $sheet (@{$excel -> {Worksheet}}) {
- push(@sheetnames,$sheet->{Name});
- }
- return @sheetnames;
-}
-
-1;
\ No newline at end of file
+++ /dev/null
-package sendemail;
-
-use strict;
-use lib ('./lib/perl5');
-use lib ('./lib');
-use lib ('./');
-use Data::Dumper;
-use File::Basename qw/dirname basename/;
-use dksdb;
-
-sub new {
- my $class = shift;
- my $self = bless {}, $class;
- $self->{server} = "mail.your-server.de";
- $self->{port} = "587";
- $self->{user} = 'kilian.saffran@fld.lu';
- $self->{password} = "Y6cWvXR6D2";
- $self->{from} = 'webmaster@fld.lu';
- return $self;
-}
-
-sub sendemail(){
- my $self = shift;
- my $template = shift;
- my $iduser = shift;
- my $sendto = shift;
- my $data = shift;
- my $attach = shift;
- my $body = "";
- my $subject = "";
- my $maildata = ();
- my $db = dksdb->new();
- my $send = -1;
- my $tmpl = $db->dbquerysorted("select *,ml.mailtemplate from mailtemplates mt join maillayouts ml on (mt.id_maillayout=ml.id) where templatename='".$template."';");
- if (keys(%{$tmpl}) > 0){
- $tmpl = $tmpl->{0};
- }
- # open (LOG,">>tmp/sendmail.log");
- # print LOG $ENV{SCRIPT_FILENAME};
- # print LOG "SEND EMAIL:".Dumper($data)."\n";
- # close(LOG);
- my $datasql = $tmpl->{'emaildatasql'};
- $data->{id} = $iduser;
- foreach my $key (keys(%{$data})){
- my $srch = '%%'.lc($key).'%%';
- my $repl = $data->{$key};
- $datasql =~ s/$srch/$repl/g;
- }
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "TEMPLATE DATA:".$datasql."\n";
- # close(LOG);
- $maildata = $db->dbquerysorted($datasql);
-
- $body = $tmpl->{'emailtext'};
- $subject = $tmpl->{'mailsubject'};
- foreach my $key (keys(%{$maildata->{0}})){
- $data->{$key} = $maildata->{0}->{$key};
- }
- foreach my $key (keys(%{$data})){
- my $srch = '%%'.lc($key).'%%';
- my $repl = $data->{$key};
- $body =~ s/$srch/$repl/g;
- $subject =~ s/$srch/$repl/g;
- }
- my $bodytmpl = $tmpl->{mailtemplate};
- $bodytmpl =~ s/%%BODYCONTENT%%/$body/;
- my $siteurl = $ENV{'REQUEST_SCHEME'}.'://'.$ENV{"HTTP_HOST"};
- $bodytmpl =~ s/%%siteurl%%/$siteurl/g;
- $bodytmpl =~ s/%%SITEURL%%/$siteurl/g;
- $bodytmpl =~ s/\r//g;
- #$bodytmpl =~ s/"/\\\"/g;
- #PROD REPLACE all not replaced DATA
- #$bodytmpl =~ s/%%\w+%%//g;
- #$sendto = 'ksaffran@dks.lu';
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "SUBJECT:".$subject."\n";
- # print LOG "BODY TEXT:".$bodytmpl."\n";
- # close(LOG);
- if (($bodytmpl ne "") && ($subject ne "") && ($sendto =~ /.+\@.+\..+/)){
-
-
- my $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/sendEmail';
- my $f = dirname($ENV{SCRIPT_FILENAME}).'/tmp/mailbody_'.$sendto.'.txt';
- $f =~ s/\@/_/g;
- if (! -e $binsemail){
- $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/api/sendEmail';
- $f = dirname($ENV{SCRIPT_FILENAME}).'/api/tmp/mailbody_'.$sendto.'.txt';
- $f =~ s/\@/_/g;
- if (! -e $binsemail){
- return 256;
- }
- }
-
- my $cmd= 'perl "'.$binsemail.'" -f '.$tmpl->{mailfrom}.' ';
- $cmd .= ' -s "'.$self->{server}.':'.$self->{port}.'" -xu "'.$self->{user}.'" -xp "'.$self->{password}.'" -q ';
- $cmd .= '-o tls=auto ';
- $cmd .= '-o message-content-type=html ';
- $cmd .= '-o message-charset=ISO-8859-1 ';
- $cmd .= '-o message-file='.$f.' ';
- $cmd .= '-t "'.$sendto.'" ';
- $cmd .= '-u "'.$subject.'" ';
- # open (LOG,">>sendmail.log");
- # print LOG $cmd."\n";
- # # print LOG "BODY TEXT:".$bodytmpl."\n";
- # close(LOG);
- open(EML,">".$f);
- print EML $bodytmpl;
- close(EML);
- # $cmd .= '-m "'.$bodytmpl.'" ';
- if ($attach != undef){
- $cmd .= " -a";
-
- foreach my $a (@{$attach}){
- $cmd .= " ".$a." ";
- }
- }
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "SEND EMAIL CMD:".$cmd."\n";
- # close(LOG);
- # $cmd =~ s/'/''/g;
- $send = system($cmd);
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "CMD RETURN NUM:".$send."\n";
- # close(LOG);
- unlink($f);
- }
- return $send;
-}
-
-1;
\ No newline at end of file
+++ /dev/null
-package session;
-
-use strict;
-use FindBin qw($RealBin);
-use lib ($RealBin.'/backoffice/');
-use lib ($RealBin.'/backoffice/lib/');
-use lib ('./lib/perl5');
-use lib ('./lib');
-
-use lib ('./');
-use File::Basename;
-use Digest::SHA qw(sha256_hex);
-
-use dksdb;
-use sendemail;
-# use Data::Dumper;
-
-sub new {
- my $class = shift;
- my $self = bless {}, $class;
- $self->{db} = dksdb->new();
- return $self;
-}
-
-sub checklogin(){
- my $self = shift;
- my $login = shift;
- my $password = shift;
- # open FILE,">>tmp/sql.log";
- # print FILE "pwd: $password\n";
- # close(FILE);
- my $pwd = sha256_hex($password);
- my $ret->{messagetype} ='red';
- # my $newsid = undef;
- $login = lc($login);
- $login =~ s/^\s+//;
- $login =~ s/\s+$//;
-
- $ret->{message} = "Passwuert oder Login onbekannt!";
- $ret->{messagetype} = "red";
- $ret->{sid} = undef;
- $ret->{sid} = undef;
- my $siddata = $self->{db}->querysorted("select * from checklogin('".$self->{db}->securetext($login)."','".$pwd."','".$ENV{REMOTE_ADDR}."','".$ENV{HTTP_USER_AGENT}."');");
-
- if (keys(%{$siddata}) > 0){
- # open FILE,">>tmp/sql.log";
- # print FILE Dumper($siddata);
- # close(FILE);
- $ret->{sid} = $siddata->{0}->{checklogin};
- }
- return $ret;
-}
-
-sub savepassword(){
- my $self = shift;
- my $iduser = shift;
- my $newpwd = shift;
- my $pwd = sha256_hex($newpwd);
- $self->{db}->dbexec("UPDATE users SET userpassword = '".$pwd."' WHERE id=".$iduser.";");
- return 1;
-}
-
-sub passwordforgotten(){
- my $self = shift;
- my $email = shift;
- $email =~ s/^\s+//;
- $email =~ s/\s+$//;
- my $ret->{messagetype} ='red';
- $ret->{message} = "Onbekannt E-mail!";
- my $sql = "select id,userpassword from users where username='".$self->{db}->securetext($email)."';";
- my $ex = $self->{db}->dbquerysorted($sql);
- if (keys(%{$ex}) > 0){
- my $newpwd = $self->randomstring(12);
- my $pwd = sha256_hex($newpwd);
- $self->{db}->dbexec("UPDATE users SET userpassword = '".$pwd."' WHERE id=".$ex->{0}->{id}.";");
- my $data->{newpassword} = $newpwd;
- my $eml = sendemail->new();
- my $mret = $eml->sendemail('user_forgotpasswd',$ex->{0}->{id},$email,$data,undef);
- if ($mret != 0){
- $ret->{messagetype} ='red';
- $ret->{message} = "Den Moment ass et leider nët méglech d'Passwuert autmatesch zreckzesetzen, <br/> wend dech w.e.g. via E-Mail un <a href=\"mailto:webmaster\@fld.lu\">webmaster\@fld.lu</a>!";
- return $ret;
- }
- $ret->{message} = "Mir hun dir eng E-Mail, matt engem neien Passwuert gescheckt!";
- $ret->{messagetype} = "green";
- }
- return $ret;
-}
-
-# sub registeruser(){
-# my $self = shift;
-# my $data = shift;
-# my $ret->{messagetype} ='red';
-# $ret->{message} = "Een Fehler ass passéiert, probéier et spéier nach eemol!";
-# $ret->{page} = "message.tt";
-# if (!exists($data->{license}) || !exists($data->{regcode}) || !exists($data->{email}) || !exists($data->{terms})){
-# $ret->{message} = "W.e.g. All Felder ausfëllen!";
-# $ret->{page} = "register.tt";
-# return $ret;
-# }
-# foreach my $d (%{$data}){
-# $data->{$d} = $self->{db}->securetext($data->{$d});
-# }
-
-# my $user = $self->{db}->dbquerysorted("select id from users where username='".$data->{email}."';");
-# if (keys(%{$user}) > 0){
-# $ret->{page} = "register.tt";
-# $ret->{message} = "Een Benotzer matt der selwechter E-Mail existéiert schon!";
-# return $ret;
-# }
-# my $license = $self->{db}->dbquerysorted("select us.id as id_user,lic.license,mb.id as id_member,us.username,us.vcode,us.regcode from members mb join licenses lic on (lic.id_member=mb.id) join users us on (mb.id_user=us.id) where us.regcode='".$data->{regcode}."' and lic.license='".$data->{license}."' limit 1");
-# if (keys(%{$license}) == 0){
-# $ret->{message} = "Falsch Lizenz-Nummer oder falschen Régistréierungs-Code!";
-# return $ret;
-# }
-# my $regcode = $license->{0}->{regcode};
-# my $newcode = $self->randomstring(6);
-# #my $usergroup = $self->{db}->dbquerysorted("select id from usergroups where usergroup ='avocat';");
-# my $newuserid = $self->{db}->dbquerysorted("UPDATE users set username='".$data->{email}."',vcode='".$newcode."' where id=".$license->{0}->{id_user}." ;");
-# my $maildata->{vcode} = $newcode;
-# my $eml = sendemail->new();
-# my $mret = $eml->sendemail('user_verification',$license->{0}->{id_user},$data->{email},$maildata,undef);
-# if ($mret == 0){
-# $ret->{message} = "Merci,<br/>Mir hun dir elo eng E-Mail gescheckt, matt engem Code fir deng E-Mail ze verifizéieren!<br/>Gëff desen Code w.e.g. an daat Feld hei drënner an!<br/>Bei Problemer wend dech w.e.g. via E-Mail un <a href=\"mailto:webmaster\@fld.lu\">webmaster\@fld.lu</a>";
-# $ret->{messagetype} = "green";
-# $ret->{page} = "validationcode.tt";
-# } else {
-# $self->{db}->dbexec("UPDATE users set username='".$data->{email}."',vcode=null where id=".$license->{0}->{id_user}." ;");
-# $ret->{message} = "Aus iergend engem Grond konnten mir dir keng E-Mail un '".$data->{email}."' schecken! Falls dess E-Mail-Address net existéiert, versich et nach eng Kéier matt enger E-Mail-Address, déi existéiert!<br>Bei Problemer wend dech w.e.g. via E-Mail un <a href=\"mailto:webmaster\@fld.lu\">webmaster\@fld.lu</a>";
-# $ret->{messagetype} = "red";
-# $ret->{page} = "register.tt";
-# }
-# #$self->{db}->dbexec("insert into appaccess (id_user) values (".$newuserid->{0}->{id}.");");
-# # $ret->{messagetype} = "green";
-
-# return $ret;
-# }
-
-# sub validateaccount(){
-# my $self = shift;
-# my $data = shift;
-# foreach my $d (%{$data}){
-# $data->{$d} = $self->{db}->securetext($data->{$d});
-# }
-
-# my $ret->{messagetype} ='red';
-# my $vcodedata = $self->{db}->dbquerysorted("select id,vcode,username from users where vcode='".$data->{vcode}."';");
-# if (keys(%{$vcodedata}) == 0){
-# $ret->{message} = "Benotzer onbekannt oder Code falsch!";
-# $ret->{page} = "validationcode.tt";
-# }
-# my $newpwd = $self->randomstring(12);
-# my $pwd = sha256_hex($newpwd);
-# my $maildata->{password} = $newpwd;
-# my $eml = sendemail->new();
-# my $newuserid = $self->{db}->dbquerysorted("UPDATE users set userpassword='".$pwd."',vcode=null,regcode=null where id=".$vcodedata->{0}->{id}." returning id,username;");
-# my $mret = $eml->sendemail('user_registration',$vcodedata->{0}->{id},$vcodedata->{0}->{username},$maildata,undef);
-# if ($mret == 0){
-# $ret->{message} = "Merci,<br/>Mir hun dir elo eng E-Mail gescheckt, matt all deenen néidegen Donnéeen fir dech anzeloggen!<br/>Bei Problemer wend dech w.e.g. via E-Mail un <a href=\"mailto:webmaster\@fld.lu\">webmaster\@fld.lu</a>";
-# $ret->{messagetype} = "green";
-# $ret->{page} = "message.tt";
-# } else {
-# $ret->{message} = "Aus iergend engem Grond konnten mir dir keng E-Mail un '".$newuserid->{0}->{username}."' schecken! Falls dess E-Mail-Address net existéiert, versich et nach eng Kéier matt enger E-Mail-Address, déi existéiert!<br>Bei Problemer wend dech w.e.g. via E-Mail un <a href=\"mailto:webmaster\@fld.lu\">webmaster\@fld.lu</a>";
-# $ret->{page} = "message.tt";
-# }
-# return $ret;
-# }
-
-sub getsession($){
- my $self = shift;
- my $sid = shift;
- my $sql ="select * from public.getsession('".$self->{db}->securetext($sid)."','".$ENV{REMOTE_ADDR}."','".$ENV{HTTP_USER_AGENT}."');";
- my $res= $self->{db}->querysorted($sql);
- my $ret = undef;
- # open FILE,">>tmp/sql.log";
- # print FILE "GET DB Session\n";
- # print FILE Dumper($res->{0});
- # close(FILE);
- if (keys(%{$res}) > 0){
-
- return $res->{0};
- }
- return $ret;
-}
-
-sub deletesession(){
- my $self = shift;
- my $sid = shift;
- $self->{db}->dbexec("UPDATE sessions set idsession= 'LO-' || idsession where idsession='".$self->{db}->securetext($sid)."';");
-}
-
-# sub randomstring(){
-# my $self = shift;
-# my $num = shift;
-# my @alphanumeric = ('a'..'z', 'A'..'Z', 0..9);
-# my $randstring = join '', map $alphanumeric[rand @alphanumeric], 0..$num;
-# return $randstring;
-# }
-
-
-# sub deleteprofile(){
-# my $self = shift;
-# my $data = shift;
-# my $ret->{message} = "mot de passe ou profile inconnue!";
-# $ret->{messagetype} = "danger";
-# if ($data->{id_user} eq ''){
-# $ret->{sid} = undef;
-# return $ret;
-# }
-# my $pwd = sha256_hex($data->{password});
-# my $user = $self->{db}->dbquerysorted("select id from users where id= '".$data->{id_user}."' and userpassword = '".$pwd."';");
-# if (keys(%{$user}) > 0){
-# $self->admindeleteuser($data->{id_user});
-# my $ret->{'message'} = "Votre profile a été supprimé!";
-# $ret->{'messagetype'} = "info";
-# $ret->{sid} = undef;
-# }
-# return $ret;
-
-# }
-
-# sub admindeleteuser(){
-# my $self = shift;
-# my $id_user = shift;
-# my @dl = ("DELETE FROM public.useringroups WHERE id_uset=".$id_user.";",
-# "DELETE FROM public.userclients WHERE id_user=".$id_user.";",
-# "DELETE FROM public.appaccess WHERE id_user=".$id_user.";",
-# "DELETE FROM public.modulepreferences WHERE id_user=".$id_user.";",,
-# "DELETE FROM public.sessions WHERE id_user=".$id_user.";",
-# "delete from users where id=".$id_user.";");
-# foreach my $s (@dl){
-# $self->{db}->dbexec($s);
-# }
-# return 1;
-# }
-
-1;
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/perl -w
-##############################################################################
-## sendEmail
-## Written by: Brandon Zehm <caspian@dotconf.net>
-##
-## License:
-## sendEmail (hereafter referred to as "program") is free software;
-## you can redistribute it and/or modify it under the terms of the GNU General
-## Public License as published by the Free Software Foundation; either version
-## 2 of the License, or (at your option) any later version.
-## When redistributing modified versions of this source code it is recommended
-## that that this disclaimer and the above coder's names are included in the
-## modified code.
-##
-## Disclaimer:
-## This program is provided with no warranty of any kind, either expressed or
-## implied. It is the responsibility of the user (you) to fully research and
-## comprehend the usage of this program. As with any tool, it can be misused,
-## either intentionally (you're a vandal) or unintentionally (you're a moron).
-## THE AUTHOR(S) IS(ARE) NOT RESPONSIBLE FOR ANYTHING YOU DO WITH THIS PROGRAM
-## or anything that happens because of your use (or misuse) of this program,
-## including but not limited to anything you, your lawyers, or anyone else
-## can dream up. And now, a relevant quote directly from the GPL:
-##
-## NO WARRANTY
-##
-## 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-## FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-## OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-## PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-## OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-## TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-## PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-## REPAIR OR CORRECTION.
-##
-##############################################################################
-use strict;
-use IO::Socket;
-
-
-########################
-## Global Variables ##
-########################
-
-my %conf = (
- ## General
- "programName" => $0, ## The name of this program
- "version" => '1.56', ## The version of this program
- "authorName" => 'Brandon Zehm', ## Author's Name
- "authorEmail" => 'caspian@dotconf.net', ## Author's Email Address
- "timezone" => '+0000', ## We always use +0000 for the time zone
- "hostname" => 'changeme', ## Used in printmsg() for all output (is updated later in the script).
- "debug" => 0, ## Default debug level
- "error" => '', ## Error messages will often be stored here
-
- ## Logging
- "stdout" => 1,
- "logging" => 0, ## If this is true the printmsg function prints to the log file
- "logFile" => '', ## If this is specified (form the command line via -l) this file will be used for logging.
-
- ## Network
- "server" => 'localhost', ## Default SMTP server
- "port" => 25, ## Default port
- "bindaddr" => '', ## Default local bind address
- "alarm" => '', ## Default timeout for connects and reads, this gets set from $opt{'timeout'}
- "tls_client" => 0, ## If TLS is supported by the client (us)
- "tls_server" => 0, ## If TLS is supported by the remote SMTP server
-
- ## Email
- "delimiter" => "----MIME delimiter for sendEmail-" ## MIME Delimiter
- . rand(1000000), ## Add some randomness to the delimiter
- "Message-ID" => rand(1000000) . "-sendEmail", ## Message-ID for email header
-
-);
-
-
-## This hash stores the options passed on the command line via the -o option.
-my %opt = (
- ## Addressing
- "reply-to" => '', ## Reply-To field
-
- ## Message
- "message-file" => '', ## File to read message body from
- "message-header" => '', ## Additional email header line(s)
- "message-format" => 'normal', ## If "raw" is specified the message is sent unmodified
- "message-charset" => 'iso-8859-1', ## Message character-set
- "message-content-type" => 'auto', ## auto, text, html or an actual string to put into the content-type header.
-
- ## Network
- "timeout" => 60, ## Default timeout for connects and reads, this is copied to $conf{'alarm'} later.
- "fqdn" => 'changeme', ## FQDN of this machine, used during SMTP communication (is updated later in the script).
-
- ## eSMTP
- "username" => '', ## Username used in SMTP Auth
- "password" => '', ## Password used in SMTP Auth
- "tls" => 'auto', ## Enable or disable TLS support. Options: auto, yes, no
-
-);
-
-## More variables used later in the program
-my $SERVER;
-my $CRLF = "\015\012";
-my $subject = '';
-my $header = '';
-my $message = '';
-my $from = '';
-my @to = ();
-my @cc = ();
-my @bcc = ();
-my @attachments = ();
-my @attachments_names = ();
-
-## For printing colors to the console
-my ${colorRed} = "\033[31;1m";
-my ${colorGreen} = "\033[32;1m";
-my ${colorCyan} = "\033[36;1m";
-my ${colorWhite} = "\033[37;1m";
-my ${colorNormal} = "\033[m";
-my ${colorBold} = "\033[1m";
-my ${colorNoBold} = "\033[0m";
-
-## Don't use shell escape codes on Windows systems
-if ($^O =~ /win/i) {
- ${colorRed} = ${colorGreen} = ${colorCyan} = ${colorWhite} = ${colorNormal} = ${colorBold} = ${colorNoBold} = "";
-}
-
-## Load IO::Socket::SSL if it's available
-eval { require IO::Socket::SSL; };
-if ($@) { $conf{'tls_client'} = 0; }
-else { $conf{'tls_client'} = 1; }
-
-
-
-
-
-
-#############################
-## ##
-## FUNCTIONS ##
-## ##
-#############################
-
-
-
-
-
-###############################################################################################
-## Function: initialize ()
-##
-## Does all the script startup jibberish.
-##
-###############################################################################################
-sub initialize {
-
- ## Set STDOUT to flush immediatly after each print
- $| = 1;
-
- ## Intercept signals
- $SIG{'QUIT'} = sub { quit("EXITING: Received SIG$_[0]", 1); };
- $SIG{'INT'} = sub { quit("EXITING: Received SIG$_[0]", 1); };
- $SIG{'KILL'} = sub { quit("EXITING: Received SIG$_[0]", 1); };
- $SIG{'TERM'} = sub { quit("EXITING: Received SIG$_[0]", 1); };
-
- ## ALARM and HUP signals are not supported in Win32
- unless ($^O =~ /win/i) {
- $SIG{'HUP'} = sub { quit("EXITING: Received SIG$_[0]", 1); };
- $SIG{'ALRM'} = sub { quit("EXITING: Received SIG$_[0]", 1); };
- }
-
- ## Fixup $conf{'programName'}
- $conf{'programName'} =~ s/(.)*[\/,\\]//;
- $0 = $conf{'programName'} . " " . join(" ", @ARGV);
-
- ## Fixup $conf{'hostname'} and $opt{'fqdn'}
- if ($opt{'fqdn'} eq 'changeme') { $opt{'fqdn'} = get_hostname(1); }
- if ($conf{'hostname'} eq 'changeme') { $conf{'hostname'} = $opt{'fqdn'}; $conf{'hostname'} =~ s/\..*//; }
-
- return(1);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: processCommandLine ()
-##
-## Processes command line storing important data in global vars (usually %conf)
-##
-###############################################################################################
-sub processCommandLine {
-
-
- ############################
- ## Process command line ##
- ############################
-
- my @ARGS = @ARGV; ## This is so later we can re-parse the command line args later if we need to
- my $numargv = @ARGS;
- help() unless ($numargv);
- my $counter = 0;
-
- for ($counter = 0; $counter < $numargv; $counter++) {
-
- if ($ARGS[$counter] =~ /^-h$/i) { ## Help ##
- help();
- }
-
- elsif ($ARGS[$counter] eq "") { ## Ignore null arguments
- ## Do nothing
- }
-
- elsif ($ARGS[$counter] =~ /^--help/) { ## Topical Help ##
- $counter++;
- if ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
- helpTopic($ARGS[$counter]);
- }
- else {
- help();
- }
- }
-
- elsif ($ARGS[$counter] =~ /^-o$/i) { ## Options specified with -o ##
- $counter++;
- ## Loop through each option passed after the -o
- while ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
-
- if ($ARGS[$counter] !~ /(\S+)=(\S.*)/) {
- printmsg("WARNING => Name/Value pair [$ARGS[$counter]] is not properly formatted", 0);
- printmsg("WARNING => Arguments proceeding -o should be in the form of \"name=value\"", 0);
- }
- else {
- if (exists($opt{$1})) {
- if ($1 eq 'message-header') {
- $opt{$1} .= $2 . $CRLF;
- }
- else {
- $opt{$1} = $2;
- }
- printmsg("DEBUG => Assigned \$opt{} key/value: $1 => $2", 3);
- }
- else {
- printmsg("WARNING => Name/Value pair [$ARGS[$counter]] will be ignored: unknown key [$1]", 0);
- printmsg("HINT => Try the --help option to find valid command line arguments", 1);
- }
- }
- $counter++;
- } $counter--;
- }
-
- elsif ($ARGS[$counter] =~ /^-f$/) { ## From ##
- $counter++;
- if ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) { $from = $ARGS[$counter]; }
- else { printmsg("WARNING => The argument after -f was not an email address!", 0); $counter--; }
- }
-
- elsif ($ARGS[$counter] =~ /^-t$/) { ## To ##
- $counter++;
- while ($ARGS[$counter] && ($ARGS[$counter] !~ /^-/)) {
- if ($ARGS[$counter] =~ /[;,]/) {
- push (@to, split(/[;,]/, $ARGS[$counter]));
- }
- else {
- push (@to,$ARGS[$counter]);
- }
- $counter++;
- } $counter--;
- }
-
- elsif ($ARGS[$counter] =~ /^-cc$/) { ## Cc ##
- $counter++;
- while ($ARGS[$counter] && ($ARGS[$counter] !~ /^-/)) {
- if ($ARGS[$counter] =~ /[;,]/) {
- push (@cc, split(/[;,]/, $ARGS[$counter]));
- }
- else {
- push (@cc,$ARGS[$counter]);
- }
- $counter++;
- } $counter--;
- }
-
- elsif ($ARGS[$counter] =~ /^-bcc$/) { ## Bcc ##
- $counter++;
- while ($ARGS[$counter] && ($ARGS[$counter] !~ /^-/)) {
- if ($ARGS[$counter] =~ /[;,]/) {
- push (@bcc, split(/[;,]/, $ARGS[$counter]));
- }
- else {
- push (@bcc,$ARGS[$counter]);
- }
- $counter++;
- } $counter--;
- }
-
- elsif ($ARGS[$counter] =~ /^-m$/) { ## Message ##
- $counter++;
- $message = "";
- while ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
- if ($message) { $message .= " "; }
- $message .= $ARGS[$counter];
- $counter++;
- } $counter--;
-
- ## Replace '\n' with $CRLF.
- ## This allows newlines with messages sent on the command line
- $message =~ s/\\n/$CRLF/g;
- }
-
- elsif ($ARGS[$counter] =~ /^-u$/) { ## Subject ##
- $counter++;
- $subject = "";
- while ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
- if ($subject) { $subject .= " "; }
- $subject .= $ARGS[$counter];
- $counter++;
- } $counter--;
- }
-
- elsif ($ARGS[$counter] =~ /^-s$/) { ## Server ##
- $counter++;
- if ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
- $conf{'server'} = $ARGS[$counter];
- if ($conf{'server'} =~ /:/) { ## Port ##
- ($conf{'server'},$conf{'port'}) = split(":",$conf{'server'});
- }
- }
- else { printmsg("WARNING - The argument after -s was not the server!", 0); $counter--; }
- }
-
- elsif ($ARGS[$counter] =~ /^-b$/) { ## Bind Address ##
- $counter++;
- if ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
- $conf{'bindaddr'} = $ARGS[$counter];
- }
- else { printmsg("WARNING - The argument after -b was not the bindaddr!", 0); $counter--; }
- }
-
- elsif ($ARGS[$counter] =~ /^-a$/) { ## Attachments ##
- $counter++;
- while ($ARGS[$counter] && ($ARGS[$counter] !~ /^-/)) {
- push (@attachments,$ARGS[$counter]);
- $counter++;
- } $counter--;
- }
-
- elsif ($ARGS[$counter] =~ /^-xu$/) { ## AuthSMTP Username ##
- $counter++;
- if ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
- $opt{'username'} = $ARGS[$counter];
- }
- else {
- printmsg("WARNING => The argument after -xu was not valid username!", 0);
- $counter--;
- }
- }
-
- elsif ($ARGS[$counter] =~ /^-xp$/) { ## AuthSMTP Password ##
- $counter++;
- if ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) {
- $opt{'password'} = $ARGS[$counter];
- }
- else {
- printmsg("WARNING => The argument after -xp was not valid password!", 0);
- $counter--;
- }
- }
-
- elsif ($ARGS[$counter] =~ /^-l$/) { ## Logging ##
- $counter++;
- $conf{'logging'} = 1;
- if ($ARGS[$counter] && $ARGS[$counter] !~ /^-/) { $conf{'logFile'} = $ARGS[$counter]; }
- else { printmsg("WARNING - The argument after -l was not the log file!", 0); $counter--; }
- }
-
- elsif ($ARGS[$counter] =~ s/^-v+//i) { ## Verbosity ##
- my $tmp = (length($&) - 1);
- $conf{'debug'} += $tmp;
- }
-
- elsif ($ARGS[$counter] =~ /^-q$/) { ## Quiet ##
- $conf{'stdout'} = 0;
- }
-
- else {
- printmsg("Error: \"$ARGS[$counter]\" is not a recognized option!", 0);
- help();
- }
-
- }
-
-
-
-
-
-
-
-
- ###################################################
- ## Verify required variables are set correctly ##
- ###################################################
-
- ## Make sure we have something in $conf{hostname} and $opt{fqdn}
- if ($opt{'fqdn'} =~ /\./) {
- $conf{'hostname'} = $opt{'fqdn'};
- $conf{'hostname'} =~ s/\..*//;
- }
-
- if (!$conf{'server'}) { $conf{'server'} = 'localhost'; }
- if (!$conf{'port'}) { $conf{'port'} = 25; }
- if (!$from) {
- quit("ERROR => You must specify a 'from' field! Try --help.", 1);
- }
- if ( ((scalar(@to)) + (scalar(@cc)) + (scalar(@bcc))) <= 0) {
- quit("ERROR => You must specify at least one recipient via -t, -cc, or -bcc", 1);
- }
-
- ## Make sure email addresses look OK.
- foreach my $addr (@to, @cc, @bcc, $from, $opt{'reply-to'}) {
- if ($addr) {
- if (!returnAddressParts($addr)) {
- printmsg("ERROR => Can't use improperly formatted email address: $addr", 0);
- printmsg("HINT => Try viewing the extended help on addressing with \"--help addressing\"", 1);
- quit("", 1);
- }
- }
- }
-
- ## Make sure all attachments exist.
- foreach my $file (@attachments) {
- if ( (! -f $file) or (! -r $file) ) {
- printmsg("ERROR => The attachment [$file] doesn't exist!", 0);
- printmsg("HINT => Try specifying the full path to the file or reading extended help with \"--help message\"", 1);
- quit("", 1);
- }
- }
-
- if ($conf{'logging'} and (!$conf{'logFile'})) {
- quit("ERROR => You used -l to enable logging but didn't specify a log file!", 1);
- }
-
- if ( $opt{'username'} ) {
- if (!$opt{'password'}) {
- ## Prompt for a password since one wasn't specified with the -xp option.
- $SIG{'ALRM'} = sub { quit("ERROR => Timeout waiting for password inpupt", 1); };
- alarm(60) if ($^O !~ /win/i); ## alarm() doesn't work in win32
- print "Password: ";
- $opt{'password'} = <STDIN>; chomp $opt{'password'};
- if (!$opt{'password'}) {
- quit("ERROR => A username for SMTP authentication was specified, but no password!", 1);
- }
- }
- }
-
- ## Validate the TLS setting
- $opt{'tls'} = lc($opt{'tls'});
- if ($opt{'tls'} !~ /^(auto|yes|no)$/) {
- quit("ERROR => Invalid TLS setting ($opt{'tls'}). Must be one of auto, yes, or no.", 1);
- }
-
- ## If TLS is set to "yes", make sure sendEmail loaded the libraries needed.
- if ($opt{'tls'} eq 'yes' and $conf{'tls_client'} == 0) {
- quit("ERROR => No TLS support! SendEmail can't load required libraries. (try installing Net::SSLeay and IO::Socket::SSL)", 1);
- }
-
- ## Return 0 errors
- return(0);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## getline($socketRef)
-sub getline {
- my ($socketRef) = @_;
- local ($/) = "\r\n";
- return $$socketRef->getline;
-}
-
-
-
-
-## Receive a (multiline?) SMTP response from ($socketRef)
-sub getResponse {
- my ($socketRef) = @_;
- my ($tmp, $reply);
- local ($/) = "\r\n";
- return undef unless defined($tmp = getline($socketRef));
- return("getResponse() socket is not open") unless ($$socketRef->opened);
- ## Keep reading lines if it's a multi-line response
- while ($tmp =~ /^\d{3}-/o) {
- $reply .= $tmp;
- return undef unless defined($tmp = getline($socketRef));
- }
- $reply .= $tmp;
- $reply =~ s/\r?\n$//o;
- return $reply;
-}
-
-
-
-
-###############################################################################################
-## Function: SMTPchat ( [string $command] )
-##
-## Description: Sends $command to the SMTP server (on SERVER) and awaits a successful
-## reply form the server. If the server returns an error, or does not reply
-## within $conf{'alarm'} seconds an error is generated.
-## NOTE: $command is optional, if no command is specified then nothing will
-## be sent to the server, but a valid response is still required from the server.
-##
-## Input: [$command] A (optional) valid SMTP command (ex. "HELO")
-##
-##
-## Output: Returns zero on success, or non-zero on error.
-## Error messages will be stored in $conf{'error'}
-## A copy of the last SMTP response is stored in the global variable
-## $conf{'SMTPchat_response'}
-##
-##
-## Example: SMTPchat ("HELO mail.isp.net");
-###############################################################################################
-sub SMTPchat {
- my ($command) = @_;
-
- printmsg("INFO => Sending: \t$command", 1) if ($command);
-
- ## Send our command
- print $SERVER "$command$CRLF" if ($command);
-
- ## Read a response from the server
- $SIG{'ALRM'} = sub { $conf{'error'} = "alarm"; $SERVER->close(); };
- alarm($conf{'alarm'}) if ($^O !~ /win/i); ## alarm() doesn't work in win32;
- my $result = $conf{'SMTPchat_response'} = getResponse(\$SERVER);
- alarm(0) if ($^O !~ /win/i); ## alarm() doesn't work in win32;
-
- ## Generate an alert if we timed out
- if ($conf{'error'} eq "alarm") {
- $conf{'error'} = "ERROR => Timeout while reading from $conf{'server'}:$conf{'port'} There was no response after $conf{'alarm'} seconds.";
- return(1);
- }
-
- ## Make sure the server actually responded
- if (!$result) {
- $conf{'error'} = "ERROR => $conf{'server'}:$conf{'port'} returned a zero byte response to our query.";
- return(2);
- }
-
- ## Validate the response
- if (evalSMTPresponse($result)) {
- ## conf{'error'} will already be set here
- return(2);
- }
-
- ## Print the success messsage
- printmsg($conf{'error'}, 1);
-
- ## Return Success
- return(0);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: evalSMTPresponse (string $message )
-##
-## Description: Searches $message for either an SMTP success or error code, and returns
-## 0 on success, and the actual error code on error.
-##
-##
-## Input: $message Data received from a SMTP server (ex. "220
-##
-##
-## Output: Returns zero on success, or non-zero on error.
-## Error messages will be stored in $conf{'error'}
-##
-##
-## Example: SMTPchat ("HELO mail.isp.net");
-###############################################################################################
-sub evalSMTPresponse {
- my ($message) = @_;
-
- ## Validate input
- if (!$message) {
- $conf{'error'} = "ERROR => No message was passed to evalSMTPresponse(). What happened?";
- return(1)
- }
-
- printmsg("DEBUG => evalSMTPresponse() - Checking for SMTP success or error status in the message: $message ", 3);
-
- ## Look for a SMTP success code
- if ($message =~ /^([23]\d\d)/) {
- printmsg("DEBUG => evalSMTPresponse() - Found SMTP success code: $1", 2);
- $conf{'error'} = "SUCCESS => Received: \t$message";
- return(0);
- }
-
- ## Look for a SMTP error code
- if ($message =~ /^([45]\d\d)/) {
- printmsg("DEBUG => evalSMTPresponse() - Found SMTP error code: $1", 2);
- $conf{'error'} = "ERROR => Received: \t$message";
- return($1);
- }
-
- ## If no SMTP codes were found return an error of 1
- $conf{'error'} = "ERROR => Received a message with no success or error code. The message received was: $message";
- return(2);
-
-}
-
-
-
-
-
-
-
-
-
-
-#########################################################
-# SUB: &return_month(0,1,etc)
-# returns the name of the month that corrosponds
-# with the number. returns 0 on error.
-#########################################################
-sub return_month {
- my $x = $_[0];
- if ($x == 0) { return 'Jan'; }
- if ($x == 1) { return 'Feb'; }
- if ($x == 2) { return 'Mar'; }
- if ($x == 3) { return 'Apr'; }
- if ($x == 4) { return 'May'; }
- if ($x == 5) { return 'Jun'; }
- if ($x == 6) { return 'Jul'; }
- if ($x == 7) { return 'Aug'; }
- if ($x == 8) { return 'Sep'; }
- if ($x == 9) { return 'Oct'; }
- if ($x == 10) { return 'Nov'; }
- if ($x == 11) { return 'Dec'; }
- return (0);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#########################################################
-# SUB: &return_day(0,1,etc)
-# returns the name of the day that corrosponds
-# with the number. returns 0 on error.
-#########################################################
-sub return_day {
- my $x = $_[0];
- if ($x == 0) { return 'Sun'; }
- if ($x == 1) { return 'Mon'; }
- if ($x == 2) { return 'Tue'; }
- if ($x == 3) { return 'Wed'; }
- if ($x == 4) { return 'Thu'; }
- if ($x == 5) { return 'Fri'; }
- if ($x == 6) { return 'Sat'; }
- return (0);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: returnAddressParts(string $address)
-##
-## Description: Returns a two element array containing the "Name" and "Address" parts of
-## an email address.
-##
-## Example: "Brandon Zehm <caspian@dotconf.net>"
-## would return: ("Brandon Zehm", "caspian@dotconf.net");
-##
-## "caspian@dotconf.net"
-## would return: ("caspian@dotconf.net", "caspian@dotconf.net")
-###############################################################################################
-sub returnAddressParts {
- my $input = $_[0];
- my $name = "";
- my $address = "";
-
- ## Make sure to fail if it looks totally invalid
- if ($input !~ /(\S+\@\S+)/) {
- $conf{'error'} = "ERROR => The address [$input] doesn't look like a valid email address, ignoring it";
- return(undef());
- }
-
- ## Check 1, should find addresses like: "Brandon Zehm <caspian@dotconf.net>"
- elsif ($input =~ /^\s*(\S(.*\S)?)\s*<(\S+\@\S+)>/o) {
- ($name, $address) = ($1, $3);
- }
-
- ## Otherwise if that failed, just get the address: <caspian@dotconf.net>
- elsif ($input =~ /<(\S+\@\S+)>/o) {
- $name = $address = $1;
- }
-
- ## Or maybe it was formatted this way: caspian@dotconf.net
- elsif ($input =~ /(\S+\@\S+)/o) {
- $name = $address = $1;
- }
-
- ## Something stupid happened, just return an error.
- unless ($name and $address) {
- printmsg("ERROR => Couldn't parse the address: $input", 0);
- printmsg("HINT => If you think this should work, consider reporting this as a bug to $conf{'authorEmail'}", 1);
- return(undef());
- }
-
- ## Make sure there aren't invalid characters in the address, and return it.
- my $ctrl = '\000-\037';
- my $nonASCII = '\x80-\xff';
- if ($address =~ /[<> ,;:"'\[\]\\$ctrl$nonASCII]/) {
- printmsg("WARNING => The address [$address] seems to contain invalid characters: continuing anyway", 0);
- }
- return($name, $address);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: base64_encode(string $data, bool $chunk)
-##
-## Description: Returns $data as a base64 encoded string.
-## If $chunk is true, the encoded data is returned in 76 character long lines
-## with the final \CR\LF removed.
-##
-## Note: This is only used from the smtp auth section of code.
-## At some point it would be nice to merge the code that encodes attachments and this.
-###############################################################################################
-sub base64_encode {
- my $data = $_[0];
- my $chunk = $_[1];
- my $tmp = '';
- my $base64 = '';
- my $CRLF = "\r\n";
-
- ###################################
- ## Convert binary data to base64 ##
- ###################################
- while ($data =~ s/(.{45})//s) { ## Get 45 bytes from the binary string
- $tmp = substr(pack('u', $&), 1); ## Convert the binary to uuencoded text
- chop($tmp);
- $tmp =~ tr|` -_|AA-Za-z0-9+/|; ## Translate from uuencode to base64
- $base64 .= $tmp;
- }
-
- ##########################
- ## Encode the leftovers ##
- ##########################
- my $padding = "";
- if ( ($data) and (length($data) > 0) ) {
- $padding = (3 - length($data) % 3) % 3; ## Set flag if binary data isn't divisible by 3
- $tmp = substr(pack('u', $data), 1); ## Convert the binary to uuencoded text
- chop($tmp);
- $tmp =~ tr|` -_|AA-Za-z0-9+/|; ## Translate from uuencode to base64
- $base64 .= $tmp;
- }
-
- ############################
- ## Fix padding at the end ##
- ############################
- $data = '';
- $base64 =~ s/.{$padding}$/'=' x $padding/e if $padding; ## Fix the end padding if flag (from above) is set
- if ($chunk) {
- while ($base64 =~ s/(.{1,76})//s) { ## Put $CRLF after each 76 characters
- $data .= "$1$CRLF";
- }
- }
- else {
- $data = $base64;
- }
-
- ## Remove any trailing CRLF's
- $data =~ s/(\r|\n)*$//s;
- return($data);
-}
-
-
-
-
-
-
-
-
-
-#########################################################
-# SUB: send_attachment("/path/filename")
-# Sends the mime headers and base64 encoded file
-# to the email server.
-#########################################################
-sub send_attachment {
- my ($filename) = @_; ## Get filename passed
- my (@fields, $y, $filename_name, $encoding, ## Local variables
- @attachlines, $content_type);
- my $bin = 1;
-
- @fields = split(/\/|\\/, $filename); ## Get the actual filename without the path
- $filename_name = pop(@fields);
- push @attachments_names, $filename_name; ## FIXME: This is only used later for putting in the log file
-
- ##########################
- ## Autodetect Mime Type ##
- ##########################
-
- @fields = split(/\./, $filename_name);
- $encoding = $fields[$#fields];
-
- if ($encoding =~ /txt|text|log|conf|^c$|cpp|^h$|inc|m3u/i) { $content_type = 'text/plain'; }
- elsif ($encoding =~ /html|htm|shtml|shtm|asp|php|cfm/i) { $content_type = 'text/html'; }
- elsif ($encoding =~ /sh$/i) { $content_type = 'application/x-sh'; }
- elsif ($encoding =~ /tcl/i) { $content_type = 'application/x-tcl'; }
- elsif ($encoding =~ /pl$/i) { $content_type = 'application/x-perl'; }
- elsif ($encoding =~ /js$/i) { $content_type = 'application/x-javascript'; }
- elsif ($encoding =~ /man/i) { $content_type = 'application/x-troff-man'; }
- elsif ($encoding =~ /gif/i) { $content_type = 'image/gif'; }
- elsif ($encoding =~ /jpg|jpeg|jpe|jfif|pjpeg|pjp/i) { $content_type = 'image/jpeg'; }
- elsif ($encoding =~ /tif|tiff/i) { $content_type = 'image/tiff'; }
- elsif ($encoding =~ /xpm/i) { $content_type = 'image/x-xpixmap'; }
- elsif ($encoding =~ /bmp/i) { $content_type = 'image/x-MS-bmp'; }
- elsif ($encoding =~ /pcd/i) { $content_type = 'image/x-photo-cd'; }
- elsif ($encoding =~ /png/i) { $content_type = 'image/png'; }
- elsif ($encoding =~ /aif|aiff/i) { $content_type = 'audio/x-aiff'; }
- elsif ($encoding =~ /wav/i) { $content_type = 'audio/x-wav'; }
- elsif ($encoding =~ /mp2|mp3|mpa/i) { $content_type = 'audio/x-mpeg'; }
- elsif ($encoding =~ /ra$|ram/i) { $content_type = 'audio/x-pn-realaudio'; }
- elsif ($encoding =~ /mpeg|mpg/i) { $content_type = 'video/mpeg'; }
- elsif ($encoding =~ /mov|qt$/i) { $content_type = 'video/quicktime'; }
- elsif ($encoding =~ /avi/i) { $content_type = 'video/x-msvideo'; }
- elsif ($encoding =~ /zip/i) { $content_type = 'application/x-zip-compressed'; }
- elsif ($encoding =~ /tar/i) { $content_type = 'application/x-tar'; }
- elsif ($encoding =~ /jar/i) { $content_type = 'application/java-archive'; }
- elsif ($encoding =~ /exe|bin/i) { $content_type = 'application/octet-stream'; }
- elsif ($encoding =~ /ppt|pot|ppa|pps|pwz/i) { $content_type = 'application/vnd.ms-powerpoint'; }
- elsif ($encoding =~ /mdb|mda|mde/i) { $content_type = 'application/vnd.ms-access'; }
- elsif ($encoding =~ /xls|xlt|xlm|xld|xla|xlc|xlw|xll/i) { $content_type = 'application/vnd.ms-excel'; }
- elsif ($encoding =~ /doc|dot/i) { $content_type = 'application/msword'; }
- elsif ($encoding =~ /rtf/i) { $content_type = 'application/rtf'; }
- elsif ($encoding =~ /pdf/i) { $content_type = 'application/pdf'; }
- elsif ($encoding =~ /tex/i) { $content_type = 'application/x-tex'; }
- elsif ($encoding =~ /latex/i) { $content_type = 'application/x-latex'; }
- elsif ($encoding =~ /vcf/i) { $content_type = 'application/x-vcard'; }
- else { $content_type = 'application/octet-stream'; }
-
-
- ############################
- ## Process the attachment ##
- ############################
-
- #####################################
- ## Generate and print MIME headers ##
- #####################################
-
- $y = "$CRLF--$conf{'delimiter'}$CRLF";
- $y .= "Content-Type: $content_type;$CRLF";
- $y .= " name=\"$filename_name\"$CRLF";
- $y .= "Content-Transfer-Encoding: base64$CRLF";
- $y .= "Content-Disposition: attachment; filename=\"$filename_name\"$CRLF";
- $y .= "$CRLF";
- print $SERVER $y;
-
-
- ###########################################################
- ## Convert the file to base64 and print it to the server ##
- ###########################################################
-
- open (FILETOATTACH, $filename) || do {
- printmsg("ERROR => Opening the file [$filename] for attachment failed with the error: $!", 0);
- return(1);
- };
- binmode(FILETOATTACH); ## Hack to make Win32 work
-
- my $res = "";
- my $tmp = "";
- my $base64 = "";
- while (<FILETOATTACH>) { ## Read a line from the (binary) file
- $res .= $_;
-
- ###################################
- ## Convert binary data to base64 ##
- ###################################
- while ($res =~ s/(.{45})//s) { ## Get 45 bytes from the binary string
- $tmp = substr(pack('u', $&), 1); ## Convert the binary to uuencoded text
- chop($tmp);
- $tmp =~ tr|` -_|AA-Za-z0-9+/|; ## Translate from uuencode to base64
- $base64 .= $tmp;
- }
-
- ################################
- ## Print chunks to the server ##
- ################################
- while ($base64 =~ s/(.{76})//s) {
- print $SERVER "$1$CRLF";
- }
-
- }
-
- ###################################
- ## Encode and send the leftovers ##
- ###################################
- my $padding = "";
- if ( ($res) and (length($res) >= 1) ) {
- $padding = (3 - length($res) % 3) % 3; ## Set flag if binary data isn't divisible by 3
- $res = substr(pack('u', $res), 1); ## Convert the binary to uuencoded text
- chop($res);
- $res =~ tr|` -_|AA-Za-z0-9+/|; ## Translate from uuencode to base64
- }
-
- ############################
- ## Fix padding at the end ##
- ############################
- $res = $base64 . $res; ## Get left overs from above
- $res =~ s/.{$padding}$/'=' x $padding/e if $padding; ## Fix the end padding if flag (from above) is set
- if ($res) {
- while ($res =~ s/(.{1,76})//s) { ## Send it to the email server.
- print $SERVER "$1$CRLF";
- }
- }
-
- close (FILETOATTACH) || do {
- printmsg("ERROR - Closing the filehandle for file [$filename] failed with the error: $!", 0);
- return(2);
- };
-
- ## Return 0 errors
- return(0);
-
-}
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: $string = get_hostname (boot $fqdn)
-##
-## Description: Tries really hard to returns the short (or FQDN) hostname of the current
-## system. Uses techniques and code from the Sys-Hostname module.
-##
-## Input: $fqdn A true value (1) will cause this function to return a FQDN hostname
-## rather than a short hostname.
-##
-## Output: Returns a string
-###############################################################################################
-sub get_hostname {
- ## Assign incoming parameters to variables
- my ( $fqdn ) = @_;
- my $hostname = "";
-
- ## STEP 1: Get short hostname
-
- ## Load Sys::Hostname if it's available
- eval { require Sys::Hostname; };
- unless ($@) {
- $hostname = Sys::Hostname::hostname();
- }
-
- ## If that didn't get us a hostname, try a few other things
- else {
- ## Windows systems
- if ($^O !~ /win/i) {
- if ($ENV{'COMPUTERNAME'}) { $hostname = $ENV{'COMPUTERNAME'}; }
- if (!$hostname) { $hostname = gethostbyname('localhost'); }
- if (!$hostname) { chomp($hostname = `hostname 2> NUL`) };
- }
-
- ## Unix systems
- else {
- local $ENV{PATH} = '/usr/bin:/bin:/usr/sbin:/sbin'; ## Paranoia
-
- ## Try the environment first (Help! What other variables could/should I be checking here?)
- if ($ENV{'HOSTNAME'}) { $hostname = $ENV{'HOSTNAME'}; }
-
- ## Try the hostname command
- eval { local $SIG{__DIE__}; local $SIG{CHLD}; $hostname = `hostname 2>/dev/null`; chomp($hostname); } ||
-
- ## Try POSIX::uname(), which strictly can't be expected to be correct
- eval { local $SIG{__DIE__}; require POSIX; $hostname = (POSIX::uname())[1]; } ||
-
- ## Try the uname command
- eval { local $SIG{__DIE__}; $hostname = `uname -n 2>/dev/null`; chomp($hostname); };
-
- }
-
- ## If we can't find anything else, return ""
- if (!$hostname) {
- print "WARNING => No hostname could be determined, please specify one with -o fqdn=FQDN option!\n";
- return("unknown");
- }
- }
-
- ## Return the short hostname
- unless ($fqdn) {
- $hostname =~ s/\..*//;
- return(lc($hostname));
- }
-
- ## STEP 2: Determine the FQDN
-
- ## First, if we already have one return it.
- if ($hostname =~ /\w\.\w/) { return(lc($hostname)); }
-
- ## Next try using
- eval { $fqdn = (gethostbyname($hostname))[0]; };
- if ($fqdn) { return(lc($fqdn)); }
- return(lc($hostname));
-}
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: printmsg (string $message, int $level)
-##
-## Description: Handles all messages - printing them to the screen only if the messages
-## $level is >= the global debug level. If $conf{'logFile'} is defined it
-## will also log the message to that file.
-##
-## Input: $message A message to be printed, logged, etc.
-## $level The debug level of the message. If
-## not defined 0 will be assumed. 0 is
-## considered a normal message, 1 and
-## higher is considered a debug message.
-##
-## Output: Prints to STDOUT
-##
-## Assumptions: $conf{'hostname'} should be the name of the computer we're running on.
-## $conf{'stdout'} should be set to 1 if you want to print to stdout
-## $conf{'logFile'} should be a full path to a log file if you want that
-## $conf{'debug'} should be an integer between 0 and 10.
-##
-## Example: printmsg("WARNING: We believe in generic error messages... NOT!", 0);
-###############################################################################################
-sub printmsg {
- ## Assign incoming parameters to variables
- my ( $message, $level ) = @_;
-
- ## Make sure input is sane
- $level = 0 if (!defined($level));
- $message =~ s/\s+$//sgo;
- $message =~ s/\r?\n/, /sgo;
-
- ## Continue only if the debug level of the program is >= message debug level.
- if ($conf{'debug'} >= $level) {
-
- ## Get the date in the format: Dec 3 11:14:04
- my ($sec, $min, $hour, $mday, $mon) = localtime();
- $mon = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')[$mon];
- my $date = sprintf("%s %02d %02d:%02d:%02d", $mon, $mday, $hour, $min, $sec);
-
- ## Print to STDOUT always if debugging is enabled, or if conf{stdout} is true.
- if ( ($conf{'debug'} >= 1) or ($conf{'stdout'} == 1) ) {
- print "$date $conf{'hostname'} $conf{'programName'}\[$$\]: $message\n";
- }
-
- ## Print to the log file if $conf{'logging'} is true
- if ($conf{'logFile'}) {
- if (openLogFile($conf{'logFile'})) { $conf{'logFile'} = ""; printmsg("ERROR => Opening the file [$conf{'logFile'}] for appending returned the error: $!", 1); }
- print LOGFILE "$date $conf{'hostname'} $conf{'programName'}\[$$\]: $message\n";
- }
-
- }
-
- ## Return 0 errors
- return(0);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## FUNCTION:
-## openLogFile ( $filename )
-##
-##
-## DESCRIPTION:
-## Opens the file $filename and attaches it to the filehandle "LOGFILE". Returns 0 on success
-## and non-zero on failure. Error codes are listed below, and the error message gets set in
-## global variable $!.
-##
-##
-## Example:
-## openFile ("/var/log/sendEmail.log");
-##
-###############################################################################################
-sub openLogFile {
- ## Get the incoming filename
- my $filename = $_[0];
-
- ## Make sure our file exists, and if the file doesn't exist then create it
- if ( ! -f $filename ) {
- print STDERR "NOTICE: The log file [$filename] does not exist. Creating it now with mode [0600].\n" if ($conf{'stdout'});
- open (LOGFILE, ">>$filename");
- close LOGFILE;
- chmod (0600, $filename);
- }
-
- ## Now open the file and attach it to a filehandle
- open (LOGFILE,">>$filename") or return (1);
-
- ## Put the file into non-buffering mode
- select LOGFILE;
- $| = 1;
- select STDOUT;
-
- ## Return success
- return(0);
-}
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: read_file (string $filename)
-##
-## Description: Reads the contents of a file and returns a two part array:
-## ($status, $file-contents)
-## $status is 0 on success, non-zero on error.
-##
-## Example: ($status, $file) = read_file("/etc/passwd");
-###############################################################################################
-sub read_file {
- my ( $filename ) = @_;
-
- ## If the value specified is a file, load the file's contents
- if ( (-e $filename and -r $filename) ) {
- my $FILE;
- if(!open($FILE, ' ' . $filename)) {
- return((1, ""));
- }
- my $file = '';
- while (<$FILE>) {
- $file .= $_;
- }
- ## Strip an ending \r\n
- $file =~ s/\r?\n$//os;
- }
- return((1, ""));
-}
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: quit (string $message, int $errorLevel)
-##
-## Description: Exits the program, optionally printing $message. It
-## returns an exit error level of $errorLevel to the
-## system (0 means no errors, and is assumed if empty.)
-##
-## Example: quit("Exiting program normally", 0);
-###############################################################################################
-sub quit {
- my ( $message, $errorLevel ) = @_;
- $errorLevel = 0 if (!defined($errorLevel));
-
- ## Print exit message
- if ($message) {
- printmsg($message, 0);
- }
-
- ## Exit
- exit($errorLevel);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: help ()
-##
-## Description: For all those newbies ;)
-## Prints a help message and exits the program.
-##
-###############################################################################################
-sub help {
-exit(1) if (!$conf{'stdout'});
-print <<EOM;
-
-${colorBold}$conf{'programName'}-$conf{'version'} by $conf{'authorName'} <$conf{'authorEmail'}>${colorNoBold}
-
-Synopsis: $conf{'programName'} -f ADDRESS [options]
-
- ${colorRed}Required:${colorNormal}
- -f ADDRESS from (sender) email address
- * At least one recipient required via -t, -cc, or -bcc
- * Message body required via -m, STDIN, or -o message-file=FILE
-
- ${colorGreen}Common:${colorNormal}
- -t ADDRESS [ADDR ...] to email address(es)
- -u SUBJECT message subject
- -m MESSAGE message body
- -s SERVER[:PORT] smtp mail relay, default is $conf{'server'}:$conf{'port'}
-
- ${colorGreen}Optional:${colorNormal}
- -a FILE [FILE ...] file attachment(s)
- -cc ADDRESS [ADDR ...] cc email address(es)
- -bcc ADDRESS [ADDR ...] bcc email address(es)
- -xu USERNAME username for SMTP authentication
- -xp PASSWORD password for SMTP authentication
-
- ${colorGreen}Paranormal:${colorNormal}
- -b BINDADDR[:PORT] local host bind address
- -l LOGFILE log to the specified file
- -v verbosity, use multiple times for greater effect
- -q be quiet (i.e. no STDOUT output)
- -o NAME=VALUE advanced options, for details try: --help misc
- -o message-content-type=<auto|text|html>
- -o message-file=FILE -o message-format=raw
- -o message-header=HEADER -o message-charset=CHARSET
- -o reply-to=ADDRESS -o timeout=SECONDS
- -o username=USERNAME -o password=PASSWORD
- -o tls=<auto|yes|no> -o fqdn=FQDN
-
-
- ${colorGreen}Help:${colorNormal}
- --help the helpful overview you're reading now
- --help addressing explain addressing and related options
- --help message explain message body input and related options
- --help networking explain -s, -b, etc
- --help output explain logging and other output options
- --help misc explain -o options, TLS, SMTP auth, and more
-
-EOM
-exit(1);
-}
-
-
-
-
-
-
-
-
-
-###############################################################################################
-## Function: helpTopic ($topic)
-##
-## Description: For all those newbies ;)
-## Prints a help message and exits the program.
-##
-###############################################################################################
-sub helpTopic {
- exit(1) if (!$conf{'stdout'});
- my ($topic) = @_;
-
- CASE: {
-
-
-
-
-## ADDRESSING
- ($topic eq 'addressing') && do {
- print <<EOM;
-
-${colorBold}ADDRESSING DOCUMENTATION${colorNormal}
-
-${colorGreen}Addressing Options${colorNormal}
-Options related to addressing:
- -f ADDRESS
- -t ADDRESS [ADDRESS ...]
- -cc ADDRESS [ADDRESS ...]
- -bcc ADDRESS [ADDRESS ...]
- -o reply-to=ADDRESS
-
--f ADDRESS
- This required option specifies who the email is from, I.E. the sender's
- email address.
-
--t ADDRESS [ADDRESS ...]
- This option specifies the primary recipient(s). At least one recipient
- address must be specified via the -t, -cc. or -bcc options.
-
--cc ADDRESS [ADDRESS ...]
- This option specifies the "carbon copy" recipient(s). At least one
- recipient address must be specified via the -t, -cc. or -bcc options.
-
--bcc ADDRESS [ADDRESS ...]
- This option specifies the "blind carbon copy" recipient(s). At least
- one recipient address must be specified via the -t, -cc. or -bcc options.
-
--o reply-to=ADDRESS
- This option specifies that an optional "Reply-To" address should be
- written in the email's headers.
-
-
-${colorGreen}Email Address Syntax${colorNormal}
-Email addresses may be specified in one of two ways:
- Full Name: "John Doe <john.doe\@gmail.com>"
- Just Address: "john.doe\@gmail.com"
-
-The "Full Name" method is useful if you want a name, rather than a plain
-email address, to be displayed in the recipient's From, To, or Cc fields
-when they view the message.
-
-
-${colorGreen}Multiple Recipients${colorNormal}
-The -t, -cc, and -bcc options each accept multiple addresses. They may be
-specified by separating them by either a white space, comma, or semi-colon
-separated list. You may also specify the -t, -cc, and -bcc options multiple
-times, each occurance will append the new recipients to the respective list.
-
-Examples:
-(I used "-t" in these examples, but it can be "-cc" or "-bcc" as well)
-
- * Space separated list:
- -t jane.doe\@yahoo.com "John Doe <john.doe\@gmail.com>"
-
- * Semi-colon separated list:
- -t "jane.doe\@yahoo.com; John Doe <john.doe\@gmail.com>"
-
- * Comma separated list:
- -t "jane.doe\@yahoo.com, John Doe <john.doe\@gmail.com>"
-
- * Multiple -t, -cc, or -bcc options:
- -t "jane.doe\@yahoo.com" -t "John Doe <john.doe\@gmail.com>"
-
-
-EOM
- last CASE;
- };
-
-
-
-
-
-
-## MESSAGE
- ($topic eq 'message') && do {
- print <<EOM;
-
-${colorBold}MESSAGE DOCUMENTATION${colorNormal}
-
-${colorGreen}Message Options${colorNormal}
-Options related to the email message body:
- -u SUBJECT
- -m MESSAGE
- -o message-file=FILE
- -o message-content-type=<auto|text|html>
- -o message-header=EMAIL HEADER
- -o message-charset=CHARSET
- -o message-format=raw
-
--u SUBJECT
- This option allows you to specify the subject for your email message.
- It is not required (anymore) that the subject be quoted, although it
- is recommended. The subject will be read until an argument starting
- with a hyphen (-) is found.
- Examples:
- -u "Contact information while on vacation"
- -u New Microsoft vulnerability discovered
-
--m MESSAGE
- This option is one of three methods that allow you to specify the message
- body for your email. The message may be specified on the command line
- with this -m option, read from a file with the -o message-file=FILE
- option, or read from STDIN if neither of these options are present.
-
- It is not required (anymore) that the message be quoted, although it is
- recommended. The message will be read until an argument starting with a
- hyphen (-) is found.
- Examples:
- -m "See you in South Beach, Hawaii. -Todd"
- -m Please ensure that you upgrade your systems right away
-
- Multi-line message bodies may be specified with the -m option by putting
- a "\\n" into the message. Example:
- -m "This is line 1.\\nAnd this is line 2."
-
- HTML messages are supported, simply begin your message with "<html>" and
- sendEmail will properly label the mime header so MUAs properly render
- the message. It is currently not possible without "-o message-format=raw"
- to send a message with both text and html parts with sendEmail.
-
--o message-file=FILE
- This option is one of three methods that allow you to specify the message
- body for your email. To use this option simply specify a text file
- containing the body of your email message. Examples:
- -o message-file=/root/message.txt
- -o message-file="C:\\Program Files\\output.txt"
-
--o message-content-type=<auto|text|html>
- This option allows you to specify the content-type of the email. If your
- email message is an html message but is being displayed as a text message
- just add "-o message-content-type=html" to the command line to force it
- to display as an html message. This actually just changes the Content-Type:
- header. Advanced users will be happy to know that if you specify anything
- other than the three options listed above it will use that as the vaule
- for the Content-Type header.
-
--o message-header=EMAIL HEADER
- This option allows you to specify additional email headers to be included.
- To add more than one message header simply use this option on the command
- line more than once. If you specify a message header that sendEmail would
- normally generate the one you specified will be used in it's place.
- Do not use this unless you know what you are doing!
- Example:
- To scare a Microsoft Outlook user you may want to try this:
- -o message-header="X-Message-Flag: Message contains illegal content"
- Example:
- To request a read-receipt try this:
- -o message-header="Disposition-Notification-To: <user\@domain.com>"
- Example:
- To set the message priority try this:
- -o message-header="X-Priority: 1"
- Priority reference: 1=highest, 2=high, 3=normal, 4=low, 5=lowest
-
--o message-charset=CHARSET
- This option allows you to specify the character-set for the message body.
- The default is iso-8859-1.
-
--o message-format=raw
- This option instructs sendEmail to assume the message (specified with -m,
- read from STDIN, or read from the file specified in -o message-file=FILE)
- is already a *complete* email message. SendEmail will not generate any
- headers and will transmit the message as-is to the remote SMTP server.
- Due to the nature of this option the following command line options will
- be ignored when this one is used:
- -u SUBJECT
- -o message-header=EMAIL HEADER
- -o message-charset=CHARSET
- -a ATTACHMENT
-
-
-${colorGreen}The Message Body${colorNormal}
-The email message body may be specified in one of three ways:
- 1) Via the -m MESSAGE command line option.
- Example:
- -m "This is the message body"
-
- 2) By putting the message body in a file and using the -o message-file=FILE
- command line option.
- Example:
- -o message-file=/root/message.txt
-
- 3) By piping the message body to sendEmail when nither of the above command
- line options were specified.
- Example:
- grep "ERROR" /var/log/messages | sendEmail -t you\@domain.com ...
-
-If the message body begins with "<html>" then the message will be treated as
-an HTML message and the MIME headers will be written so that a HTML capable
-email client will display the message in it's HTML form.
-Any of the above methods may be used with the -o message-format=raw option
-to deliver an already complete email message.
-
-
-EOM
- last CASE;
- };
-
-
-
-
-
-
-## MISC
- ($topic eq 'misc') && do {
- print <<EOM;
-
-${colorBold}MISC DOCUMENTATION${colorNormal}
-
-${colorGreen}Misc Options${colorNormal}
-Options that don't fit anywhere else:
- -a ATTACHMENT [ATTACHMENT ...]
- -xu USERNAME
- -xp PASSWORD
- -o username=USERNAME
- -o password=PASSWORD
- -o tls=<auto|yes|no>
- -o timeout=SECONDS
- -o fqdn=FQDN
-
--a ATTACHMENT [ATTACHMENT ...]
- This option allows you to attach any number of files to your email message.
- To specify more than one attachment, simply separate each filename with a
- space. Example: -a file1.txt file2.txt file3.txt
-
--xu USERNAME
- Alias for -o username=USERNAME
-
--xp PASSWORD
- Alias for -o password=PASSWORD
-
--o username=USERNAME (synonym for -xu)
- These options allow specification of a username to be used with SMTP
- servers that require authentication. If a username is specified but a
- password is not, you will be prompted to enter one at runtime.
-
--o password=PASSWORD (synonym for -xp)
- These options allow specification of a password to be used with SMTP
- servers that require authentication. If a username is specified but a
- password is not, you will be prompted to enter one at runtime.
-
--o tls=<auto|yes|no>
- This option allows you to specify if TLS (SSL for SMTP) should be enabled
- or disabled. The default, auto, will use TLS automatically if your perl
- installation has the IO::Socket::SSL and Net::SSLeay modules available,
- and if the remote SMTP server supports TLS. To require TLS for message
- delivery set this to yes. To disable TLS support set this to no. A debug
- level of one or higher will reveal details about the status of TLS.
-
--o timeout=SECONDS
- This option sets the timeout value in seconds used for all network reads,
- writes, and a few other things.
-
--o fqdn=FQDN
- This option sets the Fully Qualified Domain Name used during the initial
- SMTP greeting. Normally this is automatically detected, but in case you
- need to manually set it for some reason or get a warning about detection
- failing, you can use this to override the default.
-
-
-EOM
- last CASE;
- };
-
-
-
-
-
-
-## NETWORKING
- ($topic eq 'networking') && do {
- print <<EOM;
-
-${colorBold}NETWORKING DOCUMENTATION${colorNormal}
-
-${colorGreen}Networking Options${colorNormal}
-Options related to networking:
- -s SERVER[:PORT]
- -b BINDADDR[:PORT]
- -o tls=<auto|yes|no>
- -o timeout=SECONDS
-
--s SERVER[:PORT]
- This option allows you to specify the SMTP server sendEmail should
- connect to to deliver your email message to. If this option is not
- specified sendEmail will try to connect to localhost:25 to deliver
- the message. THIS IS MOST LIKELY NOT WHAT YOU WANT, AND WILL LIKELY
- FAIL unless you have a email server (commonly known as an MTA) running
- on your computer!
- Typically you will need to specify your company or ISP's email server.
- For example, if you use CableOne you will need to specify:
- -s mail.cableone.net
- If you have your own email server running on port 300 you would
- probably use an option like this:
- -s myserver.mydomain.com:300
- If you're a GMail user try:
- -s smtp.gmail.com:587 -xu me\@gmail.com -xp PASSWD
-
--b BINDADDR[:PORT]
- This option allows you to specify the local IP address (and optional
- tcp port number) for sendEmail to bind to when connecting to the remote
- SMTP server. This useful for people who need to send an email from a
- specific network interface or source address and are running sendEmail on
- a firewall or other host with several network interfaces.
-
--o tls=<auto|yes|no>
- This option allows you to specify if TLS (SSL for SMTP) should be enabled
- or disabled. The default, auto, will use TLS automatically if your perl
- installation has the IO::Socket::SSL and Net::SSLeay modules available,
- and if the remote SMTP server supports TLS. To require TLS for message
- delivery set this to yes. To disable TLS support set this to no. A debug
- level of one or higher will reveal details about the status of TLS.
-
--o timeout=SECONDS
- This option sets the timeout value in seconds used for all network reads,
- writes, and a few other things.
-
-
-EOM
- last CASE;
- };
-
-
-
-
-
-
-## OUTPUT
- ($topic eq 'output') && do {
- print <<EOM;
-
-${colorBold}OUTPUT DOCUMENTATION${colorNormal}
-
-${colorGreen}Output Options${colorNormal}
-Options related to output:
- -l LOGFILE
- -v
- -q
-
--l LOGFILE
- This option allows you to specify a log file to append to. Every message
- that is displayed to STDOUT is also written to the log file. This may be
- used in conjunction with -q and -v.
-
--q
- This option tells sendEmail to disable printing to STDOUT. In other
- words nothing will be printed to the console. This does not affect the
- behavior of the -l or -v options.
-
--v
- This option allows you to increase the debug level of sendEmail. You may
- either use this option more than once, or specify more than one v at a
- time to obtain a debug level higher than one. Examples:
- Specifies a debug level of 1: -v
- Specifies a debug level of 2: -vv
- Specifies a debug level of 2: -v -v
- A debug level of one is recommended when doing any sort of debugging.
- At that level you will see the entire SMTP transaction (except the
- body of the email message), and hints will be displayed for most
- warnings and errors. The highest debug level is three.
-
-
-EOM
- last CASE;
- };
-
- ## Unknown option selected!
- quit("ERROR => The help topic specified is not valid!", 1);
- };
-
-exit(1);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#############################
-## ##
-## MAIN PROGRAM ##
-## ##
-#############################
-
-
-## Initialize
-initialize();
-
-## Process Command Line
-processCommandLine();
-$conf{'alarm'} = $opt{'timeout'};
-
-## Abort program after $conf{'alarm'} seconds to avoid infinite hangs
-alarm($conf{'alarm'}) if ($^O !~ /win/i); ## alarm() doesn't work in win32
-
-
-
-
-###################################################
-## Read $message from STDIN if -m was not used ##
-###################################################
-
-if (!($message)) {
- ## Read message body from a file specified with -o message-file=
- if ($opt{'message-file'}) {
- if (! -e $opt{'message-file'}) {
- printmsg("ERROR => Message body file specified [$opt{'message-file'}] does not exist!", 0);
- printmsg("HINT => 1) check spelling of your file; 2) fully qualify the path; 3) doubble quote it", 1);
- quit("", 1);
- }
- if (! -r $opt{'message-file'}) {
- printmsg("ERROR => Message body file specified can not be read due to restricted permissions!", 0);
- printmsg("HINT => Check permissions on file specified to ensure it can be read", 1);
- quit("", 1);
- }
- if (!open(MFILE, "< " . $opt{'message-file'})) {
- printmsg("ERROR => Error opening message body file [$opt{'message-file'}]: $!", 0);
- quit("", 1);
- }
- while (<MFILE>) {
- $message .= $_;
- }
- close(MFILE);
- }
-
- ## Read message body from STDIN
- else {
- alarm($conf{'alarm'}) if ($^O !~ /win/i); ## alarm() doesn't work in win32
- if ($conf{'stdout'}) {
- print "Reading message body from STDIN because the '-m' option was not used.\n";
- print "If you are manually typing in a message:\n";
- print " - First line must be received within $conf{'alarm'} seconds.\n" if ($^O !~ /win/i);
- print " - End manual input with a CTRL-D on its own line.\n\n" if ($^O !~ /win/i);
- print " - End manual input with a CTRL-Z on its own line.\n\n" if ($^O =~ /win/i);
- }
- while (<STDIN>) { ## Read STDIN into $message
- $message .= $_;
- alarm(0) if ($^O !~ /win/i); ## Disable the alarm since at least one line was received
- }
- printmsg("Message input complete.", 0);
- }
-}
-
-## Replace bare LF's with CRLF's (\012 should always have \015 with it)
-$message =~ s/(\015)?(\012|$)/\015\012/g;
-
-## Replace bare CR's with CRLF's (\015 should always have \012 with it)
-$message =~ s/(\015)(\012|$)?/\015\012/g;
-
-## Check message for bare periods and encode them
-$message =~ s/(^|$CRLF)(\.{1})($CRLF|$)/$1.$2$3/g;
-
-## Get the current date for the email header
-my ($sec,$min,$hour,$mday,$mon,$year,$day) = gmtime();
-$year += 1900; $mon = return_month($mon); $day = return_day($day);
-my $date = sprintf("%s, %s %s %d %.2d:%.2d:%.2d %s",$day, $mday, $mon, $year, $hour, $min, $sec, $conf{'timezone'});
-
-
-
-
-##################################
-## Connect to the SMTP server ##
-##################################
-printmsg("DEBUG => Connecting to $conf{'server'}:$conf{'port'}", 1);
-$SIG{'ALRM'} = sub {
- printmsg("ERROR => Timeout while connecting to $conf{'server'}:$conf{'port'} There was no response after $conf{'alarm'} seconds.", 0);
- printmsg("HINT => Try specifying a different mail relay with the -s option.", 1);
- quit("", 1);
-};
-alarm($conf{'alarm'}) if ($^O !~ /win/i); ## alarm() doesn't work in win32;
-$SERVER = IO::Socket::INET->new( PeerAddr => $conf{'server'},
- PeerPort => $conf{'port'},
- LocalAddr => $conf{'bindaddr'},
- Proto => 'tcp',
- Autoflush => 1,
- timeout => $conf{'alarm'},
-);
-alarm(0) if ($^O !~ /win/i); ## alarm() doesn't work in win32;
-
-## Make sure we got connected
-if ( (!$SERVER) or (!$SERVER->opened()) ) {
- printmsg("ERROR => Connection attempt to $conf{'server'}:$conf{'port'} failed: $@", 0);
- printmsg("HINT => Try specifying a different mail relay with the -s option.", 1);
- quit("", 1);
-}
-
-## Save our IP address for later
-$conf{'ip'} = $SERVER->sockhost();
-printmsg("DEBUG => My IP address is: $conf{'ip'}", 1);
-
-
-
-
-
-
-
-#########################
-## Do the SMTP Dance ##
-#########################
-
-## Read initial greeting to make sure we're talking to a live SMTP server
-if (SMTPchat()) { quit($conf{'error'}, 1); }
-
-## We're about to use $opt{'fqdn'}, make sure it isn't empty
-if (!$opt{'fqdn'}) {
- ## Ok, that means we couldn't get a hostname, how about using the IP address for the HELO instead
- $opt{'fqdn'} = "[" . $conf{'ip'} . "]";
-}
-
-## EHLO
-if (SMTPchat('EHLO ' . $opt{'fqdn'})) {
- printmsg($conf{'error'}, 0);
- printmsg("NOTICE => EHLO command failed, attempting HELO instead");
- if (SMTPchat('HELO ' . $opt{'fqdn'})) { quit($conf{'error'}, 1); }
- if ( $opt{'username'} and $opt{'password'} ) {
- printmsg("WARNING => The mail server does not support SMTP authentication!", 0);
- }
-}
-else {
-
- ## Determin if the server supports TLS
- if ($conf{'SMTPchat_response'} =~ /STARTTLS/) {
- $conf{'tls_server'} = 1;
- printmsg("DEBUG => The remote SMTP server supports TLS :)", 2);
- }
- else {
- $conf{'tls_server'} = 0;
- printmsg("DEBUG => The remote SMTP server does NOT support TLS :(", 2);
- }
-
- ## Start TLS if possible
- if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
- printmsg("DEBUG => Starting TLS", 2);
- if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
- if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv3:!SSLv2', , SSL_verify_mode => 0)) {
- quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
- }
- printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);
- printmsg("DEBUG => TLS session initialized :)", 1);
-
- ## Restart our SMTP session
- if (SMTPchat('EHLO ' . $opt{'fqdn'})) { quit($conf{'error'}, 1); }
- }
- elsif ($opt{'tls'} eq 'yes' and $conf{'tls_server'} == 0) {
- quit("ERROR => TLS not possible! Remote SMTP server, $conf{'server'}, does not support it.", 1);
- }
-
-
- ## Do SMTP Auth if required
- if ( $opt{'username'} and $opt{'password'} ) {
- if ($conf{'SMTPchat_response'} !~ /AUTH\s/) {
- printmsg("NOTICE => Authentication not supported by the remote SMTP server!", 0);
- }
- else {
- my $auth_succeeded = 0;
- my $mutual_method = 0;
-
- # ## SASL CRAM-MD5 authentication method
- # if ($conf{'SMTPchat_response'} =~ /\bCRAM-MD5\b/i) {
- # printmsg("DEBUG => SMTP-AUTH: Using CRAM-MD5 authentication method", 1);
- # if (SMTPchat('AUTH CRAM-MD5')) { quit($conf{'error'}, 1); }
- #
- # ## FIXME!!
- #
- # printmsg("DEBUG => User authentication was successful", 1);
- # }
-
- ## SASL LOGIN authentication method
- if ($auth_succeeded == 0 and $conf{'SMTPchat_response'} =~ /\bLOGIN\b/i) {
- $mutual_method = 1;
- printmsg("DEBUG => SMTP-AUTH: Using LOGIN authentication method", 1);
- if (!SMTPchat('AUTH LOGIN')) {
- if (!SMTPchat(base64_encode($opt{'username'}))) {
- if (!SMTPchat(base64_encode($opt{'password'}))) {
- $auth_succeeded = 1;
- printmsg("DEBUG => User authentication was successful (Method: LOGIN)", 1);
- }
- }
- }
- if ($auth_succeeded == 0) {
- printmsg("DEBUG => SMTP-AUTH: LOGIN authenticaion failed.", 1);
- }
- }
-
- ## SASL PLAIN authentication method
- if ($auth_succeeded == 0 and $conf{'SMTPchat_response'} =~ /\bPLAIN\b/i) {
- $mutual_method = 1;
- printmsg("DEBUG => SMTP-AUTH: Using PLAIN authentication method", 1);
- if (SMTPchat('AUTH PLAIN ' . base64_encode("$opt{'username'}\0$opt{'username'}\0$opt{'password'}"))) {
- printmsg("DEBUG => SMTP-AUTH: PLAIN authenticaion failed.", 1);
- }
- else {
- $auth_succeeded = 1;
- printmsg("DEBUG => User authentication was successful (Method: PLAIN)", 1);
- }
- }
-
- ## If none of the authentication methods supported by sendEmail were supported by the server, let the user know
- if ($mutual_method == 0) {
- printmsg("WARNING => SMTP-AUTH: No mutually supported authentication methods available", 0);
- }
-
- ## If we didn't get authenticated, log an error message and exit
- if ($auth_succeeded == 0) {
- quit("ERROR => ERROR => SMTP-AUTH: Authentication to $conf{'server'}:$conf{'port'} failed.", 1);
- }
- }
- }
-}
-
-## MAIL FROM
-if (SMTPchat('MAIL FROM:<' .(returnAddressParts($from))[1]. '>')) { quit($conf{'error'}, 1); }
-
-## RCPT TO
-my $oneRcptAccepted = 0;
-foreach my $rcpt (@to, @cc, @bcc) {
- my ($name, $address) = returnAddressParts($rcpt);
- if (SMTPchat('RCPT TO:<' . $address . '>')) {
- printmsg("WARNING => The recipient <$address> was rejected by the mail server, error follows:", 0);
- $conf{'error'} =~ s/^ERROR/WARNING/o;
- printmsg($conf{'error'}, 0);
- }
- elsif ($oneRcptAccepted == 0) {
- $oneRcptAccepted = 1;
- }
-}
-## If no recipients were accepted we need to exit with an error.
-if ($oneRcptAccepted == 0) {
- quit("ERROR => Exiting. No recipients were accepted for delivery by the mail server.", 1);
-}
-
-## DATA
-if (SMTPchat('DATA')) { quit($conf{'error'}, 1); }
-
-
-###############################
-## Build and send the body ##
-###############################
-printmsg("INFO => Sending message body",1);
-
-## If the message-format is raw just send the message as-is.
-if ($opt{'message-format'} =~ /^raw$/i) {
- print $SERVER $message;
-}
-
-## If the message-format isn't raw, then build and send the message,
-else {
-
- ## Message-ID: <MessageID>
- if ($opt{'message-header'} !~ /^Message-ID:/iom) {
- $header .= 'Message-ID: <' . $conf{'Message-ID'} . '@' . $conf{'hostname'} . '>' . $CRLF;
- }
-
- ## From: "Name" <address@domain.com> (the pointless test below is just to keep scoping correct)
- if ($from and $opt{'message-header'} !~ /^From:/iom) {
- my ($name, $address) = returnAddressParts($from);
- $header .= 'From: "' . $name . '" <' . $address . '>' . $CRLF;
- }
-
- ## Reply-To:
- if ($opt{'reply-to'} and $opt{'message-header'} !~ /^Reply-To:/iom) {
- my ($name, $address) = returnAddressParts($opt{'reply-to'});
- $header .= 'Reply-To: "' . $name . '" <' . $address . '>' . $CRLF;
- }
-
- ## To: "Name" <address@domain.com>
- if ($opt{'message-header'} =~ /^To:/iom) {
- ## The user put the To: header in via -o message-header - dont do anything
- }
- elsif (scalar(@to) > 0) {
- $header .= "To:";
- for (my $a = 0; $a < scalar(@to); $a++) {
- my $msg = "";
-
- my ($name, $address) = returnAddressParts($to[$a]);
- $msg = " \"$name\" <$address>";
-
- ## If we're not on the last address add a comma to the end of the line.
- if (($a + 1) != scalar(@to)) {
- $msg .= ",";
- }
-
- $header .= $msg . $CRLF;
- }
- }
- ## We always want a To: line so if the only recipients were bcc'd they don't see who it was sent to
- else {
- $header .= "To: \"Undisclosed Recipients\" <>$CRLF";
- }
-
- if (scalar(@cc) > 0 and $opt{'message-header'} !~ /^Cc:/iom) {
- $header .= "Cc:";
- for (my $a = 0; $a < scalar(@cc); $a++) {
- my $msg = "";
-
- my ($name, $address) = returnAddressParts($cc[$a]);
- $msg = " \"$name\" <$address>";
-
- ## If we're not on the last address add a comma to the end of the line.
- if (($a + 1) != scalar(@cc)) {
- $msg .= ",";
- }
-
- $header .= $msg . $CRLF;
- }
- }
-
- if ($opt{'message-header'} !~ /^Subject:/iom) {
- $header .= 'Subject: ' . $subject . $CRLF; ## Subject
- }
- if ($opt{'message-header'} !~ /^Date:/iom) {
- $header .= 'Date: ' . $date . $CRLF; ## Date
- }
- if ($opt{'message-header'} !~ /^X-Mailer:/iom) {
- $header .= 'X-Mailer: sendEmail-'.$conf{'version'}.$CRLF; ## X-Mailer
- }
- ## I wonder if I should put this in by default?
- # if ($opt{'message-header'} !~ /^X-Originating-IP:/iom) {
- # $header .= 'X-Originating-IP: ['.$conf{'ip'}.']'.$CRLF; ## X-Originating-IP
- # }
-
- ## Encode all messages with MIME.
- if ($opt{'message-header'} !~ /^MIME-Version:/iom) {
- $header .= "MIME-Version: 1.0$CRLF";
- }
- if ($opt{'message-header'} !~ /^Content-Type:/iom) {
- my $content_type = 'multipart/mixed';
- if (scalar(@attachments) == 0) { $content_type = 'multipart/related'; }
- $header .= "Content-Type: $content_type; boundary=\"$conf{'delimiter'}\"$CRLF";
- }
-
- ## Send additional message header line(s) if specified
- if ($opt{'message-header'}) {
- $header .= $opt{'message-header'};
- }
-
- ## Send the message header to the server
- print $SERVER $header . $CRLF;
-
- ## Start sending the message body to the server
- print $SERVER "This is a multi-part message in MIME format. To properly display this message you need a MIME-Version 1.0 compliant Email program.$CRLF";
- print $SERVER "$CRLF";
-
-
- ## Send message body
- print $SERVER "--$conf{'delimiter'}$CRLF";
- ## Send a message content-type header:
- ## If the message contains HTML...
- if ($opt{'message-content-type'} eq 'html' or ($opt{'message-content-type'} eq 'auto' and $message =~ /^\s*(<HTML|<!DOCTYPE)/i) ) {
- printmsg("Setting content-type: text/html", 1);
- print $SERVER "Content-Type: text/html;$CRLF";
- }
- ## Otherwise assume it's plain text...
- elsif ($opt{'message-content-type'} eq 'text' or $opt{'message-content-type'} eq 'auto') {
- printmsg("Setting content-type: text/plain", 1);
- print $SERVER "Content-Type: text/plain;$CRLF";
- }
- ## If they've specified their own content-type string...
- else {
- printmsg("Setting custom content-type: ".$opt{'message-content-type'}, 1);
- print $SERVER "Content-Type: ".$opt{'message-content-type'}.";$CRLF";
- }
- print $SERVER " charset=\"" . $opt{'message-charset'} . "\"$CRLF";
- print $SERVER "Content-Transfer-Encoding: 7bit$CRLF";
- print $SERVER $CRLF . $message;
-
-
-
- ## Send Attachemnts
- if (scalar(@attachments) > 0) {
- ## Disable the alarm so people on modems can send big attachments
- alarm(0) if ($^O !~ /win/i); ## alarm() doesn't work in win32
-
- ## Send the attachments
- foreach my $filename (@attachments) {
- ## This is check 2, we already checked this above, but just in case...
- if ( ! -f $filename ) {
- printmsg("ERROR => The file [$filename] doesn't exist! Email will be sent, but without that attachment.", 0);
- }
- elsif ( ! -r $filename ) {
- printmsg("ERROR => Couldn't open the file [$filename] for reading: $! Email will be sent, but without that attachment.", 0);
- }
- else {
- printmsg("DEBUG => Sending the attachment [$filename]", 1);
- send_attachment($filename);
- }
- }
- }
-
-
- ## End the mime encoded message
- print $SERVER "$CRLF--$conf{'delimiter'}--$CRLF";
-}
-
-
-## Tell the server we are done sending the email
-print $SERVER "$CRLF.$CRLF";
-if (SMTPchat()) { quit($conf{'error'}, 1); }
-
-
-
-####################
-# We are done!!! #
-####################
-
-## Disconnect from the server (don't SMTPchat(), it breaks when using TLS)
-print $SERVER "QUIT$CRLF";
-close $SERVER;
-
-
-
-
-
-
-#######################################
-## Generate exit message/log entry ##
-#######################################
-
-if ($conf{'debug'} or $conf{'logging'}) {
- printmsg("Generating a detailed exit message", 3);
-
- ## Put the message together
- my $output = "Email was sent successfully! From: <" . (returnAddressParts($from))[1] . "> ";
-
- if (scalar(@to) > 0) {
- $output .= "To: ";
- for ($a = 0; $a < scalar(@to); $a++) {
- $output .= "<" . (returnAddressParts($to[$a]))[1] . "> ";
- }
- }
- if (scalar(@cc) > 0) {
- $output .= "Cc: ";
- for ($a = 0; $a < scalar(@cc); $a++) {
- $output .= "<" . (returnAddressParts($cc[$a]))[1] . "> ";
- }
- }
- if (scalar(@bcc) > 0) {
- $output .= "Bcc: ";
- for ($a = 0; $a < scalar(@bcc); $a++) {
- $output .= "<" . (returnAddressParts($bcc[$a]))[1] . "> ";
- }
- }
- $output .= "Subject: [$subject] " if ($subject);
- if (scalar(@attachments_names) > 0) {
- $output .= "Attachment(s): ";
- foreach(@attachments_names) {
- $output .= "[$_] ";
- }
- }
- $output .= "Server: [$conf{'server'}:$conf{'port'}]";
-
-
-######################
-# Exit the program #
-######################
-
- ## Print / Log the detailed message
- quit($output, 0);
-}
-else {
- ## Or the standard message
- quit("Email was sent successfully!", 0);
-}
-
+++ /dev/null
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="fld" horiz-adv-x="1024">
-<font-face units-per-em="1024" ascent="960" descent="-64" />
-<missing-glyph horiz-adv-x="1024" />
-<glyph unicode=" " horiz-adv-x="512" d="" />
-<glyph unicode="" glyph-name="season" d="M74.256 571.392v-526.224h860.448v526.224zM0 795.808h204.832v-166.48h170.672v166.48h290.080v-166.48h170.704v166.48h187.712v-819.264h-1024zM708.256 919.52h85.376v-247.52h-85.376zM247.504 919.52h85.328v-247.52h-85.328zM345.109 491.774v-125.272h318.976v125.272l134.141-178.244-134.141-178.259v125.287h-318.976v-125.287l-134.141 178.259z" />
-<glyph unicode="" glyph-name="address" d="M800 832h-480c-0.001 0-0.002 0-0.003 0-70.691 0-127.997-57.306-127.997-127.997 0-0.001 0-0.002 0-0.003v0-512c0-70.692 57.308-128 128-128v0h480c17.673 0 32 14.327 32 32v0 64h-512c-17.673 0-32 14.327-32 32s14.327 32 32 32v0h512v576c0 17.673-14.327 32-32 32v0zM642.012 368.25c0-0.001 0-0.001 0-0.002 0-8.974-7.274-16.248-16.248-16.248-0.001 0-0.003 0-0.004 0h-227.52c-0.001 0-0.003 0-0.004 0-8.974 0-16.248 7.274-16.248 16.248 0 0.001 0 0.001 0 0.002v0 30.918c0.002 11.475 5.947 21.561 14.924 27.348l0.128 0.077 49.947 31.773-4.711 37.672c-11.313 5.176-20.058 14.331-24.579 25.633l-0.113 0.319-3.48 10.437c-0.96 2.477-1.516 5.344-1.516 8.341 0 4.42 1.21 8.558 3.316 12.1l-0.060-0.109v58.58c0 53.105 43.050 96.154 96.154 96.154s96.154-43.050 96.154-96.154v-58.578c2.046-3.433 3.256-7.571 3.256-11.991 0-2.997-0.556-5.864-1.571-8.503l0.055 0.162-3.48-10.437c-4.633-11.621-13.379-20.776-24.396-25.831l-0.295-0.121-4.71-37.672 49.947-31.773c9.106-5.864 15.051-15.95 15.053-27.425v0zM992 320v-96c0-17.673-14.327-32-32-32v0h-64v160h64c17.673 0 32-14.327 32-32v0zM992 544v-96c0-17.673-14.327-32-32-32v0h-64v160h64c17.673 0 32-14.327 32-32v0zM992 768v-96c0-17.673-14.327-32-32-32v0h-64v160h64c17.673 0 32-14.327 32-32v0z" />
-<glyph unicode="" glyph-name="code" d="M684.251 763.073l339.893-251.789v-131.2l-339.893-250.662v136.459l222.52 178.772v2.121l-222.52 178.783zM339.941 763.073v-136.519l-222.478-178.771v-2.063l222.478-178.84v-137.458l-339.941 251.719v131.21zM543.108 906.232l92.079-15.94-155.219-900.571-92.020 15.881z" />
-<glyph unicode="" glyph-name="documents" d="M301.347 410.718v-155.408h72.277v82.877h267.51v-82.877h72.62v155.408zM74.104 686.18v-82.471h866.943v82.471l30.484-30.67c30.546-30.641 52.389-38.879 40.118-103.597-12.236-64.501-71.375-418.254-80.171-466.116-9.667-52.479-63.044-51.798-63.044-51.798h-721.747c0 0-53.375-0.68-63.009 51.798-8.796 47.863-67.967 401.616-80.204 466.116-12.266 64.717 9.571 72.956 40.115 103.597zM146.677 759.102h721.749v-103.59h-721.749zM249.767 862.691h515.569v-51.795h-515.569z" />
-<glyph unicode="" glyph-name="find" d="M1024 73.984l-275.499 275.499c89.685 152.917 67.328 355.541-66.731 489.6-158.336 158.464-413.056 161.536-567.765 6.827-154.624-154.624-151.595-409.344 6.827-567.808 137.984-137.899 348.8-157.909 503.083-58.88l271.829-273.493 128.256 128.256zM205.525 362.752c-110.507 110.677-112.683 288.469-4.736 396.416 107.904 107.989 285.824 105.813 396.373-4.736 110.507-110.507 112.683-288.384 4.651-396.288-107.947-108.032-285.653-105.856-396.288 4.608z" />
-<glyph unicode="" glyph-name="excel" d="M789.441 241.11v-102.216h168.092v102.216zM789.441 373.99v-102.216h168.092v102.216zM789.441 506.871v-102.216h168.092v102.216zM345.376 635.776l-51.108-127.204-43.156 115.844h-69.282l70.42-166.952-78.365-165.819h68.144l51.108 118.12 51.108-129.471h74.959l-86.318 182.848 80.635 172.633zM789.441 639.751v-102.216h168.092v102.216zM789.441 772.631v-102.216h168.092v102.216zM608.293 830.554h402.053c7.527 0 13.629-6.102 13.629-13.629v-729.139c0-7.533-6.102-13.625-13.629-13.625h-402.053v64.733h149.918v102.216h-149.918v30.665h149.918v102.216h-149.918v30.665h149.918v102.216h-149.918v30.663h149.918v102.216h-149.918v30.665h149.918v102.216h-149.918zM589.444 943.748v-991.49l-589.444 102.216v787.058z" />
-<glyph unicode="" glyph-name="image" d="M0 871.168v-834.389h1024v834.389h-1024zM296.96 745.771c70.571 0 127.701-57.173 127.701-127.701s-57.131-127.744-127.701-127.744c-70.443 0-127.659 57.173-127.659 127.744s57.216 127.701 127.659 127.701zM100.437 147.669l241.024 226.987 82.133-16.896 120.533 98.261 82.091-111.872 153.344 213.419 153.6-409.941h-832.725z" />
-<glyph unicode="" glyph-name="library" d="M576 832h-160c-17.673 0-32-14.327-32-32v0-704c0-17.673 14.327-32 32-32v0h160c17.673 0 32 14.327 32 32v0 704c0 17.673-14.327 32-32 32v0zM544 144c0-8.837-7.163-16-16-16v0h-64c-8.837 0-16 7.163-16 16v0 32c0 8.837 7.163 16 16 16v0h64c8.837 0 16-7.163 16-16v0zM544 720c0-8.837-7.163-16-16-16v0h-64c-8.837 0-16 7.163-16 16v0 32c0 8.837 7.163 16 16 16v0h64c8.837 0 16-7.163 16-16v0zM865.174 814.101c-2.739 15.123-15.804 26.443-31.514 26.443-1.964 0-3.886-0.177-5.752-0.516l0.195 0.029-157.568-27.783c-15.123-2.739-26.443-15.804-26.443-31.514 0-1.964 0.177-3.886 0.516-5.752l-0.029 0.195 122.248-693.305c2.737-15.123 15.802-26.444 31.512-26.444 1.964 0 3.888 0.177 5.754 0.516l-0.195-0.029 157.568 27.783c15.123 2.737 26.443 15.802 26.443 31.511 0 1.964-0.177 3.888-0.516 5.754l0.029-0.195zM903.082 138.418l-63.029-11.113c-0.835-0.154-1.795-0.243-2.776-0.243-7.855 0-14.388 5.66-15.745 13.123l-0.015 0.098-5.556 31.514c-0.155 0.835-0.243 1.797-0.243 2.778 0 7.855 5.66 14.387 13.124 15.742l0.098 0.015 63.029 11.115c0.835 0.154 1.795 0.243 2.776 0.243 7.855 0 14.388-5.66 15.745-13.123l0.015-0.098 5.556-31.516c0.154-0.835 0.243-1.795 0.243-2.776 0-7.855-5.66-14.388-13.124-15.744l-0.098-0.015zM288 832h-160c-17.673 0-32-14.327-32-32v0-704c0-17.673 14.327-32 32-32v0h160c17.673 0 32 14.327 32 32v0 704c0 17.673-14.327 32-32 32v0zM256 144c0-8.837-7.163-16-16-16v0h-64c-8.837 0-16 7.163-16 16v0 32c0 8.837 7.163 16 16 16v0h64c8.837 0 16-7.163 16-16v0zM256 720c0-8.837-7.163-16-16-16v0h-64c-8.837 0-16 7.163-16 16v0 32c0 8.837 7.163 16 16 16v0h64c8.837 0 16-7.163 16-16v0z" />
-<glyph unicode="" glyph-name="star" d="M875.125 506.258l-204.547-148.578 77.998-240.192c0.65-1.932 1.025-4.157 1.025-6.47 0-11.561-9.372-20.932-20.932-20.932-0.003 0-0.006 0-0.009 0v0c-4.595 0.025-8.829 1.553-12.24 4.116l0.053-0.038-204.342 148.426-204.344-148.426c-3.358-2.525-7.592-4.053-12.182-4.078h-0.006c-0.002 0-0.004 0-0.006 0-11.562 0-20.934 9.373-20.934 20.934 0 2.312 0.375 4.536 1.067 6.616l-0.043-0.148 77.998 240.192-204.547 148.578c-5.239 3.837-8.603 9.966-8.603 16.88 0 11.522 9.34 20.862 20.862 20.862 0 0 0 0 0 0h252.793l78.1 240.5c2.803 8.438 10.625 14.417 19.843 14.417s17.040-5.978 19.8-14.27l0.042-0.147 78.099-240.5h252.793c11.521-0.003 20.859-9.343 20.859-20.864 0-6.913-3.362-13.041-8.54-16.837l-0.058-0.041z" />
-<glyph unicode="" glyph-name="log" d="M484.605 523.186c-29.216 0-46.245-27.795-46.245-64.947 0-37.435 17.56-63.807 46.528-63.807 29.216 0 45.967 27.778 45.967 64.933 0 34.325-16.468 63.821-46.25 63.821zM264.531 554.432h43.398v-154.911h76.017v-36.306h-119.415zM708.043 556.399c24.685 0 43.682-4.829 53.027-9.343l-9.062-34.624c-10.53 4.514-23.562 8.203-44.529 8.203-36.031 0-63.308-20.39-63.308-61.828 0-39.451 24.721-62.687 60.152-62.687 9.969 0 17.908 1.111 21.279 2.846v40h-29.465v33.734h71.179v-100.705c-13.341-4.546-38.556-10.797-63.804-10.797-34.906 0-60.152 8.813-77.745 25.86-17.593 16.421-27.216 41.407-26.936 69.469 0.281 63.561 46.528 99.872 109.211 99.872zM485.733 557.527c58.746 0 90.774-43.996 90.774-96.728 0-62.681-37.999-100.729-93.901-100.729-56.716 0-89.901 42.842-89.901 97.306 0 57.313 36.562 100.15 93.028 100.15zM192.874 899.427v-898.747h449.428l-0.689 224.562 185.203-0.187v674.372zM132.35 960h759.397v-807.847l-193.105-216.081h-566.292z" />
-<glyph unicode="" glyph-name="logout" d="M802.658 802.445l-320 26.668c-0.736 0.061-1.594 0.096-2.459 0.096-16.632 0-30.273-12.806-31.6-29.096l-0.007-0.113h-0.592v-672h0.592c1.335-16.401 14.974-29.205 31.604-29.205 0.867 0 1.725 0.035 2.575 0.103l-0.112-0.007 320 26.664c16.491 1.418 29.341 15.154 29.342 31.891v0 613.109c0 0 0 0.001 0 0.001 0 16.737-12.85 30.474-29.223 31.881l-0.119 0.008zM544 416c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32v0c0-17.673-14.327-32-32-32v0zM256 800h128v-64h-128v-544h128v-64h-128c-35.327 0.047-63.953 28.673-64 63.995v544.005c0.047 35.327 28.673 63.953 63.995 64h0.005z" />
-<glyph unicode="" glyph-name="date" d="M882.176 786.688v81.067c0 50.859-41.344 92.245-92.16 92.245s-92.245-41.387-92.245-92.245v-81.067h-365.952v81.067c0 50.859-41.387 92.245-92.245 92.245-50.816 0-92.203-41.387-92.203-92.245v-81.067h-147.371v-850.688h1024v850.688h-141.824zM735.488 854.955c0 18.688 7.339 35.243 18.688 46.677 0.768 0.811 1.579 1.493 2.432 2.261 4.096 3.669 8.491 6.827 13.397 9.088 0.768 0.299 1.493 0.512 2.176 0.768 5.76 2.304 11.733 3.797 18.176 3.797 30.336 0 54.912-28.032 54.912-62.592v-152.96c0-34.56-24.576-62.592-54.912-62.592-30.251 0-54.827 28.032-54.827 62.592v152.96zM793.771 534.656v-154.069h-156.544v154.069h156.544zM438.016 337.92h156.544v-158.293h-156.544v158.293zM395.349 179.627h-156.544v158.293h156.544v-158.293zM438.016 380.587v154.069h156.544v-154.069h-156.544zM637.227 337.92h156.544v-158.293h-156.544v158.293zM395.349 534.656v-154.069h-156.544v154.069h156.544zM184.747 857.6c0 34.56 24.576 62.592 54.827 62.592 30.293 0 54.869-28.032 54.869-62.592v-152.96c0-34.56-24.576-62.592-54.869-62.592-30.251 0-54.827 28.032-54.827 62.592v152.96zM196.139 534.656v-154.069h-153.472v154.069h153.472zM42.667 337.92h153.472v-158.293h-153.472v158.293zM42.667-21.333v158.293h153.472v-158.293h-153.472zM238.805-21.333v158.293h156.544v-158.293h-156.544zM438.016-21.333v158.293h156.544v-158.293h-156.544zM637.227-21.333v158.293h156.544v-158.293h-156.544zM981.333-21.333h-144.896v158.293h144.896v-158.293zM981.333 179.627h-144.896v158.293h144.896v-158.293zM836.437 380.587v154.069h144.896v-154.069h-144.896z" />
-<glyph unicode="" glyph-name="numberlist" d="M448 544v32c0 17.673 14.327 32 32 32v0h256c17.673 0 32-14.327 32-32v0-32c0-17.673-14.327-32-32-32v0h-256c-17.673 0-32 14.327-32 32v0zM736 224h-256c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h256c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0zM864 416h-384c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h384c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0zM864 800h-384c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h384c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0zM320 224h-78.375c5.243 9.382 13.594 16.497 23.633 20.032l0.305 0.093c18.844 6.72 76.156 27.094 76.156 85.031-0.068 47.946-38.926 86.794-86.87 86.844h-0.005c-32.111-0.153-60.674-15.208-79.15-38.599l-0.163-0.214c-4.685-5.53-7.533-12.745-7.533-20.626 0-17.674 14.328-32.002 32.002-32.002 9.794 0 18.56 4.399 24.43 11.33l0.039 0.047c6.893 9.542 17.877 15.76 30.328 16.063l0.047 0.001c12.621-0.003 22.854-10.225 22.875-22.842v-0.002c0-3.812 0-12.781-33.625-24.719-43.636-17.22-73.949-59.019-73.949-107.899 0-2.19 0.061-4.366 0.181-6.526l-0.013 0.3c0.935-16.931 14.889-30.307 31.968-30.313h117.719c17.673 0 32 14.327 32 32s-14.327 32-32 32v0zM214.624 681.376l9.376 9.374v-114.75c0-17.673 14.327-32 32-32s32 14.327 32 32v0 192c0 0 0 0 0 0 0 17.672-14.326 31.997-31.997 31.997-8.837 0-16.836-3.582-22.627-9.373l-64-64c-5.668-5.769-9.168-13.685-9.168-22.419 0-17.671 14.325-31.996 31.996-31.996 8.734 0 16.65 3.499 22.424 9.172l-0.005-0.005z" />
-<glyph unicode="" glyph-name="package" d="M734.549 503.648l-380.418 258.141 126.775 76.055 383.994-255.984zM293.65 725.5l-132.754-79.641 384.006-256 129.17 77.5zM128 334.875l384-255.992v255.992l-384 256zM768 449.078v-86.93c0-0.002 0-0.003 0-0.005 0-5.797-3.082-10.875-7.697-13.683l-0.071-0.040-32-19.195c-2.35-1.432-5.192-2.28-8.232-2.28-8.836 0-15.999 7.163-16 15.999v0 67.744l-128-76.804v-255.984l320 191.976v256.007z" />
-<glyph unicode="" glyph-name="pdf1" d="M200.571 163.069c-65.7-20.885-113.75-73.848-130.451-94.215 0.202 3.96-6.842-8.705-6.842-8.705s2.706 3.609 6.842 8.705c-0.062-1.554-1.135-5.38-4.261-13.7-11.29-29.974 23.636-29.205 23.636-29.205 99.024 16.106 111.076 137.121 111.076 137.121zM767.851 265.049c-18.402 0.001-29.754-1.181-29.754-1.181 105.384-92.26 203.398-70.757 203.398-70.757 40.12 5.38-21.102 42.521-21.102 42.521-56.586 25.098-117.411 29.415-152.542 29.417zM407.732 514.149c0 0-38.052-198.070-85.604-256.815l263.733 42.154c0 0-131.431 126.545-178.128 214.661zM413.841 879.988c-0.327 0.031-0.655 0.025-0.984-0.018-2.95-0.391-5.989-3.865-8.935-12.118 0 0-14.213-73.113 21.382-194.629 0 0 30.308 96.404 7.495 170.219 0 0-8.827 35.592-18.958 36.546zM380.637 959.983c28.069 1.161 53.374-56.91 53.374-56.91 78.685-180.728 4.276-296.195 4.276-296.195 77.907-197.402 234.047-302.811 234.047-302.811 151.708 8.755 262.38-32.43 262.38-32.43 87.066-49.221 57.909-95.201 57.909-95.201-91.233-109.402-359.227 61.184-359.227 61.184l-345.434-62.554c-49.916-183.551-216.724-226.674-216.724-226.674-79.509-12.464-68.639 76.672-68.639 76.672 62.061 146.761 218.123 180.527 218.123 180.527 61.47 70.59 161.941 402.39 161.941 402.39-101.512 245.186-30.183 326.754-30.183 326.754 9.136 17.894 18.799 24.862 28.156 25.249z" />
-<glyph unicode="" glyph-name="pdfexport" d="M186.878 198.357c-61.858-18.302-107.102-64.709-122.827-82.566 0.191 3.469-6.445-7.624-6.445-7.624s2.548 3.151 6.445 7.624c-0.066-1.354-1.068-4.711-4.028-12.017-10.629-26.259 22.267-25.589 22.267-25.589 93.244 14.117 104.589 120.172 104.589 120.172zM721.065 287.733c-17.328 0.001-28.016-1.035-28.016-1.035 99.242-80.847 191.531-62.003 191.531-62.003 37.782 4.708-19.861 37.254-19.861 37.254-53.296 21.995-110.573 25.78-143.653 25.783zM381.96 506.055c0 0-35.839-173.585-80.605-225.069l248.329 36.937c0 0-123.752 110.91-167.724 188.132zM845.111 705.497c4.827 0.315 10.331-1.799 16.15-6.633l38.243-31.943c18.558-15.55 48.954-40.949 67.525-56.433l38.272-31.99c18.607-15.533 18.321-40.666-0.508-55.8l-38.832-31.256c-18.859-15.249-49.683-40.059-68.539-55.228l-38.835-31.239c-18.822-15.249-34.021-2.515-33.753 28.201l0.526 59.012h-225.156c-15.85 0-28.705 12.878-28.705 28.729v62.246c0 15.834 12.855 28.694 28.705 28.694h226.241l0.506 59.362c0.198 21.13 7.54 33.585 18.16 34.279zM386.788 826.673c-2.777-0.341-5.637-3.384-8.408-10.615 0 0-13.398-64.091 20.135-170.59 0 0 28.535 84.507 7.050 149.183 0 0-8.859 33.241-18.777 32.022zM356.447 896.795c26.43 1.014 50.261-49.878 50.261-49.878 74.083-158.383 4.029-259.586 4.029-259.586 73.367-173.011 220.388-265.396 220.388-265.396 142.849 7.671 247.075-28.422 247.075-28.422 81.976-43.129 54.534-83.444 54.534-83.444-85.921-95.871-338.276 53.635-338.276 53.635l-325.281-54.828c-46.998-160.866-204.075-198.666-204.075-198.666-74.88-10.915-64.627 67.21-64.627 67.21 58.439 128.623 205.395 158.211 205.395 158.211 57.879 61.876 152.495 352.67 152.495 352.67-95.602 214.882-28.427 286.37-28.427 286.37 8.602 15.68 17.701 21.786 26.511 22.124z" />
-<glyph unicode="" glyph-name="add" d="M896.896 564.352h-271.317v271.275h-225.365v-271.275h-271.317v-225.408h271.317v-271.275h225.365v271.275h271.317z" />
-<glyph unicode="" glyph-name="plus" d="M388.095 960h247.889v-388.114h388.095v-247.869h-388.095v-388.075h-247.889v388.075h-388.095v247.869h388.095z" />
-<glyph unicode="" glyph-name="projects" d="M738.064 471.472l-206.048-117.081 0.648-237.415 205.4 118.386zM296.816 471.472v-236.11l205.402-118.386 0.646 237.415zM517.439 619.312l-204.671-118.352 204.671-117.696 205.313 117.696zM92.872 910.64h327.139c51.335 0 92.917-41.604 92.917-92.904v-44.536h418.154c51.314 0 92.918-41.615 92.918-92.907v-602.031c0-51.325-41.605-92.918-92.918-92.918h-838.208c-51.27 0-92.873 41.594-92.873 92.918v602.031c0 1.603 0.041 3.196 0.121 4.779l0.078 1.030-0.078 1.030c-0.080 1.584-0.121 3.178-0.121 4.782v125.822c0 51.299 41.603 92.904 92.872 92.904z" />
-<glyph unicode="" glyph-name="remove" d="M824.447 960l199.553-199.586-312.445-312.431 312.445-312.443-199.552-199.541-312.448 312.437-312.451-312.437-199.533 199.539 312.432 312.443-312.448 312.438 199.552 199.564 312.446-312.444z" />
-<glyph unicode="" glyph-name="rename" d="M292.64 960h438.752v-27.918h-37c-41.803 0-72.25-12.332-91.376-37-12.592-16.125-18.875-54.875-18.875-116.292v-487.75h90.1v-64h-90.1v-109.79c0-51.834 3.261-86.083 9.813-102.709 5.030-12.584 15.595-23.374 31.709-32.459 21.647-12.082 44.562-18.114 68.73-18.114h37v-27.968h-438.752v27.968h36.249c42.292 0 72.99 12.323 92.126 36.989 12.083 16.125 18.125 54.875 18.125 116.293v109.79h-93.157v64h93.157v487.75c0 51.835-3.282 86.085-9.813 102.667-5.042 12.584-15.365 23.418-30.97 32.5-22.155 12.084-45.302 18.125-69.469 18.125h-36.249z" />
-<glyph unicode="" glyph-name="table" d="M0 147.354h1023.919v-129.997h-1023.919zM0 391.18h1023.919v-130.079h-1023.919zM0 635.007h1023.919v-130.079h-1023.919zM0 878.752h1023.919v-130.079h-1023.919z" />
-<glyph unicode="" glyph-name="uploadfile" d="M511.975 447.953l-242.846-242.843h161.146v-184.088h163.402v184.088h161.146zM646.038 924.618l311.664-313.105h-311.664zM66.25 960h514.016v-388.045h377.436v-636.099h-891.451z" />
-<glyph unicode="" glyph-name="apps" d="M730.912 530.112h125.376v-125.392h-125.376zM542 530.112h125.376v-125.392h-125.376zM349.584 530.112h125.376v-125.392h-125.376zM160.672 530.112h125.376v-125.392h-125.376zM730.912 717.264h125.376v-125.376h-125.376zM542 717.264h125.376v-125.376h-125.376zM349.584 717.264h125.376v-125.376h-125.376zM160.672 717.264h125.376v-125.376h-125.376zM63.563 812.597v-504.938h893.354v504.938zM0 879.68h1024v-639.104h-449.328v-113.245l4.865-0.082c285.499-6.523 230.831-110.897 230.831-110.897-37.079 5.291-180.079 10.602-180.079 10.602v21.186h-243.641l-5.312-31.788h-174.768c-63.301 84.409 149.173 104.915 238.102 109.762l2.866 0.151v114.311h-447.536z" />
-<glyph unicode="" glyph-name="back" d="M725.077-64l-517.717 512.043 517.717 511.957 135.083-133.547-382.677-378.411 382.677-378.453-135.083-133.589z" />
-<glyph unicode="" glyph-name="backup" d="M158.756 459.232c2.36-0.222 4.628-1.137 6.44-2.635 2.465-2.038 4.027-5.035 4.266-8.199 3.173-40.213 14.414-80.383 34.695-118.14 28.963-53.866 71.965-95.243 122.116-122.093l19.951 77.261c1.184 4.576 4.973 7.992 9.626 8.699 4.692 0.708 9.29-1.415 11.8-5.411l140.4-226.038c1.945-3.581 2.228-7.033 1.093-10.24-1.228-3.413-3.934-5.994-7.347-7.16l-259.049-86.835c-4.549-1.541-9.533-0.166-12.657 3.454-3.173 3.664-3.796 8.784-1.571 13.072l37.267 73.013c-87.221 41.503-162.493 110.146-211.654 201.728-30.908 57.487-48.59 118.638-54.085 179.872-0.573 6.368 4.026 12.029 10.386 12.778l145.945 16.859c0.793 0.084 1.59 0.086 2.377 0.012zM807.027 714.090c2.642-0.123 5.187-1.153 7.248-2.932l204.777-180.834c3.601-3.207 4.923-8.202 3.309-12.697-1.562-4.58-5.683-7.66-10.521-7.91l-81.808-4.289c7.679-96.244-14.081-195.777-68.781-284.155-34.323-55.533-78.458-101.448-128.702-136.833-5.214-3.664-12.416-2.538-16.257 2.622l-87.605 117.892c-1.894 2.582-2.652 5.83-2.175 8.952 0.572 3.162 2.375 5.994 4.975 7.783 33.23 22.854 62.38 52.702 84.953 89.168 32.178 52.037 46.446 109.942 44.645 166.807l-76.928-21.356c-4.556-1.29-9.386 0.251-12.331 3.956-2.986 3.704-3.456 8.741-1.228 12.945l125.425 234.66c2.132 3.456 5.024 5.454 8.346 6.036 0.888 0.167 1.779 0.227 2.659 0.186zM478.859 939.139c65.312 0.043 127.56-13.319 184.057-37.421 5.924-2.541 8.722-9.241 6.349-15.235l-54.179-136.536c-1.188-2.954-3.549-5.328-6.493-6.535-2.935-1.208-6.308-1.165-9.19 0.125-36.935 16.234-77.646 25.308-120.544 25.308-61.151 0-117.892-18.315-165.297-49.786l58.591-54.156c3.509-3.205 4.738-8.159 3.124-12.613-1.56-4.453-5.64-7.534-10.333-7.824l-265.546-16.777c-4.079-0.040-7.295 1.375-9.522 3.871-2.466 2.706-3.466 6.287-2.852 9.866l19.014 111.394 26.963 157.891c0.855 4.745 4.415 8.492 9.108 9.532s9.48-0.833 12.228-4.786l46.696-67.353c77.784 57.195 173.873 91.080 277.828 91.037z" />
-<glyph unicode="" glyph-name="close" d="M704.768 802.859l-191.872-191.872-191.829 191.829-159.317-159.317 191.829-191.872-191.872-191.829 159.36-159.36 191.872 191.829 191.829-191.829 159.36 159.36-191.787 191.787 191.829 191.872z" />
-<glyph unicode="" glyph-name="agreement" d="M167.399 282.158h323.415c0 0 5.916-31.909 7.353-37.842h-330.768c-8.671 0-15.672 7.017-15.672 15.688v6.483c0 8.652 7.001 15.67 15.672 15.67zM166.669 403.101h286.113c0.132-1.774 0.017-3.559-0.635-5.28l-12.548-32.574h-272.93c-8.657 0-15.674 7.020-15.674 15.692v6.469c0 8.674 7.018 15.694 15.674 15.694zM164.498 521.836h277.904l3.993-8.972c1.888-4.295 0.969-9.356-2.323-12.716l-16.156-16.154h-263.419c-8.654 0-15.671 7.016-15.671 15.687v6.482c0 8.653 7.018 15.672 15.671 15.672zM742.87 626.071c-99.615 0-180.35-80.744-180.35-180.355 0-99.603 80.734-180.406 180.35-180.406 99.632 0 180.386 80.803 180.386 180.406 0 99.611-80.754 180.355-180.386 180.355zM163.987 639.365h326.827v-33.951c0-1.354-0.266-2.641-0.701-3.878h-326.127c-8.672 0-15.674 7.018-15.674 15.674v6.483c0 8.672 7.001 15.672 15.674 15.672zM742.875 723.684c3.759 0 7.519-1.433 10.393-4.299l28.972-28.939c3.14-3.158 7.869-4.042 11.913-2.239l37.526 16.592c7.435 3.325 16.073-0.082 19.366-7.485l19.533-44.028c1.802-4.042 5.862-6.7 10.325-6.7h48.152c8.106 0 14.672-6.549 14.672-14.686v-41.002c0-4.444 2.755-8.405 6.865-9.992l38.264-14.768c7.585-2.91 11.36-11.448 8.437-18.999l-17.345-44.912c-1.619-4.176-0.617-8.922 2.541-12.079l34.069-34.019c5.747-5.749 5.747-15.071 0-20.819l-29.005-28.972c-3.109-3.108-4.010-7.853-2.206-11.897l16.592-37.477c3.291-7.47-0.050-16.124-7.486-19.415l-43.993-19.515c-4.077-1.805-6.732-5.884-6.732-10.343v-48.088c0-8.152-6.566-14.753-14.672-14.753h-1.653l94.603-227.368c2.038-4.911-2.941-9.792-7.803-7.617l-110.426 48.72c-3.726 1.637-8.021-0.099-9.523-3.827l-45.115-109.69c-2.054-5.047-9.154-5.047-11.261-0.050l-91.812 220.185c-0.382 0.984-0.484 2.036-0.717 3.005-1.989-0.284-3.96-0.25-5.933 0.235l-91.844-220.601c-2.089-4.981-9.207-4.981-11.245 0.032l-45.129 109.69c-1.537 3.71-5.833 5.514-9.557 3.845l-110.424-48.722c-4.88-2.155-9.843 2.723-7.822 7.6l93.452 224.563h-0.135c-8.103 0-14.687 6.601-14.687 14.753v40.97c0 4.428-2.738 8.422-6.866 9.974l-38.228 14.786c-7.602 2.909-11.363 11.43-8.454 18.981l17.327 44.947c1.586 4.159 0.583 8.871-2.559 12.029l-34.051 34.019c-5.714 5.747-5.714 15.070 0 20.819l29.040 29.006c3.090 3.125 3.959 7.903 2.188 11.913l-16.624 37.493c-3.276 7.403 0.049 16.108 7.467 19.415l44.060 19.465c4.078 1.805 6.7 5.848 6.7 10.311v48.17c0 8.137 6.584 14.686 14.687 14.686h41.002c4.396 0 8.39 2.742 9.96 6.884l14.767 38.246c2.924 7.552 11.447 11.328 19.031 8.42l44.93-17.309c4.178-1.654 8.922-0.62 12.080 2.522l34.002 34.036c2.874 2.866 6.633 4.299 10.392 4.299zM163.837 771.753h206.951c8.672 0 15.689-6.999 15.689-15.672v-6.483c0-8.673-7.017-15.674-15.689-15.674h-206.951c-8.672 0-15.691 7.002-15.691 15.674v6.483c0 8.673 7.019 15.672 15.691 15.672zM26.215 955.958h721.289c14.469 0 26.233-11.762 26.233-26.214v-178.013l-15.84 15.805c-3.942 3.927-9.156 6.099-14.72 6.099s-10.778-2.172-14.72-6.081l-22.858-22.891v122.357c0 11.462-9.34 20.785-20.819 20.785h-595.842c-11.462 0-20.784-9.323-20.784-20.785v-752.636c0-11.478 9.322-20.801 20.784-20.801h353.1l-28.353-68.155h-387.471c-14.452 0-26.215 11.765-26.215 26.233v878.084c0 14.452 11.763 26.214 26.215 26.214z" />
-<glyph unicode="" glyph-name="apps1" d="M608 256v-128c0-17.673-14.327-32-32-32v0h-128c-17.673 0-32 14.327-32 32v0 128c0 17.673 14.327 32 32 32v0h128c17.673 0 32-14.327 32-32v0zM320 288h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM320 544h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM576 544h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM320 800h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM832 800h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM832 544h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM832 288h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM576 800h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0z" />
-<glyph unicode="" glyph-name="archive" d="M192 96c0-17.673 14.327-32 32-32v0h576c17.673 0 32 14.327 32 32v0 448h-640zM384 416c0 17.673 14.327 32 32 32v0h192c17.673 0 32-14.327 32-32v0-32c0-17.673-14.327-32-32-32v0h-192c-17.673 0-32 14.327-32 32v0zM896 736v-128h-768v128c0 17.673 14.327 32 32 32v0h704c17.673 0 32-14.327 32-32v0z" />
-<glyph unicode="" glyph-name="bill" d="M678.867 244.823h18.202v-20.667c13.994-0.431 23.544-3.758 30.648-7.322l-5.988-20.434c-5.324 2.428-15.109 7.555-30.198 7.555-15.54 0-21.079-7.985-21.079-15.542 0-9.12 7.986-14.207 26.853-21.763 24.855-9.317 35.972-21.296 35.972-41.064 0-18.868-13.113-35.545-37.538-39.537v-22.86h-18.201v21.529c-13.974 0.431-27.968 4.463-35.973 9.787l6.009 20.864c8.67-5.127 21.079-9.787 34.622-9.787 13.994 0 23.544 6.891 23.544 17.538 0 10.022-7.769 16.44-24.21 22.431-23.29 8.457-38.399 19.104-38.399 39.734 0 19.103 13.31 33.781 35.737 37.777zM420.46 294.449c-16.753-25.445-32.606-51.595-47.854-77.686h47.854zM272.885 364.344v-147.582h90.404c-24.171 33.432-46.288 68.956-72.084 100.764 4.658 7.319 10.647 13.329 17.967 18.007 12.76-10.335 23.643-19.769 39.065-30.849 2.193-1.544 16.832-11.587 18.045-11.509 2.818 0.234 10.258 13.389 14.836 19.065 11.627 14.387 25.073 29.419 39.341 44.038v8.065zM565.034 372.057h186.1v-40.091h-186.1zM502.86 426.549c7.711 0 15.501 0 23.252 0 1.408-2.975-5.637-6.695-9.513-10.61-27.44-27.402-52.589-58.836-76.097-92.15v-127.069h-187.659v187.668h187.659v-8.359c20.768 19.575 42.375 37.426 62.358 50.52zM420.46 563.84c-16.735-25.445-32.606-51.575-47.835-77.668h47.835zM565.034 564.125h186.1v-40.076h-186.1zM272.885 633.717v-147.545h90.385c-24.172 33.432-46.269 68.941-72.064 100.767 4.658 7.319 10.647 13.308 17.967 17.986 12.76-10.315 23.643-19.769 39.065-30.866 2.193-1.527 16.832-11.569 18.045-11.471 2.818 0.197 10.258 13.388 14.836 19.064 11.627 14.388 25.073 29.401 39.341 44.023v8.042zM502.86 695.943c7.711 0 15.501 0 23.252 0 1.408-2.954-5.637-6.694-9.513-10.59-27.44-27.421-52.589-58.857-76.097-92.17v-127.053h-187.659v187.633h187.659v-8.339c20.768 19.574 42.375 37.405 62.358 50.52zM194.508 882.608v-869.323h634.916v674.609h-201.173v194.713zM121.461 960h548.128l232.92-228.046v-795.984h-781.048z" />
-<glyph unicode="" glyph-name="calendar" d="M800 832h-544c-52.995-0.060-95.94-43.005-96-95.994v-608.006c0.042-35.329 28.671-63.958 63.996-64h608.004c35.329 0.042 63.958 28.671 64 63.996v608.004c-0.060 52.995-43.005 95.94-95.994 96h-0.006zM384 144c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM384 336c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM384 528c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM608 144c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM608 336c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM608 528c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM832 144c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM832 336c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0zM832 528c0-8.837-7.163-16-16-16v0h-128c-8.837 0-16 7.163-16 16v0 96c0 8.837 7.163 16 16 16v0h128c8.837 0 16-7.163 16-16v0z" />
-<glyph unicode="" glyph-name="copy" d="M736 464v144l160-160h-144c-8.837 0-16 7.163-16 16v0zM352 640v176c0 8.837-7.163 16-16 16v0h-144c-17.673 0-32-14.327-32-32v0-480c0-17.673 14.327-32 32-32v0h224v288c0.116 11.518 2.262 22.501 6.096 32.655l-0.217-0.655h-37.879c-17.673 0-32 14.327-32 32v0zM672 416v176c0 8.837-7.163 16-16 16v0h-144c-17.673 0-32-14.327-32-32v0-480c0-17.673 14.327-32 32-32v0h352c17.673 0 32 14.327 32 32v0 272c0 8.837-7.163 16-16 16v0h-176c-17.673 0-32 14.327-32 32v0zM416 832v-144c0-8.837 7.163-16 16-16v0h144z" />
-<glyph unicode="" glyph-name="download4" d="M1024-63.915l-1024-0.085v428.672l153.6 0.171v-275.243l718.421-0.768v275.84l151.979 0.085zM411.989 680.491v279.509h192.512v-279.509h211.456l-303.957-385.067-303.915 385.067z" />
-<glyph unicode="" glyph-name="duplicate" d="M169.813 790.272l598.997-0.811-1.408 170.539h-767.403v-767.403h169.813zM224.64 735.36v-799.36h799.36v799.36h-799.36zM928.896 289.749h-258.645v-258.603h-85.333v258.603h-258.603v85.333h258.603v258.645h85.333v-258.645h258.645v-85.333z" />
-<glyph unicode="" glyph-name="cube" d="M160 621.883l320-192.008v-351.992l-304.469 182.68c-9.368 5.696-15.53 15.847-15.531 27.437v0zM528.469 859.437c-4.703 2.857-10.388 4.547-16.469 4.547s-11.766-1.691-16.612-4.628l0.143 0.080-303.527-182.117 319.996-192 319.996 192zM544 429.875v-351.992l304.469 182.68c9.368 5.696 15.53 15.847 15.531 27.437v0 333.883z" />
-<glyph unicode="" glyph-name="cubelight" d="M862.891 648.313c-0.42 1.193-0.819 2.148-1.264 3.077l0.080-0.186c-0.606 1.84-1.273 3.397-2.054 4.885l0.084-0.175c-2.136 2.898-3.775 5.032-5.443 7.141l0.447-0.586c-0.89 0.795-1.858 1.567-2.869 2.283l-0.102 0.069c-0.991 0.903-2.067 1.762-3.198 2.549l-0.103 0.068-320 192c-4.703 2.857-10.388 4.547-16.469 4.547s-11.766-1.691-16.612-4.628l0.143 0.080-320-192c-1.226-0.854-2.295-1.709-3.306-2.626l0.027 0.024c-1.121-0.791-2.097-1.571-3.025-2.402l0.031 0.027c-0.962-1.071-1.874-2.241-2.701-3.472l-0.072-0.114c-0.744-0.875-1.474-1.84-2.148-2.846l-0.072-0.115c-0.675-1.276-1.326-2.795-1.858-4.368l-0.066-0.226c-0.389-1.024-0.947-1.961-1.232-3.016-0.699-2.49-1.103-5.349-1.107-8.302v-352.002c0.001-11.591 6.163-21.742 15.39-27.357l0.141-0.080 320.688-192.406c1.479-0.783 3.216-1.505 5.024-2.066l0.221-0.059c0.76-0.266 1.461-0.704 2.232-0.906 2.489-0.714 5.349-1.125 8.304-1.125s5.815 0.411 8.524 1.178l-0.22-0.053c0.772 0.203 1.472 0.64 2.232 0.906 2.028 0.62 3.765 1.342 5.415 2.207l-0.171-0.082 0.34 0.258 0.348 0.148 320 192c9.368 5.695 15.531 15.847 15.532 27.437v0 352c-0.004 2.958-0.408 5.821-1.163 8.538l0.053-0.225zM480 152.531l-256 153.594v277.344l256-153.594zM512 485.32l-257.807 154.68 257.807 154.688 257.807-154.688zM800 306.125l-256-153.594v277.344l256 153.594z" />
-<glyph unicode="" glyph-name="dashboard1" d="M797.156 159.875c-8.529-10.218-21.271-16.672-35.519-16.672-14.515 0-27.465 6.697-35.93 17.171l-0.068 0.087c-3.873 1.648-7.184 3.885-9.987 6.638l-67.901 67.901c-5.79 5.79-9.372 13.789-9.372 22.625 0 17.671 14.325 31.997 31.997 31.997 8.836 0 16.835-3.581 22.625-9.372v0l43.26-43.258c32.994 40.283 55.204 90.578 61.549 145.7l0.122 1.308h-61.932c-17.673 0-32 14.327-32 32s14.327 32 32 32v0h61.98c-0.262 2.437-0.252 4.84-0.574 7.281-7.523 53.851-29.185 101.615-61.077 140.704l0.405-0.512-43.703-43.723c-5.79-5.79-13.789-9.372-22.625-9.372-17.671 0-31.997 14.325-31.997 31.997 0 8.836 3.581 16.835 9.372 22.625l43.729 43.75c-40.045 32.607-89.888 54.662-144.495 61.243l-1.359 0.133c-0.555 0.064-1.102 0.043-1.656 0.101v-62.228c0-17.673-14.327-32-32-32s-32 14.327-32 32v0 62.14c-56.57-6.349-107.037-28.47-148.016-61.804l0.52 0.41 43.746-43.746c5.754-5.74 9.32-13.67 9.342-22.433v-0.004l165.252-120.793c13.687-10.088 22.469-26.147 22.469-44.256 0-30.276-24.544-54.82-54.82-54.82-18.11 0-34.169 8.782-44.151 22.32l-0.106 0.151-120.787 165.242c-8.77 0.028-16.703 3.594-22.449 9.344l-43.724 43.726c-32.699-40.559-54.775-90.956-61.278-146.12l-0.13-1.357h62.133c17.673 0 32-14.327 32-32s-14.327-32-32-32v0h-61.984c6.676-56.414 28.847-106.679 62.085-147.591l-0.416 0.528 43.313 43.312c5.79 5.79 13.789 9.372 22.625 9.372 17.671 0 31.997-14.325 31.997-31.997 0-8.836-3.581-16.835-9.372-22.625v0l-67.905-67.906c-2.759-2.694-6.015-4.893-9.616-6.445l-0.206-0.079c-8.543-10.61-21.531-17.341-36.092-17.341-14.245 0-26.985 6.443-35.465 16.573l-0.059 0.072c-61.126 67.675-98.527 157.799-98.527 256.658 0 211.831 171.723 383.555 383.555 383.555 15.672 0 31.124-0.94 46.303-2.766l-1.83 0.179c192.044-22.638 339.606-184.452 339.606-380.731 0-98.991-37.534-189.216-99.146-257.219l0.29 0.325z" />
-<glyph unicode="" glyph-name="documentsave" d="M345.584 354.72v-202.88h345.36v202.88zM533.952 557.568h56.752v-130.416h-56.752zM286.432 586.544h114.104v-186.55h231.83v186.55h35.629l82.102-82.093v-381.571h-463.664zM194.583 882.635v-869.291h634.898v674.562h-201.145v194.729zM121.52 960h548.147l232.877-227.99v-796.010h-781.024z" />
-<glyph unicode="" glyph-name="edit" d="M107.093 248.875l214.827-199.979 512.683 520.96-214.699 199.893-512.811-520.875zM994.603 858.411l-81.664 75.947c-38.059 35.413-98.091 33.963-134.229-3.029l-102.357-104.875 219.136-203.819 102.229 104.704c36.224 37.12 34.816 95.787-3.115 131.072zM0.299-64l268.459 58.24-210.133 195.584-58.325-253.824z" />
-<glyph unicode="" glyph-name="email" d="M1024 141.056l-359.893 278.741 359.893 352.896zM0 788.011l375.211-363.136-375.211-308.907zM580.267 326.656c-21.333-21.035-69.12-21.035-98.603 6.997l-70.997 55.765-378.667-301.568 992 1.067-380.16 290.389-63.573-52.651zM1005.227 812.757l-422.229-413.227c-28.075-24.149-73.771-24.149-102.101 0l-448.896 412.459 973.227 0.768z" />
-<glyph unicode="" glyph-name="exit" d="M826.547 713.055l174.681-174.731-174.681-174.856v116.127h-324.501v117.521h324.501zM22.578 960h748.846v-322.493h-85.415v233.478h-527.32l143.325-93.695v-571.717h383.995v233.478h85.415v-322.493h-469.41v-180.559l-279.436 180.559z" />
-<glyph unicode="" glyph-name="file" d="M941.653 599.979h-360.021v360.021zM515.157 534.059v425.6h-428.245v-1023.659h861.995l0.427 599.083-434.176-1.024z" />
-<glyph unicode="" glyph-name="save" d="M109.804 141.178c-10.916 0-19.935-8.978-19.935-19.968v-65.146c0-10.907 9.020-19.97 19.935-19.97h65.315c10.978 0 19.894 9.062 19.894 19.97v65.146c0 10.99-8.917 19.968-19.894 19.968zM589.312 869.072h146.912v-222.912h-146.912zM213.307 919.544v-250.771c0-43.802 35.811-79.718 79.687-79.718h427.524c43.875 0 79.77 35.917 79.77 79.718v250.771zM138.578 960h733.023l144.751-144.697v-793.092l-21.958-31.824c-23.251-35.272-63.021-54.387-109-54.387h-746.815c-72.023 0-130.898 58.958-130.898 130.898v762.168c0 72.112 58.875 130.935 130.898 130.935z" />
-<glyph unicode="" glyph-name="folder" d="M193.912 591.524l-65.912-263.649v408.125c0.001 35.346 28.654 63.999 64 64h133.49c0 0 0.001 0 0.001 0 17.673 0 33.673-7.164 45.255-18.746l45.254-45.254h416c35.346-0.001 63.999-28.654 64-64v0-32h-640c-0.001 0-0.001 0-0.002 0-29.833 0-54.898-20.413-61.99-48.033l-0.097-0.444zM942.031 576h-636.063c-0.001 0-0.001 0-0.002 0-29.833 0-54.897-20.413-61.989-48.033l-0.097-0.444-115.881-463.524h768l108.119 432.476c1.214 4.66 1.911 10.011 1.911 15.524 0 35.346-28.653 63.999-63.999 64v0z" />
-<glyph unicode="" glyph-name="folderadd" d="M785.553 312.399v-95.808h-95.774v-57.011h95.774v-95.791h57.045v95.791h95.774v57.011h-95.774v95.808zM809.218 404.602c118.6 0 214.747-96.162 214.747-214.765s-96.148-214.765-214.747-214.765c-118.603 0-214.749 96.162-214.749 214.765s96.146 214.765 214.749 214.765zM81.172 920.86h285.817c44.839 0 81.184-36.345 81.184-81.163v-38.919h365.342c44.838 0 81.184-36.366 81.184-81.182v-253.204l-6.333 1.888c-25.165 7.163-51.718 10.999-79.149 10.999-159.599 0-289.459-129.845-289.459-289.441 0-24.937 3.17-49.147 9.129-72.249l1.406-5.182h-449.12c-44.828 0-81.174 36.346-81.174 81.185v526.004c0 1.401 0.035 2.793 0.106 4.176l0.068 0.898-0.068 0.899c-0.070 1.384-0.106 2.777-0.106 4.178v109.951c0 44.817 36.345 81.163 81.172 81.163z" />
-<glyph unicode="" glyph-name="foldercube" d="M738.064 471.472l-206.048-117.081 0.648-237.415 205.4 118.386zM296.816 471.472v-236.11l205.402-118.386 0.646 237.415zM517.439 619.312l-204.671-118.352 204.671-117.696 205.313 117.696zM92.872 910.64h327.139c51.335 0 92.917-41.604 92.917-92.904v-44.536h418.154c51.314 0 92.918-41.615 92.918-92.907v-602.031c0-51.325-41.605-92.918-92.918-92.918h-838.208c-51.27 0-92.873 41.594-92.873 92.918v602.031c0 1.603 0.041 3.196 0.121 4.779l0.078 1.030-0.078 1.030c-0.080 1.584-0.121 3.178-0.121 4.782v125.822c0 51.299 41.603 92.904 92.872 92.904z" />
-<glyph unicode="" glyph-name="folderdelete" d="M688.355 220.883v-67.036h248.593v67.036zM809.218 404.602c118.6 0 214.747-96.162 214.747-214.765s-96.148-214.765-214.747-214.765c-118.6 0-214.749 96.162-214.749 214.765s96.149 214.765 214.749 214.765zM81.172 920.86h285.819c44.837 0 81.182-36.345 81.182-81.163v-38.919h365.342c44.838 0 81.184-36.366 81.184-81.182v-253.204l-6.333 1.888c-25.165 7.163-51.718 10.999-79.149 10.999-159.599 0-289.459-129.845-289.459-289.441 0-24.937 3.17-49.147 9.129-72.249l1.406-5.182h-449.12c-44.828 0-81.174 36.346-81.174 81.185v526.004c0 1.401 0.035 2.793 0.106 4.176l0.068 0.898-0.068 0.899c-0.070 1.384-0.106 2.777-0.106 4.178v109.951c0 44.817 36.345 81.163 81.172 81.163z" />
-<glyph unicode="" glyph-name="folderfind" d="M494.046 553.696c90.647 0 164.146-73.457 164.146-164.1 0-90.632-73.498-164.108-164.146-164.108-90.646 0-164.126 73.476-164.126 164.108 0 90.643 73.481 164.1 164.126 164.1zM494.046 602.144c-117.376 0-212.542-95.145-212.542-212.548 0-117.391 95.165-212.556 212.542-212.556 34.851 0 67.744 8.387 96.769 23.254l4.077 2.151 54.362-69.117h93.29l-89.772 114.911 2.001 2.255c32.294 37.28 51.834 85.909 51.834 139.102 0 117.403-95.168 212.548-212.562 212.548zM92.896 910.64h327.164c51.312 0 92.916-41.604 92.916-92.904v-44.536h418.106c51.315 0 92.918-41.615 92.918-92.907v-602.031c0-51.325-41.603-92.918-92.918-92.918h-838.185c-51.293 0-92.896 41.594-92.896 92.918v602.031c0 1.603 0.041 3.196 0.121 4.779l0.078 1.030-0.078 1.030c-0.080 1.584-0.121 3.178-0.121 4.782v125.822c0 51.299 41.603 92.904 92.896 92.904z" />
-<glyph unicode="" glyph-name="access" d="M693.774 863.021c-45.312-0.577-87.755-19.509-123.675-55.463-36.789-36.832-55.471-79.106-55.471-125.554 0-56.312 27.912-115.225 78.547-165.932 44.947-44.957 97.637-72.486 148.258-77.689 52.641-5.354 102.212 13.492 143.303 54.572 36.75 36.831 55.442 79.105 55.442 125.563 0 56.313-27.914 115.299-78.628 165.934-44.877 44.958-97.556 72.476-148.192 77.689-6.579 0.671-13.111 0.963-19.584 0.88zM690.651 946.774c9.527 0.094 19.153-0.354 28.862-1.348 69.916-7.104 141.013-43.623 200.161-102.85 67.194-67.113 104.264-147.483 104.264-226.102 0-67.749-27.528-131.089-79.579-183.141-59.075-59.144-131.388-86.2-209.076-78.308-56.764 5.832-114.405 31.033-165.765 72.041l-2.442 2.027-292.9-292.898 52.973-53.012c25.95-25.868 4.332-46.224-21.537-72.092l-26.020-25.951c-25.829-25.938-46.212-47.467-72.081-21.609l-52.999 53-41.482-41.481c-25.859-25.868-67.78-25.868-93.69 0-25.787 25.871-25.787 67.821 0 93.7l459.395 459.312-1.999 3.18c-29.943 48.862-45.869 101.211-45.869 152.82 0 67.738 27.52 131.065 79.581 183.117 51.682 51.755 113.516 78.937 180.203 79.594z" />
-<glyph unicode="" glyph-name="group" d="M823.502 288h-47.004c-2.992 0.083-5.847 0.358-8.641 0.815l0.368-0.050c-13.662 11.227-29.91 24.652-48.35 39.953l-4.238 3.531c-1.115 3.304-2.023 7.215-2.557 11.244l-0.035 0.326c0.527 2.031 1.156 4.008 1.612 6.070l16.094 73.688c19.613 16.339 34.884 37.23 44.269 61.083l0.356 1.026 8.906 24c5.094 12.059 8.054 26.079 8.054 40.791 0 25.917-9.187 49.689-24.482 68.236l0.147-0.183v48.945c10.060 2.878 21.614 4.533 33.555 4.533 69.839 0 126.455-56.616 126.455-126.455 0-0.547-0.003-1.092-0.010-1.637l0.001 0.083v-69.961c4.573-3.984 7.447-9.817 7.447-16.322 0-2.91-0.575-5.686-1.618-8.22l0.052 0.144-11.762-35.281c-5.295-13.384-16.081-23.612-29.505-28.040l-0.337-0.096-5.269-42.16c-4.084-31.766-30.958-56.062-63.506-56.062 0 0 0 0 0 0v0zM287.012 288.695c15.744 12.945 33.188 27.312 49.082 40.414l4.424 3.641c1.037 3.152 1.89 6.897 2.402 10.751l0.036 0.327c-0.527 2.020-1.162 4-1.612 6.048l-16.094 73.703c-19.595 16.329-34.856 37.204-44.238 61.037l-0.356 1.026-8.969 24.109c-5.079 12.041-8.030 26.039-8.030 40.727 0 25.918 9.19 49.69 24.489 68.235l-0.146-0.183v48.945c-10.060 2.878-21.614 4.533-33.555 4.533-69.839 0-126.455-56.616-126.455-126.455 0-0.547 0.003-1.092 0.010-1.637l-0.001 0.083v-69.961c-4.573-3.984-7.447-9.817-7.447-16.322 0-2.91 0.575-5.686 1.618-8.22l-0.052 0.144 11.762-35.281c5.295-13.384 16.081-23.612 29.505-28.040l0.337-0.096 5.269-42.16c4.084-31.766 30.958-56.062 63.506-56.062 0 0 0 0 0 0h47.004c2.735 0.090 5.326 0.34 7.866 0.742l-0.356-0.046zM1010.352 249.555l-70.819 49.571c-18.173-39.272-54.546-67.41-97.992-73.753l-0.693-0.083c14.011-17.84 22.585-40.532 22.921-65.213l0.001-0.076h144.23c8.837 0 16 7.163 16 16v0 47.34c-0.001 10.801-5.352 20.352-13.548 26.147l-0.1 0.067zM116.467 299.125l-70.819-49.571c-8.296-5.862-13.648-15.413-13.648-26.215v0-47.34c0-8.837 7.163-16 16-16v0h144.824c1.185 24.746 9.937 47.241 23.973 65.456l-0.201-0.272c-44.747 5.947-81.747 34.258-99.8 73.151l-0.329 0.791zM773.455 202.297c-13.924 10.547-58.512 47.348-94.453 77.188-29.443-33.897-72.541-55.268-120.636-55.484h-60.694c-48.237 0.222-91.415 21.695-120.684 55.531l-0.172 0.203c-36.762-30.304-82.34-67.828-94.272-77.437-16.096-10.821-26.545-28.963-26.545-49.546 0-0.114 0-0.228 0.001-0.343v0.018-40.426c0-8.837 7.163-16 16-16v0h512c8.837 0 16 7.163 16 16v0 40.426c0.088 1.147 0.139 2.484 0.139 3.833 0 19.598-10.626 36.714-26.43 45.902l-0.253 0.136zM340.633 507.977c8.558-20.091 23.145-36.239 41.462-46.535l0.481-0.249 21.307-97.656c9.736-43.507 48.024-75.536 93.792-75.536 0 0 0.001 0 0.001 0h60.648c0 0 0 0 0 0 45.768 0 84.055 32.028 93.671 74.895l0.121 0.64 21.307 97.656c18.799 10.544 33.386 26.693 41.706 46.16l0.237 0.624 8.96 24.047c2.746 5.341 4.356 11.654 4.356 18.343 0 16.707-10.042 31.068-24.42 37.377l-0.262 0.102v84.156c0 96-64 160-176 160s-176-64-176-160v-84.156c-14.639-6.411-24.682-20.772-24.682-37.479 0-6.689 1.61-13.001 4.463-18.572l-0.107 0.23z" />
-<glyph unicode="" glyph-name="adobepdf" d="M200.571 163.069c-65.7-20.885-113.75-73.848-130.451-94.215 0.202 3.96-6.842-8.705-6.842-8.705s2.706 3.609 6.842 8.705c-0.062-1.554-1.135-5.38-4.261-13.7-11.29-29.974 23.636-29.205 23.636-29.205 99.024 16.106 111.076 137.121 111.076 137.121zM767.851 265.049c-18.402 0.001-29.754-1.181-29.754-1.181 105.384-92.26 203.398-70.757 203.398-70.757 40.12 5.38-21.102 42.521-21.102 42.521-56.586 25.098-117.411 29.415-152.542 29.417zM407.732 514.149c0 0-38.052-198.070-85.604-256.815l263.733 42.154c0 0-131.431 126.545-178.128 214.661zM413.841 879.988c-0.327 0.031-0.655 0.025-0.984-0.018-2.95-0.391-5.989-3.865-8.935-12.118 0 0-14.213-73.113 21.382-194.629 0 0 30.308 96.404 7.495 170.219 0 0-8.827 35.592-18.958 36.546zM380.637 959.983c28.069 1.161 53.374-56.91 53.374-56.91 78.685-180.728 4.276-296.195 4.276-296.195 77.907-197.402 234.047-302.811 234.047-302.811 151.708 8.755 262.38-32.43 262.38-32.43 87.066-49.221 57.909-95.201 57.909-95.201-91.233-109.402-359.227 61.184-359.227 61.184l-345.434-62.554c-49.916-183.551-216.724-226.674-216.724-226.674-79.509-12.464-68.639 76.672-68.639 76.672 62.061 146.761 218.123 180.527 218.123 180.527 61.47 70.59 161.941 402.39 161.941 402.39-101.512 245.186-30.183 326.754-30.183 326.754 9.136 17.894 18.799 24.862 28.156 25.249z" />
-<glyph unicode="" glyph-name="contract" d="M167.399 282.158h323.415c0 0 5.916-31.909 7.353-37.842h-330.768c-8.671 0-15.672 7.017-15.672 15.688v6.483c0 8.652 7.001 15.67 15.672 15.67zM166.669 403.101h286.113c0.132-1.774 0.017-3.559-0.635-5.28l-12.548-32.574h-272.93c-8.657 0-15.674 7.020-15.674 15.692v6.469c0 8.674 7.018 15.694 15.674 15.694zM164.498 521.836h277.904l3.993-8.972c1.888-4.295 0.969-9.356-2.323-12.716l-16.156-16.154h-263.419c-8.654 0-15.671 7.016-15.671 15.687v6.482c0 8.653 7.018 15.672 15.671 15.672zM742.87 626.071c-99.615 0-180.35-80.744-180.35-180.355 0-99.603 80.734-180.406 180.35-180.406 99.632 0 180.386 80.803 180.386 180.406 0 99.611-80.754 180.355-180.386 180.355zM163.987 639.365h326.827v-33.951c0-1.354-0.266-2.641-0.701-3.878h-326.127c-8.672 0-15.674 7.018-15.674 15.674v6.483c0 8.672 7.001 15.672 15.674 15.672zM742.875 723.684c3.759 0 7.519-1.433 10.393-4.299l28.972-28.939c3.14-3.158 7.869-4.042 11.913-2.239l37.526 16.592c7.435 3.325 16.073-0.082 19.366-7.485l19.533-44.028c1.802-4.042 5.862-6.7 10.325-6.7h48.152c8.106 0 14.672-6.549 14.672-14.686v-41.002c0-4.444 2.755-8.405 6.865-9.992l38.264-14.768c7.585-2.91 11.36-11.448 8.437-18.999l-17.345-44.912c-1.619-4.176-0.617-8.922 2.541-12.079l34.069-34.019c5.747-5.749 5.747-15.071 0-20.819l-29.005-28.972c-3.109-3.108-4.010-7.853-2.206-11.897l16.592-37.477c3.291-7.47-0.050-16.124-7.486-19.415l-43.993-19.515c-4.077-1.805-6.732-5.884-6.732-10.343v-48.088c0-8.152-6.566-14.753-14.672-14.753h-1.653l94.603-227.368c2.038-4.911-2.941-9.792-7.803-7.617l-110.426 48.72c-3.726 1.637-8.021-0.099-9.523-3.827l-45.115-109.69c-2.054-5.047-9.154-5.047-11.261-0.050l-91.812 220.185c-0.382 0.984-0.484 2.036-0.717 3.005-1.989-0.284-3.96-0.25-5.933 0.235l-91.844-220.601c-2.089-4.981-9.207-4.981-11.245 0.032l-45.129 109.69c-1.537 3.71-5.833 5.514-9.557 3.845l-110.424-48.722c-4.88-2.155-9.843 2.723-7.822 7.6l93.452 224.563h-0.135c-8.103 0-14.687 6.601-14.687 14.753v40.97c0 4.428-2.738 8.422-6.866 9.974l-38.228 14.786c-7.602 2.909-11.363 11.43-8.454 18.981l17.327 44.947c1.586 4.159 0.583 8.871-2.559 12.029l-34.051 34.019c-5.714 5.747-5.714 15.070 0 20.819l29.040 29.006c3.090 3.125 3.959 7.903 2.188 11.913l-16.624 37.493c-3.276 7.403 0.049 16.108 7.467 19.415l44.060 19.465c4.078 1.805 6.7 5.848 6.7 10.311v48.17c0 8.137 6.584 14.686 14.687 14.686h41.002c4.396 0 8.39 2.742 9.96 6.884l14.767 38.246c2.924 7.552 11.447 11.328 19.031 8.42l44.93-17.309c4.178-1.654 8.922-0.62 12.080 2.522l34.002 34.036c2.874 2.866 6.633 4.299 10.392 4.299zM163.837 771.753h206.951c8.672 0 15.689-6.999 15.689-15.672v-6.483c0-8.673-7.017-15.674-15.689-15.674h-206.951c-8.672 0-15.691 7.002-15.691 15.674v6.483c0 8.673 7.019 15.672 15.691 15.672zM26.215 955.958h721.289c14.469 0 26.233-11.762 26.233-26.214v-178.013l-15.84 15.805c-3.942 3.927-9.156 6.099-14.72 6.099s-10.778-2.172-14.72-6.081l-22.858-22.891v122.357c0 11.462-9.34 20.785-20.819 20.785h-595.842c-11.462 0-20.784-9.323-20.784-20.785v-752.636c0-11.478 9.322-20.801 20.784-20.801h353.1l-28.353-68.155h-387.471c-14.452 0-26.215 11.765-26.215 26.233v878.084c0 14.452 11.763 26.214 26.215 26.214z" />
-<glyph unicode="" glyph-name="star2" d="M875.125 506.258l-204.547-148.578 77.998-240.192c0.65-1.932 1.025-4.157 1.025-6.47 0-11.561-9.372-20.932-20.932-20.932-0.003 0-0.006 0-0.009 0v0c-4.595 0.025-8.829 1.553-12.24 4.116l0.053-0.038-204.342 148.426-204.344-148.426c-3.358-2.525-7.592-4.053-12.182-4.078h-0.006c-0.002 0-0.004 0-0.006 0-11.562 0-20.934 9.373-20.934 20.934 0 2.312 0.375 4.536 1.067 6.616l-0.043-0.148 77.998 240.192-204.547 148.578c-5.239 3.837-8.603 9.966-8.603 16.88 0 11.522 9.34 20.862 20.862 20.862 0 0 0 0 0 0h252.793l78.1 240.5c2.803 8.438 10.625 14.417 19.843 14.417s17.040-5.978 19.8-14.27l0.042-0.147 78.099-240.5h252.793c11.521-0.003 20.859-9.343 20.859-20.864 0-6.913-3.362-13.041-8.54-16.837l-0.058-0.041z" />
-<glyph unicode="" glyph-name="list" d="M352 512v-128c0-17.673-14.327-32-32-32v0h-128c-17.673 0-32 14.327-32 32v0 128c0 17.673 14.327 32 32 32v0h128c17.673 0 32-14.327 32-32v0zM320 288h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM320 800h-128c-17.673 0-32-14.327-32-32v0-128c0-17.673 14.327-32 32-32v0h128c17.673 0 32 14.327 32 32v0 128c0 17.673-14.327 32-32 32v0zM864 608h-416c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h416c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0zM864 800h-416c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h416c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0zM864 224h-416c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h416c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0zM864 416h-416c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h416c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0z" />
-<glyph unicode="" glyph-name="club" d="M817.469 804.797c-86.583 37.493-187.411 59.301-293.332 59.301-4.267 0-8.526-0.035-12.777-0.106l0.641 0.008c-3.61 0.062-7.869 0.098-12.136 0.098-105.922 0-206.75-21.808-298.239-61.179l4.907 1.879c-27.667-13.023-46.485-40.652-46.531-72.681v-236.115c0-250.109 316.188-419.392 329.656-426.469 6.476-3.484 14.171-5.531 22.344-5.531s15.868 2.047 22.6 5.657l-0.256-0.126c13.469 7.077 329.656 176.359 329.656 426.469v236.109c-0.046 32.035-18.864 59.664-46.042 72.48l-0.489 0.207zM713.506 551.148l-111.426-80.937 42.484-130.82c0.426-1.267 0.672-2.727 0.672-4.244 0-7.587-6.151-13.738-13.738-13.738-3.034 0-5.838 0.983-8.111 2.649l0.039-0.027-111.295 80.841-111.297-80.841c-2.235-1.639-5.039-2.622-8.073-2.622-7.587 0-13.738 6.151-13.738 13.738 0 1.517 0.246 2.977 0.7 4.341l-0.028-0.097 42.484 130.82-111.426 80.936c-3.448 2.527-5.662 6.562-5.662 11.114 0 7.587 6.15 13.737 13.736 13.738h137.703l42.533 130.969c1.844 5.558 6.995 9.495 13.065 9.495s11.221-3.938 13.037-9.398l0.028-0.097 42.533-130.969h137.703c7.587-0.001 13.736-6.151 13.736-13.738 0-4.552-2.214-8.587-5.624-11.087l-0.038-0.027z" />
-<glyph unicode="" glyph-name="clubs" d="M817.469 804.797c-86.583 37.493-187.411 59.301-293.332 59.301-4.267 0-8.526-0.035-12.777-0.106l0.641 0.008c-3.61 0.062-7.869 0.098-12.136 0.098-105.922 0-206.75-21.808-298.239-61.179l4.907 1.879c-27.667-13.023-46.485-40.652-46.531-72.681v-236.115c0-250.109 316.188-419.392 329.656-426.469 6.476-3.484 14.171-5.531 22.344-5.531s15.868 2.047 22.6 5.657l-0.256-0.126c13.469 7.077 329.656 176.359 329.656 426.469v236.109c-0.046 32.035-18.864 59.664-46.042 72.48l-0.489 0.207zM768 496c0-143.25-149.75-260.719-239.031-318l-17.344-11.109-17.28 11.156c-71.657 46.235-238.345 169.781-238.345 317.953v226.234l21.219 7.594c68.053 24.21 146.55 38.202 228.314 38.202 2.274 0 4.545-0.011 6.814-0.032l-0.346 0.003c1.582 0.013 3.452 0.020 5.324 0.020 82.158 0 161.049-13.986 234.422-39.708l-4.966 1.516 21.219-7.594zM713.506 551.148l-111.426-80.937 42.484-130.82c0.426-1.267 0.672-2.727 0.672-4.244 0-7.587-6.151-13.738-13.738-13.738-3.034 0-5.838 0.983-8.111 2.649l0.039-0.027-111.295 80.841-111.297-80.841c-2.235-1.639-5.039-2.622-8.073-2.622-7.587 0-13.738 6.151-13.738 13.738 0 1.517 0.246 2.977 0.7 4.341l-0.028-0.097 42.484 130.82-111.426 80.936c-3.448 2.527-5.662 6.562-5.662 11.114 0 7.587 6.15 13.737 13.736 13.738h137.703l42.533 130.969c1.844 5.558 6.995 9.495 13.065 9.495s11.221-3.938 13.037-9.398l0.028-0.097 42.533-130.969h137.703c7.587-0.001 13.736-6.151 13.736-13.738 0-4.552-2.214-8.587-5.624-11.087l-0.038-0.027z" />
-<glyph unicode="" glyph-name="filter" d="M938.112 731.733h-937.6l333.184-523.819v-271.915h245.376v273.067zM0 960h938.667v-183.424h-938.667v183.424z" />
-<glyph unicode="" glyph-name="help" d="M512.085 960c-282.752 0-511.915-229.163-511.915-512.043 0-282.581 229.163-511.957 511.915-511.957s511.915 229.376 511.915 511.957c0 282.88-229.163 512.043-511.915 512.043zM585.429 100.309h-139.648v134.955h139.648v-134.955zM718.635 493.568c-11.776-16.811-34.517-38.272-68.053-64.469l-32.981-25.685c-18.048-13.995-29.952-30.379-35.925-49.024-3.755-11.819-5.76-30.208-6.059-55.125h-126.592c1.835 52.608 6.869 88.917 14.848 109.013 8.107 20.096 28.885 43.264 62.421 69.419l34.005 26.624c11.179 8.405 20.224 17.621 27.051 27.563 12.331 17.109 18.603 35.968 18.603 56.533 0 23.68-6.912 45.184-20.651 64.64-13.867 19.456-39.125 29.269-75.733 29.269-36.053 0-61.568-11.989-76.672-35.968-15.061-23.979-22.613-48.896-22.613-74.709h-134.997c3.755 88.661 34.731 151.552 92.928 188.629 36.736 23.68 81.92 35.499 135.509 35.499 70.357 0 128.853-16.853 175.36-50.432 46.549-33.664 69.845-83.499 69.845-149.461 0-40.491-10.155-74.581-30.293-102.315z" />
-<glyph unicode="" glyph-name="history" d="M508.715 556.501h515.328v-515.285h-515.328v515.285zM446.379 624.555h324.693v86.101h-515.371v-515.328h190.677zM190.635 775.637h324.651v86.144h-515.285v-515.328h190.635z" />
-<glyph unicode="" glyph-name="home" d="M876.885 390.997v-408.491h-249.515v308.139h-236.757v-308.139h-252.416v408.491l369.707 397.312zM1024 407.552l-512.981 552.448-194.048-208.299v72.192c0 4.523-3.413 8.149-7.595 8.149h-106.411c-4.224 0-7.595-3.584-7.595-8.149l0.299-202.581-195.669-210.176 33.024-35.499 477.952 513.365 480.085-516.821 32.939 35.371z" />
-<glyph unicode="" glyph-name="globe" d="M388.544 743.172c-28.448-28.809-51.452-63.073-67.291-101.070l-0.777-2.102h-63.865c33.945 44.926 78.421 80.17 129.848 102.371l2.085 0.801zM218.906 576h81.85c-6.347-28.27-10.618-61.247-11.874-94.995l-0.030-1.005h-95.229c3.656 35.474 12.605 67.979 26.088 98.006l-0.805-2.006zM218.906 320c-12.678 28.021-21.627 60.526-25.169 94.637l-0.115 1.363h95.228c1.286-34.754 5.557-67.731 12.582-99.676l-0.678 3.676zM256.611 256h63.865c16.616-40.099 39.619-74.362 68.1-103.205l-0.033 0.033c-53.511 23.002-97.988 58.245-131.347 102.364l-0.586 0.808zM480 158.068c-37.056 25.495-67.243 58.29-89.018 96.499l-0.752 1.432h89.77zM480 320h-114.076c-7.272 28.429-12.009 61.37-13.155 95.221l-0.021 0.779h127.252zM480 480h-127.252c1.166 34.63 5.904 67.571 13.864 99.232l-0.688-3.232h114.076zM480 640h-89.77c22.527 39.642 52.714 72.436 88.791 97.294l0.978 0.637zM767.389 640h-63.872c-16.622 40.103-39.631 74.369-68.118 103.214l0.032-0.033c53.521-23.001 98.007-58.249 131.372-102.374l0.586-0.808zM544 737.926c37.050-25.497 67.233-58.289 89.008-96.493l0.752-1.432h-89.76zM544 576h114.072c7.273-28.428 12.012-61.369 13.159-95.221l0.021-0.779h-127.252zM544 416h127.252c-1.168-34.631-5.906-67.572-13.868-99.232l0.688 3.232h-114.072zM544 158.074v97.926h89.76c-22.527-39.637-52.71-72.429-88.782-97.288l-0.978-0.637zM635.432 152.818c28.454 28.812 51.464 63.079 67.309 101.080l0.777 2.101h63.872c-33.951-44.933-78.436-80.181-129.873-102.381l-2.085-0.801zM805.096 320h-81.853c6.349 28.27 10.621 61.246 11.877 94.995l0.030 1.005h95.228c-3.655-35.474-12.603-67.979-26.086-98.006l0.805 2.006zM735.148 480c-1.285 34.754-5.558 67.73-12.585 99.674l0.678-3.674h81.853c12.678-28.021 21.625-60.526 25.165-94.638l0.115-1.362zM896 448c0 212.077-171.923 384-384 384s-384-171.923-384-384c0-212.077 171.923-384 384-384v0c212.077 0 384 171.923 384 384v0z" />
-<glyph unicode="" glyph-name="info" d="M512.043 960c-282.795 0-512.043-229.248-512.043-512s229.248-512 512.043-512c282.709 0 511.957 229.248 511.957 512s-229.248 512-511.957 512zM504.277 787.2c38.613 0 68.523-28.971 68.523-67.541 0-36.693-29.909-67.584-69.504-67.584-35.712 0-67.584 30.891-67.584 67.584 0.043 38.571 31.915 67.541 68.565 67.541zM635.563 152.917h-247.125v30.933c55.979 6.741 61.781 10.667 61.781 79.147v191.147c0 63.744-6.741 66.603-53.12 74.325v27.989c57.899 6.784 121.643 19.328 175.701 34.731v-328.235c0-66.645 4.779-71.424 62.763-79.147v-30.891z" />
-<glyph unicode="" glyph-name="inbox" d="M816 800h-608c-44.164-0.048-79.952-35.836-80-79.995v-576.005c0.048-44.164 35.836-79.952 79.995-80h608.005c44.164 0.048 79.952 35.836 80 79.995v576.005c-0.048 44.164-35.836 79.952-79.995 80h-0.005zM800 384h-130.883c0 0 0 0-0.001 0-7.725 0-14.172-5.475-15.671-12.756l-0.018-0.103-26.856-134.281c-1.517-7.385-7.964-12.86-15.689-12.86 0 0 0 0-0.001 0h-197.766c0 0 0 0-0.001 0-7.725 0-14.172 5.475-15.671 12.756l-0.018 0.103-26.856 134.281c-1.517 7.385-7.964 12.86-15.689 12.86 0 0 0 0-0.001 0h-130.883v320h576z" />
-<glyph unicode="" glyph-name="save2" d="M178.857 170.418v-103.511h664.66v103.511zM270.958 958.932h127.786v-260.744h-127.786zM5.556 960h168.819v-312.888h669.074v312.888h175.017v-1023.936h-1012.91z" />
-<glyph unicode="" glyph-name="location" d="M507.349 960c-206.592 0-374.016-167.424-374.016-374.016 0-206.549 374.016-649.984 374.016-649.984s374.016 443.435 374.016 649.984c0 206.592-167.424 374.016-374.016 374.016zM510.635 394.752c-102.827 0-186.112 83.413-186.112 186.24s83.285 186.155 186.112 186.155c102.869 0 186.24-83.371 186.24-186.155 0-102.827-83.371-186.24-186.24-186.24z" />
-<glyph unicode="" glyph-name="menu" d="M870.4 755.2v-51.2c0-28.277-22.923-51.2-51.2-51.2v0h-614.4c-28.277 0-51.2 22.923-51.2 51.2v0 51.2c0 28.277 22.923 51.2 51.2 51.2v0h614.4c28.277 0 51.2-22.923 51.2-51.2v0zM819.2 550.4h-614.4c-28.277 0-51.2-22.923-51.2-51.2v0-51.2c0-28.277 22.923-51.2 51.2-51.2v0h614.4c28.277 0 51.2 22.923 51.2 51.2v0 51.2c0 28.277-22.923 51.2-51.2 51.2v0zM819.2 294.4h-614.4c-28.277 0-51.2-22.923-51.2-51.2v0-51.2c0-28.277 22.923-51.2 51.2-51.2v0h614.4c28.277 0 51.2 22.923 51.2 51.2v0 51.2c0 28.277-22.923 51.2-51.2 51.2v0z" />
-<glyph unicode="" glyph-name="newspaper" d="M400 512h352c8.837 0 16 7.163 16 16v0 128c0 8.837-7.163 16-16 16v0h-352c-8.837 0-16-7.163-16-16v0-128c0-8.837 7.163-16 16-16v0zM751.998 448h-128c-8.837 0-16-7.163-16-16v0-32c0-8.837 7.163-16 16-16v0h128c8.837 0 16 7.163 16 16v0 32c0 8.837-7.163 16-16 16v0zM751.998 320h-128c-8.837 0-16-7.163-16-16v0-32c0-8.837 7.163-16 16-16v0h128c8.837 0 16 7.163 16 16v0 32c0 8.837-7.163 16-16 16v0zM399.998 256h128c8.837 0 16 7.163 16 16v0 32c0 8.837-7.163 16-16 16v0h-128c-8.837 0-16-7.163-16-16v0-32c0-8.837 7.163-16 16-16v0zM864 800h-576c-0.005 0-0.012 0-0.018 0-17.663 0-31.982-14.319-31.982-31.982 0-0.006 0-0.013 0-0.019v0.001-544c0-17.673-14.327-32-32-32s-32 14.327-32 32v0 544c-35.327-0.047-63.953-28.673-64-63.995v-480.005c0.064-52.972 42.971-95.901 95.928-96h576.071c52.995 0.060 95.94 43.005 96 95.994v544.006c0 0.005 0 0.012 0 0.018 0 17.663-14.319 31.982-31.982 31.982-0.006 0-0.013 0-0.019 0h0.001zM832 224c-0.012-17.668-14.332-31.988-31.999-32h-485.47c3.465 9.51 5.469 20.489 5.469 31.935 0 0.023 0 0.045 0 0.068v-0.004 512h512zM399.998 384h128c8.837 0 16 7.163 16 16v0 32c0 8.837-7.163 16-16 16v0h-128c-8.837 0-16-7.163-16-16v0-32c0-8.837 7.163-16 16-16v0z" />
-<glyph unicode="" glyph-name="next" d="M342.4-64l-135.040 133.589 382.635 378.453-382.635 378.411 135.040 133.547 517.717-512-517.717-512z" />
-<glyph unicode="" glyph-name="pdf" d="M940.459 611.499h-344.96v344.917zM496.555 313.515c-13.995 0-22.997-1.237-28.331-2.432v-180.907c5.333-1.28 13.952-1.28 21.717-1.28 56.661-0.384 93.525 30.805 93.525 96.853 0.512 57.429-33.152 87.765-86.912 87.765zM254.805 314.325c-12.715 0-21.376-1.195-25.899-2.432v-81.707c5.333-1.152 11.904-1.621 20.949-1.621 33.237 0 53.717 16.853 53.717 45.184-0.043 25.429-17.664 40.576-48.768 40.576zM506.624 534.229v425.771h-428.416v-1024h862.251l1.408 598.229h-435.243zM340.096 209.749c-21.333-20.139-52.907-29.141-89.813-29.141-8.192 0-15.616 0.384-21.376 1.237v-98.859h-61.909v272.811c19.328 3.285 46.336 5.76 84.48 5.76 38.528 0 66.091-7.424 84.48-22.229 17.707-13.909 29.525-36.864 29.525-63.957s-8.96-50.048-25.387-65.621zM604.075 115.797c-29.227-24.192-73.515-35.712-127.659-35.712-32.384 0-55.381 2.048-70.955 4.139v271.573c22.912 3.712 52.864 5.76 84.437 5.76 52.48 0 86.656-9.472 113.28-29.568 28.715-21.291 46.763-55.339 46.763-104.192 0-52.949-19.328-89.429-45.867-112zM860.245 308.267h-106.24v-63.189h99.243v-50.901h-99.243v-111.104h-62.763v276.48h169.003v-51.285z" />
-<glyph unicode="" glyph-name="phone" d="M1024 221.397l-259.072 127.061c0 0-95.317-141.696-117.291-136.875-12.245 2.731-13.909 3.072-24.491 7.339-38.016 15.232-132.395 58.581-221.227 138.923l-0.725-0.853c-87.765 79.701-140.032 168.107-158.848 204.075-5.291 9.941-5.888 11.691-9.856 23.552-7.125 21.376 124.117 130.688 124.117 130.688l-152.96 244.693c0 0-202.795-15.744-203.648-217.515-1.109-275.328 239.403-501.589 239.403-501.589 130.816-119.979 325.803-272.683 589.056-244.48 200.661 21.504 195.541 224.981 195.541 224.981z" />
-<glyph unicode="" glyph-name="pictures" d="M490.078 477.525c115.421-29.010 218.49-140.465 249.026-175.898v112.194h74.003v-130.009h48.004v-60.007h-440.037v60.007h69.004zM146.397 671.379l-74.038-7.249 70.472-612.97 63.542 6.188zM778.103 777.091c45.819 0 83.007-37.202 83.007-83.032 0-45.824-37.188-83.026-83.007-83.026-45.814 0-83.003 37.202-83.003 83.026 0 45.83 37.188 83.032 83.003 83.032zM270.261 791.335l-68.169-6.625 68.169-698.111v596.849h-0.031c0 25.314 0 47.128 0 64.443h0.031zM336.703 851.095v-725.174h621.029v725.174h-71.381zM270.261 915.353h753.883v-853.631h-102.797l-708.662-69.13-0.089 0.931-129.677-12.684-82.919 740.739 140.175 13.684-10.439 106.832 140.525 13.751z" />
-<glyph unicode="" glyph-name="preview" d="M536.547 517.926c-30.9 0.726-62.232-8.88-88.437-29.489-59.822-47.104-70.185-133.811-23.081-193.667 47.081-59.864 133.78-70.206 193.644-23.114 59.865 47.082 70.206 133.781 23.093 193.645-26.478 33.675-65.49 51.691-105.219 52.625zM538.726 613.216c67.184-1.571 133.166-32.023 177.966-88.966 65.688-83.518 65.148-197.824 6.125-280.044l181.343-230.475-98.801-77.731-180.695 229.626c-94.572-40.282-207.937-14.438-274.56 70.206-79.646 101.242-62.158 247.856 39.081 327.512 44.306 34.845 97.287 51.093 149.541 49.871zM401.39 960h293.395c48.093 0 87.102-39.020 87.102-87.094v-310.935l-1.026 1.139c-18.362 19.89-39.475 37.484-62.783 52.259l-5.886 3.635v253.901c0 9.582-7.835 17.418-17.406 17.418h-288.834l-4.688-151.962c0 0-6.062-100.469-116.792-88.332l-94.904 2.562v-431.702c0-9.613 7.831-17.395 17.457-17.395h66.443l2.227-3.174c17.178-23.856 37.929-45.261 61.534-63.539l3.935-2.973h-134.139c-48.116 0-87.104 38.987-87.104 87.082v442.14l34.5 36.386 0.033 0.978 180.748 189.93h-0.501l-48.323-50.992 50.626 53.657h0.731l1.592 1.68h0.157z" />
-<glyph unicode="" glyph-name="print" d="M973.397 797.269h-922.837c-27.947 0-50.56-22.699-50.56-50.603v-455.083c0-27.904 22.613-50.603 50.56-50.603h108.885v-245.675h700.032v245.675h113.963c27.861 0 50.56 22.656 50.56 50.603v455.083c-0.043 27.904-22.699 50.603-50.603 50.603zM816.811 38.016h-614.699v467.925h614.699v-467.925zM263.125 960h497.664v-105.643h-497.664v105.643z" />
-<glyph unicode="" glyph-name="refresh" d="M765.525 413.483v-21.419c0-170.667-138.88-309.461-309.504-309.461s-309.376 138.795-309.376 309.461c0 164.309 128.853 298.752 290.731 308.523v-127.104l330.539 193.237-330.539 193.28v-112.768c-242.773-9.899-437.376-209.963-437.376-455.168 0-251.435 204.629-456.064 456.021-456.064 251.563 0 456.107 204.629 456.107 456.064v21.419h-146.603z" />
-<glyph unicode="" glyph-name="refresh1" d="M52.792 372.94l305.626-142.043-82.934-58.161c66.040-57.201 150.125-92.904 239.010-92.904 170.667 0 320.024 111.523 355.348 274.105l5.567 12.477h148.59l-6.911-25.146c-42.619-239.362-253.984-399.833-502.594-399.833-139.375 0-268.575 55.282-363.219 150.489l-69.687-47.028zM509.495 954.625c139.562 0 268.569-52.99 363.21-148.217l69.686 51.26 28.796-319.666-305.619 123.067 82.931 56.255c-66.040 57.213-150.121 88.892-239.005 88.892-170.664 0-320.019-118.844-355.341-281.652l-5.568-27.456h-148.586l6.911 41.279c42.617 239.413 253.979 416.239 502.585 416.239z" />
-<glyph unicode="" glyph-name="settings" d="M827.952 118.091l-19.911-19.927v-28.218l19.911-19.93h28.252l19.943 19.93v28.218l-19.943 19.927zM668.408 424.953l241.775-241.732c46.182-46.214 46.182-121.061 0-167.241-46.182-46.162-121.064-46.162-167.246 0l-268.686 268.676 66.22 66.168 59.574-59.586 72.931 72.974-5.4 10.615c-8.245 16.152-7.543 34.816 0.832 50.124zM871.565 890.932l152.509-152.479-276.639-276.67c-26.398 13.517-59.509 9.266-81.624-12.835-22.085-22.083-26.334-55.209-12.815-81.575l-52.958-52.955-59.605 59.59-251.618-251.667 2.432-2.413-4.283-25.536-107.576-75.725-25.986 25.983 74.117 109.187 25.563 4.251 2.4-2.43 251.679 251.635-59.604 59.6 52.926 52.943c26.43-13.505 59.541-9.253 81.626 12.832 22.083 22.1 26.332 55.24 12.815 81.621zM222.013 926.127c56.278-0.222 112.475-21.793 155.409-64.723 55.579-55.576 75.203-133.3 59.255-204.709l121.417-121.445c-7.766-4.219-16.428-6.745-25.537-6.745-8.532 0-17.003 2.064-24.546 5.93l-10.643 5.464-72.964-73.007 59.638-59.557-66.256-66.203-148.361 148.335c-71.398-15.929-149.126 3.677-204.705 59.237-57.241 57.237-76.513 138.076-57.816 211.215l154.337-154.378 108.666 50.701 50.684 108.645-154.395 154.344c18.289 4.67 37.058 6.969 55.817 6.895z" />
-<glyph unicode="" glyph-name="sort" d="M0 404.096h170.667v-468.096h-170.667v468.096zM426.667 667.435h170.667v-731.435h-170.667v731.435zM853.333 960h170.667v-1024h-170.667v1024z" />
-<glyph unicode="" glyph-name="squares" d="M928 752v-416c-0.171-56.042-41.533-102.371-95.391-110.309l-0.609-0.074v526.383c-0.114 8.79-7.21 15.886-15.989 16h-526.394c8.012 54.467 54.341 95.829 110.365 96h416.018c61.825-0.077 111.923-50.175 112-111.993v-0.007zM768 592v-416c-0.077-61.825-50.175-111.923-111.993-112h-416.007c-61.825 0.077-111.923 50.175-112 111.993v416.007c0.077 61.825 50.175 111.923 111.993 112h416.007c61.825-0.077 111.923-50.175 112-111.993v-0.007zM672 592c-0.114 8.79-7.21 15.886-15.989 16h-416.011c-8.79-0.114-15.886-7.21-16-15.989v-416.011c0.114-8.79 7.21-15.886 15.989-16h416.011c8.79 0.114 15.886 7.21 16 15.989v0.011z" />
-<glyph unicode="" glyph-name="sync" d="M1024 306.56l-108.971 210.859-206.208-106.581 120.277-38.869c-37.803-144.64-169.088-251.861-325.419-251.861-101.248 0-196.139 44.971-260.437 123.307l-69.376-56.96c81.408-99.243 201.643-156.117 329.813-156.117 191.019 0 356.309 132.608 410.453 306.048l109.867-29.824zM194.859 518.528c37.717 144.597 169.045 251.819 325.376 251.819 101.205 0 196.139-44.928 260.437-123.307l69.419 56.96c-81.408 99.243-201.643 156.117-329.813 156.117-190.976 0-352.725-135.296-406.912-308.651l-113.365 32.427 108.971-210.859 206.165 106.581-120.277 38.912z" />
-<glyph unicode="" glyph-name="target" d="M867.883 704c8.836 0 16.836 3.582 22.627 9.373l59.314 59.314c2.895 2.895 4.685 6.895 4.685 11.313 0 8.836-7.163 16-15.999 16h-74.51v74.514c0 0.001 0 0.001 0 0.002 0 8.837-7.163 16-16 16-4.419 0-8.419-1.791-11.315-4.687l-59.312-59.315c-5.791-5.791-9.373-13.79-9.373-22.627v0-54.637l-8.682-8.682c-66.1 55.804-152.254 89.721-246.331 89.721-211.532 0-383.013-171.481-383.013-383.013s171.481-383.013 383.013-383.013c211.532 0 383.013 171.481 383.013 383.013 0 72.509-20.149 140.312-55.153 198.116l0.96-1.709-46.795-46.795c23.581-43.637 37.44-95.518 37.44-150.635 0-177.696-144.051-321.748-321.748-321.748s-321.748 144.051-321.748 321.748c0 177.696 144.051 321.748 321.748 321.748 77.466 0 148.538-27.377 204.069-72.983l-0.561 0.447-45.632-45.632c-42.666 33.743-97.239 54.138-156.575 54.167h-0.007c-0.073 0-0.159 0-0.245 0-141.52 0-256.245-114.725-256.245-256.245s114.725-256.245 256.245-256.245c141.52 0 256.245 114.725 256.245 256.245 0 36.602-7.674 71.412-21.501 102.908l0.644-1.645-50.189-50.189c4.507-15.547 7.099-33.406 7.099-51.87 0-106.616-86.429-193.044-193.044-193.044s-193.044 86.429-193.044 193.044c0 106.616 86.429 193.044 193.044 193.044 41.993 0 80.855-13.408 112.537-36.178l-0.576 0.393-46.351-46.352c-18.44 11.276-40.73 18.003-64.582 18.133h-0.036c-70.692 0-128-57.308-128-128s57.308-128 128-128c70.692 0 128 57.308 128 128v0c-0.13 23.888-6.857 46.178-18.449 65.174l0.316-0.557 191.383 191.383zM512 384c-35.346 0-64 28.654-64 64s28.654 64 64 64v0c5.857-0.082 11.479-0.948 16.81-2.498l-0.446 0.111-21.457-21.457c-5.79-5.79-9.372-13.789-9.372-22.625 0-17.671 14.325-31.997 31.997-31.997 8.836 0 16.835 3.581 22.625 9.372v0l21.457 21.457c1.438-4.884 2.304-10.506 2.386-16.318l0.001-0.046c-0.047-35.327-28.673-63.953-63.995-64h-0.005z" />
-<glyph unicode="" glyph-name="time" d="M512 960c-282.752 0-512-229.248-512-512s229.248-512 512-512c282.752 0 512 229.248 512 512s-229.248 512-512 512zM861.824 418.816h-390.869v403.371h42.667v-360.704h348.203v-42.667z" />
-<glyph unicode="" glyph-name="transfer" d="M972.787 322.202l51.141-51.136-295.574-294.437-138.072 136.86 51.107 51.119c0 0 81.652-86.835 86.997-86.835 5.34 0 244.402 244.429 244.402 244.429zM433.081 793.707l-192.599-230.97h111.931v-323.461h161.302v323.461h111.991zM433.047 919.323c239.186 0 433.093-193.895 433.093-433.081 0-81.083-23.718-156.114-62.494-221.015-27.965-28.28-54.138-54.651-74.932-75.415-9.547 9.983-85.636 90.649-85.636 90.649l-167.019-167.223 49.948-49.499c-30.010-6.592-60.961-10.557-92.96-10.557-239.186 0-433.047 193.873-433.047 433.059s193.862 433.081 433.047 433.081z" />
-<glyph unicode="" glyph-name="trash" d="M979.499 870.955h-267.179c0 27.051 5.205 89.045-51.925 89.045h-252.032c-56.789 0-52.139-61.995-52.139-89.045h-267.093c-29.355 0-44.501-61.995-44.501-89.003h979.371c0 26.965-15.147 89.003-44.501 89.003zM133.632 737.408l-2.347-745.387c0-30.933 27.179-56.021 60.715-56.021h683.989c33.579 0 60.757 25.088 60.757 55.979l-1.792 745.387h-801.323zM311.723 25.173h-89.045v623.189h89.045v-623.189zM489.771 25.173h-89.045v623.189h89.003v-623.189zM667.819 25.173h-89.045v623.189h89.045v-623.189zM845.909 25.173h-89.003v623.189h89.003v-623.189z" />
-<glyph unicode="" glyph-name="upload5" d="M1024-63.915l-1024-0.085v428.672l153.6 0.171v-275.243l718.421-0.768v275.84l151.979 0.085zM411.989 574.933v-279.509h192.512v279.509h211.456l-303.957 385.067-303.915-385.067z" />
-<glyph unicode="" glyph-name="user2" d="M784 832h-544c-61.825-0.077-111.923-50.175-112-111.993v-544.007c0.077-61.825 50.175-111.923 111.993-112h544.007c61.825 0.077 111.923 50.175 112 111.993v544.007c-0.077 61.825-50.175 111.923-111.993 112h-0.007zM384 506.039v69.961c0 70.692 57.308 128 128 128s128-57.308 128-128v0-69.961c4.573-3.984 7.447-9.818 7.447-16.322 0-2.91-0.575-5.686-1.618-8.22l0.052 0.144-11.762-35.281c-5.297-13.384-16.083-23.612-29.504-28.044l-0.337-0.096-5.269-42.156c-4.083-31.765-30.956-56.062-63.504-56.062-0.001 0-0.002 0-0.002 0h-47.004c-0.001 0-0.001 0-0.002 0-32.548 0-59.421 24.298-63.47 55.744l-0.034 0.32-5.27 42.156c-13.759 4.528-24.544 14.757-29.729 27.818l-0.113 0.323-11.762 35.281c-0.99 2.39-1.565 5.165-1.565 8.075 0 6.504 2.873 12.338 7.42 16.3l0.026 0.022zM736 176c0-8.837-7.163-16-16-16v0h-416c-8.837 0-16 7.163-16 16v0 62.68c0.001 21.603 10.705 40.706 27.098 52.295l0.201 0.135 57.17 40.016c20.522-44.54 64.704-74.939 116.007-75.125h47.024c51.327 0.185 95.509 30.585 115.704 74.332l0.328 0.793 57.17-40.016c16.594-11.724 27.298-30.827 27.298-52.43v0z" />
-<glyph unicode="" glyph-name="usergroup" d="M785.038 462.096h101.5c75.938 0 137.461-61.541 137.461-137.487v-180.049h-235.36v175.248c0 50.831-17.644 97.528-46.896 134.653 13.706 4.552 28.042 7.635 43.294 7.635zM137.483 462.096h101.522c10.666 0 20.915-1.499 30.915-3.802-31.125-37.687-49.792-85.934-49.792-138.487v-175.248h-220.128v180.049c0 75.946 61.606 137.487 137.483 137.487zM438.126 499.344h132.521c99.144 0 179.497-80.365 179.497-179.531v-235.093h-491.536v235.093c0 99.166 80.354 179.531 179.518 179.531zM839.089 701.056c61.432 0 111.263-49.845 111.263-111.291 0-61.491-49.831-111.333-111.263-111.333-61.479 0-111.329 49.843-111.329 111.333 0 61.446 49.85 111.291 111.329 111.291zM191.524 701.056c61.442 0 111.276-49.845 111.276-111.291 0-61.491-49.834-111.333-111.276-111.333-61.482 0-111.316 49.843-111.316 111.333 0 61.446 49.834 111.291 111.316 111.291zM508.642 811.36c2.509 0 5.002-0.064 7.48-0.189s4.938-0.313 7.381-0.561c2.443-0.248 4.868-0.557 7.274-0.924s4.792-0.794 7.158-1.278c2.366-0.484 4.71-1.025 7.032-1.623s4.622-1.251 6.898-1.958c2.276-0.708 4.527-1.47 6.754-2.285s4.427-1.683 6.601-2.602c2.174-0.919 4.321-1.89 6.439-2.91s4.208-2.091 6.267-3.209c2.060-1.119 4.089-2.286 6.087-3.499s3.964-2.474 5.898-3.78c1.933-1.306 3.833-2.657 5.699-4.052s3.696-2.834 5.491-4.315c1.795-1.481 3.553-3.004 5.274-4.568s3.404-3.169 5.048-4.812c1.644-1.644 3.249-3.327 4.813-5.047s3.088-3.479 4.569-5.274c1.481-1.795 2.92-3.625 4.315-5.491s2.747-3.765 4.053-5.698c1.306-1.933 2.567-3.899 3.781-5.897s2.381-4.027 3.5-6.087c1.119-2.059 2.19-4.149 3.21-6.267s1.992-4.265 2.911-6.438c0.92-2.174 1.788-4.374 2.603-6.601s1.578-4.478 2.285-6.754c0.708-2.276 1.361-4.575 1.959-6.898s1.139-4.667 1.623-7.032c0.484-2.366 0.911-4.752 1.278-7.158s0.676-4.831 0.924-7.275c0.248-2.443 0.436-4.904 0.561-7.382s0.189-4.972 0.189-7.48c0-2.508-0.064-5.001-0.189-7.477s-0.313-4.937-0.561-7.379c-0.248-2.442-0.557-4.867-0.924-7.272s-0.794-4.791-1.278-7.156c-0.484-2.365-1.026-4.709-1.623-7.030s-1.251-4.62-1.959-6.895c-0.708-2.275-1.47-4.526-2.285-6.752s-1.683-4.426-2.603-6.599c-0.919-2.173-1.89-4.319-2.911-6.437s-2.091-4.207-3.21-6.266c-1.119-2.059-2.286-4.088-3.5-6.085s-2.475-3.963-3.781-5.896c-1.306-1.933-2.658-3.832-4.053-5.697s-2.834-3.695-4.315-5.489c-1.481-1.794-3.005-3.552-4.569-5.273s-3.169-3.403-4.813-5.047c-1.644-1.644-3.327-3.248-5.048-4.812s-3.48-3.087-5.274-4.567c-1.795-1.481-3.626-2.919-5.491-4.314s-3.766-2.746-5.699-4.051c-1.933-1.306-3.9-2.566-5.898-3.78s-4.028-2.381-6.087-3.499c-2.060-1.119-4.149-2.189-6.267-3.209s-4.265-1.991-6.439-2.91c-2.174-0.919-4.375-1.787-6.601-2.602s-4.478-1.577-6.754-2.285c-2.276-0.708-4.575-1.361-6.898-1.958s-4.667-1.139-7.032-1.623c-2.366-0.484-4.752-0.91-7.158-1.278s-4.831-0.676-7.274-0.924c-2.443-0.248-4.904-0.436-7.381-0.561s-4.971-0.189-7.48-0.189c-2.508 0-5.001 0.064-7.478 0.189s-4.937 0.313-7.379 0.561c-2.442 0.248-4.867 0.557-7.272 0.924s-4.791 0.794-7.156 1.278c-2.365 0.484-4.709 1.025-7.030 1.623s-4.621 1.251-6.896 1.958c-2.275 0.708-4.526 1.47-6.752 2.285s-4.426 1.683-6.599 2.602c-2.173 0.919-4.319 1.89-6.437 2.91s-4.207 2.091-6.266 3.209c-2.059 1.119-4.088 2.285-6.085 3.499s-3.963 2.474-5.896 3.78c-1.933 1.306-3.832 2.657-5.697 4.051s-3.695 2.833-5.49 4.314c-1.794 1.481-3.552 3.004-5.273 4.567s-3.403 3.168-5.047 4.812c-1.644 1.644-3.248 3.326-4.812 5.047s-3.087 3.478-4.567 5.273c-1.481 1.794-2.919 3.625-4.314 5.489s-2.746 3.765-4.052 5.697c-1.306 1.933-2.566 3.898-3.78 5.896s-2.381 4.026-3.499 6.085c-1.119 2.059-2.189 4.148-3.209 6.266s-1.991 4.264-2.91 6.437c-0.919 2.173-1.787 4.373-2.602 6.599s-1.577 4.477-2.285 6.752c-0.708 2.275-1.361 4.574-1.958 6.895s-1.139 4.665-1.623 7.030c-0.484 2.365-0.91 4.75-1.278 7.156s-0.676 4.83-0.924 7.272c-0.248 2.442-0.436 4.903-0.561 7.379s-0.189 4.97-0.189 7.477c0 2.509 0.064 5.003 0.189 7.48s0.313 4.939 0.561 7.382c0.248 2.443 0.557 4.869 0.924 7.275s0.794 4.792 1.278 7.158c0.484 2.366 1.025 4.71 1.623 7.032s1.251 4.622 1.958 6.898c0.708 2.276 1.47 4.527 2.285 6.754s1.683 4.427 2.602 6.601c0.919 2.174 1.89 4.32 2.91 6.438s2.091 4.208 3.209 6.267c1.119 2.059 2.285 4.089 3.499 6.087s2.474 3.964 3.78 5.897c1.306 1.933 2.657 3.833 4.052 5.698s2.833 3.696 4.314 5.491c1.481 1.795 3.004 3.553 4.567 5.274s3.168 3.404 4.812 5.047c1.644 1.644 3.326 3.248 5.047 4.812s3.479 3.087 5.273 4.568c1.794 1.481 3.625 2.92 5.49 4.315s3.765 2.746 5.697 4.052c1.933 1.306 3.898 2.566 5.896 3.78s4.026 2.381 6.085 3.499c2.059 1.119 4.148 2.189 6.266 3.209s4.264 1.991 6.437 2.91c2.173 0.919 4.373 1.787 6.599 2.602s4.477 1.577 6.752 2.285c2.275 0.708 4.574 1.361 6.896 1.958s4.665 1.139 7.030 1.623c2.365 0.484 4.751 0.91 7.156 1.278s4.83 0.676 7.272 0.924c2.442 0.248 4.903 0.436 7.379 0.561s4.97 0.189 7.478 0.189z" />
-<glyph unicode="" glyph-name="viewpdf" d="M186.878 198.357c-61.858-18.302-107.102-64.709-122.827-82.566 0.191 3.469-6.445-7.624-6.445-7.624s2.548 3.151 6.445 7.624c-0.066-1.354-1.068-4.711-4.028-12.017-10.629-26.259 22.267-25.589 22.267-25.589 93.244 14.117 104.589 120.172 104.589 120.172zM721.065 287.733c-17.328 0.001-28.016-1.035-28.016-1.035 99.242-80.847 191.531-62.003 191.531-62.003 37.782 4.708-19.861 37.254-19.861 37.254-53.296 21.995-110.573 25.78-143.653 25.783zM381.96 506.055c0 0-35.839-173.585-80.605-225.069l248.329 36.937c0 0-123.752 110.91-167.724 188.132zM845.111 705.497c4.827 0.315 10.331-1.799 16.15-6.633l38.243-31.943c18.558-15.55 48.954-40.949 67.525-56.433l38.272-31.99c18.607-15.533 18.321-40.666-0.508-55.8l-38.832-31.256c-18.859-15.249-49.683-40.059-68.539-55.228l-38.835-31.239c-18.822-15.249-34.021-2.515-33.753 28.201l0.526 59.012h-225.156c-15.85 0-28.705 12.878-28.705 28.729v62.246c0 15.834 12.855 28.694 28.705 28.694h226.241l0.506 59.362c0.198 21.13 7.54 33.585 18.16 34.279zM386.788 826.673c-2.777-0.341-5.637-3.384-8.408-10.615 0 0-13.398-64.091 20.135-170.59 0 0 28.535 84.507 7.050 149.183 0 0-8.859 33.241-18.777 32.022zM356.447 896.795c26.43 1.014 50.261-49.878 50.261-49.878 74.083-158.383 4.029-259.586 4.029-259.586 73.367-173.011 220.388-265.396 220.388-265.396 142.849 7.671 247.075-28.422 247.075-28.422 81.976-43.129 54.534-83.444 54.534-83.444-85.921-95.871-338.276 53.635-338.276 53.635l-325.281-54.828c-46.998-160.866-204.075-198.666-204.075-198.666-74.88-10.915-64.627 67.21-64.627 67.21 58.439 128.623 205.395 158.211 205.395 158.211 57.879 61.876 152.495 352.67 152.495 352.67-95.602 214.882-28.427 286.37-28.427 286.37 8.602 15.68 17.701 21.786 26.511 22.124z" />
-<glyph unicode="" glyph-name="warning" d="M1001.173 174.123l-384.981 666.88c-26.709 46.293-63.659 71.808-104.021 71.808s-77.312-25.472-104.064-71.765l-385.024-666.923c-26.709-46.293-30.336-91.051-10.155-125.952 20.181-34.944 60.715-54.229 114.176-54.229h770.048c53.461 0 93.995 19.243 114.176 54.187 20.139 34.944 16.555 79.701-10.155 125.995zM514.645 79.403c-35.797 0-64.768 28.971-64.768 64.811 0 35.669 28.971 64.683 64.768 64.683 35.755 0 64.768-29.013 64.768-64.683-0.043-35.84-29.056-64.811-64.768-64.811zM604.459 648.533c0 0-35.712-354.901-35.712-355.456l-0.043-0.555h-0.043c-1.28-26.155-25.557-47.061-55.424-47.061-30.848 0-55.765 22.101-55.765 49.195 0 0.811-33.536 353.92-33.536 353.92v0.128c0 49.835 40.363 90.283 90.24 90.283 49.792 0 90.24-40.448 90.24-90.283 0.043-0.085 0.043-0.128 0.043-0.171z" />
-<glyph unicode="" glyph-name="website" d="M512.043 960c-282.709 0-512.043-229.248-512.043-512s229.291-512 512-512c282.709 0 512 229.248 512 512s-229.248 512-511.957 512zM470.229 375.808c0 0-158.677 36.693-189.568 98.603-62.208 124.715-69.589 100.608-77.227 139.221-7.893 38.656 3.797 117.973 3.797 117.973s-1.92-15.488 75.307 84.992c54.997 71.296 183.509 45.909 228.181 30.891 18.517-6.101-79.189 0-83.2-52.224-3.797-52.096 7.893-44.501 52.309-56.021 44.587-11.52 42.581 90.965 42.581 90.965l67.627-40.619 25.216-25.216c0 0 6.997-62.635-15.616-90.88-25.771-32.384-60.416-32.085-65.579-88.875-3.84-41.515 3.797-110.208 3.797-110.208s-8.789-11.392-21.291-1.877c-17.707 13.397-36.608 36.48-50.219 63.744-23.168 46.464-90.88 13.525-92.8 7.765-37.376-112.256 98.603-135.296 98.603-135.296l-1.92-32.939zM530.048-10.923c7.808 30.933 85.205 100.608 69.589 131.499-15.36 30.933-46.293 30.933-77.227 54.187-31.019 23.168-33.579 95.317 15.403 139.179 46.507 41.6 100.608 46.379 100.608 46.379s100.48-30.891 131.371-38.571c31.019-7.808 100.608 15.36 100.608-38.699 0.043-201.259-347.989-324.949-340.352-293.973z" />
-<glyph unicode="" glyph-name="map" d="M672 768l-320 128-352-128v-768l352 128 320-128 352 128v768l-352-128zM384 814.27l256-102.4v-630.138l-256 102.398v630.14zM64 723.172l256 93.090v-631.8l-256-93.088v631.798zM960 172.828l-256-93.092v631.8l256 93.090v-631.798z" />
-<glyph unicode="" glyph-name="profile" d="M864 960h-768c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h768c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM832 64h-704v768h704v-768zM256 384h448v-64h-448zM256 256h448v-64h-448zM320 672c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM480 576h-128c-52.8 0-96-28.8-96-64v-64h320v64c0 35.2-43.2 64-96 64z" />
-<glyph unicode="" glyph-name="drawer" d="M1016.988 307.99l-256 320c-6.074 7.592-15.266 12.010-24.988 12.010h-448c-9.72 0-18.916-4.418-24.988-12.010l-256-320c-4.538-5.674-7.012-12.724-7.012-19.99v-288c0-35.346 28.654-64 64-64h896c35.348 0 64 28.654 64 64v288c0 7.266-2.472 14.316-7.012 19.99zM960 256h-224l-128-128h-192l-128 128h-224v20.776l239.38 299.224h417.24l239.38-299.224v-20.776zM736 448h-448c-17.672 0-32 14.328-32 32s14.328 32 32 32h448c17.674 0 32-14.328 32-32s-14.326-32-32-32zM800 320h-576c-17.672 0-32 14.326-32 32s14.328 32 32 32h576c17.674 0 32-14.326 32-32s-14.326-32-32-32z" />
-<glyph unicode="" glyph-name="licenses" d="M474.069 231.66h366.727v-43.762h-366.727zM281.015 307.571c61.647-15.992 110.586-63.489 128.634-124.244h-348.516c17.567 59.114 64.317 105.482 123.551 122.699 4.828-30.41 24.485-53.289 48.071-53.289 23.967 0 43.886 23.589 48.26 54.834zM622.678 358.968h216.735v-43.787h-216.735zM233.593 441.402c34.812 0 63.031-28.213 63.031-63.054 0-34.81-28.219-62.994-63.031-62.994-34.782 0-62.967 28.184-62.967 62.994 0 34.84 28.185 63.054 62.967 63.054zM0 656.655h639.506c2.54-3.345 5.503-6.497 9.041-9.073l36.645-26.608h-650.605v-505.121h831.009v374.039l38.706-28.091v-383.593h-904.303zM842.342 817.792c5.468 0 10.294-3.507 11.935-8.719l36.842-113.291h119.14c5.468 0 10.294-3.538 11.967-8.721 1.675-5.179-0.161-10.841-4.569-14.060l-96.36-70.015 36.807-113.323c1.673-5.145-0.163-10.841-4.569-14.026-2.189-1.611-4.828-2.382-7.433-2.382-2.575 0-5.147 0.771-7.368 2.382l-96.392 70.046-96.363-70.046c-2.221-1.611-4.794-2.382-7.401-2.382-2.604 0-5.243 0.771-7.43 2.382-4.379 3.185-6.242 8.881-4.537 14.026l36.805 113.323-96.36 70.015c-4.438 3.219-6.242 8.881-4.633 14.060 1.772 5.182 6.563 8.721 12.034 8.721h119.11l36.837 113.291c1.673 5.212 6.466 8.719 11.937 8.719z" />
-<glyph unicode="" glyph-name="lictransfer" d="M474.754 237.548h372.127v-44.437h-372.127zM278.856 314.562c62.557-16.197 112.206-64.399 130.542-126.070h-353.681c17.843 59.995 65.287 107.046 125.42 124.493 4.861-30.851 24.838-54.081 48.727-54.081 24.346 0 44.554 23.952 48.993 55.658zM625.553 366.746h219.966v-44.463h-219.966zM230.763 450.397c35.322 0 63.971-28.657 63.971-63.981 0-35.327-28.649-63.981-63.971-63.981s-63.941 28.654-63.941 63.981c0 35.324 28.619 63.981 63.941 63.981zM0 668.824h647.807c-0.82-7.656-1.315-15.411-1.315-23.263 0-4.371 0.394-8.642 0.656-12.947h-612.059v-512.565h843.277v311.284c13.503 1.052 26.612 3.386 39.297 6.836v-356.367h-917.664zM858.262 737.688v-55.265h-102.348v-84.542h102.348v-51.288l110.264 95.613zM855.272 814.147c93.115 0 168.652-75.474 168.652-168.59 0-93.118-75.537-168.689-168.652-168.689-93.148 0-168.652 75.572-168.652 168.689s75.504 168.59 168.652 168.59z" />
-<glyph unicode="" glyph-name="licplus" d="M467.277 235.934h361.519v-43.145h-361.519zM277.027 310.748c60.773-15.757 108.99-62.572 126.785-122.469h-343.53c17.308 58.266 63.434 103.971 121.812 120.968 4.747-30.013 24.109-52.523 47.369-52.523 23.616 0 43.256 23.229 47.563 54.024zM613.774 361.41h213.669v-43.17h-213.669zM230.287 442.688c34.302 0 62.131-27.828 62.131-62.184 0-34.291-27.829-62.089-62.131-62.089-34.289 0-62.117 27.798-62.117 62.089 0 34.356 27.828 62.184 62.117 62.184zM0 654.854h651.548c-0.080-2.413-0.356-4.762-0.356-7.209 0-9.527 0.864-18.825 2.105-27.992h-619.171v-497.843h819.122v317.235c2.3-0.098 4.535-0.358 6.85-0.358 10.668 0 21.061 1.042 31.286 2.608v-356.645h-891.384zM844.025 740.893v-79.599h-79.59v-39.702h79.59v-79.598h39.723v79.598h79.608v39.702h-79.608v79.599zM860.094 811.424c90.49 0 163.831-73.303 163.831-163.765 0-90.494-73.341-163.83-163.831-163.83-90.47 0-163.814 73.336-163.814 163.83 0 90.462 73.344 163.765 163.814 163.765z" />
-<glyph unicode="" glyph-name="licinfo" d="M488.251 233.836h377.743v-45.062h-377.743zM289.445 312.011c63.48-16.443 113.882-65.384 132.481-127.956h-358.94c18.076 60.872 66.258 108.701 127.251 126.42 4.937-31.351 25.205-54.889 49.521-54.889 24.645 0 45.208 24.259 49.686 56.426zM641.337 364.955h223.227v-45.112h-223.227zM240.585 449.883c35.896 0 64.958-29.061 64.958-64.918 0-35.892-29.062-64.921-64.958-64.921-35.827 0-64.856 29.029-64.856 64.921 0 35.857 29.028 64.918 64.856 64.918zM0 671.553h635.675c-0.751-7.387-1.142-14.905-1.142-22.488 0-4.805 0.424-9.512 0.718-14.251h-599.62v-520.176h855.892v319.807c13.792 2.45 27.097 6.243 39.843 11.211v-369.85h-931.366zM821.309 682.089v-133.663h50.115v133.663zM846.514 756.815c-6.801 0-12.683-2.419-17.621-7.159-4.966-4.773-7.419-10.461-7.419-16.933 0-7.029 2.322-12.748 7.029-17.227 4.672-4.445 10.685-6.701 18.010-6.701 7.321 0 13.371 2.256 18.043 6.701 4.707 4.479 7.029 10.199 7.029 17.227 0 6.472-2.483 12.16-7.421 16.933-4.968 4.739-10.853 7.159-17.651 7.159zM852.821 820.295c94.541 0 171.129-76.655 171.129-171.222 0-94.534-76.588-171.124-171.129-171.124-94.536 0-171.192 76.59-171.192 171.124 0 94.567 76.656 171.222 171.192 171.222z" />
-<glyph unicode="" glyph-name="liclock" d="M486.095 194.057h376.065v-44.855h-376.065zM288.158 271.873c63.209-16.36 113.386-65.086 131.889-127.383h-357.365c18.002 60.609 65.971 108.136 126.717 125.795 4.916-31.165 25.080-54.635 49.265-54.635 24.575 0 45.014 24.184 49.494 56.223zM638.485 324.606h222.278v-44.929h-222.278zM239.529 409.154c35.712 0 64.654-28.96 64.654-64.673 0-35.68-28.942-64.605-64.654-64.605-35.681 0-64.574 28.925-64.574 64.605 0 35.712 28.892 64.673 64.574 64.673zM788.959 625.455v-39.868h141.37v39.868zM0 629.887h657.887v-36.59h-622.402v-517.953h852.126v361.212h39.674v-399.876h-927.285zM858.514 815.798c-44.802 0-81.227-37.237-81.227-83.013v-13.667h162.374v13.667c0 45.776-36.41 83.013-81.147 83.013zM858.514 859.271c68.274 0 123.693-56.653 123.693-126.485v-13.667h41.768v-241.672h-326.224v241.672h36.993v13.667c0 69.833 55.401 126.485 123.77 126.485z" />
-<glyph unicode="" glyph-name="licrenew" d="M489.696 237.128h378.821v-45.252h-378.821zM290.292 315.539c63.683-16.53 114.251-65.574 132.889-128.372h-360.036c18.151 61.088 66.474 108.967 127.657 126.761 4.969-31.399 25.269-55.066 49.649-55.066 24.734 0 45.341 24.41 49.842 56.677zM643.222 368.647h223.932v-45.277h-223.932zM241.302 453.799c35.98 0 65.105-29.168 65.105-65.142 0-35.977-29.126-65.113-65.105-65.113-35.95 0-65.075 29.136-65.075 65.113 0 35.975 29.126 65.142 65.075 65.142zM695.928 641.41l24.247-118.977 27.077 23.202c25.588-24.235 60.905-37.947 98.787-33.848 31.979 3.549 59.762 19.003 79.528 41.399l-27.283 10.263c-14.798-13.521-33.771-22.847-55.23-25.172-28.688-3.063-55.582 6.875-75.526 24.783l42.355 36.304zM0 676.145h624.008c-2.451-11.94-3.71-24.298-4.129-36.85h-584.14v-521.783h858.422v302.809c13.925 3.678 27.283 8.679 39.979 14.874v-356.599h-934.14zM834.539 759.811c-5.139 0.085-10.342-0.147-15.587-0.716-32.98-3.582-61.475-19.909-81.333-43.403l27.072-10.262c15.055 14.684 34.737 24.686 57.165 27.14 32.802 3.615 63.551-9.714 83.927-32.785l-39.3-33.689 14.954-5.518h11.536v-4.26l87.432-32.237-24.2 118.976-30.252-25.881c-22.589 25.836-55.442 42.036-91.415 42.634zM838.394 817.502c102.598 0 185.705-83.127 185.705-185.71 0-102.552-83.107-185.676-185.705-185.676-102.566 0-185.705 83.124-185.705 185.676 0 102.582 83.139 185.71 185.705 185.71z" />
-<glyph unicode="" glyph-name="darts2" d="M600.769 94.652h84.617v-139.525h-84.617zM905.431 176.821l109.617-174.194-71.619-45.053-109.615 174.189zM385.355 179.149l71.618-45.056-109.614-174.238-71.62 45.059zM639.64 618.419c-12.729 0-24.891-2.418-36.053-6.821l-0.453-0.191 97.803-56.3-54.932-95.395-104.666 60.26 0.125-4.952c2.632-51.984 45.564-93.307 98.176-93.307 54.369 0 98.364 44.033 98.364 98.37 0 54.311-43.995 98.337-98.364 98.337zM639.641 809.785l-8.162-0.123-2.613-0.099-5.528-0.25-3.018-0.191-5.138-0.387-3.040-0.27-5.251-0.554-2.76-0.316-7.899-1.080-7.814-1.301-2.156-0.413-5.61-1.107-2.802-0.61-4.943-1.129-2.906-0.709-4.89-1.271-2.746-0.743-5.426-1.582-2.071-0.616-7.384-2.392-1.432-0.505-5.875-2.095-2.515-0.956-4.741-1.849-2.712-1.108-3.294-1.397-11.117-5.028-1.401-0.693-10.406-5.331-1.374-0.729-10.515-6.048-2.080-1.262-10.129-6.495-1.512-1.040-9.531-6.779-0.946-0.691-9.556-7.512-1.844-1.515-9.027-7.821-1.501-1.383-8.634-8.234-0.482-0.47-8.458-8.874-1.562-1.706-1.289-1.489 88.699-51.060 0.328 0.304c33.4 29.287 77.16 47.041 125.058 47.041 104.863 0 189.855-84.993 189.855-189.834 0-104.838-84.993-189.865-189.855-189.865-104.803 0-189.795 85.027-189.795 189.865 0 16.381 2.075 32.278 5.976 47.442l0.411 1.446-86.777 49.961-1.366-3.879c-9.764-28.86-15.058-59.779-15.058-91.934 0-2.474 0.031-4.941 0.094-7.4 0.125-4.918 0.373-9.805 0.742-14.658 0.185-2.427 0.399-4.845 0.644-7.254s0.519-4.81 0.823-7.201c0.304-2.391 0.637-4.774 1-7.146s0.754-4.736 1.174-7.089c0.42-2.353 0.869-4.696 1.346-7.029s0.983-4.655 1.516-6.967c0.533-2.312 1.095-4.613 1.684-6.903s1.206-4.569 1.849-6.836c0.644-2.267 1.315-4.523 2.013-6.768s1.422-4.477 2.173-6.697c0.751-2.22 1.529-4.428 2.332-6.624s1.633-4.378 2.489-6.548c0.855-2.17 1.736-4.327 2.643-6.47 1.813-4.287 3.727-8.521 5.739-12.699s4.123-8.299 6.329-12.361c2.206-4.062 4.507-8.065 6.901-12.005s4.879-7.818 7.455-11.631c2.575-3.813 5.24-7.56 7.99-11.239s5.588-7.29 8.508-10.83c2.92-3.54 5.924-7.008 9.008-10.402s6.248-6.714 9.49-9.956c3.242-3.242 6.56-6.407 9.954-9.492s6.861-6.089 10.399-9.010c3.539-2.921 7.149-5.759 10.827-8.51s7.425-5.417 11.237-7.992c3.812-2.576 7.689-5.062 11.629-7.456s7.941-4.696 12.002-6.902c4.061-2.207 8.182-4.318 12.358-6.331s8.41-3.927 12.696-5.741c2.143-0.907 4.3-1.788 6.469-2.644s4.352-1.685 6.547-2.489c2.195-0.804 4.402-1.581 6.622-2.333s4.452-1.476 6.695-2.174c2.244-0.698 4.499-1.369 6.766-2.013s4.545-1.261 6.835-1.85c2.29-0.589 4.59-1.151 6.901-1.684s4.633-1.039 6.966-1.517c2.332-0.477 4.675-0.926 7.028-1.347s4.715-0.812 7.087-1.174c2.372-0.363 4.754-0.696 7.145-1s4.791-0.578 7.2-0.823c2.409-0.245 4.827-0.459 7.253-0.644s4.861-0.339 7.304-0.463c2.443-0.124 4.893-0.217 7.352-0.279s4.925-0.094 7.398-0.094c2.474 0 4.942 0.031 7.401 0.094s4.911 0.156 7.355 0.279c2.444 0.124 4.879 0.278 7.306 0.463s4.846 0.399 7.255 0.644c2.41 0.245 4.811 0.519 7.202 0.823s4.774 0.637 7.147 1c2.373 0.362 4.736 0.754 7.090 1.174s4.697 0.869 7.030 1.347c2.333 0.477 4.656 0.983 6.968 1.517s4.613 1.095 6.903 1.684c2.29 0.589 4.569 1.206 6.837 1.85s4.524 1.315 6.768 2.013c2.244 0.698 4.477 1.423 6.697 2.174s4.428 1.529 6.624 2.333c2.195 0.804 4.378 1.634 6.548 2.489s4.327 1.737 6.471 2.644c4.287 1.813 8.521 3.728 12.699 5.741s8.299 4.124 12.361 6.331c4.062 2.207 8.065 4.508 12.005 6.902s7.818 4.881 11.631 7.456c3.813 2.576 7.56 5.241 11.239 7.992s7.29 5.589 10.829 8.51c3.539 2.921 7.007 5.925 10.401 9.010s6.713 6.25 9.955 9.492c3.242 3.242 6.407 6.562 9.491 9.956s6.088 6.862 9.009 10.402c2.921 3.54 5.758 7.15 8.509 10.83s5.416 7.427 7.991 11.239c2.575 3.813 5.062 7.691 7.455 11.631s4.695 7.943 6.901 12.005c2.206 4.062 4.317 8.183 6.329 12.361s3.927 8.412 5.74 12.699c0.906 2.144 1.788 4.301 2.643 6.47s1.685 4.353 2.489 6.548c0.804 2.195 1.581 4.403 2.332 6.624s1.476 4.453 2.174 6.697c0.698 2.244 1.369 4.5 2.013 6.768s1.26 4.546 1.849 6.836c0.589 2.29 1.15 4.591 1.684 6.903s1.039 4.634 1.516 6.967c0.477 2.333 0.926 4.676 1.346 7.029s0.812 4.716 1.174 7.089c0.362 2.373 0.696 4.755 1 7.146s0.578 4.792 0.823 7.201c0.245 2.409 0.459 4.828 0.644 7.254s0.339 4.862 0.463 7.305c0.248 4.886 0.373 9.805 0.373 14.753 0 9.894-0.501 19.671-1.48 29.306-1.712 16.863-4.886 33.294-9.392 49.165-1.288 4.534-2.684 9.023-4.186 13.463-12.769 37.74-33.182 71.957-59.399 100.806-3.084 3.394-6.249 6.714-9.491 9.956s-6.561 6.408-9.955 9.492c-3.394 3.085-6.862 6.089-10.401 9.011-10.618 8.764-21.878 16.778-33.699 23.961-3.94 2.394-7.943 4.696-12.005 6.903-8.124 4.414-16.485 8.446-25.060 12.073-4.287 1.813-8.628 3.526-13.019 5.133-2.196 0.804-4.404 1.582-6.624 2.333-4.441 1.503-8.93 2.9-13.465 4.188-2.268 0.644-4.547 1.261-6.837 1.85-4.58 1.178-9.205 2.247-13.871 3.201-2.333 0.477-4.676 0.926-7.030 1.347s-4.717 0.812-7.090 1.175c-2.373 0.363-4.755 0.696-7.147 1-4.783 0.608-9.604 1.098-14.458 1.468-2.427 0.185-4.863 0.339-7.306 0.463s-4.895 0.217-7.355 0.279c-2.459 0.062-4.926 0.094-7.401 0.094zM124.301 940.921l115.864-70.145 15.856-84.493 10.777 18.736 72.802-41.909 0.668 0.83 1.429 1.808 0.636 0.757 0.827 1.027c3.915 4.745 7.943 9.393 12.077 13.943l0.897 0.964 0.658 0.737 1.587 1.674 3.14 3.373 1.932 1.979 1.268 1.338 1.308 1.3 1.932 1.979 3.298 3.22 1.635 1.625 0.721 0.675 0.942 0.92c4.449 4.242 8.999 8.377 13.646 12.404l1.006 0.851 0.741 0.654 1.773 1.473 3.523 2.979 2.155 1.736 1.421 1.18 1.454 1.136 2.157 1.737 3.662 2.808 1.821 1.422 0.797 0.585 1.048 0.803c4.931 3.688 9.954 7.261 15.065 10.714l1.103 0.726 0.818 0.563 1.943 1.254 3.867 2.546 2.355 1.471 1.558 1.006 1.585 0.957 2.36 1.474 3.989 2.358 1.988 1.2 0.865 0.487 1.142 0.675c5.364 3.085 10.809 6.043 16.332 8.873l1.19 0.591 0.885 0.463 2.092 1.016 4.175 2.075 2.532 1.183 1.681 0.816 1.701 0.763 2.54 1.186 4.277 1.871 2.137 0.958 0.926 0.382 1.226 0.536c5.746 2.431 11.563 4.726 17.448 6.881l1.265 0.446 0.945 0.356 2.223 0.76 4.444 1.565 2.687 0.873 1.788 0.611 1.802 0.554 2.697 0.876 4.528 1.347 2.266 0.697 0.978 0.268 1.299 0.386c6.078 1.726 12.217 3.307 18.413 4.738l1.331 0.29 0.996 0.24 2.334 0.485 4.677 1.018 2.819 0.54 1.88 0.391 1.888 0.331 2.833 0.543 4.742 0.786 2.376 0.417 1.021 0.146 1.361 0.226 9.576 1.34 9.651 1.104 1.385 0.123 1.039 0.115 2.427 0.192 4.87 0.433 2.929 0.186 1.957 0.155 1.958 0.093 2.945 0.187 4.918 0.187 2.467 0.117 1.057 0.017 1.412 0.054c3.295 0.083 6.601 0.126 9.916 0.126s6.623-0.042 9.919-0.126c3.296-0.084 6.582-0.209 9.857-0.375s6.539-0.373 9.792-0.621c3.253-0.248 6.494-0.536 9.724-0.863s6.447-0.696 9.653-1.103c3.206-0.407 6.399-0.854 9.579-1.34s6.348-1.011 9.502-1.574c3.154-0.563 6.295-1.165 9.422-1.805s6.24-1.318 9.339-2.033c3.099-0.715 6.183-1.468 9.253-2.258s6.125-1.617 9.164-2.48c3.039-0.863 6.064-1.763 9.072-2.699s6.001-1.907 8.977-2.914c2.976-1.007 5.936-2.050 8.879-3.127s5.869-2.19 8.778-3.337c2.909-1.147 5.8-2.328 8.673-3.544s5.729-2.465 8.566-3.747c2.837-1.283 5.656-2.599 8.456-3.948s5.581-2.731 8.343-4.146c2.762-1.415 5.504-2.862 8.227-4.34s5.425-2.99 8.107-4.532c2.682-1.542 5.344-3.116 7.985-4.721s5.261-3.24 7.86-4.906c5.198-3.332 10.31-6.786 15.332-10.357 2.511-1.786 5-3.601 7.466-5.445s4.909-3.717 7.329-5.619c2.42-1.901 4.816-3.831 7.188-5.789s4.721-3.943 7.045-5.957c2.324-2.013 4.624-4.054 6.899-6.121 11.374-10.337 22.126-21.347 32.192-32.967 4.026-4.648 7.943-9.393 11.746-14.232s7.492-9.772 11.064-14.794c1.786-2.511 3.542-5.045 5.269-7.6s3.423-5.133 5.089-7.731c3.332-5.197 6.543-10.48 9.627-15.844 1.542-2.682 3.053-5.385 4.532-8.107s2.926-5.464 4.341-8.226c2.829-5.523 5.529-11.124 8.094-16.798 21.807-48.228 33.947-101.762 33.947-158.128 0-3.316-0.042-6.622-0.126-9.917s-0.209-6.581-0.375-9.855c-0.166-3.274-0.373-6.538-0.62-9.791s-0.536-6.493-0.864-9.723c-0.328-3.229-0.696-6.447-1.103-9.652s-0.854-6.398-1.34-9.578c-0.486-3.18-1.011-6.347-1.574-9.501s-1.165-6.294-1.805-9.421c-0.64-3.127-1.318-6.24-2.033-9.338s-1.468-6.183-2.258-9.252c-0.79-3.069-1.617-6.124-2.48-9.163s-1.763-6.063-2.699-9.071c-0.936-3.008-1.907-6-2.914-8.976s-2.050-5.935-3.127-8.878c-1.077-2.943-2.19-5.868-3.337-8.777s-2.328-5.8-3.544-8.673c-1.215-2.873-2.465-5.729-3.747-8.566s-2.599-5.656-3.948-8.455c-1.349-2.8-2.731-5.581-4.146-8.342s-2.862-5.504-4.341-8.226c-1.479-2.722-2.99-5.425-4.532-8.107s-3.116-5.344-4.721-7.985c-1.605-2.641-3.24-5.261-4.907-7.86s-3.363-5.176-5.089-7.731c-1.726-2.555-3.483-5.089-5.269-7.6s-3.601-5-5.445-7.466c-1.844-2.466-3.717-4.909-5.619-7.328s-3.832-4.816-5.789-7.188c-1.958-2.372-3.944-4.721-5.957-7.045s-4.054-4.624-6.121-6.898c-2.068-2.275-4.162-4.525-6.283-6.749s-4.268-4.423-6.441-6.597c-2.173-2.173-4.372-4.32-6.597-6.441s-4.474-4.215-6.749-6.283c-2.275-2.067-4.575-4.108-6.899-6.121s-4.673-3.999-7.045-5.957c-2.372-1.958-4.769-3.888-7.188-5.789s-4.863-3.775-7.329-5.619c-2.466-1.844-4.955-3.659-7.466-5.445s-5.045-3.542-7.6-5.269c-2.555-1.726-5.133-3.423-7.732-5.089s-5.219-3.302-7.86-4.906c-2.641-1.605-5.303-3.179-7.985-4.721s-5.385-3.053-8.107-4.532c-2.723-1.479-5.465-2.926-8.227-4.341s-5.543-2.797-8.343-4.146c-2.8-1.349-5.619-2.665-8.456-3.948s-5.693-2.532-8.566-3.747c-2.873-1.215-5.765-2.397-8.673-3.544s-5.835-2.259-8.778-3.337c-2.943-1.077-5.903-2.12-8.879-3.127s-5.969-1.979-8.977-2.914c-3.008-0.936-6.032-1.835-9.072-2.699s-6.094-1.69-9.164-2.48c-3.070-0.79-6.154-1.543-9.253-2.258s-6.212-1.393-9.339-2.033c-3.127-0.64-6.268-1.242-9.422-1.805s-6.322-1.088-9.502-1.574c-3.18-0.486-6.373-0.933-9.579-1.34s-6.423-0.775-9.653-1.103c-3.23-0.328-6.471-0.616-9.724-0.863s-6.517-0.455-9.792-0.621c-3.275-0.166-6.561-0.291-9.857-0.375s-6.602-0.126-9.919-0.126c-3.315 0-6.621 0.042-9.916 0.126s-6.58 0.209-9.854 0.375c-3.274 0.166-6.537 0.373-9.789 0.621s-6.493 0.535-9.721 0.863c-3.229 0.328-6.446 0.696-9.651 1.103s-6.397 0.854-9.577 1.34c-3.18 0.486-6.346 1.011-9.5 1.574s-6.294 1.165-9.42 1.805c-3.126 0.64-6.239 1.318-9.337 2.033s-6.182 1.468-9.251 2.258c-3.069 0.79-6.123 1.617-9.162 2.48s-6.062 1.763-9.070 2.699c-3.008 0.936-6 1.907-8.975 2.914s-5.935 2.050-8.877 3.127c-2.942 1.078-5.868 2.19-8.776 3.337s-5.799 2.328-8.672 3.544c-2.873 1.215-5.728 2.465-8.565 3.747s-5.655 2.599-8.455 3.948c-2.8 1.349-5.58 2.731-8.342 4.146s-5.503 2.862-8.225 4.341c-2.722 1.479-5.424 2.99-8.106 4.532s-5.343 3.116-7.984 4.721c-2.641 1.605-5.26 3.24-7.859 4.906s-5.175 3.363-7.731 5.089c-2.555 1.726-5.088 3.483-7.599 5.269s-4.999 3.601-7.465 5.445c-2.466 1.844-4.908 3.717-7.328 5.619s-4.815 3.831-7.188 5.789c-2.372 1.958-4.72 3.944-7.044 5.957-4.648 4.026-9.198 8.162-13.646 12.404-2.224 2.121-4.423 4.268-6.596 6.441s-4.32 4.372-6.441 6.597c-2.121 2.224-4.215 4.474-6.282 6.749s-4.108 4.574-6.121 6.898c-2.013 2.324-3.999 4.672-5.956 7.045s-3.888 4.769-5.789 7.188c-1.901 2.42-3.774 4.863-5.618 7.328s-3.659 4.955-5.445 7.466c-1.786 2.511-3.542 5.045-5.268 7.6s-3.423 5.133-5.089 7.731c-1.666 2.599-3.302 5.219-4.906 7.86s-3.178 5.303-4.721 7.985c-1.542 2.682-3.053 5.385-4.532 8.107s-2.926 5.465-4.34 8.226c-1.415 2.762-2.797 5.543-4.146 8.342s-2.665 5.618-3.948 8.455c-1.283 2.837-2.532 5.692-3.747 8.566s-2.397 5.764-3.544 8.673c-1.147 2.908-2.259 5.834-3.337 8.777s-2.12 5.902-3.127 8.878c-1.007 2.976-1.979 5.968-2.914 8.976s-1.835 6.032-2.699 9.071c-0.863 3.039-1.69 6.094-2.48 9.163s-1.543 6.154-2.258 9.252c-0.715 3.099-1.393 6.211-2.033 9.338s-1.242 6.267-1.805 9.421c-0.563 3.154-1.088 6.321-1.574 9.501s-0.933 6.373-1.34 9.578c-0.407 3.205-0.775 6.423-1.103 9.652s-0.616 6.47-0.863 9.723c-0.248 3.252-0.455 6.516-0.621 9.791s-0.291 6.56-0.375 9.855c-0.084 3.296-0.126 6.602-0.126 9.917s0.042 6.622 0.126 9.917l0.025 0.66 0.008 0.576 0.123 2.881 0.218 5.739 0.084 1.322 0.048 1.132 0.21 2.941 0.279 4.396 0.177 1.995 0.118 1.659 0.26 2.604 0.308 3.464 0.307 2.688 0.215 2.146 0.276 2.142 0.306 2.674 0.48 3.428 0.33 2.567 0.257 1.63 0.273 1.953 0.71 4.283 0.449 2.85 0.204 1.092 0.211 1.275 1.054 5.503 0.513 2.745 0.118 0.547 0.12 0.626c1.28 6.253 2.711 12.451 4.291 18.59l0.166 0.612 0.132 0.538 0.737 2.675 1.445 5.338 0.364 1.224 0.29 1.052 0.832 2.718 1.213 4.076 0.598 1.84 0.47 1.537 0.808 2.399 1.039 3.2 0.87 2.471 0.667 1.981 0.723 1.965 0.867 2.462 1.194 3.14 0.867 2.358 0.595 1.488 0.681 1.791 1.596 3.907 0.133 0.332-71.869 41.377 10.876 18.909-77.191-34.614-128.051 67.086 62.868 51.839-80.43 71.305 21.373 21.309 83.055-46.868z" />
-<glyph unicode="" glyph-name="calweek" d="M528.871 122.241c-5.104 0-9.357-4.98-9.357-11.12v-101.089c0-6.14 4.253-11.12 9.357-11.12h95.404c5.245 0 9.497 4.98 9.497 11.12v101.089c0 6.14-4.252 11.12-9.497 11.12zM404.547 122.241c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.12 9.499-11.12h95.404c5.103 0 9.357 4.98 9.357 11.12v101.089c0 6.14-4.255 11.12-9.357 11.12zM280.080 122.241c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.12 9.499-11.12h95.404c5.245 0 9.499 4.98 9.499 11.12v101.089c0 6.14-4.253 11.12-9.499 11.12zM155.614 122.241c-5.103 0-9.355-4.98-9.355-11.12v-101.089c0-6.14 4.252-11.12 9.355-11.12h95.405c5.247 0 9.499 4.98 9.499 11.12v101.089c0 6.14-4.252 11.12-9.499 11.12zM777.801 258.021c-5.245 0-9.497-4.98-9.497-11.12v-101.089c0-6.14 4.252-11.121 9.497-11.121h95.404c5.245 0 9.499 4.981 9.499 11.121v101.089c0 6.14-4.253 11.12-9.499 11.12zM653.335 258.021c-5.245 0-9.497-4.98-9.497-11.12v-101.089c0-6.14 4.252-11.121 9.497-11.121h95.407c5.245 0 9.496 4.981 9.496 11.121v101.089c0 6.14-4.251 11.12-9.496 11.12zM528.871 258.021c-5.104 0-9.357-4.98-9.357-11.12v-101.089c0-6.14 4.253-11.121 9.357-11.121h95.404c5.245 0 9.497 4.981 9.497 11.121v101.089c0 6.14-4.252 11.12-9.497 11.12zM404.547 258.021c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.121 9.499-11.121h95.404c5.103 0 9.357 4.981 9.357 11.121v101.089c0 6.14-4.255 11.12-9.357 11.12zM280.080 258.021c-5.245 0-9.499-4.98-9.499-11.12v-101.089c0-6.14 4.253-11.121 9.499-11.121h95.404c5.245 0 9.499 4.981 9.499 11.121v101.089c0 6.14-4.253 11.12-9.499 11.12zM155.614 258.021c-5.103 0-9.355-4.98-9.355-11.12v-101.089c0-6.14 4.252-11.121 9.355-11.121h95.405c5.247 0 9.499 4.981 9.499 11.121v101.089c0 6.14-4.252 11.12-9.499 11.12zM777.801 393.972c-5.245 0-9.497-4.981-9.497-10.959v-101.252c0-6.144 4.252-11.124 9.497-11.124h95.404c5.245 0 9.499 4.98 9.499 11.124v101.252c0 5.977-4.253 10.959-9.499 10.959zM653.335 393.972c-5.245 0-9.497-4.981-9.497-10.959v-101.252c0-6.144 4.252-11.124 9.497-11.124h95.407c5.245 0 9.496 4.98 9.496 11.124v101.252c0 5.977-4.251 10.959-9.496 10.959zM528.871 393.972c-5.104 0-9.357-4.981-9.357-10.959v-101.252c0-6.144 4.253-11.124 9.357-11.124h95.404c5.245 0 9.497 4.98 9.497 11.124v101.252c0 5.977-4.252 10.959-9.497 10.959zM404.547 393.972c-5.245 0-9.499-4.981-9.499-10.959v-101.252c0-6.144 4.253-11.124 9.499-11.124h95.404c5.103 0 9.357 4.98 9.357 11.124v101.252c0 5.977-4.255 10.959-9.357 10.959zM280.080 393.972c-5.245 0-9.499-4.981-9.499-10.959v-101.252c0-6.144 4.253-11.124 9.499-11.124h95.404c5.245 0 9.499 4.98 9.499 11.124v101.252c0 5.977-4.253 10.959-9.499 10.959zM155.614 393.972c-5.103 0-9.355-4.981-9.355-10.959v-101.252c0-6.144 4.252-11.124 9.355-11.124h95.405c5.247 0 9.499 4.98 9.499 11.124v101.252c0 5.977-4.252 10.959-9.499 10.959zM777.801 527.093c-5.245 0-9.497-4.977-9.497-11.12v-101.252c0-5.979 4.252-10.959 9.497-10.959h95.404c5.245 0 9.499 4.98 9.499 10.959v101.252c0 6.143-4.253 11.12-9.499 11.12zM653.335 527.093c-5.245 0-9.497-4.977-9.497-11.12v-101.252c0-5.979 4.252-10.959 9.497-10.959h95.407c5.245 0 9.496 4.98 9.496 10.959v101.252c0 6.143-4.251 11.12-9.496 11.12zM528.871 527.093c-5.104 0-9.357-4.977-9.357-11.12v-101.252c0-5.979 4.253-10.959 9.357-10.959h95.404c5.245 0 9.497 4.98 9.497 10.959v101.252c0 6.143-4.252 11.12-9.497 11.12zM404.547 527.093c-5.245 0-9.499-4.977-9.499-11.12v-101.252c0-5.979 4.253-10.959 9.499-10.959h95.404c5.103 0 9.357 4.98 9.357 10.959v101.252c0 6.143-4.255 11.12-9.357 11.12zM103.731 908.379v-308.082h804.773v308.082zM67.865 960h888.271c5.245 0 9.497-4.981 9.497-11.12v-975.365c0-6.144-1.701-15.603-3.828-21.248l-9.496-11.619c-4.68-2.492-12.76-4.648-18.004-4.648h-844.608c-5.247 0-13.326 2.156-18.004 4.648l-9.64 11.619c-1.985 5.645-3.686 15.104-3.686 21.248v975.365c0 6.14 4.254 11.12 9.499 11.12z" />
-<glyph unicode="" glyph-name="addcard" d="M173.826 361.613c-16.769 0-30.421-13.702-30.421-30.622v-61.395h-61.948c-17.397 0-31.552-14.28-31.552-31.853 0-17.624 14.155-31.904 31.552-31.904h61.948v-68.435c0-16.919 13.652-30.596 30.421-30.596s30.371 13.677 30.371 30.596v68.435h64.311c17.448 0 31.602 14.28 31.602 31.904 0 17.573-14.154 31.853-31.602 31.853h-64.311v61.395c0 16.921-13.602 30.622-30.371 30.622zM178.703 421.072c98.653 0 178.729-80.779 178.729-180.337 0-99.71-80.075-180.414-178.729-180.414s-178.703 80.704-178.703 180.414c0 99.558 80.049 180.337 178.703 180.337zM768.993 561.587c-12.395 0-31.904-4.123-43.268-9.277 0 0-54.833-24.764-54.833-66.574 0-42.112 54.833-66.8 54.833-66.8 11.364-5.129 30.873-9.327 43.268-9.327h50.006c12.42 0 31.929 4.199 43.268 9.327 0 0 54.632 24.689 54.632 66.8 0 41.81-54.632 66.549-54.632 66.549-11.339 5.179-30.848 9.302-43.268 9.302zM273.083 613.303c-12.47 0-22.602-9.529-22.602-21.194s10.132-21.244 22.602-21.244h243.367c12.47 0 22.652 9.579 22.652 21.244s-10.182 21.194-22.652 21.194zM793.933 729.179c-37.511 0-67.982-30.723-67.982-68.46 0-37.888 30.471-68.636 67.982-68.636 37.435 0 67.806 30.748 67.806 68.636 0 37.737-30.371 68.46-67.806 68.46zM166.082 835.677h835.291c12.395 0 22.627-10.258 22.627-22.828v-511.146c0-12.545-10.232-22.828-22.627-22.828h-597.179c-9.604 62.501-44.073 116.504-93.098 151.476h205.353c12.47 0 22.652 9.554 22.652 21.194 0 11.666-10.182 21.194-22.652 21.194h-243.316c-9.151 0-16.719-5.255-20.188-12.571-22.728 7.693-46.989 12.068-72.256 12.068-12.747 0-25.116-1.282-37.234-3.344v343.957c0 12.571 10.157 22.828 22.627 22.828z" />
-<glyph unicode="" glyph-name="info1" d="M558.501 585.573l8.812-5.999c-3.401-40.465-5.090-91.863-5.090-154.179v-104.64c0-6.812 0.622-28.661 1.84-65.527 1.25-36.877 2.559-58.407 3.94-64.593 1.412-6.151 3.47-10.653 6.25-13.399 2.78-2.781 6.19-4.572 10.189-5.353 4.030-0.78 20.68-2.089 49.999-3.93l4.181-3.686v-43.189l-3.712-4.159c-38.598 2.468-75.786 3.689-111.566 3.689-35.528 0-72.556-1.221-111.145-3.689l-4.159 4.159v43.189l4.159 3.686c29.929 1.842 46.838 3.241 50.72 4.181 3.84 0.911 7.25 2.849 10.179 5.781 2.909 2.938 4.938 7.409 5.999 13.407 1.1 6.031 2.352 25.94 3.719 59.746 1.412 33.779 2.061 59.338 2.061 76.615v91.214c0 12.352-0.59 29.188-1.84 50.466-1.22 21.309-2.219 34.41-3 39.348-0.78 4.929-3.192 8.589-7.19 10.869-4 2.348-12.029 3.499-24.059 3.499l-38.908 0.439-4.15 3.723v19.896l3.691 3.72c58.957 7.102 108.644 18.658 149.081 34.717zM519.161 792.538c14.501 0 26.84-5.093 37.031-15.278 10.179-10.192 15.278-22.528 15.278-37.026 0-14.222-5.099-26.41-15.278-36.599-10.191-10.178-22.53-15.248-37.031-15.248-14.189 0-26.468 5.002-36.819 15.037-10.34 10.029-15.498 22.279-15.498 36.809 0 14.498 5.158 26.834 15.498 37.026 10.351 10.186 22.63 15.278 36.819 15.278zM109.277 878.064v-860.113h805.493v860.113zM109.277 960h805.493c45.249 0 81.937-36.688 81.937-81.936v-860.113c0-45.218-36.689-81.905-81.937-81.905h-805.493c-45.249 0-81.937 36.687-81.937 81.905v860.113c0 45.247 36.688 81.936 81.937 81.936z" />
-<glyph unicode="" glyph-name="print1" d="M320.045 384.063v-320.054h384.053v320.054zM882.808 628.478c-25.626 0-46.379-20.752-46.379-46.381 0-25.632 20.753-46.448 46.379-46.448 25.631 0 46.384 20.817 46.384 46.448 0 25.629-20.753 46.381-46.384 46.381zM64.011 704.12h896.121c35.194 0 64.012-28.817 64.012-64.010v-320.057c0-35.195-28.818-64.010-64.012-64.010h-192.026v-256.049h-512.069v256.049h-192.026c-35.193 0-64.011 28.815-64.011 64.010v320.057c0 35.193 28.817 64.010 64.011 64.010zM256.024 896.15h512.096v-128.036h-512.096z" />
-<glyph unicode="" glyph-name="phone1" d="M842.968 344.466c17.615-0.177 35.144-6.966 48.614-20.455l79.159-79.098c26.946-26.978 27.090-70.151 1.239-97.835l0.29-0.235-1.529-1.597-73.735-73.738-178.759 178.819 75.246 75.217 0.348-0.294c13.812 12.958 31.512 19.392 49.127 19.215zM63.493 823.813l182.336-182.329c-42.288-115.25 21.234-214.66 116.701-310.124 95.435-95.406 194.821-158.948 310.133-116.663l182.25-182.39c-176.795-96.224-400.833 2.768-594.804 196.7-193.878 193.873-292.879 417.954-196.616 594.806zM227.396 959.996c17.622-0.177 35.151-6.965 48.625-20.453l79.128-79.085c26.946-26.972 27.121-70.199 1.267-97.76l0.294-0.353-1.561-1.529-73.712-73.732-178.812 178.733 75.299 75.32 0.294-0.353c13.842 12.956 31.556 19.39 49.177 19.213z" />
-<glyph unicode="" glyph-name="register" d="M802.46 267.43l5.191-31.762-503.962-82.106-5.168 31.762zM437.953 297.697c10.746-34.323 57.986-51.517 57.986-51.517l-70.87-23.601zM440.948 407.369l1.941-32.17-193.22-20.477-3.397 31.997zM567.013 590.239l-27.902-33.897-338.508-19.788-1.857 32.175zM602.823 741.026l0.897-32.185-450.842-12.879-0.919 32.185zM797.489 809.419l0.535-1.452c16.107-41.754 54.321-95.318 123.701-106.706l3.484-0.522-317.675-390.148-72.965-6.429-51.527 47.249-4.311 70.831zM648.364 834.42l42.867-91.942-30.041-37.827-38.608 84.699-556.020-2.157 176.055-725.622 656.911 120.217-122.009 267.663 33.664 35.758 163.488-350.649-790.028-158.859-184.642 856.584zM888.792 920.3c135.233-10.745 128.828-111.653 128.828-111.653l-62.291-77.26c-109.492-4.316-133.077 107.336-133.077 107.336z" />
-<glyph unicode="" glyph-name="sportresult" d="M406.062 750.981q0-46.237-17.828-89.832-17.828-42.274-48.832-88.511l-22.478-34.348q-3.1-5.284-24.029-35.669-20.153-30.384-32.555-60.769-13.177-30.384-13.177-66.053 0-30.384 8.526-68.695 1.55-5.284 3.876-15.853 3.1-10.568 3.1-17.174 0-15.853-6.201-25.1t-13.952-9.247q-13.952 0-22.478 34.347-15.502 64.732-15.502 101.721 0 34.347 12.402 71.337 9.301 27.742 25.579 54.163t41.081 62.090l27.904 40.953q22.478 36.99 34.88 67.374 12.402 31.705 12.402 66.053 0 62.090-44.957 62.090-29.454 0-69.76-23.779-39.531-22.458-75.186-56.805-34.88-34.347-50.382-62.090-7.751-11.89-15.502-21.137-6.976-9.247-11.627-9.247-9.301 0-20.153 13.211-10.076 13.211-10.076 31.705 0 6.605 4.651 13.211t10.076 11.89q6.201 6.605 11.627 13.211 51.157 58.127 114.717 108.327t117.042 50.2q39.531 0 62.784-31.705 24.029-30.384 24.029-85.869zM304.522 123.479q0-14.532-7.751-38.311-7.751-22.458-19.378-39.632-11.627-15.853-22.478-15.853-31.005 0-31.005 51.521 0 25.1 16.277 51.521 17.052 27.742 34.105 27.742 30.229 0 30.229-36.99zM557.245 496.017q0-19.816-25.579-19.816-17.052 0-27.129 42.274-10.076 43.595-10.076 80.584 0 14.532 7.751 27.742 8.526 13.211 17.052 13.211 15.502 0 26.354-50.2 11.627-50.2 11.627-93.795zM562.671 29.683q0-19.816-25.579-19.816-14.727 0-27.129 29.063-11.627 27.742-19.378 62.090-6.976 35.669-6.976 46.237 0 14.532 7.751 27.742 8.526 13.211 17.052 13.211 6.976 0 19.378-31.705 13.177-31.705 24.029-71.337 10.852-38.311 10.852-55.484zM957.119 750.981q0-46.237-17.828-89.832-17.828-42.274-48.832-88.511l-22.478-34.348q-3.1-5.284-24.029-35.669-20.153-30.384-32.555-60.769-13.177-30.384-13.177-66.053 0-30.384 8.526-68.695 1.55-5.284 3.876-15.853 3.1-10.568 3.1-17.174 0-15.853-6.201-25.1t-13.952-9.247q-13.952 0-22.478 34.347-15.502 64.732-15.502 101.721 0 34.347 12.402 71.337 9.301 27.742 25.579 54.163t41.081 62.090l27.904 40.953q22.478 36.99 34.88 67.374 12.402 31.705 12.402 66.053 0 62.090-44.957 62.090-29.454 0-69.76-23.779-39.531-22.458-75.186-56.805-34.88-34.347-50.382-62.090-7.751-11.89-15.502-21.137-6.976-9.247-11.627-9.247-9.301 0-20.153 13.211-10.076 13.211-10.076 31.705 0 6.605 4.651 13.211t10.076 11.89q6.201 6.605 11.627 13.211 51.157 58.127 114.717 108.327t117.042 50.2q39.531 0 62.784-31.705 24.029-30.384 24.029-85.869zM855.579 123.479q0-14.532-7.751-38.311-7.751-22.458-19.378-39.632-11.627-15.853-22.478-15.853-31.005 0-31.005 51.521 0 25.1 16.277 51.521 17.052 27.742 34.105 27.742 30.229 0 30.229-36.99z" />
-<glyph unicode="" glyph-name="send" d="M789.725 527.903l234.302-205.289-234.302-205.288v129.787h-259.507v149.336h259.507zM0 722.466h0.466l365.883-358.74 365.921 358.74h1.578v-289.326h-240.328v-192.265h-493.521zM43.605 778.647h646.598l-323.28-324.358-161.604 162.196z" />
-<glyph unicode="" glyph-name="user" d="M576 253.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388z" />
-<glyph unicode="" glyph-name="download" d="M736 512l-256-256-256 256h160v384h192v-384zM480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64z" />
-<glyph unicode="" glyph-name="upload" d="M480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64zM224 640l256 256 256-256h-160v-320h-192v320z" />
-<glyph unicode="" glyph-name="upload" d="M480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64zM224 640l256 256 256-256h-160v-320h-192v320z" />
-<glyph unicode="user" glyph-name="user" d="M576 253.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388z" />
-<glyph unicode="upload3" glyph-name="upload" d="M480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64zM224 640l256 256 256-256h-160v-320h-192v320z" />
-<glyph unicode="save5" glyph-name="download" d="M736 512l-256-256-256 256h160v384h192v-384zM480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64z" />
-<glyph unicode="profile2" glyph-name="user" d="M576 253.388v52.78c70.498 39.728 128 138.772 128 237.832 0 159.058 0 288-192 288s-192-128.942-192-288c0-99.060 57.502-198.104 128-237.832v-52.78c-217.102-17.748-384-124.42-384-253.388h896c0 128.968-166.898 235.64-384 253.388z" />
-<glyph unicode="profile" glyph-name="profile" d="M864 960h-768c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h768c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM832 64h-704v768h704v-768zM256 384h448v-64h-448zM256 256h448v-64h-448zM320 672c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM480 576h-128c-52.8 0-96-28.8-96-64v-64h320v64c0 35.2-43.2 64-96 64z" />
-<glyph unicode="map2" glyph-name="map" d="M672 768l-320 128-352-128v-768l352 128 320-128 352 128v768l-352-128zM384 814.27l256-102.4v-630.138l-256 102.398v630.14zM64 723.172l256 93.090v-631.8l-256-93.088v631.798zM960 172.828l-256-93.092v631.8l256 93.090v-631.798z" />
-<glyph unicode="load3" glyph-name="upload" d="M480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64zM224 640l256 256 256-256h-160v-320h-192v320z" />
-<glyph unicode="guide2" glyph-name="map" d="M672 768l-320 128-352-128v-768l352 128 320-128 352 128v768l-352-128zM384 814.27l256-102.4v-630.138l-256 102.398v630.14zM64 723.172l256 93.090v-631.8l-256-93.088v631.798zM960 172.828l-256-93.092v631.8l256 93.090v-631.798z" />
-<glyph unicode="file2" glyph-name="profile" d="M864 960h-768c-52.8 0-96-43.2-96-96v-832c0-52.8 43.2-96 96-96h768c52.8 0 96 43.2 96 96v832c0 52.8-43.2 96-96 96zM832 64h-704v768h704v-768zM256 384h448v-64h-448zM256 256h448v-64h-448zM320 672c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM480 576h-128c-52.8 0-96-28.8-96-64v-64h320v64c0 35.2-43.2 64-96 64z" />
-<glyph unicode="drawer" glyph-name="drawer" d="M1016.988 307.99l-256 320c-6.074 7.592-15.266 12.010-24.988 12.010h-448c-9.72 0-18.916-4.418-24.988-12.010l-256-320c-4.538-5.674-7.012-12.724-7.012-19.99v-288c0-35.346 28.654-64 64-64h896c35.348 0 64 28.654 64 64v288c0 7.266-2.472 14.316-7.012 19.99zM960 256h-224l-128-128h-192l-128 128h-224v20.776l239.38 299.224h417.24l239.38-299.224v-20.776zM736 448h-448c-17.672 0-32 14.328-32 32s14.328 32 32 32h448c17.674 0 32-14.328 32-32s-14.326-32-32-32zM800 320h-576c-17.672 0-32 14.326-32 32s14.328 32 32 32h576c17.674 0 32-14.326 32-32s-14.326-32-32-32z" />
-<glyph unicode="download3" glyph-name="download" d="M736 512l-256-256-256 256h160v384h192v-384zM480 256h-480v-256h960v256h-480zM896 128h-128v64h128v-64z" />
-<glyph unicode="box" glyph-name="drawer" d="M1016.988 307.99l-256 320c-6.074 7.592-15.266 12.010-24.988 12.010h-448c-9.72 0-18.916-4.418-24.988-12.010l-256-320c-4.538-5.674-7.012-12.724-7.012-19.99v-288c0-35.346 28.654-64 64-64h896c35.348 0 64 28.654 64 64v288c0 7.266-2.472 14.316-7.012 19.99zM960 256h-224l-128-128h-192l-128 128h-224v20.776l239.38 299.224h417.24l239.38-299.224v-20.776zM736 448h-448c-17.672 0-32 14.328-32 32s14.328 32 32 32h448c17.674 0 32-14.328 32-32s-14.326-32-32-32zM800 320h-576c-17.672 0-32 14.326-32 32s14.328 32 32 32h576c17.674 0 32-14.326 32-32s-14.326-32-32-32z" />
-</font></defs></svg>
\ No newline at end of file
+++ /dev/null
-@font-face {
- font-family: 'fld';
- src:
- url('fonts/fld.ttf?lwva39') format('truetype'),
- url('fonts/fld.woff?lwva39') format('woff'),
- url('fonts/fld.svg?lwva39#fld') format('svg');
- font-weight: normal;
- font-style: normal;
- font-display: block;
-}
-
-[class^="icon-"], [class*=" icon-"] {
- /* use !important to prevent issues with browser extensions that change fonts */
- font-family: 'fld' !important;
- speak: never;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
-
- /* Enable Ligatures ================ */
- letter-spacing: 0;
- -webkit-font-feature-settings: "liga";
- -moz-font-feature-settings: "liga=1";
- -moz-font-feature-settings: "liga";
- -ms-font-feature-settings: "liga" 1;
- font-feature-settings: "liga";
- -webkit-font-variant-ligatures: discretionary-ligatures;
- font-variant-ligatures: discretionary-ligatures;
-
- /* Better Font Rendering =========== */
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-<<<<<<< HEAD
-.icon-send:before {
- content: "\e96b";
-}
-.icon-sportresult:before {
- content: "\e96a";
-}
-.icon-lictransfer:before {
- content: "\e95e";
-}
-.icon-licplus:before {
- content: "\e95f";
-}
-.icon-licinfo:before {
- content: "\e960";
-}
-.icon-liclock:before {
- content: "\e961";
-}
-.icon-licrenew:before {
- content: "\e962";
-}
-.icon-darts2:before {
- content: "\e963";
-}
-.icon-calweek:before {
- content: "\e964";
-}
-.icon-addcard:before {
- content: "\e965";
-}
-.icon-info1:before {
- content: "\e966";
-}
-.icon-print1:before {
- content: "\e967";
-}
-.icon-phone1:before {
- content: "\e968";
-}
-.icon-register:before {
- content: "\e969";
-}
-.icon-licenses:before {
- content: "\e95d";
-}
-.icon-folderfind:before {
- content: "\e930";
-}
-=======
-.icon-folderfind:before {
- content: "\e930";
-}
->>>>>>> 509afc930052596f387a5621613c8257684e5df4
-.icon-access:before {
- content: "\e931";
-}
-.icon-add:before {
- content: "\e910";
-}
-.icon-address:before {
- content: "\e901";
-}
-.icon-adobepdf:before {
- content: "\e933";
-}
-.icon-agreement:before {
- content: "\e91b";
-}
-.icon-apps:before {
- content: "\e917";
-}
-.icon-apps1:before {
- content: "\e91c";
-}
-.icon-archive:before {
- content: "\e91d";
-}
-.icon-back:before {
- content: "\e918";
-}
-.icon-backup:before {
- content: "\e919";
-}
-.icon-bill:before {
- content: "\e91e";
-}
-.icon-calendar:before {
- content: "\e91f";
-}
-.icon-close:before {
- content: "\e91a";
-}
-.icon-club:before {
- content: "\e937";
-}
-.icon-clubs:before {
- content: "\e938";
-}
-.icon-code:before {
- content: "\e902";
-}
-.icon-contract:before {
- content: "\e934";
-}
-.icon-copy:before {
- content: "\e920";
-}
-.icon-cube:before {
- content: "\e923";
-}
-.icon-cubelight:before {
- content: "\e924";
-}
-.icon-dashboard1:before {
- content: "\e925";
-}
-.icon-date:before {
- content: "\e90b";
-}
-.icon-documents:before {
- content: "\e903";
-}
-.icon-documentsave:before {
- content: "\e926";
-}
-.icon-download4:before {
- content: "\e921";
-<<<<<<< HEAD
-}
-.icon-download:before {
- content: "\e9c7";
-}
-.icon-drawer:before {
- content: "\e95c";
-=======
->>>>>>> 509afc930052596f387a5621613c8257684e5df4
-}
-.icon-duplicate:before {
- content: "\e922";
-}
-.icon-edit:before {
- content: "\e927";
-}
-.icon-email:before {
- content: "\e928";
-}
-.icon-excel:before {
- content: "\e905";
-}
-.icon-exit:before {
- content: "\e929";
-}
-.icon-file:before {
- content: "\e92a";
-}
-.icon-filter:before {
- content: "\e939";
-}
-.icon-find:before {
- content: "\e904";
-}
-.icon-folder:before {
- content: "\e92c";
-}
-.icon-folderadd:before {
- content: "\e92d";
-}
-.icon-foldercube:before {
- content: "\e92e";
-}
-.icon-folderdelete:before {
- content: "\e92f";
-}
-.icon-globe:before {
- content: "\e93d";
-}
-.icon-group:before {
- content: "\e932";
-}
-.icon-help:before {
- content: "\e93a";
-}
-.icon-history:before {
- content: "\e93b";
-}
-.icon-home:before {
- content: "\e93c";
-}
-.icon-image:before {
- content: "\e906";
-}
-.icon-inbox:before {
- content: "\e93f";
-}
-.icon-info:before {
- content: "\e93e";
-}
-.icon-library:before {
- content: "\e907";
-}
-.icon-star2:before {
- content: "\e935";
-}
-.icon-list:before {
- content: "\e936";
-}
-.icon-location:before {
- content: "\e941";
-}
-.icon-log:before {
- content: "\e909";
-}
-.icon-logout:before {
- content: "\e90a";
-<<<<<<< HEAD
-}
-.icon-map:before {
- content: "\e95a";
-=======
->>>>>>> 509afc930052596f387a5621613c8257684e5df4
-}
-.icon-menu:before {
- content: "\e942";
-}
-.icon-newspaper:before {
- content: "\e943";
-}
-.icon-next:before {
- content: "\e944";
-}
-.icon-numberlist:before {
- content: "\e90c";
-}
-.icon-package:before {
- content: "\e90d";
-}
-.icon-pdf:before {
- content: "\e945";
-}
-.icon-pdf1:before {
- content: "\e90e";
-}
-.icon-pdfexport:before {
- content: "\e90f";
-}
-.icon-phone:before {
- content: "\e946";
-}
-.icon-pictures:before {
- content: "\e947";
-}
-.icon-plus:before {
- content: "\e911";
-}
-.icon-preview:before {
- content: "\e948";
-}
-.icon-print:before {
- content: "\e949";
-}
-<<<<<<< HEAD
-.icon-profile:before {
- content: "\e95b";
-}
-=======
->>>>>>> 509afc930052596f387a5621613c8257684e5df4
-.icon-projects:before {
- content: "\e912";
-}
-.icon-refresh:before {
- content: "\e94a";
-}
-.icon-refresh1:before {
- content: "\e94b";
-}
-.icon-remove:before {
- content: "\e913";
-}
-.icon-rename:before {
- content: "\e914";
-}
-.icon-save:before {
- content: "\e92b";
-}
-.icon-save2:before {
- content: "\e940";
-}
-.icon-season:before {
- content: "\e900";
-}
-.icon-settings:before {
- content: "\e94c";
-}
-.icon-sort:before {
- content: "\e94d";
-}
-.icon-squares:before {
- content: "\e94e";
-}
-.icon-star:before {
- content: "\e908";
-}
-.icon-sync:before {
- content: "\e94f";
-}
-.icon-table:before {
- content: "\e915";
-}
-.icon-target:before {
- content: "\e950";
-<<<<<<< HEAD
-}
-.icon-time:before {
- content: "\e951";
-}
-.icon-transfer:before {
- content: "\e952";
-}
-.icon-trash:before {
- content: "\e953";
-}
-.icon-upload5:before {
- content: "\e954";
-}
-.icon-uploadfile:before {
- content: "\e916";
-}
-.icon-upload:before {
- content: "\e9c8";
-}
-.icon-user:before {
- content: "\e971";
-=======
-}
-.icon-time:before {
- content: "\e951";
-}
-.icon-transfer:before {
- content: "\e952";
-}
-.icon-trash:before {
- content: "\e953";
-}
-.icon-upload5:before {
- content: "\e954";
-}
-.icon-uploadfile:before {
- content: "\e916";
->>>>>>> 509afc930052596f387a5621613c8257684e5df4
-}
-.icon-user2:before {
- content: "\e955";
-}
-.icon-usergroup:before {
- content: "\e956";
-}
-.icon-viewpdf:before {
- content: "\e957";
-}
-.icon-warning:before {
- content: "\e958";
-}
-.icon-website:before {
- content: "\e959";
-<<<<<<< HEAD
-=======
-}
-.icon-download:before {
- content: "\e9c7";
-}
-.icon-drawer:before {
- content: "\e95c";
-}
-.icon-map:before {
- content: "\e95a";
-}
-.icon-profile:before {
- content: "\e95b";
-}
-.icon-upload:before {
- content: "\e9c8";
-}
-.icon-user:before {
- content: "\e971";
->>>>>>> 509afc930052596f387a5621613c8257684e5df4
-}
+++ /dev/null
-/* W3PRO.CSS 4.13 June 2019 by Jan Egil and Borge Refsnes */
-html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
-/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
-html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
-html,body {-webkit-user-select: none;-ms-user-select: none;user-select: none;-moz-user-select:none;}
-article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
-audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
-audio:not([controls]){display:none;height:0}[hidden],template{display:none}
-a{background-color:transparent}a:active,a:hover{outline-width:0}
-abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
-b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
-small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
-sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
-code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
-button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
-button,input{overflow:visible}button,select{text-transform:none}
-button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
-button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
-button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
-fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
-legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
-[type=checkbox],[type=radio]{padding:0}
-[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
-[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
-[type=search]::-webkit-search-decoration{-webkit-appearance:none}
-::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
-/* End extract */
-/* html,body {
- background-color: #52638e;
-} */
-html,body{font-family:Verdana,sans-serif;font-size:10pt;line-height:1.5}html{overflow-x:hidden}
-h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.serif{font-family:serif}
-h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin: 0}.wide{letter-spacing:4px}
-hr{border:0;border-top:1px solid #eee;margin:20px 0}
-.img{max-width:100%;height:auto; vertical-align:middle}a{color:inherit}
-.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
-.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
-.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
-.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
-.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
-.table th:first-child,.table td:first-child,.table-all th:first-child,.table-all td:first-child{padding-left:16px}
-.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
-.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
-.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
-.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;background-color: #e6e6e6}.disabled *,:disabled *{pointer-events:none}
-.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
-.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
-.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
-.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
-.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
-.input{padding:6px;display:block;border: 1px solid #ccc;width:100%;background-color: #fff; }/*#e8f0fe*/
-.select{padding:2px 0; display:block;width:100%;border:1px solid #ccc;background-color: #fff;}
-.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
-.dropdown-hover:hover .dropdown-content{display:block; }
-.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
-.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
-.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
-.check,.radio{width:24px;height:24px;position:relative;top:6px}
-.sidebar{height:100%;width:160px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
-.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
-.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
-.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
-.main,#main{transition:margin-left .4s}
-.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
-.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
-.bar{width:100%}.center .bar{display:inline-block;width:auto}
-.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
-.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
-.bar .button{white-space:normal}
-.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
-.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
-.responsive{display:block;overflow-x:auto}
-.container:after,.container:before,.datapanel:after,.datapanel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
-.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
-.col,.half,.third,.twothird,.threequarter,.quarter,.fifth,.twofifth,.threefifth,.fourfifth{float:left;width:100%}
-.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}
-.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}
-.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}
-@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}.fifth{width:20%;min-width:100px}
-.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}
-.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}.twofifth{width:40%}.threefifth{width:60%}.fourfifth{width:80%}}
-@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}
-.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}
-.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}
-.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}
-.content,.auto{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}
-.cell-row{display:table;width:100%}.cell{display:table-cell}
-.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}
-.hide{display:none!important}.show-block,.show{display:block!important}.show-inline-block{display:inline-block!important}
-@media (max-width:1205px){.auto{max-width:95%}}
-@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}
-.dropdown-hover.mobile .dropdown-content,.dropdown-click.mobile .dropdown-content{position:relative}
-.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-hover.mobile,.dropdown-click.mobile{text-align:left}
-.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button,.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button{width:100%}}
-@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}
-@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}}
-@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}
-@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}}
-.top,.bottom{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}
-.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
-.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}
-.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}
-.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
-.display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
-.display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
-.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}
-.display-position{position:absolute}
-.circle{border-radius:50%}
-.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}
-.row-padding,.row-padding>.half,.row-padding>.third,.row-padding>.twothird,.row-padding>.threequarter,.row-padding>.quarter,.row-padding>.col{padding:0 8px}
-.container,.datapanel{padding:0.01em 8px}.datapanel{margin-top:8px;margin-bottom:8px}
-.code,.codespan{font-family:Consolas,"courier new";font-size:16px}
-.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
-.codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
-.card,.card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16)}
-.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
-.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
-.animate-fading{animation:fading 2s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
-.animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.animate-top{position:relative;animation:animatetop 1s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
-.animate-bottom{position:relative;animation:animatebottom 1s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
-.animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
-.animate-input{transition:width 0.4s ease-in-out}.animate-input:focus{width:100%!important}
-.opacity,.hover-opacity:hover{opacity:0.60}.opacity-off,.hover-opacity-off:hover{opacity:1}
-.opacity-max{opacity:0.25}.opacity-min{opacity:0.75}
-.greyscale-max,.grayscale-max,.hover-greyscale:hover,.hover-grayscale:hover{filter:grayscale(100%)}
-.greyscale,.grayscale{filter:grayscale(75%)}.greyscale-min,.grayscale-min{filter:grayscale(50%)}
-.sepia{filter:sepia(75%)}.sepia-max,.hover-sepia:hover{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}
-.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}
-.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}
-.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}
-.border-0{border:0!important}.border{border:1px solid #ccc!important}
-.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}
-.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}
-.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}
-.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}
-.section,.code{margin-top:16px!important;margin-bottom:16px!important}
-.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}
-.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}
-.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}
-.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}
-.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}
-.padding-64{padding-top:64px!important;padding-bottom:64px!important}
-.left{float:left!important}.right{float:right!important}
-.button:hover{color:#fff!important;background-color:#343434!important}
-.transparent,.hover-none:hover{background-color:transparent!important}
-.hover-none:hover{box-shadow:none!important}
-/* DEFAULT COLORS */
-.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}
-.aqua,.hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
-.blue,.hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
-.light-blue,.hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
-.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}
-.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
-.blue-grey,.hover-blue-grey:hover{color:#fff!important;background-color:#607d8b!important}
-.green,.hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
-.light-green,.hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
-.indigo,.hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
-.khaki,.hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
-.lime,.hover-lime:hover{color:#000!important;background-color:#cddc39!important}
-.orange,.hover-orange:hover{color:#000!important;background-color:#ff9800!important}
-.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
-.pink,.hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
-.purple,.hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
-.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
-.red,.hover-red:hover{color:#fff!important;background-color:#f44336!important}
-.sand,.hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
-.teal,.hover-teal:hover{color:#fff!important;background-color:#009688!important}
-.yellow,.hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
-.white,.hover-white:hover{color:#000!important;background-color:#fff!important}
-.black,.hover-black:hover{color:#fff!important;background-color:#000!important}
-.grey,.hover-grey:hover{color:#000!important;background-color:#9e9e9e!important}
-.light-grey,.hover-light-grey:hover{color:#000!important;background-color:#f1f1f1!important}
-.dark-grey,.hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}
-.pale-red,.hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.pale-green,.hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important}
-.pale-yellow,.hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.pale-blue,.hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important}
-.text-align-right { text-align: right;}
-.text-amber,.hover-text-amber:hover{color:#ffc107!important}
-.text-aqua,.hover-text-aqua:hover{color:#00ffff!important}
-.text-blue,.hover-text-blue:hover{color:#2196F3!important}
-.text-light-blue,.hover-text-light-blue:hover{color:#87CEEB!important}
-.text-brown,.hover-text-brown:hover{color:#795548!important}
-.text-cyan,.hover-text-cyan:hover{color:#00bcd4!important}
-.text-blue-grey,.hover-text-blue-grey:hover{color:#607d8b!important}
-.text-green,.hover-text-green:hover{color:#4CAF50!important}
-.text-light-green,.hover-text-light-green:hover{color:#8bc34a!important}
-.text-indigo,.hover-text-indigo:hover{color:#3f51b5!important}
-.text-khaki,.hover-text-khaki:hover{color:#b4aa50!important}
-.text-lime,.hover-text-lime:hover{color:#cddc39!important}
-.text-orange,.hover-text-orange:hover{color:#ff9800!important}
-.text-deep-orange,.hover-text-deep-orange:hover{color:#ff5722!important}
-.text-pink,.hover-text-pink:hover{color:#e91e63!important}
-.text-purple,.hover-text-purple:hover{color:#9c27b0!important}
-.text-deep-purple,.hover-text-deep-purple:hover{color:#673ab7!important}
-.text-red,.hover-text-red:hover{color:#f44336!important}
-.text-sand,.hover-text-sand:hover{color:#fdf5e6!important}
-.text-teal,.hover-text-teal:hover{color:#009688!important}
-.text-yellow,.hover-text-yellow:hover{color:#d2be0e!important}
-.text-white,.hover-text-white:hover{color:#fff!important}
-.text-black,.hover-text-black:hover{color:#000!important}
-.text-grey,.hover-text-grey:hover{color:#757575!important}
-.text-light-grey,.hover-text-light-grey:hover{color:#f1f1f1!important}
-.text-dark-grey,.hover-text-dark-grey:hover{color:#3a3a3a!important}
-.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}
-.border-aqua,.hover-border-aqua:hover{border-color:#00ffff!important}
-.border-blue,.hover-border-blue:hover{border-color:#2196F3!important}
-.border-light-blue,.hover-border-light-blue:hover{border-color:#87CEEB!important}
-.border-brown,.hover-border-brown:hover{border-color:#795548!important}
-.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}
-.border-blue-grey,.hover-blue-grey:hover{border-color:#607d8b!important}
-.border-green,.hover-border-green:hover{border-color:#4CAF50!important}
-.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}
-.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}
-.border-khaki,.hover-border-khaki:hover{border-color:#f0e68c!important}
-.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}
-.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}
-.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}
-.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}
-.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}
-.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}
-.border-red,.hover-border-red:hover{border-color:#f44336!important}
-.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}
-.border-teal,.hover-border-teal:hover{border-color:#009688!important}
-.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}
-.border-white,.hover-border-white:hover{border-color:#fff!important}
-.border-black,.hover-border-black:hover{border-color:#000!important}
-.border-grey,.hover-border-grey:hover{border-color:#9e9e9e!important}
-.border-light-grey,.hover-border-light-grey:hover{border-color:#f1f1f1!important}
-.border-dark-grey,.hover-border-dark-grey:hover{border-color:#616161!important}
-.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}
-.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffd7!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}
-/* DEFAULT THEME */
-.theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.theme-d5 {color:#fff !important; background-color:#24457a !important}
-
-.theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.theme-dark {color:#fff !important; background-color:#24457a !important}
-.theme-action {color:#fff !important; background-color:#24457a !important}
-
-.theme {color:#fff !important; background-color:#6a92d3 !important}
-.text-theme {color:#6a92d3 !important}
-.border-theme {border-color:#6a92d3 !important}
-
-.hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.hover-text-theme:hover {color:#6a92d3 !important}
-.hover-border-theme:hover {border-color:#6a92d3 !important}
-
-/* .label { color: #000; font-size: 8pt;} */
-/* #main {margin-left: 210px;} */
-/* @media (max-width:768px){
- #sidebar { display: none;}
- #main { margin-left: 0px;}
-} */
-
-
-
-.table {
- table-layout: fixed;
-}
-
-.text-line-through { text-decoration: line-through; }
-
-#snackbar {
- visibility: hidden;
- min-width: 250px;
- margin-left: -125px;
- background-color: #333;
- color: #fff;
- text-align: center;
-
- padding: 16px;
- position: fixed;
- z-index: 1;
- left: 50%;
- bottom: 30px;
- font-size: 17px;
-}
-
-#snackbar.show {
- visibility: visible;
- -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
- animation: fadein 0.5s, fadeout 0.5s 2.5s;
-}
-
-@-webkit-keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@-webkit-keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-@keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-.tabulator-header-filter > input {
- background-color: #fff;
- border: 1px solid #ccc;
- font-weight: normal;
-}
-
-.readonly {
- pointer-events:none;
- color: #000!important;
- background-color: #d3d3d3!important;
-}
-
-
-
-.right-side-bg {
- background: url("../img/bg1.jpg");
- background-size: cover;
- min-height: 100vh;
-}
-
-
-
-
-/* .mceContentBody {
- background: #fff;
- color:#000;
-} */
-
-/* .tabulator-row-even {
- background-color: #757575;
-} */
-
-
-button
-{
- background-color: #f4f4f4;
- border: 1pt solid #cccccc;
- font-size: 10pt;
- color: #000;
- line-height: 1line;
- text-align: center;
-}
-button:hover
-{
- background-color: #343434;
-}
-button:pressed
-{
- background-color: #343434;
-}
-button:focus
-{
- background-color: #343434;
-}
-
-
-
-
-header
-{
- background-color: #fff;
- box-sizing: border-box;
-}
-
-
-.actionbtn {
- background-color: #293146;
- color: #fff;
-}
-
-::-webkit-input-placeholder
-{
- color: rgba(60.3922%,60.3922%,60.3922%,1);
-}
-
-
-textarea
-{
- background-color: #fff;
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- font-size: 11pt;
- color: #000;
- line-height: 1line;
- text-align: left;
- /* margin-top: 0.88em;
- margin-right: 0.75em;
- margin-bottom: 0.63em;
- margin-left: 0.75em;
- top: 0pt;
- right: 30pt;
- bottom: 0pt;
- left: 0pt;
- position: absolute;
- box-sizing: border-box; */
-}
-textarea:focus
-{
- border-top-color: rgba(0%,43.9216%,81.1765%,1);
- border-right-color: rgba(0%,43.9216%,81.1765%,1);
- border-bottom-color: rgba(0%,43.9216%,81.1765%,1);
- border-left-color: rgba(0%,43.9216%,81.1765%,1);
-}
-textarea:placeholder
-{
- color: rgba(80%,80%,80%,1);
-}
-/* textarea .text
-{
-
-} */
-textarea .scrollbar_track
-{
- width: 30pt;
- top: 0pt;
- right: 0pt;
- bottom: 0pt;
- position: absolute;
- box-sizing: border-box;
-}
-
-
-footer
-{
- background-color: #fff;
- box-sizing: border-box;
-}
-
-
-div.group_container
-{
- background-color: #e3e3e3;
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- padding-top: 4px;
- padding-bottom: 8px;
-}
-
-/* Custom Styles */
-.ListView_Default
-{
-
- background-color: rgba(0%,0%,0%,0);
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
-
- color: #000;
- text-align: left;
- margin-top: 2pt;
- margin-right: 2pt;
- margin-bottom: 2pt;
- margin-left: 2pt;
-}
-
-
-button.btnNavigation
-{
-
- background-color: rgba(0%,0%,0%,0);
-
- font-family: -fm-font-family(Arial,Arial-BoldMT);
- font-weight: bold;
- font-size: 10pt;
- color: #fff;
- padding-top: 0pt;
- padding-right: 0pt;
- padding-bottom: 0pt;
- padding-left: 0pt;
-}
-
-div.PageListHeader
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- color: #fff;
- -fm-text-vertical-align: center;
-}
-div.PageListHeader .inner_border
-{
- padding-top: 5pt;
- padding-right: 5pt;
- padding-bottom: 5pt;
- padding-left: 5pt;
-}
-
-.moduletoolbar
-{
- background-color: #293146;
- color: #fff;
-}
-
-div.BodySectionHeader
-{
- font-family: -fm-font-family(Arial,Arial-BoldMT);
- font-weight: bold;
-}
-
-
-div.PageHeadTitle
-{
- font-size: 18pt;
- color: #fff;
-}
-
-div.SubHeadTitle
-{
- font-size: 13pt;
- color: #fff;
-}
-
-<<<<<<< HEAD
-div.SectionHeader
-=======
-
-
-div.ListView_SectionHeader
->>>>>>> 509afc930052596f387a5621613c8257684e5df4
-{
-
- background-color: rgba(22.3529%,26.6667%,38.4314%,1);
-
-}
-
-button.toolbarbtn
-{
- border: 0.5px solid #c6c6c6;
- background-color: rgba(0%,0%,0%,0);
- color: #fff;
-}
-button.toolbarbtn:hover
-{
-
- background-color: #343434;
- color: #fff;
-}
-button.toolbarbtn:pressed
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
- color: #fff;
-}
-button.toolbarbtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-a.toolbarbtn
-{
- border: 0.5px solid #c6c6c6;
- background-color: rgba(0%,0%,0%,0);
- color: #fff;
- text-align: center;
- text-decoration: unset;
-}
-a.toolbarbtn:hover
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
- color: #fff;
-}
-a.toolbarbtn:pressed
-{
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
- color: #fff;
-}
-a.toolbarbtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-button.bodybtn
-{
- border: 0.5px solid #c6c6c6;
-
- background-color: rgba(0%,0%,0%,0);
-
- color: #000;
-}
-button.bodybtn:hover
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
- color: #fff;
-}
-button.bodybtn:pressed
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
- color: #fff;
-}
-button.bodybtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-a.bodybtn
-{
- border: 0.5px solid #c6c6c6;
-
- background-color: rgba(0%,0%,0%,0);
-
- color: #000;
- text-align: center;
- text-decoration: unset;
-}
-a.bodybtn:hover
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
- color: #fff;
-}
-a.bodybtn:pressed
-{
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
- color: #fff;
-}
-a.bodybtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-div.ListView_Header
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- font-weight: normal;
- color: #fff;
- -fm-text-vertical-align: center;
-}
-div.ListView_Header .inner_border
-{
- padding-top: 2pt;
- padding-right: 2pt;
- padding-bottom: 2pt;
- padding-left: 2pt;
-}
-
-div.toolbar
-{
-
- background-color: rgba(32.1569%,38.8235%,55.6863%,1);
-
-}
-
-div.sectiontoolbar
-{
- margin-top: 8px;
- margin-bottom: 8px;
- background-color: rgb(97, 98, 100);
-
-}
-
-div.FooterLabel
-{
- color: #fff;
-}
-
-button.Buttom_BodyNav:hover
-{
-
- background-color: rgb(141, 141, 141);
-
- /* color: #fff; */
-}
-
-
-::-webkit-scrollbar {
--webkit-appearance: none;
-width: 10px;
-}
-
-::-webkit-scrollbar-track {
- background-color: rgba(80%, 80%, 80%, .5);
-}
-
-::-webkit-scrollbar-thumb {
-border-radius: 0px;
-background-color: rgba(0, 0, 0, .5);
--webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
-}
-
-div.portaltextheader {
- padding: 2px;
- border: 1px solid white;
-}
-
-
-
-
-
-select {
- /* -webkit-appearance: none; */
- display: block;
- color: #000;
- line-height: 1line;
- text-align: left;
- padding: 3.5px;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- margin: 0;
- border: 1px solid #cccccc;
- /* box-shadow: 0 1px 0 1px rgba(0,0,0,.04); */
- border-radius: 0px;
- font-weight: normal;
- font-size: 11pt;
- background-color: #fff;
- /* background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right .7em top 50%, 0 0;
- background-size: .65em auto, 100%; */
-}
-
-
-/* option {
- appearance: none;
- border: 1px solid 0070cf;
- padding: 2px;
-} */
-select:focus
-{
- border: 1px solid #3a6fc3;
- border-radius: unset;
-}
-
-
-::-webkit-select-placeholder
-{
- color: #9a9a9a;
-}
-
-div.DataFooter{
- background: #384462;
-}
-.input-sum{padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D; }
-
-
-.currency-sum {padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D;}
-
-.currency-sum,.currency-sum:read-only {
- display: block;
- color: #fff;
- padding: 2px;
- padding-right: 12px;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- margin: 0;
- border: 1px solid #ccc;
- border-radius: unset;
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- background-color: #4D4D4D;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20fill=%22white%22%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%3C/svg%3E');
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-
-
-
-/* input[type=date]::-webkit-inner-spin-button,
-input[type=date]::-webkit-outer-spin-button {
- display: none;
-} */
-
-:focus {
- outline: unset;
-}
-
-input
-{
- background-color: #ffffff;
- border: 1px solid #cccccc;
- font-weight: normal;
- font-size: 11pt;
- color: #000000;
- line-height: 1line;
- text-align: left;
- width:100%;
- padding:2px;
- display:block;
- border-radius: unset;
-}
-/* input:focus
-{
- border: #0070cf;
-} */
-
-input:focus {
- border: 1px solid #3a6fc3;
- border-radius: unset;
-}
-
-input[readonly=true]{
- color: #000!important;
- background-color: #d3d3d3!important;
-}
-
-input[type=number]::-webkit-inner-spin-button,
-input[type=number]::-webkit-outer-spin-button {
- -webkit-appearance: none;
- margin: 0;
-}
-/* input[type=checkbox]{
- appearance: none;
- display:inline-block;
- font-size: 24px!important;
- border: 1px solid green;
-} */
-
-input[class=currency] {
- padding: 2px;
- padding-right: 12px;
- text-align: right;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-input[class=currency]:read-only {
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'),
- linear-gradient(to bottom, #d3d3d3 0%,#d3d3d3 100%);
-}
-
-input[class=percent] {
- padding: 2px;
- padding-right: 12px;
- text-align: right;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22256%22%20height=%22232%22%20version=%221.0%22%3E%3Cg%20transform=%22translate(-112.3674,-128.3649)%22%3E%3Cpath%20style=%22fill:black;fill-opacity:1;stroke:none%22%20d=%22M%20317.1674,257.53698%20C%20308.53463,257.53708%20301.73774,261.20839%20296.77671,268.55094%20C%20291.91449,275.89365%20289.48349,286.1138%20289.48368,299.2114%20C%20289.48349,312.11067%20291.91449,322.2812%20296.77671,329.72303%20C%20301.73774,337.06568%20308.53463,340.737%20317.1674,340.73698%20C%20325.60128,340.737%20332.24934,337.06568%20337.11159,329.72303%20C%20342.07258,322.2812%20344.5532,312.11067%20344.55345,299.2114%20C%20344.5532,286.21302%20342.07258,276.04249%20337.11159,268.69977%20C%20332.24934,261.25801%20325.60128,257.53708%20317.1674,257.53698%20M%20317.1674,238.63466%20C%20332.84469,238.63477%20345.29739,244.09213%20354.52554,255.00675%20C%20363.75318,265.92157%20368.36713,280.65644%20368.3674,299.2114%20C%20368.36713,317.76648%20363.70357,332.50135%20354.37671,343.41605%20C%20345.14855,354.23156%20332.74546,359.6393%20317.1674,359.63931%20C%20301.29123,359.6393%20288.7393,354.23156%20279.51159,343.41605%20C%20270.28351,332.50135%20265.66956,317.76648%20265.66973,299.2114%20C%20265.66956,280.55721%20270.28351,265.82234%20279.51159,255.00675%20C%20288.83853,244.09213%20301.39045,238.63477%20317.1674,238.63466%20M%20163.5674,147.9928%20C%20155.03401,147.993%20148.28673,151.71393%20143.32554,159.15559%20C%20138.46349,166.49841%20136.03248,176.61933%20136.03252,189.51838%20C%20136.03248,202.61621%20138.46349,212.83635%20143.32554,220.17884%20C%20148.18751,227.52161%20154.93479,231.19292%20163.5674,231.1928%20C%20172.19989,231.19292%20178.94717,227.52161%20183.80926,220.17884%20C%20188.77041,212.83635%20191.25103,202.61621%20191.25113,189.51838%20C%20191.25103,176.71856%20188.77041,166.59764%20183.80926,159.15559%20C%20178.84794,151.71393%20172.10066,147.993%20163.5674,147.9928%20M%20297.9674,129.09047%20L%20321.78136,129.09047%20L%20182.7674,359.63931%20L%20158.95345,359.63931%20L%20297.9674,129.09047%20M%20163.5674,129.09047%20C%20179.24484,129.0907%20191.74715,134.54806%20201.07438,145.46256%20C%20210.4014,156.27827%20215.06496,170.96352%20215.06508,189.51838%20C%20215.06496,208.27201%20210.4014,223.05649%20201.07438,233.87187%20C%20191.84638,244.68748%20179.34406,250.09523%20163.5674,250.09512%20C%20147.79061,250.09523%20135.28829,244.68748%20126.06043,233.87187%20C%20116.93172,222.95727%20112.36739,208.17279%20112.3674,189.51838%20C%20112.36739,171.06275%20116.98134,156.37749%20126.20926,145.46256%20C%20135.43713,134.54806%20147.88983,129.0907%20163.5674,129.09047%22%20/%3E%3C/g%3E%3C/svg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-
-label {
- height: 12.8px!important;
- color: #000;
- font-size: 8pt;
-}
-
-
-
-input[type="checkbox"] {
- display: block;
- -webkit-appearance:none;/* Hides the default checkbox style */
- height:29.66px;
- width:29.66px;
- cursor:pointer;
- position:relative;
- -webkit-transition: .15s;
- border-radius: unset;
- border: 1px solid #cccccc;
- background-color:#fff;
- }
-
- input[type="checkbox"]:checked {
- background-color:#9ABCEA;
- }
-
- input[type="checkbox"]:before, input[type="checkbox"]:checked:before {
- position:absolute;
- top:0;
- left:0;
- width:100%;
- height:100%;
- line-height:2em;
- text-align:center;
- color:#000;
- content: '';
- }
-
- input[type="checkbox"]:checked:before {
- font-size: 11pt;
- content: '✔';
- }
-
- input[type="checkbox"]:hover:before {
- background:rgba(255,255,255,0.3);
- }
-
-
- body.mceContentBody {
- background:#e8f0fe;
- color:#000;
-}
-
-/* .mceContentBody {
- background: #e8f0fe;
- color:#000;
-} */
-
-/* .tabulator-row-even {
- background-color: #757575;
-} */
-
-:focus {
- outline: 1px solid #607d8b;
-}
-
-.modal-content > header {
- background-color: #293146;
- color: #fff;
- padding:8px!important;
- margin-bottom: 10px;
-}
-
-.modal-content > header > h2 {
- font-size: 13pt;
-}
-
-.modal-content > footer {
-
- /* padding:0.01em 8px; */
- text-align:right!important;
- color:#000!important;
- background-color:#c6c6c6!important;
- margin-top: 6px;
- padding-top:8px!important;
- padding-bottom:8px!important;
-}
-
-.modal-content > header:after,.modal-content > header:before,.modal-content > footer:after,.modal-content > footer:before {
- content:"";display:table;clear:both
-}
-
-span[class^="icon"]::after {
- content: "\A";
- white-space: pre;
-}
-
-@media (max-width:600px){
- div.PageHeadTitle{font-size: 12pt;}
- button {font-size: 8pt;}
-}
+++ /dev/null
-/* W3PRO.CSS 4.13 June 2019 by Jan Egil and Borge Refsnes */
-html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
-/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
-html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
-html,body {-webkit-user-select: none;-ms-user-select: none;user-select: none;-moz-user-select:none;}
-article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
-audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
-audio:not([controls]){display:none;height:0}[hidden],template{display:none}
-a{background-color:transparent}a:active,a:hover{outline-width:0}
-abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
-b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
-small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
-sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
-code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
-button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
-button,input{overflow:visible}button,select{text-transform:none}
-button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
-button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
-button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
-fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
-legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
-[type=checkbox],[type=radio]{padding:0}
-[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
-[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
-[type=search]::-webkit-search-decoration{-webkit-appearance:none}
-::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
-/* End extract */
-/* html,body {
- background-color: #52638e;
-} */
-html,body{font-family:Verdana,sans-serif;font-size:9pt;line-height:1.5}html{overflow-x:hidden}
-h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.serif{font-family:serif}
-h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin: 0}.wide{letter-spacing:4px}
-hr{border:0;border-top:1px solid #eee;margin:20px 0}
-.img{max-width:100%;height:auto; vertical-align:middle}a{color:inherit}
-.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
-.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
-.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
-.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
-.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
-.table th:first-child,.table td:first-child,.table-all th:first-child,.table-all td:first-child{padding-left:16px}
-.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
-.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
-.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
-.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;opacity:0.3}.disabled *,:disabled *{pointer-events:none}
-.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
-.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
-.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
-.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
-.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
-.input{padding:6px;display:block;border: 1px solid #ccc;width:100%;background-color: #fff; }/*#e8f0fe*/
-.select{padding:2px 0; display:block;width:100%;border:1px solid #ccc;background-color: #fff;}
-.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
-.dropdown-hover:hover .dropdown-content{display:block; }
-.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
-.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
-.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
-.check,.radio{width:24px;height:24px;position:relative;top:6px}
-.sidebar{height:100%;width:160px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
-.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
-.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
-.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
-.main,#main{transition:margin-left .4s}
-.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
-.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
-.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}
-.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
-.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
-.bar .button{white-space:normal}
-.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
-.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
-.responsive{display:block;overflow-x:auto}
-.container:after,.container:before,.datapanel:after,.datapanel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
-.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
-.col,.half,.third,.twothird,.threequarter,.quarter,.fifth,.twofifth,.threefifth,.fourfifth{float:left;width:100%}
-.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}
-.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}
-.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}
-@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}.fifth{width:20%;min-width:100px}
-.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}
-.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}.twofifth{width:40%}.threefifth{width:60%}.fourfifth{width:80%}}
-@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}
-.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}
-.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}
-.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}
-.content,.auto{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}
-.cell-row{display:table;width:100%}.cell{display:table-cell}
-.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}
-.hide{display:none!important}.show-block,.show{display:block!important}.show-inline-block{display:inline-block!important}
-@media (max-width:1205px){.auto{max-width:95%}}
-@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}
-.dropdown-hover.mobile .dropdown-content,.dropdown-click.mobile .dropdown-content{position:relative}
-.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-hover.mobile,.dropdown-click.mobile{text-align:center}
-.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button,.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button{width:100%}}
-@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}
-@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}}
-@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}
-@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}}
-.top,.bottom{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}
-.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
-.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}
-.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}
-.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
-.display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
-.display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
-.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}
-.display-position{position:absolute}
-.circle{border-radius:50%}
-.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}
-.row-padding,.row-padding>.half,.row-padding>.third,.row-padding>.twothird,.row-padding>.threequarter,.row-padding>.quarter,.row-padding>.col{padding:0 8px}
-.container,.datapanel{padding:0.01em 8px}.datapanel{margin-top:8px;margin-bottom:8px}
-.code,.codespan{font-family:Consolas,"courier new";font-size:16px}
-.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
-.codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
-.card,.card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16)}
-.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
-.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
-.animate-fading{animation:fading 2s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
-.animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.animate-top{position:relative;animation:animatetop 1s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
-.animate-bottom{position:relative;animation:animatebottom 1s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
-.animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
-.animate-input{transition:width 0.4s ease-in-out}.animate-input:focus{width:100%!important}
-.opacity,.hover-opacity:hover{opacity:0.60}.opacity-off,.hover-opacity-off:hover{opacity:1}
-.opacity-max{opacity:0.25}.opacity-min{opacity:0.75}
-.greyscale-max,.grayscale-max,.hover-greyscale:hover,.hover-grayscale:hover{filter:grayscale(100%)}
-.greyscale,.grayscale{filter:grayscale(75%)}.greyscale-min,.grayscale-min{filter:grayscale(50%)}
-.sepia{filter:sepia(75%)}.sepia-max,.hover-sepia:hover{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}
-.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}
-.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}
-.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}
-.border-0{border:0!important}.border{border:1px solid #ccc!important}
-.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}
-.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}
-.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}
-.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}
-.section,.code{margin-top:16px!important;margin-bottom:16px!important}
-.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}
-.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}
-.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}
-.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}
-.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}
-.padding-64{padding-top:64px!important;padding-bottom:64px!important}
-.left{float:left!important}.right{float:right!important}
-.button:hover{color:#000!important;background-color:#ccc!important}
-.transparent,.hover-none:hover{background-color:transparent!important}
-.hover-none:hover{box-shadow:none!important}
-/* DEFAULT COLORS */
-.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}
-.aqua,.hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
-.blue,.hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
-.light-blue,.hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
-.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}
-.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
-.blue-grey,.hover-blue-grey:hover{color:#fff!important;background-color:#607d8b!important}
-.green,.hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
-.light-green,.hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
-.indigo,.hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
-.khaki,.hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
-.lime,.hover-lime:hover{color:#000!important;background-color:#cddc39!important}
-.orange,.hover-orange:hover{color:#000!important;background-color:#ff9800!important}
-.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
-.pink,.hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
-.purple,.hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
-.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
-.red,.hover-red:hover{color:#fff!important;background-color:#f44336!important}
-.sand,.hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
-.teal,.hover-teal:hover{color:#fff!important;background-color:#009688!important}
-.yellow,.hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
-.white,.hover-white:hover{color:#000!important;background-color:#fff!important}
-.black,.hover-black:hover{color:#fff!important;background-color:#000!important}
-.grey,.hover-grey:hover{color:#000!important;background-color:#9e9e9e!important}
-.light-grey,.hover-light-grey:hover{color:#000!important;background-color:#f1f1f1!important}
-.dark-grey,.hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}
-.pale-red,.hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.pale-green,.hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important}
-.pale-yellow,.hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.pale-blue,.hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important}
-.text-align-right { text-align: right;}
-.text-amber,.hover-text-amber:hover{color:#ffc107!important}
-.text-aqua,.hover-text-aqua:hover{color:#00ffff!important}
-.text-blue,.hover-text-blue:hover{color:#2196F3!important}
-.text-light-blue,.hover-text-light-blue:hover{color:#87CEEB!important}
-.text-brown,.hover-text-brown:hover{color:#795548!important}
-.text-cyan,.hover-text-cyan:hover{color:#00bcd4!important}
-.text-blue-grey,.hover-text-blue-grey:hover{color:#607d8b!important}
-.text-green,.hover-text-green:hover{color:#4CAF50!important}
-.text-light-green,.hover-text-light-green:hover{color:#8bc34a!important}
-.text-indigo,.hover-text-indigo:hover{color:#3f51b5!important}
-.text-khaki,.hover-text-khaki:hover{color:#b4aa50!important}
-.text-lime,.hover-text-lime:hover{color:#cddc39!important}
-.text-orange,.hover-text-orange:hover{color:#ff9800!important}
-.text-deep-orange,.hover-text-deep-orange:hover{color:#ff5722!important}
-.text-pink,.hover-text-pink:hover{color:#e91e63!important}
-.text-purple,.hover-text-purple:hover{color:#9c27b0!important}
-.text-deep-purple,.hover-text-deep-purple:hover{color:#673ab7!important}
-.text-red,.hover-text-red:hover{color:#f44336!important}
-.text-sand,.hover-text-sand:hover{color:#fdf5e6!important}
-.text-teal,.hover-text-teal:hover{color:#009688!important}
-.text-yellow,.hover-text-yellow:hover{color:#d2be0e!important}
-.text-white,.hover-text-white:hover{color:#fff!important}
-.text-black,.hover-text-black:hover{color:#000!important}
-.text-grey,.hover-text-grey:hover{color:#757575!important}
-.text-light-grey,.hover-text-light-grey:hover{color:#f1f1f1!important}
-.text-dark-grey,.hover-text-dark-grey:hover{color:#3a3a3a!important}
-.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}
-.border-aqua,.hover-border-aqua:hover{border-color:#00ffff!important}
-.border-blue,.hover-border-blue:hover{border-color:#2196F3!important}
-.border-light-blue,.hover-border-light-blue:hover{border-color:#87CEEB!important}
-.border-brown,.hover-border-brown:hover{border-color:#795548!important}
-.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}
-.border-blue-grey,.hover-blue-grey:hover{border-color:#607d8b!important}
-.border-green,.hover-border-green:hover{border-color:#4CAF50!important}
-.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}
-.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}
-.border-khaki,.hover-border-khaki:hover{border-color:#f0e68c!important}
-.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}
-.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}
-.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}
-.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}
-.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}
-.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}
-.border-red,.hover-border-red:hover{border-color:#f44336!important}
-.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}
-.border-teal,.hover-border-teal:hover{border-color:#009688!important}
-.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}
-.border-white,.hover-border-white:hover{border-color:#fff!important}
-.border-black,.hover-border-black:hover{border-color:#000!important}
-.border-grey,.hover-border-grey:hover{border-color:#9e9e9e!important}
-.border-light-grey,.hover-border-light-grey:hover{border-color:#f1f1f1!important}
-.border-dark-grey,.hover-border-dark-grey:hover{border-color:#616161!important}
-.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}
-.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffd7!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}
-/* DEFAULT THEME */
-.theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.theme-d5 {color:#fff !important; background-color:#24457a !important}
-
-.theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.theme-dark {color:#fff !important; background-color:#24457a !important}
-.theme-action {color:#fff !important; background-color:#24457a !important}
-
-.theme {color:#fff !important; background-color:#6a92d3 !important}
-.text-theme {color:#6a92d3 !important}
-.border-theme {border-color:#6a92d3 !important}
-
-.hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.hover-text-theme:hover {color:#6a92d3 !important}
-.hover-border-theme:hover {border-color:#6a92d3 !important}
-
-/* .label { color: #000; font-size: 8pt;} */
-/* #main {margin-left: 210px;} */
-/* @media (max-width:768px){
- #sidebar { display: none;}
- #main { margin-left: 0px;}
-} */
-
-
-
-.table {
- table-layout: fixed;
-}
-
-.text-line-through { text-decoration: line-through; }
-
-#snackbar {
- visibility: hidden;
- min-width: 250px;
- margin-left: -125px;
- background-color: #333;
- color: #fff;
- text-align: center;
-
- padding: 16px;
- position: fixed;
- z-index: 1;
- left: 50%;
- bottom: 30px;
- font-size: 17px;
-}
-
-#snackbar.show {
- visibility: visible;
- -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
- animation: fadein 0.5s, fadeout 0.5s 2.5s;
-}
-
-@-webkit-keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@-webkit-keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-@keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-.tabulator-header-filter > input {
- background-color: #fff;
- border: 1px solid #ccc;
- font-weight: normal;
-}
-
-.readonly {
- pointer-events:none;
- color: #000!important;
- background-color: #d3d3d3!important;
-}
-
-
-
-.right-side-bg {
- background: url("../img/bg1.jpg");
- background-size: cover;
- min-height: 100vh;
-}
-
-
-
-
-/* .mceContentBody {
- background: #fff;
- color:#000;
-} */
-
-/* .tabulator-row-even {
- background-color: #757575;
-} */
-
-
-button
-{
- background-color: #f4f4f4;
- border: 1pt solid #cccccc;
- font-size: 10pt;
- color: #000;
- line-height: 1line;
- text-align: center;
-}
-button:hover
-{
- background-color: #343434;
-}
-button:pressed
-{
- background-color: #343434;
-}
-button:focus
-{
- background-color: #343434;
-}
-
-
-
-
-header
-{
- background-color: #fff;
- box-sizing: border-box;
-}
-
-
-
-
-::-webkit-input-placeholder
-{
- color: rgba(60.3922%,60.3922%,60.3922%,1);
-}
-
-
-textarea
-{
- background-color: #fff;
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- font-size: 11pt;
- color: #000;
- line-height: 1line;
- text-align: left;
- /* margin-top: 0.88em;
- margin-right: 0.75em;
- margin-bottom: 0.63em;
- margin-left: 0.75em;
- top: 0pt;
- right: 30pt;
- bottom: 0pt;
- left: 0pt;
- position: absolute;
- box-sizing: border-box; */
-}
-textarea:focus
-{
- border-top-color: rgba(0%,43.9216%,81.1765%,1);
- border-right-color: rgba(0%,43.9216%,81.1765%,1);
- border-bottom-color: rgba(0%,43.9216%,81.1765%,1);
- border-left-color: rgba(0%,43.9216%,81.1765%,1);
-}
-textarea:placeholder
-{
- color: rgba(80%,80%,80%,1);
-}
-/* textarea .text
-{
-
-} */
-textarea .scrollbar_track
-{
- width: 30pt;
- top: 0pt;
- right: 0pt;
- bottom: 0pt;
- position: absolute;
- box-sizing: border-box;
-}
-
-
-footer
-{
- background-color: #fff;
- box-sizing: border-box;
-}
-
-
-div.group_container
-{
- background-color: #e3e3e3;
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- padding-top: 4px;
- padding-bottom: 8px;
-}
-
-/* Custom Styles */
-.ListView_Default
-{
-
- background-color: rgba(0%,0%,0%,0);
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
-
- color: #000;
- text-align: left;
- margin-top: 2pt;
- margin-right: 2pt;
- margin-bottom: 2pt;
- margin-left: 2pt;
-}
-
-
-button.btnNavigation
-{
-
- background-color: rgba(0%,0%,0%,0);
-
- font-family: -fm-font-family(Arial,Arial-BoldMT);
- font-weight: bold;
- font-size: 10pt;
- color: #fff;
- padding-top: 0pt;
- padding-right: 0pt;
- padding-bottom: 0pt;
- padding-left: 0pt;
-}
-
-div.PageListHeader
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- color: #fff;
- -fm-text-vertical-align: center;
-}
-div.PageListHeader .inner_border
-{
- padding-top: 5pt;
- padding-right: 5pt;
- padding-bottom: 5pt;
- padding-left: 5pt;
-}
-
-.moduletoolbar
-{
- background-color: #293146;
- color: #fff;
-}
-
-div.BodySectionHeader
-{
- font-family: -fm-font-family(Arial,Arial-BoldMT);
- font-weight: bold;
-}
-
-button.Button_ImgPlacer
-{
-
- background-color: rgba(0%,0%,0%,0);
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
-
- font-family: -fm-font-family(Arial,Arial-BoldMT);
- font-weight: bold;
- font-size: 10pt;
- color: #fff;
-}
-button.Button_ImgPlacer .inner_border
-{
- padding-top: 0pt;
- padding-right: 0pt;
- padding-bottom: 0pt;
- padding-left: 0pt;
-}
-
-
-div.PageHeadTitle
-{
- font-size: 18pt;
- color: #fff;
-}
-
-div.SectionHeadTitle
-{
- font-size: 13pt;
- color: #fff;
-}
-
-div.SectionHeader
-{
-
- background-color: rgba(22.3529%,26.6667%,38.4314%,1);
-
-}
-
-button.toolbarbtn
-{
- border: 0.5px solid #c6c6c6;
-
- background-color: rgba(0%,0%,0%,0);
-
- color: #fff;
-}
-button.toolbarbtn:hover
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-button.toolbarbtn:pressed
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-button.toolbarbtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-a.toolbarbtn
-{
- border: 0.5px solid #c6c6c6;
-
- background-color: rgba(0%,0%,0%,0);
-
- color: #fff;
- text-align: center;
- text-decoration: unset;
-}
-a.toolbarbtn:hover
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-a.toolbarbtn:pressed
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-butaton.toolbarbtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-div.ListView_Header
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- font-weight: normal;
- color: #fff;
- -fm-text-vertical-align: center;
-}
-div.ListView_Header .inner_border
-{
- padding-top: 2pt;
- padding-right: 2pt;
- padding-bottom: 2pt;
- padding-left: 2pt;
-}
-
-div.toolbar
-{
-
- background-color: rgba(32.1569%,38.8235%,55.6863%,1);
-
-}
-
-div.sectiontoolbar
-{
- margin-top: 8px;
- margin-bottom: 8px;
- background-color: rgb(97, 98, 100);
-
-}
-
-div.FooterLabel
-{
- color: #fff;
-}
-
-button.Buttom_BodyNav:hover
-{
-
- background-color: rgb(141, 141, 141);
-
- /* color: #fff; */
-}
-
-
-::-webkit-scrollbar {
--webkit-appearance: none;
-width: 10px;
-}
-
-::-webkit-scrollbar-track {
- background-color: rgba(80%, 80%, 80%, .5);
-}
-
-::-webkit-scrollbar-thumb {
-border-radius: 0px;
-background-color: rgba(0, 0, 0, .5);
--webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
-}
-
-div.portaltextheader {
- padding: 2px;
- border: 1px solid white;
-}
-
-
-
-
-
-select {
- /* -webkit-appearance: none; */
- display: block;
- color: #000;
- line-height: 1line;
- text-align: left;
- padding: 3.5px;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- margin: 0;
- border: 1px solid #cccccc;
- /* box-shadow: 0 1px 0 1px rgba(0,0,0,.04); */
- border-radius: 0px;
- font-weight: normal;
- font-size: 11pt;
- background-color: #fff;
- /* background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right .7em top 50%, 0 0;
- background-size: .65em auto, 100%; */
-}
-
-
-/* option {
- appearance: none;
- border: 1px solid 0070cf;
- padding: 2px;
-} */
-select:focus
-{
- border: 1px solid #3a6fc3;
- border-radius: unset;
-}
-
-
-::-webkit-select-placeholder
-{
- color: #9a9a9a;
-}
-
-div.DataFooter{
- background: #384462;
-}
-.input-sum{padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D; }
-
-
-.currency-sum {padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D;}
-
-.currency-sum,.currency-sum:read-only {
- display: block;
- color: #fff;
- padding: 2px;
- padding-right: 12px;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- margin: 0;
- border: 1px solid #ccc;
- border-radius: unset;
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- background-color: #4D4D4D;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20fill=%22white%22%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%3C/svg%3E');
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-
-
-
-/* input[type=date]::-webkit-inner-spin-button,
-input[type=date]::-webkit-outer-spin-button {
- display: none;
-} */
-
-:focus {
- outline: unset;
-}
-
-input
-{
- background-color: #ffffff;
- border: 1px solid #cccccc;
- font-weight: normal;
- font-size: 11pt;
- color: #000000;
- line-height: 1line;
- text-align: left;
- width:100%;
- padding:2px;
- display:block;
- border-radius: unset;
-}
-/* input:focus
-{
- border: #0070cf;
-} */
-
-input:focus {
- border: 1px solid #3a6fc3;
- border-radius: unset;
-}
-
-input[readonly=true]{
- color: #000!important;
- background-color: #d3d3d3!important;
-}
-
-input[type=number]::-webkit-inner-spin-button,
-input[type=number]::-webkit-outer-spin-button {
- -webkit-appearance: none;
- margin: 0;
-}
-/* input[type=checkbox]{
- appearance: none;
- display:inline-block;
- font-size: 24px!important;
- border: 1px solid green;
-} */
-
-input[class=currency] {
- padding: 2px;
- padding-right: 12px;
- text-align: right;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-input[class=currency]:read-only {
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'),
- linear-gradient(to bottom, #d3d3d3 0%,#d3d3d3 100%);
-}
-
-input[class=percent] {
- padding: 2px;
- padding-right: 12px;
- text-align: right;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22256%22%20height=%22232%22%20version=%221.0%22%3E%3Cg%20transform=%22translate(-112.3674,-128.3649)%22%3E%3Cpath%20style=%22fill:black;fill-opacity:1;stroke:none%22%20d=%22M%20317.1674,257.53698%20C%20308.53463,257.53708%20301.73774,261.20839%20296.77671,268.55094%20C%20291.91449,275.89365%20289.48349,286.1138%20289.48368,299.2114%20C%20289.48349,312.11067%20291.91449,322.2812%20296.77671,329.72303%20C%20301.73774,337.06568%20308.53463,340.737%20317.1674,340.73698%20C%20325.60128,340.737%20332.24934,337.06568%20337.11159,329.72303%20C%20342.07258,322.2812%20344.5532,312.11067%20344.55345,299.2114%20C%20344.5532,286.21302%20342.07258,276.04249%20337.11159,268.69977%20C%20332.24934,261.25801%20325.60128,257.53708%20317.1674,257.53698%20M%20317.1674,238.63466%20C%20332.84469,238.63477%20345.29739,244.09213%20354.52554,255.00675%20C%20363.75318,265.92157%20368.36713,280.65644%20368.3674,299.2114%20C%20368.36713,317.76648%20363.70357,332.50135%20354.37671,343.41605%20C%20345.14855,354.23156%20332.74546,359.6393%20317.1674,359.63931%20C%20301.29123,359.6393%20288.7393,354.23156%20279.51159,343.41605%20C%20270.28351,332.50135%20265.66956,317.76648%20265.66973,299.2114%20C%20265.66956,280.55721%20270.28351,265.82234%20279.51159,255.00675%20C%20288.83853,244.09213%20301.39045,238.63477%20317.1674,238.63466%20M%20163.5674,147.9928%20C%20155.03401,147.993%20148.28673,151.71393%20143.32554,159.15559%20C%20138.46349,166.49841%20136.03248,176.61933%20136.03252,189.51838%20C%20136.03248,202.61621%20138.46349,212.83635%20143.32554,220.17884%20C%20148.18751,227.52161%20154.93479,231.19292%20163.5674,231.1928%20C%20172.19989,231.19292%20178.94717,227.52161%20183.80926,220.17884%20C%20188.77041,212.83635%20191.25103,202.61621%20191.25113,189.51838%20C%20191.25103,176.71856%20188.77041,166.59764%20183.80926,159.15559%20C%20178.84794,151.71393%20172.10066,147.993%20163.5674,147.9928%20M%20297.9674,129.09047%20L%20321.78136,129.09047%20L%20182.7674,359.63931%20L%20158.95345,359.63931%20L%20297.9674,129.09047%20M%20163.5674,129.09047%20C%20179.24484,129.0907%20191.74715,134.54806%20201.07438,145.46256%20C%20210.4014,156.27827%20215.06496,170.96352%20215.06508,189.51838%20C%20215.06496,208.27201%20210.4014,223.05649%20201.07438,233.87187%20C%20191.84638,244.68748%20179.34406,250.09523%20163.5674,250.09512%20C%20147.79061,250.09523%20135.28829,244.68748%20126.06043,233.87187%20C%20116.93172,222.95727%20112.36739,208.17279%20112.3674,189.51838%20C%20112.36739,171.06275%20116.98134,156.37749%20126.20926,145.46256%20C%20135.43713,134.54806%20147.88983,129.0907%20163.5674,129.09047%22%20/%3E%3C/g%3E%3C/svg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-
-label {
- height: 12.8px!important;
- color: #000;
- font-size: 8pt;
-}
-
-
-
-input[type="checkbox"] {
- display: block;
- -webkit-appearance:none;/* Hides the default checkbox style */
- height:29.66px;
- width:29.66px;
- cursor:pointer;
- position:relative;
- -webkit-transition: .15s;
- border-radius: unset;
- border: 1px solid #cccccc;
- background-color:#fff;
- }
-
- input[type="checkbox"]:checked {
- background-color:green;
- }
-
- input[type="checkbox"]:before, input[type="checkbox"]:checked:before {
- position:absolute;
- top:0;
- left:0;
- width:100%;
- height:100%;
- line-height:2em;
- text-align:center;
- color:#fff;
- content: '';
- }
-
- input[type="checkbox"]:checked:before {
- font-size: 11pt;
- content: '✔';
- }
-
- input[type="checkbox"]:hover:before {
- background:rgba(255,255,255,0.3);
- }
-
-
- body.mceContentBody {
- background:#e8f0fe;
- color:#000;
-}
-
-/* .mceContentBody {
- background: #e8f0fe;
- color:#000;
-} */
-
-/* .tabulator-row-even {
- background-color: #757575;
-} */
-
-:focus {
- outline: 1px solid #607d8b;
-}
\ No newline at end of file
+++ /dev/null
-/* W3PRO.CSS 4.13 June 2019 by Jan Egil and Borge Refsnes */
-html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
-/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
-html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
-article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
-audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
-audio:not([controls]){display:none;height:0}[hidden],template{display:none}
-a{background-color:transparent}a:active,a:hover{outline-width:0}
-abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
-b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
-small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
-sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
-code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
-button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
-button,input{overflow:visible}button,select{text-transform:none}
-button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
-button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
-button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
-fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
-legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
-[type=checkbox],[type=radio]{padding:0}
-[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
-[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
-[type=search]::-webkit-search-decoration{-webkit-appearance:none}
-::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
-/* End extract */
-html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
-h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.serif{font-family:serif}
-h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin: 0}.wide{letter-spacing:4px}
-hr{border:0;border-top:1px solid #eee;margin:20px 0}
-.image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
-.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
-.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
-.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
-.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
-.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
-.table th:first-child,.table td:first-child,.table-all th:first-child,.table-all td:first-child{padding-left:16px}
-.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
-.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
-.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
-.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;opacity:0.3}.disabled *,:disabled *{pointer-events:none}
-.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
-.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
-.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
-.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
-.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
-.input{padding:8px;display:block;border:1px solid #ccc;width:100%;background-color: #e8f0fe; }
-.select{padding:9px 0; display:block;width:100%;border:1px solid #ccc;background-color: #e8f0fe;}
-.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
-.dropdown-hover:hover .dropdown-content{display:block; }
-.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
-.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
-.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
-.check,.radio{width:24px;height:24px;position:relative;top:6px}
-.sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
-.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
-.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
-.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
-.main,#main{transition:margin-left .4s}
-.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
-.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
-.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}
-.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
-.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
-.bar .button{white-space:normal}
-.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
-.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
-.responsive{display:block;overflow-x:auto}
-.container:after,.container:before,.panel:after,.panel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
-.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
-.col,.half,.third,.twothird,.threequarter,.quarter{float:left;width:100%}
-.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}
-.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}
-.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}
-@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}
-.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}
-.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}}
-@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}
-.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}
-.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}
-.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}
-.content,.auto{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}
-.cell-row{display:table;width:100%}.cell{display:table-cell}
-.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}
-.hide{display:none!important}.show-block,.show{display:block!important}.show-inline-block{display:inline-block!important}
-@media (max-width:1205px){.auto{max-width:95%}}
-@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}
-.dropdown-hover.mobile .dropdown-content,.dropdown-click.mobile .dropdown-content{position:relative}
-.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-hover.mobile,.dropdown-click.mobile{text-align:center}
-.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button,.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button{width:100%}}
-@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}
-@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}#main{margin:0px}#modulename{margin-left:0px}}
-@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}
-@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}#main{margin:0px}#modulename{margin-left:0px}}
-.top,.bottom{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}
-.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
-.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}
-.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}
-.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
-.display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
-.display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
-.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}
-.display-position{position:absolute}
-.circle{border-radius:50%}
-.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}
-.row-padding,.row-padding>.half,.row-padding>.third,.row-padding>.twothird,.row-padding>.threequarter,.row-padding>.quarter,.row-padding>.col{padding:0 8px}
-.container,.panel{padding:0.01em 16px}.panel{margin-top:16px;margin-bottom:16px}
-.code,.codespan{font-family:Consolas,"courier new";font-size:16px}
-.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
-.codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
-.card,.card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16)}
-.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
-.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
-.animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
-.animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
-.animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
-.animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
-.animate-input{transition:width 0.4s ease-in-out}.animate-input:focus{width:100%!important}
-.opacity,.hover-opacity:hover{opacity:0.60}.opacity-off,.hover-opacity-off:hover{opacity:1}
-.opacity-max{opacity:0.25}.opacity-min{opacity:0.75}
-.greyscale-max,.grayscale-max,.hover-greyscale:hover,.hover-grayscale:hover{filter:grayscale(100%)}
-.greyscale,.grayscale{filter:grayscale(75%)}.greyscale-min,.grayscale-min{filter:grayscale(50%)}
-.sepia{filter:sepia(75%)}.sepia-max,.hover-sepia:hover{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}
-.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}
-.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}
-.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}
-.border-0{border:0!important}.border{border:1px solid #ccc!important}
-.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}
-.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}
-.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}
-.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}
-.section,.code{margin-top:16px!important;margin-bottom:16px!important}
-.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}
-.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}
-.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}
-.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}
-.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}
-.padding-64{padding-top:64px!important;padding-bottom:64px!important}
-.left{float:left!important}.right{float:right!important}
-.button:hover{color:#000!important;background-color:#ccc!important}
-.transparent,.hover-none:hover{background-color:transparent!important}
-.hover-none:hover{box-shadow:none!important}
-/* DEFAULT COLORS */
-.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}
-.aqua,.hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
-.blue,.hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
-.light-blue,.hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
-.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}
-.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
-.blue-grey,.hover-blue-grey:hover{color:#fff!important;background-color:#607d8b!important}
-.green,.hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
-.light-green,.hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
-.indigo,.hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
-.khaki,.hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
-.lime,.hover-lime:hover{color:#000!important;background-color:#cddc39!important}
-.orange,.hover-orange:hover{color:#000!important;background-color:#ff9800!important}
-.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
-.pink,.hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
-.purple,.hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
-.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
-.red,.hover-red:hover{color:#fff!important;background-color:#f44336!important}
-.sand,.hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
-.teal,.hover-teal:hover{color:#fff!important;background-color:#009688!important}
-.yellow,.hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
-.white,.hover-white:hover{color:#000!important;background-color:#fff!important}
-.black,.hover-black:hover{color:#fff!important;background-color:#000!important}
-.grey,.hover-grey:hover{color:#000!important;background-color:#9e9e9e!important}
-.light-grey,.hover-light-grey:hover{color:#000!important;background-color:#f1f1f1!important}
-.dark-grey,.hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}
-.pale-red,.hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.pale-green,.hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important}
-.pale-yellow,.hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.pale-blue,.hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important}
-.text-amber,.hover-text-amber:hover{color:#ffc107!important}
-.text-aqua,.hover-text-aqua:hover{color:#00ffff!important}
-.text-blue,.hover-text-blue:hover{color:#2196F3!important}
-.text-light-blue,.hover-text-light-blue:hover{color:#87CEEB!important}
-.text-brown,.hover-text-brown:hover{color:#795548!important}
-.text-cyan,.hover-text-cyan:hover{color:#00bcd4!important}
-.text-blue-grey,.hover-text-blue-grey:hover{color:#607d8b!important}
-.text-green,.hover-text-green:hover{color:#4CAF50!important}
-.text-light-green,.hover-text-light-green:hover{color:#8bc34a!important}
-.text-indigo,.hover-text-indigo:hover{color:#3f51b5!important}
-.text-khaki,.hover-text-khaki:hover{color:#b4aa50!important}
-.text-lime,.hover-text-lime:hover{color:#cddc39!important}
-.text-orange,.hover-text-orange:hover{color:#ff9800!important}
-.text-deep-orange,.hover-text-deep-orange:hover{color:#ff5722!important}
-.text-pink,.hover-text-pink:hover{color:#e91e63!important}
-.text-purple,.hover-text-purple:hover{color:#9c27b0!important}
-.text-deep-purple,.hover-text-deep-purple:hover{color:#673ab7!important}
-.text-red,.hover-text-red:hover{color:#f44336!important}
-.text-sand,.hover-text-sand:hover{color:#fdf5e6!important}
-.text-teal,.hover-text-teal:hover{color:#009688!important}
-.text-yellow,.hover-text-yellow:hover{color:#d2be0e!important}
-.text-white,.hover-text-white:hover{color:#fff!important}
-.text-black,.hover-text-black:hover{color:#000!important}
-.text-grey,.hover-text-grey:hover{color:#757575!important}
-.text-light-grey,.hover-text-light-grey:hover{color:#f1f1f1!important}
-.text-dark-grey,.hover-text-dark-grey:hover{color:#3a3a3a!important}
-.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}
-.border-aqua,.hover-border-aqua:hover{border-color:#00ffff!important}
-.border-blue,.hover-border-blue:hover{border-color:#2196F3!important}
-.border-light-blue,.hover-border-light-blue:hover{border-color:#87CEEB!important}
-.border-brown,.hover-border-brown:hover{border-color:#795548!important}
-.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}
-.border-blue-grey,.hover-blue-grey:hover{border-color:#607d8b!important}
-.border-green,.hover-border-green:hover{border-color:#4CAF50!important}
-.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}
-.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}
-.border-khaki,.hover-border-khaki:hover{border-color:#f0e68c!important}
-.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}
-.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}
-.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}
-.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}
-.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}
-.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}
-.border-red,.hover-border-red:hover{border-color:#f44336!important}
-.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}
-.border-teal,.hover-border-teal:hover{border-color:#009688!important}
-.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}
-.border-white,.hover-border-white:hover{border-color:#fff!important}
-.border-black,.hover-border-black:hover{border-color:#000!important}
-.border-grey,.hover-border-grey:hover{border-color:#9e9e9e!important}
-.border-light-grey,.hover-border-light-grey:hover{border-color:#f1f1f1!important}
-.border-dark-grey,.hover-border-dark-grey:hover{border-color:#616161!important}
-.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}
-.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffd7!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}
-/* DEFAULT THEME */
-.theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.theme-d5 {color:#fff !important; background-color:#24457a !important}
-
-.theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.theme-dark {color:#fff !important; background-color:#24457a !important}
-.theme-action {color:#fff !important; background-color:#24457a !important}
-
-.theme {color:#fff !important; background-color:#6a92d3 !important}
-.text-theme {color:#6a92d3 !important}
-.border-theme {border-color:#6a92d3 !important}
-
-.hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.hover-text-theme:hover {color:#6a92d3 !important}
-.hover-border-theme:hover {border-color:#6a92d3 !important}
-
-.label { color: rgb(153, 150, 150);}
-/* #main {margin-left: 210px;} */
-@media (max-width:768px){
- /* #sidebar { display: none;}
- #main { margin-left: 0px;} */
-}
-
-.select {
- display: block;
- font-size: 16px;
- font-family: sans-serif;
- font-weight: normal;
- color: #444;
- line-height: 1.3;
- padding: .6em 1.4em .5em .8em;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- margin: 0;
- border-bottom: 1px solid #aaa;
- box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
- /* border-radius: .5em; */
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- background-color: #e8f0fe;
- background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),
- linear-gradient(to bottom, #e8f0fe 0%,#e8f0fe 100%);
- background-repeat: no-repeat, repeat;
- background-position: right .7em top 50%, 0 0;
- background-size: .65em auto, 100%;
-}
-.select::-ms-expand {
- display: none;
-}
-.select:hover {
- border-color: #888;
-}
-.select:focus {
- border-color: #aaa;
- box-shadow: 0 0 1px 1px #6a92d3;
- box-shadow: 0 0 0 1px -moz-mac-focusring;
- color: #222;
- outline: none;
-}
-
-
-.select option {
- font-weight:normal;
-}
-
-.table {
- table-layout: fixed;
-}
-
-.text-line-through { text-decoration: line-through; }
-
-#snackbar {
- visibility: hidden;
- min-width: 250px;
- margin-left: -125px;
- background-color: #333;
- color: #fff;
- text-align: center;
- border-radius: 2px;
- padding: 16px;
- position: fixed;
- z-index: 1;
- left: 50%;
- bottom: 30px;
- font-size: 17px;
-}
-
-#snackbar.show {
- visibility: visible;
- -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
- animation: fadein 0.5s, fadeout 0.5s 2.5s;
-}
-
-@-webkit-keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@-webkit-keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-@keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-.tabulator-header-filter > input {
- background-color: #e8f0fe;
- border: 1px solid #ccc;
- font-weight: normal;
-}
-
-.readonly {
- pointer-events:none;
- padding:8px;display:block;border:0px;width:100%;background-color: #fff;
-}
-
-.right-side-bg {
- background: url("../img/bg1.jpg");
- background-size: cover;
- min-height: 100vh;
-}
-body.mceContentBody {
- background:#e8f0fe;
- color:#000;
-}
-
-/* .mceContentBody {
- background: #e8f0fe;
- color:#000;
-} */
-
-/* .tabulator-row-even {
- background-color: #757575;
-} */
-
-:focus {
- outline: 1px solid #607d8b;
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
\ No newline at end of file
+++ /dev/null
-{
- "name": "App",
- "icons": [
- {
- "src": "\/android-icon-36x36.png",
- "sizes": "36x36",
- "type": "image\/png",
- "density": "0.75"
- },
- {
- "src": "\/android-icon-48x48.png",
- "sizes": "48x48",
- "type": "image\/png",
- "density": "1.0"
- },
- {
- "src": "\/android-icon-72x72.png",
- "sizes": "72x72",
- "type": "image\/png",
- "density": "1.5"
- },
- {
- "src": "\/android-icon-96x96.png",
- "sizes": "96x96",
- "type": "image\/png",
- "density": "2.0"
- },
- {
- "src": "\/android-icon-144x144.png",
- "sizes": "144x144",
- "type": "image\/png",
- "density": "3.0"
- },
- {
- "src": "\/android-icon-192x192.png",
- "sizes": "192x192",
- "type": "image\/png",
- "density": "4.0"
- }
- ]
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
- sodipodi:docname="fldicon.svg"
- width="512"
- height="512"
- id="svg2"
- version="1.1">
- <sodipodi:namedview
- inkscape:current-layer="svg2"
- inkscape:window-maximized="1"
- inkscape:window-y="18"
- inkscape:window-x="-8"
- inkscape:cy="163.23381"
- inkscape:cx="116.0587"
- inkscape:zoom="1.1609195"
- showgrid="false"
- id="namedview1035"
- inkscape:window-height="1017"
- inkscape:window-width="1920"
- inkscape:pageshadow="2"
- inkscape:pageopacity="0"
- guidetolerance="10"
- gridtolerance="10"
- objecttolerance="10"
- borderopacity="1"
- bordercolor="#666666"
- pagecolor="#ffffff" />
- <defs
- id="defs4">
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3917">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3919"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3921">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3923"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3925">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3927"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3929">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3931"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3933">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3935"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3937">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3939"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3941">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3943"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3945">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3947"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3949">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3951"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3953">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3955"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3953-7">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3955-4"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3949-0">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3951-9"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3945-4">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3947-8"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3941-8">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3943-2"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3937-4">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3939-5"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3933-5">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3935-1"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3929-7">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3931-1"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3925-1">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3927-5"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3921-2">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3923-7"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3917-6">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3919-1"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4141">
- <path
- id="path4143"
- d="m 341.83488,839.12618 v 20.80163 128.34254 20.82635 h 51.94788 0.73685 v -0.025 c 43.40797,-0.4243 78.47447,-38.28832 78.47447,-84.96065 0,-46.67241 -35.06639,-84.56112 -78.47447,-84.98527 h -0.73685 -51.94788 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4145">
- <path
- id="path4147"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4149">
- <path
- id="path4151"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4153">
- <path
- id="path4155"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4157">
- <path
- id="path4159"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4161">
- <path
- id="path4163"
- d="M 297.91853,936.78286 V 925.44762 855.5111 844.16238 h 38.38702 0.54449 v 0.0134 c 32.07642,0.2312 57.9889,20.86407 57.9889,46.2968 0,25.43277 -25.9124,46.07911 -57.9889,46.31024 h -0.54449 -38.38702 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4161-2">
- <path
- id="path4163-2"
- d="M 297.91853,936.78286 V 925.44762 855.5111 844.16238 h 38.38702 0.54449 v 0.0134 c 32.07642,0.2312 57.9889,20.86407 57.9889,46.2968 0,25.43277 -25.9124,46.07911 -57.9889,46.31024 h -0.54449 -38.38702 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4157-7">
- <path
- id="path4159-0"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4153-5">
- <path
- id="path4155-7"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3945-4-3">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3947-8-3"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3941-8-5">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3943-2-7"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3937-4-2">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3939-5-9"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3933-5-1">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3935-1-3"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3929-7-8">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3931-1-8"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3925-1-1">
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.487137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3927-5-7"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4149-5">
- <path
- id="path4151-9"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4145-7">
- <path
- id="path4147-7"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath4141-3">
- <path
- id="path4143-0"
- d="m 341.83488,839.12618 v 20.80163 128.34254 20.82635 h 51.94788 0.73685 v -0.025 c 43.40797,-0.4243 78.47447,-38.28832 78.47447,-84.96065 0,-46.67241 -35.06639,-84.56112 -78.47447,-84.98527 h -0.73685 -51.94788 z"
- style="opacity:0.343434;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- </clipPath>
- </defs>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:export-ydpi="96"
- inkscape:export-xdpi="96"
- id="g1131">
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:6.81895;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect1037"
- width="505.18106"
- height="505.18103"
- x="3.4094784"
- y="3.4094784"
- ry="29.746988" />
- <path
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:6.7653;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="m 182.06172,161.67007 v 142.1396 40.30822 h 39.18747 88.06648 v -40.30822 h -88.06648 v -142.1396 z"
- id="rect4165" />
- <path
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ed2939;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.67834;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="m 28.052756,252.89397 v -93.2513 h 65.68666 65.686664 v 15.39527 15.39525 H 112.7659 66.105721 v 22.87297 22.87296 h 40.318019 40.31802 v 15.3953 15.39525 H 106.42374 66.105721 v 39.58783 39.58783 H 47.079243 28.052756 Z"
- id="path2996" />
- <g
- style="display:inline"
- id="g3061"
- transform="matrix(0.89381929,0,0,0.87981371,8.8265842,-578.40876)">
- <path
- id="path3051"
- d="m 361.19707,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- style="fill:#00a1de;fill-opacity:1;fill-rule:nonzero;stroke:none" />
- <path
- clip-path="url(#clipPath4161-2)"
- transform="matrix(1.8365585,0,0,-2.3213008,-185.94774,3011.9298)"
- d="m 384.92697,890.29293 a 49.275364,38.985508 0 0 1 -49.03985,39.17028 49.275364,38.985508 0 0 1 -49.50976,-38.7985 49.275364,38.985508 0 0 1 49.03816,-39.17162 49.275364,38.985508 0 0 1 49.51143,38.79717"
- id="path3786"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:0.968639;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath4157-7)"
- mask="none"
- id="path3860"
- d="M 525.214,960.36762 308.39321,924.59958"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath4153-5)"
- id="path3860-4"
- d="M 320.91397,1003.6525 516.94324,903.56469"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath3945-4-3)"
- id="path3860-0"
- d="M 344.72988,1036.4323 527.87734,853.28489"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath3941-8-5)"
- id="path3860-9"
- d="M 377.50965,1060.2482 495.09757,829.46899"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath3937-4-2)"
- id="path3860-48"
- d="M 416.0446,1072.769 456.56262,816.94819"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath3933-5-1)"
- id="path3860-8"
- d="M 456.56263,1072.769 416.04459,816.94819"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath3929-7-8)"
- id="path3860-2"
- d="M 495.09756,1060.2482 377.50966,829.46899"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath3925-1-1)"
- id="path3860-45"
- d="M 527.87734,1036.4323 344.72987,853.28489"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath4149-5)"
- id="path3860-5"
- d="M 516.69324,986.4026 320.91397,886.06459"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="translate(-5.8029102)"
- clip-path="url(#clipPath4145-7)"
- id="path3860-1"
- d="m 269.64681,971.11403 255.8208,-40.51806"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- clip-path="url(#clipPath4141-3)"
- transform="matrix(1.3571293,0,0,1.2649251,-102.71706,-224.05677)"
- d="m 456.52174,924.06726 a 63.623188,68.260872 0 0 1 -63.59068,68.29492 63.623188,68.260872 0 0 1 -63.65568,-68.22518 63.623188,68.260872 0 0 1 63.58916,-68.29654 63.623188,68.260872 0 0 1 63.6572,68.22355"
- id="path3784"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.52647;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- transform="matrix(1.3102225,0,0,1.3058983,22.619124,-209.68422)"
- d="m 355.0711,883.7544 a 43.768116,43.913044 0 0 1 -43.41714,44.25856 43.768116,43.913044 0 0 1 -44.1163,-43.55703 43.768116,43.913044 0 0 1 43.40942,-44.26619 43.768116,43.913044 0 0 1 44.1239,43.54927"
- id="path3014"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.52898;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- d="m 474.7826,943.52161 a 45.942028,27.10145 0 0 1 -45.94202,27.10145 45.942028,27.10145 0 0 1 -45.94203,-27.10145 45.942028,27.10145 0 0 1 45.94203,-27.10145 45.942028,27.10145 0 0 1 45.94202,27.10145"
- transform="matrix(1.1589718,0,0,1.964674,-66.517043,-908.85019)"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.3254;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3982" />
- <path
- d="m 445.06734,946.8598 a 7.0710678,6.9685884 0 0 1 -7.07106,6.96859 7.0710678,6.9685884 0 0 1 -7.07107,-6.96859 7.0710678,6.9685884 0 0 1 7.07107,-6.96859 7.0710678,6.9685884 0 0 1 7.07106,6.96859"
- transform="matrix(1.1923927,0,0,1.209928,-91.766473,-200.77)"
- style="fill:#3da0d9;fill-opacity:1;stroke:#ffffff;stroke-width:1.6651;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- mask="none"
- id="path3858" />
- <path
- d="m 441.37809,947.62842 a 3.2280962,3.1768565 0 0 1 -3.2281,3.17685 3.2280962,3.1768565 0 0 1 -3.22809,-3.17685 3.2280962,3.1768565 0 0 1 3.22809,-3.17686 3.2280962,3.1768565 0 0 1 3.2281,3.17686"
- transform="matrix(1.2353218,0,0,1.2552464,-110.75915,-244.64498)"
- style="fill:#3da0d9;fill-opacity:1;stroke:#ffffff;stroke-width:1.60611;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="path3854" />
- </g>
- </g>
-</svg>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- version="1.1"
- id="svg2"
- height="220"
- width="522">
- <defs
- id="defs4">
- <clipPath
- id="clipPath3917"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3919"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3921"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3923"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3925"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3927"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3929"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3931"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3933"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3935"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3937"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3939"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3941"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3943"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3945"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3947"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3949"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3951"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3953"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3955"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3953-7"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3955-4"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3949-0"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3951-9"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3945-4"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3947-8"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3941-8"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3943-2"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3937-4"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3939-5"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3933-5"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3935-1"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3929-7"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3931-1"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3925-1"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3927-5"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3921-2"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3923-7"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3917-6"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3919-1"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath4141"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 341.83488,839.12618 v 20.80163 128.34254 20.82635 h 51.94788 0.73685 v -0.025 c 43.40797,-0.4243 78.47447,-38.28832 78.47447,-84.96065 0,-46.67241 -35.06639,-84.56112 -78.47447,-84.98527 h -0.73685 -51.94788 z"
- id="path4143" />
- </clipPath>
- <clipPath
- id="clipPath4145"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4147" />
- </clipPath>
- <clipPath
- id="clipPath4149"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4151" />
- </clipPath>
- <clipPath
- id="clipPath4153"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4155" />
- </clipPath>
- <clipPath
- id="clipPath4157"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4159" />
- </clipPath>
- <clipPath
- id="clipPath4161"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="M 297.91853,936.78286 V 925.44762 855.5111 844.16238 h 38.38702 0.54449 v 0.0134 c 32.07642,0.2312 57.9889,20.86407 57.9889,46.2968 0,25.43277 -25.9124,46.07911 -57.9889,46.31024 h -0.54449 -38.38702 z"
- id="path4163" />
- </clipPath>
- <clipPath
- id="clipPath4161-2"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="M 297.91853,936.78286 V 925.44762 855.5111 844.16238 h 38.38702 0.54449 v 0.0134 c 32.07642,0.2312 57.9889,20.86407 57.9889,46.2968 0,25.43277 -25.9124,46.07911 -57.9889,46.31024 h -0.54449 -38.38702 z"
- id="path4163-2" />
- </clipPath>
- <clipPath
- id="clipPath4157-7"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4159-0" />
- </clipPath>
- <clipPath
- id="clipPath4153-5"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4155-7" />
- </clipPath>
- <clipPath
- id="clipPath3945-4-3"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3947-8-3"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3941-8-5"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3943-2-7"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3937-4-2"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3939-5-9"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3933-5-1"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3935-1-3"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3929-7-8"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3931-1-8"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath3925-1-1"
- clipPathUnits="userSpaceOnUse">
- <path
- transform="matrix(1.8365585,0,0,-2.3213008,-180.14483,3011.9298)"
- d="m 384.92752,890.47815 a 49.275364,38.985508 0 0 1 -49.21598,38.98548 49.275364,38.985508 0 0 1 -49.3346,-38.89152 49.275364,38.985508 0 0 1 49.09709,-39.07921 49.275364,38.985508 0 0 1 49.45292,38.79734"
- id="path3927-5-7"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000400;stroke-width:0.48713735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- </clipPath>
- <clipPath
- id="clipPath4149-5"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4151-9" />
- </clipPath>
- <clipPath
- id="clipPath4145-7"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 366.99998,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path4147-7" />
- </clipPath>
- <clipPath
- id="clipPath4141-3"
- clipPathUnits="userSpaceOnUse">
- <path
- style="opacity:0.34343435;fill:#60aacf;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 341.83488,839.12618 v 20.80163 128.34254 20.82635 h 51.94788 0.73685 v -0.025 c 43.40797,-0.4243 78.47447,-38.28832 78.47447,-84.96065 0,-46.67241 -35.06639,-84.56112 -78.47447,-84.98527 h -0.73685 -51.94788 z"
- id="path4143-0" />
- </clipPath>
- </defs>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- transform="translate(0,-902.51965)"
- style="display:inline"
- id="layer5">
- <path
- id="rect4165"
- d="m 173.8145,911.32143 v 161.55647 45.8145 h 43.84272 98.52828 v -45.8145 H 217.65722 V 911.32143 Z"
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:7.62899017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- id="path2996"
- d="M 1.5101329,1015.0069 V 909.01708 H 74.999999 148.48987 v 17.49833 17.49831 H 96.286722 44.083576 v 25.99751 25.99751 h 45.107573 45.107571 v 17.49836 17.4983 H 89.191149 44.083576 v 44.9957 44.9957 H 22.79686 1.5101329 Z"
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ed2939;fill-opacity:1;fill-rule:nonzero;stroke:#ed2939;stroke-width:3.02026582;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <g
- transform="translate(-20,70.144685)"
- id="g3061"
- style="display:inline">
- <path
- style="fill:#00a1de;fill-opacity:1;fill-rule:nonzero;stroke:none"
- d="m 361.19707,837.375 v 26.3125 162.3437 26.3438 h 70.5 1 v -0.031 c 58.91022,-0.5367 106.5,-48.4318 106.5,-107.4688 0,-59.03711 -47.58963,-106.96348 -106.5,-107.5 h -1 -70.5 z"
- id="path3051" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:0.9686389;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3786"
- d="m 384.92697,890.29293 a 49.275364,38.985508 0 0 1 -49.03985,39.17028 49.275364,38.985508 0 0 1 -49.50976,-38.7985 49.275364,38.985508 0 0 1 49.03816,-39.17162 49.275364,38.985508 0 0 1 49.51143,38.79717"
- transform="matrix(1.8365585,0,0,-2.3213008,-185.94774,3011.9298)"
- clip-path="url(#clipPath4161-2)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 525.214,960.36762 308.39321,924.59958"
- id="path3860"
- mask="none"
- clip-path="url(#clipPath4157-7)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 320.91397,1003.6525 516.94324,903.56469"
- id="path3860-4"
- clip-path="url(#clipPath4153-5)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 344.72988,1036.4323 527.87734,853.28489"
- id="path3860-0"
- clip-path="url(#clipPath3945-4-3)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 377.50965,1060.2482 495.09757,829.46899"
- id="path3860-9"
- clip-path="url(#clipPath3941-8-5)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 416.0446,1072.769 456.56262,816.94819"
- id="path3860-48"
- clip-path="url(#clipPath3937-4-2)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 456.56263,1072.769 416.04459,816.94819"
- id="path3860-8"
- clip-path="url(#clipPath3933-5-1)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 495.09756,1060.2482 377.50966,829.46899"
- id="path3860-2"
- clip-path="url(#clipPath3929-7-8)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 527.87734,1036.4323 344.72987,853.28489"
- id="path3860-45"
- clip-path="url(#clipPath3925-1-1)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="M 516.69324,986.4026 320.91397,886.06459"
- id="path3860-5"
- clip-path="url(#clipPath4149-5)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- d="m 269.64681,971.11403 255.8208,-40.51806"
- id="path3860-1"
- clip-path="url(#clipPath4145-7)"
- transform="translate(-5.8029102,1.2637754e-6)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.52646542;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3784"
- d="m 456.52174,924.06726 a 63.623188,68.260872 0 0 1 -63.59068,68.29492 63.623188,68.260872 0 0 1 -63.65568,-68.22518 63.623188,68.260872 0 0 1 63.58916,-68.29654 63.623188,68.260872 0 0 1 63.6572,68.22355"
- transform="matrix(1.3571293,0,0,1.2649251,-102.71706,-224.05677)"
- clip-path="url(#clipPath4141-3)" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.52898347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3014"
- d="m 355.0711,883.7544 a 43.768116,43.913044 0 0 1 -43.41714,44.25856 43.768116,43.913044 0 0 1 -44.1163,-43.55703 43.768116,43.913044 0 0 1 43.40942,-44.26619 43.768116,43.913044 0 0 1 44.1239,43.54927"
- transform="matrix(1.3102225,0,0,1.3058983,22.619124,-209.68422)" />
- <ellipse
- ry="27.10145"
- rx="45.942028"
- cy="943.52161"
- cx="428.84058"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.32540417;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path3982"
- transform="matrix(1.1589718,0,0,1.964674,-66.517043,-908.85019)" />
- <ellipse
- ry="6.9685884"
- rx="7.0710678"
- cy="946.8598"
- cx="437.99628"
- style="fill:#3da0d9;fill-opacity:1;stroke:#ffffff;stroke-width:1.66510093;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="path3858"
- transform="matrix(1.1923927,0,0,1.209928,-91.766473,-200.77)"
- mask="none" />
- <ellipse
- ry="3.1768565"
- rx="3.2280962"
- cy="947.62842"
- cx="438.14999"
- style="fill:#3da0d9;fill-opacity:1;stroke:#ffffff;stroke-width:1.60611057;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="path3854"
- transform="matrix(1.2353218,0,0,1.2552464,-110.75915,-244.64498)" />
- </g>
- </g>
-</svg>
+++ /dev/null
-var app = {
- loadpage: function(modulepage,modulename){
- location.href=modulepage;
- //console.log(modulename);
- //console.log("Load module:" + modulepage);
- // if (modulename){
- // document.getElementById("modulename").innerHTML = modulename;
- // }
- // document.getElementById("moduleframe").setAttribute('src',modulepage);
-
- // if (document.getElementById("sidebar").style.display == 'none'){
- // document.getElementById("main").style.margin = "0 0 0 0";
- // document.getElementById("modulename").style.setProperty("margin-left","0px");
- // }
- // else {
- // document.getElementById("main").style.setProperty("margin-left","210px");
- // document.getElementById("modulename").style.setProperty("margin-left","150px");
- // }
- },
- // sidebarclick: function(modulepage,modulename){
- // app.loadpage(modulepage,modulename);
- // },
- logout: function(){
- req.reqdata("POST",location.href,{"logout":"1"},app.reloadpage);
-
- },
-
- reloadpage(page){
- location.href=location.href;
-
- },
- viewpanel: function(pnlname){
- let panels = document.getElementsByClassName("panel");
- //let toolbars = document.getElementsByClassName("paneltoolbar");
- currentview = pnlname;
- for (let p=0;p<panels.length;p++){
- panels[p].style.display = 'none';
- }
- // for (let p=0;p<toolbars.length;p++){
- // toolbars[p].style.display = 'none';
- // }
- if (document.getElementById('pnl_' + pnlname)){
- document.getElementById('pnl_' + pnlname).style.display = 'block';
- }
- // if (document.getElementById('tlb_' +pnlname)){
- // document.getElementById('tlb_' +pnlname).style.display = 'block';
- // }
- return false;
- },
- viewdialog: function(dlgname){
- if (document.getElementById('dlg_' +dlgname)){
- document.getElementById('dlg_' +dlgname).style.display = 'block';
- } else {
- console.log('dlg_' +dlgname + ' does not exist!');
- }
- }
-}
-
-function reload_page(){
- location.href=location.href;
-}
-
-document.addEventListener("DOMContentLoaded", function() {
- initpage();
- //console.log( "Iframe "+ location.pathname.substring(location.pathname.lastIndexOf("/")) +" ready!" );
- //initpage();
-});
-// function closeSidebar(){
-// document.getElementById("sidebar").style.display = "none";
-// document.getElementById("main").style.margin = "0 0 0 0";
-// document.getElementById("modulename").style.setProperty("margin-left","0px");
-// }
-
-// function openSidebar(){
-// //reload_page();
-// document.getElementById("sidebar").style.display = "block";
-// document.getElementById("main").style.setProperty("margin-left","210px");
-// document.getElementById("modulename").style.setProperty("margin-left","150px");
-// }
\ No newline at end of file
+++ /dev/null
-var fsaveelements = document.querySelectorAll("input.fieldsave");
-for (var i = 0; i < fsaveelements.length; i++) {
- fsaveelements[i].addEventListener('blur', function (event) {
- savefield(event.currentTarget.id);
- }, false);
-}
-
-function savefield(obj){
- // console.log("save");
- var field = {"ident":obj.id};
- //var obj = document.getElementById(objid);
- var fieldname = obj.getAttribute('name');
- var xsp = fieldname.split("_");
- // console.log(xsp);
- // console.log(xsp[0] + "_id");
- var identfield = document.getElementById("id");
- field["ident_" + xsp[0] + "_id"] = identfield.value;
- if (obj.tagName == 'TEXTAREA'){
- field[obj.getAttribute('name')] = obj.innerHTML;
- } else if (obj.tagName == "SELECT"){
- field[obj.getAttribute('name')] = obj.value;
- } else if ((obj.getAttribute('type') == "checkbox")){
- if ($("#" +objid).prop('checked')){
- field[obj.getAttribute('name')] = obj.value;
- } else {
- field[obj.getAttribute('name')] = "";
- }
-
- } else if (obj.getAttribute('type') == "file") {
- if (obj.value != ""){
- alert("file save TODO!")
- return false;
- }
- } else {
- field[obj.getAttribute('name')] = obj.value;
- }
-
- field["fn"] = "savefield";
- // console.log(field);
-
- req.reqdata("POST","index.cgi",field,fieldsaved);
- return false;
-}
-
-function fieldsaved(data){
- console.log("field saved");
- // console.log(data);
-}
\ No newline at end of file
+++ /dev/null
-let form = {
-saveform: function(frmid,aftercallback,clientschema){
- var flds=form.getformcontent(frmid,null);
- flds["fn"] ="saveform";
- flds["schemata"]=clientschema;
- if (clientschema == null){
- flds["schemata"]=schemata;
- }
- delete flds["null"];
- if (aftercallback){
- req.reqdata("POST","index.cgi",flds,aftercallback);
- form.formsaved({});
- }
- else {
- req.reqdata("POST","index.cgi",flds,formsaved);
- }
- return false;
-},
-saveformdata: function(flds,aftercallback,clientschema){
- flds["fn"] ="saveform";
- flds["schemata"]=clientschema;
- if (clientschema == null){
- flds["schemata"]=schemata;
- }
- delete flds["null"];
- if (aftercallback){
- req.reqdata("POST","db.cgi",flds,aftercallback);
- form.formsaved({});
- }
- else {
- req.reqdata("POST","db.cgi",flds,formsaved);
- }
- return false;
-},
-formsaved: function(data){
- var sb = document.getElementById("snackbar");
- sb.className="show green";
- sb.innerHTML = 'Les données ont été sauvegardées!';
- setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000);
- return false;
-},
-// showsnackbar: function(xclass,xmessage){
-// var sb = document.getElementById("snackbar");
-// sb.className="show " + xclass;
-// sb.innerHTML = xmessage;
-// setTimeout(function(){ sb.className = sb.className.replace(sb.className, ""); }, 3000);
-// return false;
-// },
-getformcontent: function(frmid,dataflds){
- var frm = document.getElementById("frm_" + frmid);
- var flds = [];
- if (dataflds){
- flds = dataflds;
- }
- for (var i = 0; i < frm.elements.length; i++) {
- var field = frm.elements[i];
- if ((field.getAttribute("name") != 'null') && (field.tagName == "INPUT" || field.tagName == "SELECT" || field.tagName == "TEXTAREA")){
- if (field.classList.contains("tagedit")){
- var fvalue=field.value.trim();
- var ndata = null;
- if (fvalue != ""){
- ndata = fvalue.split(",");
- }
- flds[field.getAttribute("name")] = ndata;
- }else if (field.tagName == "TEXTAREA" ){
- if (field.classList.contains("richeditarea")){
- flds[field.getAttribute("name")] = tinymce.get(field.id).getContent();
- } else {
- flds[field.getAttribute("name")] = field.innerHTML;
- }
- }else if (field.type == "checkbox" ){
- if (field.checked){
- flds[field.getAttribute("name")] = "1";
- } else {
- flds[field.getAttribute("name")] = "";
- }
- }
- else if (field.tagName == "SELECT" && field.multiple == true){
- var opts = field.selectedOptions;
- var vals = [];
- for (var o in opts){
- if (opts[o].value){
- vals.push(opts[o].value);
- }
- }
- if (vals.length > 0) {
- flds[field.getAttribute("name")] = vals;
- } else {
- flds[field.getAttribute("name")] = "";
- }
- }
- else {
- flds[field.getAttribute("name")] = field.value;
- }
- }
- }
- return flds;
-},
-cleanform: function(frmname){
- var frm = document.getElementById("frm_" + frmname);
- for (var f in frm){
- if (frm[f] && frm[f].id){
- if (frm[f].tagName == 'INPUT'){
- if (frm[f].type == "checkbox"){
- frm[f].checked = false;
- } else if (frm[f].classList.contains("datefield")){
- if (frm[f]._flatpickr){ frm[f]._flatpickr.clear(); }
- } else if (frm[f].classList.contains("choices__input")){
- if (choice[frmname][frm[f].id]){
- choice[frmname][frm[f].id].removeActiveItems();
- }
- } else {
- frm[f].value = "";
- }
- }
- if (frm[f].tagName == 'SELECT'){
- if (frm[f].multiple == true){
- if (frm[f].classList.contains("choices__input")){
- choice[frmname][frm[f].id].removeActiveItems();
- }
- } else {
- frm[f].value = "";
- }
-
- }
- if (frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("richeditarea")){
- tinymce.get(frm[f].id).setContent("");
- } else {
- frm[f].innerHTML = "";
- }
- }
- }
- }
- return false;
-},
-cleanform2: function(frmname,choices){
- var frm = document.getElementById("frm_" + frmname);
- for (var f in frm){
- if (frm[f] && frm[f].id){
- if (frm[f].tagName == 'INPUT'){
- if (frm[f].type == "checkbox"){
- frm[f].checked = false;
- } else if (frm[f].classList.contains("datefield")){
- if (frm[f]._flatpickr){ frm[f]._flatpickr.clear(); }
- } else if (frm[f].classList.contains("choices__input")){
- if (choices[frm[f].id]){
- choices[frm[f].id].removeActiveItems();
- }
- } else {
- frm[f].value = "";
- }
- }
- if (frm[f].tagName == 'SELECT'){
- if (frm[f].multiple == true){
- if (frm[f].classList.contains("choices__input")){
- choices[frm[f].id].removeActiveItems();
- }
- } else {
- frm[f].value = "";
- }
-
- }
- if (frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("richeditarea")){
- tinymce.get(frm[f].id).setContent("");
- } else {
- frm[f].innerHTML = "";
- }
- }
- }
- }
- return false;
-},
-fillformbydataclass2: function(dataclass,choices,data,onblur){
- var frm = document.querySelectorAll('.data_'+ dataclass);
- //console.log("Data to fill");
- //console.log(data);
- if (data){
- for (var f in frm){
- //console.log(frm[f].id);
- if (frm[f].id){
- frm[f].dataset.id=data['id'];
- }
- if (data[frm[f].id]){
- //console.log("=>");
- //console.log(data[frm[f].id]);
- // if (onblur){
- // frm[f].addEventListener('blur',onblur);
- // }
-
- //frm[f].dataset.id=data['id'];
- if (frm[f].tagName == 'INPUT'){
- if (frm[f].type == "checkbox"){
- if (data[frm[f].id] == "1"){
- frm[f].checked = true;
- } else {
- frm[f].checked = false;
- }
- }
- else if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data[frm[f].id]);
- } else if (frm[f].classList.contains("timefield")){
- frm[f]._flatpickr.setDate(data[frm[f].id]);
- }
- else if (frm[f].classList.contains("choices__input")){
- if ((data[frm[f].id] != null) && (data[frm[f].id] != '[""]')){
- if (data[frm[f].id].startsWith('["')){
- choices[frm[f].id].setValue(JSON.parse(data[frm[f].id]));
- }
- else {
- choices[frm[f].id].setChoiceByValue(data[frm[f].id]);
- }
- }
- } else {
- frm[f].value=data[frm[f].id];
- }
- }
- if (frm[f].tagName == 'SELECT'){
- if (frm[f].classList.contains("choices__input")){
- if (frm[f].multiple == true){
- choices[frm[f].id].setChoiceByValue(JSON.parse(data[frm[f].id]));
- }else {
- choices[frm[f].id].setChoiceByValue(data[frm[f].id]);
- }
- } else {
- frm[f].value=data[frm[f].id];
- }
- }
- }
- }
- }
-},
-fillselectlist: function(obj,data,vidcol,vvalcol,defval){
- var sellist = [];
- //obj.clearStore();
- if (data){
- for (var i in data){
- sellist.push({value:data[i][vidcol],text:data[i][vvalcol]});
- }
- }
-
- obj.setData(sellist);
- if (defval){
- obj.set(defval);
- }
- return false;
-},
-// fillsimpleselectlist: function(objid,data,vidcol,vvalcol){
-// var sellist = document.getElementById(objid);
-// sellist.innerHTML = '';
-// if (data){
-// for (var i in data){
-// sellist.append('<option value="'+ data[i][vidcol] +'">'+ data[i][vvalcol]+'</option>');
-// }
-// }
-// //obj.setChoices(sellist, 'value', 'label', true);
-// return false;
-// },
-savefield: function(obj){
- fdata = obj.dataset;
- fdata["save"] = "field";
-
- if (obj.tagName == 'INPUT' || obj.tagName == 'SELECT' || obj.tagName == 'TEXTAREA'){
- if (obj.type == 'checkbox' || obj.type == 'radio'){
- if (obj.checked == true){
- fdata["value"] = obj.value;
- } else {
- fdata["value"] = null;
- }
- }else {
- fdata["value"] = obj.value;
- }
- }
- console.log(fdata);
- //req.reqdata("POST","db.cgi",fdata,record.saveresult);
-}
-
-}
\ No newline at end of file
+++ /dev/null
-function saveform(frmid,aftercallback){
- var flds=getformcontent(frmid,null);
- flds["fn"] ="saveform";
-
- //console.log(flds);
- if (aftercallback){
- req.reqdata("POST","index.cgi",flds,aftercallback);
- formsaved({});
- }
- else {
- req.reqdata("POST","index.cgi",flds,formsaved);
- }
- return false;
-}
-
-function formsaved(data){
- var sb = document.getElementById("snackbar");
- sb.className="show green";
- sb.innerHTML = 'Donnéen goufen gespaichert!';
- setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000);
- return false;
-}
-
-function showsnackbar(xclass,xmessage){
- var sb = document.getElementById("snackbar");
- sb.className="show " + xclass;
- sb.innerHTML = xmessage;
- setTimeout(function(){ sb.className = sb.className.replace(sb.className, ""); }, 3000);
- return false;
-}
-
-function getformcontent(frmid,dataflds){
- var frm = document.getElementById("frm_" + frmid);
- var flds = [];
- if (dataflds){
- flds = dataflds;
- }
-
- for (var i = 0; i < frm.elements.length; i++) {
- var field = frm.elements[i];
- //console.log("field:" + field.id + " Name:" + field.getAttribute("name"));
- if (field.tagName == "INPUT" || field.tagName == "SELECT" || field.tagName == "TEXTAREA"){
- if (field.classList.contains("tagedit")){
- var fvalue=field.value.trim();
- var ndata = null;
- if (fvalue != ""){
- ndata = fvalue.split(",");
- }
-
- flds[field.getAttribute("name")] = ndata;
- }else if (field.tagName == "TEXTAREA" ){
- if (field.classList.contains("richeditarea")){
- flds[field.getAttribute("name")] = tinymce.get(field.id).getContent();
- } else {
- flds[field.getAttribute("name")] = field.innerHTML;
- }
-
- }else if (field.type == "checkbox" ){
- if (field.checked){
- flds[field.getAttribute("name")] = "1";
- } else {
- flds[field.getAttribute("name")] = "";
- }
-
- }
- else {
- if (field.tagName == "SELECT" && field.multiple == true){
- var opts = field.selectedOptions;
- var vals = [];
- for (var o in opts){
- if (opts[o].value){
- vals.push(opts[o].value);
- }
- }
- if (vals.length > 0) {
- flds[field.getAttribute("name")] = vals;
- } else {
- flds[field.getAttribute("name")] = "";
- }
-
- } else {
- flds[field.getAttribute("name")] = field.value;
- }
-
- }
-
- }
- }
- return flds;
-}
\ No newline at end of file
+++ /dev/null
-// document.addEventListener("DOMContentLoaded", function() {
-// //console.log( "Iframe "+ location.pathname.substring(location.pathname.lastIndexOf("/")) +" ready!" );
-// initpage();
-// });
-
-
-function table_setbounds(tblmodule){
- // var cols = $("#tbl_"+tblmodule+" > tbody > tr:first-child").children();
- // var colnum = cols.length -1;
- // console.log("childnum:" + colnum);
- // for (var i=1;i<=colnum;i++){
- // wx = $("#tbl_"+tblmodule+" > tbody > tr:first-child > td:nth-child("+ i +")").width();
- // // wx = wx +3;
- // $("#tbl_"+tblmodule+"_head > thead > tr > th:nth-child("+ i +")").width(wx);
- // }
-}
-
-function sectionload(sectionid,callback){
- var sec = document.querySelectorAll('section');
- for (var i in sec){
- sec[i].style.display = 'none';
- }
- if (callback){
- callback;
- }
- document.getElementById(sectionid).style.display = 'block';
-}
-
-
-function emptyform(id){
- // $("#" + id + "> input,select,textarea").each(
- // function(){
- // console.log("Set Empty Value On" + $(this).id);
- // }
-
- // );
-}
\ No newline at end of file
+++ /dev/null
-var record = {
- redirectpage:null,
- table:null,
- form: null,
- dialog: null,
- data: null,
- parentid: null,
- add: function(page,tbl,datafields,idparent){
- if (datafields){
- record.data = {};
- var adf = datafields.split(',');
- for (var df in adf){
- //console.log("dfid:" + adf[df]);
- var cdf = document.getElementById(adf[df]);
- record.data[cdf.dataset.column + "_" + cdf.dataset.table] = cdf.value;
- }
- }
- if (idparent){
- record.parentid = idparent;
- }
- record.redirectpage = page;
- //form.cleanform(tbl);
- var dd = {"ins":tbl};
- if (record.data){
- dd["data"]= record.data;
- }
- req.reqdata("POST","db.cgi",dd,record.afterrequest);
- },
- confirmremove: function(page,tbl,idparent){
- if (table.selection){
- record.redirectpage = page;
- record.table = tbl;
- record.parentid = idparent;
- document.getElementById("dlgdeleterow").style.display = 'block';
- }
- },
- remove: function(page){
- req.reqdata("POST","db.cgi",{"del":record.table,"id":table.selection},record.afterrequest);
- table.selection = null,
- document.getElementById("dlgdeleterow").style.display = 'none';
- },
- edit: function(page,tbl,reffield){
- console.log(page);
- if (table.selection){
- //record.redirectpage = page;
- if (page.startsWith("dlg")){
- record.dialog= page;
- record.form = tbl;
- form.cleanform(tbl);
- req.reqdata("POST","db.cgi",{"get":tbl,"id":table.selection},record.loaddialog);
-
- } else {
- var refid = table.selection;
- if (reffield){
- refid = document.getElementById(reffield).value;
- }
- app.getpage(page,{"id":refid});
- }
- }
-
- },
- duplicate: function(page,tbl,excl,idparent){
- if (table.selection){
- record.redirectpage = page;
- record.parentid=idparent;
- req.reqdata("POST","db.cgi",{"dupl":tbl,id:table.selection,"exclude":excl},record.afterrequest);
- }
- },
- loaddialog(data){
- fillform(record.form,data,table.selection);
- document.getElementById(record.dialog).style.display = 'block';
- },
- afterrequest: function(data){
- console.log("redirect:" + record.redirectpage + "Parent:" + record.parentid);
- // if (record.redirectpage.startsWith("dlg")){
-
- // }else {
-
- if (record.parentid){
- data["id"] = record.parentid;
- //record.idparent = null;
- }
- console.log("redirectpage:" + record.redirectpage + " -- " + JSON.stringify(data));
- app.getpage(record.redirectpage,data);
- // }
-
- },
- setValue: function(obj,newvalue){
- if (obj.tagName == 'INPUT' || obj.tagName == 'SELECT'){
- if (obj.type == 'checkbox' || obj.type == 'radio'){
- obj.checked = true;
- }else {
- obj.value=newvalue;
- }
- }
- if (obj.tagName == 'TEXTAREA'){
- obj.innerHTML = newvalue;
- }
- record.savefield(obj);
- },
- savefield: function(obj,callback){
-
- fdata = obj.dataset;
- fdata["save"] = "field";
- fdata["schemata"] = schemata;
- if (obj.tagName == 'INPUT' || obj.tagName == 'SELECT' || obj.tagName == 'TEXTAREA'){
- if (obj.type == 'checkbox' || obj.type == 'radio'){
- if (obj.checked == true){
- fdata["value"] = obj.value;
- } else {
- fdata["value"] = null;
- }
- }else {
- fdata["value"] = obj.value;
- }
- }
- req.reqdata("POST","db.cgi",fdata,callback);
- },
-
- save: function(tbl){
-
- console.log(data);
- }
-
-}
\ No newline at end of file
+++ /dev/null
-var api = location.origin + location.pathname.substring(0,location.pathname.lastIndexOf('/backoffice/')) + "/backoffice/";
-// if (location.pathname.indexOf('module') > 0){
-// api = location.origin + location.pathname.substring(0, location.pathname.indexOf('module')) + 'api/';
-// }
-console.log("API:" + api);
-var req = {
- multipartform: function(url,frmdata,callback=null){
- var ret = null;
- var rdata = null;
- var async = false;
- if (callback){
- async=true;
- }
-
- var request = new XMLHttpRequest();
-
- //console.log(frmdata);
- var sendurl = api + url;
- //console.log("sending URL: " + "POST" + " => " +sendurl);
- request.open("POST", sendurl, true);
- request.onload = function(){
- if (request.status >= 200 && request.status <= 400){
- //console.log("Status returned: " + request.status + "resp:" + request.getResponseHeader("Content-Type"));
- if (request.getResponseHeader("Content-Type").indexOf('application/json') == 0){
- var xparse = JSON.parse(request.responseText);
- ret = xparse.result;
- //console.log(ret);
- }
- else {
- ret = request.responseText;
- }
- if (async){
- callback(ret);
- }
- } else {
- alert("ServerERROR:" + request.status + "\n" + request.responseText);
- }
- };
- request.onerror = function(){
- alert("Connection ERROR!\n" + url);
- };
-
- request.setRequestHeader('Content-Type','multipart/form-data; charset=UTF-8');
- request.send(frmdata);
- return ret;
- },
- reqdata: function(method,url,data,callback=null){
-
- var ret = null;
- var rdata = null;
- //var async = true;
- // if (callback){
- // async=true;
- // }
- if (!callback){
- callback=req.asyncNoEvent;
- }
- var request = new XMLHttpRequest();
-
- if (typeof data == 'object'){
- var xdata = [];
- for (var i in data){
- var value = '';
- if (data[i] == null){
- value='';
- } else if (typeof(data[i]) == 'object'){
- value = encodeURIComponent(JSON.stringify(data[i]));
- } else {
- value = encodeURIComponent(data[i]);
- }
- xdata.push(i + "=" + value);
- }
- rdata = xdata.join("&");
- }else {
- rdata = data;
- }
- //console.log("Data to send: " + decodeURIComponent(rdata));
- var sendurl = api + url;
- // if (method.toUpperCase() == 'GET'){
- // sendurl = sendurl + '?' + rdata;
- // }
- console.log("sending URL: " + method + " => " +sendurl + '?' + rdata);
- request.open(method.toUpperCase(), sendurl, true);
- request.onload = function(){
- if (request.status >= 200 && request.status <= 400){
- // console.log("Status returned: " + request.status + "resp:" + request.getResponseHeader("Content-Type"));
- if (request.getResponseHeader("Content-Type").indexOf('application/json') == 0){
- if (request.responseText){
- var xparse = JSON.parse(request.responseText);
- ret = xparse.result;
- } else {
- ret = null;
- }
-
- }else {
- ret = request.responseText;
- //console.log(ret);
- }
- ////console.log("data returned: " + request.responseText);
- //if (async){
- callback(ret);
- //}
-
- } else {
- //console.log("ServerERROR: " + request.status + "\n" + request.responseText);
- alert("ServerERROR:" + request.status + "\n" + request.responseText);
- }
- };
- request.onerror = function(){
- //console.log("ERROR: connection ERROR\n" + url);
- alert("Connection ERROR!\n" + url);
- };
- // if (method.toUpperCase() == 'POST'){
- request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
- request.send(rdata);
- // } else {
- //request.withCredentials = true;
- // request.send();
- // }
- return ret;
- },
- asyncNoEvent: function(data){
- //console.log("query done");
- //console.log(data);
- //console.log("done");
- }
-
-}
\ No newline at end of file
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- background: #fff;
- -webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid #e6e6e6;
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: #e6e6e6;
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #fff;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: #e6e6e6;
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #fff;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- background: transparent;
- color: rgba(0,0,0,0.9);
- fill: rgba(0,0,0,0.9);
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: rgba(0,0,0,0.9);
- fill: rgba(0,0,0,0.9);
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #959ea9;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(57,57,57,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(57,57,57,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(57,57,57,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(0,0,0,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: rgba(0,0,0,0.9);
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: rgba(0,0,0,0.9);
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(0,0,0,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: transparent;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: transparent;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: transparent;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: transparent;
- color: rgba(0,0,0,0.54);
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 #e6e6e6;
- box-shadow: -1px 0 0 #e6e6e6;
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #393939;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e6e6e6;
- border-color: #e6e6e6;
-}
-.flatpickr-day.today {
- border-color: #959ea9;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #959ea9;
- background: #959ea9;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #569ff7;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #569ff7;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #569ff7;
- box-shadow: -10px 0 0 #569ff7;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(57,57,57,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(57,57,57,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
- box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- -webkit-box-shadow: 1px 0 0 #e6e6e6;
- box-shadow: 1px 0 0 #e6e6e6;
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(57,57,57,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #393939;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #393939;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #393939;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #393939;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #eee;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
+++ /dev/null
-/* flatpickr v4.6.2, @license MIT */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.flatpickr = factory());
-}(this, function () { 'use strict';
-
- /*! *****************************************************************************
- Copyright (c) Microsoft Corporation. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of the
- License at http://www.apache.org/licenses/LICENSE-2.0
-
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
- MERCHANTABLITY OR NON-INFRINGEMENT.
-
- See the Apache Version 2.0 License for specific language governing permissions
- and limitations under the License.
- ***************************************************************************** */
-
- var __assign = function() {
- __assign = Object.assign || function __assign(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
-
- var HOOKS = [
- "onChange",
- "onClose",
- "onDayCreate",
- "onDestroy",
- "onKeyDown",
- "onMonthChange",
- "onOpen",
- "onParseConfig",
- "onReady",
- "onValueUpdate",
- "onYearChange",
- "onPreCalendarPosition",
- ];
- var defaults = {
- _disable: [],
- _enable: [],
- allowInput: false,
- altFormat: "F j, Y",
- altInput: false,
- altInputClass: "form-control input",
- animate: typeof window === "object" &&
- window.navigator.userAgent.indexOf("MSIE") === -1,
- ariaDateFormat: "F j, Y",
- clickOpens: true,
- closeOnSelect: true,
- conjunction: ", ",
- dateFormat: "Y-m-d",
- defaultHour: 12,
- defaultMinute: 0,
- defaultSeconds: 0,
- disable: [],
- disableMobile: false,
- enable: [],
- enableSeconds: false,
- enableTime: false,
- errorHandler: function (err) {
- return typeof console !== "undefined" && console.warn(err);
- },
- getWeek: function (givenDate) {
- var date = new Date(givenDate.getTime());
- date.setHours(0, 0, 0, 0);
- // Thursday in current week decides the year.
- date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));
- // January 4 is always in week 1.
- var week1 = new Date(date.getFullYear(), 0, 4);
- // Adjust to Thursday in week 1 and count number of weeks from date to week1.
- return (1 +
- Math.round(((date.getTime() - week1.getTime()) / 86400000 -
- 3 +
- ((week1.getDay() + 6) % 7)) /
- 7));
- },
- hourIncrement: 1,
- ignoredFocusElements: [],
- inline: false,
- locale: "default",
- minuteIncrement: 5,
- mode: "single",
- monthSelectorType: "dropdown",
- nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",
- noCalendar: false,
- now: new Date(),
- onChange: [],
- onClose: [],
- onDayCreate: [],
- onDestroy: [],
- onKeyDown: [],
- onMonthChange: [],
- onOpen: [],
- onParseConfig: [],
- onReady: [],
- onValueUpdate: [],
- onYearChange: [],
- onPreCalendarPosition: [],
- plugins: [],
- position: "auto",
- positionElement: undefined,
- prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",
- shorthandCurrentMonth: false,
- showMonths: 1,
- static: false,
- time_24hr: false,
- weekNumbers: false,
- wrap: false
- };
-
- var english = {
- weekdays: {
- shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- longhand: [
- "Sunday",
- "Monday",
- "Tuesday",
- "Wednesday",
- "Thursday",
- "Friday",
- "Saturday",
- ]
- },
- months: {
- shorthand: [
- "Jan",
- "Feb",
- "Mar",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Oct",
- "Nov",
- "Dec",
- ],
- longhand: [
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December",
- ]
- },
- daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
- firstDayOfWeek: 0,
- ordinal: function (nth) {
- var s = nth % 100;
- if (s > 3 && s < 21)
- return "th";
- switch (s % 10) {
- case 1:
- return "st";
- case 2:
- return "nd";
- case 3:
- return "rd";
- default:
- return "th";
- }
- },
- rangeSeparator: " to ",
- weekAbbreviation: "Wk",
- scrollTitle: "Scroll to increment",
- toggleTitle: "Click to toggle",
- amPM: ["AM", "PM"],
- yearAriaLabel: "Year",
- hourAriaLabel: "Hour",
- minuteAriaLabel: "Minute",
- time_24hr: false
- };
-
- var pad = function (number) { return ("0" + number).slice(-2); };
- var int = function (bool) { return (bool === true ? 1 : 0); };
- /* istanbul ignore next */
- function debounce(func, wait, immediate) {
- if (immediate === void 0) { immediate = false; }
- var timeout;
- return function () {
- var context = this, args = arguments;
- timeout !== null && clearTimeout(timeout);
- timeout = window.setTimeout(function () {
- timeout = null;
- if (!immediate)
- func.apply(context, args);
- }, wait);
- if (immediate && !timeout)
- func.apply(context, args);
- };
- }
- var arrayify = function (obj) {
- return obj instanceof Array ? obj : [obj];
- };
-
- function toggleClass(elem, className, bool) {
- if (bool === true)
- return elem.classList.add(className);
- elem.classList.remove(className);
- }
- function createElement(tag, className, content) {
- var e = window.document.createElement(tag);
- className = className || "";
- content = content || "";
- e.className = className;
- if (content !== undefined)
- e.textContent = content;
- return e;
- }
- function clearNode(node) {
- while (node.firstChild)
- node.removeChild(node.firstChild);
- }
- function findParent(node, condition) {
- if (condition(node))
- return node;
- else if (node.parentNode)
- return findParent(node.parentNode, condition);
- return undefined; // nothing found
- }
- function createNumberInput(inputClassName, opts) {
- var wrapper = createElement("div", "numInputWrapper"), numInput = createElement("input", "numInput " + inputClassName), arrowUp = createElement("span", "arrowUp"), arrowDown = createElement("span", "arrowDown");
- if (navigator.userAgent.indexOf("MSIE 9.0") === -1) {
- numInput.type = "number";
- }
- else {
- numInput.type = "text";
- numInput.pattern = "\\d*";
- }
- if (opts !== undefined)
- for (var key in opts)
- numInput.setAttribute(key, opts[key]);
- wrapper.appendChild(numInput);
- wrapper.appendChild(arrowUp);
- wrapper.appendChild(arrowDown);
- return wrapper;
- }
- function getEventTarget(event) {
- if (typeof event.composedPath === "function") {
- var path = event.composedPath();
- return path[0];
- }
- return event.target;
- }
-
- var doNothing = function () { return undefined; };
- var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; };
- var revFormat = {
- D: doNothing,
- F: function (dateObj, monthName, locale) {
- dateObj.setMonth(locale.months.longhand.indexOf(monthName));
- },
- G: function (dateObj, hour) {
- dateObj.setHours(parseFloat(hour));
- },
- H: function (dateObj, hour) {
- dateObj.setHours(parseFloat(hour));
- },
- J: function (dateObj, day) {
- dateObj.setDate(parseFloat(day));
- },
- K: function (dateObj, amPM, locale) {
- dateObj.setHours((dateObj.getHours() % 12) +
- 12 * int(new RegExp(locale.amPM[1], "i").test(amPM)));
- },
- M: function (dateObj, shortMonth, locale) {
- dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));
- },
- S: function (dateObj, seconds) {
- dateObj.setSeconds(parseFloat(seconds));
- },
- U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },
- W: function (dateObj, weekNum, locale) {
- var weekNumber = parseInt(weekNum);
- var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);
- date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);
- return date;
- },
- Y: function (dateObj, year) {
- dateObj.setFullYear(parseFloat(year));
- },
- Z: function (_, ISODate) { return new Date(ISODate); },
- d: function (dateObj, day) {
- dateObj.setDate(parseFloat(day));
- },
- h: function (dateObj, hour) {
- dateObj.setHours(parseFloat(hour));
- },
- i: function (dateObj, minutes) {
- dateObj.setMinutes(parseFloat(minutes));
- },
- j: function (dateObj, day) {
- dateObj.setDate(parseFloat(day));
- },
- l: doNothing,
- m: function (dateObj, month) {
- dateObj.setMonth(parseFloat(month) - 1);
- },
- n: function (dateObj, month) {
- dateObj.setMonth(parseFloat(month) - 1);
- },
- s: function (dateObj, seconds) {
- dateObj.setSeconds(parseFloat(seconds));
- },
- u: function (_, unixMillSeconds) {
- return new Date(parseFloat(unixMillSeconds));
- },
- w: doNothing,
- y: function (dateObj, year) {
- dateObj.setFullYear(2000 + parseFloat(year));
- }
- };
- var tokenRegex = {
- D: "(\\w+)",
- F: "(\\w+)",
- G: "(\\d\\d|\\d)",
- H: "(\\d\\d|\\d)",
- J: "(\\d\\d|\\d)\\w+",
- K: "",
- M: "(\\w+)",
- S: "(\\d\\d|\\d)",
- U: "(.+)",
- W: "(\\d\\d|\\d)",
- Y: "(\\d{4})",
- Z: "(.+)",
- d: "(\\d\\d|\\d)",
- h: "(\\d\\d|\\d)",
- i: "(\\d\\d|\\d)",
- j: "(\\d\\d|\\d)",
- l: "(\\w+)",
- m: "(\\d\\d|\\d)",
- n: "(\\d\\d|\\d)",
- s: "(\\d\\d|\\d)",
- u: "(.+)",
- w: "(\\d\\d|\\d)",
- y: "(\\d{2})"
- };
- var formats = {
- // get the date in UTC
- Z: function (date) { return date.toISOString(); },
- // weekday name, short, e.g. Thu
- D: function (date, locale, options) {
- return locale.weekdays.shorthand[formats.w(date, locale, options)];
- },
- // full month name e.g. January
- F: function (date, locale, options) {
- return monthToStr(formats.n(date, locale, options) - 1, false, locale);
- },
- // padded hour 1-12
- G: function (date, locale, options) {
- return pad(formats.h(date, locale, options));
- },
- // hours with leading zero e.g. 03
- H: function (date) { return pad(date.getHours()); },
- // day (1-30) with ordinal suffix e.g. 1st, 2nd
- J: function (date, locale) {
- return locale.ordinal !== undefined
- ? date.getDate() + locale.ordinal(date.getDate())
- : date.getDate();
- },
- // AM/PM
- K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },
- // shorthand month e.g. Jan, Sep, Oct, etc
- M: function (date, locale) {
- return monthToStr(date.getMonth(), true, locale);
- },
- // seconds 00-59
- S: function (date) { return pad(date.getSeconds()); },
- // unix timestamp
- U: function (date) { return date.getTime() / 1000; },
- W: function (date, _, options) {
- return options.getWeek(date);
- },
- // full year e.g. 2016
- Y: function (date) { return date.getFullYear(); },
- // day in month, padded (01-30)
- d: function (date) { return pad(date.getDate()); },
- // hour from 1-12 (am/pm)
- h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },
- // minutes, padded with leading zero e.g. 09
- i: function (date) { return pad(date.getMinutes()); },
- // day in month (1-30)
- j: function (date) { return date.getDate(); },
- // weekday name, full, e.g. Thursday
- l: function (date, locale) {
- return locale.weekdays.longhand[date.getDay()];
- },
- // padded month number (01-12)
- m: function (date) { return pad(date.getMonth() + 1); },
- // the month number (1-12)
- n: function (date) { return date.getMonth() + 1; },
- // seconds 0-59
- s: function (date) { return date.getSeconds(); },
- // Unix Milliseconds
- u: function (date) { return date.getTime(); },
- // number of the day of the week
- w: function (date) { return date.getDay(); },
- // last two digits of year e.g. 16 for 2016
- y: function (date) { return String(date.getFullYear()).substring(2); }
- };
-
- var createDateFormatter = function (_a) {
- var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;
- return function (dateObj, frmt, overrideLocale) {
- var locale = overrideLocale || l10n;
- if (config.formatDate !== undefined) {
- return config.formatDate(dateObj, frmt, locale);
- }
- return frmt
- .split("")
- .map(function (c, i, arr) {
- return formats[c] && arr[i - 1] !== "\\"
- ? formats[c](dateObj, locale, config)
- : c !== "\\"
- ? c
- : "";
- })
- .join("");
- };
- };
- var createDateParser = function (_a) {
- var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;
- return function (date, givenFormat, timeless, customLocale) {
- if (date !== 0 && !date)
- return undefined;
- var locale = customLocale || l10n;
- var parsedDate;
- var dateOrig = date;
- if (date instanceof Date)
- parsedDate = new Date(date.getTime());
- else if (typeof date !== "string" &&
- date.toFixed !== undefined // timestamp
- )
- // create a copy
- parsedDate = new Date(date);
- else if (typeof date === "string") {
- // date string
- var format = givenFormat || (config || defaults).dateFormat;
- var datestr = String(date).trim();
- if (datestr === "today") {
- parsedDate = new Date();
- timeless = true;
- }
- else if (/Z$/.test(datestr) ||
- /GMT$/.test(datestr) // datestrings w/ timezone
- )
- parsedDate = new Date(date);
- else if (config && config.parseDate)
- parsedDate = config.parseDate(date, format);
- else {
- parsedDate =
- !config || !config.noCalendar
- ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)
- : new Date(new Date().setHours(0, 0, 0, 0));
- var matched = void 0, ops = [];
- for (var i = 0, matchIndex = 0, regexStr = ""; i < format.length; i++) {
- var token_1 = format[i];
- var isBackSlash = token_1 === "\\";
- var escaped = format[i - 1] === "\\" || isBackSlash;
- if (tokenRegex[token_1] && !escaped) {
- regexStr += tokenRegex[token_1];
- var match = new RegExp(regexStr).exec(date);
- if (match && (matched = true)) {
- ops[token_1 !== "Y" ? "push" : "unshift"]({
- fn: revFormat[token_1],
- val: match[++matchIndex]
- });
- }
- }
- else if (!isBackSlash)
- regexStr += "."; // don't really care
- ops.forEach(function (_a) {
- var fn = _a.fn, val = _a.val;
- return (parsedDate = fn(parsedDate, val, locale) || parsedDate);
- });
- }
- parsedDate = matched ? parsedDate : undefined;
- }
- }
- /* istanbul ignore next */
- if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {
- config.errorHandler(new Error("Invalid date provided: " + dateOrig));
- return undefined;
- }
- if (timeless === true)
- parsedDate.setHours(0, 0, 0, 0);
- return parsedDate;
- };
- };
- /**
- * Compute the difference in dates, measured in ms
- */
- function compareDates(date1, date2, timeless) {
- if (timeless === void 0) { timeless = true; }
- if (timeless !== false) {
- return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -
- new Date(date2.getTime()).setHours(0, 0, 0, 0));
- }
- return date1.getTime() - date2.getTime();
- }
- var isBetween = function (ts, ts1, ts2) {
- return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);
- };
- var duration = {
- DAY: 86400000
- };
-
- if (typeof Object.assign !== "function") {
- Object.assign = function (target) {
- var args = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- args[_i - 1] = arguments[_i];
- }
- if (!target) {
- throw TypeError("Cannot convert undefined or null to object");
- }
- var _loop_1 = function (source) {
- if (source) {
- Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });
- }
- };
- for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
- var source = args_1[_a];
- _loop_1(source);
- }
- return target;
- };
- }
-
- var DEBOUNCED_CHANGE_MS = 300;
- function FlatpickrInstance(element, instanceConfig) {
- var self = {
- config: __assign({}, defaults, flatpickr.defaultConfig),
- l10n: english
- };
- self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });
- self._handlers = [];
- self.pluginElements = [];
- self.loadedPlugins = [];
- self._bind = bind;
- self._setHoursFromDate = setHoursFromDate;
- self._positionCalendar = positionCalendar;
- self.changeMonth = changeMonth;
- self.changeYear = changeYear;
- self.clear = clear;
- self.close = close;
- self._createElement = createElement;
- self.destroy = destroy;
- self.isEnabled = isEnabled;
- self.jumpToDate = jumpToDate;
- self.open = open;
- self.redraw = redraw;
- self.set = set;
- self.setDate = setDate;
- self.toggle = toggle;
- function setupHelperFunctions() {
- self.utils = {
- getDaysInMonth: function (month, yr) {
- if (month === void 0) { month = self.currentMonth; }
- if (yr === void 0) { yr = self.currentYear; }
- if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))
- return 29;
- return self.l10n.daysInMonth[month];
- }
- };
- }
- function init() {
- self.element = self.input = element;
- self.isOpen = false;
- parseConfig();
- setupLocale();
- setupInputs();
- setupDates();
- setupHelperFunctions();
- if (!self.isMobile)
- build();
- bindEvents();
- if (self.selectedDates.length || self.config.noCalendar) {
- if (self.config.enableTime) {
- setHoursFromDate(self.config.noCalendar
- ? self.latestSelectedDateObj || self.config.minDate
- : undefined);
- }
- updateValue(false);
- }
- setCalendarWidth();
- self.showTimeInput =
- self.selectedDates.length > 0 || self.config.noCalendar;
- var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
- /* TODO: investigate this further
-
- Currently, there is weird positioning behavior in safari causing pages
- to scroll up. https://github.com/chmln/flatpickr/issues/563
-
- However, most browsers are not Safari and positioning is expensive when used
- in scale. https://github.com/chmln/flatpickr/issues/1096
- */
- if (!self.isMobile && isSafari) {
- positionCalendar();
- }
- triggerEvent("onReady");
- }
- function bindToInstance(fn) {
- return fn.bind(self);
- }
- function setCalendarWidth() {
- var config = self.config;
- if (config.weekNumbers === false && config.showMonths === 1)
- return;
- else if (config.noCalendar !== true) {
- window.requestAnimationFrame(function () {
- if (self.calendarContainer !== undefined) {
- self.calendarContainer.style.visibility = "hidden";
- self.calendarContainer.style.display = "block";
- }
- if (self.daysContainer !== undefined) {
- var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;
- self.daysContainer.style.width = daysWidth + "px";
- self.calendarContainer.style.width =
- daysWidth +
- (self.weekWrapper !== undefined
- ? self.weekWrapper.offsetWidth
- : 0) +
- "px";
- self.calendarContainer.style.removeProperty("visibility");
- self.calendarContainer.style.removeProperty("display");
- }
- });
- }
- }
- /**
- * The handler for all events targeting the time inputs
- */
- function updateTime(e) {
- if (self.selectedDates.length === 0) {
- setDefaultTime();
- }
- if (e !== undefined && e.type !== "blur") {
- timeWrapper(e);
- }
- var prevValue = self._input.value;
- setHoursFromInputs();
- updateValue();
- if (self._input.value !== prevValue) {
- self._debouncedChange();
- }
- }
- function ampm2military(hour, amPM) {
- return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);
- }
- function military2ampm(hour) {
- switch (hour % 24) {
- case 0:
- case 12:
- return 12;
- default:
- return hour % 12;
- }
- }
- /**
- * Syncs the selected date object time with user's time input
- */
- function setHoursFromInputs() {
- if (self.hourElement === undefined || self.minuteElement === undefined)
- return;
- var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined
- ? (parseInt(self.secondElement.value, 10) || 0) % 60
- : 0;
- if (self.amPM !== undefined) {
- hours = ampm2military(hours, self.amPM.textContent);
- }
- var limitMinHours = self.config.minTime !== undefined ||
- (self.config.minDate &&
- self.minDateHasTime &&
- self.latestSelectedDateObj &&
- compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===
- 0);
- var limitMaxHours = self.config.maxTime !== undefined ||
- (self.config.maxDate &&
- self.maxDateHasTime &&
- self.latestSelectedDateObj &&
- compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===
- 0);
- if (limitMaxHours) {
- var maxTime = self.config.maxTime !== undefined
- ? self.config.maxTime
- : self.config.maxDate;
- hours = Math.min(hours, maxTime.getHours());
- if (hours === maxTime.getHours())
- minutes = Math.min(minutes, maxTime.getMinutes());
- if (minutes === maxTime.getMinutes())
- seconds = Math.min(seconds, maxTime.getSeconds());
- }
- if (limitMinHours) {
- var minTime = self.config.minTime !== undefined
- ? self.config.minTime
- : self.config.minDate;
- hours = Math.max(hours, minTime.getHours());
- if (hours === minTime.getHours())
- minutes = Math.max(minutes, minTime.getMinutes());
- if (minutes === minTime.getMinutes())
- seconds = Math.max(seconds, minTime.getSeconds());
- }
- setHours(hours, minutes, seconds);
- }
- /**
- * Syncs time input values with a date
- */
- function setHoursFromDate(dateObj) {
- var date = dateObj || self.latestSelectedDateObj;
- if (date)
- setHours(date.getHours(), date.getMinutes(), date.getSeconds());
- }
- function setDefaultHours() {
- var hours = self.config.defaultHour;
- var minutes = self.config.defaultMinute;
- var seconds = self.config.defaultSeconds;
- if (self.config.minDate !== undefined) {
- var minHr = self.config.minDate.getHours();
- var minMinutes = self.config.minDate.getMinutes();
- hours = Math.max(hours, minHr);
- if (hours === minHr)
- minutes = Math.max(minMinutes, minutes);
- if (hours === minHr && minutes === minMinutes)
- seconds = self.config.minDate.getSeconds();
- }
- if (self.config.maxDate !== undefined) {
- var maxHr = self.config.maxDate.getHours();
- var maxMinutes = self.config.maxDate.getMinutes();
- hours = Math.min(hours, maxHr);
- if (hours === maxHr)
- minutes = Math.min(maxMinutes, minutes);
- if (hours === maxHr && minutes === maxMinutes)
- seconds = self.config.maxDate.getSeconds();
- }
- setHours(hours, minutes, seconds);
- }
- /**
- * Sets the hours, minutes, and optionally seconds
- * of the latest selected date object and the
- * corresponding time inputs
- * @param {Number} hours the hour. whether its military
- * or am-pm gets inferred from config
- * @param {Number} minutes the minutes
- * @param {Number} seconds the seconds (optional)
- */
- function setHours(hours, minutes, seconds) {
- if (self.latestSelectedDateObj !== undefined) {
- self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);
- }
- if (!self.hourElement || !self.minuteElement || self.isMobile)
- return;
- self.hourElement.value = pad(!self.config.time_24hr
- ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)
- : hours);
- self.minuteElement.value = pad(minutes);
- if (self.amPM !== undefined)
- self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];
- if (self.secondElement !== undefined)
- self.secondElement.value = pad(seconds);
- }
- /**
- * Handles the year input and incrementing events
- * @param {Event} event the keyup or increment event
- */
- function onYearInput(event) {
- var year = parseInt(event.target.value) + (event.delta || 0);
- if (year / 1000 > 1 ||
- (event.key === "Enter" && !/[^\d]/.test(year.toString()))) {
- changeYear(year);
- }
- }
- /**
- * Essentially addEventListener + tracking
- * @param {Element} element the element to addEventListener to
- * @param {String} event the event name
- * @param {Function} handler the event handler
- */
- function bind(element, event, handler, options) {
- if (event instanceof Array)
- return event.forEach(function (ev) { return bind(element, ev, handler, options); });
- if (element instanceof Array)
- return element.forEach(function (el) { return bind(el, event, handler, options); });
- element.addEventListener(event, handler, options);
- self._handlers.push({
- element: element,
- event: event,
- handler: handler,
- options: options
- });
- }
- /**
- * A mousedown handler which mimics click.
- * Minimizes latency, since we don't need to wait for mouseup in most cases.
- * Also, avoids handling right clicks.
- *
- * @param {Function} handler the event handler
- */
- function onClick(handler) {
- return function (evt) {
- evt.which === 1 && handler(evt);
- };
- }
- function triggerChange() {
- triggerEvent("onChange");
- }
- /**
- * Adds all the necessary event listeners
- */
- function bindEvents() {
- if (self.config.wrap) {
- ["open", "close", "toggle", "clear"].forEach(function (evt) {
- Array.prototype.forEach.call(self.element.querySelectorAll("[data-" + evt + "]"), function (el) {
- return bind(el, "click", self[evt]);
- });
- });
- }
- if (self.isMobile) {
- setupMobile();
- return;
- }
- var debouncedResize = debounce(onResize, 50);
- self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);
- if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))
- bind(self.daysContainer, "mouseover", function (e) {
- if (self.config.mode === "range")
- onMouseOver(e.target);
- });
- bind(window.document.body, "keydown", onKeyDown);
- if (!self.config.inline && !self.config.static)
- bind(window, "resize", debouncedResize);
- if (window.ontouchstart !== undefined)
- bind(window.document, "touchstart", documentClick);
- else
- bind(window.document, "mousedown", onClick(documentClick));
- bind(window.document, "focus", documentClick, { capture: true });
- if (self.config.clickOpens === true) {
- bind(self._input, "focus", self.open);
- bind(self._input, "mousedown", onClick(self.open));
- }
- if (self.daysContainer !== undefined) {
- bind(self.monthNav, "mousedown", onClick(onMonthNavClick));
- bind(self.monthNav, ["keyup", "increment"], onYearInput);
- bind(self.daysContainer, "mousedown", onClick(selectDate));
- }
- if (self.timeContainer !== undefined &&
- self.minuteElement !== undefined &&
- self.hourElement !== undefined) {
- var selText = function (e) {
- return e.target.select();
- };
- bind(self.timeContainer, ["increment"], updateTime);
- bind(self.timeContainer, "blur", updateTime, { capture: true });
- bind(self.timeContainer, "mousedown", onClick(timeIncrement));
- bind([self.hourElement, self.minuteElement], ["focus", "click"], selText);
- if (self.secondElement !== undefined)
- bind(self.secondElement, "focus", function () { return self.secondElement && self.secondElement.select(); });
- if (self.amPM !== undefined) {
- bind(self.amPM, "mousedown", onClick(function (e) {
- updateTime(e);
- triggerChange();
- }));
- }
- }
- }
- /**
- * Set the calendar view to a particular date.
- * @param {Date} jumpDate the date to set the view to
- * @param {boolean} triggerChange if change events should be triggered
- */
- function jumpToDate(jumpDate, triggerChange) {
- var jumpTo = jumpDate !== undefined
- ? self.parseDate(jumpDate)
- : self.latestSelectedDateObj ||
- (self.config.minDate && self.config.minDate > self.now
- ? self.config.minDate
- : self.config.maxDate && self.config.maxDate < self.now
- ? self.config.maxDate
- : self.now);
- var oldYear = self.currentYear;
- var oldMonth = self.currentMonth;
- try {
- if (jumpTo !== undefined) {
- self.currentYear = jumpTo.getFullYear();
- self.currentMonth = jumpTo.getMonth();
- }
- }
- catch (e) {
- /* istanbul ignore next */
- e.message = "Invalid date supplied: " + jumpTo;
- self.config.errorHandler(e);
- }
- if (triggerChange && self.currentYear !== oldYear) {
- triggerEvent("onYearChange");
- buildMonthSwitch();
- }
- if (triggerChange &&
- (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {
- triggerEvent("onMonthChange");
- }
- self.redraw();
- }
- /**
- * The up/down arrow handler for time inputs
- * @param {Event} e the click event
- */
- function timeIncrement(e) {
- if (~e.target.className.indexOf("arrow"))
- incrementNumInput(e, e.target.classList.contains("arrowUp") ? 1 : -1);
- }
- /**
- * Increments/decrements the value of input associ-
- * ated with the up/down arrow by dispatching an
- * "increment" event on the input.
- *
- * @param {Event} e the click event
- * @param {Number} delta the diff (usually 1 or -1)
- * @param {Element} inputElem the input element
- */
- function incrementNumInput(e, delta, inputElem) {
- var target = e && e.target;
- var input = inputElem ||
- (target && target.parentNode && target.parentNode.firstChild);
- var event = createEvent("increment");
- event.delta = delta;
- input && input.dispatchEvent(event);
- }
- function build() {
- var fragment = window.document.createDocumentFragment();
- self.calendarContainer = createElement("div", "flatpickr-calendar");
- self.calendarContainer.tabIndex = -1;
- if (!self.config.noCalendar) {
- fragment.appendChild(buildMonthNav());
- self.innerContainer = createElement("div", "flatpickr-innerContainer");
- if (self.config.weekNumbers) {
- var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;
- self.innerContainer.appendChild(weekWrapper);
- self.weekNumbers = weekNumbers;
- self.weekWrapper = weekWrapper;
- }
- self.rContainer = createElement("div", "flatpickr-rContainer");
- self.rContainer.appendChild(buildWeekdays());
- if (!self.daysContainer) {
- self.daysContainer = createElement("div", "flatpickr-days");
- self.daysContainer.tabIndex = -1;
- }
- buildDays();
- self.rContainer.appendChild(self.daysContainer);
- self.innerContainer.appendChild(self.rContainer);
- fragment.appendChild(self.innerContainer);
- }
- if (self.config.enableTime) {
- fragment.appendChild(buildTime());
- }
- toggleClass(self.calendarContainer, "rangeMode", self.config.mode === "range");
- toggleClass(self.calendarContainer, "animate", self.config.animate === true);
- toggleClass(self.calendarContainer, "multiMonth", self.config.showMonths > 1);
- self.calendarContainer.appendChild(fragment);
- var customAppend = self.config.appendTo !== undefined &&
- self.config.appendTo.nodeType !== undefined;
- if (self.config.inline || self.config.static) {
- self.calendarContainer.classList.add(self.config.inline ? "inline" : "static");
- if (self.config.inline) {
- if (!customAppend && self.element.parentNode)
- self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);
- else if (self.config.appendTo !== undefined)
- self.config.appendTo.appendChild(self.calendarContainer);
- }
- if (self.config.static) {
- var wrapper = createElement("div", "flatpickr-wrapper");
- if (self.element.parentNode)
- self.element.parentNode.insertBefore(wrapper, self.element);
- wrapper.appendChild(self.element);
- if (self.altInput)
- wrapper.appendChild(self.altInput);
- wrapper.appendChild(self.calendarContainer);
- }
- }
- if (!self.config.static && !self.config.inline)
- (self.config.appendTo !== undefined
- ? self.config.appendTo
- : window.document.body).appendChild(self.calendarContainer);
- }
- function createDay(className, date, dayNumber, i) {
- var dateIsEnabled = isEnabled(date, true), dayElement = createElement("span", "flatpickr-day " + className, date.getDate().toString());
- dayElement.dateObj = date;
- dayElement.$i = i;
- dayElement.setAttribute("aria-label", self.formatDate(date, self.config.ariaDateFormat));
- if (className.indexOf("hidden") === -1 &&
- compareDates(date, self.now) === 0) {
- self.todayDateElem = dayElement;
- dayElement.classList.add("today");
- dayElement.setAttribute("aria-current", "date");
- }
- if (dateIsEnabled) {
- dayElement.tabIndex = -1;
- if (isDateSelected(date)) {
- dayElement.classList.add("selected");
- self.selectedDateElem = dayElement;
- if (self.config.mode === "range") {
- toggleClass(dayElement, "startRange", self.selectedDates[0] &&
- compareDates(date, self.selectedDates[0], true) === 0);
- toggleClass(dayElement, "endRange", self.selectedDates[1] &&
- compareDates(date, self.selectedDates[1], true) === 0);
- if (className === "nextMonthDay")
- dayElement.classList.add("inRange");
- }
- }
- }
- else {
- dayElement.classList.add("flatpickr-disabled");
- }
- if (self.config.mode === "range") {
- if (isDateInRange(date) && !isDateSelected(date))
- dayElement.classList.add("inRange");
- }
- if (self.weekNumbers &&
- self.config.showMonths === 1 &&
- className !== "prevMonthDay" &&
- dayNumber % 7 === 1) {
- self.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + self.config.getWeek(date) + "</span>");
- }
- triggerEvent("onDayCreate", dayElement);
- return dayElement;
- }
- function focusOnDayElem(targetNode) {
- targetNode.focus();
- if (self.config.mode === "range")
- onMouseOver(targetNode);
- }
- function getFirstAvailableDay(delta) {
- var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;
- var endMonth = delta > 0 ? self.config.showMonths : -1;
- for (var m = startMonth; m != endMonth; m += delta) {
- var month = self.daysContainer.children[m];
- var startIndex = delta > 0 ? 0 : month.children.length - 1;
- var endIndex = delta > 0 ? month.children.length : -1;
- for (var i = startIndex; i != endIndex; i += delta) {
- var c = month.children[i];
- if (c.className.indexOf("hidden") === -1 && isEnabled(c.dateObj))
- return c;
- }
- }
- return undefined;
- }
- function getNextAvailableDay(current, delta) {
- var givenMonth = current.className.indexOf("Month") === -1
- ? current.dateObj.getMonth()
- : self.currentMonth;
- var endMonth = delta > 0 ? self.config.showMonths : -1;
- var loopDelta = delta > 0 ? 1 : -1;
- for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {
- var month = self.daysContainer.children[m];
- var startIndex = givenMonth - self.currentMonth === m
- ? current.$i + delta
- : delta < 0
- ? month.children.length - 1
- : 0;
- var numMonthDays = month.children.length;
- for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {
- var c = month.children[i];
- if (c.className.indexOf("hidden") === -1 &&
- isEnabled(c.dateObj) &&
- Math.abs(current.$i - i) >= Math.abs(delta))
- return focusOnDayElem(c);
- }
- }
- self.changeMonth(loopDelta);
- focusOnDay(getFirstAvailableDay(loopDelta), 0);
- return undefined;
- }
- function focusOnDay(current, offset) {
- var dayFocused = isInView(document.activeElement || document.body);
- var startElem = current !== undefined
- ? current
- : dayFocused
- ? document.activeElement
- : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)
- ? self.selectedDateElem
- : self.todayDateElem !== undefined && isInView(self.todayDateElem)
- ? self.todayDateElem
- : getFirstAvailableDay(offset > 0 ? 1 : -1);
- if (startElem === undefined)
- return self._input.focus();
- if (!dayFocused)
- return focusOnDayElem(startElem);
- getNextAvailableDay(startElem, offset);
- }
- function buildMonthDays(year, month) {
- var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;
- var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12);
- var daysInMonth = self.utils.getDaysInMonth(month), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? "prevMonthDay hidden" : "prevMonthDay", nextMonthDayClass = isMultiMonth ? "nextMonthDay hidden" : "nextMonthDay";
- var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;
- // prepend days from the ending of previous month
- for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {
- days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));
- }
- // Start at 1 since there is no 0th day
- for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {
- days.appendChild(createDay("", new Date(year, month, dayNumber), dayNumber, dayIndex));
- }
- // append days from the next month
- for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&
- (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {
- days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));
- }
- //updateNavigationCurrentMonth();
- var dayContainer = createElement("div", "dayContainer");
- dayContainer.appendChild(days);
- return dayContainer;
- }
- function buildDays() {
- if (self.daysContainer === undefined) {
- return;
- }
- clearNode(self.daysContainer);
- // TODO: week numbers for each month
- if (self.weekNumbers)
- clearNode(self.weekNumbers);
- var frag = document.createDocumentFragment();
- for (var i = 0; i < self.config.showMonths; i++) {
- var d = new Date(self.currentYear, self.currentMonth, 1);
- d.setMonth(self.currentMonth + i);
- frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));
- }
- self.daysContainer.appendChild(frag);
- self.days = self.daysContainer.firstChild;
- if (self.config.mode === "range" && self.selectedDates.length === 1) {
- onMouseOver();
- }
- }
- function buildMonthSwitch() {
- if (self.config.showMonths > 1 ||
- self.config.monthSelectorType !== "dropdown")
- return;
- var shouldBuildMonth = function (month) {
- if (self.config.minDate !== undefined &&
- self.currentYear === self.config.minDate.getFullYear() &&
- month < self.config.minDate.getMonth()) {
- return false;
- }
- return !(self.config.maxDate !== undefined &&
- self.currentYear === self.config.maxDate.getFullYear() &&
- month > self.config.maxDate.getMonth());
- };
- self.monthsDropdownContainer.tabIndex = -1;
- self.monthsDropdownContainer.innerHTML = "";
- for (var i = 0; i < 12; i++) {
- if (!shouldBuildMonth(i))
- continue;
- var month = createElement("option", "flatpickr-monthDropdown-month");
- month.value = new Date(self.currentYear, i).getMonth().toString();
- month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);
- month.tabIndex = -1;
- if (self.currentMonth === i) {
- month.selected = true;
- }
- self.monthsDropdownContainer.appendChild(month);
- }
- }
- function buildMonth() {
- var container = createElement("div", "flatpickr-month");
- var monthNavFragment = window.document.createDocumentFragment();
- var monthElement;
- if (self.config.showMonths > 1 ||
- self.config.monthSelectorType === "static") {
- monthElement = createElement("span", "cur-month");
- }
- else {
- self.monthsDropdownContainer = createElement("select", "flatpickr-monthDropdown-months");
- bind(self.monthsDropdownContainer, "change", function (e) {
- var target = e.target;
- var selectedMonth = parseInt(target.value, 10);
- self.changeMonth(selectedMonth - self.currentMonth);
- triggerEvent("onMonthChange");
- });
- buildMonthSwitch();
- monthElement = self.monthsDropdownContainer;
- }
- var yearInput = createNumberInput("cur-year", { tabindex: "-1" });
- var yearElement = yearInput.getElementsByTagName("input")[0];
- yearElement.setAttribute("aria-label", self.l10n.yearAriaLabel);
- if (self.config.minDate) {
- yearElement.setAttribute("min", self.config.minDate.getFullYear().toString());
- }
- if (self.config.maxDate) {
- yearElement.setAttribute("max", self.config.maxDate.getFullYear().toString());
- yearElement.disabled =
- !!self.config.minDate &&
- self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();
- }
- var currentMonth = createElement("div", "flatpickr-current-month");
- currentMonth.appendChild(monthElement);
- currentMonth.appendChild(yearInput);
- monthNavFragment.appendChild(currentMonth);
- container.appendChild(monthNavFragment);
- return {
- container: container,
- yearElement: yearElement,
- monthElement: monthElement
- };
- }
- function buildMonths() {
- clearNode(self.monthNav);
- self.monthNav.appendChild(self.prevMonthNav);
- if (self.config.showMonths) {
- self.yearElements = [];
- self.monthElements = [];
- }
- for (var m = self.config.showMonths; m--;) {
- var month = buildMonth();
- self.yearElements.push(month.yearElement);
- self.monthElements.push(month.monthElement);
- self.monthNav.appendChild(month.container);
- }
- self.monthNav.appendChild(self.nextMonthNav);
- }
- function buildMonthNav() {
- self.monthNav = createElement("div", "flatpickr-months");
- self.yearElements = [];
- self.monthElements = [];
- self.prevMonthNav = createElement("span", "flatpickr-prev-month");
- self.prevMonthNav.innerHTML = self.config.prevArrow;
- self.nextMonthNav = createElement("span", "flatpickr-next-month");
- self.nextMonthNav.innerHTML = self.config.nextArrow;
- buildMonths();
- Object.defineProperty(self, "_hidePrevMonthArrow", {
- get: function () { return self.__hidePrevMonthArrow; },
- set: function (bool) {
- if (self.__hidePrevMonthArrow !== bool) {
- toggleClass(self.prevMonthNav, "flatpickr-disabled", bool);
- self.__hidePrevMonthArrow = bool;
- }
- }
- });
- Object.defineProperty(self, "_hideNextMonthArrow", {
- get: function () { return self.__hideNextMonthArrow; },
- set: function (bool) {
- if (self.__hideNextMonthArrow !== bool) {
- toggleClass(self.nextMonthNav, "flatpickr-disabled", bool);
- self.__hideNextMonthArrow = bool;
- }
- }
- });
- self.currentYearElement = self.yearElements[0];
- updateNavigationCurrentMonth();
- return self.monthNav;
- }
- function buildTime() {
- self.calendarContainer.classList.add("hasTime");
- if (self.config.noCalendar)
- self.calendarContainer.classList.add("noCalendar");
- self.timeContainer = createElement("div", "flatpickr-time");
- self.timeContainer.tabIndex = -1;
- var separator = createElement("span", "flatpickr-time-separator", ":");
- var hourInput = createNumberInput("flatpickr-hour", {
- "aria-label": self.l10n.hourAriaLabel
- });
- self.hourElement = hourInput.getElementsByTagName("input")[0];
- var minuteInput = createNumberInput("flatpickr-minute", {
- "aria-label": self.l10n.minuteAriaLabel
- });
- self.minuteElement = minuteInput.getElementsByTagName("input")[0];
- self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;
- self.hourElement.value = pad(self.latestSelectedDateObj
- ? self.latestSelectedDateObj.getHours()
- : self.config.time_24hr
- ? self.config.defaultHour
- : military2ampm(self.config.defaultHour));
- self.minuteElement.value = pad(self.latestSelectedDateObj
- ? self.latestSelectedDateObj.getMinutes()
- : self.config.defaultMinute);
- self.hourElement.setAttribute("step", self.config.hourIncrement.toString());
- self.minuteElement.setAttribute("step", self.config.minuteIncrement.toString());
- self.hourElement.setAttribute("min", self.config.time_24hr ? "0" : "1");
- self.hourElement.setAttribute("max", self.config.time_24hr ? "23" : "12");
- self.minuteElement.setAttribute("min", "0");
- self.minuteElement.setAttribute("max", "59");
- self.timeContainer.appendChild(hourInput);
- self.timeContainer.appendChild(separator);
- self.timeContainer.appendChild(minuteInput);
- if (self.config.time_24hr)
- self.timeContainer.classList.add("time24hr");
- if (self.config.enableSeconds) {
- self.timeContainer.classList.add("hasSeconds");
- var secondInput = createNumberInput("flatpickr-second");
- self.secondElement = secondInput.getElementsByTagName("input")[0];
- self.secondElement.value = pad(self.latestSelectedDateObj
- ? self.latestSelectedDateObj.getSeconds()
- : self.config.defaultSeconds);
- self.secondElement.setAttribute("step", self.minuteElement.getAttribute("step"));
- self.secondElement.setAttribute("min", "0");
- self.secondElement.setAttribute("max", "59");
- self.timeContainer.appendChild(createElement("span", "flatpickr-time-separator", ":"));
- self.timeContainer.appendChild(secondInput);
- }
- if (!self.config.time_24hr) {
- // add self.amPM if appropriate
- self.amPM = createElement("span", "flatpickr-am-pm", self.l10n.amPM[int((self.latestSelectedDateObj
- ? self.hourElement.value
- : self.config.defaultHour) > 11)]);
- self.amPM.title = self.l10n.toggleTitle;
- self.amPM.tabIndex = -1;
- self.timeContainer.appendChild(self.amPM);
- }
- return self.timeContainer;
- }
- function buildWeekdays() {
- if (!self.weekdayContainer)
- self.weekdayContainer = createElement("div", "flatpickr-weekdays");
- else
- clearNode(self.weekdayContainer);
- for (var i = self.config.showMonths; i--;) {
- var container = createElement("div", "flatpickr-weekdaycontainer");
- self.weekdayContainer.appendChild(container);
- }
- updateWeekdays();
- return self.weekdayContainer;
- }
- function updateWeekdays() {
- var firstDayOfWeek = self.l10n.firstDayOfWeek;
- var weekdays = self.l10n.weekdays.shorthand.slice();
- if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {
- weekdays = weekdays.splice(firstDayOfWeek, weekdays.length).concat(weekdays.splice(0, firstDayOfWeek));
- }
- for (var i = self.config.showMonths; i--;) {
- self.weekdayContainer.children[i].innerHTML = "\n <span class='flatpickr-weekday'>\n " + weekdays.join("</span><span class='flatpickr-weekday'>") + "\n </span>\n ";
- }
- }
- /* istanbul ignore next */
- function buildWeeks() {
- self.calendarContainer.classList.add("hasWeeks");
- var weekWrapper = createElement("div", "flatpickr-weekwrapper");
- weekWrapper.appendChild(createElement("span", "flatpickr-weekday", self.l10n.weekAbbreviation));
- var weekNumbers = createElement("div", "flatpickr-weeks");
- weekWrapper.appendChild(weekNumbers);
- return {
- weekWrapper: weekWrapper,
- weekNumbers: weekNumbers
- };
- }
- function changeMonth(value, isOffset) {
- if (isOffset === void 0) { isOffset = true; }
- var delta = isOffset ? value : value - self.currentMonth;
- if ((delta < 0 && self._hidePrevMonthArrow === true) ||
- (delta > 0 && self._hideNextMonthArrow === true))
- return;
- self.currentMonth += delta;
- if (self.currentMonth < 0 || self.currentMonth > 11) {
- self.currentYear += self.currentMonth > 11 ? 1 : -1;
- self.currentMonth = (self.currentMonth + 12) % 12;
- triggerEvent("onYearChange");
- buildMonthSwitch();
- }
- buildDays();
- triggerEvent("onMonthChange");
- updateNavigationCurrentMonth();
- }
- function clear(triggerChangeEvent, toInitial) {
- if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }
- if (toInitial === void 0) { toInitial = true; }
- self.input.value = "";
- if (self.altInput !== undefined)
- self.altInput.value = "";
- if (self.mobileInput !== undefined)
- self.mobileInput.value = "";
- self.selectedDates = [];
- self.latestSelectedDateObj = undefined;
- if (toInitial === true) {
- self.currentYear = self._initialDate.getFullYear();
- self.currentMonth = self._initialDate.getMonth();
- }
- self.showTimeInput = false;
- if (self.config.enableTime === true) {
- setDefaultHours();
- }
- self.redraw();
- if (triggerChangeEvent)
- // triggerChangeEvent is true (default) or an Event
- triggerEvent("onChange");
- }
- function close() {
- self.isOpen = false;
- if (!self.isMobile) {
- if (self.calendarContainer !== undefined) {
- self.calendarContainer.classList.remove("open");
- }
- if (self._input !== undefined) {
- self._input.classList.remove("active");
- }
- }
- triggerEvent("onClose");
- }
- function destroy() {
- if (self.config !== undefined)
- triggerEvent("onDestroy");
- for (var i = self._handlers.length; i--;) {
- var h = self._handlers[i];
- h.element.removeEventListener(h.event, h.handler, h.options);
- }
- self._handlers = [];
- if (self.mobileInput) {
- if (self.mobileInput.parentNode)
- self.mobileInput.parentNode.removeChild(self.mobileInput);
- self.mobileInput = undefined;
- }
- else if (self.calendarContainer && self.calendarContainer.parentNode) {
- if (self.config.static && self.calendarContainer.parentNode) {
- var wrapper = self.calendarContainer.parentNode;
- wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);
- if (wrapper.parentNode) {
- while (wrapper.firstChild)
- wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);
- wrapper.parentNode.removeChild(wrapper);
- }
- }
- else
- self.calendarContainer.parentNode.removeChild(self.calendarContainer);
- }
- if (self.altInput) {
- self.input.type = "text";
- if (self.altInput.parentNode)
- self.altInput.parentNode.removeChild(self.altInput);
- delete self.altInput;
- }
- if (self.input) {
- self.input.type = self.input._type;
- self.input.classList.remove("flatpickr-input");
- self.input.removeAttribute("readonly");
- self.input.value = "";
- }
- [
- "_showTimeInput",
- "latestSelectedDateObj",
- "_hideNextMonthArrow",
- "_hidePrevMonthArrow",
- "__hideNextMonthArrow",
- "__hidePrevMonthArrow",
- "isMobile",
- "isOpen",
- "selectedDateElem",
- "minDateHasTime",
- "maxDateHasTime",
- "days",
- "daysContainer",
- "_input",
- "_positionElement",
- "innerContainer",
- "rContainer",
- "monthNav",
- "todayDateElem",
- "calendarContainer",
- "weekdayContainer",
- "prevMonthNav",
- "nextMonthNav",
- "monthsDropdownContainer",
- "currentMonthElement",
- "currentYearElement",
- "navigationCurrentMonth",
- "selectedDateElem",
- "config",
- ].forEach(function (k) {
- try {
- delete self[k];
- }
- catch (_) { }
- });
- }
- function isCalendarElem(elem) {
- if (self.config.appendTo && self.config.appendTo.contains(elem))
- return true;
- return self.calendarContainer.contains(elem);
- }
- function documentClick(e) {
- if (self.isOpen && !self.config.inline) {
- var eventTarget_1 = getEventTarget(e);
- var isCalendarElement = isCalendarElem(eventTarget_1);
- var isInput = eventTarget_1 === self.input ||
- eventTarget_1 === self.altInput ||
- self.element.contains(eventTarget_1) ||
- // web components
- // e.path is not present in all browsers. circumventing typechecks
- (e.path &&
- e.path.indexOf &&
- (~e.path.indexOf(self.input) ||
- ~e.path.indexOf(self.altInput)));
- var lostFocus = e.type === "blur"
- ? isInput &&
- e.relatedTarget &&
- !isCalendarElem(e.relatedTarget)
- : !isInput &&
- !isCalendarElement &&
- !isCalendarElem(e.relatedTarget);
- var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {
- return elem.contains(eventTarget_1);
- });
- if (lostFocus && isIgnored) {
- self.close();
- if (self.config.mode === "range" && self.selectedDates.length === 1) {
- self.clear(false);
- self.redraw();
- }
- }
- }
- }
- function changeYear(newYear) {
- if (!newYear ||
- (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||
- (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))
- return;
- var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;
- self.currentYear = newYearNum || self.currentYear;
- if (self.config.maxDate &&
- self.currentYear === self.config.maxDate.getFullYear()) {
- self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);
- }
- else if (self.config.minDate &&
- self.currentYear === self.config.minDate.getFullYear()) {
- self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);
- }
- if (isNewYear) {
- self.redraw();
- triggerEvent("onYearChange");
- buildMonthSwitch();
- }
- }
- function isEnabled(date, timeless) {
- if (timeless === void 0) { timeless = true; }
- var dateToCheck = self.parseDate(date, undefined, timeless); // timeless
- if ((self.config.minDate &&
- dateToCheck &&
- compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||
- (self.config.maxDate &&
- dateToCheck &&
- compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))
- return false;
- if (self.config.enable.length === 0 && self.config.disable.length === 0)
- return true;
- if (dateToCheck === undefined)
- return false;
- var bool = self.config.enable.length > 0, array = bool ? self.config.enable : self.config.disable;
- for (var i = 0, d = void 0; i < array.length; i++) {
- d = array[i];
- if (typeof d === "function" &&
- d(dateToCheck) // disabled by function
- )
- return bool;
- else if (d instanceof Date &&
- dateToCheck !== undefined &&
- d.getTime() === dateToCheck.getTime())
- // disabled by date
- return bool;
- else if (typeof d === "string" && dateToCheck !== undefined) {
- // disabled by date string
- var parsed = self.parseDate(d, undefined, true);
- return parsed && parsed.getTime() === dateToCheck.getTime()
- ? bool
- : !bool;
- }
- else if (
- // disabled by range
- typeof d === "object" &&
- dateToCheck !== undefined &&
- d.from &&
- d.to &&
- dateToCheck.getTime() >= d.from.getTime() &&
- dateToCheck.getTime() <= d.to.getTime())
- return bool;
- }
- return !bool;
- }
- function isInView(elem) {
- if (self.daysContainer !== undefined)
- return (elem.className.indexOf("hidden") === -1 &&
- self.daysContainer.contains(elem));
- return false;
- }
- function onKeyDown(e) {
- // e.key e.keyCode
- // "Backspace" 8
- // "Tab" 9
- // "Enter" 13
- // "Escape" (IE "Esc") 27
- // "ArrowLeft" (IE "Left") 37
- // "ArrowUp" (IE "Up") 38
- // "ArrowRight" (IE "Right") 39
- // "ArrowDown" (IE "Down") 40
- // "Delete" (IE "Del") 46
- var isInput = e.target === self._input;
- var allowInput = self.config.allowInput;
- var allowKeydown = self.isOpen && (!allowInput || !isInput);
- var allowInlineKeydown = self.config.inline && isInput && !allowInput;
- if (e.keyCode === 13 && isInput) {
- if (allowInput) {
- self.setDate(self._input.value, true, e.target === self.altInput
- ? self.config.altFormat
- : self.config.dateFormat);
- return e.target.blur();
- }
- else {
- self.open();
- }
- }
- else if (isCalendarElem(e.target) ||
- allowKeydown ||
- allowInlineKeydown) {
- var isTimeObj = !!self.timeContainer &&
- self.timeContainer.contains(e.target);
- switch (e.keyCode) {
- case 13:
- if (isTimeObj) {
- e.preventDefault();
- updateTime();
- focusAndClose();
- }
- else
- selectDate(e);
- break;
- case 27: // escape
- e.preventDefault();
- focusAndClose();
- break;
- case 8:
- case 46:
- if (isInput && !self.config.allowInput) {
- e.preventDefault();
- self.clear();
- }
- break;
- case 37:
- case 39:
- if (!isTimeObj && !isInput) {
- e.preventDefault();
- if (self.daysContainer !== undefined &&
- (allowInput === false ||
- (document.activeElement && isInView(document.activeElement)))) {
- var delta_1 = e.keyCode === 39 ? 1 : -1;
- if (!e.ctrlKey)
- focusOnDay(undefined, delta_1);
- else {
- e.stopPropagation();
- changeMonth(delta_1);
- focusOnDay(getFirstAvailableDay(1), 0);
- }
- }
- }
- else if (self.hourElement)
- self.hourElement.focus();
- break;
- case 38:
- case 40:
- e.preventDefault();
- var delta = e.keyCode === 40 ? 1 : -1;
- if ((self.daysContainer && e.target.$i !== undefined) ||
- e.target === self.input) {
- if (e.ctrlKey) {
- e.stopPropagation();
- changeYear(self.currentYear - delta);
- focusOnDay(getFirstAvailableDay(1), 0);
- }
- else if (!isTimeObj)
- focusOnDay(undefined, delta * 7);
- }
- else if (e.target === self.currentYearElement) {
- changeYear(self.currentYear - delta);
- }
- else if (self.config.enableTime) {
- if (!isTimeObj && self.hourElement)
- self.hourElement.focus();
- updateTime(e);
- self._debouncedChange();
- }
- break;
- case 9:
- if (isTimeObj) {
- var elems = [
- self.hourElement,
- self.minuteElement,
- self.secondElement,
- self.amPM,
- ]
- .concat(self.pluginElements)
- .filter(function (x) { return x; });
- var i = elems.indexOf(e.target);
- if (i !== -1) {
- var target = elems[i + (e.shiftKey ? -1 : 1)];
- e.preventDefault();
- (target || self._input).focus();
- }
- }
- else if (!self.config.noCalendar &&
- self.daysContainer &&
- self.daysContainer.contains(e.target) &&
- e.shiftKey) {
- e.preventDefault();
- self._input.focus();
- }
- break;
- default:
- break;
- }
- }
- if (self.amPM !== undefined && e.target === self.amPM) {
- switch (e.key) {
- case self.l10n.amPM[0].charAt(0):
- case self.l10n.amPM[0].charAt(0).toLowerCase():
- self.amPM.textContent = self.l10n.amPM[0];
- setHoursFromInputs();
- updateValue();
- break;
- case self.l10n.amPM[1].charAt(0):
- case self.l10n.amPM[1].charAt(0).toLowerCase():
- self.amPM.textContent = self.l10n.amPM[1];
- setHoursFromInputs();
- updateValue();
- break;
- }
- }
- if (isInput || isCalendarElem(e.target)) {
- triggerEvent("onKeyDown", e);
- }
- }
- function onMouseOver(elem) {
- if (self.selectedDates.length !== 1 ||
- (elem &&
- (!elem.classList.contains("flatpickr-day") ||
- elem.classList.contains("flatpickr-disabled"))))
- return;
- var hoverDate = elem
- ? elem.dateObj.getTime()
- : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());
- var containsDisabled = false;
- var minRange = 0, maxRange = 0;
- for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {
- if (!isEnabled(new Date(t), true)) {
- containsDisabled =
- containsDisabled || (t > rangeStartDate && t < rangeEndDate);
- if (t < initialDate && (!minRange || t > minRange))
- minRange = t;
- else if (t > initialDate && (!maxRange || t < maxRange))
- maxRange = t;
- }
- }
- for (var m = 0; m < self.config.showMonths; m++) {
- var month = self.daysContainer.children[m];
- var _loop_1 = function (i, l) {
- var dayElem = month.children[i], date = dayElem.dateObj;
- var timestamp = date.getTime();
- var outOfRange = (minRange > 0 && timestamp < minRange) ||
- (maxRange > 0 && timestamp > maxRange);
- if (outOfRange) {
- dayElem.classList.add("notAllowed");
- ["inRange", "startRange", "endRange"].forEach(function (c) {
- dayElem.classList.remove(c);
- });
- return "continue";
- }
- else if (containsDisabled && !outOfRange)
- return "continue";
- ["startRange", "inRange", "endRange", "notAllowed"].forEach(function (c) {
- dayElem.classList.remove(c);
- });
- if (elem !== undefined) {
- elem.classList.add(hoverDate <= self.selectedDates[0].getTime()
- ? "startRange"
- : "endRange");
- if (initialDate < hoverDate && timestamp === initialDate)
- dayElem.classList.add("startRange");
- else if (initialDate > hoverDate && timestamp === initialDate)
- dayElem.classList.add("endRange");
- if (timestamp >= minRange &&
- (maxRange === 0 || timestamp <= maxRange) &&
- isBetween(timestamp, initialDate, hoverDate))
- dayElem.classList.add("inRange");
- }
- };
- for (var i = 0, l = month.children.length; i < l; i++) {
- _loop_1(i, l);
- }
- }
- }
- function onResize() {
- if (self.isOpen && !self.config.static && !self.config.inline)
- positionCalendar();
- }
- function setDefaultTime() {
- self.setDate(self.config.minDate !== undefined
- ? new Date(self.config.minDate.getTime())
- : new Date(), true);
- setDefaultHours();
- updateValue();
- }
- function open(e, positionElement) {
- if (positionElement === void 0) { positionElement = self._positionElement; }
- if (self.isMobile === true) {
- if (e) {
- e.preventDefault();
- e.target && e.target.blur();
- }
- if (self.mobileInput !== undefined) {
- self.mobileInput.focus();
- self.mobileInput.click();
- }
- triggerEvent("onOpen");
- return;
- }
- if (self._input.disabled || self.config.inline)
- return;
- var wasOpen = self.isOpen;
- self.isOpen = true;
- if (!wasOpen) {
- self.calendarContainer.classList.add("open");
- self._input.classList.add("active");
- triggerEvent("onOpen");
- positionCalendar(positionElement);
- }
- if (self.config.enableTime === true && self.config.noCalendar === true) {
- if (self.selectedDates.length === 0) {
- setDefaultTime();
- }
- if (self.config.allowInput === false &&
- (e === undefined ||
- !self.timeContainer.contains(e.relatedTarget))) {
- setTimeout(function () { return self.hourElement.select(); }, 50);
- }
- }
- }
- function minMaxDateSetter(type) {
- return function (date) {
- var dateObj = (self.config["_" + type + "Date"] = self.parseDate(date, self.config.dateFormat));
- var inverseDateObj = self.config["_" + (type === "min" ? "max" : "min") + "Date"];
- if (dateObj !== undefined) {
- self[type === "min" ? "minDateHasTime" : "maxDateHasTime"] =
- dateObj.getHours() > 0 ||
- dateObj.getMinutes() > 0 ||
- dateObj.getSeconds() > 0;
- }
- if (self.selectedDates) {
- self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });
- if (!self.selectedDates.length && type === "min")
- setHoursFromDate(dateObj);
- updateValue();
- }
- if (self.daysContainer) {
- redraw();
- if (dateObj !== undefined)
- self.currentYearElement[type] = dateObj.getFullYear().toString();
- else
- self.currentYearElement.removeAttribute(type);
- self.currentYearElement.disabled =
- !!inverseDateObj &&
- dateObj !== undefined &&
- inverseDateObj.getFullYear() === dateObj.getFullYear();
- }
- };
- }
- function parseConfig() {
- var boolOpts = [
- "wrap",
- "weekNumbers",
- "allowInput",
- "clickOpens",
- "time_24hr",
- "enableTime",
- "noCalendar",
- "altInput",
- "shorthandCurrentMonth",
- "inline",
- "static",
- "enableSeconds",
- "disableMobile",
- ];
- var userConfig = __assign({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));
- var formats = {};
- self.config.parseDate = userConfig.parseDate;
- self.config.formatDate = userConfig.formatDate;
- Object.defineProperty(self.config, "enable", {
- get: function () { return self.config._enable; },
- set: function (dates) {
- self.config._enable = parseDateRules(dates);
- }
- });
- Object.defineProperty(self.config, "disable", {
- get: function () { return self.config._disable; },
- set: function (dates) {
- self.config._disable = parseDateRules(dates);
- }
- });
- var timeMode = userConfig.mode === "time";
- if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {
- var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;
- formats.dateFormat =
- userConfig.noCalendar || timeMode
- ? "H:i" + (userConfig.enableSeconds ? ":S" : "")
- : defaultDateFormat + " H:i" + (userConfig.enableSeconds ? ":S" : "");
- }
- if (userConfig.altInput &&
- (userConfig.enableTime || timeMode) &&
- !userConfig.altFormat) {
- var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;
- formats.altFormat =
- userConfig.noCalendar || timeMode
- ? "h:i" + (userConfig.enableSeconds ? ":S K" : " K")
- : defaultAltFormat + (" h:i" + (userConfig.enableSeconds ? ":S" : "") + " K");
- }
- if (!userConfig.altInputClass) {
- self.config.altInputClass =
- self.input.className + " " + self.config.altInputClass;
- }
- Object.defineProperty(self.config, "minDate", {
- get: function () { return self.config._minDate; },
- set: minMaxDateSetter("min")
- });
- Object.defineProperty(self.config, "maxDate", {
- get: function () { return self.config._maxDate; },
- set: minMaxDateSetter("max")
- });
- var minMaxTimeSetter = function (type) { return function (val) {
- self.config[type === "min" ? "_minTime" : "_maxTime"] = self.parseDate(val, "H:i");
- }; };
- Object.defineProperty(self.config, "minTime", {
- get: function () { return self.config._minTime; },
- set: minMaxTimeSetter("min")
- });
- Object.defineProperty(self.config, "maxTime", {
- get: function () { return self.config._maxTime; },
- set: minMaxTimeSetter("max")
- });
- if (userConfig.mode === "time") {
- self.config.noCalendar = true;
- self.config.enableTime = true;
- }
- Object.assign(self.config, formats, userConfig);
- for (var i = 0; i < boolOpts.length; i++)
- self.config[boolOpts[i]] =
- self.config[boolOpts[i]] === true ||
- self.config[boolOpts[i]] === "true";
- HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {
- self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);
- });
- self.isMobile =
- !self.config.disableMobile &&
- !self.config.inline &&
- self.config.mode === "single" &&
- !self.config.disable.length &&
- !self.config.enable.length &&
- !self.config.weekNumbers &&
- /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
- for (var i = 0; i < self.config.plugins.length; i++) {
- var pluginConf = self.config.plugins[i](self) || {};
- for (var key in pluginConf) {
- if (HOOKS.indexOf(key) > -1) {
- self.config[key] = arrayify(pluginConf[key])
- .map(bindToInstance)
- .concat(self.config[key]);
- }
- else if (typeof userConfig[key] === "undefined")
- self.config[key] = pluginConf[key];
- }
- }
- triggerEvent("onParseConfig");
- }
- function setupLocale() {
- if (typeof self.config.locale !== "object" &&
- typeof flatpickr.l10ns[self.config.locale] === "undefined")
- self.config.errorHandler(new Error("flatpickr: invalid locale " + self.config.locale));
- self.l10n = __assign({}, flatpickr.l10ns["default"], (typeof self.config.locale === "object"
- ? self.config.locale
- : self.config.locale !== "default"
- ? flatpickr.l10ns[self.config.locale]
- : undefined));
- tokenRegex.K = "(" + self.l10n.amPM[0] + "|" + self.l10n.amPM[1] + "|" + self.l10n.amPM[0].toLowerCase() + "|" + self.l10n.amPM[1].toLowerCase() + ")";
- var userConfig = __assign({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));
- if (userConfig.time_24hr === undefined &&
- flatpickr.defaultConfig.time_24hr === undefined) {
- self.config.time_24hr = self.l10n.time_24hr;
- }
- self.formatDate = createDateFormatter(self);
- self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });
- }
- function positionCalendar(customPositionElement) {
- if (self.calendarContainer === undefined)
- return;
- triggerEvent("onPreCalendarPosition");
- var positionElement = customPositionElement || self._positionElement;
- var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(" "), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === "above" ||
- (configPosVertical !== "below" &&
- distanceFromBottom < calendarHeight &&
- inputBounds.top > calendarHeight);
- var top = window.pageYOffset +
- inputBounds.top +
- (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);
- toggleClass(self.calendarContainer, "arrowTop", !showOnTop);
- toggleClass(self.calendarContainer, "arrowBottom", showOnTop);
- if (self.config.inline)
- return;
- var left = window.pageXOffset +
- inputBounds.left -
- (configPosHorizontal != null && configPosHorizontal === "center"
- ? (calendarWidth - inputBounds.width) / 2
- : 0);
- var right = window.document.body.offsetWidth - inputBounds.right;
- var rightMost = left + calendarWidth > window.document.body.offsetWidth;
- var centerMost = right + calendarWidth > window.document.body.offsetWidth;
- toggleClass(self.calendarContainer, "rightMost", rightMost);
- if (self.config.static)
- return;
- self.calendarContainer.style.top = top + "px";
- if (!rightMost) {
- self.calendarContainer.style.left = left + "px";
- self.calendarContainer.style.right = "auto";
- }
- else if (!centerMost) {
- self.calendarContainer.style.left = "auto";
- self.calendarContainer.style.right = right + "px";
- }
- else {
- var doc = document.styleSheets[0];
- // some testing environments don't have css support
- if (doc === undefined)
- return;
- var bodyWidth = window.document.body.offsetWidth;
- var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);
- var centerBefore = ".flatpickr-calendar.centerMost:before";
- var centerAfter = ".flatpickr-calendar.centerMost:after";
- var centerIndex = doc.cssRules.length;
- var centerStyle = "{left:" + inputBounds.left + "px;right:auto;}";
- toggleClass(self.calendarContainer, "rightMost", false);
- toggleClass(self.calendarContainer, "centerMost", true);
- doc.insertRule(centerBefore + "," + centerAfter + centerStyle, centerIndex);
- self.calendarContainer.style.left = centerLeft + "px";
- self.calendarContainer.style.right = "auto";
- }
- }
- function redraw() {
- if (self.config.noCalendar || self.isMobile)
- return;
- updateNavigationCurrentMonth();
- buildDays();
- }
- function focusAndClose() {
- self._input.focus();
- if (window.navigator.userAgent.indexOf("MSIE") !== -1 ||
- navigator.msMaxTouchPoints !== undefined) {
- // hack - bugs in the way IE handles focus keeps the calendar open
- setTimeout(self.close, 0);
- }
- else {
- self.close();
- }
- }
- function selectDate(e) {
- e.preventDefault();
- e.stopPropagation();
- var isSelectable = function (day) {
- return day.classList &&
- day.classList.contains("flatpickr-day") &&
- !day.classList.contains("flatpickr-disabled") &&
- !day.classList.contains("notAllowed");
- };
- var t = findParent(e.target, isSelectable);
- if (t === undefined)
- return;
- var target = t;
- var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));
- var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||
- selectedDate.getMonth() >
- self.currentMonth + self.config.showMonths - 1) &&
- self.config.mode !== "range";
- self.selectedDateElem = target;
- if (self.config.mode === "single")
- self.selectedDates = [selectedDate];
- else if (self.config.mode === "multiple") {
- var selectedIndex = isDateSelected(selectedDate);
- if (selectedIndex)
- self.selectedDates.splice(parseInt(selectedIndex), 1);
- else
- self.selectedDates.push(selectedDate);
- }
- else if (self.config.mode === "range") {
- if (self.selectedDates.length === 2) {
- self.clear(false, false);
- }
- self.latestSelectedDateObj = selectedDate;
- self.selectedDates.push(selectedDate);
- // unless selecting same date twice, sort ascendingly
- if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)
- self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
- }
- setHoursFromInputs();
- if (shouldChangeMonth) {
- var isNewYear = self.currentYear !== selectedDate.getFullYear();
- self.currentYear = selectedDate.getFullYear();
- self.currentMonth = selectedDate.getMonth();
- if (isNewYear) {
- triggerEvent("onYearChange");
- buildMonthSwitch();
- }
- triggerEvent("onMonthChange");
- }
- updateNavigationCurrentMonth();
- buildDays();
- updateValue();
- if (self.config.enableTime)
- setTimeout(function () { return (self.showTimeInput = true); }, 50);
- // maintain focus
- if (!shouldChangeMonth &&
- self.config.mode !== "range" &&
- self.config.showMonths === 1)
- focusOnDayElem(target);
- else if (self.selectedDateElem !== undefined &&
- self.hourElement === undefined) {
- self.selectedDateElem && self.selectedDateElem.focus();
- }
- if (self.hourElement !== undefined)
- self.hourElement !== undefined && self.hourElement.focus();
- if (self.config.closeOnSelect) {
- var single = self.config.mode === "single" && !self.config.enableTime;
- var range = self.config.mode === "range" &&
- self.selectedDates.length === 2 &&
- !self.config.enableTime;
- if (single || range) {
- focusAndClose();
- }
- }
- triggerChange();
- }
- var CALLBACKS = {
- locale: [setupLocale, updateWeekdays],
- showMonths: [buildMonths, setCalendarWidth, buildWeekdays],
- minDate: [jumpToDate],
- maxDate: [jumpToDate]
- };
- function set(option, value) {
- if (option !== null && typeof option === "object") {
- Object.assign(self.config, option);
- for (var key in option) {
- if (CALLBACKS[key] !== undefined)
- CALLBACKS[key].forEach(function (x) { return x(); });
- }
- }
- else {
- self.config[option] = value;
- if (CALLBACKS[option] !== undefined)
- CALLBACKS[option].forEach(function (x) { return x(); });
- else if (HOOKS.indexOf(option) > -1)
- self.config[option] = arrayify(value);
- }
- self.redraw();
- updateValue(false);
- }
- function setSelectedDate(inputDate, format) {
- var dates = [];
- if (inputDate instanceof Array)
- dates = inputDate.map(function (d) { return self.parseDate(d, format); });
- else if (inputDate instanceof Date || typeof inputDate === "number")
- dates = [self.parseDate(inputDate, format)];
- else if (typeof inputDate === "string") {
- switch (self.config.mode) {
- case "single":
- case "time":
- dates = [self.parseDate(inputDate, format)];
- break;
- case "multiple":
- dates = inputDate
- .split(self.config.conjunction)
- .map(function (date) { return self.parseDate(date, format); });
- break;
- case "range":
- dates = inputDate
- .split(self.l10n.rangeSeparator)
- .map(function (date) { return self.parseDate(date, format); });
- break;
- default:
- break;
- }
- }
- else
- self.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(inputDate)));
- self.selectedDates = dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); });
- if (self.config.mode === "range")
- self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
- }
- function setDate(date, triggerChange, format) {
- if (triggerChange === void 0) { triggerChange = false; }
- if (format === void 0) { format = self.config.dateFormat; }
- if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))
- return self.clear(triggerChange);
- setSelectedDate(date, format);
- self.showTimeInput = self.selectedDates.length > 0;
- self.latestSelectedDateObj =
- self.selectedDates[self.selectedDates.length - 1];
- self.redraw();
- jumpToDate();
- setHoursFromDate();
- if (self.selectedDates.length === 0) {
- self.clear(false);
- }
- updateValue(triggerChange);
- if (triggerChange)
- triggerEvent("onChange");
- }
- function parseDateRules(arr) {
- return arr
- .slice()
- .map(function (rule) {
- if (typeof rule === "string" ||
- typeof rule === "number" ||
- rule instanceof Date) {
- return self.parseDate(rule, undefined, true);
- }
- else if (rule &&
- typeof rule === "object" &&
- rule.from &&
- rule.to)
- return {
- from: self.parseDate(rule.from, undefined),
- to: self.parseDate(rule.to, undefined)
- };
- return rule;
- })
- .filter(function (x) { return x; }); // remove falsy values
- }
- function setupDates() {
- self.selectedDates = [];
- self.now = self.parseDate(self.config.now) || new Date();
- // Workaround IE11 setting placeholder as the input's value
- var preloadedDate = self.config.defaultDate ||
- ((self.input.nodeName === "INPUT" ||
- self.input.nodeName === "TEXTAREA") &&
- self.input.placeholder &&
- self.input.value === self.input.placeholder
- ? null
- : self.input.value);
- if (preloadedDate)
- setSelectedDate(preloadedDate, self.config.dateFormat);
- self._initialDate =
- self.selectedDates.length > 0
- ? self.selectedDates[0]
- : self.config.minDate &&
- self.config.minDate.getTime() > self.now.getTime()
- ? self.config.minDate
- : self.config.maxDate &&
- self.config.maxDate.getTime() < self.now.getTime()
- ? self.config.maxDate
- : self.now;
- self.currentYear = self._initialDate.getFullYear();
- self.currentMonth = self._initialDate.getMonth();
- if (self.selectedDates.length > 0)
- self.latestSelectedDateObj = self.selectedDates[0];
- if (self.config.minTime !== undefined)
- self.config.minTime = self.parseDate(self.config.minTime, "H:i");
- if (self.config.maxTime !== undefined)
- self.config.maxTime = self.parseDate(self.config.maxTime, "H:i");
- self.minDateHasTime =
- !!self.config.minDate &&
- (self.config.minDate.getHours() > 0 ||
- self.config.minDate.getMinutes() > 0 ||
- self.config.minDate.getSeconds() > 0);
- self.maxDateHasTime =
- !!self.config.maxDate &&
- (self.config.maxDate.getHours() > 0 ||
- self.config.maxDate.getMinutes() > 0 ||
- self.config.maxDate.getSeconds() > 0);
- Object.defineProperty(self, "showTimeInput", {
- get: function () { return self._showTimeInput; },
- set: function (bool) {
- self._showTimeInput = bool;
- if (self.calendarContainer)
- toggleClass(self.calendarContainer, "showTimeInput", bool);
- self.isOpen && positionCalendar();
- }
- });
- }
- function setupInputs() {
- self.input = self.config.wrap
- ? element.querySelector("[data-input]")
- : element;
- /* istanbul ignore next */
- if (!self.input) {
- self.config.errorHandler(new Error("Invalid input element specified"));
- return;
- }
- // hack: store previous type to restore it after destroy()
- self.input._type = self.input.type;
- self.input.type = "text";
- self.input.classList.add("flatpickr-input");
- self._input = self.input;
- if (self.config.altInput) {
- // replicate self.element
- self.altInput = createElement(self.input.nodeName, self.config.altInputClass);
- self._input = self.altInput;
- self.altInput.placeholder = self.input.placeholder;
- self.altInput.disabled = self.input.disabled;
- self.altInput.required = self.input.required;
- self.altInput.tabIndex = self.input.tabIndex;
- self.altInput.type = "text";
- self.input.setAttribute("type", "hidden");
- if (!self.config.static && self.input.parentNode)
- self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);
- }
- if (!self.config.allowInput)
- self._input.setAttribute("readonly", "readonly");
- self._positionElement = self.config.positionElement || self._input;
- }
- function setupMobile() {
- var inputType = self.config.enableTime
- ? self.config.noCalendar
- ? "time"
- : "datetime-local"
- : "date";
- self.mobileInput = createElement("input", self.input.className + " flatpickr-mobile");
- self.mobileInput.step = self.input.getAttribute("step") || "any";
- self.mobileInput.tabIndex = 1;
- self.mobileInput.type = inputType;
- self.mobileInput.disabled = self.input.disabled;
- self.mobileInput.required = self.input.required;
- self.mobileInput.placeholder = self.input.placeholder;
- self.mobileFormatStr =
- inputType === "datetime-local"
- ? "Y-m-d\\TH:i:S"
- : inputType === "date"
- ? "Y-m-d"
- : "H:i:S";
- if (self.selectedDates.length > 0) {
- self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);
- }
- if (self.config.minDate)
- self.mobileInput.min = self.formatDate(self.config.minDate, "Y-m-d");
- if (self.config.maxDate)
- self.mobileInput.max = self.formatDate(self.config.maxDate, "Y-m-d");
- self.input.type = "hidden";
- if (self.altInput !== undefined)
- self.altInput.type = "hidden";
- try {
- if (self.input.parentNode)
- self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);
- }
- catch (_a) { }
- bind(self.mobileInput, "change", function (e) {
- self.setDate(e.target.value, false, self.mobileFormatStr);
- triggerEvent("onChange");
- triggerEvent("onClose");
- });
- }
- function toggle(e) {
- if (self.isOpen === true)
- return self.close();
- self.open(e);
- }
- function triggerEvent(event, data) {
- // If the instance has been destroyed already, all hooks have been removed
- if (self.config === undefined)
- return;
- var hooks = self.config[event];
- if (hooks !== undefined && hooks.length > 0) {
- for (var i = 0; hooks[i] && i < hooks.length; i++)
- hooks[i](self.selectedDates, self.input.value, self, data);
- }
- if (event === "onChange") {
- self.input.dispatchEvent(createEvent("change"));
- // many front-end frameworks bind to the input event
- self.input.dispatchEvent(createEvent("input"));
- }
- }
- function createEvent(name) {
- var e = document.createEvent("Event");
- e.initEvent(name, true, true);
- return e;
- }
- function isDateSelected(date) {
- for (var i = 0; i < self.selectedDates.length; i++) {
- if (compareDates(self.selectedDates[i], date) === 0)
- return "" + i;
- }
- return false;
- }
- function isDateInRange(date) {
- if (self.config.mode !== "range" || self.selectedDates.length < 2)
- return false;
- return (compareDates(date, self.selectedDates[0]) >= 0 &&
- compareDates(date, self.selectedDates[1]) <= 0);
- }
- function updateNavigationCurrentMonth() {
- if (self.config.noCalendar || self.isMobile || !self.monthNav)
- return;
- self.yearElements.forEach(function (yearElement, i) {
- var d = new Date(self.currentYear, self.currentMonth, 1);
- d.setMonth(self.currentMonth + i);
- if (self.config.showMonths > 1 ||
- self.config.monthSelectorType === "static") {
- self.monthElements[i].textContent =
- monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + " ";
- }
- else {
- self.monthsDropdownContainer.value = d.getMonth().toString();
- }
- yearElement.value = d.getFullYear().toString();
- });
- self._hidePrevMonthArrow =
- self.config.minDate !== undefined &&
- (self.currentYear === self.config.minDate.getFullYear()
- ? self.currentMonth <= self.config.minDate.getMonth()
- : self.currentYear < self.config.minDate.getFullYear());
- self._hideNextMonthArrow =
- self.config.maxDate !== undefined &&
- (self.currentYear === self.config.maxDate.getFullYear()
- ? self.currentMonth + 1 > self.config.maxDate.getMonth()
- : self.currentYear > self.config.maxDate.getFullYear());
- }
- function getDateStr(format) {
- return self.selectedDates
- .map(function (dObj) { return self.formatDate(dObj, format); })
- .filter(function (d, i, arr) {
- return self.config.mode !== "range" ||
- self.config.enableTime ||
- arr.indexOf(d) === i;
- })
- .join(self.config.mode !== "range"
- ? self.config.conjunction
- : self.l10n.rangeSeparator);
- }
- /**
- * Updates the values of inputs associated with the calendar
- */
- function updateValue(triggerChange) {
- if (triggerChange === void 0) { triggerChange = true; }
- if (self.mobileInput !== undefined && self.mobileFormatStr) {
- self.mobileInput.value =
- self.latestSelectedDateObj !== undefined
- ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)
- : "";
- }
- self.input.value = getDateStr(self.config.dateFormat);
- if (self.altInput !== undefined) {
- self.altInput.value = getDateStr(self.config.altFormat);
- }
- if (triggerChange !== false)
- triggerEvent("onValueUpdate");
- }
- function onMonthNavClick(e) {
- var isPrevMonth = self.prevMonthNav.contains(e.target);
- var isNextMonth = self.nextMonthNav.contains(e.target);
- if (isPrevMonth || isNextMonth) {
- changeMonth(isPrevMonth ? -1 : 1);
- }
- else if (self.yearElements.indexOf(e.target) >= 0) {
- e.target.select();
- }
- else if (e.target.classList.contains("arrowUp")) {
- self.changeYear(self.currentYear + 1);
- }
- else if (e.target.classList.contains("arrowDown")) {
- self.changeYear(self.currentYear - 1);
- }
- }
- function timeWrapper(e) {
- e.preventDefault();
- var isKeyDown = e.type === "keydown", input = e.target;
- if (self.amPM !== undefined && e.target === self.amPM) {
- self.amPM.textContent =
- self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];
- }
- var min = parseFloat(input.getAttribute("min")), max = parseFloat(input.getAttribute("max")), step = parseFloat(input.getAttribute("step")), curValue = parseInt(input.value, 10), delta = e.delta ||
- (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);
- var newValue = curValue + step * delta;
- if (typeof input.value !== "undefined" && input.value.length === 2) {
- var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;
- if (newValue < min) {
- newValue =
- max +
- newValue +
- int(!isHourElem) +
- (int(isHourElem) && int(!self.amPM));
- if (isMinuteElem)
- incrementNumInput(undefined, -1, self.hourElement);
- }
- else if (newValue > max) {
- newValue =
- input === self.hourElement ? newValue - max - int(!self.amPM) : min;
- if (isMinuteElem)
- incrementNumInput(undefined, 1, self.hourElement);
- }
- if (self.amPM &&
- isHourElem &&
- (step === 1
- ? newValue + curValue === 23
- : Math.abs(newValue - curValue) > step)) {
- self.amPM.textContent =
- self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];
- }
- input.value = pad(newValue);
- }
- }
- init();
- return self;
- }
- /* istanbul ignore next */
- function _flatpickr(nodeList, config) {
- // static list
- var nodes = Array.prototype.slice
- .call(nodeList)
- .filter(function (x) { return x instanceof HTMLElement; });
- var instances = [];
- for (var i = 0; i < nodes.length; i++) {
- var node = nodes[i];
- try {
- if (node.getAttribute("data-fp-omit") !== null)
- continue;
- if (node._flatpickr !== undefined) {
- node._flatpickr.destroy();
- node._flatpickr = undefined;
- }
- node._flatpickr = FlatpickrInstance(node, config || {});
- instances.push(node._flatpickr);
- }
- catch (e) {
- console.error(e);
- }
- }
- return instances.length === 1 ? instances[0] : instances;
- }
- /* istanbul ignore next */
- if (typeof HTMLElement !== "undefined" &&
- typeof HTMLCollection !== "undefined" &&
- typeof NodeList !== "undefined") {
- // browser env
- HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {
- return _flatpickr(this, config);
- };
- HTMLElement.prototype.flatpickr = function (config) {
- return _flatpickr([this], config);
- };
- }
- /* istanbul ignore next */
- var flatpickr = function (selector, config) {
- if (typeof selector === "string") {
- return _flatpickr(window.document.querySelectorAll(selector), config);
- }
- else if (selector instanceof Node) {
- return _flatpickr([selector], config);
- }
- else {
- return _flatpickr(selector, config);
- }
- };
- /* istanbul ignore next */
- flatpickr.defaultConfig = {};
- flatpickr.l10ns = {
- en: __assign({}, english),
- "default": __assign({}, english)
- };
- flatpickr.localize = function (l10n) {
- flatpickr.l10ns["default"] = __assign({}, flatpickr.l10ns["default"], l10n);
- };
- flatpickr.setDefaults = function (config) {
- flatpickr.defaultConfig = __assign({}, flatpickr.defaultConfig, config);
- };
- flatpickr.parseDate = createDateParser({});
- flatpickr.formatDate = createDateFormatter({});
- flatpickr.compareDates = compareDates;
- /* istanbul ignore next */
- if (typeof jQuery !== "undefined" && typeof jQuery.fn !== "undefined") {
- jQuery.fn.flatpickr = function (config) {
- return _flatpickr(this, config);
- };
- }
- // eslint-disable-next-line @typescript-eslint/camelcase
- Date.prototype.fp_incr = function (days) {
- return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === "string" ? parseInt(days, 10) : days));
- };
- if (typeof window !== "undefined") {
- window.flatpickr = flatpickr;
- }
-
- return flatpickr;
-
-}));
+++ /dev/null
-.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px);}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{/*
- /*rtl:begin:ignore*/left:0;/*
- /*rtl:end:ignore*/}/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{/*
- /*rtl:begin:ignore*/right:0;/*
- /*rtl:end:ignore*/}/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9;}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px;}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto;}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%;}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box;}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0;}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%;}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto;}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05);}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0;}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block;}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto;}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px;}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9;}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left;}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left;}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}
\ No newline at end of file
+++ /dev/null
-/* flatpickr v4.6.2,, @license MIT */
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).flatpickr=t()}(this,function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},t=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],n={_disable:[],_enable:[],allowInput:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:"object"==typeof window&&-1===window.navigator.userAgent.indexOf("MSIE"),ariaDateFormat:"F j, Y",clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enable:[],enableSeconds:!1,enableTime:!1,errorHandler:function(e){return"undefined"!=typeof console&&console.warn(e)},getWeek:function(e){var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var n=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-n.getTime())/864e5-3+(n.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},a={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var t=e%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},i=function(e){return("0"+e).slice(-2)},o=function(e){return!0===e?1:0};function r(e,t,n){var a;return void 0===n&&(n=!1),function(){var i=this,o=arguments;null!==a&&clearTimeout(a),a=window.setTimeout(function(){a=null,n||e.apply(i,o)},t),n&&!a&&e.apply(i,o)}}var l=function(e){return e instanceof Array?e:[e]};function c(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function d(e,t,n){var a=window.document.createElement(e);return t=t||"",n=n||"",a.className=t,void 0!==n&&(a.textContent=n),a}function s(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function u(e,t){var n=d("div","numInputWrapper"),a=d("input","numInput "+e),i=d("span","arrowUp"),o=d("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?a.type="number":(a.type="text",a.pattern="\\d*"),void 0!==t)for(var r in t)a.setAttribute(r,t[r]);return n.appendChild(a),n.appendChild(i),n.appendChild(o),n}var f=function(){},m=function(e,t,n){return n.months[t?"shorthand":"longhand"][e]},g={D:f,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*o(new RegExp(n.amPM[1],"i").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t,n){var a=parseInt(t),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+n.firstDayOfWeek),i},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:f,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},u:function(e,t){return new Date(parseFloat(t))},w:f,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},p={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},h={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[h.w(e,t,n)]},F:function(e,t,n){return m(h.n(e,t,n)-1,!1,t)},G:function(e,t,n){return i(h.h(e,t,n))},H:function(e){return i(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[o(e.getHours()>11)]},M:function(e,t){return m(e.getMonth(),!0,t)},S:function(e){return i(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,t,n){return n.getWeek(e)},Y:function(e){return e.getFullYear()},d:function(e){return i(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return i(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:function(e){return i(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},v=function(e){var t=e.config,i=void 0===t?n:t,o=e.l10n,r=void 0===o?a:o;return function(e,t,n){var a=n||r;return void 0!==i.formatDate?i.formatDate(e,t,a):t.split("").map(function(t,n,o){return h[t]&&"\\"!==o[n-1]?h[t](e,a,i):"\\"!==t?t:""}).join("")}},D=function(e){var t=e.config,i=void 0===t?n:t,o=e.l10n,r=void 0===o?a:o;return function(e,t,a,o){if(0===e||e){var l,c=o||r,d=e;if(e instanceof Date)l=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if("string"==typeof e){var s=t||(i||n).dateFormat,u=String(e).trim();if("today"===u)l=new Date,a=!0;else if(/Z$/.test(u)||/GMT$/.test(u))l=new Date(e);else if(i&&i.parseDate)l=i.parseDate(e,s);else{l=i&&i.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var f=void 0,m=[],h=0,v=0,D="";h<s.length;h++){var w=s[h],b="\\"===w,C="\\"===s[h-1]||b;if(p[w]&&!C){D+=p[w];var M=new RegExp(D).exec(e);M&&(f=!0)&&m["Y"!==w?"push":"unshift"]({fn:g[w],val:M[++v]})}else b||(D+=".");m.forEach(function(e){var t=e.fn,n=e.val;return l=t(l,n,c)||l})}l=f?l:void 0}}if(l instanceof Date&&!isNaN(l.getTime()))return!0===a&&l.setHours(0,0,0,0),l;i.errorHandler(new Error("Invalid date provided: "+d))}}};function w(e,t,n){return void 0===n&&(n=!0),!1!==n?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var b=function(e,t,n){return e>Math.min(t,n)&&e<Math.max(t,n)},C={DAY:864e5};"function"!=typeof Object.assign&&(Object.assign=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];if(!e)throw TypeError("Cannot convert undefined or null to object");for(var a=function(t){t&&Object.keys(t).forEach(function(n){return e[n]=t[n]})},i=0,o=t;i<o.length;i++){a(o[i])}return e});var M=300;function y(f,g){var h={config:e({},n,E.defaultConfig),l10n:a};function y(e){return e.bind(h)}function x(){var e=h.config;!1===e.weekNumbers&&1===e.showMonths||!0!==e.noCalendar&&window.requestAnimationFrame(function(){if(void 0!==h.calendarContainer&&(h.calendarContainer.style.visibility="hidden",h.calendarContainer.style.display="block"),void 0!==h.daysContainer){var t=(h.days.offsetWidth+1)*e.showMonths;h.daysContainer.style.width=t+"px",h.calendarContainer.style.width=t+(void 0!==h.weekWrapper?h.weekWrapper.offsetWidth:0)+"px",h.calendarContainer.style.removeProperty("visibility"),h.calendarContainer.style.removeProperty("display")}})}function T(e){0===h.selectedDates.length&&ie(),void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var t="keydown"===e.type,n=e.target;void 0!==h.amPM&&e.target===h.amPM&&(h.amPM.textContent=h.l10n.amPM[o(h.amPM.textContent===h.l10n.amPM[0])]);var a=parseFloat(n.getAttribute("min")),r=parseFloat(n.getAttribute("max")),l=parseFloat(n.getAttribute("step")),c=parseInt(n.value,10),d=e.delta||(t?38===e.which?1:-1:0),s=c+l*d;if(void 0!==n.value&&2===n.value.length){var u=n===h.hourElement,f=n===h.minuteElement;s<a?(s=r+s+o(!u)+(o(u)&&o(!h.amPM)),f&&j(void 0,-1,h.hourElement)):s>r&&(s=n===h.hourElement?s-r-o(!h.amPM):a,f&&j(void 0,1,h.hourElement)),h.amPM&&u&&(1===l?s+c===23:Math.abs(s-c)>l)&&(h.amPM.textContent=h.l10n.amPM[o(h.amPM.textContent===h.l10n.amPM[0])]),n.value=i(s)}}(e);var t=h._input.value;k(),we(),h._input.value!==t&&h._debouncedChange()}function k(){if(void 0!==h.hourElement&&void 0!==h.minuteElement){var e,t,n=(parseInt(h.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(h.minuteElement.value,10)||0)%60,i=void 0!==h.secondElement?(parseInt(h.secondElement.value,10)||0)%60:0;void 0!==h.amPM&&(e=n,t=h.amPM.textContent,n=e%12+12*o(t===h.l10n.amPM[1]));var r=void 0!==h.config.minTime||h.config.minDate&&h.minDateHasTime&&h.latestSelectedDateObj&&0===w(h.latestSelectedDateObj,h.config.minDate,!0);if(void 0!==h.config.maxTime||h.config.maxDate&&h.maxDateHasTime&&h.latestSelectedDateObj&&0===w(h.latestSelectedDateObj,h.config.maxDate,!0)){var l=void 0!==h.config.maxTime?h.config.maxTime:h.config.maxDate;(n=Math.min(n,l.getHours()))===l.getHours()&&(a=Math.min(a,l.getMinutes())),a===l.getMinutes()&&(i=Math.min(i,l.getSeconds()))}if(r){var c=void 0!==h.config.minTime?h.config.minTime:h.config.minDate;(n=Math.max(n,c.getHours()))===c.getHours()&&(a=Math.max(a,c.getMinutes())),a===c.getMinutes()&&(i=Math.max(i,c.getSeconds()))}O(n,a,i)}}function I(e){var t=e||h.latestSelectedDateObj;t&&O(t.getHours(),t.getMinutes(),t.getSeconds())}function S(){var e=h.config.defaultHour,t=h.config.defaultMinute,n=h.config.defaultSeconds;if(void 0!==h.config.minDate){var a=h.config.minDate.getHours(),i=h.config.minDate.getMinutes();(e=Math.max(e,a))===a&&(t=Math.max(i,t)),e===a&&t===i&&(n=h.config.minDate.getSeconds())}if(void 0!==h.config.maxDate){var o=h.config.maxDate.getHours(),r=h.config.maxDate.getMinutes();(e=Math.min(e,o))===o&&(t=Math.min(r,t)),e===o&&t===r&&(n=h.config.maxDate.getSeconds())}O(e,t,n)}function O(e,t,n){void 0!==h.latestSelectedDateObj&&h.latestSelectedDateObj.setHours(e%24,t,n||0,0),h.hourElement&&h.minuteElement&&!h.isMobile&&(h.hourElement.value=i(h.config.time_24hr?e:(12+e)%12+12*o(e%12==0)),h.minuteElement.value=i(t),void 0!==h.amPM&&(h.amPM.textContent=h.l10n.amPM[o(e>=12)]),void 0!==h.secondElement&&(h.secondElement.value=i(n)))}function _(e){var t=parseInt(e.target.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&Q(t)}function F(e,t,n,a){return t instanceof Array?t.forEach(function(t){return F(e,t,n,a)}):e instanceof Array?e.forEach(function(e){return F(e,t,n,a)}):(e.addEventListener(t,n,a),void h._handlers.push({element:e,event:t,handler:n,options:a}))}function N(e){return function(t){1===t.which&&e(t)}}function Y(){ge("onChange")}function A(e,t){var n=void 0!==e?h.parseDate(e):h.latestSelectedDateObj||(h.config.minDate&&h.config.minDate>h.now?h.config.minDate:h.config.maxDate&&h.config.maxDate<h.now?h.config.maxDate:h.now),a=h.currentYear,i=h.currentMonth;try{void 0!==n&&(h.currentYear=n.getFullYear(),h.currentMonth=n.getMonth())}catch(e){e.message="Invalid date supplied: "+n,h.config.errorHandler(e)}t&&h.currentYear!==a&&(ge("onYearChange"),K()),!t||h.currentYear===a&&h.currentMonth===i||ge("onMonthChange"),h.redraw()}function P(e){~e.target.className.indexOf("arrow")&&j(e,e.target.classList.contains("arrowUp")?1:-1)}function j(e,t,n){var a=e&&e.target,i=n||a&&a.parentNode&&a.parentNode.firstChild,o=pe("increment");o.delta=t,i&&i.dispatchEvent(o)}function H(e,t,n,a){var i=X(t,!0),o=d("span","flatpickr-day "+e,t.getDate().toString());return o.dateObj=t,o.$i=a,o.setAttribute("aria-label",h.formatDate(t,h.config.ariaDateFormat)),-1===e.indexOf("hidden")&&0===w(t,h.now)&&(h.todayDateElem=o,o.classList.add("today"),o.setAttribute("aria-current","date")),i?(o.tabIndex=-1,he(t)&&(o.classList.add("selected"),h.selectedDateElem=o,"range"===h.config.mode&&(c(o,"startRange",h.selectedDates[0]&&0===w(t,h.selectedDates[0],!0)),c(o,"endRange",h.selectedDates[1]&&0===w(t,h.selectedDates[1],!0)),"nextMonthDay"===e&&o.classList.add("inRange")))):o.classList.add("flatpickr-disabled"),"range"===h.config.mode&&function(e){return!("range"!==h.config.mode||h.selectedDates.length<2)&&w(e,h.selectedDates[0])>=0&&w(e,h.selectedDates[1])<=0}(t)&&!he(t)&&o.classList.add("inRange"),h.weekNumbers&&1===h.config.showMonths&&"prevMonthDay"!==e&&n%7==1&&h.weekNumbers.insertAdjacentHTML("beforeend","<span class='flatpickr-day'>"+h.config.getWeek(t)+"</span>"),ge("onDayCreate",o),o}function L(e){e.focus(),"range"===h.config.mode&&ne(e)}function W(e){for(var t=e>0?0:h.config.showMonths-1,n=e>0?h.config.showMonths:-1,a=t;a!=n;a+=e)for(var i=h.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf("hidden")&&X(c.dateObj))return c}}function R(e,t){var n=ee(document.activeElement||document.body),a=void 0!==e?e:n?document.activeElement:void 0!==h.selectedDateElem&&ee(h.selectedDateElem)?h.selectedDateElem:void 0!==h.todayDateElem&&ee(h.todayDateElem)?h.todayDateElem:W(t>0?1:-1);return void 0===a?h._input.focus():n?void function(e,t){for(var n=-1===e.className.indexOf("Month")?e.dateObj.getMonth():h.currentMonth,a=t>0?h.config.showMonths:-1,i=t>0?1:-1,o=n-h.currentMonth;o!=a;o+=i)for(var r=h.daysContainer.children[o],l=n-h.currentMonth===o?e.$i+t:t<0?r.children.length-1:0,c=r.children.length,d=l;d>=0&&d<c&&d!=(t>0?c:-1);d+=i){var s=r.children[d];if(-1===s.className.indexOf("hidden")&&X(s.dateObj)&&Math.abs(e.$i-d)>=Math.abs(t))return L(s)}h.changeMonth(i),R(W(i),0)}(a,t):L(a)}function B(e,t){for(var n=(new Date(e,t,1).getDay()-h.l10n.firstDayOfWeek+7)%7,a=h.utils.getDaysInMonth((t-1+12)%12),i=h.utils.getDaysInMonth(t),o=window.document.createDocumentFragment(),r=h.config.showMonths>1,l=r?"prevMonthDay hidden":"prevMonthDay",c=r?"nextMonthDay hidden":"nextMonthDay",s=a+1-n,u=0;s<=a;s++,u++)o.appendChild(H(l,new Date(e,t-1,s),s,u));for(s=1;s<=i;s++,u++)o.appendChild(H("",new Date(e,t,s),s,u));for(var f=i+1;f<=42-n&&(1===h.config.showMonths||u%7!=0);f++,u++)o.appendChild(H(c,new Date(e,t+1,f%i),f,u));var m=d("div","dayContainer");return m.appendChild(o),m}function J(){if(void 0!==h.daysContainer){s(h.daysContainer),h.weekNumbers&&s(h.weekNumbers);for(var e=document.createDocumentFragment(),t=0;t<h.config.showMonths;t++){var n=new Date(h.currentYear,h.currentMonth,1);n.setMonth(h.currentMonth+t),e.appendChild(B(n.getFullYear(),n.getMonth()))}h.daysContainer.appendChild(e),h.days=h.daysContainer.firstChild,"range"===h.config.mode&&1===h.selectedDates.length&&ne()}}function K(){if(!(h.config.showMonths>1||"dropdown"!==h.config.monthSelectorType)){var e=function(e){return!(void 0!==h.config.minDate&&h.currentYear===h.config.minDate.getFullYear()&&e<h.config.minDate.getMonth())&&!(void 0!==h.config.maxDate&&h.currentYear===h.config.maxDate.getFullYear()&&e>h.config.maxDate.getMonth())};h.monthsDropdownContainer.tabIndex=-1,h.monthsDropdownContainer.innerHTML="";for(var t=0;t<12;t++)if(e(t)){var n=d("option","flatpickr-monthDropdown-month");n.value=new Date(h.currentYear,t).getMonth().toString(),n.textContent=m(t,h.config.shorthandCurrentMonth,h.l10n),n.tabIndex=-1,h.currentMonth===t&&(n.selected=!0),h.monthsDropdownContainer.appendChild(n)}}}function U(){var e,t=d("div","flatpickr-month"),n=window.document.createDocumentFragment();h.config.showMonths>1||"static"===h.config.monthSelectorType?e=d("span","cur-month"):(h.monthsDropdownContainer=d("select","flatpickr-monthDropdown-months"),F(h.monthsDropdownContainer,"change",function(e){var t=e.target,n=parseInt(t.value,10);h.changeMonth(n-h.currentMonth),ge("onMonthChange")}),K(),e=h.monthsDropdownContainer);var a=u("cur-year",{tabindex:"-1"}),i=a.getElementsByTagName("input")[0];i.setAttribute("aria-label",h.l10n.yearAriaLabel),h.config.minDate&&i.setAttribute("min",h.config.minDate.getFullYear().toString()),h.config.maxDate&&(i.setAttribute("max",h.config.maxDate.getFullYear().toString()),i.disabled=!!h.config.minDate&&h.config.minDate.getFullYear()===h.config.maxDate.getFullYear());var o=d("div","flatpickr-current-month");return o.appendChild(e),o.appendChild(a),n.appendChild(o),t.appendChild(n),{container:t,yearElement:i,monthElement:e}}function q(){s(h.monthNav),h.monthNav.appendChild(h.prevMonthNav),h.config.showMonths&&(h.yearElements=[],h.monthElements=[]);for(var e=h.config.showMonths;e--;){var t=U();h.yearElements.push(t.yearElement),h.monthElements.push(t.monthElement),h.monthNav.appendChild(t.container)}h.monthNav.appendChild(h.nextMonthNav)}function $(){h.weekdayContainer?s(h.weekdayContainer):h.weekdayContainer=d("div","flatpickr-weekdays");for(var e=h.config.showMonths;e--;){var t=d("div","flatpickr-weekdaycontainer");h.weekdayContainer.appendChild(t)}return z(),h.weekdayContainer}function z(){var e=h.l10n.firstDayOfWeek,t=h.l10n.weekdays.shorthand.slice();e>0&&e<t.length&&(t=t.splice(e,t.length).concat(t.splice(0,e)));for(var n=h.config.showMonths;n--;)h.weekdayContainer.children[n].innerHTML="\n <span class='flatpickr-weekday'>\n "+t.join("</span><span class='flatpickr-weekday'>")+"\n </span>\n "}function G(e,t){void 0===t&&(t=!0);var n=t?e:e-h.currentMonth;n<0&&!0===h._hidePrevMonthArrow||n>0&&!0===h._hideNextMonthArrow||(h.currentMonth+=n,(h.currentMonth<0||h.currentMonth>11)&&(h.currentYear+=h.currentMonth>11?1:-1,h.currentMonth=(h.currentMonth+12)%12,ge("onYearChange"),K()),J(),ge("onMonthChange"),ve())}function V(e){return!(!h.config.appendTo||!h.config.appendTo.contains(e))||h.calendarContainer.contains(e)}function Z(e){if(h.isOpen&&!h.config.inline){var t="function"==typeof(r=e).composedPath?r.composedPath()[0]:r.target,n=V(t),a=t===h.input||t===h.altInput||h.element.contains(t)||e.path&&e.path.indexOf&&(~e.path.indexOf(h.input)||~e.path.indexOf(h.altInput)),i="blur"===e.type?a&&e.relatedTarget&&!V(e.relatedTarget):!a&&!n&&!V(e.relatedTarget),o=!h.config.ignoredFocusElements.some(function(e){return e.contains(t)});i&&o&&(h.close(),"range"===h.config.mode&&1===h.selectedDates.length&&(h.clear(!1),h.redraw()))}var r}function Q(e){if(!(!e||h.config.minDate&&e<h.config.minDate.getFullYear()||h.config.maxDate&&e>h.config.maxDate.getFullYear())){var t=e,n=h.currentYear!==t;h.currentYear=t||h.currentYear,h.config.maxDate&&h.currentYear===h.config.maxDate.getFullYear()?h.currentMonth=Math.min(h.config.maxDate.getMonth(),h.currentMonth):h.config.minDate&&h.currentYear===h.config.minDate.getFullYear()&&(h.currentMonth=Math.max(h.config.minDate.getMonth(),h.currentMonth)),n&&(h.redraw(),ge("onYearChange"),K())}}function X(e,t){void 0===t&&(t=!0);var n=h.parseDate(e,void 0,t);if(h.config.minDate&&n&&w(n,h.config.minDate,void 0!==t?t:!h.minDateHasTime)<0||h.config.maxDate&&n&&w(n,h.config.maxDate,void 0!==t?t:!h.maxDateHasTime)>0)return!1;if(0===h.config.enable.length&&0===h.config.disable.length)return!0;if(void 0===n)return!1;for(var a=h.config.enable.length>0,i=a?h.config.enable:h.config.disable,o=0,r=void 0;o<i.length;o++){if("function"==typeof(r=i[o])&&r(n))return a;if(r instanceof Date&&void 0!==n&&r.getTime()===n.getTime())return a;if("string"==typeof r&&void 0!==n){var l=h.parseDate(r,void 0,!0);return l&&l.getTime()===n.getTime()?a:!a}if("object"==typeof r&&void 0!==n&&r.from&&r.to&&n.getTime()>=r.from.getTime()&&n.getTime()<=r.to.getTime())return a}return!a}function ee(e){return void 0!==h.daysContainer&&(-1===e.className.indexOf("hidden")&&h.daysContainer.contains(e))}function te(e){var t=e.target===h._input,n=h.config.allowInput,a=h.isOpen&&(!n||!t),i=h.config.inline&&t&&!n;if(13===e.keyCode&&t){if(n)return h.setDate(h._input.value,!0,e.target===h.altInput?h.config.altFormat:h.config.dateFormat),e.target.blur();h.open()}else if(V(e.target)||a||i){var o=!!h.timeContainer&&h.timeContainer.contains(e.target);switch(e.keyCode){case 13:o?(e.preventDefault(),T(),de()):se(e);break;case 27:e.preventDefault(),de();break;case 8:case 46:t&&!h.config.allowInput&&(e.preventDefault(),h.clear());break;case 37:case 39:if(o||t)h.hourElement&&h.hourElement.focus();else if(e.preventDefault(),void 0!==h.daysContainer&&(!1===n||document.activeElement&&ee(document.activeElement))){var r=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),G(r),R(W(1),0)):R(void 0,r)}break;case 38:case 40:e.preventDefault();var l=40===e.keyCode?1:-1;h.daysContainer&&void 0!==e.target.$i||e.target===h.input?e.ctrlKey?(e.stopPropagation(),Q(h.currentYear-l),R(W(1),0)):o||R(void 0,7*l):e.target===h.currentYearElement?Q(h.currentYear-l):h.config.enableTime&&(!o&&h.hourElement&&h.hourElement.focus(),T(e),h._debouncedChange());break;case 9:if(o){var c=[h.hourElement,h.minuteElement,h.secondElement,h.amPM].concat(h.pluginElements).filter(function(e){return e}),d=c.indexOf(e.target);if(-1!==d){var s=c[d+(e.shiftKey?-1:1)];e.preventDefault(),(s||h._input).focus()}}else!h.config.noCalendar&&h.daysContainer&&h.daysContainer.contains(e.target)&&e.shiftKey&&(e.preventDefault(),h._input.focus())}}if(void 0!==h.amPM&&e.target===h.amPM)switch(e.key){case h.l10n.amPM[0].charAt(0):case h.l10n.amPM[0].charAt(0).toLowerCase():h.amPM.textContent=h.l10n.amPM[0],k(),we();break;case h.l10n.amPM[1].charAt(0):case h.l10n.amPM[1].charAt(0).toLowerCase():h.amPM.textContent=h.l10n.amPM[1],k(),we()}(t||V(e.target))&&ge("onKeyDown",e)}function ne(e){if(1===h.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var t=e?e.dateObj.getTime():h.days.firstElementChild.dateObj.getTime(),n=h.parseDate(h.selectedDates[0],void 0,!0).getTime(),a=Math.min(t,h.selectedDates[0].getTime()),i=Math.max(t,h.selectedDates[0].getTime()),o=!1,r=0,l=0,c=a;c<i;c+=C.DAY)X(new Date(c),!0)||(o=o||c>a&&c<i,c<n&&(!r||c>r)?r=c:c>n&&(!l||c<l)&&(l=c));for(var d=0;d<h.config.showMonths;d++)for(var s=h.daysContainer.children[d],u=function(a,i){var c=s.children[a],d=c.dateObj.getTime(),u=r>0&&d<r||l>0&&d>l;return u?(c.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(e){c.classList.remove(e)}),"continue"):o&&!u?"continue":(["startRange","inRange","endRange","notAllowed"].forEach(function(e){c.classList.remove(e)}),void(void 0!==e&&(e.classList.add(t<=h.selectedDates[0].getTime()?"startRange":"endRange"),n<t&&d===n?c.classList.add("startRange"):n>t&&d===n&&c.classList.add("endRange"),d>=r&&(0===l||d<=l)&&b(d,n,t)&&c.classList.add("inRange"))))},f=0,m=s.children.length;f<m;f++)u(f)}}function ae(){!h.isOpen||h.config.static||h.config.inline||le()}function ie(){h.setDate(void 0!==h.config.minDate?new Date(h.config.minDate.getTime()):new Date,!0),S(),we()}function oe(e){return function(t){var n=h.config["_"+e+"Date"]=h.parseDate(t,h.config.dateFormat),a=h.config["_"+("min"===e?"max":"min")+"Date"];void 0!==n&&(h["min"===e?"minDateHasTime":"maxDateHasTime"]=n.getHours()>0||n.getMinutes()>0||n.getSeconds()>0),h.selectedDates&&(h.selectedDates=h.selectedDates.filter(function(e){return X(e)}),h.selectedDates.length||"min"!==e||I(n),we()),h.daysContainer&&(ce(),void 0!==n?h.currentYearElement[e]=n.getFullYear().toString():h.currentYearElement.removeAttribute(e),h.currentYearElement.disabled=!!a&&void 0!==n&&a.getFullYear()===n.getFullYear())}}function re(){"object"!=typeof h.config.locale&&void 0===E.l10ns[h.config.locale]&&h.config.errorHandler(new Error("flatpickr: invalid locale "+h.config.locale)),h.l10n=e({},E.l10ns.default,"object"==typeof h.config.locale?h.config.locale:"default"!==h.config.locale?E.l10ns[h.config.locale]:void 0),p.K="("+h.l10n.amPM[0]+"|"+h.l10n.amPM[1]+"|"+h.l10n.amPM[0].toLowerCase()+"|"+h.l10n.amPM[1].toLowerCase()+")",void 0===e({},g,JSON.parse(JSON.stringify(f.dataset||{}))).time_24hr&&void 0===E.defaultConfig.time_24hr&&(h.config.time_24hr=h.l10n.time_24hr),h.formatDate=v(h),h.parseDate=D({config:h.config,l10n:h.l10n})}function le(e){if(void 0!==h.calendarContainer){ge("onPreCalendarPosition");var t=e||h._positionElement,n=Array.prototype.reduce.call(h.calendarContainer.children,function(e,t){return e+t.offsetHeight},0),a=h.calendarContainer.offsetWidth,i=h.config.position.split(" "),o=i[0],r=i.length>1?i[1]:null,l=t.getBoundingClientRect(),d=window.innerHeight-l.bottom,s="above"===o||"below"!==o&&d<n&&l.top>n,u=window.pageYOffset+l.top+(s?-n-2:t.offsetHeight+2);if(c(h.calendarContainer,"arrowTop",!s),c(h.calendarContainer,"arrowBottom",s),!h.config.inline){var f=window.pageXOffset+l.left-(null!=r&&"center"===r?(a-l.width)/2:0),m=window.document.body.offsetWidth-l.right,g=f+a>window.document.body.offsetWidth,p=m+a>window.document.body.offsetWidth;if(c(h.calendarContainer,"rightMost",g),!h.config.static)if(h.calendarContainer.style.top=u+"px",g)if(p){var v=document.styleSheets[0];if(void 0===v)return;var D=window.document.body.offsetWidth,w=Math.max(0,D/2-a/2),b=v.cssRules.length,C="{left:"+l.left+"px;right:auto;}";c(h.calendarContainer,"rightMost",!1),c(h.calendarContainer,"centerMost",!0),v.insertRule(".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after"+C,b),h.calendarContainer.style.left=w+"px",h.calendarContainer.style.right="auto"}else h.calendarContainer.style.left="auto",h.calendarContainer.style.right=m+"px";else h.calendarContainer.style.left=f+"px",h.calendarContainer.style.right="auto"}}}function ce(){h.config.noCalendar||h.isMobile||(ve(),J())}function de(){h._input.focus(),-1!==window.navigator.userAgent.indexOf("MSIE")||void 0!==navigator.msMaxTouchPoints?setTimeout(h.close,0):h.close()}function se(e){e.preventDefault(),e.stopPropagation();var t=function e(t,n){return n(t)?t:t.parentNode?e(t.parentNode,n):void 0}(e.target,function(e){return e.classList&&e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled")&&!e.classList.contains("notAllowed")});if(void 0!==t){var n=t,a=h.latestSelectedDateObj=new Date(n.dateObj.getTime()),i=(a.getMonth()<h.currentMonth||a.getMonth()>h.currentMonth+h.config.showMonths-1)&&"range"!==h.config.mode;if(h.selectedDateElem=n,"single"===h.config.mode)h.selectedDates=[a];else if("multiple"===h.config.mode){var o=he(a);o?h.selectedDates.splice(parseInt(o),1):h.selectedDates.push(a)}else"range"===h.config.mode&&(2===h.selectedDates.length&&h.clear(!1,!1),h.latestSelectedDateObj=a,h.selectedDates.push(a),0!==w(a,h.selectedDates[0],!0)&&h.selectedDates.sort(function(e,t){return e.getTime()-t.getTime()}));if(k(),i){var r=h.currentYear!==a.getFullYear();h.currentYear=a.getFullYear(),h.currentMonth=a.getMonth(),r&&(ge("onYearChange"),K()),ge("onMonthChange")}if(ve(),J(),we(),h.config.enableTime&&setTimeout(function(){return h.showTimeInput=!0},50),i||"range"===h.config.mode||1!==h.config.showMonths?void 0!==h.selectedDateElem&&void 0===h.hourElement&&h.selectedDateElem&&h.selectedDateElem.focus():L(n),void 0!==h.hourElement&&void 0!==h.hourElement&&h.hourElement.focus(),h.config.closeOnSelect){var l="single"===h.config.mode&&!h.config.enableTime,c="range"===h.config.mode&&2===h.selectedDates.length&&!h.config.enableTime;(l||c)&&de()}Y()}}h.parseDate=D({config:h.config,l10n:h.l10n}),h._handlers=[],h.pluginElements=[],h.loadedPlugins=[],h._bind=F,h._setHoursFromDate=I,h._positionCalendar=le,h.changeMonth=G,h.changeYear=Q,h.clear=function(e,t){void 0===e&&(e=!0);void 0===t&&(t=!0);h.input.value="",void 0!==h.altInput&&(h.altInput.value="");void 0!==h.mobileInput&&(h.mobileInput.value="");h.selectedDates=[],h.latestSelectedDateObj=void 0,!0===t&&(h.currentYear=h._initialDate.getFullYear(),h.currentMonth=h._initialDate.getMonth());h.showTimeInput=!1,!0===h.config.enableTime&&S();h.redraw(),e&&ge("onChange")},h.close=function(){h.isOpen=!1,h.isMobile||(void 0!==h.calendarContainer&&h.calendarContainer.classList.remove("open"),void 0!==h._input&&h._input.classList.remove("active"));ge("onClose")},h._createElement=d,h.destroy=function(){void 0!==h.config&&ge("onDestroy");for(var e=h._handlers.length;e--;){var t=h._handlers[e];t.element.removeEventListener(t.event,t.handler,t.options)}if(h._handlers=[],h.mobileInput)h.mobileInput.parentNode&&h.mobileInput.parentNode.removeChild(h.mobileInput),h.mobileInput=void 0;else if(h.calendarContainer&&h.calendarContainer.parentNode)if(h.config.static&&h.calendarContainer.parentNode){var n=h.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else h.calendarContainer.parentNode.removeChild(h.calendarContainer);h.altInput&&(h.input.type="text",h.altInput.parentNode&&h.altInput.parentNode.removeChild(h.altInput),delete h.altInput);h.input&&(h.input.type=h.input._type,h.input.classList.remove("flatpickr-input"),h.input.removeAttribute("readonly"),h.input.value="");["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(e){try{delete h[e]}catch(e){}})},h.isEnabled=X,h.jumpToDate=A,h.open=function(e,t){void 0===t&&(t=h._positionElement);if(!0===h.isMobile)return e&&(e.preventDefault(),e.target&&e.target.blur()),void 0!==h.mobileInput&&(h.mobileInput.focus(),h.mobileInput.click()),void ge("onOpen");if(h._input.disabled||h.config.inline)return;var n=h.isOpen;h.isOpen=!0,n||(h.calendarContainer.classList.add("open"),h._input.classList.add("active"),ge("onOpen"),le(t));!0===h.config.enableTime&&!0===h.config.noCalendar&&(0===h.selectedDates.length&&ie(),!1!==h.config.allowInput||void 0!==e&&h.timeContainer.contains(e.relatedTarget)||setTimeout(function(){return h.hourElement.select()},50))},h.redraw=ce,h.set=function(e,n){if(null!==e&&"object"==typeof e)for(var a in Object.assign(h.config,e),e)void 0!==ue[a]&&ue[a].forEach(function(e){return e()});else h.config[e]=n,void 0!==ue[e]?ue[e].forEach(function(e){return e()}):t.indexOf(e)>-1&&(h.config[e]=l(n));h.redraw(),we(!1)},h.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=h.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return h.clear(t);fe(e,n),h.showTimeInput=h.selectedDates.length>0,h.latestSelectedDateObj=h.selectedDates[h.selectedDates.length-1],h.redraw(),A(),I(),0===h.selectedDates.length&&h.clear(!1);we(t),t&&ge("onChange")},h.toggle=function(e){if(!0===h.isOpen)return h.close();h.open(e)};var ue={locale:[re,z],showMonths:[q,x,$],minDate:[A],maxDate:[A]};function fe(e,t){var n=[];if(e instanceof Array)n=e.map(function(e){return h.parseDate(e,t)});else if(e instanceof Date||"number"==typeof e)n=[h.parseDate(e,t)];else if("string"==typeof e)switch(h.config.mode){case"single":case"time":n=[h.parseDate(e,t)];break;case"multiple":n=e.split(h.config.conjunction).map(function(e){return h.parseDate(e,t)});break;case"range":n=e.split(h.l10n.rangeSeparator).map(function(e){return h.parseDate(e,t)})}else h.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));h.selectedDates=n.filter(function(e){return e instanceof Date&&X(e,!1)}),"range"===h.config.mode&&h.selectedDates.sort(function(e,t){return e.getTime()-t.getTime()})}function me(e){return e.slice().map(function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?h.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:h.parseDate(e.from,void 0),to:h.parseDate(e.to,void 0)}:e}).filter(function(e){return e})}function ge(e,t){if(void 0!==h.config){var n=h.config[e];if(void 0!==n&&n.length>0)for(var a=0;n[a]&&a<n.length;a++)n[a](h.selectedDates,h.input.value,h,t);"onChange"===e&&(h.input.dispatchEvent(pe("change")),h.input.dispatchEvent(pe("input")))}}function pe(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!0),t}function he(e){for(var t=0;t<h.selectedDates.length;t++)if(0===w(h.selectedDates[t],e))return""+t;return!1}function ve(){h.config.noCalendar||h.isMobile||!h.monthNav||(h.yearElements.forEach(function(e,t){var n=new Date(h.currentYear,h.currentMonth,1);n.setMonth(h.currentMonth+t),h.config.showMonths>1||"static"===h.config.monthSelectorType?h.monthElements[t].textContent=m(n.getMonth(),h.config.shorthandCurrentMonth,h.l10n)+" ":h.monthsDropdownContainer.value=n.getMonth().toString(),e.value=n.getFullYear().toString()}),h._hidePrevMonthArrow=void 0!==h.config.minDate&&(h.currentYear===h.config.minDate.getFullYear()?h.currentMonth<=h.config.minDate.getMonth():h.currentYear<h.config.minDate.getFullYear()),h._hideNextMonthArrow=void 0!==h.config.maxDate&&(h.currentYear===h.config.maxDate.getFullYear()?h.currentMonth+1>h.config.maxDate.getMonth():h.currentYear>h.config.maxDate.getFullYear()))}function De(e){return h.selectedDates.map(function(t){return h.formatDate(t,e)}).filter(function(e,t,n){return"range"!==h.config.mode||h.config.enableTime||n.indexOf(e)===t}).join("range"!==h.config.mode?h.config.conjunction:h.l10n.rangeSeparator)}function we(e){void 0===e&&(e=!0),void 0!==h.mobileInput&&h.mobileFormatStr&&(h.mobileInput.value=void 0!==h.latestSelectedDateObj?h.formatDate(h.latestSelectedDateObj,h.mobileFormatStr):""),h.input.value=De(h.config.dateFormat),void 0!==h.altInput&&(h.altInput.value=De(h.config.altFormat)),!1!==e&&ge("onValueUpdate")}function be(e){var t=h.prevMonthNav.contains(e.target),n=h.nextMonthNav.contains(e.target);t||n?G(t?-1:1):h.yearElements.indexOf(e.target)>=0?e.target.select():e.target.classList.contains("arrowUp")?h.changeYear(h.currentYear+1):e.target.classList.contains("arrowDown")&&h.changeYear(h.currentYear-1)}return function(){h.element=h.input=f,h.isOpen=!1,function(){var a=["wrap","weekNumbers","allowInput","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],i=e({},g,JSON.parse(JSON.stringify(f.dataset||{}))),o={};h.config.parseDate=i.parseDate,h.config.formatDate=i.formatDate,Object.defineProperty(h.config,"enable",{get:function(){return h.config._enable},set:function(e){h.config._enable=me(e)}}),Object.defineProperty(h.config,"disable",{get:function(){return h.config._disable},set:function(e){h.config._disable=me(e)}});var r="time"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var c=E.defaultConfig.dateFormat||n.dateFormat;o.dateFormat=i.noCalendar||r?"H:i"+(i.enableSeconds?":S":""):c+" H:i"+(i.enableSeconds?":S":"")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var d=E.defaultConfig.altFormat||n.altFormat;o.altFormat=i.noCalendar||r?"h:i"+(i.enableSeconds?":S K":" K"):d+" h:i"+(i.enableSeconds?":S":"")+" K"}i.altInputClass||(h.config.altInputClass=h.input.className+" "+h.config.altInputClass),Object.defineProperty(h.config,"minDate",{get:function(){return h.config._minDate},set:oe("min")}),Object.defineProperty(h.config,"maxDate",{get:function(){return h.config._maxDate},set:oe("max")});var s=function(e){return function(t){h.config["min"===e?"_minTime":"_maxTime"]=h.parseDate(t,"H:i")}};Object.defineProperty(h.config,"minTime",{get:function(){return h.config._minTime},set:s("min")}),Object.defineProperty(h.config,"maxTime",{get:function(){return h.config._maxTime},set:s("max")}),"time"===i.mode&&(h.config.noCalendar=!0,h.config.enableTime=!0),Object.assign(h.config,o,i);for(var u=0;u<a.length;u++)h.config[a[u]]=!0===h.config[a[u]]||"true"===h.config[a[u]];t.filter(function(e){return void 0!==h.config[e]}).forEach(function(e){h.config[e]=l(h.config[e]||[]).map(y)}),h.isMobile=!h.config.disableMobile&&!h.config.inline&&"single"===h.config.mode&&!h.config.disable.length&&!h.config.enable.length&&!h.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(var u=0;u<h.config.plugins.length;u++){var m=h.config.plugins[u](h)||{};for(var p in m)t.indexOf(p)>-1?h.config[p]=l(m[p]).map(y).concat(h.config[p]):void 0===i[p]&&(h.config[p]=m[p])}ge("onParseConfig")}(),re(),h.input=h.config.wrap?f.querySelector("[data-input]"):f,h.input?(h.input._type=h.input.type,h.input.type="text",h.input.classList.add("flatpickr-input"),h._input=h.input,h.config.altInput&&(h.altInput=d(h.input.nodeName,h.config.altInputClass),h._input=h.altInput,h.altInput.placeholder=h.input.placeholder,h.altInput.disabled=h.input.disabled,h.altInput.required=h.input.required,h.altInput.tabIndex=h.input.tabIndex,h.altInput.type="text",h.input.setAttribute("type","hidden"),!h.config.static&&h.input.parentNode&&h.input.parentNode.insertBefore(h.altInput,h.input.nextSibling)),h.config.allowInput||h._input.setAttribute("readonly","readonly"),h._positionElement=h.config.positionElement||h._input):h.config.errorHandler(new Error("Invalid input element specified")),function(){h.selectedDates=[],h.now=h.parseDate(h.config.now)||new Date;var e=h.config.defaultDate||("INPUT"!==h.input.nodeName&&"TEXTAREA"!==h.input.nodeName||!h.input.placeholder||h.input.value!==h.input.placeholder?h.input.value:null);e&&fe(e,h.config.dateFormat),h._initialDate=h.selectedDates.length>0?h.selectedDates[0]:h.config.minDate&&h.config.minDate.getTime()>h.now.getTime()?h.config.minDate:h.config.maxDate&&h.config.maxDate.getTime()<h.now.getTime()?h.config.maxDate:h.now,h.currentYear=h._initialDate.getFullYear(),h.currentMonth=h._initialDate.getMonth(),h.selectedDates.length>0&&(h.latestSelectedDateObj=h.selectedDates[0]),void 0!==h.config.minTime&&(h.config.minTime=h.parseDate(h.config.minTime,"H:i")),void 0!==h.config.maxTime&&(h.config.maxTime=h.parseDate(h.config.maxTime,"H:i")),h.minDateHasTime=!!h.config.minDate&&(h.config.minDate.getHours()>0||h.config.minDate.getMinutes()>0||h.config.minDate.getSeconds()>0),h.maxDateHasTime=!!h.config.maxDate&&(h.config.maxDate.getHours()>0||h.config.maxDate.getMinutes()>0||h.config.maxDate.getSeconds()>0),Object.defineProperty(h,"showTimeInput",{get:function(){return h._showTimeInput},set:function(e){h._showTimeInput=e,h.calendarContainer&&c(h.calendarContainer,"showTimeInput",e),h.isOpen&&le()}})}(),h.utils={getDaysInMonth:function(e,t){return void 0===e&&(e=h.currentMonth),void 0===t&&(t=h.currentYear),1===e&&(t%4==0&&t%100!=0||t%400==0)?29:h.l10n.daysInMonth[e]}},h.isMobile||function(){var e=window.document.createDocumentFragment();if(h.calendarContainer=d("div","flatpickr-calendar"),h.calendarContainer.tabIndex=-1,!h.config.noCalendar){if(e.appendChild((h.monthNav=d("div","flatpickr-months"),h.yearElements=[],h.monthElements=[],h.prevMonthNav=d("span","flatpickr-prev-month"),h.prevMonthNav.innerHTML=h.config.prevArrow,h.nextMonthNav=d("span","flatpickr-next-month"),h.nextMonthNav.innerHTML=h.config.nextArrow,q(),Object.defineProperty(h,"_hidePrevMonthArrow",{get:function(){return h.__hidePrevMonthArrow},set:function(e){h.__hidePrevMonthArrow!==e&&(c(h.prevMonthNav,"flatpickr-disabled",e),h.__hidePrevMonthArrow=e)}}),Object.defineProperty(h,"_hideNextMonthArrow",{get:function(){return h.__hideNextMonthArrow},set:function(e){h.__hideNextMonthArrow!==e&&(c(h.nextMonthNav,"flatpickr-disabled",e),h.__hideNextMonthArrow=e)}}),h.currentYearElement=h.yearElements[0],ve(),h.monthNav)),h.innerContainer=d("div","flatpickr-innerContainer"),h.config.weekNumbers){var t=function(){h.calendarContainer.classList.add("hasWeeks");var e=d("div","flatpickr-weekwrapper");e.appendChild(d("span","flatpickr-weekday",h.l10n.weekAbbreviation));var t=d("div","flatpickr-weeks");return e.appendChild(t),{weekWrapper:e,weekNumbers:t}}(),n=t.weekWrapper,a=t.weekNumbers;h.innerContainer.appendChild(n),h.weekNumbers=a,h.weekWrapper=n}h.rContainer=d("div","flatpickr-rContainer"),h.rContainer.appendChild($()),h.daysContainer||(h.daysContainer=d("div","flatpickr-days"),h.daysContainer.tabIndex=-1),J(),h.rContainer.appendChild(h.daysContainer),h.innerContainer.appendChild(h.rContainer),e.appendChild(h.innerContainer)}h.config.enableTime&&e.appendChild(function(){h.calendarContainer.classList.add("hasTime"),h.config.noCalendar&&h.calendarContainer.classList.add("noCalendar"),h.timeContainer=d("div","flatpickr-time"),h.timeContainer.tabIndex=-1;var e=d("span","flatpickr-time-separator",":"),t=u("flatpickr-hour",{"aria-label":h.l10n.hourAriaLabel});h.hourElement=t.getElementsByTagName("input")[0];var n=u("flatpickr-minute",{"aria-label":h.l10n.minuteAriaLabel});if(h.minuteElement=n.getElementsByTagName("input")[0],h.hourElement.tabIndex=h.minuteElement.tabIndex=-1,h.hourElement.value=i(h.latestSelectedDateObj?h.latestSelectedDateObj.getHours():h.config.time_24hr?h.config.defaultHour:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(h.config.defaultHour)),h.minuteElement.value=i(h.latestSelectedDateObj?h.latestSelectedDateObj.getMinutes():h.config.defaultMinute),h.hourElement.setAttribute("step",h.config.hourIncrement.toString()),h.minuteElement.setAttribute("step",h.config.minuteIncrement.toString()),h.hourElement.setAttribute("min",h.config.time_24hr?"0":"1"),h.hourElement.setAttribute("max",h.config.time_24hr?"23":"12"),h.minuteElement.setAttribute("min","0"),h.minuteElement.setAttribute("max","59"),h.timeContainer.appendChild(t),h.timeContainer.appendChild(e),h.timeContainer.appendChild(n),h.config.time_24hr&&h.timeContainer.classList.add("time24hr"),h.config.enableSeconds){h.timeContainer.classList.add("hasSeconds");var a=u("flatpickr-second");h.secondElement=a.getElementsByTagName("input")[0],h.secondElement.value=i(h.latestSelectedDateObj?h.latestSelectedDateObj.getSeconds():h.config.defaultSeconds),h.secondElement.setAttribute("step",h.minuteElement.getAttribute("step")),h.secondElement.setAttribute("min","0"),h.secondElement.setAttribute("max","59"),h.timeContainer.appendChild(d("span","flatpickr-time-separator",":")),h.timeContainer.appendChild(a)}return h.config.time_24hr||(h.amPM=d("span","flatpickr-am-pm",h.l10n.amPM[o((h.latestSelectedDateObj?h.hourElement.value:h.config.defaultHour)>11)]),h.amPM.title=h.l10n.toggleTitle,h.amPM.tabIndex=-1,h.timeContainer.appendChild(h.amPM)),h.timeContainer}()),c(h.calendarContainer,"rangeMode","range"===h.config.mode),c(h.calendarContainer,"animate",!0===h.config.animate),c(h.calendarContainer,"multiMonth",h.config.showMonths>1),h.calendarContainer.appendChild(e);var r=void 0!==h.config.appendTo&&void 0!==h.config.appendTo.nodeType;if((h.config.inline||h.config.static)&&(h.calendarContainer.classList.add(h.config.inline?"inline":"static"),h.config.inline&&(!r&&h.element.parentNode?h.element.parentNode.insertBefore(h.calendarContainer,h._input.nextSibling):void 0!==h.config.appendTo&&h.config.appendTo.appendChild(h.calendarContainer)),h.config.static)){var l=d("div","flatpickr-wrapper");h.element.parentNode&&h.element.parentNode.insertBefore(l,h.element),l.appendChild(h.element),h.altInput&&l.appendChild(h.altInput),l.appendChild(h.calendarContainer)}h.config.static||h.config.inline||(void 0!==h.config.appendTo?h.config.appendTo:window.document.body).appendChild(h.calendarContainer)}(),function(){if(h.config.wrap&&["open","close","toggle","clear"].forEach(function(e){Array.prototype.forEach.call(h.element.querySelectorAll("[data-"+e+"]"),function(t){return F(t,"click",h[e])})}),h.isMobile)!function(){var e=h.config.enableTime?h.config.noCalendar?"time":"datetime-local":"date";h.mobileInput=d("input",h.input.className+" flatpickr-mobile"),h.mobileInput.step=h.input.getAttribute("step")||"any",h.mobileInput.tabIndex=1,h.mobileInput.type=e,h.mobileInput.disabled=h.input.disabled,h.mobileInput.required=h.input.required,h.mobileInput.placeholder=h.input.placeholder,h.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",h.selectedDates.length>0&&(h.mobileInput.defaultValue=h.mobileInput.value=h.formatDate(h.selectedDates[0],h.mobileFormatStr)),h.config.minDate&&(h.mobileInput.min=h.formatDate(h.config.minDate,"Y-m-d")),h.config.maxDate&&(h.mobileInput.max=h.formatDate(h.config.maxDate,"Y-m-d")),h.input.type="hidden",void 0!==h.altInput&&(h.altInput.type="hidden");try{h.input.parentNode&&h.input.parentNode.insertBefore(h.mobileInput,h.input.nextSibling)}catch(e){}F(h.mobileInput,"change",function(e){h.setDate(e.target.value,!1,h.mobileFormatStr),ge("onChange"),ge("onClose")})}();else{var e=r(ae,50);h._debouncedChange=r(Y,M),h.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&F(h.daysContainer,"mouseover",function(e){"range"===h.config.mode&&ne(e.target)}),F(window.document.body,"keydown",te),h.config.inline||h.config.static||F(window,"resize",e),void 0!==window.ontouchstart?F(window.document,"touchstart",Z):F(window.document,"mousedown",N(Z)),F(window.document,"focus",Z,{capture:!0}),!0===h.config.clickOpens&&(F(h._input,"focus",h.open),F(h._input,"mousedown",N(h.open))),void 0!==h.daysContainer&&(F(h.monthNav,"mousedown",N(be)),F(h.monthNav,["keyup","increment"],_),F(h.daysContainer,"mousedown",N(se))),void 0!==h.timeContainer&&void 0!==h.minuteElement&&void 0!==h.hourElement&&(F(h.timeContainer,["increment"],T),F(h.timeContainer,"blur",T,{capture:!0}),F(h.timeContainer,"mousedown",N(P)),F([h.hourElement,h.minuteElement],["focus","click"],function(e){return e.target.select()}),void 0!==h.secondElement&&F(h.secondElement,"focus",function(){return h.secondElement&&h.secondElement.select()}),void 0!==h.amPM&&F(h.amPM,"mousedown",N(function(e){T(e),Y()})))}}(),(h.selectedDates.length||h.config.noCalendar)&&(h.config.enableTime&&I(h.config.noCalendar?h.latestSelectedDateObj||h.config.minDate:void 0),we(!1)),x(),h.showTimeInput=h.selectedDates.length>0||h.config.noCalendar;var a=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!h.isMobile&&a&&le(),ge("onReady")}(),h}function x(e,t){for(var n=Array.prototype.slice.call(e).filter(function(e){return e instanceof HTMLElement}),a=[],i=0;i<n.length;i++){var o=n[i];try{if(null!==o.getAttribute("data-fp-omit"))continue;void 0!==o._flatpickr&&(o._flatpickr.destroy(),o._flatpickr=void 0),o._flatpickr=y(o,t||{}),a.push(o._flatpickr)}catch(e){console.error(e)}}return 1===a.length?a[0]:a}"undefined"!=typeof HTMLElement&&"undefined"!=typeof HTMLCollection&&"undefined"!=typeof NodeList&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(e){return x(this,e)},HTMLElement.prototype.flatpickr=function(e){return x([this],e)});var E=function(e,t){return"string"==typeof e?x(window.document.querySelectorAll(e),t):e instanceof Node?x([e],t):x(e,t)};return E.defaultConfig={},E.l10ns={en:e({},a),default:e({},a)},E.localize=function(t){E.l10ns.default=e({},E.l10ns.default,t)},E.setDefaults=function(t){E.defaultConfig=e({},E.defaultConfig,t)},E.parseDate=D({}),E.formatDate=v({}),E.compareDates=w,"undefined"!=typeof jQuery&&void 0!==jQuery.fn&&(jQuery.fn.flatpickr=function(e){return x(this,e)}),Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+("string"==typeof e?parseInt(e,10):e))},"undefined"!=typeof window&&(window.flatpickr=E),E});
\ No newline at end of file
+++ /dev/null
-span.flatpickr-weekday {
- display: inline-block;
- width: 14.2857143%;
-}
-span.flatpickr-day {
- width: 14.2857143%;
- margin: 0 2.491071428571428px;
-}
-@media screen and (min-width: 0\0) {
- div.flatpickr-current-month {
- padding-top: 0px !important;
- }
-}
+++ /dev/null
-import { FlatpickrFn } from "./types/instance";
-import "./utils/polyfills";
-declare var flatpickr: FlatpickrFn;
-export default flatpickr;
+++ /dev/null
-import { CustomLocale } from "../types/locale";
-export declare const German: CustomLocale;
-declare const _default: {
- default?: CustomLocale | undefined;
- hr?: CustomLocale | undefined;
- th?: CustomLocale | undefined;
- tr?: CustomLocale | undefined;
- ar?: CustomLocale | undefined;
- at?: CustomLocale | undefined;
- az?: CustomLocale | undefined;
- be?: CustomLocale | undefined;
- bg?: CustomLocale | undefined;
- bn?: CustomLocale | undefined;
- bs?: CustomLocale | undefined;
- cat?: CustomLocale | undefined;
- cs?: CustomLocale | undefined;
- cy?: CustomLocale | undefined;
- da?: CustomLocale | undefined;
- de?: CustomLocale | undefined;
- en?: CustomLocale | undefined;
- eo?: CustomLocale | undefined;
- es?: CustomLocale | undefined;
- et?: CustomLocale | undefined;
- fa?: CustomLocale | undefined;
- fi?: CustomLocale | undefined;
- fo?: CustomLocale | undefined;
- fr?: CustomLocale | undefined;
- gr?: CustomLocale | undefined;
- he?: CustomLocale | undefined;
- hi?: CustomLocale | undefined;
- hu?: CustomLocale | undefined;
- id?: CustomLocale | undefined;
- is?: CustomLocale | undefined;
- it?: CustomLocale | undefined;
- ja?: CustomLocale | undefined;
- ka?: CustomLocale | undefined;
- ko?: CustomLocale | undefined;
- km?: CustomLocale | undefined;
- kz?: CustomLocale | undefined;
- lt?: CustomLocale | undefined;
- lv?: CustomLocale | undefined;
- mk?: CustomLocale | undefined;
- mn?: CustomLocale | undefined;
- ms?: CustomLocale | undefined;
- my?: CustomLocale | undefined;
- nl?: CustomLocale | undefined;
- no?: CustomLocale | undefined;
- pa?: CustomLocale | undefined;
- pl?: CustomLocale | undefined;
- pt?: CustomLocale | undefined;
- ro?: CustomLocale | undefined;
- ru?: CustomLocale | undefined;
- si?: CustomLocale | undefined;
- sk?: CustomLocale | undefined;
- sl?: CustomLocale | undefined;
- sq?: CustomLocale | undefined;
- sr?: CustomLocale | undefined;
- sv?: CustomLocale | undefined;
- uk?: CustomLocale | undefined;
- vn?: CustomLocale | undefined;
- zh?: CustomLocale | undefined;
- zh_tw?: CustomLocale | undefined;
-} & {
- default: import("../types/locale").Locale;
-};
-export default _default;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory(global.de = {}));
-}(this, function (exports) { 'use strict';
-
- var fp = typeof window !== "undefined" && window.flatpickr !== undefined
- ? window.flatpickr
- : {
- l10ns: {}
- };
- var German = {
- weekdays: {
- shorthand: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
- longhand: [
- "Sonntag",
- "Montag",
- "Dienstag",
- "Mittwoch",
- "Donnerstag",
- "Freitag",
- "Samstag",
- ]
- },
- months: {
- shorthand: [
- "Jan",
- "Feb",
- "Mär",
- "Apr",
- "Mai",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez",
- ],
- longhand: [
- "Januar",
- "Februar",
- "März",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember",
- ]
- },
- firstDayOfWeek: 1,
- weekAbbreviation: "KW",
- rangeSeparator: " bis ",
- scrollTitle: "Zum Ändern scrollen",
- toggleTitle: "Zum Umschalten klicken",
- time_24hr: true
- };
- fp.l10ns.de = German;
- var de = fp.l10ns;
-
- exports.German = German;
- exports.default = de;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
+++ /dev/null
-import { Locale } from "../types/locale";
-export declare const english: Locale;
-export default english;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory(global.default = {}));
-}(this, function (exports) { 'use strict';
-
- var english = {
- weekdays: {
- shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- longhand: [
- "Sunday",
- "Monday",
- "Tuesday",
- "Wednesday",
- "Thursday",
- "Friday",
- "Saturday",
- ]
- },
- months: {
- shorthand: [
- "Jan",
- "Feb",
- "Mar",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Oct",
- "Nov",
- "Dec",
- ],
- longhand: [
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December",
- ]
- },
- daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
- firstDayOfWeek: 0,
- ordinal: function (nth) {
- var s = nth % 100;
- if (s > 3 && s < 21)
- return "th";
- switch (s % 10) {
- case 1:
- return "st";
- case 2:
- return "nd";
- case 3:
- return "rd";
- default:
- return "th";
- }
- },
- rangeSeparator: " to ",
- weekAbbreviation: "Wk",
- scrollTitle: "Scroll to increment",
- toggleTitle: "Click to toggle",
- amPM: ["AM", "PM"],
- yearAriaLabel: "Year",
- hourAriaLabel: "Hour",
- minuteAriaLabel: "Minute",
- time_24hr: false
- };
-
- exports.default = english;
- exports.english = english;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
+++ /dev/null
-import { CustomLocale } from "../types/locale";
-export declare const French: CustomLocale;
-declare const _default: {
- default?: CustomLocale | undefined;
- hr?: CustomLocale | undefined;
- th?: CustomLocale | undefined;
- tr?: CustomLocale | undefined;
- ar?: CustomLocale | undefined;
- at?: CustomLocale | undefined;
- az?: CustomLocale | undefined;
- be?: CustomLocale | undefined;
- bg?: CustomLocale | undefined;
- bn?: CustomLocale | undefined;
- bs?: CustomLocale | undefined;
- cat?: CustomLocale | undefined;
- cs?: CustomLocale | undefined;
- cy?: CustomLocale | undefined;
- da?: CustomLocale | undefined;
- de?: CustomLocale | undefined;
- en?: CustomLocale | undefined;
- eo?: CustomLocale | undefined;
- es?: CustomLocale | undefined;
- et?: CustomLocale | undefined;
- fa?: CustomLocale | undefined;
- fi?: CustomLocale | undefined;
- fo?: CustomLocale | undefined;
- fr?: CustomLocale | undefined;
- gr?: CustomLocale | undefined;
- he?: CustomLocale | undefined;
- hi?: CustomLocale | undefined;
- hu?: CustomLocale | undefined;
- id?: CustomLocale | undefined;
- is?: CustomLocale | undefined;
- it?: CustomLocale | undefined;
- ja?: CustomLocale | undefined;
- ka?: CustomLocale | undefined;
- ko?: CustomLocale | undefined;
- km?: CustomLocale | undefined;
- kz?: CustomLocale | undefined;
- lt?: CustomLocale | undefined;
- lv?: CustomLocale | undefined;
- mk?: CustomLocale | undefined;
- mn?: CustomLocale | undefined;
- ms?: CustomLocale | undefined;
- my?: CustomLocale | undefined;
- nl?: CustomLocale | undefined;
- no?: CustomLocale | undefined;
- pa?: CustomLocale | undefined;
- pl?: CustomLocale | undefined;
- pt?: CustomLocale | undefined;
- ro?: CustomLocale | undefined;
- ru?: CustomLocale | undefined;
- si?: CustomLocale | undefined;
- sk?: CustomLocale | undefined;
- sl?: CustomLocale | undefined;
- sq?: CustomLocale | undefined;
- sr?: CustomLocale | undefined;
- sv?: CustomLocale | undefined;
- uk?: CustomLocale | undefined;
- vn?: CustomLocale | undefined;
- zh?: CustomLocale | undefined;
- zh_tw?: CustomLocale | undefined;
-} & {
- default: import("../types/locale").Locale;
-};
-export default _default;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory(global.fr = {}));
-}(this, function (exports) { 'use strict';
-
- var fp = typeof window !== "undefined" && window.flatpickr !== undefined
- ? window.flatpickr
- : {
- l10ns: {}
- };
- var French = {
- firstDayOfWeek: 1,
- weekdays: {
- shorthand: ["dim", "lun", "mar", "mer", "jeu", "ven", "sam"],
- longhand: [
- "dimanche",
- "lundi",
- "mardi",
- "mercredi",
- "jeudi",
- "vendredi",
- "samedi",
- ]
- },
- months: {
- shorthand: [
- "janv",
- "févr",
- "mars",
- "avr",
- "mai",
- "juin",
- "juil",
- "août",
- "sept",
- "oct",
- "nov",
- "déc",
- ],
- longhand: [
- "janvier",
- "février",
- "mars",
- "avril",
- "mai",
- "juin",
- "juillet",
- "août",
- "septembre",
- "octobre",
- "novembre",
- "décembre",
- ]
- },
- ordinal: function (nth) {
- if (nth > 1)
- return "";
- return "er";
- },
- rangeSeparator: " au ",
- weekAbbreviation: "Sem",
- scrollTitle: "Défiler pour augmenter la valeur",
- toggleTitle: "Cliquer pour basculer",
- time_24hr: true
- };
- fp.l10ns.fr = French;
- var fr = fp.l10ns;
-
- exports.French = French;
- exports.default = fr;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
+++ /dev/null
-import { CustomLocale } from "../types/locale";
-export declare const Luxembourgish: CustomLocale;
-declare const _default: {
- default?: CustomLocale | undefined;
- hr?: CustomLocale | undefined;
- th?: CustomLocale | undefined;
- tr?: CustomLocale | undefined;
- ar?: CustomLocale | undefined;
- at?: CustomLocale | undefined;
- az?: CustomLocale | undefined;
- be?: CustomLocale | undefined;
- bg?: CustomLocale | undefined;
- bn?: CustomLocale | undefined;
- bs?: CustomLocale | undefined;
- cat?: CustomLocale | undefined;
- cs?: CustomLocale | undefined;
- cy?: CustomLocale | undefined;
- da?: CustomLocale | undefined;
- de?: CustomLocale | undefined;
- en?: CustomLocale | undefined;
- eo?: CustomLocale | undefined;
- es?: CustomLocale | undefined;
- et?: CustomLocale | undefined;
- fa?: CustomLocale | undefined;
- fi?: CustomLocale | undefined;
- fo?: CustomLocale | undefined;
- fr?: CustomLocale | undefined;
- gr?: CustomLocale | undefined;
- he?: CustomLocale | undefined;
- hi?: CustomLocale | undefined;
- hu?: CustomLocale | undefined;
- id?: CustomLocale | undefined;
- is?: CustomLocale | undefined;
- it?: CustomLocale | undefined;
- ja?: CustomLocale | undefined;
- ka?: CustomLocale | undefined;
- ko?: CustomLocale | undefined;
- km?: CustomLocale | undefined;
- kz?: CustomLocale | undefined;
- lt?: CustomLocale | undefined;
- lv?: CustomLocale | undefined;
- lu?: CustomLocale | undefined;
- mk?: CustomLocale | undefined;
- mn?: CustomLocale | undefined;
- ms?: CustomLocale | undefined;
- my?: CustomLocale | undefined;
- nl?: CustomLocale | undefined;
- no?: CustomLocale | undefined;
- pa?: CustomLocale | undefined;
- pl?: CustomLocale | undefined;
- pt?: CustomLocale | undefined;
- ro?: CustomLocale | undefined;
- ru?: CustomLocale | undefined;
- si?: CustomLocale | undefined;
- sk?: CustomLocale | undefined;
- sl?: CustomLocale | undefined;
- sq?: CustomLocale | undefined;
- sr?: CustomLocale | undefined;
- sv?: CustomLocale | undefined;
- uk?: CustomLocale | undefined;
- vn?: CustomLocale | undefined;
- zh?: CustomLocale | undefined;
- zh_tw?: CustomLocale | undefined;
-} & {
- default: import("../types/locale").Locale;
-};
-export default _default;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory(global.lu = {}));
-}(this, function (exports) { 'use strict';
-
- var fp = typeof window !== "undefined" && window.flatpickr !== undefined
- ? window.flatpickr
- : {
- l10ns: {}
- };
- var Luxembourgish = {
- firstDayOfWeek: 1,
- weekdays: {
- shorthand: ["So", "Me", "De", "Me", "Do", "Fr", "Sa"],
- longhand: [
- "Sonndeg",
- "Méindeg",
- "Dënsdeg",
- "Mëttwoch",
- "Donneschdeg",
- "Freideg",
- "Samsdeg",
- ]
- },
- months: {
- shorthand: [
- "Jan",
- "Feb",
- "Mär",
- "Abr",
- "Mee",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez",
- ],
- longhand: [
- "Januar",
- "Februar",
- "März",
- "Abrëll",
- "Mee",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember",
- ]
- },
-
- weekAbbreviation: "KW",
- rangeSeparator: " bis ",
- scrollTitle: "fir ze ännerne scrollen",
- toggleTitle: "Zum Ëmschalten klicken",
- time_24hr: true
- };
- fp.l10ns.lu = Luxembourgish;
- var lu = fp.l10ns;
-
- exports.Luxembourgish = Luxembourgish;
- exports.default = lu;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
+++ /dev/null
-.flatpickr-confirm {
- height: 40px;
- max-height: 0px;
- visibility: hidden;
- display: flex;
- justify-content: center;
- align-items: center;
- cursor: pointer;
- background: rgba(0,0,0,0.06)
-}
-
-.flatpickr-confirm svg path {
- fill: inherit;
-}
-
-.flatpickr-confirm.darkTheme {
- color: white;
- fill: white;
-}
-
-.flatpickr-confirm.visible {
- max-height: 40px;
- visibility: visible
-}
+++ /dev/null
-import { Plugin } from "../../types/options";
-export interface Config {
- confirmIcon?: string;
- confirmText?: string;
- showAlways?: boolean;
- theme?: string;
-}
-declare function confirmDatePlugin(pluginConfig: Config): Plugin;
-export default confirmDatePlugin;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.confirmDatePlugin = factory());
-}(this, function () { 'use strict';
-
- /*! *****************************************************************************
- Copyright (c) Microsoft Corporation. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of the
- License at http://www.apache.org/licenses/LICENSE-2.0
-
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
- MERCHANTABLITY OR NON-INFRINGEMENT.
-
- See the Apache Version 2.0 License for specific language governing permissions
- and limitations under the License.
- ***************************************************************************** */
-
- var __assign = function() {
- __assign = Object.assign || function __assign(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
-
- var defaultConfig = {
- confirmIcon: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='17' height='17' viewBox='0 0 17 17'> <g> </g> <path d='M15.418 1.774l-8.833 13.485-4.918-4.386 0.666-0.746 4.051 3.614 8.198-12.515 0.836 0.548z' fill='#000000' /> </svg>",
- confirmText: "OK ",
- showAlways: false,
- theme: "light"
- };
- function confirmDatePlugin(pluginConfig) {
- var config = __assign({}, defaultConfig, pluginConfig);
- var confirmContainer;
- var confirmButtonCSSClass = "flatpickr-confirm";
- return function (fp) {
- if (fp.config.noCalendar || fp.isMobile)
- return {};
- return __assign({ onKeyDown: function (_, __, ___, e) {
- if (fp.config.enableTime && e.key === "Tab" && e.target === fp.amPM) {
- e.preventDefault();
- confirmContainer.focus();
- }
- else if (e.key === "Enter" && e.target === confirmContainer)
- fp.close();
- },
- onReady: function () {
- confirmContainer = fp._createElement("div", confirmButtonCSSClass + " " + (config.showAlways ? "visible" : "") + " " + config.theme + "Theme", config.confirmText);
- confirmContainer.tabIndex = -1;
- confirmContainer.innerHTML += config.confirmIcon;
- confirmContainer.addEventListener("click", fp.close);
- fp.calendarContainer.appendChild(confirmContainer);
- fp.loadedPlugins.push("confirmDate");
- } }, (!config.showAlways
- ? {
- onChange: function (_, dateStr) {
- var showCondition = fp.config.enableTime ||
- fp.config.mode === "multiple" ||
- fp.loadedPlugins.indexOf("monthSelect") !== -1;
- var localConfirmContainer = fp.calendarContainer.querySelector("." + confirmButtonCSSClass);
- if (!localConfirmContainer)
- return;
- if (dateStr &&
- !fp.config.inline &&
- showCondition &&
- localConfirmContainer)
- return localConfirmContainer.classList.add("visible");
- localConfirmContainer.classList.remove("visible");
- }
- }
- : {}));
- };
- }
-
- return confirmDatePlugin;
-
-}));
+++ /dev/null
-import { Plugin } from "../../types/options";
-declare function labelPlugin(): Plugin;
-export default labelPlugin;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.labelPlugin = factory());
-}(this, function () { 'use strict';
-
- function labelPlugin() {
- return function (fp) {
- return {
- onReady: function () {
- var id = fp.input.id;
- if (!id) {
- return;
- }
- if (fp.mobileInput) {
- fp.input.removeAttribute("id");
- fp.mobileInput.id = id;
- }
- else if (fp.altInput) {
- fp.input.removeAttribute("id");
- fp.altInput.id = id;
- }
- fp.loadedPlugins.push("labelPlugin");
- }
- };
- };
- }
-
- return labelPlugin;
-
-}));
+++ /dev/null
-import { Plugin } from "../types/options";
-export interface MinMaxTime {
- minTime?: string;
- maxTime?: string;
-}
-export interface Config {
- table?: Record<string, MinMaxTime>;
- getTimeLimits?: (date: Date) => MinMaxTime;
- tableDateFormat?: string;
-}
-export interface State {
- formatDate: (date: Date, f: string) => string;
- tableDateFormat: string;
- defaults: MinMaxTime;
-}
-declare function minMaxTimePlugin(config?: Config): Plugin;
-export default minMaxTimePlugin;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.minMaxTimePlugin = factory());
-}(this, function () { 'use strict';
-
- var pad = function (number) { return ("0" + number).slice(-2); };
- var int = function (bool) { return (bool === true ? 1 : 0); };
-
- var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; };
- var formats = {
- // get the date in UTC
- Z: function (date) { return date.toISOString(); },
- // weekday name, short, e.g. Thu
- D: function (date, locale, options) {
- return locale.weekdays.shorthand[formats.w(date, locale, options)];
- },
- // full month name e.g. January
- F: function (date, locale, options) {
- return monthToStr(formats.n(date, locale, options) - 1, false, locale);
- },
- // padded hour 1-12
- G: function (date, locale, options) {
- return pad(formats.h(date, locale, options));
- },
- // hours with leading zero e.g. 03
- H: function (date) { return pad(date.getHours()); },
- // day (1-30) with ordinal suffix e.g. 1st, 2nd
- J: function (date, locale) {
- return locale.ordinal !== undefined
- ? date.getDate() + locale.ordinal(date.getDate())
- : date.getDate();
- },
- // AM/PM
- K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },
- // shorthand month e.g. Jan, Sep, Oct, etc
- M: function (date, locale) {
- return monthToStr(date.getMonth(), true, locale);
- },
- // seconds 00-59
- S: function (date) { return pad(date.getSeconds()); },
- // unix timestamp
- U: function (date) { return date.getTime() / 1000; },
- W: function (date, _, options) {
- return options.getWeek(date);
- },
- // full year e.g. 2016
- Y: function (date) { return date.getFullYear(); },
- // day in month, padded (01-30)
- d: function (date) { return pad(date.getDate()); },
- // hour from 1-12 (am/pm)
- h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },
- // minutes, padded with leading zero e.g. 09
- i: function (date) { return pad(date.getMinutes()); },
- // day in month (1-30)
- j: function (date) { return date.getDate(); },
- // weekday name, full, e.g. Thursday
- l: function (date, locale) {
- return locale.weekdays.longhand[date.getDay()];
- },
- // padded month number (01-12)
- m: function (date) { return pad(date.getMonth() + 1); },
- // the month number (1-12)
- n: function (date) { return date.getMonth() + 1; },
- // seconds 0-59
- s: function (date) { return date.getSeconds(); },
- // Unix Milliseconds
- u: function (date) { return date.getTime(); },
- // number of the day of the week
- w: function (date) { return date.getDay(); },
- // last two digits of year e.g. 16 for 2016
- y: function (date) { return String(date.getFullYear()).substring(2); }
- };
-
- var defaults = {
- _disable: [],
- _enable: [],
- allowInput: false,
- altFormat: "F j, Y",
- altInput: false,
- altInputClass: "form-control input",
- animate: typeof window === "object" &&
- window.navigator.userAgent.indexOf("MSIE") === -1,
- ariaDateFormat: "F j, Y",
- clickOpens: true,
- closeOnSelect: true,
- conjunction: ", ",
- dateFormat: "Y-m-d",
- defaultHour: 12,
- defaultMinute: 0,
- defaultSeconds: 0,
- disable: [],
- disableMobile: false,
- enable: [],
- enableSeconds: false,
- enableTime: false,
- errorHandler: function (err) {
- return typeof console !== "undefined" && console.warn(err);
- },
- getWeek: function (givenDate) {
- var date = new Date(givenDate.getTime());
- date.setHours(0, 0, 0, 0);
- // Thursday in current week decides the year.
- date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));
- // January 4 is always in week 1.
- var week1 = new Date(date.getFullYear(), 0, 4);
- // Adjust to Thursday in week 1 and count number of weeks from date to week1.
- return (1 +
- Math.round(((date.getTime() - week1.getTime()) / 86400000 -
- 3 +
- ((week1.getDay() + 6) % 7)) /
- 7));
- },
- hourIncrement: 1,
- ignoredFocusElements: [],
- inline: false,
- locale: "default",
- minuteIncrement: 5,
- mode: "single",
- monthSelectorType: "dropdown",
- nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",
- noCalendar: false,
- now: new Date(),
- onChange: [],
- onClose: [],
- onDayCreate: [],
- onDestroy: [],
- onKeyDown: [],
- onMonthChange: [],
- onOpen: [],
- onParseConfig: [],
- onReady: [],
- onValueUpdate: [],
- onYearChange: [],
- onPreCalendarPosition: [],
- plugins: [],
- position: "auto",
- positionElement: undefined,
- prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",
- shorthandCurrentMonth: false,
- showMonths: 1,
- static: false,
- time_24hr: false,
- weekNumbers: false,
- wrap: false
- };
-
- var english = {
- weekdays: {
- shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- longhand: [
- "Sunday",
- "Monday",
- "Tuesday",
- "Wednesday",
- "Thursday",
- "Friday",
- "Saturday",
- ]
- },
- months: {
- shorthand: [
- "Jan",
- "Feb",
- "Mar",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Oct",
- "Nov",
- "Dec",
- ],
- longhand: [
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December",
- ]
- },
- daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
- firstDayOfWeek: 0,
- ordinal: function (nth) {
- var s = nth % 100;
- if (s > 3 && s < 21)
- return "th";
- switch (s % 10) {
- case 1:
- return "st";
- case 2:
- return "nd";
- case 3:
- return "rd";
- default:
- return "th";
- }
- },
- rangeSeparator: " to ",
- weekAbbreviation: "Wk",
- scrollTitle: "Scroll to increment",
- toggleTitle: "Click to toggle",
- amPM: ["AM", "PM"],
- yearAriaLabel: "Year",
- hourAriaLabel: "Hour",
- minuteAriaLabel: "Minute",
- time_24hr: false
- };
-
- var createDateFormatter = function (_a) {
- var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;
- return function (dateObj, frmt, overrideLocale) {
- var locale = overrideLocale || l10n;
- if (config.formatDate !== undefined) {
- return config.formatDate(dateObj, frmt, locale);
- }
- return frmt
- .split("")
- .map(function (c, i, arr) {
- return formats[c] && arr[i - 1] !== "\\"
- ? formats[c](dateObj, locale, config)
- : c !== "\\"
- ? c
- : "";
- })
- .join("");
- };
- };
- /**
- * Compute the difference in dates, measured in ms
- */
- function compareDates(date1, date2, timeless) {
- if (timeless === void 0) { timeless = true; }
- if (timeless !== false) {
- return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -
- new Date(date2.getTime()).setHours(0, 0, 0, 0));
- }
- return date1.getTime() - date2.getTime();
- }
- /**
- * Compute the difference in times, measured in ms
- */
- function compareTimes(date1, date2) {
- return (3600 * (date1.getHours() - date2.getHours()) +
- 60 * (date1.getMinutes() - date2.getMinutes()) +
- date1.getSeconds() -
- date2.getSeconds());
- }
-
- function minMaxTimePlugin(config) {
- if (config === void 0) { config = {}; }
- var state = {
- formatDate: createDateFormatter({}),
- tableDateFormat: config.tableDateFormat || "Y-m-d",
- defaults: {
- minTime: undefined,
- maxTime: undefined
- }
- };
- function findDateTimeLimit(date) {
- if (config.table !== undefined) {
- return config.table[state.formatDate(date, state.tableDateFormat)];
- }
- return config.getTimeLimits && config.getTimeLimits(date);
- }
- return function (fp) {
- return {
- onReady: function () {
- state.formatDate = this.formatDate;
- state.defaults = {
- minTime: this.config.minTime && state.formatDate(this.config.minTime, "H:i"),
- maxTime: this.config.maxTime && state.formatDate(this.config.maxTime, "H:i")
- };
- fp.loadedPlugins.push("minMaxTime");
- },
- onChange: function () {
- var latest = this.latestSelectedDateObj;
- var matchingTimeLimit = latest && findDateTimeLimit(latest);
- if (latest && matchingTimeLimit !== undefined) {
- this.set(matchingTimeLimit);
- fp.config.minTime.setFullYear(latest.getFullYear());
- fp.config.maxTime.setFullYear(latest.getFullYear());
- fp.config.minTime.setMonth(latest.getMonth());
- fp.config.maxTime.setMonth(latest.getMonth());
- fp.config.minTime.setDate(latest.getDate());
- fp.config.maxTime.setDate(latest.getDate());
- if (compareDates(latest, fp.config.maxTime, false) > 0) {
- fp.setDate(new Date(latest.getTime()).setHours(fp.config.maxTime.getHours(), fp.config.maxTime.getMinutes(), fp.config.maxTime.getSeconds(), fp.config.maxTime.getMilliseconds()), false);
- }
- else if (compareDates(latest, fp.config.minTime, false) < 0)
- fp.setDate(new Date(latest.getTime()).setHours(fp.config.minTime.getHours(), fp.config.minTime.getMinutes(), fp.config.minTime.getSeconds(), fp.config.minTime.getMilliseconds()), false);
- }
- else {
- var newMinMax = state.defaults || {
- minTime: undefined,
- maxTime: undefined
- };
- this.set(newMinMax);
- if (!latest)
- return;
- var _a = fp.config, minTime = _a.minTime, maxTime = _a.maxTime;
- if (minTime && compareTimes(latest, minTime) < 0) {
- fp.setDate(new Date(latest.getTime()).setHours(minTime.getHours(), minTime.getMinutes(), minTime.getSeconds(), minTime.getMilliseconds()), false);
- }
- else if (maxTime && compareTimes(latest, maxTime) > 0) {
- fp.setDate(new Date(latest.getTime()).setHours(maxTime.getHours(), maxTime.getMinutes(), maxTime.getSeconds(), maxTime.getMilliseconds()));
- }
- //
- }
- }
- };
- };
- }
-
- return minMaxTimePlugin;
-
-}));
+++ /dev/null
-import { Plugin } from "../../types/options";
-export interface Config {
- shorthand: boolean;
- dateFormat: string;
- altFormat: string;
- theme: string;
-}
-export declare type MonthElement = HTMLSpanElement & {
- dateObj: Date;
- $i: number;
-};
-declare function monthSelectPlugin(pluginConfig?: Partial<Config>): Plugin;
-export default monthSelectPlugin;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.monthSelectPlugin = factory());
-}(this, function () { 'use strict';
-
- /*! *****************************************************************************
- Copyright (c) Microsoft Corporation. All rights reserved.
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of the
- License at http://www.apache.org/licenses/LICENSE-2.0
-
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
- MERCHANTABLITY OR NON-INFRINGEMENT.
-
- See the Apache Version 2.0 License for specific language governing permissions
- and limitations under the License.
- ***************************************************************************** */
-
- var __assign = function() {
- __assign = Object.assign || function __assign(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
-
- var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; };
-
- var defaultConfig = {
- shorthand: false,
- dateFormat: "F Y",
- altFormat: "F Y",
- theme: "light"
- };
- function monthSelectPlugin(pluginConfig) {
- var config = __assign({}, defaultConfig, pluginConfig);
- return function (fp) {
- fp.config.dateFormat = config.dateFormat;
- fp.config.altFormat = config.altFormat;
- var self = { monthsContainer: null };
- function clearUnnecessaryDOMElements() {
- if (!fp.rContainer || !fp.daysContainer || !fp.weekdayContainer)
- return;
- fp.rContainer.removeChild(fp.daysContainer);
- fp.rContainer.removeChild(fp.weekdayContainer);
- for (var index = 0; index < fp.monthElements.length; index++) {
- var element = fp.monthElements[index];
- if (!element.parentNode)
- continue;
- element.parentNode.removeChild(element);
- }
- }
- function addListeners() {
- fp._bind(fp.prevMonthNav, "click", function () {
- fp.currentYear -= 1;
- selectYear();
- });
- fp._bind(fp.nextMonthNav, "mousedown", function () {
- fp.currentYear += 1;
- selectYear();
- });
- }
- function addMonths() {
- if (!fp.rContainer)
- return;
- self.monthsContainer = fp._createElement("div", "flatpickr-monthSelect-months");
- self.monthsContainer.tabIndex = -1;
- fp.calendarContainer.classList.add("flatpickr-monthSelect-theme-" + config.theme);
- for (var i = 0; i < 12; i++) {
- var month = fp._createElement("span", "flatpickr-monthSelect-month");
- month.dateObj = new Date(fp.currentYear, i);
- month.$i = i;
- month.textContent = monthToStr(i, config.shorthand, fp.l10n);
- month.tabIndex = -1;
- month.addEventListener("click", selectMonth);
- self.monthsContainer.appendChild(month);
- }
- fp.rContainer.appendChild(self.monthsContainer);
- }
- function setCurrentlySelected() {
- if (!fp.rContainer)
- return;
- var currentlySelected = fp.rContainer.querySelectorAll(".flatpickr-monthSelect-month.selected");
- for (var index = 0; index < currentlySelected.length; index++) {
- currentlySelected[index].classList.remove("selected");
- }
- var month = fp.rContainer.querySelector(".flatpickr-monthSelect-month:nth-child(" + (fp.currentMonth + 1) + ")");
- if (month) {
- month.classList.add("selected");
- }
- }
- function selectYear() {
- var selectedDate = fp.selectedDates[0];
- selectedDate.setFullYear(fp.currentYear);
- fp.setDate(selectedDate, true);
- }
- function selectMonth(e) {
- e.preventDefault();
- e.stopPropagation();
- setMonth(e.target.dateObj);
- }
- function setMonth(date) {
- var selectedDate = new Date(date);
- selectedDate.setFullYear(fp.currentYear);
- fp.currentMonth = selectedDate.getMonth();
- fp.setDate(selectedDate, true);
- setCurrentlySelected();
- }
- var shifts = {
- 37: -1,
- 39: 1,
- 40: 3,
- 38: -3
- };
- function onKeyDown(_, __, ___, e) {
- var shouldMove = shifts[e.keyCode] !== undefined;
- if (!shouldMove && e.keyCode !== 13) {
- return;
- }
- if (!fp.rContainer || !self.monthsContainer)
- return;
- var currentlySelected = fp.rContainer.querySelector(".flatpickr-monthSelect-month.selected");
- var index = Array.prototype.indexOf.call(self.monthsContainer.children, document.activeElement);
- if (index === -1) {
- var target = currentlySelected || self.monthsContainer.firstElementChild;
- target.focus();
- index = target.$i;
- }
- if (shouldMove) {
- self.monthsContainer.children[(12 + index + shifts[e.keyCode]) % 12].focus();
- }
- else if (e.keyCode === 13 &&
- self.monthsContainer.contains(document.activeElement)) {
- setMonth(document.activeElement.dateObj);
- }
- }
- function destroyPluginInstance() {
- if (self.monthsContainer !== null) {
- var months = self.monthsContainer.querySelectorAll(".flatpickr-monthSelect-month");
- for (var index = 0; index < months.length; index++) {
- months[index].removeEventListener("click", selectMonth);
- }
- }
- }
- return {
- onParseConfig: function () {
- fp.config.mode = "single";
- fp.config.enableTime = false;
- },
- onValueUpdate: setCurrentlySelected,
- onKeyDown: onKeyDown,
- onReady: [
- clearUnnecessaryDOMElements,
- addListeners,
- addMonths,
- setCurrentlySelected,
- function () {
- fp.loadedPlugins.push("monthSelect");
- },
- ],
- onDestroy: destroyPluginInstance
- };
- };
- }
-
- return monthSelectPlugin;
-
-}));
+++ /dev/null
-.flatpickr-monthSelect-months {
- margin: 10px 1px 3px 1px;
- flex-wrap: wrap;
-}
-
-.flatpickr-monthSelect-month {
- background: none;
- border: 0;
- border-radius: 2px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #393939;
- cursor: pointer;
- display: inline-block;
- font-weight: 400;
- margin: 0.5px;
- justify-content: center;
- padding: 10px;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- text-align: center;
- width: 33%;
-}
-
-.flatpickr-monthSelect-theme-dark {
- background: #3f4458;
-}
-
-.flatpickr-monthSelect-theme-dark .flatpickr-current-month input.cur-year {
- color: #fff;
-}
-
-.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-prev-month,
-.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-next-month {
- color: #fff;
- fill: #fff;
-}
-
-.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month {
- color: rgba(255, 255, 255, 0.95);
-}
-
-.flatpickr-monthSelect-month:hover,
-.flatpickr-monthSelect-month:focus {
- background: #e6e6e6;
- cursor: pointer;
- outline: 0;
-}
-
-.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:hover,
-.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:focus {
- background: #646c8c;
- border-color: #646c8c;
-}
-
-.flatpickr-monthSelect-month.selected {
- background-color: #569ff7;
- color: #fff;
-}
-
-.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.selected {
- background: #80cbc4;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #80cbc4;
-}
+++ /dev/null
-export {};
+++ /dev/null
-import { Plugin } from "../types/options";
-export interface Config {
- input?: string | HTMLInputElement;
- position?: "left";
-}
-declare global {
- interface Window {
- rangePlugin: (config?: Config) => void;
- }
-}
-declare function rangePlugin(config?: Config): Plugin;
-export default rangePlugin;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.rangePlugin = factory());
-}(this, function () { 'use strict';
-
- function rangePlugin(config) {
- if (config === void 0) { config = {}; }
- return function (fp) {
- var dateFormat = "", secondInput, _secondInputFocused, _prevDates;
- var createSecondInput = function () {
- if (config.input) {
- secondInput =
- config.input instanceof Element
- ? config.input
- : window.document.querySelector(config.input);
- if (!secondInput) {
- fp.config.errorHandler(new Error("Invalid input element specified"));
- return;
- }
- if (fp.config.wrap) {
- secondInput = secondInput.querySelector("[data-input]");
- }
- }
- else {
- secondInput = fp._input.cloneNode();
- secondInput.removeAttribute("id");
- secondInput._flatpickr = undefined;
- }
- if (secondInput.value) {
- var parsedDate = fp.parseDate(secondInput.value);
- if (parsedDate)
- fp.selectedDates.push(parsedDate);
- }
- secondInput.setAttribute("data-fp-omit", "");
- fp._bind(secondInput, ["focus", "click"], function () {
- if (fp.selectedDates[1]) {
- fp.latestSelectedDateObj = fp.selectedDates[1];
- fp._setHoursFromDate(fp.selectedDates[1]);
- fp.jumpToDate(fp.selectedDates[1]);
- }
- _secondInputFocused = true;
- fp.isOpen = false;
- fp.open(undefined, config.position === "left" ? fp._input : secondInput);
- });
- fp._bind(fp._input, ["focus", "click"], function (e) {
- e.preventDefault();
- fp.isOpen = false;
- fp.open();
- });
- if (fp.config.allowInput)
- fp._bind(secondInput, "keydown", function (e) {
- if (e.key === "Enter") {
- fp.setDate([fp.selectedDates[0], secondInput.value], true, dateFormat);
- secondInput.click();
- }
- });
- if (!config.input)
- fp._input.parentNode &&
- fp._input.parentNode.insertBefore(secondInput, fp._input.nextSibling);
- };
- var plugin = {
- onParseConfig: function () {
- fp.config.mode = "range";
- dateFormat = fp.config.altInput
- ? fp.config.altFormat
- : fp.config.dateFormat;
- },
- onReady: function () {
- createSecondInput();
- fp.config.ignoredFocusElements.push(secondInput);
- if (fp.config.allowInput) {
- fp._input.removeAttribute("readonly");
- secondInput.removeAttribute("readonly");
- }
- else {
- secondInput.setAttribute("readonly", "readonly");
- }
- fp._bind(fp._input, "focus", function () {
- fp.latestSelectedDateObj = fp.selectedDates[0];
- fp._setHoursFromDate(fp.selectedDates[0]);
- _secondInputFocused = false;
- fp.jumpToDate(fp.selectedDates[0]);
- });
- if (fp.config.allowInput)
- fp._bind(fp._input, "keydown", function (e) {
- if (e.key === "Enter")
- fp.setDate([fp._input.value, fp.selectedDates[1]], true, dateFormat);
- });
- fp.setDate(fp.selectedDates, false);
- plugin.onValueUpdate(fp.selectedDates);
- fp.loadedPlugins.push("range");
- },
- onPreCalendarPosition: function () {
- if (_secondInputFocused) {
- fp._positionElement = secondInput;
- setTimeout(function () {
- fp._positionElement = fp._input;
- }, 0);
- }
- },
- onChange: function () {
- if (!fp.selectedDates.length) {
- setTimeout(function () {
- if (fp.selectedDates.length)
- return;
- secondInput.value = "";
- _prevDates = [];
- }, 10);
- }
- if (_secondInputFocused) {
- setTimeout(function () {
- secondInput.focus();
- }, 0);
- }
- },
- onDestroy: function () {
- if (!config.input)
- secondInput.parentNode &&
- secondInput.parentNode.removeChild(secondInput);
- },
- onValueUpdate: function (selDates) {
- var _a, _b, _c;
- if (!secondInput)
- return;
- _prevDates =
- !_prevDates || selDates.length >= _prevDates.length
- ? selDates.slice() : _prevDates;
- if (_prevDates.length > selDates.length) {
- var newSelectedDate = selDates[0];
- var newDates = _secondInputFocused
- ? [_prevDates[0], newSelectedDate]
- : [newSelectedDate, _prevDates[1]];
- fp.setDate(newDates, false);
- _prevDates = newDates.slice();
- }
- _a = fp.selectedDates.map(function (d) { return fp.formatDate(d, dateFormat); }), _b = _a[0], fp._input.value = _b === void 0 ? "" : _b, _c = _a[1], secondInput.value = _c === void 0 ? "" : _c;
- }
- };
- return plugin;
- };
- }
-
- return rangePlugin;
-
-}));
+++ /dev/null
-import { Plugin } from "../types/options";
-declare function scrollPlugin(): Plugin;
-export default scrollPlugin;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.scrollPlugin = factory());
-}(this, function () { 'use strict';
-
- function delta(e) {
- return Math.max(-1, Math.min(1, e.wheelDelta || -e.deltaY));
- }
- var scroll = function (e) {
- e.preventDefault();
- var ev = new CustomEvent("increment", {
- bubbles: true
- });
- ev.delta = delta(e);
- e.target.dispatchEvent(ev);
- };
- function scrollMonth(fp) {
- return function (e) {
- e.preventDefault();
- var mDelta = delta(e);
- fp.changeMonth(mDelta);
- };
- }
- function scrollPlugin() {
- return function (fp) {
- var monthScroller = scrollMonth(fp);
- return {
- onReady: function () {
- if (fp.timeContainer) {
- fp.timeContainer.addEventListener("wheel", scroll);
- }
- fp.yearElements.forEach(function (yearElem) {
- return yearElem.addEventListener("wheel", scroll);
- });
- fp.monthElements.forEach(function (monthElem) {
- return monthElem.addEventListener("wheel", monthScroller);
- });
- fp.loadedPlugins.push("scroll");
- },
- onDestroy: function () {
- if (fp.timeContainer) {
- fp.timeContainer.removeEventListener("wheel", scroll);
- }
- fp.yearElements.forEach(function (yearElem) {
- return yearElem.removeEventListener("wheel", scroll);
- });
- fp.monthElements.forEach(function (monthElem) {
- return monthElem.removeEventListener("wheel", monthScroller);
- });
- }
- };
- };
- }
-
- return scrollPlugin;
-
-}));
+++ /dev/null
-import { Plugin } from "../../types/options";
-export declare type PlusWeeks = {
- weekStartDay: Date;
- weekEndDay: Date;
-};
-declare function weekSelectPlugin(): Plugin<PlusWeeks>;
-export default weekSelectPlugin;
+++ /dev/null
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.weekSelect = factory());
-}(this, function () { 'use strict';
-
- function weekSelectPlugin() {
- return function (fp) {
- function onDayHover(event) {
- var day = event.target;
- if (!day.classList.contains("flatpickr-day"))
- return;
- var days = fp.days.childNodes;
- var dayIndex = day.$i;
- var dayIndSeven = dayIndex / 7;
- var weekStartDay = days[7 * Math.floor(dayIndSeven)]
- .dateObj;
- var weekEndDay = days[7 * Math.ceil(dayIndSeven + 0.01) - 1].dateObj;
- for (var i = days.length; i--;) {
- var day_1 = days[i];
- var date = day_1.dateObj;
- if (date > weekEndDay || date < weekStartDay)
- day_1.classList.remove("inRange");
- else
- day_1.classList.add("inRange");
- }
- }
- function highlightWeek() {
- var selDate = fp.latestSelectedDateObj;
- if (selDate !== undefined &&
- selDate.getMonth() === fp.currentMonth &&
- selDate.getFullYear() === fp.currentYear) {
- fp.weekStartDay = fp.days.childNodes[7 * Math.floor(fp.selectedDateElem.$i / 7)].dateObj;
- fp.weekEndDay = fp.days.childNodes[7 * Math.ceil(fp.selectedDateElem.$i / 7 + 0.01) - 1].dateObj;
- }
- var days = fp.days.childNodes;
- for (var i = days.length; i--;) {
- var date = days[i].dateObj;
- if (date >= fp.weekStartDay && date <= fp.weekEndDay)
- days[i].classList.add("week", "selected");
- }
- }
- function clearHover() {
- var days = fp.days.childNodes;
- for (var i = days.length; i--;)
- days[i].classList.remove("inRange");
- }
- function onReady() {
- if (fp.daysContainer !== undefined)
- fp.daysContainer.addEventListener("mouseover", onDayHover);
- }
- function onDestroy() {
- if (fp.daysContainer !== undefined)
- fp.daysContainer.removeEventListener("mouseover", onDayHover);
- }
- return {
- onValueUpdate: highlightWeek,
- onMonthChange: highlightWeek,
- onYearChange: highlightWeek,
- onOpen: highlightWeek,
- onClose: clearHover,
- onParseConfig: function () {
- fp.config.mode = "single";
- fp.config.enableTime = false;
- fp.config.dateFormat = fp.config.dateFormat
- ? fp.config.dateFormat
- : "\\W\\e\\e\\k #W, Y";
- fp.config.altFormat = fp.config.altFormat
- ? fp.config.altFormat
- : "\\W\\e\\e\\k #W, Y";
- },
- onReady: [
- onReady,
- highlightWeek,
- function () {
- fp.loadedPlugins.push("weekSelect");
- },
- ],
- onDestroy: onDestroy
- };
- };
- }
-
- return weekSelectPlugin;
-
-}));
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- background: #fff;
- -webkit-box-shadow: 1px 0 0 #eee, -1px 0 0 #eee, 0 1px 0 #eee, 0 -1px 0 #eee, 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 1px 0 0 #eee, -1px 0 0 #eee, 0 1px 0 #eee, 0 -1px 0 #eee, 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid #eee;
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: #eee;
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #fff;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: #eee;
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #fff;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- background: transparent;
- color: #3c3f40;
- fill: #3c3f40;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #3c3f40;
- fill: #3c3f40;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(64,72,72,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(64,72,72,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(64,72,72,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(60,63,64,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #3c3f40;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #3c3f40;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(60,63,64,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: transparent;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: transparent;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: transparent;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: transparent;
- color: rgba(0,0,0,0.54);
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 #eee;
- box-shadow: -1px 0 0 #eee;
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #404848;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e9e9e9;
- border-color: #e9e9e9;
-}
-.flatpickr-day.today {
- border-color: #f64747;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #f64747;
- background: #f64747;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #4f99ff;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #4f99ff;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #4f99ff;
- box-shadow: -10px 0 0 #4f99ff;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e9e9e9, 5px 0 0 #e9e9e9;
- box-shadow: -5px 0 0 #e9e9e9, 5px 0 0 #e9e9e9;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(64,72,72,0.3);
- background: transparent;
- border-color: #e9e9e9;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(64,72,72,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #4f99ff, 5px 0 0 #4f99ff;
- box-shadow: -5px 0 0 #4f99ff, 5px 0 0 #4f99ff;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- -webkit-box-shadow: 1px 0 0 #eee;
- box-shadow: 1px 0 0 #eee;
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(64,72,72,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #404848;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #404848;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #404848;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #404848;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #f1f1f1;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-.flatpickr-calendar {
- width: 307.875px;
-}
-.dayContainer {
- padding: 0;
- border-right: 0;
-}
-span.flatpickr-day,
-span.flatpickr-day.prevMonthDay,
-span.flatpickr-day.nextMonthDay {
- border-radius: 0 !important;
- border: 1px solid #e9e9e9;
- max-width: none;
- border-right-color: transparent;
-}
-span.flatpickr-day:nth-child(n+8),
-span.flatpickr-day.prevMonthDay:nth-child(n+8),
-span.flatpickr-day.nextMonthDay:nth-child(n+8) {
- border-top-color: transparent;
-}
-span.flatpickr-day:nth-child(7n-6),
-span.flatpickr-day.prevMonthDay:nth-child(7n-6),
-span.flatpickr-day.nextMonthDay:nth-child(7n-6) {
- border-left: 0;
-}
-span.flatpickr-day:nth-child(n+36),
-span.flatpickr-day.prevMonthDay:nth-child(n+36),
-span.flatpickr-day.nextMonthDay:nth-child(n+36) {
- border-bottom: 0;
-}
-span.flatpickr-day:nth-child(-n+7),
-span.flatpickr-day.prevMonthDay:nth-child(-n+7),
-span.flatpickr-day.nextMonthDay:nth-child(-n+7) {
- margin-top: 0;
-}
-span.flatpickr-day.today:not(.selected),
-span.flatpickr-day.prevMonthDay.today:not(.selected),
-span.flatpickr-day.nextMonthDay.today:not(.selected) {
- border-color: #e9e9e9;
- border-right-color: transparent;
- border-top-color: transparent;
- border-bottom-color: #f64747;
-}
-span.flatpickr-day.today:not(.selected):hover,
-span.flatpickr-day.prevMonthDay.today:not(.selected):hover,
-span.flatpickr-day.nextMonthDay.today:not(.selected):hover {
- border: 1px solid #f64747;
-}
-span.flatpickr-day.startRange,
-span.flatpickr-day.prevMonthDay.startRange,
-span.flatpickr-day.nextMonthDay.startRange,
-span.flatpickr-day.endRange,
-span.flatpickr-day.prevMonthDay.endRange,
-span.flatpickr-day.nextMonthDay.endRange {
- border-color: #4f99ff;
-}
-span.flatpickr-day.today,
-span.flatpickr-day.prevMonthDay.today,
-span.flatpickr-day.nextMonthDay.today,
-span.flatpickr-day.selected,
-span.flatpickr-day.prevMonthDay.selected,
-span.flatpickr-day.nextMonthDay.selected {
- z-index: 2;
-}
-.rangeMode .flatpickr-day {
- margin-top: -1px;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.flatpickr-weekwrapper span.flatpickr-day {
- border: 0;
- margin: -1px 0 0 -1px;
-}
-.hasWeeks .flatpickr-days {
- border-right: 0;
-}
-
- @media screen and (min-width:0\0) and (min-resolution: +72dpi) {
- span.flatpickr-day {
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1 0 auto;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- }
- }
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- -webkit-box-shadow: 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid rgba(72,72,72,0.1);
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-innerContainer {
- border-bottom: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- border: 1px solid rgba(72,72,72,0.1);
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: rgba(72,72,72,0.1);
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #ffb866;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: rgba(72,72,72,0.1);
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #ffb866;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- border-radius: 5px 5px 0 0;
- background: #ffb866;
- color: #fff;
- fill: #fff;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #fff;
- fill: #fff;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #bbb;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(72,72,72,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(72,72,72,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(72,72,72,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(255,255,255,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #fff;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #fff;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(255,255,255,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: #ffb866;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: #ffb866;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: #ffb866;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: #ffb866;
- color: rgba(0,0,0,0.54);
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
- border-left: 1px solid rgba(72,72,72,0.1);
- border-right: 1px solid rgba(72,72,72,0.1);
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 rgba(72,72,72,0.1);
- box-shadow: -1px 0 0 rgba(72,72,72,0.1);
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #484848;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e2e2e2;
- border-color: #e2e2e2;
-}
-.flatpickr-day.today {
- border-color: #bbb;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #bbb;
- background: #bbb;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #ffb866;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #ffb866;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #ffb866;
- box-shadow: -10px 0 0 #ffb866;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
- box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(72,72,72,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(72,72,72,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #ffb866, 5px 0 0 #ffb866;
- box-shadow: -5px 0 0 #ffb866, 5px 0 0 #ffb866;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- border-left: 1px solid rgba(72,72,72,0.1);
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(72,72,72,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- background: #fff;
- border-bottom: 1px solid rgba(72,72,72,0.1);
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- background: #fff;
- border-radius: 0 0 5px 5px;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #484848;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #484848;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #484848;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #484848;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #eaeaea;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- background: #3f4458;
- -webkit-box-shadow: 1px 0 0 #20222c, -1px 0 0 #20222c, 0 1px 0 #20222c, 0 -1px 0 #20222c, 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 1px 0 0 #20222c, -1px 0 0 #20222c, 0 1px 0 #20222c, 0 -1px 0 #20222c, 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid #20222c;
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: #20222c;
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #3f4458;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: #20222c;
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #3f4458;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- background: #3f4458;
- color: #fff;
- fill: #fff;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #fff;
- fill: #fff;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #eee;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(255,255,255,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(192,187,167,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(192,187,167,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(255,255,255,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(255,255,255,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(255,255,255,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(192,187,167,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(192,187,167,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #fff;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #fff;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(255,255,255,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: #3f4458;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(192,187,167,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: #3f4458;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: transparent;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: #3f4458;
- color: #fff;
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 #20222c;
- box-shadow: -1px 0 0 #20222c;
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: rgba(255,255,255,0.95);
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #646c8c;
- border-color: #646c8c;
-}
-.flatpickr-day.today {
- border-color: #eee;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #eee;
- background: #eee;
- color: #3f4458;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #80cbc4;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #80cbc4;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #80cbc4;
- box-shadow: -10px 0 0 #80cbc4;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #646c8c, 5px 0 0 #646c8c;
- box-shadow: -5px 0 0 #646c8c, 5px 0 0 #646c8c;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(255,255,255,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(255,255,255,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #80cbc4, 5px 0 0 #80cbc4;
- box-shadow: -5px 0 0 #80cbc4, 5px 0 0 #80cbc4;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- -webkit-box-shadow: 1px 0 0 #20222c;
- box-shadow: 1px 0 0 #20222c;
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(255,255,255,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: rgba(255,255,255,0.95);
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: rgba(255,255,255,0.95);
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: rgba(255,255,255,0.95);
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: rgba(255,255,255,0.95);
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #6a7395;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- -webkit-box-shadow: 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid #eceef1;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-innerContainer {
- border-bottom: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- border: 1px solid #eceef1;
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: #eceef1;
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #eceef1;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: #eceef1;
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #eceef1;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- border-radius: 5px 5px 0 0;
- background: #eceef1;
- color: #5a6171;
- fill: #5a6171;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #5a6171;
- fill: #5a6171;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #bbb;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(72,72,72,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(72,72,72,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(72,72,72,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(90,97,113,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #5a6171;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #5a6171;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(90,97,113,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: #eceef1;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: #eceef1;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: #eceef1;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: #eceef1;
- color: #5a6171;
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
- border-left: 1px solid #eceef1;
- border-right: 1px solid #eceef1;
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 #eceef1;
- box-shadow: -1px 0 0 #eceef1;
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #484848;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e2e2e2;
- border-color: #e2e2e2;
-}
-.flatpickr-day.today {
- border-color: #bbb;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #bbb;
- background: #bbb;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #ff5a5f;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #ff5a5f;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #ff5a5f;
- box-shadow: -10px 0 0 #ff5a5f;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
- box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(72,72,72,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(72,72,72,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #ff5a5f, 5px 0 0 #ff5a5f;
- box-shadow: -5px 0 0 #ff5a5f, 5px 0 0 #ff5a5f;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- border-left: 1px solid #eceef1;
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(72,72,72,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- background: #fff;
- border-bottom: 1px solid #eceef1;
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- background: #fff;
- border-radius: 0 0 5px 5px;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #484848;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #484848;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #484848;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #484848;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #eaeaea;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-span.flatpickr-day.selected {
- font-weight: bold;
-}
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- -webkit-box-shadow: 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-innerContainer {
- border-bottom: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- border: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #42a5f5;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #42a5f5;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- border-radius: 5px 5px 0 0;
- background: #42a5f5;
- color: #fff;
- fill: #fff;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #fff;
- fill: #fff;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #bbb;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(72,72,72,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(72,72,72,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(72,72,72,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(255,255,255,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #fff;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #fff;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(255,255,255,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: #42a5f5;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: #42a5f5;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: #42a5f5;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: #42a5f5;
- color: rgba(0,0,0,0.54);
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
- border-left: 1px solid rgba(72,72,72,0.2);
- border-right: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 rgba(72,72,72,0.2);
- box-shadow: -1px 0 0 rgba(72,72,72,0.2);
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #484848;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e2e2e2;
- border-color: #e2e2e2;
-}
-.flatpickr-day.today {
- border-color: #bbb;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #bbb;
- background: #bbb;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #42a5f5;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #42a5f5;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #42a5f5;
- box-shadow: -10px 0 0 #42a5f5;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
- box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(72,72,72,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(72,72,72,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #42a5f5, 5px 0 0 #42a5f5;
- box-shadow: -5px 0 0 #42a5f5, 5px 0 0 #42a5f5;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- border-left: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(72,72,72,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- background: #fff;
- border-bottom: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- background: #fff;
- border-radius: 0 0 5px 5px;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #484848;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #484848;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #484848;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #484848;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #eaeaea;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- -webkit-box-shadow: 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-innerContainer {
- border-bottom: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- border: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #1bbc9b;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #1bbc9b;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- border-radius: 5px 5px 0 0;
- background: #1bbc9b;
- color: #fff;
- fill: #fff;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #fff;
- fill: #fff;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #bbb;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(72,72,72,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(72,72,72,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(72,72,72,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(255,255,255,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #fff;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #fff;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(255,255,255,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: #1bbc9b;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: #1bbc9b;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: #1bbc9b;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: #1bbc9b;
- color: rgba(0,0,0,0.54);
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
- border-left: 1px solid rgba(72,72,72,0.2);
- border-right: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 rgba(72,72,72,0.2);
- box-shadow: -1px 0 0 rgba(72,72,72,0.2);
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #484848;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e2e2e2;
- border-color: #e2e2e2;
-}
-.flatpickr-day.today {
- border-color: #bbb;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #bbb;
- background: #bbb;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #1bbc9b;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #1bbc9b;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #1bbc9b;
- box-shadow: -10px 0 0 #1bbc9b;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
- box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(72,72,72,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(72,72,72,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #1bbc9b, 5px 0 0 #1bbc9b;
- box-shadow: -5px 0 0 #1bbc9b, 5px 0 0 #1bbc9b;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- border-left: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(72,72,72,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- background: #fff;
- border-bottom: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- background: #fff;
- border-radius: 0 0 5px 5px;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #484848;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #484848;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #484848;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #484848;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #eaeaea;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- -webkit-box-shadow: 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-innerContainer {
- border-bottom: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- border: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #ff8a65;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #ff8a65;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- border-radius: 5px 5px 0 0;
- background: #ff8a65;
- color: #fff;
- fill: #fff;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #fff;
- fill: #fff;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #bbb;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(72,72,72,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(72,72,72,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(72,72,72,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(255,255,255,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #fff;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #fff;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(255,255,255,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: #ff8a65;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: #ff8a65;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: #ff8a65;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: #ff8a65;
- color: rgba(0,0,0,0.54);
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
- border-left: 1px solid rgba(72,72,72,0.2);
- border-right: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 rgba(72,72,72,0.2);
- box-shadow: -1px 0 0 rgba(72,72,72,0.2);
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #484848;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e2e2e2;
- border-color: #e2e2e2;
-}
-.flatpickr-day.today {
- border-color: #bbb;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #bbb;
- background: #bbb;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #ff8a65;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #ff8a65;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #ff8a65;
- box-shadow: -10px 0 0 #ff8a65;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
- box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(72,72,72,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(72,72,72,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #ff8a65, 5px 0 0 #ff8a65;
- box-shadow: -5px 0 0 #ff8a65, 5px 0 0 #ff8a65;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- border-left: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(72,72,72,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- background: #fff;
- border-bottom: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- background: #fff;
- border-radius: 0 0 5px 5px;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #484848;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #484848;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #484848;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #484848;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #eaeaea;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
+++ /dev/null
-.flatpickr-calendar {
- background: transparent;
- opacity: 0;
- display: none;
- text-align: center;
- visibility: hidden;
- padding: 0;
- -webkit-animation: none;
- animation: none;
- direction: ltr;
- border: 0;
- font-size: 14px;
- line-height: 24px;
- border-radius: 5px;
- position: absolute;
- width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- -webkit-box-shadow: 0 3px 13px rgba(0,0,0,0.08);
- box-shadow: 0 3px 13px rgba(0,0,0,0.08);
-}
-.flatpickr-calendar.open,
-.flatpickr-calendar.inline {
- opacity: 1;
- max-height: 640px;
- visibility: visible;
-}
-.flatpickr-calendar.open {
- display: inline-block;
- z-index: 99999;
-}
-.flatpickr-calendar.animate.open {
- -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
- animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
-}
-.flatpickr-calendar.inline {
- display: block;
- position: relative;
- top: 2px;
-}
-.flatpickr-calendar.static {
- position: absolute;
- top: calc(100% + 2px);
-}
-.flatpickr-calendar.static.open {
- z-index: 999;
- display: block;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
- -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
- box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
-}
-.flatpickr-calendar .hasWeeks .dayContainer,
-.flatpickr-calendar .hasTime .dayContainer {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.flatpickr-calendar .hasWeeks .dayContainer {
- border-left: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- height: 40px;
- border-top: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-innerContainer {
- border-bottom: 0;
-}
-.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {
- border: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
- height: auto;
-}
-.flatpickr-calendar:before,
-.flatpickr-calendar:after {
- position: absolute;
- display: block;
- pointer-events: none;
- border: solid transparent;
- content: '';
- height: 0;
- width: 0;
- left: 22px;
-}
-.flatpickr-calendar.rightMost:before,
-.flatpickr-calendar.rightMost:after {
- left: auto;
- right: 22px;
-}
-.flatpickr-calendar:before {
- border-width: 5px;
- margin: 0 -5px;
-}
-.flatpickr-calendar:after {
- border-width: 4px;
- margin: 0 -4px;
-}
-.flatpickr-calendar.arrowTop:before,
-.flatpickr-calendar.arrowTop:after {
- bottom: 100%;
-}
-.flatpickr-calendar.arrowTop:before {
- border-bottom-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowTop:after {
- border-bottom-color: #ef5350;
-}
-.flatpickr-calendar.arrowBottom:before,
-.flatpickr-calendar.arrowBottom:after {
- top: 100%;
-}
-.flatpickr-calendar.arrowBottom:before {
- border-top-color: rgba(72,72,72,0.2);
-}
-.flatpickr-calendar.arrowBottom:after {
- border-top-color: #ef5350;
-}
-.flatpickr-calendar:focus {
- outline: 0;
-}
-.flatpickr-wrapper {
- position: relative;
- display: inline-block;
-}
-.flatpickr-months {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
-}
-.flatpickr-months .flatpickr-month {
- border-radius: 5px 5px 0 0;
- background: #ef5350;
- color: #fff;
- fill: #fff;
- height: 34px;
- line-height: 1;
- text-align: center;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- overflow: hidden;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-.flatpickr-months .flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month {
- text-decoration: none;
- cursor: pointer;
- position: absolute;
- top: 0;
- height: 34px;
- padding: 10px;
- z-index: 3;
- color: #fff;
- fill: #fff;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
-.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
- display: none;
-}
-.flatpickr-months .flatpickr-prev-month i,
-.flatpickr-months .flatpickr-next-month i {
- position: relative;
-}
-.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- left: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
-.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
-/*
- /*rtl:begin:ignore*/
-/*
- */
- right: 0;
-/*
- /*rtl:end:ignore*/
-/*
- */
-}
-/*
- /*rtl:begin:ignore*/
-/*
- /*rtl:end:ignore*/
-.flatpickr-months .flatpickr-prev-month:hover,
-.flatpickr-months .flatpickr-next-month:hover {
- color: #bbb;
-}
-.flatpickr-months .flatpickr-prev-month:hover svg,
-.flatpickr-months .flatpickr-next-month:hover svg {
- fill: #f64747;
-}
-.flatpickr-months .flatpickr-prev-month svg,
-.flatpickr-months .flatpickr-next-month svg {
- width: 14px;
- height: 14px;
-}
-.flatpickr-months .flatpickr-prev-month svg path,
-.flatpickr-months .flatpickr-next-month svg path {
- -webkit-transition: fill 0.1s;
- transition: fill 0.1s;
- fill: inherit;
-}
-.numInputWrapper {
- position: relative;
- height: auto;
-}
-.numInputWrapper input,
-.numInputWrapper span {
- display: inline-block;
-}
-.numInputWrapper input {
- width: 100%;
-}
-.numInputWrapper input::-ms-clear {
- display: none;
-}
-.numInputWrapper input::-webkit-outer-spin-button,
-.numInputWrapper input::-webkit-inner-spin-button {
- margin: 0;
- -webkit-appearance: none;
-}
-.numInputWrapper span {
- position: absolute;
- right: 0;
- width: 14px;
- padding: 0 4px 0 2px;
- height: 50%;
- line-height: 50%;
- opacity: 0;
- cursor: pointer;
- border: 1px solid rgba(72,72,72,0.15);
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.numInputWrapper span:hover {
- background: rgba(0,0,0,0.1);
-}
-.numInputWrapper span:active {
- background: rgba(0,0,0,0.2);
-}
-.numInputWrapper span:after {
- display: block;
- content: "";
- position: absolute;
-}
-.numInputWrapper span.arrowUp {
- top: 0;
- border-bottom: 0;
-}
-.numInputWrapper span.arrowUp:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-bottom: 4px solid rgba(72,72,72,0.6);
- top: 26%;
-}
-.numInputWrapper span.arrowDown {
- top: 50%;
-}
-.numInputWrapper span.arrowDown:after {
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid rgba(72,72,72,0.6);
- top: 40%;
-}
-.numInputWrapper span svg {
- width: inherit;
- height: auto;
-}
-.numInputWrapper span svg path {
- fill: rgba(255,255,255,0.5);
-}
-.numInputWrapper:hover {
- background: rgba(0,0,0,0.05);
-}
-.numInputWrapper:hover span {
- opacity: 1;
-}
-.flatpickr-current-month {
- font-size: 135%;
- line-height: inherit;
- font-weight: 300;
- color: inherit;
- position: absolute;
- width: 75%;
- left: 12.5%;
- padding: 7.48px 0 0 0;
- line-height: 1;
- height: 34px;
- display: inline-block;
- text-align: center;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
-}
-.flatpickr-current-month span.cur-month {
- font-family: inherit;
- font-weight: 700;
- color: inherit;
- display: inline-block;
- margin-left: 0.5ch;
- padding: 0;
-}
-.flatpickr-current-month span.cur-month:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .numInputWrapper {
- width: 6ch;
- width: 7ch\0;
- display: inline-block;
-}
-.flatpickr-current-month .numInputWrapper span.arrowUp:after {
- border-bottom-color: #fff;
-}
-.flatpickr-current-month .numInputWrapper span.arrowDown:after {
- border-top-color: #fff;
-}
-.flatpickr-current-month input.cur-year {
- background: transparent;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: inherit;
- cursor: text;
- padding: 0 0 0 0.5ch;
- margin: 0;
- display: inline-block;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- line-height: inherit;
- height: auto;
- border: 0;
- border-radius: 0;
- vertical-align: initial;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-current-month input.cur-year:focus {
- outline: 0;
-}
-.flatpickr-current-month input.cur-year[disabled],
-.flatpickr-current-month input.cur-year[disabled]:hover {
- font-size: 100%;
- color: rgba(255,255,255,0.5);
- background: transparent;
- pointer-events: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months {
- appearance: menulist;
- background: #ef5350;
- border: none;
- border-radius: 0;
- box-sizing: border-box;
- color: inherit;
- cursor: pointer;
- font-size: inherit;
- font-family: inherit;
- font-weight: 300;
- height: auto;
- line-height: inherit;
- margin: -1px 0 0 0;
- outline: none;
- padding: 0 0 0 0.5ch;
- position: relative;
- vertical-align: initial;
- -webkit-box-sizing: border-box;
- -webkit-appearance: menulist;
- -moz-appearance: menulist;
- width: auto;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
-.flatpickr-current-month .flatpickr-monthDropdown-months:active {
- outline: none;
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
- background: rgba(0,0,0,0.05);
-}
-.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
- background-color: #ef5350;
- outline: none;
- padding: 0;
-}
-.flatpickr-weekdays {
- background: #ef5350;
- text-align: center;
- overflow: hidden;
- width: 100%;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- align-items: center;
- height: 28px;
-}
-.flatpickr-weekdays .flatpickr-weekdaycontainer {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-span.flatpickr-weekday {
- cursor: default;
- font-size: 90%;
- background: #ef5350;
- color: rgba(0,0,0,0.54);
- line-height: 1;
- margin: 0;
- text-align: center;
- display: block;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- font-weight: bolder;
-}
-.dayContainer,
-.flatpickr-weeks {
- padding: 1px 0 0 0;
-}
-.flatpickr-days {
- position: relative;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -webkit-align-items: flex-start;
- -ms-flex-align: start;
- align-items: flex-start;
- width: 307.875px;
- border-left: 1px solid rgba(72,72,72,0.2);
- border-right: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-days:focus {
- outline: 0;
-}
-.dayContainer {
- padding: 0;
- outline: 0;
- text-align: left;
- width: 307.875px;
- min-width: 307.875px;
- max-width: 307.875px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- display: inline-block;
- display: -ms-flexbox;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- -ms-flex-pack: justify;
- -webkit-justify-content: space-around;
- justify-content: space-around;
- -webkit-transform: translate3d(0px, 0px, 0px);
- transform: translate3d(0px, 0px, 0px);
- opacity: 1;
-}
-.dayContainer + .dayContainer {
- -webkit-box-shadow: -1px 0 0 rgba(72,72,72,0.2);
- box-shadow: -1px 0 0 rgba(72,72,72,0.2);
-}
-.flatpickr-day {
- background: none;
- border: 1px solid transparent;
- border-radius: 150px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #484848;
- cursor: pointer;
- font-weight: 400;
- width: 14.2857143%;
- -webkit-flex-basis: 14.2857143%;
- -ms-flex-preferred-size: 14.2857143%;
- flex-basis: 14.2857143%;
- max-width: 39px;
- height: 39px;
- line-height: 39px;
- margin: 0;
- display: inline-block;
- position: relative;
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- text-align: center;
-}
-.flatpickr-day.inRange,
-.flatpickr-day.prevMonthDay.inRange,
-.flatpickr-day.nextMonthDay.inRange,
-.flatpickr-day.today.inRange,
-.flatpickr-day.prevMonthDay.today.inRange,
-.flatpickr-day.nextMonthDay.today.inRange,
-.flatpickr-day:hover,
-.flatpickr-day.prevMonthDay:hover,
-.flatpickr-day.nextMonthDay:hover,
-.flatpickr-day:focus,
-.flatpickr-day.prevMonthDay:focus,
-.flatpickr-day.nextMonthDay:focus {
- cursor: pointer;
- outline: 0;
- background: #e2e2e2;
- border-color: #e2e2e2;
-}
-.flatpickr-day.today {
- border-color: #bbb;
-}
-.flatpickr-day.today:hover,
-.flatpickr-day.today:focus {
- border-color: #bbb;
- background: #bbb;
- color: #fff;
-}
-.flatpickr-day.selected,
-.flatpickr-day.startRange,
-.flatpickr-day.endRange,
-.flatpickr-day.selected.inRange,
-.flatpickr-day.startRange.inRange,
-.flatpickr-day.endRange.inRange,
-.flatpickr-day.selected:focus,
-.flatpickr-day.startRange:focus,
-.flatpickr-day.endRange:focus,
-.flatpickr-day.selected:hover,
-.flatpickr-day.startRange:hover,
-.flatpickr-day.endRange:hover,
-.flatpickr-day.selected.prevMonthDay,
-.flatpickr-day.startRange.prevMonthDay,
-.flatpickr-day.endRange.prevMonthDay,
-.flatpickr-day.selected.nextMonthDay,
-.flatpickr-day.startRange.nextMonthDay,
-.flatpickr-day.endRange.nextMonthDay {
- background: #ef5350;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: #fff;
- border-color: #ef5350;
-}
-.flatpickr-day.selected.startRange,
-.flatpickr-day.startRange.startRange,
-.flatpickr-day.endRange.startRange {
- border-radius: 50px 0 0 50px;
-}
-.flatpickr-day.selected.endRange,
-.flatpickr-day.startRange.endRange,
-.flatpickr-day.endRange.endRange {
- border-radius: 0 50px 50px 0;
-}
-.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
-.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
- -webkit-box-shadow: -10px 0 0 #ef5350;
- box-shadow: -10px 0 0 #ef5350;
-}
-.flatpickr-day.selected.startRange.endRange,
-.flatpickr-day.startRange.startRange.endRange,
-.flatpickr-day.endRange.startRange.endRange {
- border-radius: 50px;
-}
-.flatpickr-day.inRange {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
- box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover,
-.flatpickr-day.prevMonthDay,
-.flatpickr-day.nextMonthDay,
-.flatpickr-day.notAllowed,
-.flatpickr-day.notAllowed.prevMonthDay,
-.flatpickr-day.notAllowed.nextMonthDay {
- color: rgba(72,72,72,0.3);
- background: transparent;
- border-color: transparent;
- cursor: default;
-}
-.flatpickr-day.flatpickr-disabled,
-.flatpickr-day.flatpickr-disabled:hover {
- cursor: not-allowed;
- color: rgba(72,72,72,0.1);
-}
-.flatpickr-day.week.selected {
- border-radius: 0;
- -webkit-box-shadow: -5px 0 0 #ef5350, 5px 0 0 #ef5350;
- box-shadow: -5px 0 0 #ef5350, 5px 0 0 #ef5350;
-}
-.flatpickr-day.hidden {
- visibility: hidden;
-}
-.rangeMode .flatpickr-day {
- margin-top: 1px;
-}
-.flatpickr-weekwrapper {
- float: left;
-}
-.flatpickr-weekwrapper .flatpickr-weeks {
- padding: 0 12px;
- border-left: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-weekwrapper .flatpickr-weekday {
- float: none;
- width: 100%;
- line-height: 28px;
-}
-.flatpickr-weekwrapper span.flatpickr-day,
-.flatpickr-weekwrapper span.flatpickr-day:hover {
- display: block;
- width: 100%;
- max-width: none;
- color: rgba(72,72,72,0.3);
- background: transparent;
- cursor: default;
- border: none;
-}
-.flatpickr-innerContainer {
- display: block;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- background: #fff;
- border-bottom: 1px solid rgba(72,72,72,0.2);
-}
-.flatpickr-rContainer {
- display: inline-block;
- padding: 0;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-.flatpickr-time {
- text-align: center;
- outline: 0;
- display: block;
- height: 0;
- line-height: 40px;
- max-height: 40px;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- overflow: hidden;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- background: #fff;
- border-radius: 0 0 5px 5px;
-}
-.flatpickr-time:after {
- content: "";
- display: table;
- clear: both;
-}
-.flatpickr-time .numInputWrapper {
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
- flex: 1;
- width: 40%;
- height: 40px;
- float: left;
-}
-.flatpickr-time .numInputWrapper span.arrowUp:after {
- border-bottom-color: #484848;
-}
-.flatpickr-time .numInputWrapper span.arrowDown:after {
- border-top-color: #484848;
-}
-.flatpickr-time.hasSeconds .numInputWrapper {
- width: 26%;
-}
-.flatpickr-time.time24hr .numInputWrapper {
- width: 49%;
-}
-.flatpickr-time input {
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 0;
- border-radius: 0;
- text-align: center;
- margin: 0;
- padding: 0;
- height: inherit;
- line-height: inherit;
- color: #484848;
- font-size: 14px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: textfield;
- -moz-appearance: textfield;
- appearance: textfield;
-}
-.flatpickr-time input.flatpickr-hour {
- font-weight: bold;
-}
-.flatpickr-time input.flatpickr-minute,
-.flatpickr-time input.flatpickr-second {
- font-weight: 400;
-}
-.flatpickr-time input:focus {
- outline: 0;
- border: 0;
-}
-.flatpickr-time .flatpickr-time-separator,
-.flatpickr-time .flatpickr-am-pm {
- height: inherit;
- float: left;
- line-height: inherit;
- color: #484848;
- font-weight: bold;
- width: 2%;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-align-self: center;
- -ms-flex-item-align: center;
- align-self: center;
-}
-.flatpickr-time .flatpickr-am-pm {
- outline: 0;
- width: 18%;
- cursor: pointer;
- text-align: center;
- font-weight: 400;
-}
-.flatpickr-time input:hover,
-.flatpickr-time .flatpickr-am-pm:hover,
-.flatpickr-time input:focus,
-.flatpickr-time .flatpickr-am-pm:focus {
- background: #eaeaea;
-}
-.flatpickr-input[readonly] {
- cursor: pointer;
-}
-@-webkit-keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes fpFadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
+++ /dev/null
-import { Options } from "./options";
-import { Instance, FlatpickrFn } from "./instance";
-declare global {
- interface HTMLElement {
- flatpickr: (config?: Options) => Instance;
- _flatpickr?: Instance;
- }
- interface NodeList {
- flatpickr: (config?: Options) => Instance | Instance[];
- }
- interface HTMLCollection {
- flatpickr: (config?: Options) => Instance | Instance[];
- }
- interface Window {
- flatpickr: FlatpickrFn;
- }
- interface Date {
- fp_incr: (n: number) => Date;
- }
-}
+++ /dev/null
-import { DateOption, Options, ParsedOptions } from "./options";
-import { Locale, CustomLocale, key as LocaleKey } from "./locale";
-import { RevFormat, Formats, TokenRegex } from "../utils/formatting";
-export interface Elements {
- element: HTMLElement;
- input: HTMLInputElement;
- altInput?: HTMLInputElement;
- _input: HTMLInputElement;
- mobileInput?: HTMLInputElement;
- mobileFormatStr?: string;
- selectedDateElem?: DayElement;
- todayDateElem?: DayElement;
- _positionElement: HTMLElement;
- weekdayContainer: HTMLDivElement;
- calendarContainer: HTMLDivElement;
- innerContainer?: HTMLDivElement;
- rContainer?: HTMLDivElement;
- daysContainer?: HTMLDivElement;
- days: HTMLDivElement;
- weekWrapper?: HTMLDivElement;
- weekNumbers?: HTMLDivElement;
- monthNav: HTMLDivElement;
- monthsDropdownContainer: HTMLSelectElement;
- yearElements: HTMLInputElement[];
- monthElements: HTMLSpanElement[];
- currentYearElement: HTMLInputElement;
- currentMonthElement: HTMLSpanElement;
- _hidePrevMonthArrow: boolean;
- _hideNextMonthArrow: boolean;
- prevMonthNav: HTMLElement;
- nextMonthNav: HTMLElement;
- timeContainer?: HTMLDivElement;
- hourElement?: HTMLInputElement;
- minuteElement?: HTMLInputElement;
- secondElement?: HTMLInputElement;
- amPM?: HTMLSpanElement;
- pluginElements: Node[];
-}
-export interface Formatting {
- revFormat: RevFormat;
- formats: Formats;
- tokenRegex: TokenRegex;
-}
-export declare type Instance = Elements & Formatting & {
- minRangeDate?: Date;
- maxRangeDate?: Date;
- now: Date;
- latestSelectedDateObj?: Date;
- _selectedDateObj?: Date;
- selectedDates: Date[];
- _initialDate: Date;
- config: ParsedOptions;
- loadedPlugins: string[];
- l10n: Locale;
- currentYear: number;
- currentMonth: number;
- isOpen: boolean;
- isMobile: boolean;
- minDateHasTime: boolean;
- maxDateHasTime: boolean;
- showTimeInput: boolean;
- _showTimeInput: boolean;
- changeMonth: (value: number, isOffset?: boolean, fromKeyboard?: boolean) => void;
- changeYear: (year: number) => void;
- clear: (emitChangeEvent?: boolean, toInitial?: boolean) => void;
- close: () => void;
- destroy: () => void;
- isEnabled: (date: DateOption, timeless?: boolean) => boolean;
- jumpToDate: (date?: DateOption, triggerChange?: boolean) => void;
- open: (e?: FocusEvent | MouseEvent, positionElement?: HTMLElement) => void;
- redraw: () => void;
- set: (option: keyof Options | {
- [k in keyof Options]?: Options[k];
- }, value?: any) => void;
- setDate: (date: DateOption | DateOption[], triggerChange?: boolean, format?: string) => void;
- toggle: () => void;
- pad: (num: string | number) => string;
- parseDate: (date: Date | string | number, givenFormat?: string, timeless?: boolean) => Date | undefined;
- formatDate: (dateObj: Date, frmt: string) => string;
- _handlers: {
- event: string;
- element: Element;
- handler: (e?: Event) => void;
- options?: {
- capture?: boolean;
- };
- }[];
- _bind: <E extends Element>(element: E | E[], event: string | string[], handler: (e?: any) => void) => void;
- _createElement: <E extends HTMLElement>(tag: keyof HTMLElementTagNameMap, className: string, content?: string) => E;
- _setHoursFromDate: (date: Date) => void;
- _debouncedChange: () => void;
- __hideNextMonthArrow: boolean;
- __hidePrevMonthArrow: boolean;
- _positionCalendar: (customPositionElement?: HTMLElement) => void;
- utils: {
- getDaysInMonth: (month?: number, year?: number) => number;
- };
-};
-export interface FlatpickrFn {
- (selector: Node, config?: Options): Instance;
- (selector: ArrayLike<Node>, config?: Options): Instance[];
- (selector: string, config?: Options): Instance | Instance[];
- defaultConfig: Partial<ParsedOptions>;
- l10ns: {
- [k in LocaleKey]?: CustomLocale;
- } & {
- default: Locale;
- };
- localize: (l10n: CustomLocale) => void;
- setDefaults: (config: Options) => void;
- parseDate: (date: DateOption, format?: string, timeless?: boolean) => Date | undefined;
- formatDate: (date: Date, format: string) => string;
- compareDates: (date1: Date, date2: Date, timeless?: boolean) => number;
-}
-export declare type DayElement = HTMLSpanElement & {
- dateObj: Date;
- $i: number;
-};
+++ /dev/null
-export declare type Locale = {
- weekdays: {
- shorthand: [string, string, string, string, string, string, string];
- longhand: [string, string, string, string, string, string, string];
- };
- months: {
- shorthand: [string, string, string, string, string, string, string, string, string, string, string, string];
- longhand: [string, string, string, string, string, string, string, string, string, string, string, string];
- };
- daysInMonth: [number, number, number, number, number, number, number, number, number, number, number, number];
- firstDayOfWeek: number;
- ordinal: (nth: number) => string;
- rangeSeparator: string;
- weekAbbreviation: string;
- scrollTitle: string;
- toggleTitle: string;
- amPM: [string, string];
- yearAriaLabel: string;
- hourAriaLabel: string;
- minuteAriaLabel: string;
- time_24hr: boolean;
-};
-export declare type CustomLocale = {
- ordinal?: Locale["ordinal"];
- daysInMonth?: Locale["daysInMonth"];
- firstDayOfWeek?: Locale["firstDayOfWeek"];
- rangeSeparator?: Locale["rangeSeparator"];
- weekAbbreviation?: Locale["weekAbbreviation"];
- toggleTitle?: Locale["toggleTitle"];
- scrollTitle?: Locale["scrollTitle"];
- yearAriaLabel?: string;
- hourAriaLabel?: string;
- minuteAriaLabel?: string;
- amPM?: Locale["amPM"];
- time_24hr?: Locale["time_24hr"];
- weekdays: {
- shorthand: [string, string, string, string, string, string, string];
- longhand: [string, string, string, string, string, string, string];
- };
- months: {
- shorthand: [string, string, string, string, string, string, string, string, string, string, string, string];
- longhand: [string, string, string, string, string, string, string, string, string, string, string, string];
- };
-};
-export declare type key = "ar" | "at" | "az" | "be" | "bg" | "bn" | "bs" | "cat" | "cs" | "cy" | "da" | "de" | "default" | "en" | "eo" | "es" | "et" | "fa" | "fi" | "fo" | "fr" | "gr" | "he" | "hi" | "hr" | "hu" | "id" | "is" | "it" | "ja" | "ka" | "ko" | "km" | "kz" | "lt" | "lv" | "mk" | "mn" | "ms" | "my" | "nl" | "no" | "pa" | "pl" | "pt" | "ro" | "ru" | "si" | "sk" | "sl" | "sq" | "sr" | "sv" | "th" | "tr" | "uk" | "vn" | "zh" | "zh_tw" | "lu";
+++ /dev/null
-import { Instance } from "./instance";
-import { CustomLocale, key as LocaleKey, Locale } from "./locale";
-export declare type DateOption = Date | string | number;
-export declare type DateRangeLimit<D = DateOption> = {
- from: D;
- to: D;
-};
-export declare type DateLimit<D = DateOption> = D | DateRangeLimit<D> | ((date: Date) => boolean);
-export declare type Hook = (dates: Date[], currentDateString: string, self: Instance, data?: any) => void;
-export declare type HookKey = "onChange" | "onClose" | "onDayCreate" | "onDestroy" | "onKeyDown" | "onMonthChange" | "onOpen" | "onParseConfig" | "onReady" | "onValueUpdate" | "onYearChange" | "onPreCalendarPosition";
-export declare const HOOKS: HookKey[];
-export declare type Plugin<E = {}> = (fp: Instance & E) => Options;
-export interface BaseOptions {
- allowInput: boolean;
- altFormat: string;
- altInput: boolean;
- altInputClass: string;
- animate: boolean;
- appendTo: HTMLElement;
- ariaDateFormat: string;
- clickOpens: boolean;
- closeOnSelect: boolean;
- conjunction: string;
- dateFormat: string;
- defaultDate: DateOption | DateOption[];
- defaultHour: number;
- defaultMinute: number;
- defaultSeconds: number;
- disable: DateLimit<DateOption>[];
- disableMobile: boolean;
- enable: DateLimit<DateOption>[];
- enableSeconds: boolean;
- enableTime: boolean;
- errorHandler: (e: Error) => void;
- formatDate: (date: Date, format: string, locale: Locale) => string;
- getWeek: (date: Date) => string | number;
- hourIncrement: number;
- ignoredFocusElements: HTMLElement[];
- inline: boolean;
- locale: LocaleKey | CustomLocale;
- maxDate: DateOption;
- maxTime: DateOption;
- minDate: DateOption;
- minTime: DateOption;
- minuteIncrement: number;
- mode: "single" | "multiple" | "range" | "time";
- monthSelectorType: "dropdown" | "static";
- nextArrow: string;
- noCalendar: boolean;
- now?: DateOption;
- onChange: Hook | Hook[];
- onClose: Hook | Hook[];
- onDayCreate: Hook | Hook[];
- onDestroy: Hook | Hook[];
- onKeyDown: Hook | Hook[];
- onMonthChange: Hook | Hook[];
- onOpen: Hook | Hook[];
- onParseConfig: Hook | Hook[];
- onReady: Hook | Hook[];
- onValueUpdate: Hook | Hook[];
- onYearChange: Hook | Hook[];
- onPreCalendarPosition: Hook | Hook[];
- parseDate: (date: string, format: string) => Date;
- plugins: Plugin[];
- position: "auto" | "above" | "below";
- positionElement: Element;
- prevArrow: string;
- shorthandCurrentMonth: boolean;
- static: boolean;
- showMonths?: number;
- time_24hr: boolean;
- weekNumbers: boolean;
- wrap: boolean;
-}
-export declare type Options = Partial<BaseOptions>;
-export interface ParsedOptions {
- _disable: DateLimit<Date>[];
- _enable: DateLimit<Date>[];
- _maxDate?: Date;
- _maxTime?: Date;
- _minDate?: Date;
- _minTime?: Date;
- allowInput: boolean;
- altFormat: string;
- altInput: boolean;
- altInputClass: string;
- animate: boolean;
- appendTo?: HTMLElement;
- ariaDateFormat: string;
- clickOpens: boolean;
- closeOnSelect: boolean;
- conjunction: string;
- dateFormat: string;
- defaultDate?: Date | Date[];
- defaultHour: number;
- defaultMinute: number;
- defaultSeconds: number;
- disable: DateLimit<Date>[];
- disableMobile: boolean;
- enable: DateLimit<Date>[];
- enableSeconds: boolean;
- enableTime: boolean;
- errorHandler: (err: Error) => void;
- formatDate?: Options["formatDate"];
- getWeek: (date: Date) => string | number;
- hourIncrement: number;
- ignoredFocusElements: HTMLElement[];
- inline: boolean;
- locale: LocaleKey | CustomLocale;
- maxDate?: Date;
- maxTime?: Date;
- minDate?: Date;
- minTime?: Date;
- minuteIncrement: number;
- mode: BaseOptions["mode"];
- monthSelectorType: string;
- nextArrow: string;
- noCalendar: boolean;
- now: Date;
- onChange: Hook[];
- onClose: Hook[];
- onDayCreate: Hook[];
- onDestroy: Hook[];
- onKeyDown: Hook[];
- onMonthChange: Hook[];
- onOpen: Hook[];
- onParseConfig: Hook[];
- onReady: Hook[];
- onValueUpdate: Hook[];
- onYearChange: Hook[];
- onPreCalendarPosition: Hook[];
- parseDate?: BaseOptions["parseDate"];
- plugins: Plugin[];
- position: BaseOptions["position"];
- positionElement?: HTMLElement;
- prevArrow: string;
- shorthandCurrentMonth: boolean;
- showMonths: number;
- static: boolean;
- time_24hr: boolean;
- weekNumbers: boolean;
- wrap: boolean;
-}
-export declare const defaults: ParsedOptions;
+++ /dev/null
-import { FlatpickrFn } from "./types/instance";
-import { Instance as _Instance } from "./types/instance";
-import {
- Options as _Options,
- Hook as _Hook,
- HookKey as _HookKey,
- ParsedOptions as _ParsedOptions,
- DateLimit as _DateLimit,
- DateOption as _DateOption,
- DateRangeLimit as _DateRangeLimit,
- Plugin as _Plugin,
-} from "./types/options";
-
-import {
- Locale as _Locale,
- CustomLocale as _CustomLocale,
-} from "./types/locale";
-
-declare var flatpickr: FlatpickrFn;
-
-declare namespace flatpickr {
- export type Instance = _Instance;
- export type CustomLocale = _CustomLocale;
- export type Locale = _Locale;
-
- export namespace Options {
- export type Options = _Options;
- export type Hook = _Hook;
- export type HookKey = _HookKey;
- export type ParsedOptions = _ParsedOptions;
- export type DateLimit = _DateLimit;
- export type DateOption = _DateOption;
- export type DateRangeLimit = _DateRangeLimit;
- export type Plugin = _Plugin;
- }
-}
-
-export default flatpickr;
+++ /dev/null
-import { Locale } from "../types/locale";
-import { ParsedOptions } from "../types/options";
-export interface FormatterArgs {
- config?: ParsedOptions;
- l10n?: Locale;
-}
-export declare const createDateFormatter: ({ config, l10n, }: FormatterArgs) => (dateObj: Date, frmt: string, overrideLocale?: Locale | undefined) => string;
-export declare const createDateParser: ({ config, l10n }: {
- config?: ParsedOptions | undefined;
- l10n?: Locale | undefined;
-}) => (date: string | number | Date, givenFormat?: string | undefined, timeless?: boolean | undefined, customLocale?: Locale | undefined) => Date | undefined;
-export declare function compareDates(date1: Date, date2: Date, timeless?: boolean): number;
-export declare function compareTimes(date1: Date, date2: Date): number;
-export declare const isBetween: (ts: number, ts1: number, ts2: number) => boolean;
-export declare const duration: {
- DAY: number;
-};
+++ /dev/null
-export declare function toggleClass(elem: HTMLElement, className: string, bool: boolean): void;
-export declare function createElement<T extends HTMLElement>(tag: keyof HTMLElementTagNameMap, className: string, content?: string): T;
-export declare function clearNode(node: HTMLElement): void;
-export declare function findParent(node: Element, condition: (n: Element) => boolean): Element | undefined;
-export declare function createNumberInput(inputClassName: string, opts?: Record<string, any>): HTMLDivElement;
-export declare function getEventTarget(event: Event): EventTarget | null;
+++ /dev/null
-import { Locale } from "../types/locale";
-import { ParsedOptions } from "../types/options";
-export declare type token = "D" | "F" | "G" | "H" | "J" | "K" | "M" | "S" | "U" | "W" | "Y" | "Z" | "d" | "h" | "i" | "j" | "l" | "m" | "n" | "s" | "u" | "w" | "y";
-export declare const monthToStr: (monthNumber: number, shorthand: boolean, locale: Locale) => string;
-export declare type RevFormatFn = (date: Date, data: string, locale: Locale) => Date | void | undefined;
-export declare type RevFormat = Record<string, RevFormatFn>;
-export declare const revFormat: RevFormat;
-export declare type TokenRegex = {
- [k in token]: string;
-};
-export declare const tokenRegex: TokenRegex;
-export declare type Formats = Record<token, (date: Date, locale: Locale, options: ParsedOptions) => string | number>;
-export declare const formats: Formats;
+++ /dev/null
-export declare const pad: (number: string | number) => string;
-export declare const int: (bool: boolean) => 1 | 0;
-export declare function debounce<F extends Function>(func: F, wait: number, immediate?: boolean): (this: Function) => void;
-export declare const arrayify: <T>(obj: T | T[]) => T[];
-export declare type IncrementEvent = MouseEvent & {
- delta: number;
- type: "increment";
-};
+++ /dev/null
-!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){"use strict";var e,n;function l(){return e.apply(null,arguments)}function _(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function m(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function M(e,a){var t,s=[];for(t=0;t<e.length;++t)s.push(a(e[t],t));return s}function h(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function L(e,a){for(var t in a)h(a,t)&&(e[t]=a[t]);return h(a,"toString")&&(e.toString=a.toString),h(a,"valueOf")&&(e.valueOf=a.valueOf),e}function c(e,a,t,s){return va(e,a,t,s,!0).utc()}function Y(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function y(e){if(null==e._isValid){var a=Y(e),t=n.call(a.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&a.overflow<0&&!a.empty&&!a.invalidMonth&&!a.invalidWeekday&&!a.weekdayMismatch&&!a.nullInput&&!a.invalidFormat&&!a.userInvalidated&&(!a.meridiem||a.meridiem&&t);if(e._strict&&(s=s&&0===a.charsLeftOver&&0===a.unusedTokens.length&&void 0===a.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function f(e){var a=c(NaN);return null!=e?L(Y(a),e):Y(a).userInvalidated=!0,a}n=Array.prototype.some?Array.prototype.some:function(e){for(var a=Object(this),t=a.length>>>0,s=0;s<t;s++)if(s in a&&e.call(this,a[s],s,a))return!0;return!1};var d=l.momentProperties=[];function k(e,a){var t,s,n;if(o(a._isAMomentObject)||(e._isAMomentObject=a._isAMomentObject),o(a._i)||(e._i=a._i),o(a._f)||(e._f=a._f),o(a._l)||(e._l=a._l),o(a._strict)||(e._strict=a._strict),o(a._tzm)||(e._tzm=a._tzm),o(a._isUTC)||(e._isUTC=a._isUTC),o(a._offset)||(e._offset=a._offset),o(a._pf)||(e._pf=Y(a)),o(a._locale)||(e._locale=a._locale),0<d.length)for(t=0;t<d.length;t++)o(n=a[s=d[t]])||(e[s]=n);return e}var a=!1;function p(e){k(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===a&&(a=!0,l.updateOffset(this),a=!1)}function D(e){return e instanceof p||null!=e&&null!=e._isAMomentObject}function T(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var a=+e,t=0;return 0!==a&&isFinite(a)&&(t=T(a)),t}function r(e,a,t){var s,n=Math.min(e.length,a.length),d=Math.abs(e.length-a.length),r=0;for(s=0;s<n;s++)(t&&e[s]!==a[s]||!t&&g(e[s])!==g(a[s]))&&r++;return r+d}function w(e){!1===l.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function t(n,d){var r=!0;return L(function(){if(null!=l.deprecationHandler&&l.deprecationHandler(null,n),r){for(var e,a=[],t=0;t<arguments.length;t++){if(e="","object"==typeof arguments[t]){for(var s in e+="\n["+t+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[t];a.push(e)}w(n+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),r=!1}return d.apply(this,arguments)},d)}var s,v={};function H(e,a){null!=l.deprecationHandler&&l.deprecationHandler(e,a),v[e]||(w(a),v[e]=!0)}function S(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function b(e,a){var t,s=L({},e);for(t in a)h(a,t)&&(i(e[t])&&i(a[t])?(s[t]={},L(s[t],e[t]),L(s[t],a[t])):null!=a[t]?s[t]=a[t]:delete s[t]);for(t in e)h(e,t)&&!h(a,t)&&i(e[t])&&(s[t]=L({},s[t]));return s}function j(e){null!=e&&this.set(e)}l.suppressDeprecationWarnings=!1,l.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var a,t=[];for(a in e)h(e,a)&&t.push(a);return t};var x={};function P(e,a){var t=e.toLowerCase();x[t]=x[t+"s"]=x[a]=e}function O(e){return"string"==typeof e?x[e]||x[e.toLowerCase()]:void 0}function W(e){var a,t,s={};for(t in e)h(e,t)&&(a=O(t))&&(s[a]=e[t]);return s}var E={};function A(e,a){E[e]=a}function F(e,a,t){var s=""+Math.abs(e),n=a-s.length;return(0<=e?t?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+s}var z=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,J=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,N={},R={};function I(e,a,t,s){var n=s;"string"==typeof s&&(n=function(){return this[s]()}),e&&(R[e]=n),a&&(R[a[0]]=function(){return F(n.apply(this,arguments),a[1],a[2])}),t&&(R[t]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function C(e,a){return e.isValid()?(a=G(a,e.localeData()),N[a]=N[a]||function(s){var e,n,a,d=s.match(z);for(e=0,n=d.length;e<n;e++)R[d[e]]?d[e]=R[d[e]]:d[e]=(a=d[e]).match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"");return function(e){var a,t="";for(a=0;a<n;a++)t+=S(d[a])?d[a].call(e,s):d[a];return t}}(a),N[a](e)):e.localeData().invalidDate()}function G(e,a){var t=5;function s(e){return a.longDateFormat(e)||e}for(J.lastIndex=0;0<=t&&J.test(e);)e=e.replace(J,s),J.lastIndex=0,t-=1;return e}var U=/\d/,V=/\d\d/,K=/\d{3}/,$=/\d{4}/,Z=/[+-]?\d{6}/,B=/\d\d?/,q=/\d\d\d\d?/,Q=/\d\d\d\d\d\d?/,X=/\d{1,3}/,ee=/\d{1,4}/,ae=/[+-]?\d{1,6}/,te=/\d+/,se=/[+-]?\d+/,ne=/Z|[+-]\d\d:?\d\d/gi,de=/Z|[+-]\d\d(?::?\d\d)?/gi,re=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,_e={};function ie(e,t,s){_e[e]=S(t)?t:function(e,a){return e&&s?s:t}}function oe(e,a){return h(_e,e)?_e[e](a._strict,a._locale):new RegExp(me(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,a,t,s,n){return a||t||s||n})))}function me(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ue={};function le(e,t){var a,s=t;for("string"==typeof e&&(e=[e]),m(t)&&(s=function(e,a){a[t]=g(e)}),a=0;a<e.length;a++)ue[e[a]]=s}function Me(e,n){le(e,function(e,a,t,s){t._w=t._w||{},n(e,t._w,t,s)})}var he=0,Le=1,ce=2,Ye=3,ye=4,fe=5,ke=6,pe=7,De=8;function Te(e){return ge(e)?366:365}function ge(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),P("year","y"),A("year",1),ie("Y",se),ie("YY",B,V),ie("YYYY",ee,$),ie("YYYYY",ae,Z),ie("YYYYYY",ae,Z),le(["YYYYY","YYYYYY"],he),le("YYYY",function(e,a){a[he]=2===e.length?l.parseTwoDigitYear(e):g(e)}),le("YY",function(e,a){a[he]=l.parseTwoDigitYear(e)}),le("Y",function(e,a){a[he]=parseInt(e,10)}),l.parseTwoDigitYear=function(e){return g(e)+(68<g(e)?1900:2e3)};var we,ve=He("FullYear",!0);function He(a,t){return function(e){return null!=e?(be(this,a,e),l.updateOffset(this,t),this):Se(this,a)}}function Se(e,a){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+a]():NaN}function be(e,a,t){e.isValid()&&!isNaN(t)&&("FullYear"===a&&ge(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+a](t,e.month(),je(t,e.month())):e._d["set"+(e._isUTC?"UTC":"")+a](t))}function je(e,a){if(isNaN(e)||isNaN(a))return NaN;var t,s=(a%(t=12)+t)%t;return e+=(a-s)/12,1===s?ge(e)?29:28:31-s%7%2}we=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var a;for(a=0;a<this.length;++a)if(this[a]===e)return a;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),P("month","M"),A("month",8),ie("M",B),ie("MM",B,V),ie("MMM",function(e,a){return a.monthsShortRegex(e)}),ie("MMMM",function(e,a){return a.monthsRegex(e)}),le(["M","MM"],function(e,a){a[Le]=g(e)-1}),le(["MMM","MMMM"],function(e,a,t,s){var n=t._locale.monthsParse(e,s,t._strict);null!=n?a[Le]=n:Y(t).invalidMonth=e});var xe=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Pe="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var Oe="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function We(e,a){var t;if(!e.isValid())return e;if("string"==typeof a)if(/^\d+$/.test(a))a=g(a);else if(!m(a=e.localeData().monthsParse(a)))return e;return t=Math.min(e.date(),je(e.year(),a)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](a,t),e}function Ee(e){return null!=e?(We(this,e),l.updateOffset(this,!0),this):Se(this,"Month")}var Ae=re;var Fe=re;function ze(){function e(e,a){return a.length-e.length}var a,t,s=[],n=[],d=[];for(a=0;a<12;a++)t=c([2e3,a]),s.push(this.monthsShort(t,"")),n.push(this.months(t,"")),d.push(this.months(t,"")),d.push(this.monthsShort(t,""));for(s.sort(e),n.sort(e),d.sort(e),a=0;a<12;a++)s[a]=me(s[a]),n[a]=me(n[a]);for(a=0;a<24;a++)d[a]=me(d[a]);this._monthsRegex=new RegExp("^("+d.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Je(e){var a=new Date(Date.UTC.apply(null,arguments));return e<100&&0<=e&&isFinite(a.getUTCFullYear())&&a.setUTCFullYear(e),a}function Ne(e,a,t){var s=7+a-t;return-((7+Je(e,0,s).getUTCDay()-a)%7)+s-1}function Re(e,a,t,s,n){var d,r,_=1+7*(a-1)+(7+t-s)%7+Ne(e,s,n);return r=_<=0?Te(d=e-1)+_:_>Te(e)?(d=e+1,_-Te(e)):(d=e,_),{year:d,dayOfYear:r}}function Ie(e,a,t){var s,n,d=Ne(e.year(),a,t),r=Math.floor((e.dayOfYear()-d-1)/7)+1;return r<1?s=r+Ce(n=e.year()-1,a,t):r>Ce(e.year(),a,t)?(s=r-Ce(e.year(),a,t),n=e.year()+1):(n=e.year(),s=r),{week:s,year:n}}function Ce(e,a,t){var s=Ne(e,a,t),n=Ne(e+1,a,t);return(Te(e)-s+n)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),P("week","w"),P("isoWeek","W"),A("week",5),A("isoWeek",5),ie("w",B),ie("ww",B,V),ie("W",B),ie("WW",B,V),Me(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=g(e)});I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),P("day","d"),P("weekday","e"),P("isoWeekday","E"),A("day",11),A("weekday",11),A("isoWeekday",11),ie("d",B),ie("e",B),ie("E",B),ie("dd",function(e,a){return a.weekdaysMinRegex(e)}),ie("ddd",function(e,a){return a.weekdaysShortRegex(e)}),ie("dddd",function(e,a){return a.weekdaysRegex(e)}),Me(["dd","ddd","dddd"],function(e,a,t,s){var n=t._locale.weekdaysParse(e,s,t._strict);null!=n?a.d=n:Y(t).invalidWeekday=e}),Me(["d","e","E"],function(e,a,t,s){a[s]=g(e)});var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ue="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Ve="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var Ke=re;var $e=re;var Ze=re;function Be(){function e(e,a){return a.length-e.length}var a,t,s,n,d,r=[],_=[],i=[],o=[];for(a=0;a<7;a++)t=c([2e3,1]).day(a),s=this.weekdaysMin(t,""),n=this.weekdaysShort(t,""),d=this.weekdays(t,""),r.push(s),_.push(n),i.push(d),o.push(s),o.push(n),o.push(d);for(r.sort(e),_.sort(e),i.sort(e),o.sort(e),a=0;a<7;a++)_[a]=me(_[a]),i[a]=me(i[a]),o[a]=me(o[a]);this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function qe(){return this.hours()%12||12}function Qe(e,a){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function Xe(e,a){return a._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,qe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+qe.apply(this)+F(this.minutes(),2)}),I("hmmss",0,0,function(){return""+qe.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+F(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)}),Qe("a",!0),Qe("A",!1),P("hour","h"),A("hour",13),ie("a",Xe),ie("A",Xe),ie("H",B),ie("h",B),ie("k",B),ie("HH",B,V),ie("hh",B,V),ie("kk",B,V),ie("hmm",q),ie("hmmss",Q),ie("Hmm",q),ie("Hmmss",Q),le(["H","HH"],Ye),le(["k","kk"],function(e,a,t){var s=g(e);a[Ye]=24===s?0:s}),le(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),le(["h","hh"],function(e,a,t){a[Ye]=g(e),Y(t).bigHour=!0}),le("hmm",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s)),Y(t).bigHour=!0}),le("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n)),Y(t).bigHour=!0}),le("Hmm",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s))}),le("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n))});var ea,aa=He("Hours",!0),ta={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Pe,monthsShort:Oe,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Ve,weekdaysShort:Ue,meridiemParse:/[ap]\.?m?\.?/i},sa={},na={};function da(e){return e?e.toLowerCase().replace("_","-"):e}function ra(e){var a=null;if(!sa[e]&&"undefined"!=typeof module&&module&&module.exports)try{a=ea._abbr,require("./locale/"+e),_a(a)}catch(e){}return sa[e]}function _a(e,a){var t;return e&&((t=o(a)?oa(e):ia(e,a))?ea=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ea._abbr}function ia(e,a){if(null===a)return delete sa[e],null;var t,s=ta;if(a.abbr=e,null!=sa[e])H("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=sa[e]._config;else if(null!=a.parentLocale)if(null!=sa[a.parentLocale])s=sa[a.parentLocale]._config;else{if(null==(t=ra(a.parentLocale)))return na[a.parentLocale]||(na[a.parentLocale]=[]),na[a.parentLocale].push({name:e,config:a}),null;s=t._config}return sa[e]=new j(b(s,a)),na[e]&&na[e].forEach(function(e){ia(e.name,e.config)}),_a(e),sa[e]}function oa(e){var a;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ea;if(!_(e)){if(a=ra(e))return a;e=[e]}return function(e){for(var a,t,s,n,d=0;d<e.length;){for(a=(n=da(e[d]).split("-")).length,t=(t=da(e[d+1]))?t.split("-"):null;0<a;){if(s=ra(n.slice(0,a).join("-")))return s;if(t&&t.length>=a&&r(n,t,!0)>=a-1)break;a--}d++}return ea}(e)}function ma(e){var a,t=e._a;return t&&-2===Y(e).overflow&&(a=t[Le]<0||11<t[Le]?Le:t[ce]<1||t[ce]>je(t[he],t[Le])?ce:t[Ye]<0||24<t[Ye]||24===t[Ye]&&(0!==t[ye]||0!==t[fe]||0!==t[ke])?Ye:t[ye]<0||59<t[ye]?ye:t[fe]<0||59<t[fe]?fe:t[ke]<0||999<t[ke]?ke:-1,Y(e)._overflowDayOfYear&&(a<he||ce<a)&&(a=ce),Y(e)._overflowWeeks&&-1===a&&(a=pe),Y(e)._overflowWeekday&&-1===a&&(a=De),Y(e).overflow=a),e}function ua(e,a,t){return null!=e?e:null!=a?a:t}function la(e){var a,t,s,n,d,r=[];if(!e._d){var _,i;for(_=e,i=new Date(l.now()),s=_._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()],e._w&&null==e._a[ce]&&null==e._a[Le]&&function(e){var a,t,s,n,d,r,_,i;if(null!=(a=e._w).GG||null!=a.W||null!=a.E)d=1,r=4,t=ua(a.GG,e._a[he],Ie(Ha(),1,4).year),s=ua(a.W,1),((n=ua(a.E,1))<1||7<n)&&(i=!0);else{d=e._locale._week.dow,r=e._locale._week.doy;var o=Ie(Ha(),d,r);t=ua(a.gg,e._a[he],o.year),s=ua(a.w,o.week),null!=a.d?((n=a.d)<0||6<n)&&(i=!0):null!=a.e?(n=a.e+d,(a.e<0||6<a.e)&&(i=!0)):n=d}s<1||s>Ce(t,d,r)?Y(e)._overflowWeeks=!0:null!=i?Y(e)._overflowWeekday=!0:(_=Re(t,s,n,d,r),e._a[he]=_.year,e._dayOfYear=_.dayOfYear)}(e),null!=e._dayOfYear&&(d=ua(e._a[he],s[he]),(e._dayOfYear>Te(d)||0===e._dayOfYear)&&(Y(e)._overflowDayOfYear=!0),t=Je(d,0,e._dayOfYear),e._a[Le]=t.getUTCMonth(),e._a[ce]=t.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=r[a]=s[a];for(;a<7;a++)e._a[a]=r[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[Ye]&&0===e._a[ye]&&0===e._a[fe]&&0===e._a[ke]&&(e._nextDay=!0,e._a[Ye]=0),e._d=(e._useUTC?Je:function(e,a,t,s,n,d,r){var _=new Date(e,a,t,s,n,d,r);return e<100&&0<=e&&isFinite(_.getFullYear())&&_.setFullYear(e),_}).apply(null,r),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Ye]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(Y(e).weekdayMismatch=!0)}}var Ma=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ha=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,La=/Z|[+-]\d\d(?::?\d\d)?/,ca=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Ya=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ya=/^\/?Date\((\-?\d+)/i;function fa(e){var a,t,s,n,d,r,_=e._i,i=Ma.exec(_)||ha.exec(_);if(i){for(Y(e).iso=!0,a=0,t=ca.length;a<t;a++)if(ca[a][1].exec(i[1])){n=ca[a][0],s=!1!==ca[a][2];break}if(null==n)return void(e._isValid=!1);if(i[3]){for(a=0,t=Ya.length;a<t;a++)if(Ya[a][1].exec(i[3])){d=(i[2]||" ")+Ya[a][0];break}if(null==d)return void(e._isValid=!1)}if(!s&&null!=d)return void(e._isValid=!1);if(i[4]){if(!La.exec(i[4]))return void(e._isValid=!1);r="Z"}e._f=n+(d||"")+(r||""),ga(e)}else e._isValid=!1}var ka=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function pa(e,a,t,s,n,d){var r=[function(e){var a=parseInt(e,10);{if(a<=49)return 2e3+a;if(a<=999)return 1900+a}return a}(e),Oe.indexOf(a),parseInt(t,10),parseInt(s,10),parseInt(n,10)];return d&&r.push(parseInt(d,10)),r}var Da={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ta(e){var a,t,s,n=ka.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(n){var d=pa(n[4],n[3],n[2],n[5],n[6],n[7]);if(a=n[1],t=d,s=e,a&&Ue.indexOf(a)!==new Date(t[0],t[1],t[2]).getDay()&&(Y(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=d,e._tzm=function(e,a,t){if(e)return Da[e];if(a)return 0;var s=parseInt(t,10),n=s%100;return(s-n)/100*60+n}(n[8],n[9],n[10]),e._d=Je.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),Y(e).rfc2822=!0}else e._isValid=!1}function ga(e){if(e._f!==l.ISO_8601)if(e._f!==l.RFC_2822){e._a=[],Y(e).empty=!0;var a,t,s,n,d,r,_,i,o=""+e._i,m=o.length,u=0;for(s=G(e._f,e._locale).match(z)||[],a=0;a<s.length;a++)n=s[a],(t=(o.match(oe(n,e))||[])[0])&&(0<(d=o.substr(0,o.indexOf(t))).length&&Y(e).unusedInput.push(d),o=o.slice(o.indexOf(t)+t.length),u+=t.length),R[n]?(t?Y(e).empty=!1:Y(e).unusedTokens.push(n),r=n,i=e,null!=(_=t)&&h(ue,r)&&ue[r](_,i._a,i,r)):e._strict&&!t&&Y(e).unusedTokens.push(n);Y(e).charsLeftOver=m-u,0<o.length&&Y(e).unusedInput.push(o),e._a[Ye]<=12&&!0===Y(e).bigHour&&0<e._a[Ye]&&(Y(e).bigHour=void 0),Y(e).parsedDateParts=e._a.slice(0),Y(e).meridiem=e._meridiem,e._a[Ye]=function(e,a,t){var s;if(null==t)return a;return null!=e.meridiemHour?e.meridiemHour(a,t):(null!=e.isPM&&((s=e.isPM(t))&&a<12&&(a+=12),s||12!==a||(a=0)),a)}(e._locale,e._a[Ye],e._meridiem),la(e),ma(e)}else Ta(e);else fa(e)}function wa(e){var a,t,s,n,d=e._i,r=e._f;return e._locale=e._locale||oa(e._l),null===d||void 0===r&&""===d?f({nullInput:!0}):("string"==typeof d&&(e._i=d=e._locale.preparse(d)),D(d)?new p(ma(d)):(u(d)?e._d=d:_(r)?function(e){var a,t,s,n,d;if(0===e._f.length)return Y(e).invalidFormat=!0,e._d=new Date(NaN);for(n=0;n<e._f.length;n++)d=0,a=k({},e),null!=e._useUTC&&(a._useUTC=e._useUTC),a._f=e._f[n],ga(a),y(a)&&(d+=Y(a).charsLeftOver,d+=10*Y(a).unusedTokens.length,Y(a).score=d,(null==s||d<s)&&(s=d,t=a));L(e,t||a)}(e):r?ga(e):o(t=(a=e)._i)?a._d=new Date(l.now()):u(t)?a._d=new Date(t.valueOf()):"string"==typeof t?(s=a,null===(n=ya.exec(s._i))?(fa(s),!1===s._isValid&&(delete s._isValid,Ta(s),!1===s._isValid&&(delete s._isValid,l.createFromInputFallback(s)))):s._d=new Date(+n[1])):_(t)?(a._a=M(t.slice(0),function(e){return parseInt(e,10)}),la(a)):i(t)?function(e){if(!e._d){var a=W(e._i);e._a=M([a.year,a.month,a.day||a.date,a.hour,a.minute,a.second,a.millisecond],function(e){return e&&parseInt(e,10)}),la(e)}}(a):m(t)?a._d=new Date(t):l.createFromInputFallback(a),y(e)||(e._d=null),e))}function va(e,a,t,s,n){var d,r={};return!0!==t&&!1!==t||(s=t,t=void 0),(i(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var a;for(a in e)if(e.hasOwnProperty(a))return!1;return!0}(e)||_(e)&&0===e.length)&&(e=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=n,r._l=t,r._i=e,r._f=a,r._strict=s,(d=new p(ma(wa(r))))._nextDay&&(d.add(1,"d"),d._nextDay=void 0),d}function Ha(e,a,t,s){return va(e,a,t,s,!1)}l.createFromInputFallback=t("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),l.ISO_8601=function(){},l.RFC_2822=function(){};var Sa=t("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Ha.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:f()}),ba=t("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Ha.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:f()});function ja(e,a){var t,s;if(1===a.length&&_(a[0])&&(a=a[0]),!a.length)return Ha();for(t=a[0],s=1;s<a.length;++s)a[s].isValid()&&!a[s][e](t)||(t=a[s]);return t}var xa=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Pa(e){var a=W(e),t=a.year||0,s=a.quarter||0,n=a.month||0,d=a.week||a.isoWeek||0,r=a.day||0,_=a.hour||0,i=a.minute||0,o=a.second||0,m=a.millisecond||0;this._isValid=function(e){for(var a in e)if(-1===we.call(xa,a)||null!=e[a]&&isNaN(e[a]))return!1;for(var t=!1,s=0;s<xa.length;++s)if(e[xa[s]]){if(t)return!1;parseFloat(e[xa[s]])!==g(e[xa[s]])&&(t=!0)}return!0}(a),this._milliseconds=+m+1e3*o+6e4*i+1e3*_*60*60,this._days=+r+7*d,this._months=+n+3*s+12*t,this._data={},this._locale=oa(),this._bubble()}function Oa(e){return e instanceof Pa}function Wa(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ea(e,t){I(e,0,0,function(){var e=this.utcOffset(),a="+";return e<0&&(e=-e,a="-"),a+F(~~(e/60),2)+t+F(~~e%60,2)})}Ea("Z",":"),Ea("ZZ",""),ie("Z",de),ie("ZZ",de),le(["Z","ZZ"],function(e,a,t){t._useUTC=!0,t._tzm=Fa(de,e)});var Aa=/([\+\-]|\d\d)/gi;function Fa(e,a){var t=(a||"").match(e);if(null===t)return null;var s=((t[t.length-1]||[])+"").match(Aa)||["-",0,0],n=60*s[1]+g(s[2]);return 0===n?0:"+"===s[0]?n:-n}function za(e,a){var t,s;return a._isUTC?(t=a.clone(),s=(D(e)||u(e)?e.valueOf():Ha(e).valueOf())-t.valueOf(),t._d.setTime(t._d.valueOf()+s),l.updateOffset(t,!1),t):Ha(e).local()}function Ja(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Na(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}l.updateOffset=function(){};var Ra=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ia=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ca(e,a){var t,s,n,d=e,r=null;return Oa(e)?d={ms:e._milliseconds,d:e._days,M:e._months}:m(e)?(d={},a?d[a]=e:d.milliseconds=e):(r=Ra.exec(e))?(t="-"===r[1]?-1:1,d={y:0,d:g(r[ce])*t,h:g(r[Ye])*t,m:g(r[ye])*t,s:g(r[fe])*t,ms:g(Wa(1e3*r[ke]))*t}):(r=Ia.exec(e))?(t="-"===r[1]?-1:1,d={y:Ga(r[2],t),M:Ga(r[3],t),w:Ga(r[4],t),d:Ga(r[5],t),h:Ga(r[6],t),m:Ga(r[7],t),s:Ga(r[8],t)}):null==d?d={}:"object"==typeof d&&("from"in d||"to"in d)&&(n=function(e,a){var t;if(!e.isValid()||!a.isValid())return{milliseconds:0,months:0};a=za(a,e),e.isBefore(a)?t=Ua(e,a):((t=Ua(a,e)).milliseconds=-t.milliseconds,t.months=-t.months);return t}(Ha(d.from),Ha(d.to)),(d={}).ms=n.milliseconds,d.M=n.months),s=new Pa(d),Oa(e)&&h(e,"_locale")&&(s._locale=e._locale),s}function Ga(e,a){var t=e&&parseFloat(e.replace(",","."));return(isNaN(t)?0:t)*a}function Ua(e,a){var t={milliseconds:0,months:0};return t.months=a.month()-e.month()+12*(a.year()-e.year()),e.clone().add(t.months,"M").isAfter(a)&&--t.months,t.milliseconds=+a-+e.clone().add(t.months,"M"),t}function Va(s,n){return function(e,a){var t;return null===a||isNaN(+a)||(H(n,"moment()."+n+"(period, number) is deprecated. Please use moment()."+n+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),t=e,e=a,a=t),Ka(this,Ca(e="string"==typeof e?+e:e,a),s),this}}function Ka(e,a,t,s){var n=a._milliseconds,d=Wa(a._days),r=Wa(a._months);e.isValid()&&(s=null==s||s,r&&We(e,Se(e,"Month")+r*t),d&&be(e,"Date",Se(e,"Date")+d*t),n&&e._d.setTime(e._d.valueOf()+n*t),s&&l.updateOffset(e,d||r))}Ca.fn=Pa.prototype,Ca.invalid=function(){return Ca(NaN)};var $a=Va(1,"add"),Za=Va(-1,"subtract");function Ba(e,a){var t=12*(a.year()-e.year())+(a.month()-e.month()),s=e.clone().add(t,"months");return-(t+(a-s<0?(a-s)/(s-e.clone().add(t-1,"months")):(a-s)/(e.clone().add(t+1,"months")-s)))||0}function qa(e){var a;return void 0===e?this._locale._abbr:(null!=(a=oa(e))&&(this._locale=a),this)}l.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",l.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Qa=t("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function Xa(){return this._locale}function et(e,a){I(0,[e,e.length],0,a)}function at(e,a,t,s,n){var d;return null==e?Ie(this,s,n).year:((d=Ce(e,s,n))<a&&(a=d),function(e,a,t,s,n){var d=Re(e,a,t,s,n),r=Je(d.year,0,d.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}.call(this,e,a,t,s,n))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),et("gggg","weekYear"),et("ggggg","weekYear"),et("GGGG","isoWeekYear"),et("GGGGG","isoWeekYear"),P("weekYear","gg"),P("isoWeekYear","GG"),A("weekYear",1),A("isoWeekYear",1),ie("G",se),ie("g",se),ie("GG",B,V),ie("gg",B,V),ie("GGGG",ee,$),ie("gggg",ee,$),ie("GGGGG",ae,Z),ie("ggggg",ae,Z),Me(["gggg","ggggg","GGGG","GGGGG"],function(e,a,t,s){a[s.substr(0,2)]=g(e)}),Me(["gg","GG"],function(e,a,t,s){a[s]=l.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),P("quarter","Q"),A("quarter",7),ie("Q",U),le("Q",function(e,a){a[Le]=3*(g(e)-1)}),I("D",["DD",2],"Do","date"),P("date","D"),A("date",9),ie("D",B),ie("DD",B,V),ie("Do",function(e,a){return e?a._dayOfMonthOrdinalParse||a._ordinalParse:a._dayOfMonthOrdinalParseLenient}),le(["D","DD"],ce),le("Do",function(e,a){a[ce]=g(e.match(B)[0])});var tt=He("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),P("dayOfYear","DDD"),A("dayOfYear",4),ie("DDD",X),ie("DDDD",K),le(["DDD","DDDD"],function(e,a,t){t._dayOfYear=g(e)}),I("m",["mm",2],0,"minute"),P("minute","m"),A("minute",14),ie("m",B),ie("mm",B,V),le(["m","mm"],ye);var st=He("Minutes",!1);I("s",["ss",2],0,"second"),P("second","s"),A("second",15),ie("s",B),ie("ss",B,V),le(["s","ss"],fe);var nt,dt=He("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),P("millisecond","ms"),A("millisecond",16),ie("S",X,U),ie("SS",X,V),ie("SSS",X,K),nt="SSSS";nt.length<=9;nt+="S")ie(nt,te);function rt(e,a){a[ke]=g(1e3*("0."+e))}for(nt="S";nt.length<=9;nt+="S")le(nt,rt);var _t=He("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var it=p.prototype;function ot(e){return e}it.add=$a,it.calendar=function(e,a){var t=e||Ha(),s=za(t,this).startOf("day"),n=l.calendarFormat(this,s)||"sameElse",d=a&&(S(a[n])?a[n].call(this,t):a[n]);return this.format(d||this.localeData().calendar(n,this,Ha(t)))},it.clone=function(){return new p(this)},it.diff=function(e,a,t){var s,n,d;if(!this.isValid())return NaN;if(!(s=za(e,this)).isValid())return NaN;switch(n=6e4*(s.utcOffset()-this.utcOffset()),a=O(a)){case"year":d=Ba(this,s)/12;break;case"month":d=Ba(this,s);break;case"quarter":d=Ba(this,s)/3;break;case"second":d=(this-s)/1e3;break;case"minute":d=(this-s)/6e4;break;case"hour":d=(this-s)/36e5;break;case"day":d=(this-s-n)/864e5;break;case"week":d=(this-s-n)/6048e5;break;default:d=this-s}return t?d:T(d)},it.endOf=function(e){return void 0===(e=O(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},it.format=function(e){e||(e=this.isUtc()?l.defaultFormatUtc:l.defaultFormat);var a=C(this,e);return this.localeData().postformat(a)},it.from=function(e,a){return this.isValid()&&(D(e)&&e.isValid()||Ha(e).isValid())?Ca({to:this,from:e}).locale(this.locale()).humanize(!a):this.localeData().invalidDate()},it.fromNow=function(e){return this.from(Ha(),e)},it.to=function(e,a){return this.isValid()&&(D(e)&&e.isValid()||Ha(e).isValid())?Ca({from:this,to:e}).locale(this.locale()).humanize(!a):this.localeData().invalidDate()},it.toNow=function(e){return this.to(Ha(),e)},it.get=function(e){return S(this[e=O(e)])?this[e]():this},it.invalidAt=function(){return Y(this).overflow},it.isAfter=function(e,a){var t=D(e)?e:Ha(e);return!(!this.isValid()||!t.isValid())&&("millisecond"===(a=O(a)||"millisecond")?this.valueOf()>t.valueOf():t.valueOf()<this.clone().startOf(a).valueOf())},it.isBefore=function(e,a){var t=D(e)?e:Ha(e);return!(!this.isValid()||!t.isValid())&&("millisecond"===(a=O(a)||"millisecond")?this.valueOf()<t.valueOf():this.clone().endOf(a).valueOf()<t.valueOf())},it.isBetween=function(e,a,t,s){var n=D(e)?e:Ha(e),d=D(a)?a:Ha(a);return!!(this.isValid()&&n.isValid()&&d.isValid())&&("("===(s=s||"()")[0]?this.isAfter(n,t):!this.isBefore(n,t))&&(")"===s[1]?this.isBefore(d,t):!this.isAfter(d,t))},it.isSame=function(e,a){var t,s=D(e)?e:Ha(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(a=O(a)||"millisecond")?this.valueOf()===s.valueOf():(t=s.valueOf(),this.clone().startOf(a).valueOf()<=t&&t<=this.clone().endOf(a).valueOf()))},it.isSameOrAfter=function(e,a){return this.isSame(e,a)||this.isAfter(e,a)},it.isSameOrBefore=function(e,a){return this.isSame(e,a)||this.isBefore(e,a)},it.isValid=function(){return y(this)},it.lang=Qa,it.locale=qa,it.localeData=Xa,it.max=ba,it.min=Sa,it.parsingFlags=function(){return L({},Y(this))},it.set=function(e,a){if("object"==typeof e)for(var t=function(e){var a=[];for(var t in e)a.push({unit:t,priority:E[t]});return a.sort(function(e,a){return e.priority-a.priority}),a}(e=W(e)),s=0;s<t.length;s++)this[t[s].unit](e[t[s].unit]);else if(S(this[e=O(e)]))return this[e](a);return this},it.startOf=function(e){switch(e=O(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},it.subtract=Za,it.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},it.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},it.toDate=function(){return new Date(this.valueOf())},it.toISOString=function(e){if(!this.isValid())return null;var a=!0!==e,t=a?this.clone().utc():this;return t.year()<0||9999<t.year()?C(t,a?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?a?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",C(t,"Z")):C(t,a?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},it.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",a="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z");var t="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=a+'[")]';return this.format(t+s+"-MM-DD[T]HH:mm:ss.SSS"+n)},it.toJSON=function(){return this.isValid()?this.toISOString():null},it.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},it.unix=function(){return Math.floor(this.valueOf()/1e3)},it.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},it.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},it.year=ve,it.isLeapYear=function(){return ge(this.year())},it.weekYear=function(e){return at.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},it.isoWeekYear=function(e){return at.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},it.quarter=it.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},it.month=Ee,it.daysInMonth=function(){return je(this.year(),this.month())},it.week=it.weeks=function(e){var a=this.localeData().week(this);return null==e?a:this.add(7*(e-a),"d")},it.isoWeek=it.isoWeeks=function(e){var a=Ie(this,1,4).week;return null==e?a:this.add(7*(e-a),"d")},it.weeksInYear=function(){var e=this.localeData()._week;return Ce(this.year(),e.dow,e.doy)},it.isoWeeksInYear=function(){return Ce(this.year(),1,4)},it.date=tt,it.day=it.days=function(e){if(!this.isValid())return null!=e?this:NaN;var a,t,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(a=e,t=this.localeData(),e="string"!=typeof a?a:isNaN(a)?"number"==typeof(a=t.weekdaysParse(a))?a:null:parseInt(a,10),this.add(e-s,"d")):s},it.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var a=(this.day()+7-this.localeData()._week.dow)%7;return null==e?a:this.add(e-a,"d")},it.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var a,t,s=(a=e,t=this.localeData(),"string"==typeof a?t.weekdaysParse(a)%7||7:isNaN(a)?null:a);return this.day(this.day()%7?s:s-7)},it.dayOfYear=function(e){var a=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?a:this.add(e-a,"d")},it.hour=it.hours=aa,it.minute=it.minutes=st,it.second=it.seconds=dt,it.millisecond=it.milliseconds=_t,it.utcOffset=function(e,a,t){var s,n=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?n:Ja(this);if("string"==typeof e){if(null===(e=Fa(de,e)))return this}else Math.abs(e)<16&&!t&&(e*=60);return!this._isUTC&&a&&(s=Ja(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),n!==e&&(!a||this._changeInProgress?Ka(this,Ca(e-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,l.updateOffset(this,!0),this._changeInProgress=null)),this},it.utc=function(e){return this.utcOffset(0,e)},it.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Ja(this),"m")),this},it.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Fa(ne,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},it.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Ha(e).utcOffset():0,(this.utcOffset()-e)%60==0)},it.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},it.isLocal=function(){return!!this.isValid()&&!this._isUTC},it.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},it.isUtc=Na,it.isUTC=Na,it.zoneAbbr=function(){return this._isUTC?"UTC":""},it.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},it.dates=t("dates accessor is deprecated. Use date instead.",tt),it.months=t("months accessor is deprecated. Use month instead",Ee),it.years=t("years accessor is deprecated. Use year instead",ve),it.zone=t("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,a),this):-this.utcOffset()}),it.isDSTShifted=t("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(k(e,this),(e=wa(e))._a){var a=e._isUTC?c(e._a):Ha(e._a);this._isDSTShifted=this.isValid()&&0<r(e._a,a.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var mt=j.prototype;function ut(e,a,t,s){var n=oa(),d=c().set(s,a);return n[t](d,e)}function lt(e,a,t){if(m(e)&&(a=e,e=void 0),e=e||"",null!=a)return ut(e,a,t,"month");var s,n=[];for(s=0;s<12;s++)n[s]=ut(e,s,t,"month");return n}function Mt(e,a,t,s){a=("boolean"==typeof e?m(a)&&(t=a,a=void 0):(a=e,e=!1,m(t=a)&&(t=a,a=void 0)),a||"");var n,d=oa(),r=e?d._week.dow:0;if(null!=t)return ut(a,(t+r)%7,s,"day");var _=[];for(n=0;n<7;n++)_[n]=ut(a,(n+r)%7,s,"day");return _}mt.calendar=function(e,a,t){var s=this._calendar[e]||this._calendar.sameElse;return S(s)?s.call(a,t):s},mt.longDateFormat=function(e){var a=this._longDateFormat[e],t=this._longDateFormat[e.toUpperCase()];return a||!t?a:(this._longDateFormat[e]=t.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},mt.invalidDate=function(){return this._invalidDate},mt.ordinal=function(e){return this._ordinal.replace("%d",e)},mt.preparse=ot,mt.postformat=ot,mt.relativeTime=function(e,a,t,s){var n=this._relativeTime[t];return S(n)?n(e,a,t,s):n.replace(/%d/i,e)},mt.pastFuture=function(e,a){var t=this._relativeTime[0<e?"future":"past"];return S(t)?t(a):t.replace(/%s/i,a)},mt.set=function(e){var a,t;for(t in e)S(a=e[t])?this[t]=a:this["_"+t]=a;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},mt.months=function(e,a){return e?_(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||xe).test(a)?"format":"standalone"][e.month()]:_(this._months)?this._months:this._months.standalone},mt.monthsShort=function(e,a){return e?_(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[xe.test(a)?"format":"standalone"][e.month()]:_(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},mt.monthsParse=function(e,a,t){var s,n,d;if(this._monthsParseExact)return function(e,a,t){var s,n,d,r=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)d=c([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(d,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(d,"").toLocaleLowerCase();return t?"MMM"===a?-1!==(n=we.call(this._shortMonthsParse,r))?n:null:-1!==(n=we.call(this._longMonthsParse,r))?n:null:"MMM"===a?-1!==(n=we.call(this._shortMonthsParse,r))?n:-1!==(n=we.call(this._longMonthsParse,r))?n:null:-1!==(n=we.call(this._longMonthsParse,r))?n:-1!==(n=we.call(this._shortMonthsParse,r))?n:null}.call(this,e,a,t);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(n=c([2e3,s]),t&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),t||this._monthsParse[s]||(d="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[s]=new RegExp(d.replace(".",""),"i")),t&&"MMMM"===a&&this._longMonthsParse[s].test(e))return s;if(t&&"MMM"===a&&this._shortMonthsParse[s].test(e))return s;if(!t&&this._monthsParse[s].test(e))return s}},mt.monthsRegex=function(e){return this._monthsParseExact?(h(this,"_monthsRegex")||ze.call(this),e?this._monthsStrictRegex:this._monthsRegex):(h(this,"_monthsRegex")||(this._monthsRegex=Fe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},mt.monthsShortRegex=function(e){return this._monthsParseExact?(h(this,"_monthsRegex")||ze.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(h(this,"_monthsShortRegex")||(this._monthsShortRegex=Ae),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},mt.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},mt.firstDayOfYear=function(){return this._week.doy},mt.firstDayOfWeek=function(){return this._week.dow},mt.weekdays=function(e,a){return e?_(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(a)?"format":"standalone"][e.day()]:_(this._weekdays)?this._weekdays:this._weekdays.standalone},mt.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},mt.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},mt.weekdaysParse=function(e,a,t){var s,n,d;if(this._weekdaysParseExact)return function(e,a,t){var s,n,d,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)d=c([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(d,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(d,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(d,"").toLocaleLowerCase();return t?"dddd"===a?-1!==(n=we.call(this._weekdaysParse,r))?n:null:"ddd"===a?-1!==(n=we.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:"dddd"===a?-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._shortWeekdaysParse,r))?n:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:"ddd"===a?-1!==(n=we.call(this._shortWeekdaysParse,r))?n:-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:-1!==(n=we.call(this._minWeekdaysParse,r))?n:-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._shortWeekdaysParse,r))?n:null}.call(this,e,a,t);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(n=c([2e3,1]).day(s),t&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(d="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[s]=new RegExp(d.replace(".",""),"i")),t&&"dddd"===a&&this._fullWeekdaysParse[s].test(e))return s;if(t&&"ddd"===a&&this._shortWeekdaysParse[s].test(e))return s;if(t&&"dd"===a&&this._minWeekdaysParse[s].test(e))return s;if(!t&&this._weekdaysParse[s].test(e))return s}},mt.weekdaysRegex=function(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=Ke),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},mt.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=$e),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},mt.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ze),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},mt.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},mt.meridiem=function(e,a,t){return 11<e?t?"pm":"PM":t?"am":"AM"},_a("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var a=e%10;return e+(1===g(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")}}),l.lang=t("moment.lang is deprecated. Use moment.locale instead.",_a),l.langData=t("moment.langData is deprecated. Use moment.localeData instead.",oa);var ht=Math.abs;function Lt(e,a,t,s){var n=Ca(a,t);return e._milliseconds+=s*n._milliseconds,e._days+=s*n._days,e._months+=s*n._months,e._bubble()}function ct(e){return e<0?Math.floor(e):Math.ceil(e)}function Yt(e){return 4800*e/146097}function yt(e){return 146097*e/4800}function ft(e){return function(){return this.as(e)}}var kt=ft("ms"),pt=ft("s"),Dt=ft("m"),Tt=ft("h"),gt=ft("d"),wt=ft("w"),vt=ft("M"),Ht=ft("y");function St(e){return function(){return this.isValid()?this._data[e]:NaN}}var bt=St("milliseconds"),jt=St("seconds"),xt=St("minutes"),Pt=St("hours"),Ot=St("days"),Wt=St("months"),Et=St("years");var At=Math.round,Ft={ss:44,s:45,m:45,h:22,d:26,M:11};var zt=Math.abs;function Jt(e){return(0<e)-(e<0)||+e}function Nt(){if(!this.isValid())return this.localeData().invalidDate();var e,a,t=zt(this._milliseconds)/1e3,s=zt(this._days),n=zt(this._months);a=T((e=T(t/60))/60),t%=60,e%=60;var d=T(n/12),r=n%=12,_=s,i=a,o=e,m=t?t.toFixed(3).replace(/\.?0+$/,""):"",u=this.asSeconds();if(!u)return"P0D";var l=u<0?"-":"",M=Jt(this._months)!==Jt(u)?"-":"",h=Jt(this._days)!==Jt(u)?"-":"",L=Jt(this._milliseconds)!==Jt(u)?"-":"";return l+"P"+(d?M+d+"Y":"")+(r?M+r+"M":"")+(_?h+_+"D":"")+(i||o||m?"T":"")+(i?L+i+"H":"")+(o?L+o+"M":"")+(m?L+m+"S":"")}var Rt=Pa.prototype;Rt.isValid=function(){return this._isValid},Rt.abs=function(){var e=this._data;return this._milliseconds=ht(this._milliseconds),this._days=ht(this._days),this._months=ht(this._months),e.milliseconds=ht(e.milliseconds),e.seconds=ht(e.seconds),e.minutes=ht(e.minutes),e.hours=ht(e.hours),e.months=ht(e.months),e.years=ht(e.years),this},Rt.add=function(e,a){return Lt(this,e,a,1)},Rt.subtract=function(e,a){return Lt(this,e,a,-1)},Rt.as=function(e){if(!this.isValid())return NaN;var a,t,s=this._milliseconds;if("month"===(e=O(e))||"year"===e)return a=this._days+s/864e5,t=this._months+Yt(a),"month"===e?t:t/12;switch(a=this._days+Math.round(yt(this._months)),e){case"week":return a/7+s/6048e5;case"day":return a+s/864e5;case"hour":return 24*a+s/36e5;case"minute":return 1440*a+s/6e4;case"second":return 86400*a+s/1e3;case"millisecond":return Math.floor(864e5*a)+s;default:throw new Error("Unknown unit "+e)}},Rt.asMilliseconds=kt,Rt.asSeconds=pt,Rt.asMinutes=Dt,Rt.asHours=Tt,Rt.asDays=gt,Rt.asWeeks=wt,Rt.asMonths=vt,Rt.asYears=Ht,Rt.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},Rt._bubble=function(){var e,a,t,s,n,d=this._milliseconds,r=this._days,_=this._months,i=this._data;return 0<=d&&0<=r&&0<=_||d<=0&&r<=0&&_<=0||(d+=864e5*ct(yt(_)+r),_=r=0),i.milliseconds=d%1e3,e=T(d/1e3),i.seconds=e%60,a=T(e/60),i.minutes=a%60,t=T(a/60),i.hours=t%24,_+=n=T(Yt(r+=T(t/24))),r-=ct(yt(n)),s=T(_/12),_%=12,i.days=r,i.months=_,i.years=s,this},Rt.clone=function(){return Ca(this)},Rt.get=function(e){return e=O(e),this.isValid()?this[e+"s"]():NaN},Rt.milliseconds=bt,Rt.seconds=jt,Rt.minutes=xt,Rt.hours=Pt,Rt.days=Ot,Rt.weeks=function(){return T(this.days()/7)},Rt.months=Wt,Rt.years=Et,Rt.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var a,t,s,n,d,r,_,i,o,m,u,l=this.localeData(),M=(t=!e,s=l,n=Ca(a=this).abs(),d=At(n.as("s")),r=At(n.as("m")),_=At(n.as("h")),i=At(n.as("d")),o=At(n.as("M")),m=At(n.as("y")),(u=d<=Ft.ss&&["s",d]||d<Ft.s&&["ss",d]||r<=1&&["m"]||r<Ft.m&&["mm",r]||_<=1&&["h"]||_<Ft.h&&["hh",_]||i<=1&&["d"]||i<Ft.d&&["dd",i]||o<=1&&["M"]||o<Ft.M&&["MM",o]||m<=1&&["y"]||["yy",m])[2]=t,u[3]=0<+a,u[4]=s,function(e,a,t,s,n){return n.relativeTime(a||1,!!t,e,s)}.apply(null,u));return e&&(M=l.pastFuture(+this,M)),l.postformat(M)},Rt.toISOString=Nt,Rt.toString=Nt,Rt.toJSON=Nt,Rt.locale=qa,Rt.localeData=Xa,Rt.toIsoString=t("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Nt),Rt.lang=Qa,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ie("x",se),ie("X",/[+-]?\d+(\.\d{1,3})?/),le("X",function(e,a,t){t._d=new Date(1e3*parseFloat(e,10))}),le("x",function(e,a,t){t._d=new Date(g(e))}),l.version="2.23.0",e=Ha,l.fn=it,l.min=function(){return ja("isBefore",[].slice.call(arguments,0))},l.max=function(){return ja("isAfter",[].slice.call(arguments,0))},l.now=function(){return Date.now?Date.now():+new Date},l.utc=c,l.unix=function(e){return Ha(1e3*e)},l.months=function(e,a){return lt(e,a,"months")},l.isDate=u,l.locale=_a,l.invalid=f,l.duration=Ca,l.isMoment=D,l.weekdays=function(e,a,t){return Mt(e,a,t,"weekdays")},l.parseZone=function(){return Ha.apply(null,arguments).parseZone()},l.localeData=oa,l.isDuration=Oa,l.monthsShort=function(e,a){return lt(e,a,"monthsShort")},l.weekdaysMin=function(e,a,t){return Mt(e,a,t,"weekdaysMin")},l.defineLocale=ia,l.updateLocale=function(e,a){if(null!=a){var t,s,n=ta;null!=(s=ra(e))&&(n=s._config),(t=new j(a=b(n,a))).parentLocale=sa[e],sa[e]=t,_a(e)}else null!=sa[e]&&(null!=sa[e].parentLocale?sa[e]=sa[e].parentLocale:null!=sa[e]&&delete sa[e]);return sa[e]},l.locales=function(){return s(sa)},l.weekdaysShort=function(e,a,t){return Mt(e,a,t,"weekdaysShort")},l.normalizeUnits=O,l.relativeTimeRounding=function(e){return void 0===e?At:"function"==typeof e&&(At=e,!0)},l.relativeTimeThreshold=function(e,a){return void 0!==Ft[e]&&(void 0===a?Ft[e]:(Ft[e]=a,"s"===e&&(Ft.ss=a-1),!0))},l.calendarFormat=function(e,a){var t=e.diff(a,"days",!0);return t<-6?"sameElse":t<-1?"lastWeek":t<0?"lastDay":t<1?"sameDay":t<2?"nextDay":t<7?"nextWeek":"sameElse"},l.prototype=it,l.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},l.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,a,t){return e<12?t?"vm":"VM":t?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),l.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}}),l.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}});var It={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},Ct=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Gt={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},Ut=function(r){return function(e,a,t,s){var n=Ct(e),d=Gt[r][Ct(e)];return 2===n&&(d=d[a?0:1]),d.replace(/%d/i,e)}},Vt=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];l.defineLocale("ar-ly",{months:Vt,monthsShort:Vt,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:Ut("s"),ss:Ut("s"),m:Ut("m"),mm:Ut("m"),h:Ut("h"),hh:Ut("h"),d:Ut("d"),dd:Ut("d"),M:Ut("M"),MM:Ut("M"),y:Ut("y"),yy:Ut("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return It[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}}),l.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}});var Kt={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},$t={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};l.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return $t[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Kt[e]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}}),l.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}});var Zt={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},Bt={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},qt=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Qt={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},Xt=function(r){return function(e,a,t,s){var n=qt(e),d=Qt[r][qt(e)];return 2===n&&(d=d[a?0:1]),d.replace(/%d/i,e)}},es=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];l.defineLocale("ar",{months:es,monthsShort:es,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:Xt("s"),ss:Xt("s"),m:Xt("m"),mm:Xt("m"),h:Xt("h"),hh:Xt("h"),d:Xt("d"),dd:Xt("d"),M:Xt("M"),MM:Xt("M"),y:Xt("y"),yy:Xt("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return Bt[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Zt[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}});var as={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};function ts(e,a,t){var s,n;return"m"===t?a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===t?a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":e+" "+(s=+e,n={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[t].split("_"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}l.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,a,t){return e<4?"gec\u0259":e<12?"s\u0259h\u0259r":e<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-\u0131nc\u0131";var a=e%10;return e+(as[a]||as[e%100-a]||as[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:ts,mm:ts,h:ts,hh:ts,d:"\u0434\u0437\u0435\u043d\u044c",dd:ts,M:"\u043c\u0435\u0441\u044f\u0446",MM:ts,y:"\u0433\u043e\u0434",yy:ts},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?"\u043d\u043e\u0447\u044b":e<12?"\u0440\u0430\u043d\u0456\u0446\u044b":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-\u044b":e+"-\u0456";case"D":return e+"-\u0433\u0430";default:return e}},week:{dow:1,doy:7}}),l.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-\u0435\u0432":0===t?e+"-\u0435\u043d":10<t&&t<20?e+"-\u0442\u0438":1===a?e+"-\u0432\u0438":2===a?e+"-\u0440\u0438":7===a||8===a?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}}),l.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var ss={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},ns={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};l.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return ns[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return ss[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===a&&4<=e||"\u09a6\u09c1\u09aa\u09c1\u09b0"===a&&e<5||"\u09ac\u09bf\u0995\u09be\u09b2"===a?e+12:e},meridiem:function(e,a,t){return e<4?"\u09b0\u09be\u09a4":e<10?"\u09b8\u0995\u09be\u09b2":e<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}});var ds={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},rs={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};function _s(e,a,t){var s,n,d;return e+" "+(s={mm:"munutenn",MM:"miz",dd:"devezh"}[t],2!==e?s:void 0!==(d={m:"v",b:"v",d:"z"})[(n=s).charAt(0)]?d[n.charAt(0)]+n.substring(1):n)}function is(e,a,t){var s=e+" ";switch(t){case"ss":return s+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return a?"jedna minuta":"jedne minute";case"mm":return s+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return s+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return s+=1===e?"dan":"dana";case"MM":return s+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return s+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}l.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(e){return rs[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return ds[e]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===a&&4<=e||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===a&&e<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===a?e+12:e},meridiem:function(e,a,t){return e<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":e<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":e<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":e<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}}),l.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:_s,h:"un eur",hh:"%d eur",d:"un devezh",dd:_s,M:"ur miz",MM:_s,y:"ur bloaz",yy:function(e){switch(function e(a){return 9<a?e(a%10):a}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(e){return e+(1===e?"a\xf1":"vet")},week:{dow:1,doy:4}}),l.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:is,m:is,mm:is,h:is,hh:is,d:"dan",dd:is,M:"mjesec",MM:is,y:"godinu",yy:is},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,a){var t=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"\xe8";return"w"!==a&&"W"!==a||(t="a"),e+t},week:{dow:1,doy:4}});var os="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),ms="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_");function us(e){return 1<e&&e<5&&1!=~~(e/10)}function ls(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return a||s?n+(us(e)?"sekundy":"sekund"):n+"sekundami";break;case"m":return a?"minuta":s?"minutu":"minutou";case"mm":return a||s?n+(us(e)?"minuty":"minut"):n+"minutami";break;case"h":return a?"hodina":s?"hodinu":"hodinou";case"hh":return a||s?n+(us(e)?"hodiny":"hodin"):n+"hodinami";break;case"d":return a||s?"den":"dnem";case"dd":return a||s?n+(us(e)?"dny":"dn\xed"):n+"dny";break;case"M":return a||s?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return a||s?n+(us(e)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):n+"m\u011bs\xedci";break;case"y":return a||s?"rok":"rokem";case"yy":return a||s?n+(us(e)?"roky":"let"):n+"lety";break}}function Ms(e,a,t,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?n[t][0]:n[t][1]}function hs(e,a,t,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?n[t][0]:n[t][1]}function Ls(e,a,t,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?n[t][0]:n[t][1]}l.defineLocale("cs",{months:os,monthsShort:ms,monthsParse:function(e,a){var t,s=[];for(t=0;t<12;t++)s[t]=new RegExp("^"+e[t]+"$|^"+a[t]+"$","i");return s}(os,ms),shortMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(ms),longMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(os),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:ls,ss:ls,m:ls,mm:ls,h:ls,hh:ls,d:ls,dd:ls,M:ls,MM:ls,y:ls,yy:ls},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(e){return e+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(e)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}}),l.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var a="";return 20<e?a=40===e||50===e||60===e||80===e||100===e?"fed":"ain":0<e&&(a=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+a},week:{dow:1,doy:4}}),l.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Ms,mm:"%d Minuten",h:Ms,hh:"%d Stunden",d:Ms,dd:Ms,M:Ms,MM:Ms,y:Ms,yy:Ms},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:hs,mm:"%d Minuten",h:hs,hh:"%d Stunden",d:hs,dd:hs,M:hs,MM:hs,y:hs,yy:hs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Ls,mm:"%d Minuten",h:Ls,hh:"%d Stunden",d:Ls,dd:Ls,M:Ls,MM:Ls,y:Ls,yy:Ls},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var cs=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],Ys=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];l.defineLocale("dv",{months:cs,monthsShort:cs,weekdays:Ys,weekdaysShort:Ys,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(e){return"\u0789\u078a"===e},meridiem:function(e,a,t){return e<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:7,doy:12}}),l.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(e,a){return e?"string"==typeof a&&/D/.test(a.substring(0,a.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(e,a,t){return 11<e?t?"\u03bc\u03bc":"\u039c\u039c":t?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(e){return"\u03bc"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT";default:return"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,a){var t=this._calendarEl[e],s=a&&a.hours();return S(t)&&(t=t.apply(a)),t.replace("{}",s%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}}),l.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")}}),l.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")}}),l.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,a,t){return 11<e?t?"p.t.m.":"P.T.M.":t?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});var ys="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),fs="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),ks=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],ps=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;l.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?fs[e.month()]:ys[e.month()]:ys},monthsRegex:ps,monthsShortRegex:ps,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:ks,longMonthsParse:ks,shortMonthsParse:ks,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}});var Ds="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ts="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");l.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Ts[e.month()]:Ds[e.month()]:Ds},monthsParseExact:!0,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}});var gs="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),ws="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),vs=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Hs=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;function Ss(e,a,t,s){var n={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[e+" minuti",e+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[e+" tunni",e+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[e+" kuu",e+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[e+" aasta",e+" aastat"]};return a?n[t][2]?n[t][2]:n[t][1]:s?n[t][0]:n[t][1]}l.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?ws[e.month()]:gs[e.month()]:gs},monthsRegex:Hs,monthsShortRegex:Hs,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:vs,longMonthsParse:vs,shortMonthsParse:vs,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:Ss,ss:Ss,m:Ss,mm:Ss,h:Ss,hh:Ss,d:Ss,dd:"%d p\xe4eva",M:Ss,MM:Ss,y:Ss,yy:Ss},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var bs={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},js={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};l.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(e){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)},meridiem:function(e,a,t){return e<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/[\u06f0-\u06f9]/g,function(e){return js[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return bs[e]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}});var xs="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),Ps=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",xs[7],xs[8],xs[9]];function Os(e,a,t,s){var n,d,r="";switch(t){case"s":return s?"muutaman sekunnin":"muutama sekunti";case"ss":return s?"sekunnin":"sekuntia";case"m":return s?"minuutin":"minuutti";case"mm":r=s?"minuutin":"minuuttia";break;case"h":return s?"tunnin":"tunti";case"hh":r=s?"tunnin":"tuntia";break;case"d":return s?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":r=s?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return s?"kuukauden":"kuukausi";case"MM":r=s?"kuukauden":"kuukautta";break;case"y":return s?"vuoden":"vuosi";case"yy":r=s?"vuoden":"vuotta";break}return d=s,r=((n=e)<10?d?Ps[n]:xs[n]:n)+" "+r}l.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:Os,ss:Os,m:Os,mm:Os,h:Os,hh:Os,d:Os,dd:Os,M:Os,MM:Os,y:Os,yy:Os},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0i",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}}),l.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}}),l.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,a){switch(a){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});var Ws="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),Es="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");l.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Es[e.month()]:Ws[e.month()]:Ws},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});function As(e,a,t,s){var n={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka horan","ek hor"],hh:[e+" horanim",e+" horam"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return a?n[t][0]:n[t][1]}l.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),l.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:As,ss:As,m:As,mm:As,h:As,hh:As,d:As,dd:As,M:As,MM:As,y:As,yy:As},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,a){switch(a){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,a){return 12===e&&(e=0),"rati"===a?e<4?e:e+12:"sokalli"===a?e:"donparam"===a?12<e?e:e+12:"sanje"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}});var Fs={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},zs={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};l.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(e){return e.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(e){return zs[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Fs[e]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0ab0\u0abe\u0aa4"===a?e<4?e:e+12:"\u0ab8\u0ab5\u0abe\u0ab0"===a?e:"\u0aac\u0aaa\u0acb\u0ab0"===a?10<=e?e:e+12:"\u0ab8\u0abe\u0a82\u0a9c"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0ab0\u0abe\u0aa4":e<10?"\u0ab8\u0ab5\u0abe\u0ab0":e<17?"\u0aac\u0aaa\u0acb\u0ab0":e<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}}),l.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(e){return 2===e?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":e+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(e){return 2===e?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":e+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(e){return 2===e?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":e+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(e){return 2===e?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":e%10==0&&10!==e?e+" \u05e9\u05e0\u05d4":e+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(e){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(e)},meridiem:function(e,a,t){return e<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":e<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":e<12?t?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":e<18?t?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}});var Js={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},Ns={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function Rs(e,a,t){var s=e+" ";switch(t){case"ss":return s+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return a?"jedna minuta":"jedne minute";case"mm":return s+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return s+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return s+=1===e?"dan":"dana";case"MM":return s+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return s+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}l.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return Ns[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Js[e]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0930\u093e\u0924"===a?e<4?e:e+12:"\u0938\u0941\u092c\u0939"===a?e:"\u0926\u094b\u092a\u0939\u0930"===a?10<=e?e:e+12:"\u0936\u093e\u092e"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0930\u093e\u0924":e<10?"\u0938\u0941\u092c\u0939":e<17?"\u0926\u094b\u092a\u0939\u0930":e<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}}),l.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:Rs,m:Rs,mm:Rs,h:Rs,hh:Rs,d:"dan",dd:Rs,M:"mjesec",MM:Rs,y:"godinu",yy:Rs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Is="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function Cs(e,a,t,s){var n=e;switch(t){case"s":return s||a?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return n+(s||a)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(s||a?" perc":" perce");case"mm":return n+(s||a?" perc":" perce");case"h":return"egy"+(s||a?" \xf3ra":" \xf3r\xe1ja");case"hh":return n+(s||a?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(s||a?" nap":" napja");case"dd":return n+(s||a?" nap":" napja");case"M":return"egy"+(s||a?" h\xf3nap":" h\xf3napja");case"MM":return n+(s||a?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(s||a?" \xe9v":" \xe9ve");case"yy":return n+(s||a?" \xe9v":" \xe9ve")}return""}function Gs(e){return(e?"":"[m\xfalt] ")+"["+Is[this.day()]+"] LT[-kor]"}function Us(e){return e%100==11||e%10!=1}function Vs(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return Us(e)?n+(a||s?"sek\xfandur":"sek\xfandum"):n+"sek\xfanda";case"m":return a?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return Us(e)?n+(a||s?"m\xedn\xfatur":"m\xedn\xfatum"):a?n+"m\xedn\xfata":n+"m\xedn\xfatu";case"hh":return Us(e)?n+(a||s?"klukkustundir":"klukkustundum"):n+"klukkustund";case"d":return a?"dagur":s?"dag":"degi";case"dd":return Us(e)?a?n+"dagar":n+(s?"daga":"d\xf6gum"):a?n+"dagur":n+(s?"dag":"degi");case"M":return a?"m\xe1nu\xf0ur":s?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return Us(e)?a?n+"m\xe1nu\xf0ir":n+(s?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):a?n+"m\xe1nu\xf0ur":n+(s?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return a||s?"\xe1r":"\xe1ri";case"yy":return Us(e)?n+(a||s?"\xe1r":"\xe1rum"):n+(a||s?"\xe1r":"\xe1ri")}}l.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,a,t){return e<12?!0===t?"de":"DE":!0===t?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return Gs.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return Gs.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:Cs,ss:Cs,m:Cs,mm:Cs,h:Cs,hh:Cs,d:Cs,dd:Cs,M:Cs,MM:Cs,y:Cs,yy:Cs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(e){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(e)},meridiem:function(e){return e<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":e<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":e<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(e,a){switch(a){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-\u056b\u0576":e+"-\u0580\u0564";default:return e}},week:{dow:1,doy:7}}),l.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"siang"===a?11<=e?e:e+12:"sore"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),l.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:Vs,ss:Vs,m:Vs,mm:Vs,h:"klukkustund",hh:Vs,d:Vs,dd:Vs,M:Vs,MM:Vs,y:Vs,yy:Vs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("ja",{months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(e){return"\u5348\u5f8c"===e},meridiem:function(e,a,t){return e<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(e){return e.week()<this.week()?"[\u6765\u9031]dddd LT":"dddd LT"},lastDay:"[\u6628\u65e5] LT",lastWeek:function(e){return this.week()<e.week()?"[\u5148\u9031]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";default:return e}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",ss:"%d\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}}),l.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,a){return 12===e&&(e=0),"enjing"===a?e:"siyang"===a?11<=e?e:e+12:"sonten"===a||"ndalu"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}),l.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(e)?e.replace(/\u10d8$/,"\u10e8\u10d8"):e+"\u10e8\u10d8"},past:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(e)?e.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(e)?e.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+"-\u10da\u10d8":e<20||e<=100&&e%20==0||e%100==0?"\u10db\u10d4-"+e:e+"-\u10d4"},week:{dow:1,doy:7}});var Ks={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};l.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(Ks[e]||Ks[e%10]||Ks[100<=e?100:null])},week:{dow:1,doy:7}});var $s={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},Zs={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};l.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(e){return"\u179b\u17d2\u1784\u17b6\u1785"===e},meridiem:function(e,a,t){return e<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(e){return e.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(e){return Zs[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return $s[e]})},week:{dow:1,doy:4}});var Bs={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},qs={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};l.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(e){return e.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(e){return qs[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Bs[e]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===a?e<4?e:e+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===a?e:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===a?10<=e?e:e+12:"\u0cb8\u0c82\u0c9c\u0cc6"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":e<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":e<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":e<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(e){return e+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}}),l.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\uc77c";case"M":return e+"\uc6d4";case"w":case"W":return e+"\uc8fc";default:return e}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(e){return"\uc624\ud6c4"===e},meridiem:function(e,a,t){return e<12?"\uc624\uc804":"\uc624\ud6c4"}});var Qs={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},Xs={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},en=["\u06a9\u0627\u0646\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0634\u0648\u0628\u0627\u062a","\u0626\u0627\u0632\u0627\u0631","\u0646\u06cc\u0633\u0627\u0646","\u0626\u0627\u06cc\u0627\u0631","\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646","\u062a\u06d5\u0645\u0645\u0648\u0632","\u0626\u0627\u0628","\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644","\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u0643\u06d5\u0645","\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0643\u0627\u0646\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645"];l.defineLocale("ku",{months:en,monthsShort:en,weekdays:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u062f\u0648\u0648\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0633\u06ce\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysShort:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645_\u062f\u0648\u0648\u0634\u0647\u200c\u0645_\u0633\u06ce\u0634\u0647\u200c\u0645_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(e){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)},meridiem:function(e,a,t){return e<12?"\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc":"\u0626\u06ce\u0648\u0627\u0631\u0647\u200c"},calendar:{sameDay:"[\u0626\u0647\u200c\u0645\u0631\u06c6 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextDay:"[\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastDay:"[\u062f\u0648\u06ce\u0646\u06ce \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",sameElse:"L"},relativeTime:{future:"\u0644\u0647\u200c %s",past:"%s",s:"\u0686\u0647\u200c\u0646\u062f \u0686\u0631\u0643\u0647\u200c\u06cc\u0647\u200c\u0643",ss:"\u0686\u0631\u0643\u0647\u200c %d",m:"\u06cc\u0647\u200c\u0643 \u062e\u0648\u0644\u0647\u200c\u0643",mm:"%d \u062e\u0648\u0644\u0647\u200c\u0643",h:"\u06cc\u0647\u200c\u0643 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",hh:"%d \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",d:"\u06cc\u0647\u200c\u0643 \u0695\u06c6\u0698",dd:"%d \u0695\u06c6\u0698",M:"\u06cc\u0647\u200c\u0643 \u0645\u0627\u0646\u06af",MM:"%d \u0645\u0627\u0646\u06af",y:"\u06cc\u0647\u200c\u0643 \u0633\u0627\u06b5",yy:"%d \u0633\u0627\u06b5"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return Xs[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Qs[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}});var an={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};function tn(e,a,t,s){var n={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return a?n[t][0]:n[t][1]}function sn(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var a=e%10;return sn(0===a?e/10:a)}if(e<1e4){for(;10<=e;)e/=10;return sn(e)}return sn(e/=1e3)}l.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(an[e]||an[e%10]||an[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return sn(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return sn(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:tn,mm:"%d Minutten",h:tn,hh:"%d Stonnen",d:tn,dd:"%d Deeg",M:tn,MM:"%d M\xe9int",y:tn,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(e){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===e},meridiem:function(e,a,t){return e<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(e){return"\u0e97\u0eb5\u0ec8"+e}});var nn={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function dn(e,a,t,s){return a?_n(t)[0]:s?_n(t)[1]:_n(t)[2]}function rn(e){return e%10==0||10<e&&e<20}function _n(e){return nn[e].split("_")}function on(e,a,t,s){var n=e+" ";return 1===e?n+dn(0,a,t[0],s):a?n+(rn(e)?_n(t)[1]:_n(t)[0]):s?n+_n(t)[1]:n+(rn(e)?_n(t)[1]:_n(t)[2])}l.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function(e,a,t,s){return a?"kelios sekund\u0117s":s?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:on,m:dn,mm:on,h:dn,hh:on,d:dn,dd:on,M:dn,MM:on,y:dn,yy:on},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});var mn={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function un(e,a,t){return t?a%10==1&&a%100!=11?e[2]:e[3]:a%10==1&&a%100!=11?e[0]:e[1]}function ln(e,a,t){return e+" "+un(mn[t],e,a)}function Mn(e,a,t){return un(mn[t],e,a)}l.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function(e,a){return a?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:ln,m:Mn,mm:ln,h:Mn,hh:ln,d:Mn,dd:ln,M:Mn,MM:ln,y:Mn,yy:ln},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var hn={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=hn.words[t];return 1===t.length?a?s[0]:s[1]:e+" "+hn.correctGrammaticalCase(e,s)}};function Ln(e,a,t,s){switch(t){case"s":return a?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return e+(a?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return e+(a?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return e+(a?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return e+(a?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return e+(a?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return e+(a?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return e}}l.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:hn.translate,m:hn.translate,mm:hn.translate,h:hn.translate,hh:hn.translate,d:"dan",dd:hn.translate,M:"mjesec",MM:hn.translate,y:"godinu",yy:hn.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-\u0435\u0432":0===t?e+"-\u0435\u043d":10<t&&t<20?e+"-\u0442\u0438":1===a?e+"-\u0432\u0438":2===a?e+"-\u0440\u0438":7===a||8===a?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}}),l.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===a&&4<=e||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===a||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===a?e+12:e},meridiem:function(e,a,t){return e<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":e<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":e<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":e<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}}),l.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"\u04ae\u0425"===e},meridiem:function(e,a,t){return e<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:Ln,ss:Ln,m:Ln,mm:Ln,h:Ln,hh:Ln,d:Ln,dd:Ln,M:Ln,MM:Ln,y:Ln,yy:Ln},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+" \u04e9\u0434\u04e9\u0440";default:return e}}});var cn={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},Yn={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function yn(e,a,t,s){var n="";if(a)switch(t){case"s":n="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":n="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":n="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":n="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":n="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":n="%d \u0924\u093e\u0938";break;case"d":n="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":n="%d \u0926\u093f\u0935\u0938";break;case"M":n="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":n="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":n="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":n="%d \u0935\u0930\u094d\u0937\u0947";break}else switch(t){case"s":n="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":n="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":n="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":n="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":n="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":n="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":n="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":n="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":n="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":n="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":n="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":n="%d \u0935\u0930\u094d\u0937\u093e\u0902";break}return n.replace(/%d/i,e)}l.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:yn,ss:yn,m:yn,mm:yn,h:yn,hh:yn,d:yn,dd:yn,M:yn,MM:yn,y:yn,yy:yn},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return Yn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return cn[e]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===a?e<4?e:e+12:"\u0938\u0915\u093e\u0933\u0940"===a?e:"\u0926\u0941\u092a\u093e\u0930\u0940"===a?10<=e?e:e+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0930\u093e\u0924\u094d\u0930\u0940":e<10?"\u0938\u0915\u093e\u0933\u0940":e<17?"\u0926\u0941\u092a\u093e\u0930\u0940":e<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}}),l.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?11<=e?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),l.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?11<=e?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),l.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}});var fn={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},kn={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};l.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(e){return e.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(e){return kn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return fn[e]})},week:{dow:1,doy:4}}),l.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var pn={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},Dn={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};l.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return Dn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return pn[e]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0930\u093e\u0924\u093f"===a?e<4?e:e+12:"\u092c\u093f\u0939\u093e\u0928"===a?e:"\u0926\u093f\u0909\u0901\u0938\u094b"===a?10<=e?e:e+12:"\u0938\u093e\u0901\u091d"===a?e+12:void 0},meridiem:function(e,a,t){return e<3?"\u0930\u093e\u0924\u093f":e<12?"\u092c\u093f\u0939\u093e\u0928":e<16?"\u0926\u093f\u0909\u0901\u0938\u094b":e<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}});var Tn="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),gn="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),wn=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],vn=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;l.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?gn[e.month()]:Tn[e.month()]:Tn},monthsRegex:vn,monthsShortRegex:vn,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:wn,longMonthsParse:wn,shortMonthsParse:wn,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});var Hn="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Sn="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),bn=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],jn=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;l.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Sn[e.month()]:Hn[e.month()]:Hn},monthsRegex:jn,monthsShortRegex:jn,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:bn,longMonthsParse:bn,shortMonthsParse:bn,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),l.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var xn={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},Pn={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};l.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(e){return e.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(e){return Pn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return xn[e]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0a30\u0a3e\u0a24"===a?e<4?e:e+12:"\u0a38\u0a35\u0a47\u0a30"===a?e:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===a?10<=e?e:e+12:"\u0a38\u0a3c\u0a3e\u0a2e"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0a30\u0a3e\u0a24":e<10?"\u0a38\u0a35\u0a47\u0a30":e<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":e<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}});var On="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),Wn="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function En(e){return e%10<5&&1<e%10&&~~(e/10)%10!=1}function An(e,a,t){var s=e+" ";switch(t){case"ss":return s+(En(e)?"sekundy":"sekund");case"m":return a?"minuta":"minut\u0119";case"mm":return s+(En(e)?"minuty":"minut");case"h":return a?"godzina":"godzin\u0119";case"hh":return s+(En(e)?"godziny":"godzin");case"MM":return s+(En(e)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return s+(En(e)?"lata":"lat")}}function Fn(e,a,t){var s=" ";return(20<=e%100||100<=e&&e%100==0)&&(s=" de "),e+s+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[t]}function zn(e,a,t){var s,n;return"m"===t?a?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":e+" "+(s=+e,n={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[t].split("_"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}l.defineLocale("pl",{months:function(e,a){return e?""===a?"("+Wn[e.month()]+"|"+On[e.month()]+")":/D MMMM/.test(a)?Wn[e.month()]:On[e.month()]:On},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:An,m:An,mm:An,h:An,hh:An,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:An,y:"rok",yy:An},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"}),l.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:Fn,m:"un minut",mm:Fn,h:"o or\u0103",hh:Fn,d:"o zi",dd:Fn,M:"o lun\u0103",MM:Fn,y:"un an",yy:Fn},week:{dow:1,doy:7}});var Jn=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];l.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:Jn,longMonthsParse:Jn,shortMonthsParse:Jn,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:zn,m:zn,mm:zn,h:"\u0447\u0430\u0441",hh:zn,d:"\u0434\u0435\u043d\u044c",dd:zn,M:"\u043c\u0435\u0441\u044f\u0446",MM:zn,y:"\u0433\u043e\u0434",yy:zn},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?"\u043d\u043e\u0447\u0438":e<12?"\u0443\u0442\u0440\u0430":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":return e+"-\u0439";case"D":return e+"-\u0433\u043e";case"w":case"W":return e+"-\u044f";default:return e}},week:{dow:1,doy:4}});var Nn=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],Rn=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];l.defineLocale("sd",{months:Nn,monthsShort:Nn,weekdays:Rn,weekdaysShort:Rn,weekdaysMin:Rn,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"\u0634\u0627\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:4}}),l.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(e){return e+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(e){return"\u0db4.\u0dc0."===e||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===e},meridiem:function(e,a,t){return 11<e?t?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":t?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}});var In="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),Cn="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function Gn(e){return 1<e&&e<5}function Un(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return a||s?n+(Gn(e)?"sekundy":"sek\xfand"):n+"sekundami";break;case"m":return a?"min\xfata":s?"min\xfatu":"min\xfatou";case"mm":return a||s?n+(Gn(e)?"min\xfaty":"min\xfat"):n+"min\xfatami";break;case"h":return a?"hodina":s?"hodinu":"hodinou";case"hh":return a||s?n+(Gn(e)?"hodiny":"hod\xedn"):n+"hodinami";break;case"d":return a||s?"de\u0148":"d\u0148om";case"dd":return a||s?n+(Gn(e)?"dni":"dn\xed"):n+"d\u0148ami";break;case"M":return a||s?"mesiac":"mesiacom";case"MM":return a||s?n+(Gn(e)?"mesiace":"mesiacov"):n+"mesiacmi";break;case"y":return a||s?"rok":"rokom";case"yy":return a||s?n+(Gn(e)?"roky":"rokov"):n+"rokmi";break}}function Vn(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"nekaj sekund":"nekaj sekundami";case"ss":return n+=1===e?a?"sekundo":"sekundi":2===e?a||s?"sekundi":"sekundah":e<5?a||s?"sekunde":"sekundah":"sekund";case"m":return a?"ena minuta":"eno minuto";case"mm":return n+=1===e?a?"minuta":"minuto":2===e?a||s?"minuti":"minutama":e<5?a||s?"minute":"minutami":a||s?"minut":"minutami";case"h":return a?"ena ura":"eno uro";case"hh":return n+=1===e?a?"ura":"uro":2===e?a||s?"uri":"urama":e<5?a||s?"ure":"urami":a||s?"ur":"urami";case"d":return a||s?"en dan":"enim dnem";case"dd":return n+=1===e?a||s?"dan":"dnem":2===e?a||s?"dni":"dnevoma":a||s?"dni":"dnevi";case"M":return a||s?"en mesec":"enim mesecem";case"MM":return n+=1===e?a||s?"mesec":"mesecem":2===e?a||s?"meseca":"mesecema":e<5?a||s?"mesece":"meseci":a||s?"mesecev":"meseci";case"y":return a||s?"eno leto":"enim letom";case"yy":return n+=1===e?a||s?"leto":"letom":2===e?a||s?"leti":"letoma":e<5?a||s?"leta":"leti":a||s?"let":"leti"}}l.defineLocale("sk",{months:In,monthsShort:Cn,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 4:case 5:return"[minul\xfd] dddd [o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:Un,ss:Un,m:Un,mm:Un,h:Un,hh:Un,d:Un,dd:Un,M:Un,MM:Un,y:Un,yy:Un},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:Vn,ss:Vn,m:Vn,mm:Vn,h:Vn,hh:Vn,d:Vn,dd:Vn,M:Vn,MM:Vn,y:Vn,yy:Vn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,a,t){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Kn={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=Kn.words[t];return 1===t.length?a?s[0]:s[1]:e+" "+Kn.correctGrammaticalCase(e,s)}};l.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:Kn.translate,m:Kn.translate,mm:Kn.translate,h:Kn.translate,hh:Kn.translate,d:"\u0434\u0430\u043d",dd:Kn.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:Kn.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:Kn.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var $n={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=$n.words[t];return 1===t.length?a?s[0]:s[1]:e+" "+$n.correctGrammaticalCase(e,s)}};l.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:$n.translate,m:$n.translate,mm:$n.translate,h:$n.translate,hh:$n.translate,d:"dan",dd:$n.translate,M:"mesec",MM:$n.translate,y:"godinu",yy:$n.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,a,t){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,a){return 12===e&&(e=0),"ekuseni"===a?e:"emini"===a?11<=e?e:e+12:"entsambama"===a||"ebusuku"===a?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}),l.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"e":1===a?"a":2===a?"a":"e")},week:{dow:1,doy:4}}),l.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});var Zn={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},Bn={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};l.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(e){return e+"\u0bb5\u0ba4\u0bc1"},preparse:function(e){return e.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(e){return Bn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Zn[e]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(e,a,t){return e<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":e<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":e<10?" \u0b95\u0bbe\u0bb2\u0bc8":e<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":e<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":e<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(e,a){return 12===e&&(e=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===a?e<2?e:e+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===a||"\u0b95\u0bbe\u0bb2\u0bc8"===a?e:"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===a&&10<=e?e:e+12},week:{dow:0,doy:6}}),l.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===a?e<4?e:e+12:"\u0c09\u0c26\u0c2f\u0c02"===a?e:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===a?10<=e?e:e+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":e<10?"\u0c09\u0c26\u0c2f\u0c02":e<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":e<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}}),l.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}});var qn={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};l.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0448\u0430\u0431"===a?e<4?e:e+12:"\u0441\u0443\u0431\u04b3"===a?e:"\u0440\u04ef\u0437"===a?11<=e?e:e+12:"\u0431\u0435\u0433\u043e\u04b3"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0448\u0430\u0431":e<11?"\u0441\u0443\u0431\u04b3":e<16?"\u0440\u04ef\u0437":e<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(qn[e]||qn[e%10]||qn[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(e){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===e},meridiem:function(e,a,t){return e<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}}),l.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});var Qn="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function Xn(e,a,t,s){var n=function(e){var a=Math.floor(e%1e3/100),t=Math.floor(e%100/10),s=e%10,n="";0<a&&(n+=Qn[a]+"vatlh");0<t&&(n+=(""!==n?" ":"")+Qn[t]+"maH");0<s&&(n+=(""!==n?" ":"")+Qn[s]);return""===n?"pagh":n}(e);switch(t){case"ss":return n+" lup";case"mm":return n+" tup";case"hh":return n+" rep";case"dd":return n+" jaj";case"MM":return n+" jar";case"yy":return n+" DIS"}}l.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var a=e;return a=-1!==e.indexOf("jaj")?a.slice(0,-3)+"leS":-1!==e.indexOf("jar")?a.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?a.slice(0,-3)+"nem":a+" pIq"},past:function(e){var a=e;return a=-1!==e.indexOf("jaj")?a.slice(0,-3)+"Hu\u2019":-1!==e.indexOf("jar")?a.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?a.slice(0,-3)+"ben":a+" ret"},s:"puS lup",ss:Xn,m:"wa\u2019 tup",mm:Xn,h:"wa\u2019 rep",hh:Xn,d:"wa\u2019 jaj",dd:Xn,M:"wa\u2019 jar",MM:Xn,y:"wa\u2019 DIS",yy:Xn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var ed={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};function ad(e,a,t,s){var n={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[e+" m\xeduts",e+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[e+" \xfeoras",e+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return s?n[t][0]:a?n[t][0]:n[t][1]}function td(e,a,t){var s,n;return"m"===t?a?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===t?a?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":e+" "+(s=+e,n={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:a?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[t].split("_"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}function sd(e){return function(){return e+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}l.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e,a){switch(a){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'\u0131nc\u0131";var t=e%10;return e+(ed[t]||ed[e%100-t]||ed[100<=e?100:null])}},week:{dow:1,doy:7}}),l.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,a,t){return 11<e?t?"d'o":"D'O":t?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:ad,ss:ad,m:ad,mm:ad,h:ad,hh:ad,d:ad,dd:ad,M:ad,MM:ad,y:ad,yy:ad},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),l.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}}),l.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===a||"\u0633\u06d5\u06be\u06d5\u0631"===a||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===a?e:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===a||"\u0643\u06d5\u0686"===a?e+12:11<=e?e:e+12},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":s<900?"\u0633\u06d5\u06be\u06d5\u0631":s<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":s<1230?"\u0686\u06c8\u0634":s<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return e+"-\u06be\u06d5\u067e\u062a\u06d5";default:return e}},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:7}}),l.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function(e,a){var t={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return e?t[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(a)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(a)?"genitive":"nominative"][e.day()]:t.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:sd("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:sd("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:sd("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:sd("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return sd("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return sd("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:td,m:td,mm:td,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:td,d:"\u0434\u0435\u043d\u044c",dd:td,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:td,y:"\u0440\u0456\u043a",yy:td},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?"\u043d\u043e\u0447\u0456":e<12?"\u0440\u0430\u043d\u043a\u0443":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e+"-\u0439";case"D":return e+"-\u0433\u043e";default:return e}},week:{dow:1,doy:7}});var nd=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],dd=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];return l.defineLocale("ur",{months:nd,monthsShort:nd,weekdays:dd,weekdaysShort:dd,weekdaysMin:dd,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"\u0634\u0627\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:4}}),l.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),l.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}}),l.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,a,t){return e<12?t?"sa":"SA":t?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}}),l.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}}),l.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u51cc\u6668"===a||"\u65e9\u4e0a"===a||"\u4e0a\u5348"===a?e:"\u4e0b\u5348"===a||"\u665a\u4e0a"===a?e+12:11<=e?e:e+12},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u51cc\u6668":s<900?"\u65e9\u4e0a":s<1130?"\u4e0a\u5348":s<1230?"\u4e2d\u5348":s<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u5468";default:return e}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}}),l.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u51cc\u6668"===a||"\u65e9\u4e0a"===a||"\u4e0a\u5348"===a?e:"\u4e2d\u5348"===a?11<=e?e:e+12:"\u4e0b\u5348"===a||"\u665a\u4e0a"===a?e+12:void 0},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u51cc\u6668":s<900?"\u65e9\u4e0a":s<1130?"\u4e0a\u5348":s<1230?"\u4e2d\u5348":s<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u9031";default:return e}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}}),l.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u51cc\u6668"===a||"\u65e9\u4e0a"===a||"\u4e0a\u5348"===a?e:"\u4e2d\u5348"===a?11<=e?e:e+12:"\u4e0b\u5348"===a||"\u665a\u4e0a"===a?e+12:void 0},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u51cc\u6668":s<900?"\u65e9\u4e0a":s<1130?"\u4e0a\u5348":s<1230?"\u4e2d\u5348":s<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u9031";default:return e}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}}),l.locale("en"),l});
\ No newline at end of file
+++ /dev/null
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var e,i;function c(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){return void 0===e}function d(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function h(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function y(e,t,n,s){return Ot(e,t,n,s,!0).utc()}function g(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function p(e){if(null==e._isValid){var t=g(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function v(e){var t=y(NaN);return null!=e?_(g(t),e):g(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var r=c.momentProperties=[];function w(e,t){var n,s,i;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=g(t)),l(t._locale)||(e._locale=t._locale),0<r.length)for(n=0;n<r.length;n++)l(i=t[s=r[n]])||(e[s]=i);return e}var t=!1;function M(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,c.updateOffset(this),t=!1)}function S(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function D(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function k(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=D(t)),n}function a(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&k(e[s])!==k(t[s]))&&a++;return a+r}function Y(e){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return _(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,i),a){for(var e,t=[],n=0;n<arguments.length;n++){if(e="","object"==typeof arguments[n]){for(var s in e+="\n["+n+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[n];t.push(e)}Y(i+"\nArguments: "+Array.prototype.slice.call(t).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,O={};function T(e,t){null!=c.deprecationHandler&&c.deprecationHandler(e,t),O[e]||(Y(t),O[e]=!0)}function x(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function b(e,t){var n,s=_({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},_(s[n],e[n]),_(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=_({},s[n]));return s}function P(e){null!=e&&this.set(e)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};var W={};function H(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function R(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function C(e){var t,n,s={};for(n in e)m(e,n)&&(t=R(n))&&(s[t]=e[n]);return s}var F={};function L(e,t){F[e]=t}function U(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},E={};function I(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(E[e]=i),t&&(E[t[0]]=function(){return U(i.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=j(t,e.localeData()),V[t]=V[t]||function(s){var e,i,t,r=s.match(N);for(e=0,i=r.length;e<i;e++)E[r[e]]?r[e]=E[r[e]]:r[e]=(t=r[e]).match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"");return function(e){var t,n="";for(t=0;t<i;t++)n+=x(r[t])?r[t].call(e,s):r[t];return n}}(t),V[t](e)):e.localeData().invalidDate()}function j(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(G.lastIndex=0;0<=n&&G.test(e);)e=e.replace(G,s),G.lastIndex=0,n-=1;return e}var Z=/\d/,z=/\d\d/,$=/\d{3}/,q=/\d{4}/,J=/[+-]?\d{6}/,B=/\d\d?/,Q=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,K=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,re=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe={};function ue(e,n,s){oe[e]=x(n)?n:function(e,t){return e&&s?s:n}}function le(e,t){return m(oe,e)?oe[e](t._strict,t._locale):new RegExp(de(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function de(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var he={};function ce(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),d(n)&&(s=function(e,t){t[n]=k(e)}),t=0;t<e.length;t++)he[e[t]]=s}function fe(e,i){ce(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var me=0,_e=1,ye=2,ge=3,pe=4,ve=5,we=6,Me=7,Se=8;function De(e){return ke(e)?366:365}function ke(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),H("year","y"),L("year",1),ue("Y",se),ue("YY",B,z),ue("YYYY",ee,q),ue("YYYYY",te,J),ue("YYYYYY",te,J),ce(["YYYYY","YYYYYY"],me),ce("YYYY",function(e,t){t[me]=2===e.length?c.parseTwoDigitYear(e):k(e)}),ce("YY",function(e,t){t[me]=c.parseTwoDigitYear(e)}),ce("Y",function(e,t){t[me]=parseInt(e,10)}),c.parseTwoDigitYear=function(e){return k(e)+(68<k(e)?1900:2e3)};var Ye,Oe=Te("FullYear",!0);function Te(t,n){return function(e){return null!=e?(be(this,t,e),c.updateOffset(this,n),this):xe(this,t)}}function xe(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function be(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ke(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Pe(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Pe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?ke(e)?29:28:31-s%7%2}Ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),H("month","M"),L("month",8),ue("M",B),ue("MM",B,z),ue("MMM",function(e,t){return t.monthsShortRegex(e)}),ue("MMMM",function(e,t){return t.monthsRegex(e)}),ce(["M","MM"],function(e,t){t[_e]=k(e)-1}),ce(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[_e]=i:g(n).invalidMonth=e});var We=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,He="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var Re="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ce(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=k(t);else if(!d(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Pe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Fe(e){return null!=e?(Ce(this,e),c.updateOffset(this,!0),this):xe(this,"Month")}var Le=ae;var Ue=ae;function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=y([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=de(s[t]),i[t]=de(i[t]);for(t=0;t<24;t++)r[t]=de(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ge(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&0<=e&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Ve(e,t,n){var s=7+t-n;return-((7+Ge(e,0,s).getUTCDay()-t)%7)+s-1}function Ee(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ve(e,s,i);return a=o<=0?De(r=e-1)+o:o>De(e)?(r=e+1,o-De(e)):(r=e,o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(De(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),H("week","w"),H("isoWeek","W"),L("week",5),L("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=k(e)});I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),H("day","d"),H("weekday","e"),H("isoWeekday","E"),L("day",11),L("weekday",11),L("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=k(e)});var je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var ze="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $e=ae;var qe=ae;var Je=ae;function Be(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=de(o[t]),u[t]=de(u[t]),l[t]=de(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ke(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Qe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),H("hour","h"),L("hour",13),ue("a",Ke),ue("A",Ke),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=k(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=k(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i))});var et,tt=Te("Hours",!0),nt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:He,monthsShort:Re,week:{dow:0,doy:6},weekdays:je,weekdaysMin:ze,weekdaysShort:Ze,meridiemParse:/[ap]\.?m?\.?/i},st={},it={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(e){var t=null;if(!st[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=et._abbr,require("./locale/"+e),ot(t)}catch(e){}return st[e]}function ot(e,t){var n;return e&&((n=l(t)?lt(e):ut(e,t))?et=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),et._abbr}function ut(e,t){if(null===t)return delete st[e],null;var n,s=nt;if(t.abbr=e,null!=st[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=st[e]._config;else if(null!=t.parentLocale)if(null!=st[t.parentLocale])s=st[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return it[t.parentLocale]||(it[t.parentLocale]=[]),it[t.parentLocale].push({name:e,config:t}),null;s=n._config}return st[e]=new P(b(s,t)),it[e]&&it[e].forEach(function(e){ut(e.name,e.config)}),ot(e),st[e]}function lt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return et;if(!o(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=rt(e[r]).split("-")).length,n=(n=rt(e[r+1]))?n.split("-"):null;0<t;){if(s=at(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&a(i,n,!0)>=t-1)break;t--}r++}return et}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11<n[_e]?_e:n[ye]<1||n[ye]>Pe(n[me],n[_e])?ye:n[ge]<0||24<n[ge]||24===n[ge]&&(0!==n[pe]||0!==n[ve]||0!==n[we])?ge:n[pe]<0||59<n[pe]?pe:n[ve]<0||59<n[ve]?ve:n[we]<0||999<n[we]?we:-1,g(e)._overflowDayOfYear&&(t<me||ye<t)&&(t=ye),g(e)._overflowWeeks&&-1===t&&(t=Me),g(e)._overflowWeekday&&-1===t&&(t=Se),g(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var t,n,s,i,r,a=[];if(!e._d){var o,u;for(o=e,u=new Date(c.now()),s=o._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ye]&&null==e._a[_e]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ht(t.GG,e._a[me],Ie(Tt(),1,4).year),s=ht(t.W,1),((i=ht(t.E,1))<1||7<i)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ie(Tt(),r,a);n=ht(t.gg,e._a[me],l.year),s=ht(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r}s<1||s>Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ht(e._a[me],s[me]),(e._dayOfYear>De(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[pe]&&0===e._a[ve]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&0<=e&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var ft=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,yt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],gt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function vt(e){var t,n,s,i,r,a,o=e._i,u=ft.exec(o)||mt.exec(o);if(u){for(g(e).iso=!0,t=0,n=yt.length;t<n;t++)if(yt[t][1].exec(u[1])){i=yt[t][0],s=!1!==yt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[3])){r=(u[2]||" ")+gt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!_t.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),kt(e)}else e._isValid=!1}var wt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Mt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Re.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}var St={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dt(e){var t,n,s,i=wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(i){var r=Mt(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=r,s=e,t&&Ze.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(g(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=r,e._tzm=function(e,t,n){if(e)return St[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(i[8],i[9],i[10]),e._d=Ge.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==c.ISO_8601)if(e._f!==c.RFC_2822){e._a=[],g(e).empty=!0;var t,n,s,i,r,a,o,u,l=""+e._i,d=l.length,h=0;for(s=j(e._f,e._locale).match(N)||[],t=0;t<s.length;t++)i=s[t],(n=(l.match(le(i,e))||[])[0])&&(0<(r=l.substr(0,l.indexOf(n))).length&&g(e).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),h+=n.length),E[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),a=i,u=e,null!=(o=n)&&m(he,a)&&he[a](o,u._a,u,a)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=d-h,0<l.length&&g(e).unusedInput.push(l),e._a[ge]<=12&&!0===g(e).bigHour&&0<e._a[ge]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[ge]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),ct(e),dt(e)}else Dt(e);else vt(e)}function Yt(e){var t,n,s,i,r=e._i,a=e._f;return e._locale=e._locale||lt(e._l),null===r||void 0===a&&""===r?v({nullInput:!0}):("string"==typeof r&&(e._i=r=e._locale.preparse(r)),S(r)?new M(dt(r)):(h(r)?e._d=r:o(a)?function(e){var t,n,s,i,r;if(0===e._f.length)return g(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],kt(t),p(t)&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==s||r<s)&&(s=r,n=t));_(e,n||t)}(e):a?kt(e):l(n=(t=e)._i)?t._d=new Date(c.now()):h(n)?t._d=new Date(n.valueOf()):"string"==typeof n?(s=t,null===(i=pt.exec(s._i))?(vt(s),!1===s._isValid&&(delete s._isValid,Dt(s),!1===s._isValid&&(delete s._isValid,c.createFromInputFallback(s)))):s._d=new Date(+i[1])):o(n)?(t._a=f(n.slice(0),function(e){return parseInt(e,10)}),ct(t)):u(n)?function(e){if(!e._d){var t=C(e._i);e._a=f([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ct(e)}}(t):d(n)?t._d=new Date(n):c.createFromInputFallback(t),p(e)||(e._d=null),e))}function Ot(e,t,n,s,i){var r,a={};return!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new M(dt(Yt(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function Tt(e,t,n,s){return Ot(e,t,n,s,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var xt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:v()}),bt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:v()});function Pt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Wt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ht(e){var t=C(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ye.call(Wt,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Wt.length;++s)if(e[Wt[s]]){if(n)return!1;parseFloat(e[Wt[s]])!==k(e[Wt[s]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=lt(),this._bubble()}function Rt(e){return e instanceof Ht}function Ct(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){I(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+U(~~(e/60),2)+n+U(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ue("Z",re),ue("ZZ",re),ce(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ut(re,e)});var Lt=/([\+\-]|\d\d)/gi;function Ut(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(Lt)||["-",0,0],i=60*s[1]+k(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Nt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(S(e)||h(e)?e.valueOf():Tt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),c.updateOffset(n,!1),n):Tt(e).local()}function Gt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Vt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var Et=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,It=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function At(e,t){var n,s,i,r=e,a=null;return Rt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:d(e)?(r={},t?r[t]=e:r.milliseconds=e):(a=Et.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:k(a[ye])*n,h:k(a[ge])*n,m:k(a[pe])*n,s:k(a[ve])*n,ms:k(Ct(1e3*a[we]))*n}):(a=It.exec(e))?(n="-"===a[1]?-1:1,r={y:jt(a[2],n),M:jt(a[3],n),w:jt(a[4],n),d:jt(a[5],n),h:jt(a[6],n),m:jt(a[7],n),s:jt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Nt(t,e),e.isBefore(t)?n=Zt(e,t):((n=Zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(Tt(r.from),Tt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ht(r),Rt(e)&&m(e,"_locale")&&(s._locale=e._locale),s}function jt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Zt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function zt(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(T(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),$t(this,At(e="string"==typeof e?+e:e,t),s),this}}function $t(e,t,n,s){var i=t._milliseconds,r=Ct(t._days),a=Ct(t._months);e.isValid()&&(s=null==s||s,a&&Ce(e,xe(e,"Month")+a*n),r&&be(e,"Date",xe(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&c.updateOffset(e,r||a))}At.fn=Ht.prototype,At.invalid=function(){return At(NaN)};var qt=zt(1,"add"),Jt=zt(-1,"subtract");function Bt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=lt(e))&&(this._locale=t),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xt=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function Kt(){return this._locale}function en(e,t){I(0,[e,e.length],0,t)}function tn(e,t,n,s,i){var r;return null==e?Ie(this,s,i).year:((r=Ae(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ge(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),en("gggg","weekYear"),en("ggggg","weekYear"),en("GGGG","isoWeekYear"),en("GGGGG","isoWeekYear"),H("weekYear","gg"),H("isoWeekYear","GG"),L("weekYear",1),L("isoWeekYear",1),ue("G",se),ue("g",se),ue("GG",B,z),ue("gg",B,z),ue("GGGG",ee,q),ue("gggg",ee,q),ue("GGGGG",te,J),ue("ggggg",te,J),fe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=k(e)}),fe(["gg","GG"],function(e,t,n,s){t[s]=c.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),H("quarter","Q"),L("quarter",7),ue("Q",Z),ce("Q",function(e,t){t[_e]=3*(k(e)-1)}),I("D",["DD",2],"Do","date"),H("date","D"),L("date",9),ue("D",B),ue("DD",B,z),ue("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ce(["D","DD"],ye),ce("Do",function(e,t){t[ye]=k(e.match(B)[0])});var nn=Te("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),H("dayOfYear","DDD"),L("dayOfYear",4),ue("DDD",K),ue("DDDD",$),ce(["DDD","DDDD"],function(e,t,n){n._dayOfYear=k(e)}),I("m",["mm",2],0,"minute"),H("minute","m"),L("minute",14),ue("m",B),ue("mm",B,z),ce(["m","mm"],pe);var sn=Te("Minutes",!1);I("s",["ss",2],0,"second"),H("second","s"),L("second",15),ue("s",B),ue("ss",B,z),ce(["s","ss"],ve);var rn,an=Te("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),H("millisecond","ms"),L("millisecond",16),ue("S",K,Z),ue("SS",K,z),ue("SSS",K,$),rn="SSSS";rn.length<=9;rn+="S")ue(rn,ne);function on(e,t){t[we]=k(1e3*("0."+e))}for(rn="S";rn.length<=9;rn+="S")ce(rn,on);var un=Te("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var ln=M.prototype;function dn(e){return e}ln.add=qt,ln.calendar=function(e,t){var n=e||Tt(),s=Nt(n,this).startOf("day"),i=c.calendarFormat(this,s)||"sameElse",r=t&&(x(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,Tt(n)))},ln.clone=function(){return new M(this)},ln.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Nt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=R(t)){case"year":r=Bt(this,s)/12;break;case"month":r=Bt(this,s);break;case"quarter":r=Bt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:D(r)},ln.endOf=function(e){return void 0===(e=R(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},ln.format=function(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},ln.from=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.fromNow=function(e){return this.from(Tt(),e)},ln.to=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.toNow=function(e){return this.to(Tt(),e)},ln.get=function(e){return x(this[e=R(e)])?this[e]():this},ln.invalidAt=function(){return g(this).overflow},ln.isAfter=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},ln.isBefore=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},ln.isBetween=function(e,t,n,s){var i=S(e)?e:Tt(e),r=S(t)?t:Tt(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&("("===(s=s||"()")[0]?this.isAfter(i,n):!this.isBefore(i,n))&&(")"===s[1]?this.isBefore(r,n):!this.isAfter(r,n))},ln.isSame=function(e,t){var n,s=S(e)?e:Tt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=R(t)||"millisecond")?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},ln.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},ln.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},ln.isValid=function(){return p(this)},ln.lang=Xt,ln.locale=Qt,ln.localeData=Kt,ln.max=bt,ln.min=xt,ln.parsingFlags=function(){return _({},g(this))},ln.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:F[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=C(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(x(this[e=R(e)]))return this[e](t);return this},ln.startOf=function(e){switch(e=R(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},ln.subtract=Jt,ln.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},ln.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},ln.toDate=function(){return new Date(this.valueOf())},ln.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):x(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ln.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},ln.toJSON=function(){return this.isValid()?this.toISOString():null},ln.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ln.unix=function(){return Math.floor(this.valueOf()/1e3)},ln.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ln.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ln.year=Oe,ln.isLeapYear=function(){return ke(this.year())},ln.weekYear=function(e){return tn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ln.isoWeekYear=function(e){return tn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},ln.quarter=ln.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},ln.month=Fe,ln.daysInMonth=function(){return Pe(this.year(),this.month())},ln.week=ln.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},ln.isoWeek=ln.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},ln.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},ln.isoWeeksInYear=function(){return Ae(this.year(),1,4)},ln.date=nn,ln.day=ln.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},ln.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},ln.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,s=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?s:s-7)},ln.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},ln.hour=ln.hours=tt,ln.minute=ln.minutes=sn,ln.second=ln.seconds=an,ln.millisecond=ln.milliseconds=un,ln.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Gt(this);if("string"==typeof e){if(null===(e=Ut(re,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Gt(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?$t(this,At(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this},ln.utc=function(e){return this.utcOffset(0,e)},ln.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Gt(this),"m")),this},ln.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ut(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},ln.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},ln.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Vt,ln.isUTC=Vt,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Fe),ln.years=n("years accessor is deprecated. Use year instead",Oe),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Yt(e))._a){var t=e._isUTC?y(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0<a(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var hn=P.prototype;function cn(e,t,n,s){var i=lt(),r=y().set(s,t);return i[n](r,e)}function fn(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return cn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=cn(e,s,n,"month");return i}function mn(e,t,n,s){t=("boolean"==typeof e?d(t)&&(n=t,t=void 0):(t=e,e=!1,d(n=t)&&(n=t,t=void 0)),t||"");var i,r=lt(),a=e?r._week.dow:0;if(null!=n)return cn(t,(n+a)%7,s,"day");var o=[];for(i=0;i<7;i++)o[i]=cn(t,(i+a)%7,s,"day");return o}hn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return x(s)?s.call(t,n):s},hn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(e){return this._ordinal.replace("%d",e)},hn.preparse=dn,hn.postformat=dn,hn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return x(i)?i(e,t,n,s):i.replace(/%d/i,e)},hn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return x(n)?n(t):n.replace(/%s/i,t)},hn.set=function(e){var t,n;for(n in e)x(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||We).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},hn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[We.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=y([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=y([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},hn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=Ue),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Le),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(e,t){return e?o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone},hn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},hn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},hn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=y([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=y([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},hn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=$e),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qe),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},hn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ot("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",ot),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",lt);var _n=Math.abs;function yn(e,t,n,s){var i=At(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function pn(e){return 4800*e/146097}function vn(e){return 146097*e/4800}function wn(e){return function(){return this.as(e)}}var Mn=wn("ms"),Sn=wn("s"),Dn=wn("m"),kn=wn("h"),Yn=wn("d"),On=wn("w"),Tn=wn("M"),xn=wn("y");function bn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Pn=bn("milliseconds"),Wn=bn("seconds"),Hn=bn("minutes"),Rn=bn("hours"),Cn=bn("days"),Fn=bn("months"),Ln=bn("years");var Un=Math.round,Nn={ss:44,s:45,m:45,h:22,d:26,M:11};var Gn=Math.abs;function Vn(e){return(0<e)-(e<0)||+e}function En(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Gn(this._milliseconds)/1e3,s=Gn(this._days),i=Gn(this._months);t=D((e=D(n/60))/60),n%=60,e%=60;var r=D(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Vn(this._months)!==Vn(h)?"-":"",m=Vn(this._days)!==Vn(h)?"-":"",_=Vn(this._milliseconds)!==Vn(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var In=Ht.prototype;return In.isValid=function(){return this._isValid},In.abs=function(){var e=this._data;return this._milliseconds=_n(this._milliseconds),this._days=_n(this._days),this._months=_n(this._months),e.milliseconds=_n(e.milliseconds),e.seconds=_n(e.seconds),e.minutes=_n(e.minutes),e.hours=_n(e.hours),e.months=_n(e.months),e.years=_n(e.years),this},In.add=function(e,t){return yn(this,e,t,1)},In.subtract=function(e,t){return yn(this,e,t,-1)},In.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=R(e))||"year"===e)return t=this._days+s/864e5,n=this._months+pn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(vn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},In.asMilliseconds=Mn,In.asSeconds=Sn,In.asMinutes=Dn,In.asHours=kn,In.asDays=Yn,In.asWeeks=On,In.asMonths=Tn,In.asYears=xn,In.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},In._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*gn(vn(o)+a),o=a=0),u.milliseconds=r%1e3,e=D(r/1e3),u.seconds=e%60,t=D(e/60),u.minutes=t%60,n=D(t/60),u.hours=n%24,o+=i=D(pn(a+=D(n/24))),a-=gn(vn(i)),s=D(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},In.clone=function(){return At(this)},In.get=function(e){return e=R(e),this.isValid()?this[e+"s"]():NaN},In.milliseconds=Pn,In.seconds=Wn,In.minutes=Hn,In.hours=Rn,In.days=Cn,In.weeks=function(){return D(this.days()/7)},In.months=Fn,In.years=Ln,In.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,s,i,r,a,o,u,l,d,h,c=this.localeData(),f=(n=!e,s=c,i=At(t=this).abs(),r=Un(i.as("s")),a=Un(i.as("m")),o=Un(i.as("h")),u=Un(i.as("d")),l=Un(i.as("M")),d=Un(i.as("y")),(h=r<=Nn.ss&&["s",r]||r<Nn.s&&["ss",r]||a<=1&&["m"]||a<Nn.m&&["mm",a]||o<=1&&["h"]||o<Nn.h&&["hh",o]||u<=1&&["d"]||u<Nn.d&&["dd",u]||l<=1&&["M"]||l<Nn.M&&["MM",l]||d<=1&&["y"]||["yy",d])[2]=n,h[3]=0<+t,h[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,h));return e&&(f=c.pastFuture(+this,f)),c.postformat(f)},In.toISOString=En,In.toString=En,In.toJSON=En,In.locale=Qt,In.localeData=Kt,In.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",En),In.lang=Xt,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ue("x",se),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ce("x",function(e,t,n){n._d=new Date(k(e))}),c.version="2.23.0",e=Tt,c.fn=ln,c.min=function(){return Pt("isBefore",[].slice.call(arguments,0))},c.max=function(){return Pt("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=y,c.unix=function(e){return Tt(1e3*e)},c.months=function(e,t){return fn(e,t,"months")},c.isDate=h,c.locale=ot,c.invalid=v,c.duration=At,c.isMoment=S,c.weekdays=function(e,t,n){return mn(e,t,n,"weekdays")},c.parseZone=function(){return Tt.apply(null,arguments).parseZone()},c.localeData=lt,c.isDuration=Rt,c.monthsShort=function(e,t){return fn(e,t,"monthsShort")},c.weekdaysMin=function(e,t,n){return mn(e,t,n,"weekdaysMin")},c.defineLocale=ut,c.updateLocale=function(e,t){if(null!=t){var n,s,i=nt;null!=(s=at(e))&&(i=s._config),(n=new P(t=b(i,t))).parentLocale=st[e],st[e]=n,ot(e)}else null!=st[e]&&(null!=st[e].parentLocale?st[e]=st[e].parentLocale:null!=st[e]&&delete st[e]);return st[e]},c.locales=function(){return s(st)},c.weekdaysShort=function(e,t,n){return mn(e,t,n,"weekdaysShort")},c.normalizeUnits=R,c.relativeTimeRounding=function(e){return void 0===e?Un:"function"==typeof e&&(Un=e,!0)},c.relativeTimeThreshold=function(e,t){return void 0!==Nn[e]&&(void 0===t?Nn[e]:(Nn[e]=t,"s"===e&&(Nn.ss=t-1),!0))},c.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=ln,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},c});
\ No newline at end of file
+++ /dev/null
-.ss-main {
- position : relative;
- display : inline-block;
- user-select: none;
- color : #666;
- width : 100%
-}
-
-.ss-main .ss-single-selected {
- display : flex;
- cursor : pointer;
- width : 100%;
- height : 30px;
- padding : 6px;
- /* border : 1px solid #dcdee2;
- border-radius : 4px; */
- background-color: #fff;
- outline : 0;
- box-sizing : border-box;
- transition : background-color .2s
-}
-
-.ss-main .ss-single-selected.ss-disabled {
- background-color: #dcdee2;
- cursor : not-allowed
-}
-
-.ss-main .ss-single-selected.ss-open-above {
- border-top-left-radius : 0px;
- border-top-right-radius: 0px
-}
-
-.ss-main .ss-single-selected.ss-open-below {
- border-bottom-left-radius : 0px;
- border-bottom-right-radius: 0px
-}
-
-.ss-main .ss-single-selected .placeholder {
- display : flex;
- flex : 1 1 100%;
- align-items : center;
- overflow : hidden;
- text-overflow : ellipsis;
- white-space : nowrap;
- text-align : left;
- width : calc(100% - 30px);
- line-height : 1em;
- -webkit-user-select: none;
- -moz-user-select : none;
- -ms-user-select : none;
- user-select : none
-}
-
-.ss-main .ss-single-selected .placeholder * {
- display : flex;
- align-items : center;
- overflow : hidden;
- text-overflow: ellipsis;
- white-space : nowrap;
- width : auto
-}
-
-.ss-main .ss-single-selected .placeholder .ss-disabled {
- color: #dedede
-}
-
-.ss-main .ss-single-selected .ss-deselect {
- display : flex;
- align-items : center;
- justify-content: flex-end;
- flex : 0 1 auto;
- margin : 0 6px 0 6px;
- font-weight : bold
-}
-
-.ss-main .ss-single-selected .ss-deselect.ss-hide {
- display: none
-}
-
-.ss-main .ss-single-selected .ss-arrow {
- display : flex;
- align-items : center;
- justify-content: flex-end;
- flex : 0 1 auto;
- margin : 0 6px 0 6px
-}
-
-.ss-main .ss-single-selected .ss-arrow span {
- border : solid #666;
- border-width: 0 2px 2px 0;
- display : inline-block;
- padding : 3px;
- transition : transform .2s, margin .2s
-}
-
-.ss-main .ss-single-selected .ss-arrow span.arrow-up {
- transform: rotate(-135deg);
- margin : 3px 0 0 0
-}
-
-.ss-main .ss-single-selected .ss-arrow span.arrow-down {
- transform: rotate(45deg);
- margin : -3px 0 0 0
-}
-
-.ss-main .ss-multi-selected {
- display : flex;
- flex-direction : row;
- cursor : pointer;
- min-height : 30px;
- width : 100%;
- padding : 0 0 0 3px;
- border : 1px solid #dcdee2;
- border-radius : 4px;
- background-color: #fff;
- outline : 0;
- box-sizing : border-box;
- transition : background-color .2s
-}
-
-.ss-main .ss-multi-selected.ss-disabled {
- background-color: #dcdee2;
- cursor : not-allowed
-}
-
-.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled {
- color: #666
-}
-
-.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete {
- cursor: not-allowed
-}
-
-.ss-main .ss-multi-selected.ss-open-above {
- border-top-left-radius : 0px;
- border-top-right-radius: 0px
-}
-
-.ss-main .ss-multi-selected.ss-open-below {
- border-bottom-left-radius : 0px;
- border-bottom-right-radius: 0px
-}
-
-.ss-main .ss-multi-selected .ss-values {
- display : flex;
- flex-wrap : wrap;
- justify-content: flex-start;
- flex : 1 1 100%;
- width : calc(100% - 30px)
-}
-
-.ss-main .ss-multi-selected .ss-values .ss-disabled {
- display : flex;
- padding : 4px 5px;
- margin : 2px 0px;
- line-height : 1em;
- align-items : center;
- width : 100%;
- color : #dedede;
- overflow : hidden;
- text-overflow: ellipsis;
- white-space : nowrap
-}
-
-@keyframes scaleIn {
- 0% {
- transform: scale(0);
- opacity : 0
- }
-
- 100% {
- transform: scale(1);
- opacity : 1
- }
-}
-
-@keyframes scaleOut {
- 0% {
- transform: scale(1);
- opacity : 1
- }
-
- 100% {
- transform: scale(0);
- opacity : 0
- }
-}
-
-.ss-main .ss-multi-selected .ss-values .ss-value {
- display : flex;
- user-select : none;
- align-items : center;
- font-size : 12px;
- padding : 3px 5px;
- margin : 3px 5px 3px 0px;
- color : #fff;
- background-color : #5897fb;
- border-radius : 4px;
- animation-name : scaleIn;
- animation-duration : .2s;
- animation-timing-function: ease-out;
- animation-fill-mode : both
-}
-
-.ss-main .ss-multi-selected .ss-values .ss-value.ss-out {
- animation-name : scaleOut;
- animation-duration : .2s;
- animation-timing-function: ease-out
-}
-
-.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete {
- margin: 0 0 0 5px;
- cursor: pointer
-}
-
-.ss-main .ss-multi-selected .ss-add {
- display: flex;
- flex : 0 1 3px;
- margin : 9px 12px 0 5px
-}
-
-.ss-main .ss-multi-selected .ss-add .ss-plus {
- display : flex;
- justify-content: center;
- align-items : center;
- background : #666;
- position : relative;
- height : 10px;
- width : 2px;
- transition : transform .2s
-}
-
-.ss-main .ss-multi-selected .ss-add .ss-plus:after {
- background: #666;
- content : "";
- position : absolute;
- height : 2px;
- width : 10px;
- left : -4px;
- top : 4px
-}
-
-.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross {
- transform: rotate(45deg)
-}
-
-.ss-content {
- position : absolute;
- width : 100%;
- margin : -1px 0 0 0;
- box-sizing : border-box;
- border : solid 1px #dcdee2;
- z-index : 1010;
- background-color: #fff;
- transform-origin: center top;
- transition : transform .2s, opacity .2s;
- opacity : 0;
- transform : scaleY(0)
-}
-
-.ss-content.ss-open {
- display : block;
- opacity : 1;
- transform: scaleY(1)
-}
-
-.ss-content .ss-search {
- display : flex;
- flex-direction: row;
- padding : 8px 8px 6px 8px
-}
-
-.ss-content .ss-search.ss-hide {
- height : 0px;
- opacity: 0;
- padding: 0px 0px 0px 0px;
- margin : 0px 0px 0px 0px
-}
-
-.ss-content .ss-search.ss-hide input {
- height : 0px;
- opacity: 0;
- padding: 0px 0px 0px 0px;
- margin : 0px 0px 0px 0px
-}
-
-.ss-content .ss-search input {
- display : inline-flex;
- font-size : inherit;
- line-height : inherit;
- flex : 1 1 auto;
- width : 100%;
- min-width : 0px;
- height : 30px;
- padding : 6px 8px;
- margin : 0;
- border : 1px solid #dcdee2;
- border-radius : 4px;
- background-color : #fff;
- outline : 0;
- text-align : left;
- box-sizing : border-box;
- -webkit-box-sizing: border-box;
- -webkit-appearance: textfield
-}
-
-.ss-content .ss-search input::placeholder {
- color : #8a8a8a;
- vertical-align: middle
-}
-
-.ss-content .ss-search input:focus {
- box-shadow: 0 0 5px #5897fb
-}
-
-.ss-content .ss-search .ss-addable {
- display : inline-flex;
- justify-content: center;
- align-items : center;
- cursor : pointer;
- font-size : 22px;
- font-weight : bold;
- flex : 0 0 30px;
- height : 30px;
- margin : 0 0 0 8px;
- border : 1px solid #dcdee2;
- border-radius : 4px;
- box-sizing : border-box
-}
-
-.ss-content .ss-addable {
- padding-top: 0px
-}
-
-.ss-content .ss-list {
- max-height: 200px;
- overflow-x: hidden;
- overflow-y: auto;
- text-align: left
-}
-
-.ss-content .ss-list .ss-optgroup .ss-optgroup-label {
- padding : 6px 10px 6px 10px;
- font-weight: bold
-}
-
-.ss-content .ss-list .ss-optgroup .ss-option {
- padding: 6px 6px 6px 25px
-}
-
-.ss-content .ss-list .ss-optgroup-label-selectable {
- cursor: pointer
-}
-
-.ss-content .ss-list .ss-optgroup-label-selectable:hover {
- color : #fff;
- background-color: #5897fb
-}
-
-.ss-content .ss-list .ss-option {
- padding : 6px 10px 6px 10px;
- cursor : pointer;
- user-select: none
-}
-
-.ss-content .ss-list .ss-option * {
- display: inline-block
-}
-
-.ss-content .ss-list .ss-option:hover,
-.ss-content .ss-list .ss-option.ss-highlighted {
- color : #fff;
- background-color: #5897fb
-}
-
-.ss-content .ss-list .ss-option.ss-disabled {
- cursor : not-allowed;
- color : #dedede;
- background-color: #fff
-}
-
-.ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected {
- color : #666;
- background-color: rgba(88, 151, 251, 0.1)
-}
-
-.ss-content .ss-list .ss-option.ss-hide {
- display: none
-}
-
-.ss-content .ss-list .ss-option .ss-search-highlight {
- background-color: #fffb8c
-}
\ No newline at end of file
+++ /dev/null
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else if(typeof exports === 'object')
- exports["SlimSelect"] = factory();
- else
- root["SlimSelect"] = factory();
-})(window, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ }
-/******/ };
-/******/
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/
-/******/ // create a fake namespace object
-/******/ // mode & 1: value is a module id, require it
-/******/ // mode & 2: merge all properties of value into the ns
-/******/ // mode & 4: return value when already ns object
-/******/ // mode & 8|1: behave like require
-/******/ __webpack_require__.t = function(value, mode) {
-/******/ if(mode & 1) value = __webpack_require__(value);
-/******/ if(mode & 8) return value;
-/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ var ns = Object.create(null);
-/******/ __webpack_require__.r(ns);
-/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ return ns;
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 2);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-exports.__esModule = true;
-function hasClassInTree(element, className) {
- function hasClass(e, c) {
- if (!(!c || !e || !e.classList || !e.classList.contains(c))) {
- return e;
- }
- return null;
- }
- function parentByClass(e, c) {
- if (!e || e === document) {
- return null;
- }
- else if (hasClass(e, c)) {
- return e;
- }
- else {
- return parentByClass(e.parentNode, c);
- }
- }
- return hasClass(element, className) || parentByClass(element, className);
-}
-exports.hasClassInTree = hasClassInTree;
-function ensureElementInView(container, element) {
- var cTop = container.scrollTop + container.offsetTop;
- var cBottom = cTop + container.clientHeight;
- var eTop = element.offsetTop;
- var eBottom = eTop + element.clientHeight;
- if (eTop < cTop) {
- container.scrollTop -= (cTop - eTop);
- }
- else if (eBottom > cBottom) {
- container.scrollTop += (eBottom - cBottom);
- }
-}
-exports.ensureElementInView = ensureElementInView;
-function putContent(el, currentPosition, isOpen) {
- var height = el.offsetHeight;
- var rect = el.getBoundingClientRect();
- var elemTop = (isOpen ? rect.top : rect.top - height);
- var elemBottom = (isOpen ? rect.bottom : rect.bottom + height);
- if (elemTop <= 0) {
- return 'below';
- }
- if (elemBottom >= window.innerHeight) {
- return 'above';
- }
- return (isOpen ? currentPosition : 'below');
-}
-exports.putContent = putContent;
-function debounce(func, wait, immediate) {
- if (wait === void 0) { wait = 100; }
- if (immediate === void 0) { immediate = false; }
- var timeout;
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var context = self;
- var later = function () {
- timeout = null;
- if (!immediate) {
- func.apply(context, args);
- }
- };
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow) {
- func.apply(context, args);
- }
- };
-}
-exports.debounce = debounce;
-function isValueInArrayOfObjects(selected, key, value) {
- if (!Array.isArray(selected)) {
- return selected[key] === value;
- }
- for (var _i = 0, selected_1 = selected; _i < selected_1.length; _i++) {
- var s = selected_1[_i];
- if (s && s[key] && s[key] === value) {
- return true;
- }
- }
- return false;
-}
-exports.isValueInArrayOfObjects = isValueInArrayOfObjects;
-function highlight(str, search, className) {
- var completedString = str;
- var regex = new RegExp('(' + search.trim() + ')(?![^<]*>[^<>]*</)', 'i');
- if (!str.match(regex)) {
- return str;
- }
- var matchStartPosition = str.match(regex).index;
- var matchEndPosition = matchStartPosition + str.match(regex)[0].toString().length;
- var originalTextFoundByRegex = str.substring(matchStartPosition, matchEndPosition);
- completedString = completedString.replace(regex, "<mark class=\"" + className + "\">" + originalTextFoundByRegex + "</mark>");
- return completedString;
-}
-exports.highlight = highlight;
-function kebabCase(str) {
- var result = str.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g, function (match) { return '-' + match.toLowerCase(); });
- return (str[0] === str[0].toUpperCase())
- ? result.substring(1)
- : result;
-}
-exports.kebabCase = kebabCase;
-(function () {
- var w = window;
- if (typeof w.CustomEvent === 'function') {
- return;
- }
- function CustomEvent(event, params) {
- params = params || { bubbles: false, cancelable: false, detail: undefined };
- var evt = document.createEvent('CustomEvent');
- evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
- return evt;
- }
- CustomEvent.prototype = w.Event.prototype;
- w.CustomEvent = CustomEvent;
-})();
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-exports.__esModule = true;
-var Data = (function () {
- function Data(info) {
- this.contentOpen = false;
- this.contentPosition = 'below';
- this.isOnChangeEnabled = true;
- this.main = info.main;
- this.searchValue = '';
- this.data = [];
- this.filtered = null;
- this.parseSelectData();
- this.setSelectedFromSelect();
- }
- Data.prototype.newOption = function (info) {
- return {
- id: (info.id ? info.id : String(Math.floor(Math.random() * 100000000))),
- value: (info.value ? info.value : ''),
- text: (info.text ? info.text : ''),
- innerHTML: (info.innerHTML ? info.innerHTML : ''),
- selected: (info.selected ? info.selected : false),
- display: (info.display !== undefined ? info.display : true),
- disabled: (info.disabled ? info.disabled : false),
- placeholder: (info.placeholder ? info.placeholder : false),
- "class": (info["class"] ? info["class"] : undefined),
- data: (info.data ? info.data : {}),
- mandatory: (info.mandatory ? info.mandatory : false)
- };
- };
- Data.prototype.add = function (data) {
- this.data.push({
- id: String(Math.floor(Math.random() * 100000000)),
- value: data.value,
- text: data.text,
- innerHTML: '',
- selected: false,
- display: true,
- disabled: false,
- placeholder: false,
- "class": undefined,
- mandatory: data.mandatory,
- data: {}
- });
- };
- Data.prototype.parseSelectData = function () {
- this.data = [];
- var nodes = this.main.select.element.childNodes;
- for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {
- var n = nodes_1[_i];
- if (n.nodeName === 'OPTGROUP') {
- var node = n;
- var optgroup = {
- label: node.label,
- options: []
- };
- var options = n.childNodes;
- for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {
- var o = options_1[_a];
- if (o.nodeName === 'OPTION') {
- var option = this.pullOptionData(o);
- optgroup.options.push(option);
- if (option.placeholder && option.text.trim() !== '') {
- this.main.config.placeholderText = option.text;
- }
- }
- }
- this.data.push(optgroup);
- }
- else if (n.nodeName === 'OPTION') {
- var option = this.pullOptionData(n);
- this.data.push(option);
- if (option.placeholder && option.text.trim() !== '') {
- this.main.config.placeholderText = option.text;
- }
- }
- }
- };
- Data.prototype.pullOptionData = function (option) {
- return {
- id: (option.dataset ? option.dataset.id : false) || String(Math.floor(Math.random() * 100000000)),
- value: option.value,
- text: option.text,
- innerHTML: option.innerHTML,
- selected: option.selected,
- disabled: option.disabled,
- placeholder: option.dataset.placeholder === 'true',
- "class": option.className,
- style: option.style.cssText,
- data: option.dataset,
- mandatory: (option.dataset ? option.dataset.mandatory === 'true' : false)
- };
- };
- Data.prototype.setSelectedFromSelect = function () {
- if (this.main.config.isMultiple) {
- var options = this.main.select.element.options;
- var newSelected = [];
- for (var _i = 0, options_2 = options; _i < options_2.length; _i++) {
- var o = options_2[_i];
- if (o.selected) {
- var newOption = this.getObjectFromData(o.value, 'value');
- if (newOption && newOption.id) {
- newSelected.push(newOption.id);
- }
- }
- }
- this.setSelected(newSelected, 'id');
- }
- else {
- var element = this.main.select.element;
- if (element.selectedIndex !== -1) {
- var option = element.options[element.selectedIndex];
- var value = option.value;
- this.setSelected(value, 'value');
- }
- }
- };
- Data.prototype.setSelected = function (value, type) {
- if (type === void 0) { type = 'id'; }
- for (var _i = 0, _a = this.data; _i < _a.length; _i++) {
- var d = _a[_i];
- if (d.hasOwnProperty('label')) {
- if (d.hasOwnProperty('options')) {
- var options = d.options;
- if (options) {
- for (var _b = 0, options_3 = options; _b < options_3.length; _b++) {
- var o = options_3[_b];
- if (o.placeholder) {
- continue;
- }
- o.selected = this.shouldBeSelected(o, value, type);
- }
- }
- }
- }
- else {
- d.selected = this.shouldBeSelected(d, value, type);
- }
- }
- };
- Data.prototype.shouldBeSelected = function (option, value, type) {
- if (type === void 0) { type = 'id'; }
- if (Array.isArray(value)) {
- for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {
- var v = value_1[_i];
- if (type in option && String(option[type]) === String(v)) {
- return true;
- }
- }
- }
- else {
- if (type in option && String(option[type]) === String(value)) {
- return true;
- }
- }
- return false;
- };
- Data.prototype.getSelected = function () {
- var value = { text: '', placeholder: this.main.config.placeholderText };
- var values = [];
- for (var _i = 0, _a = this.data; _i < _a.length; _i++) {
- var d = _a[_i];
- if (d.hasOwnProperty('label')) {
- if (d.hasOwnProperty('options')) {
- var options = d.options;
- if (options) {
- for (var _b = 0, options_4 = options; _b < options_4.length; _b++) {
- var o = options_4[_b];
- if (o.selected) {
- if (!this.main.config.isMultiple) {
- value = o;
- }
- else {
- values.push(o);
- }
- }
- }
- }
- }
- }
- else {
- if (d.selected) {
- if (!this.main.config.isMultiple) {
- value = d;
- }
- else {
- values.push(d);
- }
- }
- }
- }
- if (this.main.config.isMultiple) {
- return values;
- }
- return value;
- };
- Data.prototype.addToSelected = function (value, type) {
- if (type === void 0) { type = 'id'; }
- if (this.main.config.isMultiple) {
- var values = [];
- var selected = this.getSelected();
- if (Array.isArray(selected)) {
- for (var _i = 0, selected_1 = selected; _i < selected_1.length; _i++) {
- var s = selected_1[_i];
- values.push(s[type]);
- }
- }
- values.push(value);
- this.setSelected(values, type);
- }
- };
- Data.prototype.removeFromSelected = function (value, type) {
- if (type === void 0) { type = 'id'; }
- if (this.main.config.isMultiple) {
- var values = [];
- var selected = this.getSelected();
- for (var _i = 0, selected_2 = selected; _i < selected_2.length; _i++) {
- var s = selected_2[_i];
- if (String(s[type]) !== String(value)) {
- values.push(s[type]);
- }
- }
- this.setSelected(values, type);
- }
- };
- Data.prototype.onDataChange = function () {
- if (this.main.onChange && this.isOnChangeEnabled) {
- this.main.onChange(JSON.parse(JSON.stringify(this.getSelected())));
- }
- };
- Data.prototype.getObjectFromData = function (value, type) {
- if (type === void 0) { type = 'id'; }
- for (var _i = 0, _a = this.data; _i < _a.length; _i++) {
- var d = _a[_i];
- if (type in d && String(d[type]) === String(value)) {
- return d;
- }
- if (d.hasOwnProperty('options')) {
- var optgroupObject = d;
- if (optgroupObject.options) {
- for (var _b = 0, _c = optgroupObject.options; _b < _c.length; _b++) {
- var oo = _c[_b];
- if (String(oo[type]) === String(value)) {
- return oo;
- }
- }
- }
- }
- }
- return null;
- };
- Data.prototype.search = function (search) {
- this.searchValue = search;
- if (search.trim() === '') {
- this.filtered = null;
- return;
- }
- var searchFilter = this.main.config.searchFilter;
- var valuesArray = this.data.slice(0);
- search = search.trim();
- var filtered = valuesArray.map(function (obj) {
- if (obj.hasOwnProperty('options')) {
- var optgroupObj = obj;
- var options = [];
- if (optgroupObj.options) {
- options = optgroupObj.options.filter(function (opt) {
- return searchFilter(opt, search);
- });
- }
- if (options.length !== 0) {
- var optgroup = Object.assign({}, optgroupObj);
- optgroup.options = options;
- return optgroup;
- }
- }
- if (obj.hasOwnProperty('text')) {
- var optionObj = obj;
- if (searchFilter(optionObj, search)) {
- return obj;
- }
- }
- return null;
- });
- this.filtered = filtered.filter(function (info) { return info; });
- };
- return Data;
-}());
-exports.Data = Data;
-function validateData(data) {
- if (!data) {
- console.error('Data must be an array of objects');
- return false;
- }
- var isValid = false;
- var errorCount = 0;
- for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
- var d = data_1[_i];
- if (d.hasOwnProperty('label')) {
- if (d.hasOwnProperty('options')) {
- var optgroup = d;
- var options = optgroup.options;
- if (options) {
- for (var _a = 0, options_5 = options; _a < options_5.length; _a++) {
- var o = options_5[_a];
- isValid = validateOption(o);
- if (!isValid) {
- errorCount++;
- }
- }
- }
- }
- }
- else {
- var option = d;
- isValid = validateOption(option);
- if (!isValid) {
- errorCount++;
- }
- }
- }
- return errorCount === 0;
-}
-exports.validateData = validateData;
-function validateOption(option) {
- if (option.text === undefined) {
- console.error('Data object option must have at least have a text value. Check object: ' + JSON.stringify(option));
- return false;
- }
- return true;
-}
-exports.validateOption = validateOption;
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-exports.__esModule = true;
-var config_1 = __webpack_require__(3);
-var select_1 = __webpack_require__(4);
-var slim_1 = __webpack_require__(5);
-var data_1 = __webpack_require__(1);
-var helper_1 = __webpack_require__(0);
-var SlimSelect = (function () {
- function SlimSelect(info) {
- var _this = this;
- this.ajax = null;
- this.addable = null;
- this.beforeOnChange = null;
- this.onChange = null;
- this.beforeOpen = null;
- this.afterOpen = null;
- this.beforeClose = null;
- this.afterClose = null;
- var selectElement = this.validate(info);
- if (selectElement.dataset.ssid) {
- this.destroy(selectElement.dataset.ssid);
- }
- if (info.ajax) {
- this.ajax = info.ajax;
- }
- if (info.addable) {
- this.addable = info.addable;
- }
- this.config = new config_1.Config({
- select: selectElement,
- isAjax: (info.ajax ? true : false),
- showSearch: info.showSearch,
- searchPlaceholder: info.searchPlaceholder,
- searchText: info.searchText,
- searchingText: info.searchingText,
- searchFocus: info.searchFocus,
- searchHighlight: info.searchHighlight,
- searchFilter: info.searchFilter,
- closeOnSelect: info.closeOnSelect,
- showContent: info.showContent,
- placeholderText: info.placeholder,
- allowDeselect: info.allowDeselect,
- allowDeselectOption: info.allowDeselectOption,
- hideSelectedOption: info.hideSelectedOption,
- deselectLabel: info.deselectLabel,
- isEnabled: info.isEnabled,
- valuesUseText: info.valuesUseText,
- showOptionTooltips: info.showOptionTooltips,
- selectByGroup: info.selectByGroup,
- limit: info.limit,
- timeoutDelay: info.timeoutDelay,
- addToBody: info.addToBody
- });
- this.select = new select_1.Select({
- select: selectElement,
- main: this
- });
- this.data = new data_1.Data({ main: this });
- this.slim = new slim_1.Slim({ main: this });
- if (this.select.element.parentNode) {
- this.select.element.parentNode.insertBefore(this.slim.container, this.select.element.nextSibling);
- }
- if (info.data) {
- this.setData(info.data);
- }
- else {
- this.render();
- }
- document.addEventListener('click', function (e) {
- if (e.target && !helper_1.hasClassInTree(e.target, _this.config.id)) {
- _this.close();
- }
- });
- if (this.config.showContent === 'auto') {
- window.addEventListener('scroll', helper_1.debounce(function (e) {
- if (_this.data.contentOpen) {
- if (helper_1.putContent(_this.slim.content, _this.data.contentPosition, _this.data.contentOpen) === 'above') {
- _this.moveContentAbove();
- }
- else {
- _this.moveContentBelow();
- }
- }
- }), false);
- }
- if (info.beforeOnChange) {
- this.beforeOnChange = info.beforeOnChange;
- }
- if (info.onChange) {
- this.onChange = info.onChange;
- }
- if (info.beforeOpen) {
- this.beforeOpen = info.beforeOpen;
- }
- if (info.afterOpen) {
- this.afterOpen = info.afterOpen;
- }
- if (info.beforeClose) {
- this.beforeClose = info.beforeClose;
- }
- if (info.afterClose) {
- this.afterClose = info.afterClose;
- }
- if (!this.config.isEnabled) {
- this.disable();
- }
- }
- SlimSelect.prototype.validate = function (info) {
- var select = (typeof info.select === 'string' ? document.querySelector(info.select) : info.select);
- if (!select) {
- throw new Error('Could not find select element');
- }
- if (select.tagName !== 'SELECT') {
- throw new Error('Element isnt of type select');
- }
- return select;
- };
- SlimSelect.prototype.selected = function () {
- if (this.config.isMultiple) {
- var selected = this.data.getSelected();
- var outputSelected = [];
- for (var _i = 0, selected_1 = selected; _i < selected_1.length; _i++) {
- var s = selected_1[_i];
- outputSelected.push(s.value);
- }
- return outputSelected;
- }
- else {
- var selected = this.data.getSelected();
- return (selected ? selected.value : '');
- }
- };
- SlimSelect.prototype.set = function (value, type, close, render) {
- if (type === void 0) { type = 'value'; }
- if (close === void 0) { close = true; }
- if (render === void 0) { render = true; }
- if (this.config.isMultiple && !Array.isArray(value)) {
- this.data.addToSelected(value, type);
- }
- else {
- this.data.setSelected(value, type);
- }
- this.select.setValue();
- this.data.onDataChange();
- this.render();
- if (close) {
- this.close();
- }
- };
- SlimSelect.prototype.setSelected = function (value, type, close, render) {
- if (type === void 0) { type = 'value'; }
- if (close === void 0) { close = true; }
- if (render === void 0) { render = true; }
- this.set(value, type, close, render);
- };
- SlimSelect.prototype.setData = function (data) {
- var isValid = data_1.validateData(data);
- if (!isValid) {
- console.error('Validation problem on: #' + this.select.element.id);
- return;
- }
- var newData = JSON.parse(JSON.stringify(data));
- var selected = this.data.getSelected();
- if (this.config.isAjax && selected) {
- if (this.config.isMultiple) {
- var reverseSelected = selected.reverse();
- for (var _i = 0, reverseSelected_1 = reverseSelected; _i < reverseSelected_1.length; _i++) {
- var r = reverseSelected_1[_i];
- newData.unshift(r);
- }
- }
- else {
- newData.unshift(this.data.getSelected());
- newData.unshift({ text: '', placeholder: true });
- }
- }
- this.select.create(newData);
- this.data.parseSelectData();
- this.data.setSelectedFromSelect();
- };
- SlimSelect.prototype.addData = function (data) {
- var isValid = data_1.validateData([data]);
- if (!isValid) {
- console.error('Validation problem on: #' + this.select.element.id);
- return;
- }
- this.data.add(this.data.newOption(data));
- this.select.create(this.data.data);
- this.data.parseSelectData();
- this.data.setSelectedFromSelect();
- this.render();
- };
- SlimSelect.prototype.open = function () {
- var _this = this;
- if (!this.config.isEnabled) {
- return;
- }
- if (this.data.contentOpen) {
- return;
- }
- if (this.beforeOpen) {
- this.beforeOpen();
- }
- if (this.config.isMultiple && this.slim.multiSelected) {
- this.slim.multiSelected.plus.classList.add('ss-cross');
- }
- else if (this.slim.singleSelected) {
- this.slim.singleSelected.arrowIcon.arrow.classList.remove('arrow-down');
- this.slim.singleSelected.arrowIcon.arrow.classList.add('arrow-up');
- }
- this.slim[(this.config.isMultiple ? 'multiSelected' : 'singleSelected')].container.classList.add((this.data.contentPosition === 'above' ? this.config.openAbove : this.config.openBelow));
- if (this.config.addToBody) {
- var containerRect = this.slim.container.getBoundingClientRect();
- this.slim.content.style.top = (containerRect.top + containerRect.height + window.scrollY) + 'px';
- this.slim.content.style.left = (containerRect.left + window.scrollX) + 'px';
- this.slim.content.style.width = containerRect.width + 'px';
- }
- this.slim.content.classList.add(this.config.open);
- if (this.config.showContent.toLowerCase() === 'up') {
- this.moveContentAbove();
- }
- else if (this.config.showContent.toLowerCase() === 'down') {
- this.moveContentBelow();
- }
- else {
- if (helper_1.putContent(this.slim.content, this.data.contentPosition, this.data.contentOpen) === 'above') {
- this.moveContentAbove();
- }
- else {
- this.moveContentBelow();
- }
- }
- if (!this.config.isMultiple) {
- var selected = this.data.getSelected();
- if (selected) {
- var selectedId = selected.id;
- var selectedOption = this.slim.list.querySelector('[data-id="' + selectedId + '"]');
- if (selectedOption) {
- helper_1.ensureElementInView(this.slim.list, selectedOption);
- }
- }
- }
- setTimeout(function () {
- _this.data.contentOpen = true;
- if (_this.config.searchFocus) {
- _this.slim.search.input.focus();
- }
- if (_this.afterOpen) {
- _this.afterOpen();
- }
- }, this.config.timeoutDelay);
- };
- SlimSelect.prototype.close = function () {
- var _this = this;
- if (!this.data.contentOpen) {
- return;
- }
- if (this.beforeClose) {
- this.beforeClose();
- }
- if (this.config.isMultiple && this.slim.multiSelected) {
- this.slim.multiSelected.container.classList.remove(this.config.openAbove);
- this.slim.multiSelected.container.classList.remove(this.config.openBelow);
- this.slim.multiSelected.plus.classList.remove('ss-cross');
- }
- else if (this.slim.singleSelected) {
- this.slim.singleSelected.container.classList.remove(this.config.openAbove);
- this.slim.singleSelected.container.classList.remove(this.config.openBelow);
- this.slim.singleSelected.arrowIcon.arrow.classList.add('arrow-down');
- this.slim.singleSelected.arrowIcon.arrow.classList.remove('arrow-up');
- }
- this.slim.content.classList.remove(this.config.open);
- this.data.contentOpen = false;
- this.search('');
- setTimeout(function () {
- _this.slim.content.removeAttribute('style');
- _this.data.contentPosition = 'below';
- if (_this.config.isMultiple && _this.slim.multiSelected) {
- _this.slim.multiSelected.container.classList.remove(_this.config.openAbove);
- _this.slim.multiSelected.container.classList.remove(_this.config.openBelow);
- }
- else if (_this.slim.singleSelected) {
- _this.slim.singleSelected.container.classList.remove(_this.config.openAbove);
- _this.slim.singleSelected.container.classList.remove(_this.config.openBelow);
- }
- _this.slim.search.input.blur();
- if (_this.afterClose) {
- _this.afterClose();
- }
- }, this.config.timeoutDelay);
- };
- SlimSelect.prototype.moveContentAbove = function () {
- var selectHeight = 0;
- if (this.config.isMultiple && this.slim.multiSelected) {
- selectHeight = this.slim.multiSelected.container.offsetHeight;
- }
- else if (this.slim.singleSelected) {
- selectHeight = this.slim.singleSelected.container.offsetHeight;
- }
- var contentHeight = this.slim.content.offsetHeight;
- var height = selectHeight + contentHeight - 1;
- this.slim.content.style.margin = '-' + height + 'px 0 0 0';
- this.slim.content.style.height = (height - selectHeight + 1) + 'px';
- this.slim.content.style.transformOrigin = 'center bottom';
- this.data.contentPosition = 'above';
- if (this.config.isMultiple && this.slim.multiSelected) {
- this.slim.multiSelected.container.classList.remove(this.config.openBelow);
- this.slim.multiSelected.container.classList.add(this.config.openAbove);
- }
- else if (this.slim.singleSelected) {
- this.slim.singleSelected.container.classList.remove(this.config.openBelow);
- this.slim.singleSelected.container.classList.add(this.config.openAbove);
- }
- };
- SlimSelect.prototype.moveContentBelow = function () {
- this.data.contentPosition = 'below';
- if (this.config.isMultiple && this.slim.multiSelected) {
- this.slim.multiSelected.container.classList.remove(this.config.openAbove);
- this.slim.multiSelected.container.classList.add(this.config.openBelow);
- }
- else if (this.slim.singleSelected) {
- this.slim.singleSelected.container.classList.remove(this.config.openAbove);
- this.slim.singleSelected.container.classList.add(this.config.openBelow);
- }
- };
- SlimSelect.prototype.enable = function () {
- this.config.isEnabled = true;
- if (this.config.isMultiple && this.slim.multiSelected) {
- this.slim.multiSelected.container.classList.remove(this.config.disabled);
- }
- else if (this.slim.singleSelected) {
- this.slim.singleSelected.container.classList.remove(this.config.disabled);
- }
- this.select.triggerMutationObserver = false;
- this.select.element.disabled = false;
- this.slim.search.input.disabled = false;
- this.select.triggerMutationObserver = true;
- };
- SlimSelect.prototype.disable = function () {
- this.config.isEnabled = false;
- if (this.config.isMultiple && this.slim.multiSelected) {
- this.slim.multiSelected.container.classList.add(this.config.disabled);
- }
- else if (this.slim.singleSelected) {
- this.slim.singleSelected.container.classList.add(this.config.disabled);
- }
- this.select.triggerMutationObserver = false;
- this.select.element.disabled = true;
- this.slim.search.input.disabled = true;
- this.select.triggerMutationObserver = true;
- };
- SlimSelect.prototype.search = function (value) {
- if (this.data.searchValue !== value) {
- this.slim.search.input.value = value;
- if (this.config.isAjax) {
- var master_1 = this;
- this.config.isSearching = true;
- this.render();
- if (this.ajax) {
- this.ajax(value, function (info) {
- master_1.config.isSearching = false;
- if (Array.isArray(info)) {
- info.unshift({ text: '', placeholder: true });
- master_1.setData(info);
- master_1.data.search(value);
- master_1.render();
- }
- else if (typeof info === 'string') {
- master_1.slim.options(info);
- }
- else {
- master_1.render();
- }
- });
- }
- }
- else {
- this.data.search(value);
- this.render();
- }
- }
- };
- SlimSelect.prototype.setSearchText = function (text) {
- this.config.searchText = text;
- };
- SlimSelect.prototype.render = function () {
- if (this.config.isMultiple) {
- this.slim.values();
- }
- else {
- this.slim.placeholder();
- this.slim.deselect();
- }
- this.slim.options();
- };
- SlimSelect.prototype.destroy = function (id) {
- if (id === void 0) { id = null; }
- var slim = (id ? document.querySelector('.' + id + '.ss-main') : this.slim.container);
- var select = (id ? document.querySelector("[data-ssid=" + id + "]") : this.select.element);
- if (!slim || !select) {
- return;
- }
- select.style.display = '';
- delete select.dataset.ssid;
- var el = select;
- el.slim = null;
- if (slim.parentElement) {
- slim.parentElement.removeChild(slim);
- }
- if (this.config.addToBody) {
- var slimContent = (id ? document.querySelector('.' + id + '.ss-content') : this.slim.content);
- if (!slimContent) {
- return;
- }
- document.body.removeChild(slimContent);
- }
- };
- return SlimSelect;
-}());
-exports["default"] = SlimSelect;
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-exports.__esModule = true;
-var Config = (function () {
- function Config(info) {
- this.id = '';
- this.isMultiple = false;
- this.isAjax = false;
- this.isSearching = false;
- this.showSearch = true;
- this.searchFocus = true;
- this.searchHighlight = false;
- this.closeOnSelect = true;
- this.showContent = 'auto';
- this.searchPlaceholder = 'Search';
- this.searchText = 'No Results';
- this.searchingText = 'Searching...';
- this.placeholderText = 'Select Value';
- this.allowDeselect = false;
- this.allowDeselectOption = false;
- this.hideSelectedOption = false;
- this.deselectLabel = 'x';
- this.isEnabled = true;
- this.valuesUseText = false;
- this.showOptionTooltips = false;
- this.selectByGroup = false;
- this.limit = 0;
- this.timeoutDelay = 200;
- this.addToBody = false;
- this.main = 'ss-main';
- this.singleSelected = 'ss-single-selected';
- this.arrow = 'ss-arrow';
- this.multiSelected = 'ss-multi-selected';
- this.add = 'ss-add';
- this.plus = 'ss-plus';
- this.values = 'ss-values';
- this.value = 'ss-value';
- this.valueText = 'ss-value-text';
- this.valueDelete = 'ss-value-delete';
- this.content = 'ss-content';
- this.open = 'ss-open';
- this.openAbove = 'ss-open-above';
- this.openBelow = 'ss-open-below';
- this.search = 'ss-search';
- this.searchHighlighter = 'ss-search-highlight';
- this.addable = 'ss-addable';
- this.list = 'ss-list';
- this.optgroup = 'ss-optgroup';
- this.optgroupLabel = 'ss-optgroup-label';
- this.optgroupLabelSelectable = 'ss-optgroup-label-selectable';
- this.option = 'ss-option';
- this.optionSelected = 'ss-option-selected';
- this.highlighted = 'ss-highlighted';
- this.disabled = 'ss-disabled';
- this.hide = 'ss-hide';
- this.id = 'ss-' + Math.floor(Math.random() * 100000);
- this.style = info.select.style.cssText;
- this["class"] = info.select.className.split(' ');
- this.isMultiple = info.select.multiple;
- this.isAjax = info.isAjax;
- this.showSearch = (info.showSearch === false ? false : true);
- this.searchFocus = (info.searchFocus === false ? false : true);
- this.searchHighlight = (info.searchHighlight === true ? true : false);
- this.closeOnSelect = (info.closeOnSelect === false ? false : true);
- if (info.showContent) {
- this.showContent = info.showContent;
- }
- this.isEnabled = (info.isEnabled === false ? false : true);
- if (info.searchPlaceholder) {
- this.searchPlaceholder = info.searchPlaceholder;
- }
- if (info.searchText) {
- this.searchText = info.searchText;
- }
- if (info.searchingText) {
- this.searchingText = info.searchingText;
- }
- if (info.placeholderText) {
- this.placeholderText = info.placeholderText;
- }
- this.allowDeselect = (info.allowDeselect === true ? true : false);
- this.allowDeselectOption = (info.allowDeselectOption === true ? true : false);
- this.hideSelectedOption = (info.hideSelectedOption === true ? true : false);
- if (info.deselectLabel) {
- this.deselectLabel = info.deselectLabel;
- }
- if (info.valuesUseText) {
- this.valuesUseText = info.valuesUseText;
- }
- if (info.showOptionTooltips) {
- this.showOptionTooltips = info.showOptionTooltips;
- }
- if (info.selectByGroup) {
- this.selectByGroup = info.selectByGroup;
- }
- if (info.limit) {
- this.limit = info.limit;
- }
- if (info.searchFilter) {
- this.searchFilter = info.searchFilter;
- }
- if (info.timeoutDelay != null) {
- this.timeoutDelay = info.timeoutDelay;
- }
- this.addToBody = (info.addToBody === true ? true : false);
- }
- Config.prototype.searchFilter = function (opt, search) {
- return opt.text.toLowerCase().indexOf(search.toLowerCase()) !== -1;
- };
- return Config;
-}());
-exports.Config = Config;
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-exports.__esModule = true;
-var helper_1 = __webpack_require__(0);
-var Select = (function () {
- function Select(info) {
- this.triggerMutationObserver = true;
- this.element = info.select;
- this.main = info.main;
- if (this.element.disabled) {
- this.main.config.isEnabled = false;
- }
- this.addAttributes();
- this.addEventListeners();
- this.mutationObserver = null;
- this.addMutationObserver();
- var el = this.element;
- el.slim = info.main;
- }
- Select.prototype.setValue = function () {
- if (!this.main.data.getSelected()) {
- return;
- }
- if (this.main.config.isMultiple) {
- var selected = this.main.data.getSelected();
- var options = this.element.options;
- for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
- var o = options_1[_i];
- o.selected = false;
- for (var _a = 0, selected_1 = selected; _a < selected_1.length; _a++) {
- var s = selected_1[_a];
- if (s.value === o.value) {
- o.selected = true;
- }
- }
- }
- }
- else {
- var selected = this.main.data.getSelected();
- this.element.value = (selected ? selected.value : '');
- }
- this.main.data.isOnChangeEnabled = false;
- this.element.dispatchEvent(new CustomEvent('change', { bubbles: true }));
- this.main.data.isOnChangeEnabled = true;
- };
- Select.prototype.addAttributes = function () {
- this.element.tabIndex = -1;
- this.element.style.display = 'none';
- this.element.dataset.ssid = this.main.config.id;
- };
- Select.prototype.addEventListeners = function () {
- var _this = this;
- this.element.addEventListener('change', function (e) {
- _this.main.data.setSelectedFromSelect();
- _this.main.render();
- });
- };
- Select.prototype.addMutationObserver = function () {
- var _this = this;
- if (this.main.config.isAjax) {
- return;
- }
- this.mutationObserver = new MutationObserver(function (mutations) {
- if (!_this.triggerMutationObserver) {
- return;
- }
- _this.main.data.parseSelectData();
- _this.main.data.setSelectedFromSelect();
- _this.main.render();
- mutations.forEach(function (mutation) {
- if (mutation.attributeName === 'class') {
- _this.main.slim.updateContainerDivClass(_this.main.slim.container);
- }
- });
- });
- this.observeMutationObserver();
- };
- Select.prototype.observeMutationObserver = function () {
- if (!this.mutationObserver) {
- return;
- }
- this.mutationObserver.observe(this.element, {
- attributes: true,
- childList: true,
- characterData: true
- });
- };
- Select.prototype.disconnectMutationObserver = function () {
- if (this.mutationObserver) {
- this.mutationObserver.disconnect();
- }
- };
- Select.prototype.create = function (data) {
- this.element.innerHTML = '';
- for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
- var d = data_1[_i];
- if (d.hasOwnProperty('options')) {
- var optgroupObject = d;
- var optgroupEl = document.createElement('optgroup');
- optgroupEl.label = optgroupObject.label;
- if (optgroupObject.options) {
- for (var _a = 0, _b = optgroupObject.options; _a < _b.length; _a++) {
- var oo = _b[_a];
- optgroupEl.appendChild(this.createOption(oo));
- }
- }
- this.element.appendChild(optgroupEl);
- }
- else {
- this.element.appendChild(this.createOption(d));
- }
- }
- };
- Select.prototype.createOption = function (info) {
- var optionEl = document.createElement('option');
- optionEl.value = info.value !== '' ? info.value : info.text;
- optionEl.innerHTML = info.innerHTML || info.text;
- if (info.selected) {
- optionEl.selected = info.selected;
- }
- if (info.display === false) {
- optionEl.style.display = 'none';
- }
- if (info.disabled) {
- optionEl.disabled = true;
- }
- if (info.placeholder) {
- optionEl.setAttribute('data-placeholder', 'true');
- }
- if (info.mandatory) {
- optionEl.setAttribute('data-mandatory', 'true');
- }
- if (info["class"]) {
- info["class"].split(' ').forEach(function (optionClass) {
- optionEl.classList.add(optionClass);
- });
- }
- if (info.data && typeof info.data === 'object') {
- Object.keys(info.data).forEach(function (key) {
- optionEl.setAttribute('data-' + helper_1.kebabCase(key), info.data[key]);
- });
- }
- return optionEl;
- };
- return Select;
-}());
-exports.Select = Select;
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-exports.__esModule = true;
-var helper_1 = __webpack_require__(0);
-var data_1 = __webpack_require__(1);
-var Slim = (function () {
- function Slim(info) {
- this.main = info.main;
- this.container = this.containerDiv();
- this.content = this.contentDiv();
- this.search = this.searchDiv();
- this.list = this.listDiv();
- this.options();
- this.singleSelected = null;
- this.multiSelected = null;
- if (this.main.config.isMultiple) {
- this.multiSelected = this.multiSelectedDiv();
- if (this.multiSelected) {
- this.container.appendChild(this.multiSelected.container);
- }
- }
- else {
- this.singleSelected = this.singleSelectedDiv();
- this.container.appendChild(this.singleSelected.container);
- }
- if (this.main.config.addToBody) {
- this.content.classList.add(this.main.config.id);
- document.body.appendChild(this.content);
- }
- else {
- this.container.appendChild(this.content);
- }
- this.content.appendChild(this.search.container);
- this.content.appendChild(this.list);
- }
- Slim.prototype.containerDiv = function () {
- var container = document.createElement('div');
- container.style.cssText = this.main.config.style;
- this.updateContainerDivClass(container);
- return container;
- };
- Slim.prototype.updateContainerDivClass = function (container) {
- this.main.config["class"] = this.main.select.element.className.split(' ');
- container.className = '';
- container.classList.add(this.main.config.id);
- container.classList.add(this.main.config.main);
- for (var _i = 0, _a = this.main.config["class"]; _i < _a.length; _i++) {
- var c = _a[_i];
- if (c.trim() !== '') {
- container.classList.add(c);
- }
- }
- };
- Slim.prototype.singleSelectedDiv = function () {
- var _this = this;
- var container = document.createElement('div');
- container.classList.add(this.main.config.singleSelected);
- var placeholder = document.createElement('span');
- placeholder.classList.add('placeholder');
- container.appendChild(placeholder);
- var deselect = document.createElement('span');
- deselect.innerHTML = this.main.config.deselectLabel;
- deselect.classList.add('ss-deselect');
- deselect.onclick = function (e) {
- e.stopPropagation();
- if (!_this.main.config.isEnabled) {
- return;
- }
- _this.main.set('');
- };
- container.appendChild(deselect);
- var arrowContainer = document.createElement('span');
- arrowContainer.classList.add(this.main.config.arrow);
- var arrowIcon = document.createElement('span');
- arrowIcon.classList.add('arrow-down');
- arrowContainer.appendChild(arrowIcon);
- container.appendChild(arrowContainer);
- container.onclick = function () {
- if (!_this.main.config.isEnabled) {
- return;
- }
- _this.main.data.contentOpen ? _this.main.close() : _this.main.open();
- };
- return {
- container: container,
- placeholder: placeholder,
- deselect: deselect,
- arrowIcon: {
- container: arrowContainer,
- arrow: arrowIcon
- }
- };
- };
- Slim.prototype.placeholder = function () {
- var selected = this.main.data.getSelected();
- if (selected === null || (selected && selected.placeholder)) {
- var placeholder = document.createElement('span');
- placeholder.classList.add(this.main.config.disabled);
- placeholder.innerHTML = this.main.config.placeholderText;
- if (this.singleSelected) {
- this.singleSelected.placeholder.innerHTML = placeholder.outerHTML;
- }
- }
- else {
- var selectedValue = '';
- if (selected) {
- selectedValue = selected.innerHTML && this.main.config.valuesUseText !== true ? selected.innerHTML : selected.text;
- }
- if (this.singleSelected) {
- this.singleSelected.placeholder.innerHTML = (selected ? selectedValue : '');
- }
- }
- };
- Slim.prototype.deselect = function () {
- if (this.singleSelected) {
- if (!this.main.config.allowDeselect) {
- this.singleSelected.deselect.classList.add('ss-hide');
- return;
- }
- if (this.main.selected() === '') {
- this.singleSelected.deselect.classList.add('ss-hide');
- }
- else {
- this.singleSelected.deselect.classList.remove('ss-hide');
- }
- }
- };
- Slim.prototype.multiSelectedDiv = function () {
- var _this = this;
- var container = document.createElement('div');
- container.classList.add(this.main.config.multiSelected);
- var values = document.createElement('div');
- values.classList.add(this.main.config.values);
- container.appendChild(values);
- var add = document.createElement('div');
- add.classList.add(this.main.config.add);
- var plus = document.createElement('span');
- plus.classList.add(this.main.config.plus);
- plus.onclick = function (e) {
- if (_this.main.data.contentOpen) {
- _this.main.close();
- e.stopPropagation();
- }
- };
- add.appendChild(plus);
- container.appendChild(add);
- container.onclick = function (e) {
- if (!_this.main.config.isEnabled) {
- return;
- }
- var target = e.target;
- if (!target.classList.contains(_this.main.config.valueDelete)) {
- _this.main.data.contentOpen ? _this.main.close() : _this.main.open();
- }
- };
- return {
- container: container,
- values: values,
- add: add,
- plus: plus
- };
- };
- Slim.prototype.values = function () {
- if (!this.multiSelected) {
- return;
- }
- var currentNodes = this.multiSelected.values.childNodes;
- var selected = this.main.data.getSelected();
- var exists;
- var nodesToRemove = [];
- for (var _i = 0, currentNodes_1 = currentNodes; _i < currentNodes_1.length; _i++) {
- var c = currentNodes_1[_i];
- exists = true;
- for (var _a = 0, selected_1 = selected; _a < selected_1.length; _a++) {
- var s = selected_1[_a];
- if (String(s.id) === String(c.dataset.id)) {
- exists = false;
- }
- }
- if (exists) {
- nodesToRemove.push(c);
- }
- }
- for (var _b = 0, nodesToRemove_1 = nodesToRemove; _b < nodesToRemove_1.length; _b++) {
- var n = nodesToRemove_1[_b];
- n.classList.add('ss-out');
- this.multiSelected.values.removeChild(n);
- }
- currentNodes = this.multiSelected.values.childNodes;
- for (var s = 0; s < selected.length; s++) {
- exists = false;
- for (var _c = 0, currentNodes_2 = currentNodes; _c < currentNodes_2.length; _c++) {
- var c = currentNodes_2[_c];
- if (String(selected[s].id) === String(c.dataset.id)) {
- exists = true;
- }
- }
- if (!exists) {
- if (currentNodes.length === 0 || !HTMLElement.prototype.insertAdjacentElement) {
- this.multiSelected.values.appendChild(this.valueDiv(selected[s]));
- }
- else if (s === 0) {
- this.multiSelected.values.insertBefore(this.valueDiv(selected[s]), currentNodes[s]);
- }
- else {
- currentNodes[s - 1].insertAdjacentElement('afterend', this.valueDiv(selected[s]));
- }
- }
- }
- if (selected.length === 0) {
- var placeholder = document.createElement('span');
- placeholder.classList.add(this.main.config.disabled);
- placeholder.innerHTML = this.main.config.placeholderText;
- this.multiSelected.values.innerHTML = placeholder.outerHTML;
- }
- };
- Slim.prototype.valueDiv = function (optionObj) {
- var _this = this;
- var value = document.createElement('div');
- value.classList.add(this.main.config.value);
- value.dataset.id = optionObj.id;
- var text = document.createElement('span');
- text.classList.add(this.main.config.valueText);
- text.innerHTML = (optionObj.innerHTML && this.main.config.valuesUseText !== true ? optionObj.innerHTML : optionObj.text);
- value.appendChild(text);
- if (!optionObj.mandatory) {
- var deleteSpan = document.createElement('span');
- deleteSpan.classList.add(this.main.config.valueDelete);
- deleteSpan.innerHTML = this.main.config.deselectLabel;
- deleteSpan.onclick = function (e) {
- e.preventDefault();
- e.stopPropagation();
- var shouldUpdate = false;
- if (!_this.main.beforeOnChange) {
- shouldUpdate = true;
- }
- if (_this.main.beforeOnChange) {
- var selected = _this.main.data.getSelected();
- var currentValues = JSON.parse(JSON.stringify(selected));
- for (var i = 0; i < currentValues.length; i++) {
- if (currentValues[i].id === optionObj.id) {
- currentValues.splice(i, 1);
- }
- }
- var beforeOnchange = _this.main.beforeOnChange(currentValues);
- if (beforeOnchange !== false) {
- shouldUpdate = true;
- }
- }
- if (shouldUpdate) {
- _this.main.data.removeFromSelected(optionObj.id, 'id');
- _this.main.render();
- _this.main.select.setValue();
- _this.main.data.onDataChange();
- }
- };
- value.appendChild(deleteSpan);
- }
- return value;
- };
- Slim.prototype.contentDiv = function () {
- var container = document.createElement('div');
- container.classList.add(this.main.config.content);
- return container;
- };
- Slim.prototype.searchDiv = function () {
- var _this = this;
- var container = document.createElement('div');
- var input = document.createElement('input');
- var addable = document.createElement('div');
- container.classList.add(this.main.config.search);
- var searchReturn = {
- container: container,
- input: input
- };
- if (!this.main.config.showSearch) {
- container.classList.add(this.main.config.hide);
- input.readOnly = true;
- }
- input.type = 'search';
- input.placeholder = this.main.config.searchPlaceholder;
- input.tabIndex = 0;
- input.setAttribute('aria-label', this.main.config.searchPlaceholder);
- input.setAttribute('autocapitalize', 'off');
- input.setAttribute('autocomplete', 'off');
- input.setAttribute('autocorrect', 'off');
- input.onclick = function (e) {
- setTimeout(function () {
- var target = e.target;
- if (target.value === '') {
- _this.main.search('');
- }
- }, 10);
- };
- input.onkeydown = function (e) {
- if (e.key === 'ArrowUp') {
- _this.main.open();
- _this.highlightUp();
- e.preventDefault();
- }
- else if (e.key === 'ArrowDown') {
- _this.main.open();
- _this.highlightDown();
- e.preventDefault();
- }
- else if (e.key === 'Tab') {
- if (!_this.main.data.contentOpen) {
- setTimeout(function () { _this.main.close(); }, _this.main.config.timeoutDelay);
- }
- else {
- _this.main.close();
- }
- }
- else if (e.key === 'Enter') {
- e.preventDefault();
- }
- };
- input.onkeyup = function (e) {
- var target = e.target;
- if (e.key === 'Enter') {
- if (_this.main.addable && e.ctrlKey) {
- addable.click();
- e.preventDefault();
- e.stopPropagation();
- return;
- }
- var highlighted = _this.list.querySelector('.' + _this.main.config.highlighted);
- if (highlighted) {
- highlighted.click();
- }
- }
- else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
- }
- else if (e.key === 'Escape') {
- _this.main.close();
- }
- else {
- if (_this.main.config.showSearch && _this.main.data.contentOpen) {
- _this.main.search(target.value);
- }
- else {
- input.value = '';
- }
- }
- e.preventDefault();
- e.stopPropagation();
- };
- input.onfocus = function () { _this.main.open(); };
- container.appendChild(input);
- if (this.main.addable) {
- addable.classList.add(this.main.config.addable);
- addable.innerHTML = '+';
- addable.onclick = function (e) {
- if (_this.main.addable) {
- e.preventDefault();
- e.stopPropagation();
- var inputValue = _this.search.input.value;
- if (inputValue.trim() === '') {
- _this.search.input.focus();
- return;
- }
- var addableValue = _this.main.addable(inputValue);
- var addableValueStr_1 = '';
- if (!addableValue) {
- return;
- }
- if (typeof addableValue === 'object') {
- var validValue = data_1.validateOption(addableValue);
- if (validValue) {
- _this.main.addData(addableValue);
- addableValueStr_1 = (addableValue.value ? addableValue.value : addableValue.text);
- }
- }
- else {
- _this.main.addData(_this.main.data.newOption({
- text: addableValue,
- value: addableValue
- }));
- addableValueStr_1 = addableValue;
- }
- _this.main.search('');
- setTimeout(function () {
- _this.main.set(addableValueStr_1, 'value', false, false);
- }, 100);
- if (_this.main.config.closeOnSelect) {
- setTimeout(function () {
- _this.main.close();
- }, 100);
- }
- }
- };
- container.appendChild(addable);
- searchReturn.addable = addable;
- }
- return searchReturn;
- };
- Slim.prototype.highlightUp = function () {
- var highlighted = this.list.querySelector('.' + this.main.config.highlighted);
- var prev = null;
- if (highlighted) {
- prev = highlighted.previousSibling;
- while (prev !== null) {
- if (prev.classList.contains(this.main.config.disabled)) {
- prev = prev.previousSibling;
- continue;
- }
- else {
- break;
- }
- }
- }
- else {
- var allOptions = this.list.querySelectorAll('.' + this.main.config.option + ':not(.' + this.main.config.disabled + ')');
- prev = allOptions[allOptions.length - 1];
- }
- if (prev && prev.classList.contains(this.main.config.optgroupLabel)) {
- prev = null;
- }
- if (prev === null) {
- var parent_1 = highlighted.parentNode;
- if (parent_1.classList.contains(this.main.config.optgroup)) {
- if (parent_1.previousSibling) {
- var prevNodes = parent_1.previousSibling.querySelectorAll('.' + this.main.config.option + ':not(.' + this.main.config.disabled + ')');
- if (prevNodes.length) {
- prev = prevNodes[prevNodes.length - 1];
- }
- }
- }
- }
- if (prev) {
- if (highlighted) {
- highlighted.classList.remove(this.main.config.highlighted);
- }
- prev.classList.add(this.main.config.highlighted);
- helper_1.ensureElementInView(this.list, prev);
- }
- };
- Slim.prototype.highlightDown = function () {
- var highlighted = this.list.querySelector('.' + this.main.config.highlighted);
- var next = null;
- if (highlighted) {
- next = highlighted.nextSibling;
- while (next !== null) {
- if (next.classList.contains(this.main.config.disabled)) {
- next = next.nextSibling;
- continue;
- }
- else {
- break;
- }
- }
- }
- else {
- next = this.list.querySelector('.' + this.main.config.option + ':not(.' + this.main.config.disabled + ')');
- }
- if (next === null && highlighted !== null) {
- var parent_2 = highlighted.parentNode;
- if (parent_2.classList.contains(this.main.config.optgroup)) {
- if (parent_2.nextSibling) {
- var sibling = parent_2.nextSibling;
- next = sibling.querySelector('.' + this.main.config.option + ':not(.' + this.main.config.disabled + ')');
- }
- }
- }
- if (next) {
- if (highlighted) {
- highlighted.classList.remove(this.main.config.highlighted);
- }
- next.classList.add(this.main.config.highlighted);
- helper_1.ensureElementInView(this.list, next);
- }
- };
- Slim.prototype.listDiv = function () {
- var list = document.createElement('div');
- list.classList.add(this.main.config.list);
- return list;
- };
- Slim.prototype.options = function (content) {
- if (content === void 0) { content = ''; }
- var data = this.main.data.filtered || this.main.data.data;
- this.list.innerHTML = '';
- if (content !== '') {
- var searching = document.createElement('div');
- searching.classList.add(this.main.config.option);
- searching.classList.add(this.main.config.disabled);
- searching.innerHTML = content;
- this.list.appendChild(searching);
- return;
- }
- if (this.main.config.isAjax && this.main.config.isSearching) {
- var searching = document.createElement('div');
- searching.classList.add(this.main.config.option);
- searching.classList.add(this.main.config.disabled);
- searching.innerHTML = this.main.config.searchingText;
- this.list.appendChild(searching);
- return;
- }
- if (data.length === 0) {
- var noResults = document.createElement('div');
- noResults.classList.add(this.main.config.option);
- noResults.classList.add(this.main.config.disabled);
- noResults.innerHTML = this.main.config.searchText;
- this.list.appendChild(noResults);
- return;
- }
- var _loop_1 = function (d) {
- if (d.hasOwnProperty('label')) {
- var item = d;
- var optgroupEl_1 = document.createElement('div');
- optgroupEl_1.classList.add(this_1.main.config.optgroup);
- var optgroupLabel = document.createElement('div');
- optgroupLabel.classList.add(this_1.main.config.optgroupLabel);
- if (this_1.main.config.selectByGroup && this_1.main.config.isMultiple) {
- optgroupLabel.classList.add(this_1.main.config.optgroupLabelSelectable);
- }
- optgroupLabel.innerHTML = item.label;
- optgroupEl_1.appendChild(optgroupLabel);
- var options = item.options;
- if (options) {
- for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
- var o = options_1[_i];
- optgroupEl_1.appendChild(this_1.option(o));
- }
- if (this_1.main.config.selectByGroup && this_1.main.config.isMultiple) {
- var master_1 = this_1;
- optgroupLabel.addEventListener('click', function (e) {
- e.preventDefault();
- e.stopPropagation();
- for (var _i = 0, _a = optgroupEl_1.children; _i < _a.length; _i++) {
- var childEl = _a[_i];
- if (childEl.className.indexOf(master_1.main.config.option) !== -1) {
- childEl.click();
- }
- }
- });
- }
- }
- this_1.list.appendChild(optgroupEl_1);
- }
- else {
- this_1.list.appendChild(this_1.option(d));
- }
- };
- var this_1 = this;
- for (var _i = 0, data_2 = data; _i < data_2.length; _i++) {
- var d = data_2[_i];
- _loop_1(d);
- }
- };
- Slim.prototype.option = function (data) {
- if (data.placeholder) {
- var placeholder = document.createElement('div');
- placeholder.classList.add(this.main.config.option);
- placeholder.classList.add(this.main.config.hide);
- return placeholder;
- }
- var optionEl = document.createElement('div');
- optionEl.classList.add(this.main.config.option);
- if (data["class"]) {
- data["class"].split(' ').forEach(function (dataClass) {
- optionEl.classList.add(dataClass);
- });
- }
- if (data.style) {
- optionEl.style.cssText = data.style;
- }
- var selected = this.main.data.getSelected();
- optionEl.dataset.id = data.id;
- if (this.main.config.searchHighlight && this.main.slim && data.innerHTML && this.main.slim.search.input.value.trim() !== '') {
- optionEl.innerHTML = helper_1.highlight(data.innerHTML, this.main.slim.search.input.value, this.main.config.searchHighlighter);
- }
- else if (data.innerHTML) {
- optionEl.innerHTML = data.innerHTML;
- }
- if (this.main.config.showOptionTooltips && optionEl.textContent) {
- optionEl.setAttribute('title', optionEl.textContent);
- }
- var master = this;
- optionEl.addEventListener('click', function (e) {
- e.preventDefault();
- e.stopPropagation();
- var element = this;
- var elementID = element.dataset.id;
- if (data.selected === true && master.main.config.allowDeselectOption) {
- var shouldUpdate = false;
- if (!master.main.beforeOnChange || !master.main.config.isMultiple) {
- shouldUpdate = true;
- }
- if (master.main.beforeOnChange && master.main.config.isMultiple) {
- var selectedValues = master.main.data.getSelected();
- var currentValues = JSON.parse(JSON.stringify(selectedValues));
- for (var i = 0; i < currentValues.length; i++) {
- if (currentValues[i].id === elementID) {
- currentValues.splice(i, 1);
- }
- }
- var beforeOnchange = master.main.beforeOnChange(currentValues);
- if (beforeOnchange !== false) {
- shouldUpdate = true;
- }
- }
- if (shouldUpdate) {
- if (master.main.config.isMultiple) {
- master.main.data.removeFromSelected(elementID, 'id');
- master.main.render();
- master.main.select.setValue();
- master.main.data.onDataChange();
- }
- else {
- master.main.set('');
- }
- }
- }
- else {
- if (data.disabled || data.selected) {
- return;
- }
- if (master.main.config.limit && Array.isArray(selected) && master.main.config.limit <= selected.length) {
- return;
- }
- if (master.main.beforeOnChange) {
- var value = void 0;
- var objectInfo = JSON.parse(JSON.stringify(master.main.data.getObjectFromData(elementID)));
- objectInfo.selected = true;
- if (master.main.config.isMultiple) {
- value = JSON.parse(JSON.stringify(selected));
- value.push(objectInfo);
- }
- else {
- value = JSON.parse(JSON.stringify(objectInfo));
- }
- var beforeOnchange = master.main.beforeOnChange(value);
- if (beforeOnchange !== false) {
- master.main.set(elementID, 'id', master.main.config.closeOnSelect);
- }
- }
- else {
- master.main.set(elementID, 'id', master.main.config.closeOnSelect);
- }
- }
- });
- var isSelected = selected && helper_1.isValueInArrayOfObjects(selected, 'id', data.id);
- if (data.disabled || isSelected) {
- optionEl.onclick = null;
- if (!master.main.config.allowDeselectOption) {
- optionEl.classList.add(this.main.config.disabled);
- }
- if (master.main.config.hideSelectedOption) {
- optionEl.classList.add(this.main.config.hide);
- }
- }
- if (isSelected) {
- optionEl.classList.add(this.main.config.optionSelected);
- }
- else {
- optionEl.classList.remove(this.main.config.optionSelected);
- }
- return optionEl;
- };
- return Slim;
-}());
-exports.Slim = Slim;
-
-
-/***/ })
-/******/ ])["default"];
-});
\ No newline at end of file
+++ /dev/null
-.ss-main{position:relative;display:inline-block;user-select:none;color:#666;width:100%}.ss-main .ss-single-selected{display:flex;cursor:pointer;width:100%;height:30px;padding:6px;border:1px solid #dcdee2;border-radius:4px;background-color:#fff;outline:0;box-sizing:border-box;transition:background-color .2s}.ss-main .ss-single-selected.ss-disabled{background-color:#dcdee2;cursor:not-allowed}.ss-main .ss-single-selected.ss-open-above{border-top-left-radius:0;border-top-right-radius:0}.ss-main .ss-single-selected.ss-open-below{border-bottom-left-radius:0;border-bottom-right-radius:0}.ss-main .ss-single-selected .placeholder{display:flex;flex:1 1 100%;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;width:calc(100% - 30px);line-height:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ss-main .ss-single-selected .placeholder *{display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:auto}.ss-main .ss-single-selected .placeholder .ss-disabled{color:#dedede}.ss-main .ss-single-selected .ss-deselect{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;margin:0 6px 0 6px;font-weight:700}.ss-main .ss-single-selected .ss-deselect.ss-hide{display:none}.ss-main .ss-single-selected .ss-arrow{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;margin:0 6px 0 6px}.ss-main .ss-single-selected .ss-arrow span{border:solid #666;border-width:0 2px 2px 0;display:inline-block;padding:3px;transition:transform .2s,margin .2s}.ss-main .ss-single-selected .ss-arrow span.arrow-up{transform:rotate(-135deg);margin:3px 0 0 0}.ss-main .ss-single-selected .ss-arrow span.arrow-down{transform:rotate(45deg);margin:-3px 0 0 0}.ss-main .ss-multi-selected{display:flex;flex-direction:row;cursor:pointer;min-height:30px;width:100%;padding:0 0 0 3px;border:1px solid #dcdee2;border-radius:4px;background-color:#fff;outline:0;box-sizing:border-box;transition:background-color .2s}.ss-main .ss-multi-selected.ss-disabled{background-color:#dcdee2;cursor:not-allowed}.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled{color:#666}.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete{cursor:not-allowed}.ss-main .ss-multi-selected.ss-open-above{border-top-left-radius:0;border-top-right-radius:0}.ss-main .ss-multi-selected.ss-open-below{border-bottom-left-radius:0;border-bottom-right-radius:0}.ss-main .ss-multi-selected .ss-values{display:flex;flex-wrap:wrap;justify-content:flex-start;flex:1 1 100%;width:calc(100% - 30px)}.ss-main .ss-multi-selected .ss-values .ss-disabled{display:flex;padding:4px 5px;margin:2px 0;line-height:1em;align-items:center;width:100%;color:#dedede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes scaleIn{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0);opacity:0}}.ss-main .ss-multi-selected .ss-values .ss-value{display:flex;user-select:none;align-items:center;font-size:12px;padding:3px 5px;margin:3px 5px 3px 0;color:#fff;background-color:#5897fb;border-radius:4px;animation-name:scaleIn;animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:both}.ss-main .ss-multi-selected .ss-values .ss-value.ss-out{animation-name:scaleOut;animation-duration:.2s;animation-timing-function:ease-out}.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete{margin:0 0 0 5px;cursor:pointer}.ss-main .ss-multi-selected .ss-add{display:flex;flex:0 1 3px;margin:9px 12px 0 5px}.ss-main .ss-multi-selected .ss-add .ss-plus{display:flex;justify-content:center;align-items:center;background:#666;position:relative;height:10px;width:2px;transition:transform .2s}.ss-main .ss-multi-selected .ss-add .ss-plus:after{background:#666;content:"";position:absolute;height:2px;width:10px;left:-4px;top:4px}.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross{transform:rotate(45deg)}.ss-content{position:absolute;width:100%;margin:-1px 0 0 0;box-sizing:border-box;border:solid 1px #dcdee2;z-index:1010;background-color:#fff;transform-origin:center top;transition:transform .2s,opacity .2s;opacity:0;transform:scaleY(0)}.ss-content.ss-open{display:block;opacity:1;transform:scaleY(1)}.ss-content .ss-search{display:flex;flex-direction:row;padding:8px 8px 6px 8px}.ss-content .ss-search.ss-hide{height:0;opacity:0;padding:0;margin:0}.ss-content .ss-search.ss-hide input{height:0;opacity:0;padding:0;margin:0}.ss-content .ss-search input{display:inline-flex;font-size:inherit;line-height:inherit;flex:1 1 auto;width:100%;min-width:0;height:30px;padding:6px 8px;margin:0;border:1px solid #dcdee2;border-radius:4px;background-color:#fff;outline:0;text-align:left;box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-appearance:textfield}.ss-content .ss-search input::placeholder{color:#8a8a8a;vertical-align:middle}.ss-content .ss-search input:focus{box-shadow:0 0 5px #5897fb}.ss-content .ss-search .ss-addable{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;font-size:22px;font-weight:700;flex:0 0 30px;height:30px;margin:0 0 0 8px;border:1px solid #dcdee2;border-radius:4px;box-sizing:border-box}.ss-content .ss-addable{padding-top:0}.ss-content .ss-list{max-height:200px;overflow-x:hidden;overflow-y:auto;text-align:left}.ss-content .ss-list .ss-optgroup .ss-optgroup-label{padding:6px 10px 6px 10px;font-weight:700}.ss-content .ss-list .ss-optgroup .ss-option{padding:6px 6px 6px 25px}.ss-content .ss-list .ss-optgroup-label-selectable{cursor:pointer}.ss-content .ss-list .ss-optgroup-label-selectable:hover{color:#fff;background-color:#5897fb}.ss-content .ss-list .ss-option{padding:6px 10px 6px 10px;cursor:pointer;user-select:none}.ss-content .ss-list .ss-option *{display:inline-block}.ss-content .ss-list .ss-option.ss-highlighted,.ss-content .ss-list .ss-option:hover{color:#fff;background-color:#5897fb}.ss-content .ss-list .ss-option.ss-disabled{cursor:not-allowed;color:#dedede;background-color:#fff}.ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected{color:#666;background-color:rgba(88,151,251,.1)}.ss-content .ss-list .ss-option.ss-hide{display:none}.ss-content .ss-list .ss-option .ss-search-highlight{background-color:#fffb8c}
\ No newline at end of file
+++ /dev/null
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SlimSelect=t():e.SlimSelect=t()}(window,function(){return s={},n.m=i=[function(e,t,i){"use strict";function s(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),i}var n;t.__esModule=!0,t.hasClassInTree=function(e,t){function s(e,t){return t&&e&&e.classList&&e.classList.contains(t)?e:null}return s(e,t)||function e(t,i){return t&&t!==document?s(t,i)?t:e(t.parentNode,i):null}(e,t)},t.ensureElementInView=function(e,t){var i=e.scrollTop+e.offsetTop,s=i+e.clientHeight,n=t.offsetTop,a=n+t.clientHeight;n<i?e.scrollTop-=i-n:s<a&&(e.scrollTop+=a-s)},t.putContent=function(e,t,i){var s=e.offsetHeight,n=e.getBoundingClientRect(),a=i?n.top:n.top-s,o=i?n.bottom:n.bottom+s;return a<=0?"below":o>=window.innerHeight?"above":i?t:"below"},t.debounce=function(n,a,o){var l;return void 0===a&&(a=100),void 0===o&&(o=!1),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=self,s=o&&!l;clearTimeout(l),l=setTimeout(function(){l=null,o||n.apply(i,e)},a),s&&n.apply(i,e)}},t.isValueInArrayOfObjects=function(e,t,i){if(!Array.isArray(e))return e[t]===i;for(var s=0,n=e;s<n.length;s++){var a=n[s];if(a&&a[t]&&a[t]===i)return!0}return!1},t.highlight=function(e,t,i){var s=e,n=new RegExp("("+t.trim()+")(?![^<]*>[^<>]*</)","i");if(!e.match(n))return e;var a=e.match(n).index,o=a+e.match(n)[0].toString().length,l=e.substring(a,o);return s=s.replace(n,'<mark class="'+i+'">'+l+"</mark>")},t.kebabCase=function(e){var t=e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,function(e){return"-"+e.toLowerCase()});return e[0]===e[0].toUpperCase()?t.substring(1):t},"function"!=typeof(n=window).CustomEvent&&(s.prototype=n.Event.prototype,n.CustomEvent=s)},function(e,t,i){"use strict";t.__esModule=!0;var s=(n.prototype.newOption=function(e){return{id:e.id?e.id:String(Math.floor(1e8*Math.random())),value:e.value?e.value:"",text:e.text?e.text:"",innerHTML:e.innerHTML?e.innerHTML:"",selected:!!e.selected&&e.selected,display:void 0===e.display||e.display,disabled:!!e.disabled&&e.disabled,placeholder:!!e.placeholder&&e.placeholder,class:e.class?e.class:void 0,data:e.data?e.data:{},mandatory:!!e.mandatory&&e.mandatory}},n.prototype.add=function(e){this.data.push({id:String(Math.floor(1e8*Math.random())),value:e.value,text:e.text,innerHTML:"",selected:!1,display:!0,disabled:!1,placeholder:!1,class:void 0,mandatory:e.mandatory,data:{}})},n.prototype.parseSelectData=function(){this.data=[];for(var e=0,t=this.main.select.element.childNodes;e<t.length;e++){var i=t[e];if("OPTGROUP"===i.nodeName){for(var s={label:i.label,options:[]},n=0,a=i.childNodes;n<a.length;n++){var o=a[n];if("OPTION"===o.nodeName){var l=this.pullOptionData(o);s.options.push(l),l.placeholder&&""!==l.text.trim()&&(this.main.config.placeholderText=l.text)}}this.data.push(s)}else"OPTION"===i.nodeName&&(l=this.pullOptionData(i),this.data.push(l),l.placeholder&&""!==l.text.trim()&&(this.main.config.placeholderText=l.text))}},n.prototype.pullOptionData=function(e){return{id:!!e.dataset&&e.dataset.id||String(Math.floor(1e8*Math.random())),value:e.value,text:e.text,innerHTML:e.innerHTML,selected:e.selected,disabled:e.disabled,placeholder:"true"===e.dataset.placeholder,class:e.className,style:e.style.cssText,data:e.dataset,mandatory:!!e.dataset&&"true"===e.dataset.mandatory}},n.prototype.setSelectedFromSelect=function(){if(this.main.config.isMultiple){for(var e=[],t=0,i=this.main.select.element.options;t<i.length;t++){var s=i[t];if(s.selected){var n=this.getObjectFromData(s.value,"value");n&&n.id&&e.push(n.id)}}this.setSelected(e,"id")}else{var a=this.main.select.element;if(-1!==a.selectedIndex){var o=a.options[a.selectedIndex].value;this.setSelected(o,"value")}}},n.prototype.setSelected=function(e,t){void 0===t&&(t="id");for(var i=0,s=this.data;i<s.length;i++){var n=s[i];if(n.hasOwnProperty("label")){if(n.hasOwnProperty("options")){var a=n.options;if(a)for(var o=0,l=a;o<l.length;o++){var r=l[o];r.placeholder||(r.selected=this.shouldBeSelected(r,e,t))}}}else n.selected=this.shouldBeSelected(n,e,t)}},n.prototype.shouldBeSelected=function(e,t,i){if(void 0===i&&(i="id"),Array.isArray(t))for(var s=0,n=t;s<n.length;s++){var a=n[s];if(i in e&&String(e[i])===String(a))return!0}else if(i in e&&String(e[i])===String(t))return!0;return!1},n.prototype.getSelected=function(){for(var e={text:"",placeholder:this.main.config.placeholderText},t=[],i=0,s=this.data;i<s.length;i++){var n=s[i];if(n.hasOwnProperty("label")){if(n.hasOwnProperty("options")){var a=n.options;if(a)for(var o=0,l=a;o<l.length;o++){var r=l[o];r.selected&&(this.main.config.isMultiple?t.push(r):e=r)}}}else n.selected&&(this.main.config.isMultiple?t.push(n):e=n)}return this.main.config.isMultiple?t:e},n.prototype.addToSelected=function(e,t){if(void 0===t&&(t="id"),this.main.config.isMultiple){var i=[],s=this.getSelected();if(Array.isArray(s))for(var n=0,a=s;n<a.length;n++){var o=a[n];i.push(o[t])}i.push(e),this.setSelected(i,t)}},n.prototype.removeFromSelected=function(e,t){if(void 0===t&&(t="id"),this.main.config.isMultiple){for(var i=[],s=0,n=this.getSelected();s<n.length;s++){var a=n[s];String(a[t])!==String(e)&&i.push(a[t])}this.setSelected(i,t)}},n.prototype.onDataChange=function(){this.main.onChange&&this.isOnChangeEnabled&&this.main.onChange(JSON.parse(JSON.stringify(this.getSelected())))},n.prototype.getObjectFromData=function(e,t){void 0===t&&(t="id");for(var i=0,s=this.data;i<s.length;i++){var n=s[i];if(t in n&&String(n[t])===String(e))return n;if(n.hasOwnProperty("options")&&n.options)for(var a=0,o=n.options;a<o.length;a++){var l=o[a];if(String(l[t])===String(e))return l}}return null},n.prototype.search=function(n){if(""!==(this.searchValue=n).trim()){var a=this.main.config.searchFilter,e=this.data.slice(0);n=n.trim();var t=e.map(function(e){if(e.hasOwnProperty("options")){var t=e,i=[];if(t.options&&(i=t.options.filter(function(e){return a(e,n)})),0!==i.length){var s=Object.assign({},t);return s.options=i,s}}return e.hasOwnProperty("text")&&a(e,n)?e:null});this.filtered=t.filter(function(e){return e})}else this.filtered=null},n);function n(e){this.contentOpen=!1,this.contentPosition="below",this.isOnChangeEnabled=!0,this.main=e.main,this.searchValue="",this.data=[],this.filtered=null,this.parseSelectData(),this.setSelectedFromSelect()}function r(e){return void 0!==e.text||(console.error("Data object option must have at least have a text value. Check object: "+JSON.stringify(e)),!1)}t.Data=s,t.validateData=function(e){if(!e)return console.error("Data must be an array of objects"),!1;for(var t=0,i=0,s=e;i<s.length;i++){var n=s[i];if(n.hasOwnProperty("label")){if(n.hasOwnProperty("options")){var a=n.options;if(a)for(var o=0,l=a;o<l.length;o++){r(l[o])||t++}}}else r(n)||t++}return 0===t},t.validateOption=r},function(e,t,i){"use strict";t.__esModule=!0;var s=i(3),n=i(4),a=i(5),o=i(1),l=i(0),r=(c.prototype.validate=function(e){var t="string"==typeof e.select?document.querySelector(e.select):e.select;if(!t)throw new Error("Could not find select element");if("SELECT"!==t.tagName)throw new Error("Element isnt of type select");return t},c.prototype.selected=function(){if(this.config.isMultiple){for(var e=[],t=0,i=n=this.data.getSelected();t<i.length;t++){var s=i[t];e.push(s.value)}return e}var n;return(n=this.data.getSelected())?n.value:""},c.prototype.set=function(e,t,i,s){void 0===t&&(t="value"),void 0===i&&(i=!0),void 0===s&&(s=!0),this.config.isMultiple&&!Array.isArray(e)?this.data.addToSelected(e,t):this.data.setSelected(e,t),this.select.setValue(),this.data.onDataChange(),this.render(),i&&this.close()},c.prototype.setSelected=function(e,t,i,s){void 0===t&&(t="value"),void 0===i&&(i=!0),void 0===s&&(s=!0),this.set(e,t,i,s)},c.prototype.setData=function(e){if(o.validateData(e)){var t=JSON.parse(JSON.stringify(e)),i=this.data.getSelected();if(this.config.isAjax&&i)if(this.config.isMultiple)for(var s=0,n=i.reverse();s<n.length;s++){var a=n[s];t.unshift(a)}else t.unshift(this.data.getSelected()),t.unshift({text:"",placeholder:!0});this.select.create(t),this.data.parseSelectData(),this.data.setSelectedFromSelect()}else console.error("Validation problem on: #"+this.select.element.id)},c.prototype.addData=function(e){o.validateData([e])?(this.data.add(this.data.newOption(e)),this.select.create(this.data.data),this.data.parseSelectData(),this.data.setSelectedFromSelect(),this.render()):console.error("Validation problem on: #"+this.select.element.id)},c.prototype.open=function(){var e=this;if(this.config.isEnabled&&!this.data.contentOpen){if(this.beforeOpen&&this.beforeOpen(),this.config.isMultiple&&this.slim.multiSelected?this.slim.multiSelected.plus.classList.add("ss-cross"):this.slim.singleSelected&&(this.slim.singleSelected.arrowIcon.arrow.classList.remove("arrow-down"),this.slim.singleSelected.arrowIcon.arrow.classList.add("arrow-up")),this.slim[this.config.isMultiple?"multiSelected":"singleSelected"].container.classList.add("above"===this.data.contentPosition?this.config.openAbove:this.config.openBelow),this.config.addToBody){var t=this.slim.container.getBoundingClientRect();this.slim.content.style.top=t.top+t.height+window.scrollY+"px",this.slim.content.style.left=t.left+window.scrollX+"px",this.slim.content.style.width=t.width+"px"}if(this.slim.content.classList.add(this.config.open),"up"===this.config.showContent.toLowerCase()||"down"!==this.config.showContent.toLowerCase()&&"above"===l.putContent(this.slim.content,this.data.contentPosition,this.data.contentOpen)?this.moveContentAbove():this.moveContentBelow(),!this.config.isMultiple){var i=this.data.getSelected();if(i){var s=i.id,n=this.slim.list.querySelector('[data-id="'+s+'"]');n&&l.ensureElementInView(this.slim.list,n)}}setTimeout(function(){e.data.contentOpen=!0,e.config.searchFocus&&e.slim.search.input.focus(),e.afterOpen&&e.afterOpen()},this.config.timeoutDelay)}},c.prototype.close=function(){var e=this;this.data.contentOpen&&(this.beforeClose&&this.beforeClose(),this.config.isMultiple&&this.slim.multiSelected?(this.slim.multiSelected.container.classList.remove(this.config.openAbove),this.slim.multiSelected.container.classList.remove(this.config.openBelow),this.slim.multiSelected.plus.classList.remove("ss-cross")):this.slim.singleSelected&&(this.slim.singleSelected.container.classList.remove(this.config.openAbove),this.slim.singleSelected.container.classList.remove(this.config.openBelow),this.slim.singleSelected.arrowIcon.arrow.classList.add("arrow-down"),this.slim.singleSelected.arrowIcon.arrow.classList.remove("arrow-up")),this.slim.content.classList.remove(this.config.open),this.data.contentOpen=!1,this.search(""),setTimeout(function(){e.slim.content.removeAttribute("style"),e.data.contentPosition="below",e.config.isMultiple&&e.slim.multiSelected?(e.slim.multiSelected.container.classList.remove(e.config.openAbove),e.slim.multiSelected.container.classList.remove(e.config.openBelow)):e.slim.singleSelected&&(e.slim.singleSelected.container.classList.remove(e.config.openAbove),e.slim.singleSelected.container.classList.remove(e.config.openBelow)),e.slim.search.input.blur(),e.afterClose&&e.afterClose()},this.config.timeoutDelay))},c.prototype.moveContentAbove=function(){var e=0;this.config.isMultiple&&this.slim.multiSelected?e=this.slim.multiSelected.container.offsetHeight:this.slim.singleSelected&&(e=this.slim.singleSelected.container.offsetHeight);var t=e+this.slim.content.offsetHeight-1;this.slim.content.style.margin="-"+t+"px 0 0 0",this.slim.content.style.height=t-e+1+"px",this.slim.content.style.transformOrigin="center bottom",this.data.contentPosition="above",this.config.isMultiple&&this.slim.multiSelected?(this.slim.multiSelected.container.classList.remove(this.config.openBelow),this.slim.multiSelected.container.classList.add(this.config.openAbove)):this.slim.singleSelected&&(this.slim.singleSelected.container.classList.remove(this.config.openBelow),this.slim.singleSelected.container.classList.add(this.config.openAbove))},c.prototype.moveContentBelow=function(){this.data.contentPosition="below",this.config.isMultiple&&this.slim.multiSelected?(this.slim.multiSelected.container.classList.remove(this.config.openAbove),this.slim.multiSelected.container.classList.add(this.config.openBelow)):this.slim.singleSelected&&(this.slim.singleSelected.container.classList.remove(this.config.openAbove),this.slim.singleSelected.container.classList.add(this.config.openBelow))},c.prototype.enable=function(){this.config.isEnabled=!0,this.config.isMultiple&&this.slim.multiSelected?this.slim.multiSelected.container.classList.remove(this.config.disabled):this.slim.singleSelected&&this.slim.singleSelected.container.classList.remove(this.config.disabled),this.select.triggerMutationObserver=!1,this.select.element.disabled=!1,this.slim.search.input.disabled=!1,this.select.triggerMutationObserver=!0},c.prototype.disable=function(){this.config.isEnabled=!1,this.config.isMultiple&&this.slim.multiSelected?this.slim.multiSelected.container.classList.add(this.config.disabled):this.slim.singleSelected&&this.slim.singleSelected.container.classList.add(this.config.disabled),this.select.triggerMutationObserver=!1,this.select.element.disabled=!0,this.slim.search.input.disabled=!0,this.select.triggerMutationObserver=!0},c.prototype.search=function(t){if(this.data.searchValue!==t)if(this.slim.search.input.value=t,this.config.isAjax){var i=this;this.config.isSearching=!0,this.render(),this.ajax&&this.ajax(t,function(e){i.config.isSearching=!1,Array.isArray(e)?(e.unshift({text:"",placeholder:!0}),i.setData(e),i.data.search(t),i.render()):"string"==typeof e?i.slim.options(e):i.render()})}else this.data.search(t),this.render()},c.prototype.setSearchText=function(e){this.config.searchText=e},c.prototype.render=function(){this.config.isMultiple?this.slim.values():(this.slim.placeholder(),this.slim.deselect()),this.slim.options()},c.prototype.destroy=function(e){void 0===e&&(e=null);var t=e?document.querySelector("."+e+".ss-main"):this.slim.container,i=e?document.querySelector("[data-ssid="+e+"]"):this.select.element;if(t&&i&&(i.style.display="",delete i.dataset.ssid,i.slim=null,t.parentElement&&t.parentElement.removeChild(t),this.config.addToBody)){var s=e?document.querySelector("."+e+".ss-content"):this.slim.content;if(!s)return;document.body.removeChild(s)}},c);function c(e){var t=this;this.ajax=null,this.addable=null,this.beforeOnChange=null,this.onChange=null,this.beforeOpen=null,this.afterOpen=null,this.beforeClose=null,this.afterClose=null;var i=this.validate(e);i.dataset.ssid&&this.destroy(i.dataset.ssid),e.ajax&&(this.ajax=e.ajax),e.addable&&(this.addable=e.addable),this.config=new s.Config({select:i,isAjax:!!e.ajax,showSearch:e.showSearch,searchPlaceholder:e.searchPlaceholder,searchText:e.searchText,searchingText:e.searchingText,searchFocus:e.searchFocus,searchHighlight:e.searchHighlight,searchFilter:e.searchFilter,closeOnSelect:e.closeOnSelect,showContent:e.showContent,placeholderText:e.placeholder,allowDeselect:e.allowDeselect,allowDeselectOption:e.allowDeselectOption,hideSelectedOption:e.hideSelectedOption,deselectLabel:e.deselectLabel,isEnabled:e.isEnabled,valuesUseText:e.valuesUseText,showOptionTooltips:e.showOptionTooltips,selectByGroup:e.selectByGroup,limit:e.limit,timeoutDelay:e.timeoutDelay,addToBody:e.addToBody}),this.select=new n.Select({select:i,main:this}),this.data=new o.Data({main:this}),this.slim=new a.Slim({main:this}),this.select.element.parentNode&&this.select.element.parentNode.insertBefore(this.slim.container,this.select.element.nextSibling),e.data?this.setData(e.data):this.render(),document.addEventListener("click",function(e){e.target&&!l.hasClassInTree(e.target,t.config.id)&&t.close()}),"auto"===this.config.showContent&&window.addEventListener("scroll",l.debounce(function(e){t.data.contentOpen&&("above"===l.putContent(t.slim.content,t.data.contentPosition,t.data.contentOpen)?t.moveContentAbove():t.moveContentBelow())}),!1),e.beforeOnChange&&(this.beforeOnChange=e.beforeOnChange),e.onChange&&(this.onChange=e.onChange),e.beforeOpen&&(this.beforeOpen=e.beforeOpen),e.afterOpen&&(this.afterOpen=e.afterOpen),e.beforeClose&&(this.beforeClose=e.beforeClose),e.afterClose&&(this.afterClose=e.afterClose),this.config.isEnabled||this.disable()}t.default=r},function(e,t,i){"use strict";t.__esModule=!0;var s=(n.prototype.searchFilter=function(e,t){return-1!==e.text.toLowerCase().indexOf(t.toLowerCase())},n);function n(e){this.id="",this.isMultiple=!1,this.isAjax=!1,this.isSearching=!1,this.showSearch=!0,this.searchFocus=!0,this.searchHighlight=!1,this.closeOnSelect=!0,this.showContent="auto",this.searchPlaceholder="Search",this.searchText="No Results",this.searchingText="Searching...",this.placeholderText="Select Value",this.allowDeselect=!1,this.allowDeselectOption=!1,this.hideSelectedOption=!1,this.deselectLabel="x",this.isEnabled=!0,this.valuesUseText=!1,this.showOptionTooltips=!1,this.selectByGroup=!1,this.limit=0,this.timeoutDelay=200,this.addToBody=!1,this.main="ss-main",this.singleSelected="ss-single-selected",this.arrow="ss-arrow",this.multiSelected="ss-multi-selected",this.add="ss-add",this.plus="ss-plus",this.values="ss-values",this.value="ss-value",this.valueText="ss-value-text",this.valueDelete="ss-value-delete",this.content="ss-content",this.open="ss-open",this.openAbove="ss-open-above",this.openBelow="ss-open-below",this.search="ss-search",this.searchHighlighter="ss-search-highlight",this.addable="ss-addable",this.list="ss-list",this.optgroup="ss-optgroup",this.optgroupLabel="ss-optgroup-label",this.optgroupLabelSelectable="ss-optgroup-label-selectable",this.option="ss-option",this.optionSelected="ss-option-selected",this.highlighted="ss-highlighted",this.disabled="ss-disabled",this.hide="ss-hide",this.id="ss-"+Math.floor(1e5*Math.random()),this.style=e.select.style.cssText,this.class=e.select.className.split(" "),this.isMultiple=e.select.multiple,this.isAjax=e.isAjax,this.showSearch=!1!==e.showSearch,this.searchFocus=!1!==e.searchFocus,this.searchHighlight=!0===e.searchHighlight,this.closeOnSelect=!1!==e.closeOnSelect,e.showContent&&(this.showContent=e.showContent),this.isEnabled=!1!==e.isEnabled,e.searchPlaceholder&&(this.searchPlaceholder=e.searchPlaceholder),e.searchText&&(this.searchText=e.searchText),e.searchingText&&(this.searchingText=e.searchingText),e.placeholderText&&(this.placeholderText=e.placeholderText),this.allowDeselect=!0===e.allowDeselect,this.allowDeselectOption=!0===e.allowDeselectOption,this.hideSelectedOption=!0===e.hideSelectedOption,e.deselectLabel&&(this.deselectLabel=e.deselectLabel),e.valuesUseText&&(this.valuesUseText=e.valuesUseText),e.showOptionTooltips&&(this.showOptionTooltips=e.showOptionTooltips),e.selectByGroup&&(this.selectByGroup=e.selectByGroup),e.limit&&(this.limit=e.limit),e.searchFilter&&(this.searchFilter=e.searchFilter),null!=e.timeoutDelay&&(this.timeoutDelay=e.timeoutDelay),this.addToBody=!0===e.addToBody}t.Config=s},function(e,t,i){"use strict";t.__esModule=!0;var s=i(0),n=(a.prototype.setValue=function(){if(this.main.data.getSelected()){if(this.main.config.isMultiple)for(var e=this.main.data.getSelected(),t=0,i=this.element.options;t<i.length;t++){var s=i[t];s.selected=!1;for(var n=0,a=e;n<a.length;n++)a[n].value===s.value&&(s.selected=!0)}else e=this.main.data.getSelected(),this.element.value=e?e.value:"";this.main.data.isOnChangeEnabled=!1,this.element.dispatchEvent(new CustomEvent("change",{bubbles:!0})),this.main.data.isOnChangeEnabled=!0}},a.prototype.addAttributes=function(){this.element.tabIndex=-1,this.element.style.display="none",this.element.dataset.ssid=this.main.config.id},a.prototype.addEventListeners=function(){var t=this;this.element.addEventListener("change",function(e){t.main.data.setSelectedFromSelect(),t.main.render()})},a.prototype.addMutationObserver=function(){var t=this;this.main.config.isAjax||(this.mutationObserver=new MutationObserver(function(e){t.triggerMutationObserver&&(t.main.data.parseSelectData(),t.main.data.setSelectedFromSelect(),t.main.render(),e.forEach(function(e){"class"===e.attributeName&&t.main.slim.updateContainerDivClass(t.main.slim.container)}))}),this.observeMutationObserver())},a.prototype.observeMutationObserver=function(){this.mutationObserver&&this.mutationObserver.observe(this.element,{attributes:!0,childList:!0,characterData:!0})},a.prototype.disconnectMutationObserver=function(){this.mutationObserver&&this.mutationObserver.disconnect()},a.prototype.create=function(e){this.element.innerHTML="";for(var t=0,i=e;t<i.length;t++){var s=i[t];if(s.hasOwnProperty("options")){var n=s,a=document.createElement("optgroup");if(a.label=n.label,n.options)for(var o=0,l=n.options;o<l.length;o++){var r=l[o];a.appendChild(this.createOption(r))}this.element.appendChild(a)}else this.element.appendChild(this.createOption(s))}},a.prototype.createOption=function(t){var i=document.createElement("option");return i.value=""!==t.value?t.value:t.text,i.innerHTML=t.innerHTML||t.text,t.selected&&(i.selected=t.selected),!1===t.display&&(i.style.display="none"),t.disabled&&(i.disabled=!0),t.placeholder&&i.setAttribute("data-placeholder","true"),t.mandatory&&i.setAttribute("data-mandatory","true"),t.class&&t.class.split(" ").forEach(function(e){i.classList.add(e)}),t.data&&"object"==typeof t.data&&Object.keys(t.data).forEach(function(e){i.setAttribute("data-"+s.kebabCase(e),t.data[e])}),i},a);function a(e){this.triggerMutationObserver=!0,this.element=e.select,this.main=e.main,this.element.disabled&&(this.main.config.isEnabled=!1),this.addAttributes(),this.addEventListeners(),this.mutationObserver=null,this.addMutationObserver(),this.element.slim=e.main}t.Select=n},function(e,t,i){"use strict";t.__esModule=!0;var a=i(0),o=i(1),s=(n.prototype.containerDiv=function(){var e=document.createElement("div");return e.style.cssText=this.main.config.style,this.updateContainerDivClass(e),e},n.prototype.updateContainerDivClass=function(e){this.main.config.class=this.main.select.element.className.split(" "),e.className="",e.classList.add(this.main.config.id),e.classList.add(this.main.config.main);for(var t=0,i=this.main.config.class;t<i.length;t++){var s=i[t];""!==s.trim()&&e.classList.add(s)}},n.prototype.singleSelectedDiv=function(){var t=this,e=document.createElement("div");e.classList.add(this.main.config.singleSelected);var i=document.createElement("span");i.classList.add("placeholder"),e.appendChild(i);var s=document.createElement("span");s.innerHTML=this.main.config.deselectLabel,s.classList.add("ss-deselect"),s.onclick=function(e){e.stopPropagation(),t.main.config.isEnabled&&t.main.set("")},e.appendChild(s);var n=document.createElement("span");n.classList.add(this.main.config.arrow);var a=document.createElement("span");return a.classList.add("arrow-down"),n.appendChild(a),e.appendChild(n),e.onclick=function(){t.main.config.isEnabled&&(t.main.data.contentOpen?t.main.close():t.main.open())},{container:e,placeholder:i,deselect:s,arrowIcon:{container:n,arrow:a}}},n.prototype.placeholder=function(){var e=this.main.data.getSelected();if(null===e||e&&e.placeholder){var t=document.createElement("span");t.classList.add(this.main.config.disabled),t.innerHTML=this.main.config.placeholderText,this.singleSelected&&(this.singleSelected.placeholder.innerHTML=t.outerHTML)}else{var i="";e&&(i=e.innerHTML&&!0!==this.main.config.valuesUseText?e.innerHTML:e.text),this.singleSelected&&(this.singleSelected.placeholder.innerHTML=e?i:"")}},n.prototype.deselect=function(){if(this.singleSelected){if(!this.main.config.allowDeselect)return void this.singleSelected.deselect.classList.add("ss-hide");""===this.main.selected()?this.singleSelected.deselect.classList.add("ss-hide"):this.singleSelected.deselect.classList.remove("ss-hide")}},n.prototype.multiSelectedDiv=function(){var t=this,e=document.createElement("div");e.classList.add(this.main.config.multiSelected);var i=document.createElement("div");i.classList.add(this.main.config.values),e.appendChild(i);var s=document.createElement("div");s.classList.add(this.main.config.add);var n=document.createElement("span");return n.classList.add(this.main.config.plus),n.onclick=function(e){t.main.data.contentOpen&&(t.main.close(),e.stopPropagation())},s.appendChild(n),e.appendChild(s),e.onclick=function(e){t.main.config.isEnabled&&(e.target.classList.contains(t.main.config.valueDelete)||(t.main.data.contentOpen?t.main.close():t.main.open()))},{container:e,values:i,add:s,plus:n}},n.prototype.values=function(){if(this.multiSelected){for(var e,t=this.multiSelected.values.childNodes,i=this.main.data.getSelected(),s=[],n=0,a=t;n<a.length;n++){var o=a[n];e=!0;for(var l=0,r=i;l<r.length;l++){var c=r[l];String(c.id)===String(o.dataset.id)&&(e=!1)}e&&s.push(o)}for(var d=0,h=s;d<h.length;d++){var u=h[d];u.classList.add("ss-out"),this.multiSelected.values.removeChild(u)}for(t=this.multiSelected.values.childNodes,c=0;c<i.length;c++){e=!1;for(var p=0,m=t;p<m.length;p++)o=m[p],String(i[c].id)===String(o.dataset.id)&&(e=!0);e||(0!==t.length&&HTMLElement.prototype.insertAdjacentElement?0===c?this.multiSelected.values.insertBefore(this.valueDiv(i[c]),t[c]):t[c-1].insertAdjacentElement("afterend",this.valueDiv(i[c])):this.multiSelected.values.appendChild(this.valueDiv(i[c])))}if(0===i.length){var f=document.createElement("span");f.classList.add(this.main.config.disabled),f.innerHTML=this.main.config.placeholderText,this.multiSelected.values.innerHTML=f.outerHTML}}},n.prototype.valueDiv=function(a){var o=this,e=document.createElement("div");e.classList.add(this.main.config.value),e.dataset.id=a.id;var t=document.createElement("span");if(t.classList.add(this.main.config.valueText),t.innerHTML=a.innerHTML&&!0!==this.main.config.valuesUseText?a.innerHTML:a.text,e.appendChild(t),!a.mandatory){var i=document.createElement("span");i.classList.add(this.main.config.valueDelete),i.innerHTML=this.main.config.deselectLabel,i.onclick=function(e){e.preventDefault(),e.stopPropagation();var t=!1;if(o.main.beforeOnChange||(t=!0),o.main.beforeOnChange){for(var i=o.main.data.getSelected(),s=JSON.parse(JSON.stringify(i)),n=0;n<s.length;n++)s[n].id===a.id&&s.splice(n,1);!1!==o.main.beforeOnChange(s)&&(t=!0)}t&&(o.main.data.removeFromSelected(a.id,"id"),o.main.render(),o.main.select.setValue(),o.main.data.onDataChange())},e.appendChild(i)}return e},n.prototype.contentDiv=function(){var e=document.createElement("div");return e.classList.add(this.main.config.content),e},n.prototype.searchDiv=function(){var n=this,e=document.createElement("div"),s=document.createElement("input"),a=document.createElement("div");e.classList.add(this.main.config.search);var t={container:e,input:s};return this.main.config.showSearch||(e.classList.add(this.main.config.hide),s.readOnly=!0),s.type="search",s.placeholder=this.main.config.searchPlaceholder,s.tabIndex=0,s.setAttribute("aria-label",this.main.config.searchPlaceholder),s.setAttribute("autocapitalize","off"),s.setAttribute("autocomplete","off"),s.setAttribute("autocorrect","off"),s.onclick=function(e){setTimeout(function(){""===e.target.value&&n.main.search("")},10)},s.onkeydown=function(e){"ArrowUp"===e.key?(n.main.open(),n.highlightUp(),e.preventDefault()):"ArrowDown"===e.key?(n.main.open(),n.highlightDown(),e.preventDefault()):"Tab"===e.key?n.main.data.contentOpen?n.main.close():setTimeout(function(){n.main.close()},n.main.config.timeoutDelay):"Enter"===e.key&&e.preventDefault()},s.onkeyup=function(e){var t=e.target;if("Enter"===e.key){if(n.main.addable&&e.ctrlKey)return a.click(),e.preventDefault(),void e.stopPropagation();var i=n.list.querySelector("."+n.main.config.highlighted);i&&i.click()}else"ArrowUp"===e.key||"ArrowDown"===e.key||("Escape"===e.key?n.main.close():n.main.config.showSearch&&n.main.data.contentOpen?n.main.search(t.value):s.value="");e.preventDefault(),e.stopPropagation()},s.onfocus=function(){n.main.open()},e.appendChild(s),this.main.addable&&(a.classList.add(this.main.config.addable),a.innerHTML="+",a.onclick=function(e){if(n.main.addable){e.preventDefault(),e.stopPropagation();var t=n.search.input.value;if(""===t.trim())return void n.search.input.focus();var i=n.main.addable(t),s="";if(!i)return;"object"==typeof i?o.validateOption(i)&&(n.main.addData(i),s=i.value?i.value:i.text):(n.main.addData(n.main.data.newOption({text:i,value:i})),s=i),n.main.search(""),setTimeout(function(){n.main.set(s,"value",!1,!1)},100),n.main.config.closeOnSelect&&setTimeout(function(){n.main.close()},100)}},e.appendChild(a),t.addable=a),t},n.prototype.highlightUp=function(){var e=this.list.querySelector("."+this.main.config.highlighted),t=null;if(e)for(t=e.previousSibling;null!==t&&t.classList.contains(this.main.config.disabled);)t=t.previousSibling;else{var i=this.list.querySelectorAll("."+this.main.config.option+":not(."+this.main.config.disabled+")");t=i[i.length-1]}if(t&&t.classList.contains(this.main.config.optgroupLabel)&&(t=null),null===t){var s=e.parentNode;if(s.classList.contains(this.main.config.optgroup)&&s.previousSibling){var n=s.previousSibling.querySelectorAll("."+this.main.config.option+":not(."+this.main.config.disabled+")");n.length&&(t=n[n.length-1])}}t&&(e&&e.classList.remove(this.main.config.highlighted),t.classList.add(this.main.config.highlighted),a.ensureElementInView(this.list,t))},n.prototype.highlightDown=function(){var e=this.list.querySelector("."+this.main.config.highlighted),t=null;if(e)for(t=e.nextSibling;null!==t&&t.classList.contains(this.main.config.disabled);)t=t.nextSibling;else t=this.list.querySelector("."+this.main.config.option+":not(."+this.main.config.disabled+")");if(null===t&&null!==e){var i=e.parentNode;i.classList.contains(this.main.config.optgroup)&&i.nextSibling&&(t=i.nextSibling.querySelector("."+this.main.config.option+":not(."+this.main.config.disabled+")"))}t&&(e&&e.classList.remove(this.main.config.highlighted),t.classList.add(this.main.config.highlighted),a.ensureElementInView(this.list,t))},n.prototype.listDiv=function(){var e=document.createElement("div");return e.classList.add(this.main.config.list),e},n.prototype.options=function(e){void 0===e&&(e="");var t,i=this.main.data.filtered||this.main.data.data;if((this.list.innerHTML="")!==e)return(t=document.createElement("div")).classList.add(this.main.config.option),t.classList.add(this.main.config.disabled),t.innerHTML=e,void this.list.appendChild(t);if(this.main.config.isAjax&&this.main.config.isSearching)return(t=document.createElement("div")).classList.add(this.main.config.option),t.classList.add(this.main.config.disabled),t.innerHTML=this.main.config.searchingText,void this.list.appendChild(t);if(0===i.length){var s=document.createElement("div");return s.classList.add(this.main.config.option),s.classList.add(this.main.config.disabled),s.innerHTML=this.main.config.searchText,void this.list.appendChild(s)}for(var n=function(e){if(e.hasOwnProperty("label")){var t=e,n=document.createElement("div");n.classList.add(c.main.config.optgroup);var i=document.createElement("div");i.classList.add(c.main.config.optgroupLabel),c.main.config.selectByGroup&&c.main.config.isMultiple&&i.classList.add(c.main.config.optgroupLabelSelectable),i.innerHTML=t.label,n.appendChild(i);var s=t.options;if(s){for(var a=0,o=s;a<o.length;a++){var l=o[a];n.appendChild(c.option(l))}if(c.main.config.selectByGroup&&c.main.config.isMultiple){var r=c;i.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation();for(var t=0,i=n.children;t<i.length;t++){var s=i[t];-1!==s.className.indexOf(r.main.config.option)&&s.click()}})}}c.list.appendChild(n)}else c.list.appendChild(c.option(e))},c=this,a=0,o=i;a<o.length;a++)n(o[a])},n.prototype.option=function(r){if(r.placeholder){var e=document.createElement("div");return e.classList.add(this.main.config.option),e.classList.add(this.main.config.hide),e}var t=document.createElement("div");t.classList.add(this.main.config.option),r.class&&r.class.split(" ").forEach(function(e){t.classList.add(e)}),r.style&&(t.style.cssText=r.style);var c=this.main.data.getSelected();t.dataset.id=r.id,this.main.config.searchHighlight&&this.main.slim&&r.innerHTML&&""!==this.main.slim.search.input.value.trim()?t.innerHTML=a.highlight(r.innerHTML,this.main.slim.search.input.value,this.main.config.searchHighlighter):r.innerHTML&&(t.innerHTML=r.innerHTML),this.main.config.showOptionTooltips&&t.textContent&&t.setAttribute("title",t.textContent);var d=this;t.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation();var t=this.dataset.id;if(!0===r.selected&&d.main.config.allowDeselectOption){var i=!1;if(d.main.beforeOnChange&&d.main.config.isMultiple||(i=!0),d.main.beforeOnChange&&d.main.config.isMultiple){for(var s=d.main.data.getSelected(),n=JSON.parse(JSON.stringify(s)),a=0;a<n.length;a++)n[a].id===t&&n.splice(a,1);!1!==d.main.beforeOnChange(n)&&(i=!0)}i&&(d.main.config.isMultiple?(d.main.data.removeFromSelected(t,"id"),d.main.render(),d.main.select.setValue(),d.main.data.onDataChange()):d.main.set(""))}else{if(r.disabled||r.selected)return;if(d.main.config.limit&&Array.isArray(c)&&d.main.config.limit<=c.length)return;if(d.main.beforeOnChange){var o=void 0,l=JSON.parse(JSON.stringify(d.main.data.getObjectFromData(t)));l.selected=!0,d.main.config.isMultiple?(o=JSON.parse(JSON.stringify(c))).push(l):o=JSON.parse(JSON.stringify(l)),!1!==d.main.beforeOnChange(o)&&d.main.set(t,"id",d.main.config.closeOnSelect)}else d.main.set(t,"id",d.main.config.closeOnSelect)}});var i=c&&a.isValueInArrayOfObjects(c,"id",r.id);return(r.disabled||i)&&(t.onclick=null,d.main.config.allowDeselectOption||t.classList.add(this.main.config.disabled),d.main.config.hideSelectedOption&&t.classList.add(this.main.config.hide)),i?t.classList.add(this.main.config.optionSelected):t.classList.remove(this.main.config.optionSelected),t},n);function n(e){this.main=e.main,this.container=this.containerDiv(),this.content=this.contentDiv(),this.search=this.searchDiv(),this.list=this.listDiv(),this.options(),this.singleSelected=null,this.multiSelected=null,this.main.config.isMultiple?(this.multiSelected=this.multiSelectedDiv(),this.multiSelected&&this.container.appendChild(this.multiSelected.container)):(this.singleSelected=this.singleSelectedDiv(),this.container.appendChild(this.singleSelected.container)),this.main.config.addToBody?(this.content.classList.add(this.main.config.id),document.body.appendChild(this.content)):this.container.appendChild(this.content),this.content.appendChild(this.search.container),this.content.appendChild(this.list)}t.Slim=s}],n.c=s,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(i,s,function(e){return t[e]}.bind(null,s));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2).default;function n(e){if(s[e])return s[e].exports;var t=s[e]={i:e,l:!1,exports:{}};return i[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}var i,s});
\ No newline at end of file
+++ /dev/null
-$height: 30px !default;
-$white: #ffffff !default;
-$font-color: #666666 !default;
-$font-placeholder-color: #8a8a8a !default;
-$font-disabled-color: #dedede !default;
-$primary-color: #5897fb !default;
-$border-color: #dcdee2 !default;
-$search-highlight-color: #fffb8c !default;
-$border-radius: 4px !default;
-$spacing-l: 8px !default;
-$spacing-m: 6px !default;
-$spacing-s: 4px !default;
-
-.ss-main {
- position: relative;
- display: inline-block;
- user-select: none;
- color: $font-color;
- width: 100%;
-
- .ss-single-selected {
- display: flex;
- cursor: pointer;
- width: 100%;
- height: $height;
- padding: $spacing-m;
- border: 1px solid $border-color;
- border-radius: $border-radius;
- background-color: $white;
- outline: 0;
- box-sizing: border-box;
- transition: background-color .2s;
-
- &.ss-disabled {
- background-color: $border-color;
- cursor: not-allowed;
- }
-
- &.ss-open-above {
- border-top-left-radius: 0px;
- border-top-right-radius: 0px;
- }
- &.ss-open-below {
- border-bottom-left-radius: 0px;
- border-bottom-right-radius: 0px;
- }
-
- .placeholder {
- display: flex;
- flex: 1 1 100%;
- align-items: center;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- text-align: left;
- width: calc(100% - 30px);
- line-height: 1em;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-
- * {
- display: flex;
- align-items: center;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- width: auto;
- }
-
- .ss-disabled {
- color: $font-disabled-color;
- }
- }
-
- .ss-deselect {
- display: flex;
- align-items: center;
- justify-content: flex-end;
- flex: 0 1 auto;
- margin: 0 $spacing-m 0 $spacing-m;
- font-weight: bold;
-
- &.ss-hide {
- display: none;
- }
- }
-
- .ss-arrow {
- display: flex;
- align-items: center;
- justify-content: flex-end;
- flex: 0 1 auto;
- margin: 0 $spacing-m 0 $spacing-m;
-
- span {
- border: solid $font-color;
- border-width: 0 2px 2px 0;
- display: inline-block;
- padding: 3px;
- transition: transform .2s, margin .2s;
-
- &.arrow-up {
- transform: rotate(-135deg);
- margin: 3px 0 0 0;
- }
- &.arrow-down {
- transform: rotate(45deg);
- margin: -3px 0 0 0;
- }
- }
- }
- }
-
- .ss-multi-selected {
- display: flex;
- flex-direction: row;
- cursor: pointer;
- min-height: $height;
- width: 100%;
- padding: 0 0 0 3px;
- border: 1px solid $border-color;
- border-radius: $border-radius;
- background-color: $white;
- outline: 0;
- box-sizing: border-box;
- transition: background-color .2s;
-
- &.ss-disabled {
- background-color: $border-color;
- cursor: not-allowed;
-
- .ss-values {
- .ss-disabled {
- color: $font-color;
- }
-
- .ss-value {
- .ss-value-delete {
- cursor: not-allowed;
- }
- }
- }
- }
-
- &.ss-open-above {
- border-top-left-radius: 0px;
- border-top-right-radius: 0px;
- }
- &.ss-open-below {
- border-bottom-left-radius: 0px;
- border-bottom-right-radius: 0px;
- }
-
- .ss-values {
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start;
- flex: 1 1 100%;
- width: calc(100% - 30px);
-
- .ss-disabled {
- display: flex;
- padding: 4px 5px;
- margin: 2px 0px;
- line-height: 1em;
- align-items: center;
- width: 100%;
- color: $font-disabled-color;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- @keyframes scaleIn {
- 0% {transform: scale(0); opacity: 0;}
- 100% {transform: scale(1); opacity: 1;}
- }
- @keyframes scaleOut {
- 0% {transform: scale(1); opacity: 1;}
- 100% {transform: scale(0); opacity: 0;}
- }
-
- .ss-value {
- display: flex;
- user-select: none;
- align-items: center;
- font-size: 12px;
- padding: 3px 5px;
- margin: 3px 5px 3px 0px;
- color: $white;
- background-color: $primary-color;
- border-radius: $border-radius;
- animation-name: scaleIn;
- animation-duration: .2s;
- animation-timing-function: ease-out;
- animation-fill-mode: both;
-
- &.ss-out {
- animation-name: scaleOut;
- animation-duration: .2s;
- animation-timing-function: ease-out;
- }
-
- .ss-value-delete {
- margin: 0 0 0 5px;
- cursor: pointer;
- }
- }
- }
-
- .ss-add {
- display: flex;
- flex: 0 1 3px;
- margin: 9px 12px 0 5px;
-
- .ss-plus {
- display: flex;
- justify-content: center;
- align-items: center;
- background: $font-color;
- position: relative;
- height: 10px;
- width: 2px;
- transition: transform .2s;
-
- &:after {
- background: $font-color;
- content: "";
- position: absolute;
- height: 2px;
- width: 10px;
- left: -4px;
- top: 4px;
- }
-
- &.ss-cross {
- transform: rotate(45deg);
- }
- }
- }
-
- }
-}
-.ss-content {
- position: absolute;
- width: 100%;
- margin: -1px 0 0 0;
- box-sizing: border-box;
- border: solid 1px $border-color;
- z-index: 1010;
- background-color: $white;
- transform-origin: center top;
- transition: transform .2s, opacity .2s;
- opacity: 0;
- transform: scaleY(0);
-
- &.ss-open {
- display: block;
- opacity: 1;
- transform: scaleY(1);
- }
-
- .ss-search {
- display: flex;
- flex-direction: row;
- padding: $spacing-l $spacing-l $spacing-m $spacing-l;
-
- &.ss-hide {
- height: 0px;
- opacity: 0;
- padding: 0px 0px 0px 0px;
- margin: 0px 0px 0px 0px;
-
- input {
- height: 0px;
- opacity: 0;
- padding: 0px 0px 0px 0px;
- margin: 0px 0px 0px 0px;
- }
- }
-
- input {
- display: inline-flex;
- font-size: inherit;
- line-height: inherit;
- flex: 1 1 auto;
- width: 100%;
- min-width: 0px;
- height: 30px;
- padding: $spacing-m $spacing-l;
- margin: 0;
- border: 1px solid $border-color;
- border-radius: $border-radius;
- background-color: $white;
- outline: 0;
- text-align: left;
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- -webkit-appearance: textfield;
-
- &::placeholder {
- color: $font-placeholder-color;
- vertical-align: middle;
- }
-
- &:focus {
- box-shadow: 0 0 5px $primary-color;
- }
- }
-
- .ss-addable {
- display: inline-flex;
- justify-content: center;
- align-items: center;
- cursor: pointer;
- font-size: 22px;
- font-weight: bold;
- flex: 0 0 30px;
- height: 30px;
- margin: 0 0 0 8px;
- border: 1px solid $border-color;
- border-radius: $border-radius;
- box-sizing: border-box;
- }
- }
-
- .ss-addable {
- padding-top: 0px;
- }
-
- .ss-list {
- max-height: 200px;
- overflow-x: hidden;
- overflow-y: auto;
- text-align: left;
-
- .ss-optgroup {
- .ss-optgroup-label {
- padding: 6px 10px 6px 10px;
- font-weight: bold;
- }
-
- .ss-option {
- padding: 6px 6px 6px 25px;
- }
- }
-
- .ss-optgroup-label-selectable {
- cursor: pointer;
-
- &:hover {
- color: $white;
- background-color: $primary-color;
- }
- }
-
- .ss-option {
- padding: 6px 10px 6px 10px;
- cursor: pointer;
- user-select: none;
-
- * {
- display: inline-block;
- }
-
- &:hover, &.ss-highlighted {
- color: $white;
- background-color: $primary-color;
- }
-
- &.ss-disabled {
- cursor: not-allowed;
- color: $font-disabled-color;
- background-color: $white;
- }
-
- &:not(.ss-disabled).ss-option-selected {
- color: $font-color;
- background-color: rgba($primary-color, .1);
- }
-
- &.ss-hide { display: none; }
-
- .ss-search-highlight {
- background-color: $search-highlight-color;
- }
- }
- }
-}
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator {
- position: relative;
- border: 1px solid #999;
- background-color: #888;
- font-size: 14px;
- text-align: left;
- overflow: hidden;
- -ms-transform: translatez(0);
- transform: translatez(0);
-}
-
-.tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table {
- min-width: 100%;
-}
-
-.tabulator[tabulator-layout="fitDataTable"] {
- display: inline-block;
-}
-
-.tabulator.tabulator-block-select {
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator .tabulator-header {
- position: relative;
- box-sizing: border-box;
- width: 100%;
- border-bottom: 1px solid #999;
- background-color: #e6e6e6;
- color: #555;
- font-weight: bold;
- white-space: nowrap;
- overflow: hidden;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-header.tabulator-header-hidden {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- border-right: 1px solid #aaa;
- background: #e6e6e6;
- text-align: left;
- vertical-align: bottom;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-moving {
- position: absolute;
- border: 1px solid #999;
- background: #cdcdcd;
- pointer-events: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
- box-sizing: border-box;
- position: relative;
- padding: 4px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button {
- padding: 0 8px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover {
- cursor: pointer;
- opacity: .6;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
- box-sizing: border-box;
- width: 100%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- vertical-align: bottom;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
- box-sizing: border-box;
- width: 100%;
- border: 1px solid #999;
- padding: 1px;
- background: #fff;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow {
- display: inline-block;
- position: absolute;
- top: 9px;
- right: 8px;
- width: 0;
- height: 0;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- border-top: 1px solid #aaa;
- overflow: hidden;
- margin-right: -1px;
-}
-
-.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
- position: relative;
- box-sizing: border-box;
- margin-top: 2px;
- width: 100%;
- text-align: center;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
- height: auto !important;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
- margin-top: 3px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear {
- width: 0;
- height: 0;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
- padding-right: 25px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
- cursor: pointer;
- background-color: #cdcdcd;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #666;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow {
- border-top: 6px solid #666;
- border-bottom: none;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title {
- -ms-writing-mode: tb-rl;
- writing-mode: vertical-rl;
- text-orientation: mixed;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title {
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title {
- padding-right: 0;
- padding-top: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title {
- padding-right: 0;
- padding-bottom: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow {
- right: calc(50% - 6px);
-}
-
-.tabulator .tabulator-header .tabulator-frozen {
- display: inline-block;
- position: absolute;
- z-index: 10;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #aaa;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #aaa;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder {
- box-sizing: border-box;
- min-width: 600%;
- background: #f3f3f3 !important;
- border-top: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
- background: #f3f3f3 !important;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder {
- min-width: 600%;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty {
- display: none;
-}
-
-.tabulator .tabulator-tableHolder {
- position: relative;
- width: 100%;
- white-space: nowrap;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.tabulator .tabulator-tableHolder:focus {
- outline: none;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder {
- box-sizing: border-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode="virtual"] {
- min-height: 100%;
- min-width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder span {
- display: inline-block;
- margin: 0 auto;
- padding: 10px;
- color: #ccc;
- font-weight: bold;
- font-size: 20px;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table {
- position: relative;
- display: inline-block;
- background-color: #fff;
- white-space: nowrap;
- overflow: visible;
- color: #333;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs {
- font-weight: bold;
- background: #e2e2e2 !important;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top {
- border-bottom: 2px solid #aaa;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom {
- border-top: 2px solid #aaa;
-}
-
-.tabulator .tabulator-footer {
- padding: 5px 10px;
- border-top: 1px solid #999;
- background-color: #e6e6e6;
- text-align: right;
- color: #555;
- font-weight: bold;
- white-space: nowrap;
- -ms-user-select: none;
- user-select: none;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder {
- box-sizing: border-box;
- width: calc(100% + 20px);
- margin: -5px -10px 5px -10px;
- text-align: left;
- background: #f3f3f3 !important;
- border-bottom: 1px solid #aaa;
- border-top: 1px solid #aaa;
- overflow: hidden;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
- background: #f3f3f3 !important;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
- margin-bottom: -5px;
- border-bottom: none;
-}
-
-.tabulator .tabulator-footer .tabulator-paginator {
- color: #555;
- font-family: inherit;
- font-weight: inherit;
- font-size: inherit;
-}
-
-.tabulator .tabulator-footer .tabulator-page-size {
- display: inline-block;
- margin: 0 5px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
-}
-
-.tabulator .tabulator-footer .tabulator-pages {
- margin: 0 7px;
-}
-
-.tabulator .tabulator-footer .tabulator-page {
- display: inline-block;
- margin: 0 2px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
- background: rgba(255, 255, 255, 0.2);
-}
-
-.tabulator .tabulator-footer .tabulator-page.active {
- color: #d00;
-}
-
-.tabulator .tabulator-footer .tabulator-page:disabled {
- opacity: .5;
-}
-
-.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
- color: #fff;
-}
-
-.tabulator .tabulator-col-resize-handle {
- position: absolute;
- right: 0;
- top: 0;
- bottom: 0;
- width: 5px;
-}
-
-.tabulator .tabulator-col-resize-handle.prev {
- left: 0;
- right: auto;
-}
-
-.tabulator .tabulator-col-resize-handle:hover {
- cursor: ew-resize;
-}
-
-.tabulator .tabulator-loader {
- position: absolute;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- top: 0;
- left: 0;
- z-index: 100;
- height: 100%;
- width: 100%;
- background: rgba(0, 0, 0, 0.4);
- text-align: center;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg {
- display: inline-block;
- margin: 0 auto;
- padding: 10px 20px;
- border-radius: 10px;
- background: #fff;
- font-weight: bold;
- font-size: 16px;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading {
- border: 4px solid #333;
- color: #000;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error {
- border: 4px solid #D00;
- color: #590000;
-}
-
-.tabulator-row {
- position: relative;
- box-sizing: border-box;
- min-height: 22px;
- background-color: #fff;
-}
-
-.tabulator-row.tabulator-row-even {
- background-color: #EFEFEF;
-}
-
-.tabulator-row.tabulator-selectable:hover {
- background-color: #bbb;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-selected {
- background-color: #9ABCEA;
-}
-
-.tabulator-row.tabulator-selected:hover {
- background-color: #769BCC;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-row-moving {
- border: 1px solid #000;
- background: #fff;
-}
-
-.tabulator-row.tabulator-moving {
- position: absolute;
- border-top: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
- pointer-events: none;
- z-index: 15;
-}
-
-.tabulator-row .tabulator-row-resize-handle {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- height: 5px;
-}
-
-.tabulator-row .tabulator-row-resize-handle.prev {
- top: 0;
- bottom: auto;
-}
-
-.tabulator-row .tabulator-row-resize-handle:hover {
- cursor: ns-resize;
-}
-
-.tabulator-row .tabulator-frozen {
- display: inline-block;
- position: absolute;
- background-color: inherit;
- z-index: 10;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #aaa;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #aaa;
-}
-
-.tabulator-row .tabulator-responsive-collapse {
- box-sizing: border-box;
- padding: 5px;
- border-top: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
-}
-
-.tabulator-row .tabulator-responsive-collapse:empty {
- display: none;
-}
-
-.tabulator-row .tabulator-responsive-collapse table {
- font-size: 14px;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td {
- position: relative;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
- padding-right: 10px;
-}
-
-.tabulator-row .tabulator-cell {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- padding: 4px;
- border-right: 1px solid #aaa;
- vertical-align: middle;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing {
- border: 1px solid #1D68CD;
- padding: 0;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select {
- border: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail {
- border: 1px solid #dd0000;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select {
- border: 1px;
- background: transparent;
- color: #dd0000;
-}
-
-.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
- width: 80%;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
- width: 100%;
- height: 3px;
- margin-top: 2px;
- background: #666;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #aaa;
- border-bottom: 2px solid #aaa;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
- height: 15px;
- width: 15px;
- border-radius: 20px;
- background: #666;
- color: #fff;
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover {
- opacity: .7;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close {
- display: initial;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-traffic-light {
- display: inline-block;
- height: 14px;
- width: 14px;
- border-radius: 14px;
-}
-
-.tabulator-row.tabulator-group {
- box-sizing: border-box;
- border-bottom: 1px solid #999;
- border-right: 1px solid #aaa;
- border-top: 1px solid #999;
- padding: 5px;
- padding-left: 10px;
- background: #ccc;
- font-weight: bold;
- min-width: 100%;
-}
-
-.tabulator-row.tabulator-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #666;
- border-bottom: 0;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-1 {
- padding-left: 30px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-2 {
- padding-left: 50px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-3 {
- padding-left: 70px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-4 {
- padding-left: 90px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-5 {
- padding-left: 110px;
-}
-
-.tabulator-row.tabulator-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-row.tabulator-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #666;
- vertical-align: middle;
-}
-
-.tabulator-row.tabulator-group span {
- margin-left: 10px;
- color: #d00;
-}
-
-.tabulator-menu {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- background: #fff;
- border: 1px solid #aaa;
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-menu .tabulator-menu-item {
- padding: 5px 10px;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled {
- opacity: .5;
-}
-
-.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover {
- cursor: pointer;
- background: #EFEFEF;
-}
-
-.tabulator-menu .tabulator-menu-separator {
- border-top: 1px solid #aaa;
-}
-
-.tabulator-edit-select-list {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- max-height: 200px;
- background: #fff;
- border: 1px solid #aaa;
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item {
- padding: 4px;
- color: #333;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active {
- color: #fff;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused {
- outline: 1px solid rgba(255, 255, 255, 0.5);
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.focused {
- outline: 1px solid #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item:hover {
- cursor: pointer;
- color: #fff;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-notice {
- padding: 4px;
- color: #333;
- text-align: center;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-group {
- border-bottom: 1px solid #aaa;
- padding: 4px;
- padding-top: 6px;
- color: #333;
- font-weight: bold;
-}
-
-.tabulator-print-fullscreen {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 10000;
-}
-
-body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
- display: none !important;
-}
-
-.tabulator-print-table {
- border-collapse: collapse;
-}
-
-.tabulator-print-table .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #aaa;
- border-bottom: 2px solid #aaa;
-}
-
-.tabulator-print-table .tabulator-print-table-group {
- box-sizing: border-box;
- border-bottom: 1px solid #999;
- border-right: 1px solid #aaa;
- border-top: 1px solid #999;
- padding: 5px;
- padding-left: 10px;
- background: #ccc;
- font-weight: bold;
- min-width: 100%;
-}
-
-.tabulator-print-table .tabulator-print-table-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #666;
- border-bottom: 0;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td {
- padding-left: 30px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td {
- padding-left: 50px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td {
- padding-left: 70px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td {
- padding-left: 90px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td {
- padding-left: 110px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #666;
- vertical-align: middle;
-}
-
-.tabulator-print-table .tabulator-print-table-group span {
- margin-left: 10px;
- color: #d00;
-}
-
-.tabulator-print-table .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-print-table .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator{position:relative;border:1px solid #999;background-color:#888;font-size:14px;text-align:left;overflow:hidden;transform:translatez(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableHolder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator .tabulator-header{position:relative;box-sizing:border-box;width:100%;border-bottom:1px solid #999;background-color:#e6e6e6;color:#555;font-weight:700;white-space:nowrap;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-col{display:inline-block;position:relative;box-sizing:border-box;border-right:1px solid #aaa;background:#e6e6e6;text-align:left;vertical-align:bottom;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-moving{position:absolute;border:1px solid #999;background:#cdcdcd;pointer-events:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;position:relative;padding:4px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{box-sizing:border-box;width:100%;border:1px solid #999;padding:1px;background:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{display:inline-block;position:absolute;top:9px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{position:relative;display:-ms-flexbox;display:flex;border-top:1px solid #aaa;overflow:hidden;margin-right:-1px}.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{position:relative;box-sizing:border-box;margin-top:2px;width:100%;text-align:center}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{width:0;height:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{cursor:pointer;background-color:#cdcdcd}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #666}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-col-content .tabulator-arrow{border-top:6px solid #666;border-bottom:none}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-right:0;padding-bottom:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow{right:calc(50% - 6px)}.tabulator .tabulator-header .tabulator-frozen{display:inline-block;position:absolute;z-index:10}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{box-sizing:border-box;min-width:600%;background:#f3f3f3!important;border-top:1px solid #aaa;border-bottom:1px solid #aaa;overflow:hidden}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{min-width:600%}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableHolder{position:relative;width:100%;white-space:nowrap;overflow:auto;-webkit-overflow-scrolling:touch}.tabulator .tabulator-tableHolder:focus{outline:none}.tabulator .tabulator-tableHolder .tabulator-placeholder{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%;min-width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder span{display:inline-block;margin:0 auto;padding:10px;color:#ccc;font-weight:700;font-size:20px}.tabulator .tabulator-tableHolder .tabulator-table{position:relative;display:inline-block;background-color:#fff;white-space:nowrap;overflow:visible;color:#333}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs{font-weight:700;background:#e2e2e2!important}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #aaa}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #aaa}.tabulator .tabulator-footer{padding:5px 10px;border-top:1px solid #999;background-color:#e6e6e6;text-align:right;color:#555;font-weight:700;white-space:nowrap;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-footer .tabulator-calcs-holder{box-sizing:border-box;width:calc(100% + 20px);margin:-5px -10px 5px;text-align:left;background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;overflow:hidden}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px;border-bottom:none}.tabulator .tabulator-footer .tabulator-paginator{color:#555;font-family:inherit;font-weight:inherit;font-size:inherit}.tabulator .tabulator-footer .tabulator-page-size{display:inline-block;margin:0 5px;padding:2px 5px;border:1px solid #aaa;border-radius:3px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid #aaa;border-radius:3px;background:hsla(0,0%,100%,.2)}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{cursor:pointer;background:rgba(0,0,0,.2);color:#fff}.tabulator .tabulator-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px}.tabulator .tabulator-col-resize-handle.prev{left:0;right:auto}.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}.tabulator .tabulator-loader{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:0;left:0;z-index:100;height:100%;width:100%;background:rgba(0,0,0,.4);text-align:center}.tabulator .tabulator-loader .tabulator-loader-msg{display:inline-block;margin:0 auto;padding:10px 20px;border-radius:10px;background:#fff;font-weight:700;font-size:16px}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading{border:4px solid #333;color:#000}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error{border:4px solid #d00;color:#590000}.tabulator-row{position:relative;box-sizing:border-box;min-height:22px;background-color:#fff}.tabulator-row.tabulator-row-even{background-color:#efefef}.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}.tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}.tabulator-row.tabulator-row-moving{border:1px solid #000;background:#fff}.tabulator-row.tabulator-moving{position:absolute;border-top:1px solid #aaa;border-bottom:1px solid #aaa;pointer-events:none;z-index:15}.tabulator-row .tabulator-row-resize-handle{position:absolute;right:0;bottom:0;left:0;height:5px}.tabulator-row .tabulator-row-resize-handle.prev{top:0;bottom:auto}.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}.tabulator-row .tabulator-frozen{display:inline-block;position:absolute;background-color:inherit;z-index:10}.tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-responsive-collapse{box-sizing:border-box;padding:5px;border-top:1px solid #aaa;border-bottom:1px solid #aaa}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{display:inline-block;position:relative;box-sizing:border-box;padding:4px;border-right:1px solid #aaa;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{border:1px;background:transparent}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{border:1px;background:transparent;color:#d00}.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator-row .tabulator-cell.tabulator-row-handle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{width:100%;height:3px;margin-top:2px;background:#666}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #aaa;border-bottom:2px solid #aaa}.tabulator-row .tabulator-cell .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;height:15px;width:15px;border-radius:20px;background:#666;color:#fff;font-weight:700;font-size:1.1em}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{opacity:.7}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open,.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{display:inline-block;height:14px;width:14px;border-radius:14px}.tabulator-row.tabulator-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;padding:5px;padding-left:10px;background:#ccc;font-weight:700;min-width:100%}.tabulator-row.tabulator-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-row.tabulator-group span{margin-left:10px;color:#d00}.tabulator-menu{position:absolute;display:inline-block;box-sizing:border-box;background:#fff;border:1px solid #aaa;box-shadow:0 0 5px 0 rgba(0,0,0,.2);font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-menu .tabulator-menu-item{padding:5px 10px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{cursor:pointer;background:#efefef}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #aaa}.tabulator-edit-select-list{position:absolute;display:inline-block;box-sizing:border-box;max-height:200px;background:#fff;border:1px solid #aaa;font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-edit-select-list .tabulator-edit-select-list-item{padding:4px;color:#333}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-select-list .tabulator-edit-select-list-item.focused{outline:1px solid #1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{cursor:pointer;color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-notice{padding:4px;color:#333;text-align:center}.tabulator-edit-select-list .tabulator-edit-select-list-group{border-bottom:1px solid #aaa;padding:4px;padding-top:6px;color:#333;font-weight:700}.tabulator-print-fullscreen{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #aaa;border-bottom:2px solid #aaa}.tabulator-print-table .tabulator-print-table-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;padding:5px;padding-left:10px;background:#ccc;font-weight:700;min-width:100%}.tabulator-print-table .tabulator-print-table-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-print-table .tabulator-print-table-group span{margin-left:10px;color:#d00}.tabulator-print-table .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-print-table .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}
-/*# sourceMappingURL=tabulator.min.css.map */
+++ /dev/null
-{"version":3,"sources":["tabulator.scss"],"names":[],"mappings":"AA0CA,WACC,kBAAkB,AAElB,sBAxCgB,AA0ChB,sBA3CqB,AA6CrB,eA3Ca,AA4Cb,gBAAgB,AAChB,gBAAe,AAMf,uBAAwB,CAwfxB,AAvgBD,iFAoBI,cAAc,CACd,AArBJ,0CA0BE,oBAAqB,CACrB,AA3BF,kCA8BE,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CACjB,AA/BF,6BAmCE,kBAAiB,AACjB,sBAAsB,AAEtB,WAAU,AAEV,6BAtEwB,AAuExB,yBA1E4B,AA2E5B,WA1EmB,AA2EnB,gBAAgB,AAEhB,mBAAmB,AACnB,gBAAe,AAEf,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAmPpB,AAtSF,qDAsDG,YAAY,CACZ,AAvDH,4CA2DG,qBAAoB,AACpB,kBAAiB,AACjB,sBAAqB,AACrB,4BA7FoB,AA8FpB,mBAhG2B,AAiG3B,gBAAe,AACf,sBAAsB,AACtB,eAAgB,CAqLhB,AAvPH,6DAqEI,kBAAkB,AAClB,sBApGsB,AAqGtB,mBAA8C,AAC9C,mBAAoB,CACpB,AAzEJ,mEA6EI,sBAAqB,AACrB,kBAAkB,AAClB,WAAW,CAgDX,AA/HJ,iGAmFK,aAAc,CAMd,AAzFL,uGAsFM,eAAe,AACf,UAAW,CACX,AAxFN,wFA6FK,sBAAqB,AACrB,WAAW,AAEX,mBAAmB,AACnB,gBAAgB,AAChB,uBAAuB,AACvB,qBAAqB,CAarB,AAhHL,gHAuGM,sBAAsB,AACtB,WAAW,AAEX,sBAAqB,AAErB,YAAW,AAEX,eAAgB,CAChB,AA/GN,oFAoHK,qBAAqB,AACrB,kBAAkB,AAClB,QAAO,AACP,UAAS,AACT,QAAQ,AACR,SAAS,AACT,kCAAkC,AAClC,mCAAmC,AACnC,4BArJmB,CAsJnB,AA7HL,0FAsIK,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AAEb,0BAxKkB,AAyKlB,gBAAgB,AAEhB,iBAAiB,CACjB,AA7IL,0FAmJK,YAAa,CACb,AApJL,qEAyJI,kBAAkB,AAClB,sBAAsB,AACtB,eAAc,AACd,WAAU,AACV,iBAAkB,CAiBlB,AA9KJ,8EAiKK,qBAAsB,CACtB,AAlKL,yEAqKK,cAAe,CACf,AAtKL,sFA0KM,QAAS,AACT,QAAS,CACT,AA5KN,oFAmLK,kBAAkB,CAClB,AApLL,qEAuLK,eAAc,AACd,wBAAoD,CACpD,AAzLL,uHA6LM,gBAAgB,AAChB,4BAvNkB,CAwNlB,AA/LN,sHAoMM,gBAAgB,AAChB,4BA/NgB,CAgOhB,AAtMN,uHA2MM,0BArOgB,AAsOhB,kBAAmB,CACnB,AA7MN,+GAqNM,uBAAyB,AAAzB,yBAAyB,AACzB,uBAAuB,AAEvB,oBAAY,AAAZ,aAAY,AACZ,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,sBAAsB,CACtB,AA3NN,oHAgOM,wBAAyB,CACzB,AAjON,2GAsOM,gBAAe,AACf,gBAAgB,CAChB,AAxON,uIA4OO,gBAAe,AACf,mBAAmB,CACnB,AA9OP,uGAmPM,qBAAqB,CACrB,AApPN,+CA0PG,qBAAqB,AACrB,kBAAkB,AAIlB,UAAW,CASX,AAxQH,qEAkQI,2BAtRgB,CAuRhB,AAnQJ,sEAsQI,0BA1RgB,CA2RhB,AAvQJ,qDA4QG,sBAAqB,AACrB,eAAc,AAEd,6BAAyD,AAUzD,0BA7SiB,AA8SjB,6BAzToB,AA2TpB,eAAgB,CAChB,AA7RH,oEAkRI,4BAAyD,CAKzD,AAvRJ,iGAqRK,YAAa,CACb,AAtRL,2DAgSG,cAAc,CAKd,AArSH,iEAmSI,YAAa,CACb,AApSJ,kCA0SE,kBAAiB,AACjB,WAAU,AACV,mBAAmB,AACnB,cAAa,AACb,gCAAiC,CAyDjC,AAvWF,wCAiTG,YAAa,CACb,AAlTH,yDAsTG,sBAAqB,AACrB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAOlB,UAAU,CAYV,AA3UH,wFA2TI,gBAAe,AACf,cAAc,CACd,AA7TJ,8DAkUI,qBAAqB,AAErB,cAAa,AACb,aAAY,AAEZ,WAAU,AACV,gBAAiB,AACjB,cAAe,CACf,AA1UJ,mDA+UG,kBAAiB,AACjB,qBAAoB,AACpB,sBAvWqB,AAwWrB,mBAAmB,AACnB,iBAAgB,AAChB,UAvWe,CAyXf,AAtWH,kFAyVK,gBAAiB,AACjB,4BAAwD,CASxD,AAnWL,sGA6VM,4BAjXc,CAkXd,AA9VN,yGAiWM,yBArXc,CAsXd,AAlWN,6BA6WE,iBAAgB,AAChB,0BApXwB,AAqXxB,yBAxX4B,AAyX5B,iBAAiB,AACjB,WAzXmB,AA0XnB,gBAAgB,AAChB,mBAAkB,AAClB,qBAAgB,AAAhB,iBAAgB,AAEhB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAgFpB,AAzcF,qDA4XG,sBAAqB,AACrB,wBAAuB,AACvB,sBAA2B,AAE3B,gBAAgB,AAEhB,6BAAyD,AAUzD,6BAhaiB,AAiajB,0BAjaiB,AAmajB,eAAgB,CAMhB,AArZH,oEAqYI,4BAAyD,CAKzD,AA1YJ,iGAwYK,YAAa,CACb,AAzYL,gEAkZI,mBAAkB,AAClB,kBAAkB,CAClB,AApZJ,kDAwZG,WAhakB,AAialB,oBAAmB,AACnB,oBAAmB,AACnB,iBAAiB,CACjB,AA5ZH,kDAgaG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA5aoB,AA6apB,iBAAiB,CACjB,AAvaH,8CA0aG,YAAY,CACZ,AA3aH,6CA+aG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA3boB,AA4bpB,kBAAiB,AAEjB,6BAA+B,CAiB/B,AAxcH,oDA0bI,UA/bmB,CAgcnB,AA3bJ,sDA8bI,UAAU,CACV,AA/bJ,kEAmcK,eAAc,AACd,0BAAyB,AACzB,UAAU,CACV,AAtcL,wCA6cE,kBAAiB,AACjB,QAAO,AACP,MAAK,AACL,SAAQ,AACR,SAAS,CAUT,AA3dF,6CAodG,OAAM,AACN,UAAU,CACV,AAtdH,8CAydG,gBAAgB,CAChB,AA1dH,6BAgeE,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAElB,MAAK,AACL,OAAM,AACN,YAAW,AAEX,YAAW,AACX,WAAU,AACV,0BAAyB,AACzB,iBAAiB,CA2BjB,AAtgBF,mDA+eG,qBAAoB,AAEpB,cAAa,AACb,kBAAiB,AAEjB,mBAAkB,AAElB,gBAAe,AACf,gBAAgB,AAChB,cAAc,CAad,AArgBH,qEA4fI,sBAAqB,AACrB,UAAU,CACV,AA9fJ,mEAkgBI,sBAAqB,AACrB,aAAa,CACb,AAMJ,eACC,kBAAkB,AAClB,sBAAsB,AACtB,gBAA0C,AAC1C,qBApiBuB,CAo5BvB,AApXD,kCAQE,wBAviB4B,CAwiB5B,AATF,0CAYE,sBAxiBsB,AAyiBtB,cAAe,CACf,AAdF,kCAiBE,wBA3iB6B,CA4iB7B,AAlBF,wCAqBE,yBA9iBkC,AA+iBlC,cAAe,CACf,AAvBF,oCA0BE,sBAAqB,AACrB,eAAe,CACf,AA5BF,gCA+BE,kBAAkB,AAElB,0BA/jBkB,AAgkBlB,6BAhkBkB,AAkkBlB,oBAAoB,AACpB,UAAU,CACV,AAtCF,4CA0CE,kBAAiB,AACjB,QAAO,AACP,SAAQ,AACR,OAAM,AACN,UAAU,CAUV,AAxDF,iDAiDG,MAAK,AACL,WAAW,CACX,AAnDH,kDAsDG,gBAAgB,CAChB,AAvDH,iCA2DE,qBAAqB,AACrB,kBAAkB,AAElB,yBAAyB,AAEzB,UAAW,CASX,AAzEF,uDAmEG,2BAjmBiB,CAkmBjB,AApEH,wDAuEG,0BArmBiB,CAsmBjB,AAxEH,8CA4EE,sBAAqB,AAErB,YAAW,AAEX,0BA9mBkB,AA+mBlB,4BA/mBkB,CAkoBlB,AApGF,oDAoFG,YAAY,CACZ,AArFH,oDAwFG,cAtoBW,CAipBX,AAnGH,0DA4FK,iBAAkB,CAKlB,AAjGL,wEA+FM,kBAAkB,CAClB,AAhGN,+BAwGE,qBAAoB,AACpB,kBAAkB,AAClB,sBAAqB,AACrB,YAAW,AACX,4BA1oBkB,AA2oBlB,sBAAqB,AACrB,mBAAkB,AAClB,gBAAe,AACf,sBAAsB,CAyLtB,AAzSF,iDAmHG,yBA1oBkB,AA2oBlB,SAAU,CAMV,AA1HH,+GAuHI,WAAU,AACV,sBAAsB,CACtB,AAzHJ,yDA6HG,qBAnpBgB,CA0pBhB,AApIH,+HA+HI,WAAU,AACV,uBAAsB,AAEtB,UAxpBe,CAypBf,AAnIJ,6EAyII,YAAa,CACb,AA1IJ,oDA+IG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAcpB,AApKH,8EA0JI,SAAS,CAST,AAnKJ,wGA8JK,WAAU,AACV,WAAU,AACV,eAAc,AACd,eAAe,CACf,AAlKL,2DAuKG,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BAhtBiB,AAitBjB,4BAjtBiB,CAktBjB,AApLH,4DAwLG,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBA/tBe,AAguBf,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAmDf,AAzPH,kEAyMI,eAAc,AACd,yBAA4B,CAC5B,AA3MJ,kGA8MI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAjOJ,wGAuNK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA5vBa,CA6vBb,AAhOL,gGAoOI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eAvwBc,CAoxBd,AAvPJ,sGA6OK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAlxBa,CAmxBb,AAtPL,qEA4PG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,oBAAoB,AAEpB,YAAW,AACX,WAAU,AAEV,mBAAkB,AAClB,gBAAe,AAEf,WA3yBqB,AA4yBrB,gBAAgB,AAChB,eAAe,CAmBf,AAhSH,2EAgRI,UAAU,CACV,AAjRJ,sHAqRK,eAAe,CACf,AAtRL,sOA8RI,YAAY,CACZ,AA/RJ,wDAmSG,qBAAqB,AACrB,YAAW,AACX,WAAU,AAEV,kBAAkB,CAClB,AAxSH,+BA6SE,sBAAqB,AACrB,6BAA4B,AAC5B,4BA70BkB,AA80BlB,0BAAyB,AACzB,YAAW,AACX,kBAAiB,AACjB,gBAAe,AACf,gBAAgB,AAEhB,cAAe,CA4Df,AAlXF,qCAyTG,eAAc,AACd,+BAA+B,CAC/B,AA3TH,wEAgUI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,0BAv2BkB,AAw2BlB,eAAgB,CAChB,AArUJ,uDA0UG,iBAAiB,CACjB,AA3UH,uDA8UG,iBAAiB,CACjB,AA/UH,uDAkVG,iBAAiB,CACjB,AAnVH,uDAsVG,iBAAiB,CACjB,AAvVH,uDA0VG,kBAAkB,CAClB,AA3VH,uDA8VG,oBAAqB,CACrB,AA/VH,gDAmWG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,2BA94BmB,AA+4BnB,qBAAqB,CACrB,AA5WH,oCA+WG,iBAAgB,AAChB,UAAU,CACV,AAKH,gBACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,gBA35BuB,AA45BvB,sBA15BmB,AA25BnB,oCAAuC,AAEvC,eA76Ba,AA+6Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CAqBd,AAnCD,qCAkBE,iBAAgB,AAEhB,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CAUjB,AA9BF,kEAuBG,UAAW,CACX,AAxBH,8EA2BG,eAAe,AACf,kBAj7B2B,CAk7B3B,AA7BH,0CAiCE,yBAr7BkB,CAs7BlB,AAGF,4BACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,iBAAgB,AAEhB,gBAl8BuB,AAm8BvB,sBAj8BmB,AAm8BnB,eAn9Ba,AAq9Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CA4Cd,AA3DD,6DAkBE,YAAW,AAEX,UA58BgB,CAi+BhB,AAzCF,oEAuBG,WAl9BqB,AAm9BrB,kBA18BkB,CA+8BlB,AA7BH,4EA2BI,oCAt9BoB,CAu9BpB,AA5BJ,qEAgCG,yBAl9BkB,CAm9BlB,AAjCH,mEAoCG,eAAc,AAEd,WAj+BqB,AAk+BrB,kBAz9BkB,CA09BlB,AAxCH,+DA4CE,YAAW,AAEX,WAt+BgB,AAu+BhB,iBAAkB,CAClB,AAhDF,8DAmDE,6BA5+BkB,AA8+BlB,YAAW,AACX,gBAAe,AAEf,WAh/BgB,AAi/BhB,eAAgB,CAChB,AAKF,4BACC,kBAAkB,AAClB,MAAK,AACL,SAAQ,AACR,OAAM,AACN,QAAO,AAEP,aAAc,CACd,AAED,uEACC,sBAAuB,CACvB,AAED,uBACC,wBAAyB,CAwKzB,AAzKD,mDAIE,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BArhCkB,AAshClB,4BAthCkB,CAuhClB,AAjBF,oDAqBE,sBAAqB,AACrB,6BAA4B,AAC5B,4BA7hCkB,AA8hClB,0BAAyB,AACzB,YAAW,AACX,kBAAiB,AACjB,gBAAe,AACf,gBAAgB,AAEhB,cAAe,CAsEf,AApGF,0DAiCG,eAAc,AACd,+BAA+B,CAC/B,AAnCH,6FAwCI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,0BAvjCkB,AAwjClB,eAAgB,CAChB,AA7CJ,+EAmDI,2BAA4B,CAC5B,AApDJ,+EAyDI,2BAA4B,CAC5B,AA1DJ,+EA+DI,2BAA4B,CAC5B,AAhEJ,+EAqEI,2BAA4B,CAC5B,AAtEJ,+EA2EI,4BAA6B,CAC7B,AA5EJ,4EAgFG,oBAAqB,CACrB,AAjFH,qEAqFG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,2BAxmCmB,AAymCnB,qBAAqB,CACrB,AA9FH,yDAiGG,iBAAgB,AAChB,UAAU,CACV,AAnGH,oDAwGE,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBAvnCgB,AAwnChB,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAkDf,AAxKF,0DAyHG,eAAc,AACd,yBAA4B,CAC5B,AA3HH,0FA8HG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAjJH,gGAuII,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAppCc,CAqpCd,AAhJJ,wFAoJG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eA/pCe,CA4qCf,AAvKH,8FA6JI,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA1qCc,CA2qCd","file":"tabulator.min.css","sourcesContent":["/* Tabulator v4.7.0 (c) Oliver Folkerd */\n\n\r\n//Main Theme Variables\r\n$backgroundColor: #888 !default; //background color of tabulator\r\n$borderColor:#999 !default; //border to tabulator\r\n$textSize:14px !default; //table text size\r\n\r\n//header themeing\r\n$headerBackgroundColor:#e6e6e6 !default; //border to tabulator\r\n$headerTextColor:#555 !default; //header text colour\r\n$headerBorderColor:#aaa !default; //header border color\r\n$headerSeperatorColor:#999 !default; //header bottom seperator color\r\n$headerMargin:4px !default; //padding round header\r\n\r\n//column header arrows\r\n$sortArrowActive: #666 !default;\r\n$sortArrowInactive: #bbb !default;\r\n\r\n//row themeing\r\n$rowBackgroundColor:#fff !default; //table row background color\r\n$rowAltBackgroundColor:#EFEFEF !default; //table row background color\r\n$rowBorderColor:#aaa !default; //table border color\r\n$rowTextColor:#333 !default; //table text color\r\n$rowHoverBackground:#bbb !default; //row background color on hover\r\n\r\n$rowSelectedBackground: #9ABCEA !default; //row background color when selected\r\n$rowSelectedBackgroundHover: #769BCC !default;//row background color when selected and hovered\r\n\r\n$editBoxColor:#1D68CD !default; //border color for edit boxes\r\n$errorColor:#dd0000 !default; //error indication\r\n\r\n//footer themeing\r\n$footerBackgroundColor:#e6e6e6 !default; //border to tabulator\r\n$footerTextColor:#555 !default; //footer text colour\r\n$footerBorderColor:#aaa !default; //footer border color\r\n$footerSeperatorColor:#999 !default; //footer bottom seperator color\r\n$footerActiveColor:#d00 !default; //footer bottom active text color\r\n\r\n\r\n\r\n//Tabulator Containing Element\r\n.tabulator{\r\n\tposition: relative;\r\n\r\n\tborder: 1px solid $borderColor;\r\n\r\n\tbackground-color: $backgroundColor;\r\n\r\n\tfont-size:$textSize;\r\n\ttext-align: left;\r\n\toverflow:hidden;\r\n\r\n\t-webkit-transform: translatez(0);\r\n\t-moz-transform: translatez(0);\r\n\t-ms-transform: translatez(0);\r\n\t-o-transform: translatez(0);\r\n\ttransform: translatez(0);\r\n\r\n\t&[tabulator-layout=\"fitDataFill\"]{\r\n\t\t.tabulator-tableHolder{\r\n\t\t\t.tabulator-table{\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&[tabulator-layout=\"fitDataTable\"]{\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\r\n\t&.tabulator-block-select{\r\n\t\tuser-select: none;\r\n\t}\r\n\r\n\t//column header containing element\r\n\t.tabulator-header{\r\n\t\tposition:relative;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\twidth:100%;\r\n\r\n\t\tborder-bottom:1px solid $headerSeperatorColor;\r\n\t\tbackground-color: $headerBackgroundColor;\r\n\t\tcolor: $headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:hidden;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t&.tabulator-header-hidden{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\t//individual column header element\r\n\t\t.tabulator-col{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition:relative;\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tborder-right:1px solid $headerBorderColor;\r\n\t\t\tbackground:$headerBackgroundColor;\r\n\t\t\ttext-align:left;\r\n\t\t\tvertical-align: bottom;\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&.tabulator-moving{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tborder:1px solid $headerSeperatorColor;\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 10%);\r\n\t\t\t\tpointer-events: none;\r\n\t\t\t}\r\n\r\n\t\t\t//hold content of column header\r\n\t\t\t.tabulator-col-content{\r\n\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding:4px;\r\n\r\n\t\t\t\t//header menu button\r\n\t\t\t\t.tabulator-header-menu-button{\r\n\t\t\t\t\tpadding: 0 8px;\r\n\r\n\t\t\t\t\t&:hover{\r\n\t\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t\topacity: .6;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//hold title of column header\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\t\tvertical-align:bottom;\r\n\r\n\t\t\t\t\t//element to hold title editor\r\n\t\t\t\t\t.tabulator-title-editor{\r\n\t\t\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\t\tborder:1px solid #999;\r\n\r\n\t\t\t\t\t\tpadding:1px;\r\n\r\n\t\t\t\t\t\tbackground: #fff;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//column sorter arrow\r\n\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:9px;\r\n\t\t\t\t\tright:8px;\r\n\t\t\t\t\twidth: 0;\r\n\t\t\t\t\theight: 0;\r\n\t\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t//complex header column group\r\n\t\t\t&.tabulator-col-group{\r\n\r\n\t\t\t\t//gelement to hold sub columns in column group\r\n\t\t\t\t.tabulator-col-group-cols{\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tdisplay: flex;\r\n\r\n\t\t\t\t\tborder-top:1px solid $headerBorderColor;\r\n\t\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\t\tmargin-right:-1px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//hide left resize handle on first column\r\n\t\t\t&:first-child{\r\n\t\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//header filter containing element\r\n\t\t\t.tabulator-header-filter{\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tmargin-top:2px;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\ttext-align: center;\r\n\r\n\t\t\t\t//styling adjustment for inbuilt editors\r\n\t\t\t\ttextarea{\r\n\t\t\t\t\theight:auto !important;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsvg{\r\n\t\t\t\t\tmargin-top: 3px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput{\r\n\t\t\t\t\t&::-ms-clear {\r\n\t\t\t\t\t\twidth : 0;\r\n\t\t\t\t\t\theight: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//styling child elements for sortable columns\r\n\t\t\t&.tabulator-sortable{\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tpadding-right:25px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"none\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"asc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowActive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"desc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\t\t\tborder-bottom: none;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t&.tabulator-col-vertical{\r\n\t\t\t\t.tabulator-col-content{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\twriting-mode: vertical-rl;\r\n\t\t\t\t\t\ttext-orientation: mixed;\r\n\r\n\t\t\t\t\t\tdisplay:flex;\r\n\t\t\t\t\t\talign-items:center;\r\n\t\t\t\t\t\tjustify-content:center;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\ttransform: rotate(180deg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-sortable{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\tpadding-top:20px;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t\tpadding-bottom:20px;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\t\tright:calc(50% - 6px);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tposition: absolute;\r\n\r\n\t\t\t// background-color: inherit;\r\n\r\n\t\t\tz-index: 10;\r\n\r\n\t\t\t&.tabulator-frozen-left{\r\n\t\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-frozen-right{\r\n\t\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\tbackground:lighten($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:lighten($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\t\t\tborder-bottom:1px solid $headerBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen-rows-holder{\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\t&:empty{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//scrolling element to hold table\r\n\t.tabulator-tableHolder{\r\n\t\tposition:relative;\r\n\t\twidth:100%;\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:auto;\r\n\t\t-webkit-overflow-scrolling: touch;\r\n\r\n\t\t&:focus{\r\n\t\t\toutline: none;\r\n\t\t}\r\n\r\n\t\t//default placeholder element\r\n\t\t.tabulator-placeholder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t&[tabulator-render-mode=\"virtual\"]{\r\n\t\t\t\tmin-height:100%;\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\r\n\t\t\twidth:100%;\r\n\r\n\t\t\tspan{\r\n\t\t\t\tdisplay: inline-block;\r\n\r\n\t\t\t\tmargin:0 auto;\r\n\t\t\t\tpadding:10px;\r\n\r\n\t\t\t\tcolor:#ccc;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//element to hold table rows\r\n\t\t.tabulator-table{\r\n\t\t\tposition:relative;\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tbackground-color:$rowBackgroundColor;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\toverflow:visible;\r\n\t\t\tcolor:$rowTextColor;\r\n\r\n\t\t\t//row element\r\n\t\t\t.tabulator-row{\r\n\t\t\t\t&.tabulator-calcs{\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t\tbackground:darken($rowAltBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t\t&.tabulator-calcs-top{\r\n\t\t\t\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-calcs-bottom{\r\n\t\t\t\t\t\tborder-top:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t//footer element\r\n\t.tabulator-footer{\r\n\t\tpadding:5px 10px;\r\n\t\tborder-top:1px solid $footerSeperatorColor;\r\n\t\tbackground-color: $footerBackgroundColor;\r\n\t\ttext-align: right;\r\n\t\tcolor: $footerTextColor;\r\n\t\tfont-weight:bold;\r\n\t\twhite-space:nowrap;\r\n\t\tuser-select:none;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\twidth:calc(100% + 20px);\r\n\t\t\tmargin:-5px -10px 5px -10px;\r\n\r\n\t\t\ttext-align: left;\r\n\r\n\t\t\tbackground:lighten($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:lighten($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-bottom:1px solid $rowBorderColor;\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&:only-child{\r\n\t\t\t\tmargin-bottom:-5px;\r\n\t\t\t\tborder-bottom:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-paginator{\r\n\t\t\tcolor: $footerTextColor;\r\n\t\t\tfont-family:inherit;\r\n\t\t\tfont-weight:inherit;\r\n\t\t\tfont-size:inherit;\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-page-size{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 5px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\t\t}\r\n\r\n\t\t.tabulator-pages{\r\n\t\t\tmargin:0 7px;\r\n\t\t}\r\n\r\n\t\t//pagination button\r\n\t\t.tabulator-page{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 2px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\r\n\t\t\tbackground:rgba(255,255,255,.2);\r\n\r\n\t\t\t&.active{\r\n\t\t\t\tcolor:$footerActiveColor;\r\n\t\t\t}\r\n\r\n\t\t\t&:disabled{\r\n\t\t\t\topacity:.5;\r\n\t\t\t}\r\n\r\n\t\t\t&:not(.disabled){\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground:rgba(0,0,0,.2);\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//column resize handles\r\n\t.tabulator-col-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\ttop:0;\r\n\t\tbottom:0;\r\n\t\twidth:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\tleft:0;\r\n\t\t\tright:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ew-resize;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//holding div that contains loader and covers tabulator element to prevent interaction\r\n\t.tabulator-loader{\r\n\t\tposition:absolute;\r\n\t\tdisplay: flex;\r\n\t\talign-items:center;\r\n\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tz-index:100;\r\n\r\n\t\theight:100%;\r\n\t\twidth:100%;\r\n\t\tbackground:rgba(0,0,0,.4);\r\n\t\ttext-align:center;\r\n\r\n\t\t//loading message element\r\n\t\t.tabulator-loader-msg{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 auto;\r\n\t\t\tpadding:10px 20px;\r\n\r\n\t\t\tborder-radius:10px;\r\n\r\n\t\t\tbackground:#fff;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:16px;\r\n\r\n\t\t\t//loading message\r\n\t\t\t&.tabulator-loading{\r\n\t\t\t\tborder:4px solid #333;\r\n\t\t\t\tcolor:#000;\r\n\t\t\t}\r\n\r\n\t\t\t//error message\r\n\t\t\t&.tabulator-error{\r\n\t\t\t\tborder:4px solid #D00;\r\n\t\t\t\tcolor:#590000;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//row element\r\n.tabulator-row{\r\n\tposition: relative;\r\n\tbox-sizing: border-box;\r\n\tmin-height:$textSize + ($headerMargin * 2);\r\n\tbackground-color: $rowBackgroundColor;\r\n\r\n\r\n\t&.tabulator-row-even{\r\n\t\tbackground-color: $rowAltBackgroundColor;\r\n\t}\r\n\r\n\t&.tabulator-selectable:hover{\r\n\t\tbackground-color:$rowHoverBackground;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-selected{\r\n\t\tbackground-color:$rowSelectedBackground;\r\n\t}\r\n\r\n\t&.tabulator-selected:hover{\r\n\t\tbackground-color:$rowSelectedBackgroundHover;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-row-moving{\r\n\t\tborder:1px solid #000;\r\n\t\tbackground:#fff;\r\n\t}\r\n\r\n\t&.tabulator-moving{\r\n\t\tposition: absolute;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpointer-events: none;\r\n\t\tz-index:15;\r\n\t}\r\n\r\n\t//row resize handles\r\n\t.tabulator-row-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\tbottom:0;\r\n\t\tleft:0;\r\n\t\theight:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\ttop:0;\r\n\t\t\tbottom:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ns-resize;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-frozen{\r\n\t\tdisplay: inline-block;\r\n\t\tposition: absolute;\r\n\r\n\t\tbackground-color: inherit;\r\n\r\n\t\tz-index: 10;\r\n\r\n\t\t&.tabulator-frozen-left{\r\n\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t&.tabulator-frozen-right{\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-responsive-collapse{\r\n\t\tbox-sizing:border-box;\r\n\r\n\t\tpadding:5px;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\t&:empty{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\ttable{\r\n\t\t\tfont-size:$textSize;\r\n\r\n\t\t\ttr{\r\n\t\t\t\ttd{\r\n\t\t\t\t\tposition: relative;\r\n\r\n\t\t\t\t\t&:first-of-type{\r\n\t\t\t\t\t\tpadding-right:10px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//cell element\r\n\t.tabulator-cell{\r\n\t\tdisplay:inline-block;\r\n\t\tposition: relative;\r\n\t\tbox-sizing:border-box;\r\n\t\tpadding:4px;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tvertical-align:middle;\r\n\t\twhite-space:nowrap;\r\n\t\toverflow:hidden;\r\n\t\ttext-overflow:ellipsis;\r\n\r\n\t\t&.tabulator-editing{\r\n\t\t\tborder:1px solid $editBoxColor;\r\n\t\t\tpadding: 0;\r\n\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-validation-fail{\r\n\t\t\tborder:1px solid $errorColor;\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\r\n\t\t\t\tcolor: $errorColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//hide left resize handle on first column\r\n\t\t&:first-child{\r\n\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//movable row handle\r\n\t\t&.tabulator-row-handle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\t//handle holder\r\n\t\t\t.tabulator-row-handle-box{\r\n\t\t\t\twidth:80%;\r\n\r\n\t\t\t\t//Hamburger element\r\n\t\t\t\t.tabulator-row-handle-bar{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\theight:3px;\r\n\t\t\t\t\tmargin-top:2px;\r\n\t\t\t\t\tbackground:#666;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-branch{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:9px;\r\n\t\t\twidth:7px;\r\n\r\n\t\t\tmargin-top:-9px;\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control{\r\n\r\n\t\t\tdisplay:inline-flex;\r\n\t\t\tjustify-content:center;\r\n\t\t\talign-items:center;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:11px;\r\n\t\t\twidth:11px;\r\n\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder:1px solid $rowTextColor;\r\n\t\t\tborder-radius:2px;\r\n\t\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\t\toverflow:hidden;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\tcursor:pointer;\r\n\t\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: transparent;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-expand{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-responsive-collapse-toggle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\theight:15px;\r\n\t\t\twidth:15px;\r\n\r\n\t\t\tborder-radius:20px;\r\n\t\t\tbackground:#666;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:1.1em;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\topacity:.7;\r\n\t\t\t}\r\n\r\n\t\t\t&.open{\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\t\tdisplay:initial;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-open{\r\n\t\t\t\t\tdisplay:none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\tdisplay:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-traffic-light{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\theight:14px;\r\n\t\t\twidth:14px;\r\n\r\n\t\t\tborder-radius:14px;\r\n\t\t}\r\n\t}\r\n\r\n\t//row grouping element\r\n\t&.tabulator-group{\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:1px solid #999;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #999;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:#ccc;\r\n\t\tfont-weight:bold;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\tpadding-left:30px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\tpadding-left:50px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\tpadding-left:70px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\tpadding-left:90px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\tpadding-left:110px;\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:#d00;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n.tabulator-menu{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\tbox-shadow: 0 0 5px 0 rgba(0, 0, 0, .2);\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-menu-item{\r\n\r\n\t\tpadding:5px 10px;\r\n\r\n\t\tuser-select: none;\r\n\r\n\t\t&.tabulator-menu-item-disabled{\r\n\t\t\topacity: .5;\r\n\t\t}\r\n\r\n\t\t&:not(.tabulator-menu-item-disabled):hover{\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground: $rowAltBackgroundColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-menu-separator{\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t}\r\n}\r\n\r\n.tabulator-edit-select-list{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tmax-height:200px;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-edit-select-list-item{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\r\n\t\t&.active{\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\r\n\t\t\t&.focused{\r\n\t\t\t\toutline:1px solid rgba($rowBackgroundColor, .5);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.focused{\r\n\t\t\toutline:1px solid $editBoxColor;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-notice{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\ttext-align: center;\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-group{\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpadding:4px;\r\n\t\tpadding-top:6px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\tfont-weight:bold;\r\n\t}\r\n}\r\n\r\n// Table print styling\r\n\r\n.tabulator-print-fullscreen{\r\n\tposition: absolute;\r\n\ttop:0;\r\n\tbottom:0;\r\n\tleft:0;\r\n\tright:0;\r\n\r\n\tz-index: 10000;\r\n}\r\n\r\nbody.tabulator-print-fullscreen-hide>*:not(.tabulator-print-fullscreen){\r\n\tdisplay:none !important;\r\n}\r\n\r\n.tabulator-print-table{\r\n\tborder-collapse: collapse;\r\n\r\n\t.tabulator-data-tree-branch{\r\n\t\tdisplay:inline-block;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:9px;\r\n\t\twidth:7px;\r\n\r\n\t\tmargin-top:-9px;\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\tborder-left:2px solid $rowBorderColor;\r\n\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t}\r\n\r\n\t//row grouping element\r\n\t.tabulator-print-table-group{\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:1px solid #999;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #999;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:#ccc;\r\n\t\tfont-weight:bold;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:30px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:50px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:70px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:90px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:110px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:#d00;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-data-tree-control{\r\n\r\n\t\tdisplay:inline-flex;\r\n\t\tjustify-content:center;\r\n\t\talign-items:center;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:11px;\r\n\t\twidth:11px;\r\n\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder:1px solid $rowTextColor;\r\n\t\tborder-radius:2px;\r\n\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\toverflow:hidden;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: transparent;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-expand{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n"]}
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator {
- position: relative;
- border: 1px solid #293146;
- background-color: #222;
- overflow: hidden;
- font-size: 14px;
- text-align: left;
- -ms-transform: translatez(0);
- transform: translatez(0);
-}
-
-.tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table {
- min-width: 100%;
-}
-
-.tabulator[tabulator-layout="fitDataTable"] {
- display: inline-block;
-}
-
-.tabulator.tabulator-block-select {
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator .tabulator-header {
- position: relative;
- box-sizing: border-box;
- width: 100%;
- border-bottom: 1px solid #999;
- background-color: #293146;
- color: #fff;
- font-weight: bold;
- white-space: nowrap;
- overflow: hidden;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-header.tabulator-header-hidden {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- border-right: 1px solid #aaa;
- background-color: #293146;
- text-align: left;
- vertical-align: bottom;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-moving {
- position: absolute;
- border: 1px solid #999;
- background: #1a1a1a;
- pointer-events: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
- box-sizing: border-box;
- position: relative;
- padding: 4px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button {
- padding: 0 8px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover {
- cursor: pointer;
- opacity: .6;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
- box-sizing: border-box;
- width: 100%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- vertical-align: bottom;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
- box-sizing: border-box;
- width: 100%;
- border: 1px solid #999;
- padding: 1px;
- background: #444;
- color: #fff;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow {
- display: inline-block;
- position: absolute;
- top: 9px;
- right: 8px;
- width: 0;
- height: 0;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- border-top: 1px solid #aaa;
- overflow: hidden;
- margin-right: -1px;
-}
-
-.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
- position: relative;
- box-sizing: border-box;
- margin-top: 2px;
- width: 100%;
- text-align: center;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
- height: auto !important;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
- margin-top: 3px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input, .tabulator .tabulator-header .tabulator-col .tabulator-header-filter select {
- border: 1px solid #999;
- background: #444;
- color: #fff;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear {
- width: 0;
- height: 0;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
- padding-right: 25px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
- cursor: pointer;
- background-color: #1a1a1a;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #666;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow {
- border-top: 6px solid #666;
- border-bottom: none;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title {
- -ms-writing-mode: tb-rl;
- writing-mode: vertical-rl;
- text-orientation: mixed;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title {
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title {
- padding-right: 0;
- padding-top: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title {
- padding-right: 0;
- padding-bottom: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow {
- right: calc(50% - 6px);
-}
-
-.tabulator .tabulator-header .tabulator-frozen {
- display: inline-block;
- position: absolute;
- z-index: 10;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #888;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #888;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder {
- box-sizing: border-box;
- min-width: 600%;
- background: #1a1a1a !important;
- border-top: 1px solid #888;
- border-bottom: 1px solid #aaa;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
- background: #1a1a1a !important;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder {
- min-width: 600%;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty {
- display: none;
-}
-
-.tabulator .tabulator-tableHolder {
- position: relative;
- width: 100%;
- white-space: nowrap;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.tabulator .tabulator-tableHolder:focus {
- outline: none;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder {
- box-sizing: border-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode="virtual"] {
- min-height: 100%;
- min-width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder span {
- display: inline-block;
- margin: 0 auto;
- padding: 10px;
- color: #eee;
- font-weight: bold;
- font-size: 20px;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table {
- position: relative;
- display: inline-block;
- background-color: #666;
- white-space: nowrap;
- overflow: visible;
- color: #fff;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs {
- font-weight: bold;
- background: #373737 !important;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top {
- border-bottom: 2px solid #888;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom {
- border-top: 2px solid #888;
-}
-
-.tabulator .tabulator-col-resize-handle {
- position: absolute;
- right: 0;
- top: 0;
- bottom: 0;
- width: 5px;
-}
-
-.tabulator .tabulator-col-resize-handle.prev {
- left: 0;
- right: auto;
-}
-
-.tabulator .tabulator-col-resize-handle:hover {
- cursor: ew-resize;
-}
-
-.tabulator .tabulator-footer {
- padding: 5px 10px;
- border-top: 1px solid #999;
- background-color: #293146;
- text-align: right;
- color: #293146;
- font-weight: bold;
- white-space: nowrap;
- -ms-user-select: none;
- user-select: none;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder {
- box-sizing: border-box;
- width: calc(100% + 20px);
- margin: -5px -10px 5px -10px;
- text-align: left;
- background: #262626 !important;
- border-bottom: 1px solid #888;
- border-top: 1px solid #888;
- overflow: hidden;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
- background: #262626 !important;
- color: #fff;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
- margin-bottom: -5px;
- border-bottom: none;
-}
-
-.tabulator .tabulator-footer .tabulator-paginator label {
- color: #fff;
-}
-
-.tabulator .tabulator-footer .tabulator-page-size {
- display: inline-block;
- margin: 0 5px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
-}
-
-.tabulator .tabulator-footer .tabulator-pages {
- margin: 0 7px;
-}
-
-.tabulator .tabulator-footer .tabulator-page {
- display: inline-block;
- margin: 0 2px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
- background: rgba(255, 255, 255, 0.2);
- color: #293146;
- font-family: inherit;
- font-weight: inherit;
- font-size: inherit;
-}
-
-.tabulator .tabulator-footer .tabulator-page.active {
- color: #fff;
-}
-
-.tabulator .tabulator-footer .tabulator-page:disabled {
- opacity: .5;
-}
-
-.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
- color: #fff;
-}
-
-.tabulator .tabulator-loader {
- position: absolute;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- top: 0;
- left: 0;
- z-index: 100;
- height: 100%;
- width: 100%;
- background: rgba(0, 0, 0, 0.4);
- text-align: center;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg {
- display: inline-block;
- margin: 0 auto;
- padding: 10px 20px;
- border-radius: 10px;
- background: #fff;
- font-weight: bold;
- font-size: 16px;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading {
- border: 4px solid #293146;
- color: #000;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error {
- border: 4px solid #D00;
- color: #590000;
-}
-
-.tabulator-row {
- position: relative;
- box-sizing: border-box;
- min-height: 22px;
- background-color: #666;
-}
-
-.tabulator-row:nth-child(even) {
- background-color: #444;
-}
-
-.tabulator-row.tabulator-selectable:hover {
- background-color: #999;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-selected {
- background-color: #000;
-}
-
-.tabulator-row.tabulator-selected:hover {
- background-color: #888;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-moving {
- position: absolute;
- border-top: 1px solid #888;
- border-bottom: 1px solid #888;
- pointer-events: none !important;
- z-index: 15;
-}
-
-.tabulator-row .tabulator-row-resize-handle {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- height: 5px;
-}
-
-.tabulator-row .tabulator-row-resize-handle.prev {
- top: 0;
- bottom: auto;
-}
-
-.tabulator-row .tabulator-row-resize-handle:hover {
- cursor: ns-resize;
-}
-
-.tabulator-row .tabulator-frozen {
- display: inline-block;
- position: absolute;
- background-color: inherit;
- z-index: 10;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #888;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #888;
-}
-
-.tabulator-row .tabulator-responsive-collapse {
- box-sizing: border-box;
- padding: 5px;
- border-top: 1px solid #888;
- border-bottom: 1px solid #888;
-}
-
-.tabulator-row .tabulator-responsive-collapse:empty {
- display: none;
-}
-
-.tabulator-row .tabulator-responsive-collapse table {
- font-size: 14px;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td {
- position: relative;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
- padding-right: 10px;
-}
-
-.tabulator-row .tabulator-cell {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- padding: 4px;
- border-right: 1px solid #888;
- vertical-align: middle;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing {
- border: 1px solid #999;
- padding: 0;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select {
- border: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail {
- border: 1px solid #dd0000;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select {
- border: 1px;
- background: transparent;
- color: #dd0000;
-}
-
-.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
- width: 80%;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
- width: 100%;
- height: 3px;
- margin-top: 2px;
- background: #666;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #888;
- border-bottom: 2px solid #888;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #fff;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #fff;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #fff;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #fff;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
- height: 15px;
- width: 15px;
- border-radius: 20px;
- background: #fff;
- color: #666;
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover {
- opacity: .7;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close {
- display: initial;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-traffic-light {
- display: inline-block;
- height: 14px;
- width: 14px;
- border-radius: 14px;
-}
-
-.tabulator-row.tabulator-group {
- box-sizing: border-box;
- border-bottom: 1px solid #999;
- border-right: 1px solid #888;
- border-top: 1px solid #999;
- padding: 5px;
- padding-left: 10px;
- background: #ccc;
- font-weight: bold;
- color: #293146;
- min-width: 100%;
-}
-
-.tabulator-row.tabulator-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #666;
- border-bottom: 0;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-1 {
- padding-left: 30px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-2 {
- padding-left: 50px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-3 {
- padding-left: 70px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-4 {
- padding-left: 90px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-5 {
- padding-left: 110px;
-}
-
-.tabulator-row.tabulator-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-row.tabulator-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #666;
- vertical-align: middle;
-}
-
-.tabulator-row.tabulator-group span {
- margin-left: 10px;
- color: #666;
-}
-
-.tabulator-menu {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- background: #666;
- border: 1px solid #888;
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-menu .tabulator-menu-item {
- padding: 5px 10px;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled {
- opacity: .5;
-}
-
-.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover {
- cursor: pointer;
- background: #444;
-}
-
-.tabulator-menu .tabulator-menu-separator {
- border-top: 1px solid #888;
-}
-
-.tabulator-edit-select-list {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- max-height: 200px;
- background: #fff;
- border: 1px solid #888;
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item {
- padding: 4px;
- color: #666;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active {
- color: #999;
- background: #444;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused {
- outline: 1px solid rgba(153, 153, 153, 0.5);
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.focused {
- outline: 1px solid #444;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item:hover {
- cursor: pointer;
- color: #999;
- background: #666;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-notice {
- padding: 4px;
- color: #fff;
- text-align: center;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-group {
- border-bottom: 1px solid #888;
- padding: 4px;
- padding-top: 6px;
- color: #fff;
- font-weight: bold;
-}
-
-.tabulator-print-fullscreen {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 10000;
-}
-
-body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
- display: none !important;
-}
-
-.tabulator-print-table {
- border-collapse: collapse;
-}
-
-.tabulator-print-table .tabulator-print-table-group {
- box-sizing: border-box;
- border-bottom: 1px solid #999;
- border-right: 1px solid #888;
- border-top: 1px solid #999;
- padding: 5px;
- padding-left: 10px;
- background: #ccc;
- font-weight: bold;
- color: #293146;
- min-width: 100%;
-}
-
-.tabulator-print-table .tabulator-print-table-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #666;
- border-bottom: 0;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td {
- padding-left: 30px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td {
- padding-left: 50px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td {
- padding-left: 70px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td {
- padding-left: 90px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td {
- padding-left: 110px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #666;
- vertical-align: middle;
-}
-
-.tabulator-print-table .tabulator-print-table-group span {
- margin-left: 10px;
- color: #666;
-}
-
-.tabulator-print-table .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #888;
- border-bottom: 2px solid #888;
-}
-
-.tabulator-print-table .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #fff;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-print-table .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #fff;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #fff;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #fff;
-}
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator{position:relative;border:1px solid #333;background-color:#222;overflow:hidden;font-size:14px;text-align:left;transform:translatez(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableHolder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator .tabulator-header{position:relative;box-sizing:border-box;width:100%;border-bottom:1px solid #999;background-color:#333;color:#fff;font-weight:700;white-space:nowrap;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-col{display:inline-block;position:relative;box-sizing:border-box;border-right:1px solid #aaa;background-color:#333;text-align:left;vertical-align:bottom;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-moving{position:absolute;border:1px solid #999;background:#1a1a1a;pointer-events:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;position:relative;padding:4px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{box-sizing:border-box;width:100%;border:1px solid #999;padding:1px;background:#444;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{display:inline-block;position:absolute;top:9px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{position:relative;display:-ms-flexbox;display:flex;border-top:1px solid #aaa;overflow:hidden;margin-right:-1px}.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{position:relative;box-sizing:border-box;margin-top:2px;width:100%;text-align:center}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,.tabulator .tabulator-header .tabulator-col .tabulator-header-filter select{border:1px solid #999;background:#444;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{width:0;height:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{cursor:pointer;background-color:#1a1a1a}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #666}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-col-content .tabulator-arrow{border-top:6px solid #666;border-bottom:none}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-right:0;padding-bottom:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow{right:calc(50% - 6px)}.tabulator .tabulator-header .tabulator-frozen{display:inline-block;position:absolute;z-index:10}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #888}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #888}.tabulator .tabulator-header .tabulator-calcs-holder{box-sizing:border-box;min-width:600%;background:#1a1a1a!important;border-top:1px solid #888;border-bottom:1px solid #aaa;overflow:hidden}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#1a1a1a!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{min-width:600%}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableHolder{position:relative;width:100%;white-space:nowrap;overflow:auto;-webkit-overflow-scrolling:touch}.tabulator .tabulator-tableHolder:focus{outline:none}.tabulator .tabulator-tableHolder .tabulator-placeholder{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%;min-width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder span{display:inline-block;margin:0 auto;padding:10px;color:#eee;font-weight:700;font-size:20px}.tabulator .tabulator-tableHolder .tabulator-table{position:relative;display:inline-block;background-color:#666;white-space:nowrap;overflow:visible;color:#fff}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs{font-weight:700;background:#373737!important}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #888}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #888}.tabulator .tabulator-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px}.tabulator .tabulator-col-resize-handle.prev{left:0;right:auto}.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}.tabulator .tabulator-footer{padding:5px 10px;border-top:1px solid #999;background-color:#333;text-align:right;color:#333;font-weight:700;white-space:nowrap;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-footer .tabulator-calcs-holder{box-sizing:border-box;width:calc(100% + 20px);margin:-5px -10px 5px;text-align:left;background:#262626!important;border-bottom:1px solid #888;border-top:1px solid #888;overflow:hidden}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#262626!important;color:#fff}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px;border-bottom:none}.tabulator .tabulator-footer .tabulator-paginator label{color:#fff}.tabulator .tabulator-footer .tabulator-page-size{display:inline-block;margin:0 5px;padding:2px 5px;border:1px solid #aaa;border-radius:3px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid #aaa;border-radius:3px;background:hsla(0,0%,100%,.2);color:#333;font-family:inherit;font-weight:inherit;font-size:inherit}.tabulator .tabulator-footer .tabulator-page.active{color:#fff}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{cursor:pointer;background:rgba(0,0,0,.2);color:#fff}.tabulator .tabulator-loader{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:0;left:0;z-index:100;height:100%;width:100%;background:rgba(0,0,0,.4);text-align:center}.tabulator .tabulator-loader .tabulator-loader-msg{display:inline-block;margin:0 auto;padding:10px 20px;border-radius:10px;background:#fff;font-weight:700;font-size:16px}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading{border:4px solid #333;color:#000}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error{border:4px solid #d00;color:#590000}.tabulator-row{position:relative;box-sizing:border-box;min-height:22px;background-color:#666}.tabulator-row:nth-child(2n){background-color:#444}.tabulator-row.tabulator-selectable:hover{background-color:#999;cursor:pointer}.tabulator-row.tabulator-selected{background-color:#000}.tabulator-row.tabulator-selected:hover{background-color:#888;cursor:pointer}.tabulator-row.tabulator-moving{position:absolute;border-top:1px solid #888;border-bottom:1px solid #888;pointer-events:none!important;z-index:15}.tabulator-row .tabulator-row-resize-handle{position:absolute;right:0;bottom:0;left:0;height:5px}.tabulator-row .tabulator-row-resize-handle.prev{top:0;bottom:auto}.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}.tabulator-row .tabulator-frozen{display:inline-block;position:absolute;background-color:inherit;z-index:10}.tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #888}.tabulator-row .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #888}.tabulator-row .tabulator-responsive-collapse{box-sizing:border-box;padding:5px;border-top:1px solid #888;border-bottom:1px solid #888}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{display:inline-block;position:relative;box-sizing:border-box;padding:4px;border-right:1px solid #888;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #999;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{border:1px;background:transparent}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{border:1px;background:transparent;color:#d00}.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator-row .tabulator-cell.tabulator-row-handle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{width:100%;height:3px;margin-top:2px;background:#666}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #888;border-bottom:2px solid #888}.tabulator-row .tabulator-cell .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #fff;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#fff}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#fff}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#fff}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;height:15px;width:15px;border-radius:20px;background:#fff;color:#666;font-weight:700;font-size:1.1em}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{opacity:.7}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open,.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{display:inline-block;height:14px;width:14px;border-radius:14px}.tabulator-row.tabulator-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #888;border-top:1px solid #999;padding:5px;padding-left:10px;background:#ccc;font-weight:700;color:#333;min-width:100%}.tabulator-row.tabulator-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-row.tabulator-group span{margin-left:10px;color:#666}.tabulator-menu{position:absolute;display:inline-block;box-sizing:border-box;background:#666;border:1px solid #888;box-shadow:0 0 5px 0 rgba(0,0,0,.2);font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-menu .tabulator-menu-item{padding:5px 10px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{cursor:pointer;background:#444}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #888}.tabulator-edit-select-list{position:absolute;display:inline-block;box-sizing:border-box;max-height:200px;background:#fff;border:1px solid #888;font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-edit-select-list .tabulator-edit-select-list-item{padding:4px;color:#666}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#999;background:#444}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,60%,.5)}.tabulator-edit-select-list .tabulator-edit-select-list-item.focused{outline:1px solid #444}.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{cursor:pointer;color:#999;background:#666}.tabulator-edit-select-list .tabulator-edit-select-list-notice{padding:4px;color:#fff;text-align:center}.tabulator-edit-select-list .tabulator-edit-select-list-group{border-bottom:1px solid #888;padding:4px;padding-top:6px;color:#fff;font-weight:700}.tabulator-print-fullscreen{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-print-table-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #888;border-top:1px solid #999;padding:5px;padding-left:10px;background:#ccc;font-weight:700;color:#333;min-width:100%}.tabulator-print-table .tabulator-print-table-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-print-table .tabulator-print-table-group span{margin-left:10px;color:#666}.tabulator-print-table .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #888;border-bottom:2px solid #888}.tabulator-print-table .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #fff;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-print-table .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#fff}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#fff}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#fff}
-/*# sourceMappingURL=tabulator_midnight.min.css.map */
+++ /dev/null
-{"version":3,"sources":["tabulator_midnight.scss"],"names":[],"mappings":"AAyCA,WACC,kBAAkB,AAClB,sBAtCgB,AAuChB,sBAxCqB,AAyCrB,gBAAe,AACf,eAxCa,AAyCb,gBAAgB,AAMhB,uBAAwB,CAqgBxB,AAjhBD,iFAiBI,cAAc,CACd,AAlBJ,0CAuBE,oBAAqB,CACrB,AAxBF,kCA2BE,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CACjB,AA5BF,6BAgCE,kBAAiB,AACjB,sBAAsB,AAEtB,WAAU,AAEV,6BAlEwB,AAmExB,sBAtEyB,AAuEzB,WAtEmB,AAuEnB,gBAAgB,AAEhB,mBAAmB,AACnB,gBAAe,AAEf,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CA6PpB,AA7SF,qDAmDG,YAAY,CACZ,AApDH,4CAwDG,qBAAoB,AACpB,kBAAiB,AACjB,sBAAqB,AACrB,4BAzFoB,AA0FpB,sBA5FwB,AA6FxB,gBAAe,AACf,sBAAsB,AACtB,eAAgB,CA8LhB,AA7PH,6DAkEI,kBAAkB,AAClB,sBAhGsB,AAiGtB,mBAA8C,AAC9C,mBAAoB,CACpB,AAtEJ,mEA0EI,sBAAqB,AACrB,kBAAkB,AAClB,WAAW,CAkDX,AA9HJ,iGAgFK,aAAc,CAMd,AAtFL,uGAmFM,eAAe,AACf,UAAW,CACX,AArFN,wFA0FK,sBAAqB,AACrB,WAAW,AAEX,mBAAmB,AACnB,gBAAgB,AAChB,uBAAuB,AACvB,qBAAqB,CAerB,AA/GL,gHAoGM,sBAAsB,AACtB,WAAW,AAEX,sBAAqB,AAErB,YAAW,AAEX,gBAAgB,AAChB,UAAW,CACX,AA7GN,oFAmHK,qBAAqB,AACrB,kBAAkB,AAClB,QAAO,AACP,UAAS,AACT,QAAQ,AACR,SAAS,AACT,kCAAkC,AAClC,mCAAmC,AACnC,4BAnJmB,CAoJnB,AA5HL,0FAqIK,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AAEb,0BAtKkB,AAuKlB,gBAAgB,AAEhB,iBAAiB,CACjB,AA5IL,0FAkJK,YAAa,CACb,AAnJL,qEAwJI,kBAAkB,AAClB,sBAAsB,AACtB,eAAc,AACd,WAAU,AACV,iBAAkB,CAuBlB,AAnLJ,8EAgKK,qBAAsB,CACtB,AAjKL,yEAoKK,cAAe,CACf,AArKL,uJAwKK,sBAAqB,AACrB,gBAAgB,AAChB,UAAW,CACX,AA3KL,sFA+KM,QAAS,AACT,QAAS,CACT,AAjLN,oFAwLK,kBAAkB,CAClB,AAzLL,qEA4LK,eAAc,AACd,wBAAoD,CACpD,AA9LL,uHAmMM,gBAAgB,AAChB,4BA5NkB,CA6NlB,AArMN,sHA0MM,gBAAgB,AAChB,4BApOgB,CAqOhB,AA5MN,uHAiNM,0BA1OgB,AA2OhB,kBAAmB,CACnB,AAnNN,+GA0NM,uBAAyB,AAAzB,yBAAyB,AACzB,uBAAuB,AAEvB,oBAAY,AAAZ,aAAY,AACZ,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,sBAAsB,CACtB,AAhON,oHAqOM,wBAAyB,CACzB,AAtON,2GA2OM,gBAAe,AACf,gBAAgB,CAChB,AA7ON,uIAiPO,gBAAe,AACf,mBAAmB,CACnB,AAnPP,uGAwPM,qBAAqB,CACrB,AAzPN,+CAgQG,qBAAqB,AACrB,kBAAkB,AAIlB,UAAW,CASX,AA9QH,qEAwQI,2BA3RgB,CA4RhB,AAzQJ,sEA4QI,0BA/RgB,CAgShB,AA7QJ,qDAkRG,sBAAqB,AACrB,eAAc,AAEd,6BAAyD,AAUzD,0BAlTiB,AAmTjB,6BA9ToB,AAgUpB,eAAgB,CAChB,AAnSH,oEAwRI,4BAAyD,CAKzD,AA7RJ,iGA2RK,YAAa,CACb,AA5RL,2DAsSG,cAAc,CAKd,AA3SH,iEAySI,YAAa,CACb,AA1SJ,kCAiTE,kBAAiB,AACjB,WAAU,AACV,mBAAmB,AACnB,cAAa,AACb,gCAAiC,CAuDjC,AA5WF,wCAwTG,YAAa,CACb,AAzTH,yDA6TG,sBAAqB,AACrB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAOlB,UAAU,CAYV,AAlVH,wFAkUI,gBAAe,AACf,cAAc,CACd,AApUJ,8DAyUI,qBAAqB,AAErB,cAAa,AACb,aAAY,AAEZ,WAAU,AACV,gBAAiB,AACjB,cAAe,CACf,AAjVJ,mDAsVG,kBAAiB,AACjB,qBAAoB,AACpB,sBA7WqB,AA8WrB,mBAAmB,AACnB,iBAAgB,AAChB,UA7We,CA6Xf,AA3WH,kFA+VK,gBAAiB,AACjB,4BAAwD,CASxD,AAzWL,sGAmWM,4BAtXc,CAuXd,AApWN,yGAuWM,yBA1Xc,CA2Xd,AAxWN,wCAgXE,kBAAiB,AACjB,QAAO,AACP,MAAK,AACL,SAAQ,AACR,SAAS,CAUT,AA9XF,6CAuXG,OAAM,AACN,UAAU,CACV,AAzXH,8CA4XG,gBAAgB,CAChB,AA7XH,6BAmYE,iBAAgB,AAChB,0BAzYwB,AA0YxB,sBA7YyB,AA8YzB,iBAAgB,AAChB,WA9YmB,AA+YnB,gBAAgB,AAChB,mBAAkB,AAClB,qBAAgB,AAAhB,iBAAgB,AAEhB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAuFpB,AAteF,qDAkZG,sBAAqB,AACrB,wBAAuB,AACvB,sBAA2B,AAE3B,gBAAgB,AAEhB,6BAAwD,AAWxD,6BAtbiB,AAubjB,0BAvbiB,AAybjB,eAAgB,CAMhB,AA5aH,oEA2ZI,6BAAwD,AACxD,UA3biB,CAgcjB,AAjaJ,iGA+ZK,YAAa,CACb,AAhaL,gEAyaI,mBAAkB,AAClB,kBAAkB,CAClB,AA3aJ,wDAibI,UAAU,CACV,AAlbJ,kDAubG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBAlcoB,AAmcpB,iBAAiB,CACjB,AA9bH,8CAkcG,YAAY,CACZ,AAncH,6CAucG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBAldoB,AAmdpB,kBAAiB,AAEjB,8BAA+B,AAE/B,WAxdkB,AAydlB,oBAAmB,AACnB,oBAAmB,AACnB,iBAAiB,CAiBjB,AAreH,oDAudI,UA3dmB,CA4dnB,AAxdJ,sDA2dI,UAAU,CACV,AA5dJ,kEAgeK,eAAc,AACd,0BAAyB,AACzB,UAAU,CACV,AAneL,6BA0eE,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAElB,MAAK,AACL,OAAM,AACN,YAAW,AAEX,YAAW,AACX,WAAU,AACV,0BAAyB,AACzB,iBAAiB,CA2BjB,AAhhBF,mDAyfG,qBAAoB,AAEpB,cAAa,AACb,kBAAiB,AAEjB,mBAAkB,AAElB,gBAAe,AACf,gBAAgB,AAChB,cAAc,CAad,AA/gBH,qEAsgBI,sBAAqB,AACrB,UAAU,CACV,AAxgBJ,mEA4gBI,sBAAqB,AACrB,aAAa,CACb,AAMJ,eACC,kBAAkB,AAClB,sBAAsB,AAEtB,gBAA0C,AAC1C,qBA9iBuB,CA05BvB,AAjXD,6BAQE,qBAhjByB,CAijBzB,AATF,0CAYE,sBAjjBsB,AAkjBtB,cAAe,CACf,AAdF,kCAiBE,qBApjB0B,CAqjB1B,AAlBF,wCAqBE,sBAvjB+B,AAwjB/B,cAAe,CACf,AAvBF,gCA0BE,kBAAkB,AAElB,0BAnkBkB,AAokBlB,6BApkBkB,AAskBlB,8BAA+B,AAC/B,UAAU,CACV,AAjCF,4CAqCE,kBAAiB,AACjB,QAAO,AACP,SAAQ,AACR,OAAM,AACN,UAAU,CAUV,AAnDF,iDA4CG,MAAK,AACL,WAAW,CACX,AA9CH,kDAiDG,gBAAgB,CAChB,AAlDH,iCAsDE,qBAAqB,AACrB,kBAAkB,AAElB,yBAAyB,AAEzB,UAAW,CASX,AApEF,uDA8DG,2BArmBiB,CAsmBjB,AA/DH,wDAkEG,0BAzmBiB,CA0mBjB,AAnEH,8CAuEE,sBAAqB,AAErB,YAAW,AAEX,0BAlnBkB,AAmnBlB,4BAnnBkB,CAsoBlB,AA/FF,oDA+EG,YAAY,CACZ,AAhFH,oDAmFG,cA1oBW,CAqpBX,AA9FH,0DAuFK,iBAAkB,CAKlB,AA5FL,wEA0FM,kBAAkB,CAClB,AA3FN,+BAoGE,qBAAoB,AACpB,kBAAkB,AAClB,sBAAqB,AACrB,YAAW,AACX,4BA/oBkB,AAgpBlB,sBAAqB,AACrB,mBAAkB,AAClB,gBAAe,AACf,sBAAsB,CA0LtB,AAtSF,iDAgHG,sBAhpBe,AAipBf,SAAU,CAMV,AAvHH,+GAoHI,WAAU,AACV,sBAAsB,CACtB,AAtHJ,yDA0HG,qBAzpBgB,CAgqBhB,AAjIH,+HA4HI,WAAU,AACV,uBAAsB,AAEtB,UA9pBe,CA+pBf,AAhIJ,6EAsII,YAAa,CACb,AAvIJ,oDA6IG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAElB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAcpB,AAjKH,8EAuJI,SAAS,CAST,AAhKJ,wGA2JK,WAAU,AACV,WAAU,AACV,eAAc,AACd,eAAe,CACf,AA/JL,2DAoKG,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BAttBiB,AAutBjB,4BAvtBiB,CAwtBjB,AAjLH,4DAqLG,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBAruBe,AAsuBf,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAmDf,AAtPH,kEAsMI,eAAc,AACd,yBAA4B,CAC5B,AAxMJ,kGA2MI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AA9NJ,wGAoNK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAlwBa,CAmwBb,AA7NL,gGAiOI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eA7wBc,CA0xBd,AApPJ,sGA0OK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAxxBa,CAyxBb,AAnPL,qEAyPG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,oBAAoB,AAEpB,YAAW,AACX,WAAU,AAEV,mBAAkB,AAClB,gBAAe,AAEf,WAjzBqB,AAkzBrB,gBAAgB,AAChB,eAAe,CAmBf,AA7RH,2EA6QI,UAAU,CACV,AA9QJ,sHAkRK,eAAe,CACf,AAnRL,sOA2RI,YAAY,CACZ,AA5RJ,wDAgSG,qBAAqB,AACrB,YAAW,AACX,WAAU,AAEV,kBAAkB,CAClB,AArSH,+BA4SE,sBAAqB,AACrB,6BAA4B,AAC5B,4BAr1BkB,AAs1BlB,0BAAyB,AACzB,YAAW,AACX,kBAAiB,AACjB,gBAAe,AACf,gBAAgB,AAChB,WAAU,AAEV,cAAe,CA0Df,AAhXF,qCAyTG,eAAc,AACd,+BAA+B,CAC/B,AA3TH,wEA+TI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,0BA/2BkB,AAg3BlB,eAAgB,CAChB,AApUJ,uDAwUG,iBAAiB,CACjB,AAzUH,uDA4UG,iBAAiB,CACjB,AA7UH,uDAgVG,iBAAiB,CACjB,AAjVH,uDAoVG,iBAAiB,CACjB,AArVH,uDAwVG,kBAAkB,CAClB,AAzVH,uDA4VG,oBAAqB,CACrB,AA7VH,gDAiWG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,2BAr5BmB,AAs5BnB,qBAAqB,CACrB,AA1WH,oCA6WG,iBAAgB,AAChB,UAAU,CACV,AAIH,gBACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,gBAj6BuB,AAk6BvB,sBAh6BmB,AAi6BnB,oCAAuC,AAEvC,eAn7Ba,AAq7Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CAqBd,AAnCD,qCAkBE,iBAAgB,AAEhB,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CAUjB,AA9BF,kEAuBG,UAAW,CACX,AAxBH,8EA2BG,eAAe,AACf,eAv7BwB,CAw7BxB,AA7BH,0CAiCE,yBA37BkB,CA47BlB,AAGF,4BACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,iBAAgB,AAEhB,gBAr8BiB,AAs8BjB,sBAv8BmB,AAy8BnB,eAz9Ba,AA29Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CA6Cd,AA5DD,6DAkBE,YAAW,AAEX,UAr9BsB,CA2+BtB,AA1CF,oEAuBG,WA/8Be,AAg9Bf,eAx9BwB,CA69BxB,AA7BH,4EA2BI,mCAn9Bc,CAo9Bd,AA5BJ,qEAgCG,sBAh+BwB,CAi+BxB,AAjCH,mEAqCG,eAAc,AAEd,WA/9Be,AAg+Bf,eAz+BqB,CA0+BrB,AAzCH,+DA6CE,YAAW,AAEX,WA7+BgB,AA8+BhB,iBAAkB,CAClB,AAjDF,8DAoDE,6BAn/BkB,AAq/BlB,YAAW,AACX,gBAAe,AAEf,WAv/BgB,AAw/BhB,eAAgB,CAChB,AAKF,4BACC,kBAAkB,AAClB,MAAK,AACL,SAAQ,AACR,OAAM,AACN,QAAO,AAEP,aAAc,CACd,AAED,uEACC,sBAAuB,CACvB,AAED,uBACC,wBAAyB,CAwKzB,AAzKD,oDAME,sBAAqB,AACrB,6BAA4B,AAC5B,4BArhCkB,AAshClB,0BAAyB,AACzB,YAAW,AACX,kBAAiB,AACjB,gBAAe,AACf,gBAAgB,AAChB,WAAU,AAEV,cAAe,CAoEf,AApFF,0DAmBG,eAAc,AACd,+BAA+B,CAC/B,AArBH,6FAyBI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,0BA/iCkB,AAgjClB,eAAgB,CAChB,AA9BJ,+EAmCI,2BAA4B,CAC5B,AApCJ,+EAyCI,2BAA4B,CAC5B,AA1CJ,+EA+CI,2BAA4B,CAC5B,AAhDJ,+EAqDI,2BAA4B,CAC5B,AAtDJ,+EA2DI,4BAA6B,CAC7B,AA5DJ,4EAgEG,oBAAqB,CACrB,AAjEH,qEAqEG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,2BA/lCmB,AAgmCnB,qBAAqB,CACrB,AA9EH,yDAiFG,iBAAgB,AAChB,UAAU,CACV,AAnFH,mDAuFE,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BA/mCkB,AAgnClB,4BAhnCkB,CAinClB,AApGF,oDAwGE,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBA9nCgB,AA+nChB,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAkDf,AAxKF,0DAyHG,eAAc,AACd,yBAA4B,CAC5B,AA3HH,0FA8HG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAjJH,gGAuII,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA3pCc,CA4pCd,AAhJJ,wFAoJG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eAtqCe,CAmrCf,AAvKH,8FA6JI,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAjrCc,CAkrCd","file":"tabulator_midnight.min.css","sourcesContent":["/* Tabulator v4.7.0 (c) Oliver Folkerd */\n\n\r\n//Main Theme Variables\r\n$backgroundColor: #222 !default; //background color of tabulator\r\n$borderColor:#333 !default; //border to tabulator\r\n$textSize:14px !default; //table text size\r\n\r\n//header themeing\r\n$headerBackgroundColor:#333 !default; //border to tabulator\r\n$headerTextColor:#fff !default; //header text colour\r\n$headerBorderColor:#aaa !default; //header border color\r\n$headerSeperatorColor:#999 !default; //header bottom seperator color\r\n$headerMargin:4px !default; //padding round header\r\n\r\n//column header arrows\r\n$sortArrowActive: #666 !default;\r\n$sortArrowInactive: #bbb !default;\r\n\r\n//row themeing\r\n$rowBackgroundColor:#666 !default; //table row background color\r\n$rowAltBackgroundColor:#444 !default; //table row background color\r\n$rowBorderColor:#888 !default; //table border color\r\n$rowTextColor:#fff !default; //table text color\r\n$rowHoverBackground:#999 !default; //row background color on hover\r\n\r\n$rowSelectedBackground: #000 !default; //row background color when selected\r\n$rowSelectedBackgroundHover: #888 !default;//row background color when selected and hovered\r\n\r\n$editBoxColor:#999 !default; //border color for edit boxes\r\n$errorColor:#dd0000 !default; //error indication\r\n\r\n//footer themeing\r\n$footerBackgroundColor:#333 !default; //border to tabulator\r\n$footerTextColor:#333 !default; //footer text colour\r\n$footerBorderColor:#aaa !default; //footer border color\r\n$footerSeperatorColor:#999 !default; //footer bottom seperator color\r\n$footerActiveColor:#fff !default; //footer bottom active text color\r\n\r\n\r\n//Tabulator Containing Element\r\n.tabulator{\r\n\tposition: relative;\r\n\tborder: 1px solid $borderColor;\r\n\tbackground-color: $backgroundColor;\r\n\toverflow:hidden;\r\n\tfont-size:$textSize;\r\n\ttext-align: left;\r\n\r\n\t-webkit-transform: translatez(0);\r\n\t-moz-transform: translatez(0);\r\n\t-ms-transform: translatez(0);\r\n\t-o-transform: translatez(0);\r\n\ttransform: translatez(0);\r\n\r\n\t&[tabulator-layout=\"fitDataFill\"]{\r\n\t\t.tabulator-tableHolder{\r\n\t\t\t.tabulator-table{\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&[tabulator-layout=\"fitDataTable\"]{\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\r\n\t&.tabulator-block-select{\r\n\t\tuser-select: none;\r\n\t}\r\n\r\n\t//column header containing element\r\n\t.tabulator-header{\r\n\t\tposition:relative;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\twidth:100%;\r\n\r\n\t\tborder-bottom:1px solid $headerSeperatorColor;\r\n\t\tbackground-color: $headerBackgroundColor;\r\n\t\tcolor: $headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:hidden;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t&.tabulator-header-hidden{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\t//individual column header element\r\n\t\t.tabulator-col{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition:relative;\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tborder-right:1px solid $headerBorderColor;\r\n\t\t\tbackground-color: $headerBackgroundColor;\r\n\t\t\ttext-align:left;\r\n\t\t\tvertical-align: bottom;\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&.tabulator-moving{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tborder:1px solid $headerSeperatorColor;\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 10%);\r\n\t\t\t\tpointer-events: none;\r\n\t\t\t}\r\n\r\n\t\t\t//hold content of column header\r\n\t\t\t.tabulator-col-content{\r\n\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding:4px;\r\n\r\n\t\t\t\t//header menu button\r\n\t\t\t\t.tabulator-header-menu-button{\r\n\t\t\t\t\tpadding: 0 8px;\r\n\r\n\t\t\t\t\t&:hover{\r\n\t\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t\topacity: .6;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//hold title of column header\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\t\tvertical-align:bottom;\r\n\r\n\t\t\t\t\t//element to hold title editor\r\n\t\t\t\t\t.tabulator-title-editor{\r\n\t\t\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\t\tborder:1px solid #999;\r\n\r\n\t\t\t\t\t\tpadding:1px;\r\n\r\n\t\t\t\t\t\tbackground: #444;\r\n\t\t\t\t\t\tcolor: #fff;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//column sorter arrow\r\n\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:9px;\r\n\t\t\t\t\tright:8px;\r\n\t\t\t\t\twidth: 0;\r\n\t\t\t\t\theight: 0;\r\n\t\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t//complex header column group\r\n\t\t\t&.tabulator-col-group{\r\n\r\n\t\t\t\t//gelement to hold sub columns in column group\r\n\t\t\t\t.tabulator-col-group-cols{\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tdisplay: flex;\r\n\r\n\t\t\t\t\tborder-top:1px solid $headerBorderColor;\r\n\t\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\t\tmargin-right:-1px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//hide left resize handle on first column\r\n\t\t\t&:first-child{\r\n\t\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//header filter containing element\r\n\t\t\t.tabulator-header-filter{\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tmargin-top:2px;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\ttext-align: center;\r\n\r\n\t\t\t\t//styling adjustment for inbuilt editors\r\n\t\t\t\ttextarea{\r\n\t\t\t\t\theight:auto !important;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsvg{\r\n\t\t\t\t\tmargin-top: 3px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput, select{\r\n\t\t\t\t\tborder:1px solid #999;\r\n\t\t\t\t\tbackground: #444;\r\n\t\t\t\t\tcolor: #fff;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput{\r\n\t\t\t\t\t&::-ms-clear {\r\n\t\t\t\t\t\twidth : 0;\r\n\t\t\t\t\t\theight: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//styling child elements for sortable columns\r\n\t\t\t&.tabulator-sortable{\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tpadding-right:25px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t&[aria-sort=\"none\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"asc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowActive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"desc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\t\t\tborder-bottom: none;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-col-vertical{\r\n\t\t\t\t.tabulator-col-content{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\twriting-mode: vertical-rl;\r\n\t\t\t\t\t\ttext-orientation: mixed;\r\n\r\n\t\t\t\t\t\tdisplay:flex;\r\n\t\t\t\t\t\talign-items:center;\r\n\t\t\t\t\t\tjustify-content:center;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\ttransform: rotate(180deg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-sortable{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\tpadding-top:20px;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t\tpadding-bottom:20px;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\t\tright:calc(50% - 6px);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tposition: absolute;\r\n\r\n\t\t\t// background-color: inherit;\r\n\r\n\t\t\tz-index: 10;\r\n\r\n\t\t\t&.tabulator-frozen-left{\r\n\t\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-frozen-right{\r\n\t\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\tbackground:darken($headerBackgroundColor, 10%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 10%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\t\t\tborder-bottom:1px solid $headerBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen-rows-holder{\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\t&:empty{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t//scrolling element to hold table\r\n\t.tabulator-tableHolder{\r\n\t\tposition:relative;\r\n\t\twidth:100%;\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:auto;\r\n\t\t-webkit-overflow-scrolling: touch;\r\n\r\n\t\t&:focus{\r\n\t\t\toutline: none;\r\n\t\t}\r\n\r\n\t\t//default placeholder element\r\n\t\t.tabulator-placeholder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t&[tabulator-render-mode=\"virtual\"]{\r\n\t\t\t\tmin-height:100%;\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\r\n\t\t\twidth:100%;\r\n\r\n\t\t\tspan{\r\n\t\t\t\tdisplay: inline-block;\r\n\r\n\t\t\t\tmargin:0 auto;\r\n\t\t\t\tpadding:10px;\r\n\r\n\t\t\t\tcolor:#eee;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//element to hold table rows\r\n\t\t.tabulator-table{\r\n\t\t\tposition:relative;\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tbackground-color:$rowBackgroundColor;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\toverflow:visible;\r\n\t\t\tcolor:$rowTextColor;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\t&.tabulator-calcs{\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t\tbackground:darken($rowAltBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t\t&.tabulator-calcs-top{\r\n\t\t\t\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-calcs-bottom{\r\n\t\t\t\t\t\tborder-top:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//column resize handles\r\n\t.tabulator-col-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\ttop:0;\r\n\t\tbottom:0;\r\n\t\twidth:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\tleft:0;\r\n\t\t\tright:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ew-resize;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//footer element\r\n\t.tabulator-footer{\r\n\t\tpadding:5px 10px;\r\n\t\tborder-top:1px solid $footerSeperatorColor;\r\n\t\tbackground-color: $footerBackgroundColor;\r\n\t\ttext-align:right;\r\n\t\tcolor: $footerTextColor;\r\n\t\tfont-weight:bold;\r\n\t\twhite-space:nowrap;\r\n\t\tuser-select:none;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\twidth:calc(100% + 20px);\r\n\t\t\tmargin:-5px -10px 5px -10px;\r\n\r\n\t\t\ttext-align: left;\r\n\r\n\t\t\tbackground:darken($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:darken($footerBackgroundColor, 5%) !important;\r\n\t\t\t\tcolor:$headerTextColor;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-bottom:1px solid $rowBorderColor;\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&:only-child{\r\n\t\t\t\tmargin-bottom:-5px;\r\n\t\t\t\tborder-bottom:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-paginator{\r\n\t\t\tlabel{\r\n\t\t\t\tcolor:#fff;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//page size select element\r\n\t\t.tabulator-page-size{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 5px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-pages{\r\n\t\t\tmargin:0 7px;\r\n\t\t}\r\n\r\n\t\t//pagination button\r\n\t\t.tabulator-page{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 2px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\r\n\t\t\tbackground:rgba(255,255,255,.2);\r\n\r\n\t\t\tcolor: $footerTextColor;\r\n\t\t\tfont-family:inherit;\r\n\t\t\tfont-weight:inherit;\r\n\t\t\tfont-size:inherit;\r\n\r\n\t\t\t&.active{\r\n\t\t\t\tcolor:$footerActiveColor;\r\n\t\t\t}\r\n\r\n\t\t\t&:disabled{\r\n\t\t\t\topacity:.5;\r\n\t\t\t}\r\n\r\n\t\t\t&:not(.disabled){\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground:rgba(0,0,0,.2);\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//holding div that contains loader and covers tabulator element to prevent interaction\r\n\t.tabulator-loader{\r\n\t\tposition:absolute;\r\n\t\tdisplay: flex;\r\n\t\talign-items:center;\r\n\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tz-index:100;\r\n\r\n\t\theight:100%;\r\n\t\twidth:100%;\r\n\t\tbackground:rgba(0,0,0,.4);\r\n\t\ttext-align:center;\r\n\r\n\t\t//loading message element\r\n\t\t.tabulator-loader-msg{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 auto;\r\n\t\t\tpadding:10px 20px;\r\n\r\n\t\t\tborder-radius:10px;\r\n\r\n\t\t\tbackground:#fff;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:16px;\r\n\r\n\t\t\t//loading message\r\n\t\t\t&.tabulator-loading{\r\n\t\t\t\tborder:4px solid #333;\r\n\t\t\t\tcolor:#000;\r\n\t\t\t}\r\n\r\n\t\t\t//error message\r\n\t\t\t&.tabulator-error{\r\n\t\t\t\tborder:4px solid #D00;\r\n\t\t\t\tcolor:#590000;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//row element\r\n.tabulator-row{\r\n\tposition: relative;\r\n\tbox-sizing: border-box;\r\n\r\n\tmin-height:$textSize + ($headerMargin * 2);\r\n\tbackground-color: $rowBackgroundColor;\r\n\r\n\t&:nth-child(even){\r\n\t\tbackground-color: $rowAltBackgroundColor;\r\n\t}\r\n\r\n\t&.tabulator-selectable:hover{\r\n\t\tbackground-color:$rowHoverBackground;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-selected{\r\n\t\tbackground-color:$rowSelectedBackground;\r\n\t}\r\n\r\n\t&.tabulator-selected:hover{\r\n\t\tbackground-color:$rowSelectedBackgroundHover;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-moving{\r\n\t\tposition: absolute;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpointer-events: none !important;\r\n\t\tz-index:15;\r\n\t}\r\n\r\n\t//row resize handles\r\n\t.tabulator-row-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\tbottom:0;\r\n\t\tleft:0;\r\n\t\theight:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\ttop:0;\r\n\t\t\tbottom:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ns-resize;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-frozen{\r\n\t\tdisplay: inline-block;\r\n\t\tposition: absolute;\r\n\r\n\t\tbackground-color: inherit;\r\n\r\n\t\tz-index: 10;\r\n\r\n\t\t&.tabulator-frozen-left{\r\n\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t&.tabulator-frozen-right{\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-responsive-collapse{\r\n\t\tbox-sizing:border-box;\r\n\r\n\t\tpadding:5px;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\t&:empty{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\ttable{\r\n\t\t\tfont-size:$textSize;\r\n\r\n\t\t\ttr{\r\n\t\t\t\ttd{\r\n\t\t\t\t\tposition: relative;\r\n\r\n\t\t\t\t\t&:first-of-type{\r\n\t\t\t\t\t\tpadding-right:10px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//cell element\r\n\t.tabulator-cell{\r\n\t\tdisplay:inline-block;\r\n\t\tposition: relative;\r\n\t\tbox-sizing:border-box;\r\n\t\tpadding:4px;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tvertical-align:middle;\r\n\t\twhite-space:nowrap;\r\n\t\toverflow:hidden;\r\n\t\ttext-overflow:ellipsis;\r\n\r\n\r\n\t\t&.tabulator-editing{\r\n\t\t\tborder:1px solid $editBoxColor;\r\n\t\t\tpadding: 0;\r\n\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-validation-fail{\r\n\t\t\tborder:1px solid $errorColor;\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\r\n\t\t\t\tcolor: $errorColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//hide left resize handle on first column\r\n\t\t&:first-child{\r\n\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//movable row handle\r\n\t\t&.tabulator-row-handle{\r\n\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\t//handle holder\r\n\t\t\t.tabulator-row-handle-box{\r\n\t\t\t\twidth:80%;\r\n\r\n\t\t\t\t//Hamburger element\r\n\t\t\t\t.tabulator-row-handle-bar{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\theight:3px;\r\n\t\t\t\t\tmargin-top:2px;\r\n\t\t\t\t\tbackground:#666;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-branch{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:9px;\r\n\t\t\twidth:7px;\r\n\r\n\t\t\tmargin-top:-9px;\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control{\r\n\r\n\t\t\tdisplay:inline-flex;\r\n\t\t\tjustify-content:center;\r\n\t\t\talign-items:center;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:11px;\r\n\t\t\twidth:11px;\r\n\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder:1px solid $rowTextColor;\r\n\t\t\tborder-radius:2px;\r\n\t\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\t\toverflow:hidden;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\tcursor:pointer;\r\n\t\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: transparent;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-expand{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-responsive-collapse-toggle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\theight:15px;\r\n\t\t\twidth:15px;\r\n\r\n\t\t\tborder-radius:20px;\r\n\t\t\tbackground:#fff;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:1.1em;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\topacity:.7;\r\n\t\t\t}\r\n\r\n\t\t\t&.open{\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\t\tdisplay:initial;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-open{\r\n\t\t\t\t\tdisplay:none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\tdisplay:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-traffic-light{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\theight:14px;\r\n\t\t\twidth:14px;\r\n\r\n\t\t\tborder-radius:14px;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//row grouping element\r\n\t&.tabulator-group{\r\n\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:1px solid #999;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #999;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:#ccc;\r\n\t\tfont-weight:bold;\r\n\t\tcolor:#333;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\tpadding-left:30px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\tpadding-left:50px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\tpadding-left:70px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\tpadding-left:90px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\tpadding-left:110px;\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:#666;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.tabulator-menu{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\tbox-shadow: 0 0 5px 0 rgba(0, 0, 0, .2);\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-menu-item{\r\n\r\n\t\tpadding:5px 10px;\r\n\r\n\t\tuser-select: none;\r\n\r\n\t\t&.tabulator-menu-item-disabled{\r\n\t\t\topacity: .5;\r\n\t\t}\r\n\r\n\t\t&:not(.tabulator-menu-item-disabled):hover{\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground: $rowAltBackgroundColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-menu-separator{\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t}\r\n}\r\n\r\n.tabulator-edit-select-list{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tmax-height:200px;\r\n\r\n\tbackground:$rowTextColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-edit-select-list-item{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowBackgroundColor;\r\n\r\n\t\t&.active{\r\n\t\t\tcolor:$editBoxColor;\r\n\t\t\tbackground:$rowAltBackgroundColor;\r\n\r\n\t\t\t&.focused{\r\n\t\t\t\toutline:1px solid rgba($editBoxColor, .5);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.focused{\r\n\t\t\toutline:1px solid $rowAltBackgroundColor;\r\n\t\t}\r\n\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\r\n\t\t\tcolor:$editBoxColor;\r\n\t\t\tbackground:$rowBackgroundColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-notice{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\ttext-align: center;\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-group{\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpadding:4px;\r\n\t\tpadding-top:6px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\tfont-weight:bold;\r\n\t}\r\n}\r\n\r\n// Table print styling\r\n\r\n.tabulator-print-fullscreen{\r\n\tposition: absolute;\r\n\ttop:0;\r\n\tbottom:0;\r\n\tleft:0;\r\n\tright:0;\r\n\r\n\tz-index: 10000;\r\n}\r\n\r\nbody.tabulator-print-fullscreen-hide>*:not(.tabulator-print-fullscreen){\r\n\tdisplay:none !important;\r\n}\r\n\r\n.tabulator-print-table{\r\n\tborder-collapse: collapse;\r\n\r\n\t//row grouping element\r\n\t.tabulator-print-table-group{\r\n\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:1px solid #999;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #999;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:#ccc;\r\n\t\tfont-weight:bold;\r\n\t\tcolor:#333;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:30px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:50px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:70px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:90px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:110px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:#666;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-data-tree-branch{\r\n\t\tdisplay:inline-block;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:9px;\r\n\t\twidth:7px;\r\n\r\n\t\tmargin-top:-9px;\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\tborder-left:2px solid $rowBorderColor;\r\n\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t}\r\n\r\n\t.tabulator-data-tree-control{\r\n\r\n\t\tdisplay:inline-flex;\r\n\t\tjustify-content:center;\r\n\t\talign-items:center;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:11px;\r\n\t\twidth:11px;\r\n\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder:1px solid $rowTextColor;\r\n\t\tborder-radius:2px;\r\n\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\toverflow:hidden;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: transparent;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-expand{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n"]}
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator {
- position: relative;
- border: 1px solid #fff;
- background-color: #fff;
- overflow: hidden;
- font-size: 16px;
- text-align: left;
- -ms-transform: translatez(0);
- transform: translatez(0);
-}
-
-.tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table {
- min-width: 100%;
-}
-
-.tabulator[tabulator-layout="fitDataTable"] {
- display: inline-block;
-}
-
-.tabulator.tabulator-block-select {
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator .tabulator-header {
- position: relative;
- box-sizing: border-box;
- width: 100%;
- border-bottom: 3px solid #3759D7;
- margin-bottom: 4px;
- background-color: #fff;
- color: #3759D7;
- font-weight: bold;
- white-space: nowrap;
- overflow: hidden;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
- padding-left: 10px;
- font-size: 1.1em;
-}
-
-.tabulator .tabulator-header.tabulator-header-hidden {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- border-right: 2px solid #fff;
- background-color: #fff;
- text-align: left;
- vertical-align: bottom;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-moving {
- position: absolute;
- border: 1px solid #3759D7;
- background: #e6e6e6;
- pointer-events: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
- box-sizing: border-box;
- position: relative;
- padding: 4px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button {
- padding: 0 8px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover {
- cursor: pointer;
- opacity: .6;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
- box-sizing: border-box;
- width: 100%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- vertical-align: bottom;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
- box-sizing: border-box;
- width: 100%;
- border: 1px solid #3759D7;
- padding: 1px;
- background: #fff;
- font-size: 1em;
- color: #3759D7;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow {
- display: inline-block;
- position: absolute;
- top: 9px;
- right: 8px;
- width: 0;
- height: 0;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-bottom: 6px solid #b7c3f1;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- border-top: 2px solid #3759D7;
- overflow: hidden;
- margin-right: -1px;
-}
-
-.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
- position: relative;
- box-sizing: border-box;
- margin-top: 2px;
- width: 100%;
- text-align: center;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
- height: auto !important;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
- margin-top: 3px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear {
- width: 0;
- height: 0;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
- padding-right: 25px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
- cursor: pointer;
- background-color: #e6e6e6;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #b7c3f1;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #3759D7;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow {
- border-top: 6px solid #3759D7;
- border-bottom: none;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title {
- -ms-writing-mode: tb-rl;
- writing-mode: vertical-rl;
- text-orientation: mixed;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title {
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title {
- padding-right: 0;
- padding-top: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title {
- padding-right: 0;
- padding-bottom: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow {
- right: calc(50% - 6px);
-}
-
-.tabulator .tabulator-header .tabulator-frozen {
- display: inline-block;
- position: absolute;
- z-index: 10;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
- padding-left: 10px;
- border-right: 2px solid #fff;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #fff;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder {
- box-sizing: border-box;
- min-width: 600%;
- border-top: 2px solid #3759D7 !important;
- background: white !important;
- border-top: 1px solid #fff;
- border-bottom: 1px solid #fff;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
- padding-left: 0 !important;
- background: white !important;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-cell {
- background: none;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder {
- min-width: 600%;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty {
- display: none;
-}
-
-.tabulator .tabulator-tableHolder {
- position: relative;
- width: 100%;
- white-space: nowrap;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.tabulator .tabulator-tableHolder:focus {
- outline: none;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder {
- box-sizing: border-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode="virtual"] {
- min-height: 100%;
- min-width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder span {
- display: inline-block;
- margin: 0 auto;
- padding: 10px;
- color: #3759D7;
- font-weight: bold;
- font-size: 20px;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table {
- position: relative;
- display: inline-block;
- background-color: #f3f3f3;
- white-space: nowrap;
- overflow: visible;
- color: #333;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs {
- font-weight: bold;
- background: #f2f2f2 !important;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top {
- border-bottom: 2px solid #3759D7;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom {
- border-top: 2px solid #3759D7;
-}
-
-.tabulator .tabulator-col-resize-handle {
- position: absolute;
- right: 0;
- top: 0;
- bottom: 0;
- width: 5px;
-}
-
-.tabulator .tabulator-col-resize-handle.prev {
- left: 0;
- right: auto;
-}
-
-.tabulator .tabulator-col-resize-handle:hover {
- cursor: ew-resize;
-}
-
-.tabulator .tabulator-footer {
- padding: 5px 10px;
- border-top: 1px solid #999;
- background-color: #fff;
- text-align: right;
- color: #3759D7;
- font-weight: bold;
- white-space: nowrap;
- -ms-user-select: none;
- user-select: none;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder {
- box-sizing: border-box;
- width: calc(100% + 20px);
- margin: -5px -10px 5px -10px;
- text-align: left;
- background: white !important;
- border-top: 3px solid #3759D7 !important;
- border-bottom: 2px solid #3759D7 !important;
- border-bottom: 1px solid #fff;
- border-top: 1px solid #fff;
- overflow: hidden;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
- background: white !important;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-cell {
- background: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-cell:first-child {
- border-left: 10px solid transparent;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
- margin-bottom: -5px;
- border-bottom: none;
- border-bottom: none !important;
-}
-
-.tabulator .tabulator-footer .tabulator-paginator {
- color: #3759D7;
- font-family: inherit;
- font-weight: inherit;
- font-size: inherit;
-}
-
-.tabulator .tabulator-footer .tabulator-page-size {
- display: inline-block;
- margin: 0 5px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
-}
-
-.tabulator .tabulator-footer .tabulator-pages {
- margin: 0 7px;
-}
-
-.tabulator .tabulator-footer .tabulator-page {
- display: inline-block;
- margin: 0 2px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
- background: rgba(255, 255, 255, 0.2);
-}
-
-.tabulator .tabulator-footer .tabulator-page.active {
- color: #3759D7;
-}
-
-.tabulator .tabulator-footer .tabulator-page:disabled {
- opacity: .5;
-}
-
-.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
- color: #fff;
-}
-
-.tabulator .tabulator-loader {
- position: absolute;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- top: 0;
- left: 0;
- z-index: 100;
- height: 100%;
- width: 100%;
- background: rgba(0, 0, 0, 0.4);
- text-align: center;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg {
- display: inline-block;
- margin: 0 auto;
- padding: 10px 20px;
- border-radius: 10px;
- background: #fff;
- font-weight: bold;
- font-size: 16px;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading {
- border: 4px solid #333;
- color: #000;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error {
- border: 4px solid #D00;
- color: #590000;
-}
-
-.tabulator-row {
- position: relative;
- box-sizing: border-box;
- box-sizing: border-box;
- min-height: 24px;
- margin-bottom: 2px;
-}
-
-.tabulator-row .tabulator-cell:first-child {
- border-left: 10px solid #3759D7;
-}
-
-.tabulator-row:nth-child(even) {
- background-color: #627ce0;
-}
-
-.tabulator-row:nth-child(even) .tabulator-cell {
- background-color: #fff;
-}
-
-.tabulator-row:nth-child(even) .tabulator-cell:first-child {
- border-left: 10px solid #627ce0;
-}
-
-.tabulator-row.tabulator-selectable:hover {
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-selectable:hover .tabulator-cell {
- background-color: #bbb;
-}
-
-.tabulator-row.tabulator-selected .tabulator-cell {
- background-color: #9ABCEA;
-}
-
-.tabulator-row.tabulator-selected:hover .tabulator-cell {
- background-color: #769BCC;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-moving {
- position: absolute;
- border-top: 1px solid #fff;
- border-bottom: 1px solid #fff;
- pointer-events: none !important;
- z-index: 15;
-}
-
-.tabulator-row .tabulator-row-resize-handle {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- height: 5px;
-}
-
-.tabulator-row .tabulator-row-resize-handle.prev {
- top: 0;
- bottom: auto;
-}
-
-.tabulator-row .tabulator-row-resize-handle:hover {
- cursor: ns-resize;
-}
-
-.tabulator-row .tabulator-frozen {
- display: inline-block;
- position: absolute;
- background-color: inherit;
- z-index: 10;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #fff;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #fff;
-}
-
-.tabulator-row .tabulator-responsive-collapse {
- box-sizing: border-box;
- padding: 5px;
- border-top: 1px solid #fff;
- border-bottom: 1px solid #fff;
-}
-
-.tabulator-row .tabulator-responsive-collapse:empty {
- display: none;
-}
-
-.tabulator-row .tabulator-responsive-collapse table {
- font-size: 16px;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td {
- position: relative;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
- padding-right: 10px;
-}
-
-.tabulator-row .tabulator-cell {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- padding: 6px 4px;
- border-right: 2px solid #fff;
- vertical-align: middle;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- background-color: #f3f3f3;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing {
- border: 1px solid #1D68CD;
- padding: 0;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select {
- border: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail {
- border: 1px solid #dd0000;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select {
- border: 1px;
- background: transparent;
- color: #dd0000;
-}
-
-.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
- width: 80%;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
- width: 100%;
- height: 3px;
- margin-top: 2px;
- background: #666;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #fff;
- border-bottom: 2px solid #fff;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
- height: 15px;
- width: 15px;
- border-radius: 20px;
- background: #666;
- color: #f3f3f3;
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover {
- opacity: .7;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close {
- display: initial;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-traffic-light {
- display: inline-block;
- height: 14px;
- width: 14px;
- border-radius: 14px;
-}
-
-.tabulator-row.tabulator-group {
- box-sizing: border-box;
- border-bottom: 2px solid #3759D7;
- border-top: 2px solid #3759D7;
- padding: 5px;
- padding-left: 10px;
- background: #8ca0e8;
- font-weight: bold;
- color: fff;
- margin-bottom: 2px;
- min-width: 100%;
-}
-
-.tabulator-row.tabulator-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #3759D7;
- border-bottom: 0;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-1 {
- padding-left: 30px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-2 {
- padding-left: 50px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-3 {
- padding-left: 70px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-4 {
- padding-left: 90px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-5 {
- padding-left: 110px;
-}
-
-.tabulator-row.tabulator-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-row.tabulator-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #3759D7;
- vertical-align: middle;
-}
-
-.tabulator-row.tabulator-group span {
- margin-left: 10px;
- color: #3759D7;
-}
-
-.tabulator-menu {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- background: #f3f3f3;
- border: 1px solid #fff;
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
- font-size: 16px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-menu .tabulator-menu-item {
- padding: 5px 10px;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled {
- opacity: .5;
-}
-
-.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover {
- cursor: pointer;
- background: #fff;
-}
-
-.tabulator-menu .tabulator-menu-separator {
- border-top: 1px solid #fff;
-}
-
-.tabulator-edit-select-list {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- max-height: 200px;
- background: #f3f3f3;
- border: 1px solid #1D68CD;
- font-size: 16px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item {
- padding: 4px;
- color: #333;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active {
- color: #f3f3f3;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused {
- outline: 1px solid rgba(243, 243, 243, 0.5);
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.focused {
- outline: 1px solid #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item:hover {
- cursor: pointer;
- color: #f3f3f3;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-notice {
- padding: 4px;
- color: #333;
- text-align: center;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-group {
- border-bottom: 1px solid #fff;
- padding: 4px;
- padding-top: 6px;
- color: #333;
- font-weight: bold;
-}
-
-.tabulator-print-fullscreen {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 10000;
-}
-
-body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
- display: none !important;
-}
-
-.tabulator-print-table {
- border-collapse: collapse;
-}
-
-.tabulator-print-table .tabulator-print-table-group {
- box-sizing: border-box;
- border-bottom: 2px solid #3759D7;
- border-top: 2px solid #3759D7;
- padding: 5px;
- padding-left: 10px;
- background: #8ca0e8;
- font-weight: bold;
- color: fff;
- margin-bottom: 2px;
- min-width: 100%;
-}
-
-.tabulator-print-table .tabulator-print-table-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #3759D7;
- border-bottom: 0;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td {
- padding-left: 30px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td {
- padding-left: 50px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td {
- padding-left: 70px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td {
- padding-left: 90px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td {
- padding-left: 110px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #3759D7;
- vertical-align: middle;
-}
-
-.tabulator-print-table .tabulator-print-table-group span {
- margin-left: 10px;
- color: #3759D7;
-}
-
-.tabulator-print-table .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #fff;
- border-bottom: 2px solid #fff;
-}
-
-.tabulator-print-table .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-print-table .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator{position:relative;border:1px solid #fff;background-color:#fff;overflow:hidden;font-size:16px;text-align:left;transform:translatez(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableHolder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator .tabulator-header{position:relative;box-sizing:border-box;width:100%;border-bottom:3px solid #3759d7;margin-bottom:4px;background-color:#fff;color:#3759d7;font-weight:700;white-space:nowrap;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;padding-left:10px;font-size:1.1em}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-col{display:inline-block;position:relative;box-sizing:border-box;border-right:2px solid #fff;background-color:#fff;text-align:left;vertical-align:bottom;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-moving{position:absolute;border:1px solid #3759d7;background:#e6e6e6;pointer-events:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;position:relative;padding:4px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{box-sizing:border-box;width:100%;border:1px solid #3759d7;padding:1px;background:#fff;font-size:1em;color:#3759d7}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{display:inline-block;position:absolute;top:9px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #b7c3f1}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{position:relative;display:-ms-flexbox;display:flex;border-top:2px solid #3759d7;overflow:hidden;margin-right:-1px}.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{position:relative;box-sizing:border-box;margin-top:2px;width:100%;text-align:center}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{width:0;height:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{cursor:pointer;background-color:#e6e6e6}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #b7c3f1}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #3759d7}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-col-content .tabulator-arrow{border-top:6px solid #3759d7;border-bottom:none}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-right:0;padding-bottom:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow{right:calc(50% - 6px)}.tabulator .tabulator-header .tabulator-frozen{display:inline-block;position:absolute;z-index:10}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{padding-left:10px;border-right:2px solid #fff}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #fff}.tabulator .tabulator-header .tabulator-calcs-holder{box-sizing:border-box;min-width:600%;border-top:2px solid #3759d7!important;background:#fff!important;border-top:1px solid #fff;border-bottom:1px solid #fff;overflow:hidden}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{padding-left:0!important;background:#fff!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-cell{background:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{min-width:600%}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableHolder{position:relative;width:100%;white-space:nowrap;overflow:auto;-webkit-overflow-scrolling:touch}.tabulator .tabulator-tableHolder:focus{outline:none}.tabulator .tabulator-tableHolder .tabulator-placeholder{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%;min-width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder span{display:inline-block;margin:0 auto;padding:10px;color:#3759d7;font-weight:700;font-size:20px}.tabulator .tabulator-tableHolder .tabulator-table{position:relative;display:inline-block;background-color:#f3f3f3;white-space:nowrap;overflow:visible;color:#333}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs{font-weight:700;background:#f2f2f2!important}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #3759d7}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #3759d7}.tabulator .tabulator-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px}.tabulator .tabulator-col-resize-handle.prev{left:0;right:auto}.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}.tabulator .tabulator-footer{padding:5px 10px;border-top:1px solid #999;background-color:#fff;text-align:right;color:#3759d7;font-weight:700;white-space:nowrap;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-footer .tabulator-calcs-holder{box-sizing:border-box;width:calc(100% + 20px);margin:-5px -10px 5px;text-align:left;background:#fff!important;border-top:3px solid #3759d7!important;border-bottom:2px solid #3759d7!important;border-bottom:1px solid #fff;border-top:1px solid #fff;overflow:hidden}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-cell{background:none}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-cell:first-child{border-left:10px solid transparent}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px;border-bottom:none;border-bottom:none!important}.tabulator .tabulator-footer .tabulator-paginator{color:#3759d7;font-family:inherit;font-weight:inherit;font-size:inherit}.tabulator .tabulator-footer .tabulator-page-size{display:inline-block;margin:0 5px;padding:2px 5px;border:1px solid #aaa;border-radius:3px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid #aaa;border-radius:3px;background:hsla(0,0%,100%,.2)}.tabulator .tabulator-footer .tabulator-page.active{color:#3759d7}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{cursor:pointer;background:rgba(0,0,0,.2);color:#fff}.tabulator .tabulator-loader{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:0;left:0;z-index:100;height:100%;width:100%;background:rgba(0,0,0,.4);text-align:center}.tabulator .tabulator-loader .tabulator-loader-msg{display:inline-block;margin:0 auto;padding:10px 20px;border-radius:10px;background:#fff;font-weight:700;font-size:16px}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading{border:4px solid #333;color:#000}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error{border:4px solid #d00;color:#590000}.tabulator-row{position:relative;box-sizing:border-box;min-height:24px;margin-bottom:2px}.tabulator-row .tabulator-cell:first-child{border-left:10px solid #3759d7}.tabulator-row:nth-child(2n){background-color:#627ce0}.tabulator-row:nth-child(2n) .tabulator-cell{background-color:#fff}.tabulator-row:nth-child(2n) .tabulator-cell:first-child{border-left:10px solid #627ce0}.tabulator-row.tabulator-selectable:hover{cursor:pointer}.tabulator-row.tabulator-selectable:hover .tabulator-cell{background-color:#bbb}.tabulator-row.tabulator-selected .tabulator-cell{background-color:#9abcea}.tabulator-row.tabulator-selected:hover .tabulator-cell{background-color:#769bcc;cursor:pointer}.tabulator-row.tabulator-moving{position:absolute;border-top:1px solid #fff;border-bottom:1px solid #fff;pointer-events:none!important;z-index:15}.tabulator-row .tabulator-row-resize-handle{position:absolute;right:0;bottom:0;left:0;height:5px}.tabulator-row .tabulator-row-resize-handle.prev{top:0;bottom:auto}.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}.tabulator-row .tabulator-frozen{display:inline-block;position:absolute;background-color:inherit;z-index:10}.tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #fff}.tabulator-row .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #fff}.tabulator-row .tabulator-responsive-collapse{box-sizing:border-box;padding:5px;border-top:1px solid #fff;border-bottom:1px solid #fff}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:16px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{display:inline-block;position:relative;box-sizing:border-box;padding:6px 4px;border-right:2px solid #fff;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-color:#f3f3f3}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{border:1px;background:transparent}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{border:1px;background:transparent;color:#d00}.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator-row .tabulator-cell.tabulator-row-handle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{width:100%;height:3px;margin-top:2px;background:#666}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #fff;border-bottom:2px solid #fff}.tabulator-row .tabulator-cell .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;height:15px;width:15px;border-radius:20px;background:#666;color:#f3f3f3;font-weight:700;font-size:1.1em}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{opacity:.7}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open,.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{display:inline-block;height:14px;width:14px;border-radius:14px}.tabulator-row.tabulator-group{box-sizing:border-box;border-bottom:2px solid #3759d7;border-top:2px solid #3759d7;padding:5px;padding-left:10px;background:#8ca0e8;font-weight:700;color:fff;margin-bottom:2px;min-width:100%}.tabulator-row.tabulator-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #3759d7;border-bottom:0}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #3759d7;vertical-align:middle}.tabulator-row.tabulator-group span{margin-left:10px;color:#3759d7}.tabulator-menu{position:absolute;display:inline-block;box-sizing:border-box;background:#f3f3f3;border:1px solid #fff;box-shadow:0 0 5px 0 rgba(0,0,0,.2);font-size:16px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-menu .tabulator-menu-item{padding:5px 10px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{cursor:pointer;background:#fff}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #fff}.tabulator-edit-select-list{position:absolute;display:inline-block;box-sizing:border-box;max-height:200px;background:#f3f3f3;border:1px solid #1d68cd;font-size:16px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-edit-select-list .tabulator-edit-select-list-item{padding:4px;color:#333}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#f3f3f3;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,95%,.5)}.tabulator-edit-select-list .tabulator-edit-select-list-item.focused{outline:1px solid #1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{cursor:pointer;color:#f3f3f3;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-notice{padding:4px;color:#333;text-align:center}.tabulator-edit-select-list .tabulator-edit-select-list-group{border-bottom:1px solid #fff;padding:4px;padding-top:6px;color:#333;font-weight:700}.tabulator-print-fullscreen{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-print-table-group{box-sizing:border-box;border-bottom:2px solid #3759d7;border-top:2px solid #3759d7;padding:5px;padding-left:10px;background:#8ca0e8;font-weight:700;color:fff;margin-bottom:2px;min-width:100%}.tabulator-print-table .tabulator-print-table-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #3759d7;border-bottom:0}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #3759d7;vertical-align:middle}.tabulator-print-table .tabulator-print-table-group span{margin-left:10px;color:#3759d7}.tabulator-print-table .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #fff;border-bottom:2px solid #fff}.tabulator-print-table .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-print-table .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}
-/*# sourceMappingURL=tabulator_modern.min.css.map */
+++ /dev/null
-{"version":3,"sources":["tabulator_modern.scss"],"names":[],"mappings":"AA+CA,WACC,kBAAkB,AAClB,sBA1CgB,AA2ChB,sBA5CqB,AA6CrB,gBAAe,AACf,eA5Ca,AA6Cb,gBAAgB,AAMhB,uBAAwB,CAuhBxB,AAniBD,iFAiBI,cAAc,CACd,AAlBJ,0CAuBE,oBAAqB,CACrB,AAxBF,kCA2BE,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CACjB,AA5BF,6BAgCE,kBAAiB,AACjB,sBAAsB,AAEtB,WAAU,AAEV,gCAjFe,AAkFf,kBAAiB,AACjB,sBA3EyB,AA4EzB,cApFe,AAqFf,gBAAgB,AAEhB,mBAAmB,AACnB,gBAAe,AAEf,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,oBAAoB,AAEpB,kBAzDe,AA2Df,eAAgB,CAkQhB,AAvTF,qDAwDG,YAAY,CACZ,AAzDH,4CA6DG,qBAAoB,AACpB,kBAAiB,AACjB,sBAAqB,AACrB,4BAlGoB,AAmGpB,sBArGwB,AAsGxB,gBAAe,AACf,sBAAsB,AACtB,eAAgB,CA2LhB,AA/PH,6DAuEI,kBAAkB,AAClB,yBApHa,AAqHb,mBAA8C,AAC9C,mBAAoB,CACpB,AA3EJ,mEA+EI,sBAAqB,AACrB,kBAAkB,AAClB,WAAW,CAmDX,AApIJ,iGAqFK,aAAc,CAMd,AA3FL,uGAwFM,eAAe,AACf,UAAW,CACX,AA1FN,wFA+FK,sBAAqB,AACrB,WAAW,AAEX,mBAAmB,AACnB,gBAAgB,AAChB,uBAAuB,AACvB,qBAAqB,CAgBrB,AArHL,gHAyGM,sBAAsB,AACtB,WAAW,AAEX,yBAxJW,AA0JX,YAAW,AAEX,gBAAgB,AAEhB,cAAc,AACd,aA/JW,CAgKX,AApHN,oFAyHK,qBAAqB,AACrB,kBAAkB,AAClB,QAAO,AACP,UAAS,AACT,QAAQ,AACR,SAAS,AACT,kCAAkC,AAClC,mCAAmC,AACnC,+BA7JqC,CA8JrC,AAlIL,0FA2IK,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AAEb,6BA1LY,AA2LZ,gBAAgB,AAEhB,iBAAiB,CACjB,AAlJL,0FAyJK,YAAa,CACb,AA1JL,qEAgKI,kBAAkB,AAClB,sBAAsB,AACtB,eAAc,AACd,WAAU,AACV,iBAAkB,CAiBlB,AArLJ,8EAwKK,qBAAsB,CACtB,AAzKL,yEA4KK,cAAe,CACf,AA7KL,sFAiLM,QAAS,AACT,QAAS,CACT,AAnLN,oFA0LK,kBAAkB,CAClB,AA3LL,qEA8LK,eAAc,AACd,wBAAoD,CACpD,AAhML,uHAqMM,gBAAgB,AAChB,+BAlOoC,CAmOpC,AAvMN,sHA4MM,gBAAgB,AAChB,+BAzPW,CA0PX,AA9MN,uHAmNM,6BA/PW,AAgQX,kBAAmB,CACnB,AArNN,+GA4NM,uBAAyB,AAAzB,yBAAyB,AACzB,uBAAuB,AAEvB,oBAAY,AAAZ,aAAY,AACZ,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,sBAAsB,CACtB,AAlON,oHAuOM,wBAAyB,CACzB,AAxON,2GA6OM,gBAAe,AACf,gBAAgB,CAChB,AA/ON,uIAmPO,gBAAe,AACf,mBAAmB,CACnB,AArPP,uGA0PM,qBAAqB,CACrB,AA3PN,+CAkQG,qBAAqB,AACrB,kBAAkB,AAIlB,UAAW,CAWX,AAlRH,qEA0QI,kBAhRa,AAkRb,2BAnSgB,CAoShB,AA7QJ,sEAgRI,0BAvSgB,CAwShB,AAjRJ,qDAqRG,sBAAqB,AACrB,eAAc,AAEd,uCAAqD,AAErD,0BAAyD,AAgBzD,0BAjUiB,AAkUjB,6BA7UoB,AA+UpB,eAAgB,CAChB,AA9SH,oEA6RI,yBAA0B,AAE1B,yBAAyD,CASzD,AAxSJ,iGAkSK,YAAa,CACb,AAnSL,oFAsSK,eAAe,CACf,AAvSL,2DAiTG,cAAc,CAKd,AAtTH,iEAoTI,YAAa,CACb,AArTJ,kCA2TE,kBAAiB,AACjB,WAAU,AACV,mBAAmB,AACnB,cAAa,AACb,gCAAiC,CAuDjC,AAtXF,wCAkUG,YAAa,CACb,AAnUH,yDAuUG,sBAAqB,AACrB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAOlB,UAAU,CAYV,AA5VH,wFA4UI,gBAAe,AACf,cAAc,CACd,AA9UJ,8DAmVI,qBAAqB,AAErB,cAAa,AACb,aAAY,AAEZ,cApYa,AAqYb,gBAAiB,AACjB,cAAe,CACf,AA3VJ,mDAgWG,kBAAiB,AACjB,qBAAoB,AACpB,yBA3XwB,AA4XxB,mBAAmB,AACnB,iBAAgB,AAChB,UA3Xe,CA2Yf,AArXH,kFAyWK,gBAAiB,AACjB,4BAAwD,CASxD,AAnXL,sGA6WM,+BAzZW,CA0ZX,AA9WN,yGAiXM,4BA7ZW,CA8ZX,AAlXN,wCA2XE,kBAAiB,AACjB,QAAO,AACP,MAAK,AACL,SAAQ,AACR,SAAS,CAUT,AAzYF,6CAkYG,OAAM,AACN,UAAU,CACV,AApYH,8CAuYG,gBAAgB,CAChB,AAxYH,6BA8YE,iBAAgB,AAChB,0BAxZwB,AAyZxB,sBA5ZyB,AA6ZzB,iBAAgB,AAChB,cA9be,AA+bf,gBAAgB,AAChB,mBAAkB,AAClB,qBAAgB,AAAhB,iBAAgB,AAEhB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CA8FpB,AAxfF,qDA6ZG,sBAAqB,AACrB,wBAAuB,AACvB,sBAA2B,AAE3B,gBAAgB,AAEhB,0BAAyD,AAEzD,uCAAqD,AACrD,0CAAwD,AAkBxD,6BA/ciB,AAgdjB,0BAhdiB,AAkdjB,eAAgB,CAOhB,AAlcH,oEAyaI,yBAAyD,CAazD,AAtbJ,iGA4aK,YAAa,CACb,AA7aL,oFAgbK,eAAe,CAKf,AArbL,gGAmbM,kCAA2C,CAC3C,AApbN,gEA8bI,mBAAkB,AAClB,mBAAkB,AAClB,4BAA6B,CAC7B,AAjcJ,kDAscG,cAlfc,AAmfd,oBAAmB,AACnB,oBAAmB,AACnB,iBAAiB,CACjB,AA1cH,kDA8cG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA7doB,AA8dpB,iBAAiB,CACjB,AArdH,8CAydG,YAAY,CACZ,AA1dH,6CA8dG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA7eoB,AA8epB,kBAAiB,AAEjB,6BAA+B,CAiB/B,AAvfH,oDAyeI,aArhBa,CAshBb,AA1eJ,sDA6eI,UAAU,CACV,AA9eJ,kEAkfK,eAAc,AACd,0BAAyB,AACzB,UAAU,CACV,AArfL,6BA4fE,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAElB,MAAK,AACL,OAAM,AACN,YAAW,AAEX,YAAW,AACX,WAAU,AACV,0BAAyB,AACzB,iBAAiB,CA2BjB,AAliBF,mDA2gBG,qBAAoB,AAEpB,cAAa,AACb,kBAAiB,AAEjB,mBAAkB,AAElB,gBAAe,AACf,gBAAgB,AAChB,cAAc,CAad,AAjiBH,qEAwhBI,sBAAqB,AACrB,UAAU,CACV,AA1hBJ,mEA8hBI,sBAAqB,AACrB,aAAa,CACb,AAMJ,eACC,kBAAkB,AAGlB,sBAAsB,AACtB,gBAA0C,AAM1C,iBAAkB,CAqYlB,AAhZD,2CAeG,8BAjmBc,CAkmBd,AAhBH,6BAqBE,wBA/jBqC,CAwkBrC,AA9BF,6CAwBG,qBAtlBwB,CA2lBxB,AA7BH,yDA2BI,8BArkBmC,CAskBnC,AA5BJ,0CAiCE,cAAe,CAKf,AAtCF,0DAoCG,qBA/lBqB,CAgmBrB,AArCH,kDA0CG,wBAnmB4B,CAomB5B,AA3CH,wDAgDG,yBAxmBiC,AAymBjC,cAAe,CACf,AAlDH,gCAsDE,kBAAkB,AAElB,0BArnBkB,AAsnBlB,6BAtnBkB,AAwnBlB,8BAA+B,AAC/B,UAAU,CACV,AA7DF,4CAiEE,kBAAiB,AACjB,QAAO,AACP,SAAQ,AACR,OAAM,AACN,UAAU,CAUV,AA/EF,iDAwEG,MAAK,AACL,WAAW,CACX,AA1EH,kDA6EG,gBAAgB,CAChB,AA9EH,iCAkFE,qBAAqB,AACrB,kBAAkB,AAElB,yBAAyB,AAEzB,UAAW,CAUX,AAjGF,uDA2FG,2BAxpBiB,CAypBjB,AA5FH,wDA+FG,0BA5pBiB,CA6pBjB,AAhGH,8CAoGE,sBAAqB,AAErB,YAAW,AAEX,0BArqBkB,AAsqBlB,4BAtqBkB,CAyrBlB,AA5HF,oDA4GG,YAAY,CACZ,AA7GH,oDAgHG,cA7rBW,CAwsBX,AA3HH,0DAoHK,iBAAkB,CAKlB,AAzHL,wEAuHM,kBAAkB,CAClB,AAxHN,+BAgIE,qBAAoB,AACpB,kBAAkB,AAClB,sBAAqB,AACrB,gBAAe,AACf,4BAjsBkB,AAksBlB,sBAAqB,AACrB,mBAAkB,AAClB,gBAAe,AACf,uBAAsB,AAEtB,wBAzsByB,CAm4BzB,AApUF,iDA6IG,yBAnsBkB,AAosBlB,SAAU,CAMV,AApJH,+GAiJI,WAAU,AACV,sBAAsB,CACtB,AAnJJ,yDAuJG,qBA5sBgB,CAmtBhB,AA9JH,+HAyJI,WAAU,AACV,uBAAsB,AAEtB,UAjtBe,CAktBf,AA7JJ,6EAmKI,YAAa,CACb,AApKJ,oDA0KG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAuB,AAAvB,uBAAuB,AAEvB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAcpB,AA/LH,8EAqLI,SAAS,CAST,AA9LJ,wGAyLK,WAAU,AACV,WAAU,AACV,eAAc,AACd,eAAe,CACf,AA7LL,2DAkMG,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BA1wBiB,AA2wBjB,4BA3wBiB,CA4wBjB,AA/MH,4DAmNG,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBAzxBe,AA0xBf,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAmDf,AApRH,kEAoOI,eAAc,AACd,yBAA4B,CAC5B,AAtOJ,kGAyOI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AA5PJ,wGAkPK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAtzBa,CAuzBb,AA3PL,gGA+PI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eAj0Bc,CA80Bd,AAlRJ,sGAwQK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA50Ba,CA60Bb,AAjRL,qEAuRG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,oBAAoB,AAEpB,YAAW,AACX,WAAU,AAEV,mBAAkB,AAClB,gBAAe,AAEf,cAr2BwB,AAs2BxB,gBAAgB,AAChB,eAAe,CAmBf,AA3TH,2EA2SI,UAAU,CACV,AA5SJ,sHAgTK,eAAe,CACf,AAjTL,sOAyTI,YAAY,CACZ,AA1TJ,wDA8TG,qBAAqB,AACrB,YAAW,AACX,WAAU,AAEV,kBAAkB,CAClB,AAnUH,+BAyUE,sBAAqB,AACrB,gCA55Be,AA65Bf,6BA75Be,AA85Bf,YAAW,AACX,kBAAiB,AACjB,mBAAiC,AACjC,gBAAgB,AAChB,UAAS,AACT,kBAAkB,AAElB,cAAe,CA4Df,AA/YF,qCAsVG,eAAc,AACd,+BAA+B,CAC/B,AAxVH,wEA6VI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,6BAl7Ba,AAm7Bb,eAAgB,CAChB,AAlWJ,uDAsWG,iBAAiB,CACjB,AAvWH,uDA0WG,iBAAiB,CACjB,AA3WH,uDA8WG,iBAAiB,CACjB,AA/WH,uDAkXG,iBAAiB,CACjB,AAnXH,uDAsXG,kBAAkB,CAClB,AAvXH,uDA0XG,oBAAqB,CACrB,AA3XH,gDAgYG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,8BAz9Bc,AA09Bd,qBAAqB,CACrB,AAzYH,oCA4YG,iBAAgB,AAChB,aA/9Bc,CAg+Bd,AAIH,gBACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,mBAt9B0B,AAu9B1B,sBAr9BmB,AAs9BnB,oCAAuC,AAEvC,eAx+Ba,AA0+Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CAqBd,AAnCD,qCAkBE,iBAAgB,AAEhB,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CAUjB,AA9BF,kEAuBG,UAAW,CACX,AAxBH,8EA2BG,eAAe,AACf,eA5+BwB,CA6+BxB,AA7BH,0CAiCE,yBAh/BkB,CAi/BlB,AAGF,4BACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,iBAAgB,AAEhB,mBA7/B0B,AA8/B1B,yBAr/BoB,AAu/BpB,eA9gCa,AAghCb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CA6Cd,AA5DD,6DAkBE,YAAW,AAEX,UAvgCgB,CA6hChB,AA1CF,oEAuBG,cA7gCwB,AA8gCxB,kBArgCkB,CA0gClB,AA7BH,4EA2BI,mCAjhCuB,CAkhCvB,AA5BJ,qEAgCG,yBA7gCkB,CA8gClB,AAjCH,mEAqCG,eAAc,AAEd,cA7hCwB,AA8hCxB,kBArhCkB,CAshClB,AAzCH,+DA6CE,YAAW,AAEX,WAliCgB,AAmiChB,iBAAkB,CAClB,AAjDF,8DAoDE,6BAxiCkB,AA0iClB,YAAW,AACX,gBAAe,AAEf,WA5iCgB,AA6iChB,eAAgB,CAChB,AAKF,4BACC,kBAAkB,AAClB,MAAK,AACL,SAAQ,AACR,OAAM,AACN,QAAO,AAEP,aAAc,CACd,AAED,uEACC,sBAAuB,CACvB,AAED,uBACC,wBAAyB,CAyKzB,AA1KD,oDAME,sBAAqB,AACrB,gCA9lCe,AA+lCf,6BA/lCe,AAgmCf,YAAW,AACX,kBAAiB,AACjB,mBAAiC,AACjC,gBAAgB,AAChB,UAAS,AACT,kBAAkB,AAElB,cAAe,CAqEf,AArFF,0DAmBG,eAAc,AACd,+BAA+B,CAC/B,AArBH,6FA0BI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,6BApnCa,AAqnCb,eAAgB,CAChB,AA/BJ,+EAoCI,2BAA4B,CAC5B,AArCJ,+EA0CI,2BAA4B,CAC5B,AA3CJ,+EAgDI,2BAA4B,CAC5B,AAjDJ,+EAsDI,2BAA4B,CAC5B,AAvDJ,+EA4DI,4BAA6B,CAC7B,AA7DJ,4EAiEG,oBAAqB,CACrB,AAlEH,qEAsEG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,8BApqCc,AAqqCd,qBAAqB,CACrB,AA/EH,yDAkFG,iBAAgB,AAChB,aA1qCc,CA2qCd,AApFH,mDAwFE,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BArqCkB,AAsqClB,4BAtqCkB,CAuqClB,AArGF,oDAyGE,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBAprCgB,AAqrChB,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAkDf,AAzKF,0DA0HG,eAAc,AACd,yBAA4B,CAC5B,AA5HH,0FA+HG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAlJH,gGAwII,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAjtCc,CAktCd,AAjJJ,wFAqJG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eA5tCe,CAyuCf,AAxKH,8FA8JI,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAvuCc,CAwuCd","file":"tabulator_modern.min.css","sourcesContent":["/* Tabulator v4.7.0 (c) Oliver Folkerd */\n\n\r\n$primary: #3759D7 !default; //the base text color from which the rest of the theme derives\r\n\r\n//Main Theme Variables\r\n$backgroundColor: #fff !default; //background color of tabulator\r\n$borderColor:#fff !default; //border to tabulator\r\n$textSize:16px !default; //table text size\r\n\r\n//header themeing\r\n$headerBackgroundColor:#fff !default; //border to tabulator\r\n$headerTextColor:$primary !default; //header text colour\r\n$headerBorderColor:#fff !default; //header border color\r\n$headerSeperatorColor:$primary !default; //header bottom seperator color\r\n$headerMargin:4px !default; //padding round header\r\n\r\n//column header arrows\r\n$sortArrowActive: $primary !default;\r\n$sortArrowInactive: lighten($primary, 30%) !default;\r\n\r\n//row themeing\r\n$rowBackgroundColor:#f3f3f3 !default; //table row background color\r\n$rowAltBackgroundColor:#fff !default; //table row background color\r\n$rowBorderColor:#fff !default; //table border color\r\n$rowTextColor:#333 !default; //table text color\r\n$rowHoverBackground:#bbb !default; //row background color on hover\r\n\r\n$rowSelectedBackground: #9ABCEA !default; //row background color when selected\r\n$rowSelectedBackgroundHover: #769BCC !default;//row background color when selected and hovered\r\n\r\n$editBoxColor:#1D68CD !default; //border color for edit boxes\r\n$errorColor:#dd0000 !default; //error indication\r\n\r\n//footer themeing\r\n$footerBackgroundColor:#fff !default; //border to tabulator\r\n$footerTextColor:$primary !default; //footer text colour\r\n$footerBorderColor:#aaa !default; //footer border color\r\n$footerSeperatorColor:#999 !default; //footer bottom seperator color\r\n$footerActiveColor:$primary !default; //footer bottom active text color\r\n\r\n$handleWidth:10px !default; //width of the row handle\r\n$handleColor: $primary !default; //color for odd numbered rows\r\n$handleColorAlt: lighten($primary, 10%) !default; //color for even numbered rows\r\n\r\n\r\n//Tabulator Containing Element\r\n.tabulator{\r\n\tposition: relative;\r\n\tborder: 1px solid $borderColor;\r\n\tbackground-color: $backgroundColor;\r\n\toverflow:hidden;\r\n\tfont-size:$textSize;\r\n\ttext-align: left;\r\n\r\n\t-webkit-transform: translatez(0);\r\n\t-moz-transform: translatez(0);\r\n\t-ms-transform: translatez(0);\r\n\t-o-transform: translatez(0);\r\n\ttransform: translatez(0);\r\n\r\n\t&[tabulator-layout=\"fitDataFill\"]{\r\n\t\t.tabulator-tableHolder{\r\n\t\t\t.tabulator-table{\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&[tabulator-layout=\"fitDataTable\"]{\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\r\n\t&.tabulator-block-select{\r\n\t\tuser-select: none;\r\n\t}\r\n\r\n\t//column header containing element\r\n\t.tabulator-header{\r\n\t\tposition:relative;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\twidth:100%;\r\n\r\n\t\tborder-bottom:3px solid $headerSeperatorColor;\r\n\t\tmargin-bottom:4px;\r\n\t\tbackground-color: $headerBackgroundColor;\r\n\t\tcolor: $headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:hidden;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\tpadding-left:$handleWidth;\r\n\r\n\t\tfont-size: 1.1em;\r\n\r\n\t\t&.tabulator-header-hidden{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\t//individual column header element\r\n\t\t.tabulator-col{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition:relative;\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tborder-right:2px solid $headerBorderColor;\r\n\t\t\tbackground-color: $headerBackgroundColor;\r\n\t\t\ttext-align:left;\r\n\t\t\tvertical-align: bottom;\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&.tabulator-moving{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tborder:1px solid $headerSeperatorColor;\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 10%);\r\n\t\t\t\tpointer-events: none;\r\n\t\t\t}\r\n\r\n\t\t\t//hold content of column header\r\n\t\t\t.tabulator-col-content{\r\n\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding:4px;\r\n\r\n\t\t\t\t//header menu button\r\n\t\t\t\t.tabulator-header-menu-button{\r\n\t\t\t\t\tpadding: 0 8px;\r\n\r\n\t\t\t\t\t&:hover{\r\n\t\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t\topacity: .6;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//hold title of column header\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\t\tvertical-align:bottom;\r\n\r\n\t\t\t\t\t//element to hold title editor\r\n\t\t\t\t\t.tabulator-title-editor{\r\n\t\t\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\t\tborder:1px solid $primary;\r\n\r\n\t\t\t\t\t\tpadding:1px;\r\n\r\n\t\t\t\t\t\tbackground: #fff;\r\n\r\n\t\t\t\t\t\tfont-size: 1em;\r\n\t\t\t\t\t\tcolor: $primary;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//column sorter arrow\r\n\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:9px;\r\n\t\t\t\t\tright:8px;\r\n\t\t\t\t\twidth: 0;\r\n\t\t\t\t\theight: 0;\r\n\t\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t//complex header column group\r\n\t\t\t&.tabulator-col-group{\r\n\r\n\t\t\t\t//gelement to hold sub columns in column group\r\n\t\t\t\t.tabulator-col-group-cols{\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tdisplay: flex;\r\n\r\n\t\t\t\t\tborder-top:2px solid $headerSeperatorColor;\r\n\t\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\t\tmargin-right:-1px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//hide left resize handle on first column\r\n\t\t\t&:first-child{\r\n\t\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//header filter containing element\r\n\t\t\t.tabulator-header-filter{\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tmargin-top:2px;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\ttext-align: center;\r\n\r\n\t\t\t\t//styling adjustment for inbuilt editors\r\n\t\t\t\ttextarea{\r\n\t\t\t\t\theight:auto !important;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsvg{\r\n\t\t\t\t\tmargin-top: 3px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput{\r\n\t\t\t\t\t&::-ms-clear {\r\n\t\t\t\t\t\twidth : 0;\r\n\t\t\t\t\t\theight: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//styling child elements for sortable columns\r\n\t\t\t&.tabulator-sortable{\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tpadding-right:25px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t&[aria-sort=\"none\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"asc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowActive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"desc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\t\t\tborder-bottom: none;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-col-vertical{\r\n\t\t\t\t.tabulator-col-content{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\twriting-mode: vertical-rl;\r\n\t\t\t\t\t\ttext-orientation: mixed;\r\n\r\n\t\t\t\t\t\tdisplay:flex;\r\n\t\t\t\t\t\talign-items:center;\r\n\t\t\t\t\t\tjustify-content:center;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\ttransform: rotate(180deg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-sortable{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\tpadding-top:20px;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t\tpadding-bottom:20px;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\t\tright:calc(50% - 6px);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tposition: absolute;\r\n\r\n\t\t\t// background-color: inherit;\r\n\r\n\t\t\tz-index: 10;\r\n\r\n\t\t\t&.tabulator-frozen-left{\r\n\t\t\t\tpadding-left: $handleWidth;\r\n\r\n\t\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-frozen-right{\r\n\t\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\tborder-top:2px solid $headerSeperatorColor !important;\r\n\r\n\t\t\tbackground:lighten($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tpadding-left: 0 !important;\r\n\r\n\t\t\t\tbackground:lighten($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-cell{\r\n\t\t\t\t\tbackground:none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\t\t\tborder-bottom:1px solid $headerBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen-rows-holder{\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\t&:empty{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//scrolling element to hold table\r\n\t.tabulator-tableHolder{\r\n\t\tposition:relative;\r\n\t\twidth:100%;\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:auto;\r\n\t\t-webkit-overflow-scrolling: touch;\r\n\r\n\t\t&:focus{\r\n\t\t\toutline: none;\r\n\t\t}\r\n\r\n\t\t//default placeholder element\r\n\t\t.tabulator-placeholder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t&[tabulator-render-mode=\"virtual\"]{\r\n\t\t\t\tmin-height:100%;\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\r\n\t\t\twidth:100%;\r\n\r\n\t\t\tspan{\r\n\t\t\t\tdisplay: inline-block;\r\n\r\n\t\t\t\tmargin:0 auto;\r\n\t\t\t\tpadding:10px;\r\n\r\n\t\t\t\tcolor:$primary;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//element to hold table rows\r\n\t\t.tabulator-table{\r\n\t\t\tposition:relative;\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tbackground-color:$rowBackgroundColor;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\toverflow:visible;\r\n\t\t\tcolor:$rowTextColor;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\t&.tabulator-calcs{\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t\tbackground:darken($rowAltBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t\t&.tabulator-calcs-top{\r\n\t\t\t\t\t\tborder-bottom:2px solid $headerSeperatorColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-calcs-bottom{\r\n\t\t\t\t\t\tborder-top:2px solid $headerSeperatorColor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//column resize handles\r\n\t.tabulator-col-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\ttop:0;\r\n\t\tbottom:0;\r\n\t\twidth:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\tleft:0;\r\n\t\t\tright:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ew-resize;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//footer element\r\n\t.tabulator-footer{\r\n\t\tpadding:5px 10px;\r\n\t\tborder-top:1px solid $footerSeperatorColor;\r\n\t\tbackground-color: $footerBackgroundColor;\r\n\t\ttext-align:right;\r\n\t\tcolor: $footerTextColor;\r\n\t\tfont-weight:bold;\r\n\t\twhite-space:nowrap;\r\n\t\tuser-select:none;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\twidth:calc(100% + 20px);\r\n\t\t\tmargin:-5px -10px 5px -10px;\r\n\r\n\t\t\ttext-align: left;\r\n\r\n\t\t\tbackground:lighten($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\tborder-top:3px solid $headerSeperatorColor !important;\r\n\t\t\tborder-bottom:2px solid $headerSeperatorColor !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:lighten($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-cell{\r\n\t\t\t\t\tbackground:none;\r\n\r\n\t\t\t\t\t&:first-child{\r\n\t\t\t\t\t\tborder-left: $handleWidth solid transparent;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-bottom:1px solid $rowBorderColor;\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&:only-child{\r\n\t\t\t\tmargin-bottom:-5px;\r\n\t\t\t\tborder-bottom:none;\r\n\t\t\t\tborder-bottom:none !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-paginator{\r\n\t\t\tcolor: $footerTextColor;\r\n\t\t\tfont-family:inherit;\r\n\t\t\tfont-weight:inherit;\r\n\t\t\tfont-size:inherit;\r\n\t\t}\r\n\r\n\t\t//page size select element\r\n\t\t.tabulator-page-size{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 5px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-pages{\r\n\t\t\tmargin:0 7px;\r\n\t\t}\r\n\r\n\t\t//pagination button\r\n\t\t.tabulator-page{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 2px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\r\n\t\t\tbackground:rgba(255,255,255,.2);\r\n\r\n\t\t\t&.active{\r\n\t\t\t\tcolor:$footerActiveColor;\r\n\t\t\t}\r\n\r\n\t\t\t&:disabled{\r\n\t\t\t\topacity:.5;\r\n\t\t\t}\r\n\r\n\t\t\t&:not(.disabled){\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground:rgba(0,0,0,.2);\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//holding div that contains loader and covers tabulator element to prevent interaction\r\n\t.tabulator-loader{\r\n\t\tposition:absolute;\r\n\t\tdisplay: flex;\r\n\t\talign-items:center;\r\n\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tz-index:100;\r\n\r\n\t\theight:100%;\r\n\t\twidth:100%;\r\n\t\tbackground:rgba(0,0,0,.4);\r\n\t\ttext-align:center;\r\n\r\n\t\t//loading message element\r\n\t\t.tabulator-loader-msg{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 auto;\r\n\t\t\tpadding:10px 20px;\r\n\r\n\t\t\tborder-radius:10px;\r\n\r\n\t\t\tbackground:#fff;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:16px;\r\n\r\n\t\t\t//loading message\r\n\t\t\t&.tabulator-loading{\r\n\t\t\t\tborder:4px solid #333;\r\n\t\t\t\tcolor:#000;\r\n\t\t\t}\r\n\r\n\t\t\t//error message\r\n\t\t\t&.tabulator-error{\r\n\t\t\t\tborder:4px solid #D00;\r\n\t\t\t\tcolor:#590000;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//row element\r\n.tabulator-row{\r\n\tposition: relative;\r\n\tbox-sizing: border-box;\r\n\r\n\tbox-sizing: border-box;\r\n\tmin-height:$textSize + ($headerMargin * 2);\r\n\r\n\t// background-color: $handleColor;\r\n\r\n\t// padding-left: $handleWidth !important;\r\n\r\n\tmargin-bottom: 2px;\r\n\r\n\t.tabulator-cell{\r\n\t\t&:first-child{\r\n\t\t\tborder-left: $handleWidth solid $handleColor;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t&:nth-child(even){\r\n\t\tbackground-color: $handleColorAlt;\r\n\r\n\t\t.tabulator-cell{\r\n\t\t\tbackground-color: $rowAltBackgroundColor;\r\n\r\n\t\t\t&:first-child{\r\n\t\t\t\tborder-left: $handleWidth solid $handleColorAlt;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&.tabulator-selectable:hover{\r\n\t\tcursor: pointer;\r\n\r\n\t\t.tabulator-cell{\r\n\t\t\tbackground-color:$rowHoverBackground;\r\n\t\t}\r\n\t}\r\n\r\n\t&.tabulator-selected{\r\n\t\t.tabulator-cell{\r\n\t\t\tbackground-color:$rowSelectedBackground;\r\n\t\t}\r\n\t}\r\n\r\n\t&.tabulator-selected:hover{\r\n\t\t.tabulator-cell{\r\n\t\t\tbackground-color:$rowSelectedBackgroundHover;\r\n\t\t\tcursor: pointer;\r\n\t\t}\r\n\t}\r\n\r\n\t&.tabulator-moving{\r\n\t\tposition: absolute;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpointer-events: none !important;\r\n\t\tz-index:15;\r\n\t}\r\n\r\n\t//row resize handles\r\n\t.tabulator-row-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\tbottom:0;\r\n\t\tleft:0;\r\n\t\theight:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\ttop:0;\r\n\t\t\tbottom:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ns-resize;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-frozen{\r\n\t\tdisplay: inline-block;\r\n\t\tposition: absolute;\r\n\r\n\t\tbackground-color: inherit;\r\n\r\n\t\tz-index: 10;\r\n\r\n\t\t&.tabulator-frozen-left{\r\n\t\t\t// padding-left: $handleWidth;\r\n\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t&.tabulator-frozen-right{\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-responsive-collapse{\r\n\t\tbox-sizing:border-box;\r\n\r\n\t\tpadding:5px;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\t&:empty{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\ttable{\r\n\t\t\tfont-size:$textSize;\r\n\r\n\t\t\ttr{\r\n\t\t\t\ttd{\r\n\t\t\t\t\tposition: relative;\r\n\r\n\t\t\t\t\t&:first-of-type{\r\n\t\t\t\t\t\tpadding-right:10px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//cell element\r\n\t.tabulator-cell{\r\n\t\tdisplay:inline-block;\r\n\t\tposition: relative;\r\n\t\tbox-sizing:border-box;\r\n\t\tpadding:6px 4px;\r\n\t\tborder-right:2px solid $rowBorderColor;\r\n\t\tvertical-align:middle;\r\n\t\twhite-space:nowrap;\r\n\t\toverflow:hidden;\r\n\t\ttext-overflow:ellipsis;\r\n\r\n\t\tbackground-color: $rowBackgroundColor;\r\n\r\n\t\t&.tabulator-editing{\r\n\t\t\tborder:1px solid $editBoxColor;\r\n\t\t\tpadding: 0;\r\n\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-validation-fail{\r\n\t\t\tborder:1px solid $errorColor;\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\r\n\t\t\t\tcolor: $errorColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//hide left resize handle on first column\r\n\t\t&:first-child{\r\n\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//movable row handle\r\n\t\t&.tabulator-row-handle{\r\n\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content: center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\t//handle holder\r\n\t\t\t.tabulator-row-handle-box{\r\n\t\t\t\twidth:80%;\r\n\r\n\t\t\t\t//Hamburger element\r\n\t\t\t\t.tabulator-row-handle-bar{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\theight:3px;\r\n\t\t\t\t\tmargin-top:2px;\r\n\t\t\t\t\tbackground:#666;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-branch{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:9px;\r\n\t\t\twidth:7px;\r\n\r\n\t\t\tmargin-top:-9px;\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control{\r\n\r\n\t\t\tdisplay:inline-flex;\r\n\t\t\tjustify-content:center;\r\n\t\t\talign-items:center;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:11px;\r\n\t\t\twidth:11px;\r\n\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder:1px solid $rowTextColor;\r\n\t\t\tborder-radius:2px;\r\n\t\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\t\toverflow:hidden;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\tcursor:pointer;\r\n\t\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: transparent;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-expand{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-responsive-collapse-toggle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\theight:15px;\r\n\t\t\twidth:15px;\r\n\r\n\t\t\tborder-radius:20px;\r\n\t\t\tbackground:#666;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:1.1em;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\topacity:.7;\r\n\t\t\t}\r\n\r\n\t\t\t&.open{\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\t\tdisplay:initial;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-open{\r\n\t\t\t\t\tdisplay:none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\tdisplay:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-traffic-light{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\theight:14px;\r\n\t\t\twidth:14px;\r\n\r\n\t\t\tborder-radius:14px;\r\n\t\t}\r\n\t}\r\n\r\n\t//row grouping element\r\n\t&.tabulator-group{\r\n\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:2px solid $primary;\r\n\t\tborder-top:2px solid $primary;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:lighten($primary, 20%);\r\n\t\tfont-weight:bold;\r\n\t\tcolor:fff;\r\n\t\tmargin-bottom: 2px;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\tpadding-left:30px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\tpadding-left:50px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\tpadding-left:70px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\tpadding-left:90px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\tpadding-left:110px;\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:$primary;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.tabulator-menu{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\tbox-shadow: 0 0 5px 0 rgba(0, 0, 0, .2);\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-menu-item{\r\n\r\n\t\tpadding:5px 10px;\r\n\r\n\t\tuser-select: none;\r\n\r\n\t\t&.tabulator-menu-item-disabled{\r\n\t\t\topacity: .5;\r\n\t\t}\r\n\r\n\t\t&:not(.tabulator-menu-item-disabled):hover{\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground: $rowAltBackgroundColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-menu-separator{\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t}\r\n}\r\n\r\n.tabulator-edit-select-list{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tmax-height:200px;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $editBoxColor;\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-edit-select-list-item{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\r\n\t\t&.active{\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\r\n\t\t\t&.focused{\r\n\t\t\t\toutline:1px solid rgba($rowBackgroundColor, .5);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.focused{\r\n\t\t\toutline:1px solid $editBoxColor;\r\n\t\t}\r\n\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-notice{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\ttext-align: center;\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-group{\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpadding:4px;\r\n\t\tpadding-top:6px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\tfont-weight:bold;\r\n\t}\r\n}\r\n\r\n// Table print styling\r\n\r\n.tabulator-print-fullscreen{\r\n\tposition: absolute;\r\n\ttop:0;\r\n\tbottom:0;\r\n\tleft:0;\r\n\tright:0;\r\n\r\n\tz-index: 10000;\r\n}\r\n\r\nbody.tabulator-print-fullscreen-hide>*:not(.tabulator-print-fullscreen){\r\n\tdisplay:none !important;\r\n}\r\n\r\n.tabulator-print-table{\r\n\tborder-collapse: collapse;\r\n\r\n\t//row grouping element\r\n\t.tabulator-print-table-group{\r\n\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:2px solid $primary;\r\n\t\tborder-top:2px solid $primary;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:lighten($primary, 20%);\r\n\t\tfont-weight:bold;\r\n\t\tcolor:fff;\r\n\t\tmargin-bottom: 2px;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:30px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:50px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:70px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:90px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:110px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:$primary;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-data-tree-branch{\r\n\t\tdisplay:inline-block;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:9px;\r\n\t\twidth:7px;\r\n\r\n\t\tmargin-top:-9px;\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\tborder-left:2px solid $rowBorderColor;\r\n\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t}\r\n\r\n\t.tabulator-data-tree-control{\r\n\r\n\t\tdisplay:inline-flex;\r\n\t\tjustify-content:center;\r\n\t\talign-items:center;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:11px;\r\n\t\twidth:11px;\r\n\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder:1px solid $rowTextColor;\r\n\t\tborder-radius:2px;\r\n\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\toverflow:hidden;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: transparent;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-expand{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n"]}
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator {
- position: relative;
- background-color: #fff;
- overflow: hidden;
- font-size: 14px;
- text-align: left;
- -ms-transform: translatez(0);
- transform: translatez(0);
-}
-
-.tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table {
- min-width: 100%;
-}
-
-.tabulator[tabulator-layout="fitDataTable"] {
- display: inline-block;
-}
-
-.tabulator.tabulator-block-select {
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator .tabulator-header {
- position: relative;
- box-sizing: border-box;
- width: 100%;
- border-bottom: 1px solid #999;
- background-color: #fff;
- color: #555;
- font-weight: bold;
- white-space: nowrap;
- overflow: hidden;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-header.tabulator-header-hidden {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- border-right: 1px solid #ddd;
- background-color: #fff;
- text-align: left;
- vertical-align: bottom;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-moving {
- position: absolute;
- border: 1px solid #999;
- background: #e6e6e6;
- pointer-events: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
- box-sizing: border-box;
- position: relative;
- padding: 4px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button {
- padding: 0 8px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover {
- cursor: pointer;
- opacity: .6;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
- box-sizing: border-box;
- width: 100%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- vertical-align: bottom;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
- box-sizing: border-box;
- width: 100%;
- border: 1px solid #999;
- padding: 1px;
- background: #fff;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow {
- display: inline-block;
- position: absolute;
- top: 9px;
- right: 8px;
- width: 0;
- height: 0;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- border-top: 1px solid #ddd;
- overflow: hidden;
- margin-right: -1px;
-}
-
-.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
- position: relative;
- box-sizing: border-box;
- margin-top: 2px;
- width: 100%;
- text-align: center;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
- height: auto !important;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
- margin-top: 3px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear {
- width: 0;
- height: 0;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
- padding-right: 25px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
- cursor: pointer;
- background-color: #e6e6e6;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #666;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow {
- border-top: 6px solid #666;
- border-bottom: none;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title {
- -ms-writing-mode: tb-rl;
- writing-mode: vertical-rl;
- text-orientation: mixed;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title {
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title {
- padding-right: 0;
- padding-top: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title {
- padding-right: 0;
- padding-bottom: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow {
- right: calc(50% - 6px);
-}
-
-.tabulator .tabulator-header .tabulator-frozen {
- display: inline-block;
- position: absolute;
- z-index: 10;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #ddd;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #ddd;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder {
- box-sizing: border-box;
- min-width: 600%;
- background: #f2f2f2 !important;
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #999;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
- background: #f2f2f2 !important;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder {
- min-width: 600%;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty {
- display: none;
-}
-
-.tabulator .tabulator-tableHolder {
- position: relative;
- width: 100%;
- white-space: nowrap;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.tabulator .tabulator-tableHolder:focus {
- outline: none;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder {
- box-sizing: border-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode="virtual"] {
- min-height: 100%;
- min-width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder span {
- display: inline-block;
- margin: 0 auto;
- padding: 10px;
- color: #000;
- font-weight: bold;
- font-size: 20px;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table {
- position: relative;
- display: inline-block;
- background-color: #fff;
- white-space: nowrap;
- overflow: visible;
- color: #333;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs {
- font-weight: bold;
- background: #f2f2f2 !important;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top {
- border-bottom: 2px solid #ddd;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom {
- border-top: 2px solid #ddd;
-}
-
-.tabulator .tabulator-col-resize-handle {
- position: absolute;
- right: 0;
- top: 0;
- bottom: 0;
- width: 5px;
-}
-
-.tabulator .tabulator-col-resize-handle.prev {
- left: 0;
- right: auto;
-}
-
-.tabulator .tabulator-col-resize-handle:hover {
- cursor: ew-resize;
-}
-
-.tabulator .tabulator-footer {
- padding: 5px 10px;
- border-top: 1px solid #999;
- background-color: #fff;
- text-align: right;
- color: #555;
- font-weight: bold;
- white-space: nowrap;
- -ms-user-select: none;
- user-select: none;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder {
- box-sizing: border-box;
- width: calc(100% + 20px);
- margin: -5px -10px 5px -10px;
- text-align: left;
- background: #f2f2f2 !important;
- border-bottom: 1px solid #fff;
- border-top: 1px solid #ddd;
- overflow: hidden;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
- background: #f2f2f2 !important;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
- margin-bottom: -5px;
- border-bottom: none;
-}
-
-.tabulator .tabulator-footer .tabulator-paginator {
- color: #555;
- font-family: inherit;
- font-weight: inherit;
- font-size: inherit;
-}
-
-.tabulator .tabulator-footer .tabulator-page-size {
- display: inline-block;
- margin: 0 5px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
-}
-
-.tabulator .tabulator-footer .tabulator-pages {
- margin: 0 7px;
-}
-
-.tabulator .tabulator-footer .tabulator-page {
- display: inline-block;
- margin: 0 2px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
- background: rgba(255, 255, 255, 0.2);
-}
-
-.tabulator .tabulator-footer .tabulator-page.active {
- color: #d00;
-}
-
-.tabulator .tabulator-footer .tabulator-page:disabled {
- opacity: .5;
-}
-
-.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
- color: #fff;
-}
-
-.tabulator .tabulator-loader {
- position: absolute;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- top: 0;
- left: 0;
- z-index: 100;
- height: 100%;
- width: 100%;
- background: rgba(0, 0, 0, 0.4);
- text-align: center;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg {
- display: inline-block;
- margin: 0 auto;
- padding: 10px 20px;
- border-radius: 10px;
- background: #fff;
- font-weight: bold;
- font-size: 16px;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading {
- border: 4px solid #333;
- color: #000;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error {
- border: 4px solid #D00;
- color: #590000;
-}
-
-.tabulator-row {
- position: relative;
- box-sizing: border-box;
- min-height: 22px;
- background-color: #fff;
- border-bottom: 1px solid #ddd;
-}
-
-.tabulator-row:nth-child(even) {
- background-color: #fff;
-}
-
-.tabulator-row.tabulator-selectable:hover {
- background-color: #bbb;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-selected {
- background-color: #9ABCEA;
-}
-
-.tabulator-row.tabulator-selected:hover {
- background-color: #769BCC;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-moving {
- position: absolute;
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- pointer-events: none !important;
- z-index: 15;
-}
-
-.tabulator-row .tabulator-row-resize-handle {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- height: 5px;
-}
-
-.tabulator-row .tabulator-row-resize-handle.prev {
- top: 0;
- bottom: auto;
-}
-
-.tabulator-row .tabulator-row-resize-handle:hover {
- cursor: ns-resize;
-}
-
-.tabulator-row .tabulator-frozen {
- display: inline-block;
- position: absolute;
- background-color: inherit;
- z-index: 10;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #ddd;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #ddd;
-}
-
-.tabulator-row .tabulator-responsive-collapse {
- box-sizing: border-box;
- padding: 5px;
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
-}
-
-.tabulator-row .tabulator-responsive-collapse:empty {
- display: none;
-}
-
-.tabulator-row .tabulator-responsive-collapse table {
- font-size: 14px;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td {
- position: relative;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
- padding-right: 10px;
-}
-
-.tabulator-row .tabulator-cell {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- padding: 4px;
- border-right: 1px solid #ddd;
- vertical-align: middle;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.tabulator-row .tabulator-cell:last-of-type {
- border-right: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing {
- border: 1px solid #1D68CD;
- padding: 0;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select {
- border: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail {
- border: 1px solid #dd0000;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select {
- border: 1px;
- background: transparent;
- color: #dd0000;
-}
-
-.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
- width: 80%;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
- width: 100%;
- height: 3px;
- margin-top: 2px;
- background: #666;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #ddd;
- border-bottom: 2px solid #ddd;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
- height: 15px;
- width: 15px;
- border-radius: 20px;
- background: #666;
- color: #fff;
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover {
- opacity: .7;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close {
- display: initial;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-traffic-light {
- display: inline-block;
- height: 14px;
- width: 14px;
- border-radius: 14px;
-}
-
-.tabulator-row.tabulator-group {
- box-sizing: border-box;
- border-bottom: 1px solid #999;
- border-right: 1px solid #ddd;
- border-top: 1px solid #999;
- padding: 5px;
- padding-left: 10px;
- background: #fafafa;
- font-weight: bold;
- min-width: 100%;
-}
-
-.tabulator-row.tabulator-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #666;
- border-bottom: 0;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-1 {
- padding-left: 30px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-2 {
- padding-left: 50px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-3 {
- padding-left: 70px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-4 {
- padding-left: 90px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-5 {
- padding-left: 110px;
-}
-
-.tabulator-row.tabulator-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-row.tabulator-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #666;
- vertical-align: middle;
-}
-
-.tabulator-row.tabulator-group span {
- margin-left: 10px;
- color: #666;
-}
-
-.tabulator-menu {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- background: #fff;
- border: 1px solid #ddd;
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-menu .tabulator-menu-item {
- padding: 5px 10px;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled {
- opacity: .5;
-}
-
-.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover {
- cursor: pointer;
- background: #fff;
-}
-
-.tabulator-menu .tabulator-menu-separator {
- border-top: 1px solid #ddd;
-}
-
-.tabulator-edit-select-list {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- max-height: 200px;
- background: #fff;
- border: 1px solid #ddd;
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item {
- padding: 4px;
- color: #333;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active {
- color: #fff;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused {
- outline: 1px solid rgba(255, 255, 255, 0.5);
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.focused {
- outline: 1px solid #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item:hover {
- cursor: pointer;
- color: #fff;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-notice {
- padding: 4px;
- color: #333;
- text-align: center;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-group {
- border-bottom: 1px solid #ddd;
- padding: 4px;
- padding-top: 6px;
- color: #333;
- font-weight: bold;
-}
-
-.tabulator-print-fullscreen {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 10000;
-}
-
-body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
- display: none !important;
-}
-
-.tabulator-print-table {
- border-collapse: collapse;
-}
-
-.tabulator-print-table .tabulator-print-table-group {
- box-sizing: border-box;
- border-bottom: 1px solid #999;
- border-right: 1px solid #ddd;
- border-top: 1px solid #999;
- padding: 5px;
- padding-left: 10px;
- background: #fafafa;
- font-weight: bold;
- min-width: 100%;
-}
-
-.tabulator-print-table .tabulator-print-table-group:hover {
- cursor: pointer;
- background-color: rgba(0, 0, 0, 0.1);
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #666;
- border-bottom: 0;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td {
- padding-left: 30px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td {
- padding-left: 50px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td {
- padding-left: 70px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td {
- padding-left: 90px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td {
- padding-left: 110px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #666;
- vertical-align: middle;
-}
-
-.tabulator-print-table .tabulator-print-table-group span {
- margin-left: 10px;
- color: #666;
-}
-
-.tabulator-print-table .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #ddd;
- border-bottom: 2px solid #ddd;
-}
-
-.tabulator-print-table .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-print-table .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator{position:relative;background-color:#fff;overflow:hidden;font-size:14px;text-align:left;transform:translatez(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableHolder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator .tabulator-header{position:relative;box-sizing:border-box;width:100%;border-bottom:1px solid #999;background-color:#fff;color:#555;font-weight:700;white-space:nowrap;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-col{display:inline-block;position:relative;box-sizing:border-box;border-right:1px solid #ddd;background-color:#fff;text-align:left;vertical-align:bottom;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-moving{position:absolute;border:1px solid #999;background:#e6e6e6;pointer-events:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;position:relative;padding:4px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{box-sizing:border-box;width:100%;border:1px solid #999;padding:1px;background:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{display:inline-block;position:absolute;top:9px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{position:relative;display:-ms-flexbox;display:flex;border-top:1px solid #ddd;overflow:hidden;margin-right:-1px}.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{position:relative;box-sizing:border-box;margin-top:2px;width:100%;text-align:center}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{width:0;height:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{cursor:pointer;background-color:#e6e6e6}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #666}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-col-content .tabulator-arrow{border-top:6px solid #666;border-bottom:none}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-right:0;padding-bottom:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow{right:calc(50% - 6px)}.tabulator .tabulator-header .tabulator-frozen{display:inline-block;position:absolute;z-index:10}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator .tabulator-header .tabulator-calcs-holder{box-sizing:border-box;min-width:600%;background:#f2f2f2!important;border-top:1px solid #ddd;border-bottom:1px solid #999;overflow:hidden}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f2f2f2!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{min-width:600%}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableHolder{position:relative;width:100%;white-space:nowrap;overflow:auto;-webkit-overflow-scrolling:touch}.tabulator .tabulator-tableHolder:focus{outline:none}.tabulator .tabulator-tableHolder .tabulator-placeholder{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%;min-width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder span{display:inline-block;margin:0 auto;padding:10px;color:#000;font-weight:700;font-size:20px}.tabulator .tabulator-tableHolder .tabulator-table{position:relative;display:inline-block;background-color:#fff;white-space:nowrap;overflow:visible;color:#333}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs{font-weight:700;background:#f2f2f2!important}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #ddd}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #ddd}.tabulator .tabulator-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px}.tabulator .tabulator-col-resize-handle.prev{left:0;right:auto}.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}.tabulator .tabulator-footer{padding:5px 10px;border-top:1px solid #999;background-color:#fff;text-align:right;color:#555;font-weight:700;white-space:nowrap;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-footer .tabulator-calcs-holder{box-sizing:border-box;width:calc(100% + 20px);margin:-5px -10px 5px;text-align:left;background:#f2f2f2!important;border-bottom:1px solid #fff;border-top:1px solid #ddd;overflow:hidden}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f2f2f2!important}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px;border-bottom:none}.tabulator .tabulator-footer .tabulator-paginator{color:#555;font-family:inherit;font-weight:inherit;font-size:inherit}.tabulator .tabulator-footer .tabulator-page-size{display:inline-block;margin:0 5px;padding:2px 5px;border:1px solid #aaa;border-radius:3px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid #aaa;border-radius:3px;background:hsla(0,0%,100%,.2)}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{cursor:pointer;background:rgba(0,0,0,.2);color:#fff}.tabulator .tabulator-loader{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:0;left:0;z-index:100;height:100%;width:100%;background:rgba(0,0,0,.4);text-align:center}.tabulator .tabulator-loader .tabulator-loader-msg{display:inline-block;margin:0 auto;padding:10px 20px;border-radius:10px;background:#fff;font-weight:700;font-size:16px}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading{border:4px solid #333;color:#000}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error{border:4px solid #d00;color:#590000}.tabulator-row{position:relative;box-sizing:border-box;min-height:22px;border-bottom:1px solid #ddd}.tabulator-row,.tabulator-row:nth-child(2n){background-color:#fff}.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}.tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}.tabulator-row.tabulator-moving{position:absolute;border-top:1px solid #ddd;border-bottom:1px solid #ddd;pointer-events:none!important;z-index:15}.tabulator-row .tabulator-row-resize-handle{position:absolute;right:0;bottom:0;left:0;height:5px}.tabulator-row .tabulator-row-resize-handle.prev{top:0;bottom:auto}.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}.tabulator-row .tabulator-frozen{display:inline-block;position:absolute;background-color:inherit;z-index:10}.tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator-row .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator-row .tabulator-responsive-collapse{box-sizing:border-box;padding:5px;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{display:inline-block;position:relative;box-sizing:border-box;padding:4px;border-right:1px solid #ddd;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabulator-row .tabulator-cell:last-of-type{border-right:none}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{border:1px;background:transparent}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{border:1px;background:transparent;color:#d00}.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator-row .tabulator-cell.tabulator-row-handle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{width:100%;height:3px;margin-top:2px;background:#666}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #ddd;border-bottom:2px solid #ddd}.tabulator-row .tabulator-cell .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;height:15px;width:15px;border-radius:20px;background:#666;color:#fff;font-weight:700;font-size:1.1em}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{opacity:.7}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open,.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{display:inline-block;height:14px;width:14px;border-radius:14px}.tabulator-row.tabulator-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;padding:5px;padding-left:10px;background:#fafafa;font-weight:700;min-width:100%}.tabulator-row.tabulator-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-row.tabulator-group span{margin-left:10px;color:#666}.tabulator-menu{position:absolute;display:inline-block;box-sizing:border-box;background:#fff;border:1px solid #ddd;box-shadow:0 0 5px 0 rgba(0,0,0,.2);font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-menu .tabulator-menu-item{padding:5px 10px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{cursor:pointer;background:#fff}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #ddd}.tabulator-edit-select-list{position:absolute;display:inline-block;box-sizing:border-box;max-height:200px;background:#fff;border:1px solid #ddd;font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-edit-select-list .tabulator-edit-select-list-item{padding:4px;color:#333}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-select-list .tabulator-edit-select-list-item.focused{outline:1px solid #1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{cursor:pointer;color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-notice{padding:4px;color:#333;text-align:center}.tabulator-edit-select-list .tabulator-edit-select-list-group{border-bottom:1px solid #ddd;padding:4px;padding-top:6px;color:#333;font-weight:700}.tabulator-print-fullscreen{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-print-table-group{box-sizing:border-box;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;padding:5px;padding-left:10px;background:#fafafa;font-weight:700;min-width:100%}.tabulator-print-table .tabulator-print-table-group:hover{cursor:pointer;background-color:rgba(0,0,0,.1)}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;border-bottom:0}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #666;vertical-align:middle}.tabulator-print-table .tabulator-print-table-group span{margin-left:10px;color:#666}.tabulator-print-table .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #ddd;border-bottom:2px solid #ddd}.tabulator-print-table .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-print-table .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}
-/*# sourceMappingURL=tabulator_simple.min.css.map */
+++ /dev/null
-{"version":3,"sources":["tabulator_simple.scss"],"names":[],"mappings":"AA0CA,WACC,kBAAkB,AAClB,sBAxCqB,AAyCrB,gBAAe,AACf,eAxCa,AAyCb,gBAAgB,AAMhB,uBAAwB,CA2fxB,AAtgBD,iFAgBI,cAAc,CACd,AAjBJ,0CAsBE,oBAAqB,CACrB,AAvBF,kCA0BE,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CACjB,AA3BF,6BA+BE,kBAAiB,AACjB,sBAAsB,AAEtB,WAAU,AAEV,6BAlEwB,AAmExB,sBAtEyB,AAuEzB,WAtEmB,AAuEnB,gBAAgB,AAEhB,mBAAmB,AACnB,gBAAe,AAEf,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAqPpB,AApSF,qDAkDG,YAAY,CACZ,AAnDH,4CAuDG,qBAAoB,AACpB,kBAAiB,AACjB,sBAAqB,AACrB,4BAzFoB,AA0FpB,sBA5FwB,AA6FxB,gBAAe,AACf,sBAAsB,AACtB,eAAgB,CAwLhB,AAtPH,6DAiEI,kBAAkB,AAClB,sBAhGsB,AAiGtB,mBAA8C,AAC9C,mBAAoB,CACpB,AArEJ,mEAyEI,sBAAqB,AACrB,kBAAkB,AAClB,WAAW,CAgDX,AA3HJ,iGA+EK,aAAc,CAMd,AArFL,uGAkFM,eAAe,AACf,UAAW,CACX,AApFN,wFAyFK,sBAAqB,AACrB,WAAW,AAEX,mBAAmB,AACnB,gBAAgB,AAChB,uBAAuB,AACvB,qBAAqB,CAarB,AA5GL,gHAmGM,sBAAsB,AACtB,WAAW,AAEX,sBAAqB,AAErB,YAAW,AAEX,eAAgB,CAChB,AA3GN,oFAgHK,qBAAqB,AACrB,kBAAkB,AAClB,QAAO,AACP,UAAS,AACT,QAAQ,AACR,SAAS,AACT,kCAAkC,AAClC,mCAAmC,AACnC,4BAjJmB,CAkJnB,AAzHL,0FAkIK,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AAEb,0BApKkB,AAqKlB,gBAAgB,AAEhB,iBAAiB,CACjB,AAzIL,0FAgJK,YAAa,CACb,AAjJL,qEAsJI,kBAAkB,AAClB,sBAAsB,AACtB,eAAc,AACd,WAAU,AACV,iBAAkB,CAiBlB,AA3KJ,8EA8JK,qBAAsB,CACtB,AA/JL,yEAkKK,cAAe,CACf,AAnKL,sFAuKO,QAAS,AACT,QAAS,CACV,AAzKN,oFAiLK,kBAAkB,CAClB,AAlLL,qEAqLK,eAAc,AACd,wBAAoD,CACpD,AAvLL,uHA4LM,gBAAgB,AAChB,4BAtNkB,CAuNlB,AA9LN,sHAmMM,gBAAgB,AAChB,4BA9NgB,CA+NhB,AArMN,uHA0MM,0BApOgB,AAqOhB,kBAAmB,CACnB,AA5MN,+GAmNM,uBAAyB,AAAzB,yBAAyB,AACzB,uBAAuB,AAEvB,oBAAY,AAAZ,aAAY,AACZ,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,sBAAsB,CACtB,AAzNN,oHA8NM,wBAAyB,CACzB,AA/NN,2GAoOM,gBAAe,AACf,gBAAgB,CAChB,AAtON,uIA0OO,gBAAe,AACf,mBAAmB,CACnB,AA5OP,uGAiPM,qBAAqB,CACrB,AAlPN,+CAyPG,qBAAqB,AACrB,kBAAkB,AAIlB,UAAW,CASX,AAvQH,qEAiQI,2BArRgB,CAsRhB,AAlQJ,sEAqQI,0BAzRgB,CA0RhB,AAtQJ,qDA0QG,sBAAqB,AACrB,eAAc,AAEd,6BAAwD,AAUxD,0BA3SiB,AA4SjB,6BAtTuB,AAwTvB,eAAgB,CAChB,AA3RH,oEAgRI,4BAAwD,CAKxD,AArRJ,iGAmRK,YAAa,CACb,AApRL,2DA8RG,cAAc,CAKd,AAnSH,iEAiSI,YAAa,CACb,AAlSJ,kCA0SE,kBAAiB,AACjB,WAAU,AACV,mBAAmB,AACnB,cAAa,AACb,gCAAiC,CAwDjC,AAtWF,wCAiTG,YAAa,CACb,AAlTH,yDAsTG,sBAAqB,AACrB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAOlB,UAAU,CAYV,AA3UH,wFA2TI,gBAAe,AACf,cAAc,CACd,AA7TJ,8DAkUI,qBAAqB,AAErB,cAAa,AACb,aAAY,AAEZ,WAAU,AACV,gBAAiB,AACjB,cAAe,CACf,AA1UJ,mDA+UG,kBAAiB,AACjB,qBAAoB,AACpB,sBAvWqB,AAwWrB,mBAAmB,AACnB,iBAAgB,AAChB,UAvWe,CAwXf,AArWH,kFAwVK,gBAAiB,AACjB,4BAAwD,CASxD,AAlWL,sGA4VM,4BAhXc,CAiXd,AA7VN,yGAgWM,yBApXc,CAqXd,AAjWN,wCA0WE,kBAAiB,AACjB,QAAO,AACP,MAAK,AACL,SAAQ,AACR,SAAS,CAUT,AAxXF,6CAiXG,OAAM,AACN,UAAU,CACV,AAnXH,8CAsXG,gBAAgB,CAChB,AAvXH,6BA6XE,iBAAgB,AAChB,0BAnYwB,AAoYxB,sBAvYyB,AAwYzB,iBAAgB,AAChB,WAxYmB,AAyYnB,gBAAgB,AAChB,mBAAkB,AAClB,qBAAgB,AAAhB,iBAAgB,AAEhB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAkFpB,AA3dF,qDA4YG,sBAAqB,AACrB,wBAAuB,AACvB,sBAA2B,AAE3B,gBAAgB,AAEhB,6BAAwD,AAUxD,6BApawB,AAqaxB,0BAjbiB,AAmbjB,eAAgB,CAMhB,AAraH,oEAqZI,4BAAwD,CAKxD,AA1ZJ,iGAwZK,YAAa,CACb,AAzZL,gEAkaI,mBAAkB,AAClB,kBAAkB,CAClB,AApaJ,kDAyaG,WAhbkB,AAiblB,oBAAmB,AACnB,oBAAmB,AACnB,iBAAiB,CACjB,AA7aH,kDAibG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA5boB,AA6bpB,iBAAiB,CACjB,AAxbH,8CA4bG,YAAY,CACZ,AA7bH,6CAicG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA5coB,AA6cpB,kBAAiB,AAEjB,6BAA+B,CAiB/B,AA1dH,oDA4cI,UAhdmB,CAidnB,AA7cJ,sDAgdI,UAAU,CACV,AAjdJ,kEAqdK,eAAc,AACd,0BAAyB,AACzB,UAAU,CACV,AAxdL,6BA+dE,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAElB,MAAK,AACL,OAAM,AACN,YAAW,AAEX,YAAW,AACX,WAAU,AACV,0BAAyB,AACzB,iBAAiB,CA2BjB,AArgBF,mDA8eG,qBAAoB,AAEpB,cAAa,AACb,kBAAiB,AAEjB,mBAAkB,AAElB,gBAAe,AACf,gBAAgB,AAChB,cAAc,CAad,AApgBH,qEA2fI,sBAAqB,AACrB,UAAU,CACV,AA7fJ,mEAigBI,sBAAqB,AACrB,aAAa,CACb,AAMJ,eACC,kBAAkB,AAClB,sBAAsB,AAEtB,gBAA0C,AAE1C,4BAniBmB,CA+4BnB,AAlXD,4CAKC,qBApiBuB,CAyiBtB,AAVF,0CAaE,sBAxiBsB,AAyiBtB,cAAe,CACf,AAfF,kCAkBE,wBA3iB6B,CA4iB7B,AAnBF,wCAsBE,yBA9iBkC,AA+iBlC,cAAe,CACf,AAxBF,gCA2BE,kBAAkB,AAElB,0BA1jBkB,AA2jBlB,6BA3jBkB,AA6jBlB,8BAA+B,AAC/B,UAAU,CACV,AAlCF,4CAsCE,kBAAiB,AACjB,QAAO,AACP,SAAQ,AACR,OAAM,AACN,UAAU,CAUV,AApDF,iDA6CG,MAAK,AACL,WAAW,CACX,AA/CH,kDAkDG,gBAAgB,CAChB,AAnDH,iCAuDE,qBAAqB,AACrB,kBAAkB,AAElB,yBAAyB,AAEzB,UAAW,CASX,AArEF,uDA+DG,2BA5lBiB,CA6lBjB,AAhEH,wDAmEG,0BAhmBiB,CAimBjB,AApEH,8CAwEE,sBAAqB,AAErB,YAAW,AAEX,0BAzmBkB,AA0mBlB,4BA1mBkB,CA6nBlB,AAhGF,oDAgFG,YAAY,CACZ,AAjFH,oDAoFG,cAjoBW,CA4oBX,AA/FH,0DAwFK,iBAAkB,CAKlB,AA7FL,wEA2FM,kBAAkB,CAClB,AA5FN,+BAoGE,qBAAoB,AACpB,kBAAkB,AAClB,sBAAqB,AACrB,YAAW,AACX,4BAroBkB,AAsoBlB,sBAAqB,AACrB,mBAAkB,AAClB,gBAAe,AACf,sBAAsB,CA6LtB,AAzSF,4CA+GG,iBAAkB,CAClB,AAhHH,iDAmHG,yBAxoBkB,AAyoBlB,SAAU,CAMV,AA1HH,+GAuHI,WAAU,AACV,sBAAsB,CACtB,AAzHJ,yDA6HG,qBAjpBgB,CAwpBhB,AApIH,+HA+HI,WAAU,AACV,uBAAsB,AAEtB,UAtpBe,CAupBf,AAnIJ,6EAyII,YAAa,CACb,AA1IJ,oDAgJG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAElB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAcpB,AApKH,8EA0JI,SAAS,CAST,AAnKJ,wGA8JK,WAAU,AACV,WAAU,AACV,eAAc,AACd,eAAe,CACf,AAlKL,2DAuKG,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BA/sBiB,AAgtBjB,4BAhtBiB,CAitBjB,AApLH,4DAwLG,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBA9tBe,AA+tBf,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAmDf,AAzPH,kEAyMI,eAAc,AACd,yBAA4B,CAC5B,AA3MJ,kGA8MI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAjOJ,wGAuNK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA3vBa,CA4vBb,AAhOL,gGAoOI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eAtwBc,CAmxBd,AAvPJ,sGA6OK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAjxBa,CAkxBb,AAtPL,qEA4PG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,oBAAoB,AAEpB,YAAW,AACX,WAAU,AAEV,mBAAkB,AAClB,gBAAe,AAEf,WA1yBqB,AA2yBrB,gBAAgB,AAChB,eAAe,CAmBf,AAhSH,2EAgRI,UAAU,CACV,AAjRJ,sHAqRK,eAAe,CACf,AAtRL,sOA8RI,YAAY,CACZ,AA/RJ,wDAmSG,qBAAqB,AACrB,YAAW,AACX,WAAU,AAEV,kBAAkB,CAClB,AAxSH,+BA8SE,sBAAqB,AACrB,6BAA4B,AAC5B,4BA70BkB,AA80BlB,0BAAyB,AACzB,YAAW,AACX,kBAAiB,AACjB,mBAAkB,AAClB,gBAAgB,AAEhB,cAAe,CA0Df,AAjXF,qCA0TG,eAAc,AACd,+BAA+B,CAC/B,AA5TH,wEAgUI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,0BAt2BkB,AAu2BlB,eAAgB,CAChB,AArUJ,uDAyUG,iBAAiB,CACjB,AA1UH,uDA6UG,iBAAiB,CACjB,AA9UH,uDAiVG,iBAAiB,CACjB,AAlVH,uDAqVG,iBAAiB,CACjB,AAtVH,uDAyVG,kBAAkB,CAClB,AA1VH,uDA6VG,oBAAqB,CACrB,AA9VH,gDAkWG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,2BA54BmB,AA64BnB,qBAAqB,CACrB,AA3WH,oCA8WG,iBAAgB,AAChB,UAAU,CACV,AAIH,gBACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,gBAx5BuB,AAy5BvB,sBAv5BmB,AAw5BnB,oCAAuC,AAEvC,eA16Ba,AA46Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CAqBd,AAnCD,qCAkBE,iBAAgB,AAEhB,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CAUjB,AA9BF,kEAuBG,UAAW,CACX,AAxBH,8EA2BG,eAAe,AACf,eA96BwB,CA+6BxB,AA7BH,0CAiCE,yBAl7BkB,CAm7BlB,AAGF,4BACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,iBAAgB,AAEhB,gBA/7BuB,AAg8BvB,sBA97BmB,AAg8BnB,eAh9Ba,AAk9Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CA6Cd,AA5DD,6DAkBE,YAAW,AAEX,UAz8BgB,CA+9BhB,AA1CF,oEAuBG,WA/8BqB,AAg9BrB,kBAt8BkB,CA28BlB,AA7BH,4EA2BI,oCAn9BoB,CAo9BpB,AA5BJ,qEAgCG,yBA98BkB,CA+8BlB,AAjCH,mEAqCG,eAAc,AAEd,WA/9BqB,AAg+BrB,kBAt9BkB,CAu9BlB,AAzCH,+DA6CE,YAAW,AAEX,WAp+BgB,AAq+BhB,iBAAkB,CAClB,AAjDF,8DAoDE,6BA1+BkB,AA4+BlB,YAAW,AACX,gBAAe,AAEf,WA9+BgB,AA++BhB,eAAgB,CAChB,AAKF,4BACC,kBAAkB,AAClB,MAAK,AACL,SAAQ,AACR,OAAM,AACN,QAAO,AAEP,aAAc,CACd,AAED,uEACC,sBAAuB,CACvB,AAED,uBACC,wBAAyB,CAuKzB,AAxKD,oDAME,sBAAqB,AACrB,6BAA4B,AAC5B,4BA5gCkB,AA6gClB,0BAAyB,AACzB,YAAW,AACX,kBAAiB,AACjB,mBAAkB,AAClB,gBAAgB,AAEhB,cAAe,CAoEf,AAnFF,0DAkBG,eAAc,AACd,+BAA+B,CAC/B,AApBH,6FAwBI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,0BAriCkB,AAsiClB,eAAgB,CAChB,AA7BJ,+EAkCI,2BAA4B,CAC5B,AAnCJ,+EAwCI,2BAA4B,CAC5B,AAzCJ,+EA8CI,2BAA4B,CAC5B,AA/CJ,+EAoDI,2BAA4B,CAC5B,AArDJ,+EA0DI,4BAA6B,CAC7B,AA3DJ,4EA+DG,oBAAqB,CACrB,AAhEH,qEAoEG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,2BArlCmB,AAslCnB,qBAAqB,CACrB,AA7EH,yDAgFG,iBAAgB,AAChB,UAAU,CACV,AAlFH,mDAsFE,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BArmCkB,AAsmClB,4BAtmCkB,CAumClB,AAnGF,oDAuGE,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBApnCgB,AAqnChB,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAkDf,AAvKF,0DAwHG,eAAc,AACd,yBAA4B,CAC5B,AA1HH,0FA6HG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAhJH,gGAsII,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAjpCc,CAkpCd,AA/IJ,wFAmJG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eA5pCe,CAyqCf,AAtKH,8FA4JI,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAvqCc,CAwqCd","file":"tabulator_simple.min.css","sourcesContent":["/* Tabulator v4.7.0 (c) Oliver Folkerd */\n\n\r\n//Main Theme Variables\r\n$backgroundColor: #fff !default; //background color of tabulator\r\n$borderColor:#999 !default; //border to tabulator\r\n$textSize:14px !default; //table text size\r\n\r\n//header themeing\r\n$headerBackgroundColor:#fff !default; //border to tabulator\r\n$headerTextColor:#555 !default; //header text colour\r\n$headerBorderColor:#ddd !default; //header border color\r\n$headerSeperatorColor:#999 !default; //header bottom seperator color\r\n$headerMargin:4px !default; //padding round header\r\n\r\n//column header arrows\r\n$sortArrowActive: #666 !default;\r\n$sortArrowInactive: #bbb !default;\r\n\r\n//row themeing\r\n$rowBackgroundColor:#fff !default; //table row background color\r\n$rowAltBackgroundColor:#fff !default; //table row background color\r\n$rowBorderColor:#ddd !default; //table border color\r\n$rowTextColor:#333 !default; //table text color\r\n$rowHoverBackground:#bbb !default; //row background color on hover\r\n\r\n$rowSelectedBackground: #9ABCEA !default; //row background color when selected\r\n$rowSelectedBackgroundHover: #769BCC !default;//row background color when selected and hovered\r\n\r\n\r\n$editBoxColor:#1D68CD !default; //border color for edit boxes\r\n$errorColor:#dd0000 !default; //error indication\r\n\r\n//footer themeing\r\n$footerBackgroundColor:#fff !default; //border to tabulator\r\n$footerTextColor:#555 !default; //footer text colour\r\n$footerBorderColor:#aaa !default; //footer border color\r\n$footerSeperatorColor:#999 !default; //footer bottom seperator color\r\n$footerActiveColor:#d00 !default; //footer bottom active text color\r\n\r\n\r\n//Tabulator Containing Element\r\n.tabulator{\r\n\tposition: relative;\r\n\tbackground-color: $backgroundColor;\r\n\toverflow:hidden;\r\n\tfont-size:$textSize;\r\n\ttext-align: left;\r\n\r\n\t-webkit-transform: translatez(0);\r\n\t-moz-transform: translatez(0);\r\n\t-ms-transform: translatez(0);\r\n\t-o-transform: translatez(0);\r\n\ttransform: translatez(0);\r\n\r\n\t&[tabulator-layout=\"fitDataFill\"]{\r\n\t\t.tabulator-tableHolder{\r\n\t\t\t.tabulator-table{\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&[tabulator-layout=\"fitDataTable\"]{\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\r\n\t&.tabulator-block-select{\r\n\t\tuser-select: none;\r\n\t}\r\n\r\n\t//column header containing element\r\n\t.tabulator-header{\r\n\t\tposition:relative;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\twidth:100%;\r\n\r\n\t\tborder-bottom:1px solid $headerSeperatorColor;\r\n\t\tbackground-color: $headerBackgroundColor;\r\n\t\tcolor: $headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:hidden;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t&.tabulator-header-hidden{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\t//individual column header element\r\n\t\t.tabulator-col{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition:relative;\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tborder-right:1px solid $headerBorderColor;\r\n\t\t\tbackground-color: $headerBackgroundColor;\r\n\t\t\ttext-align:left;\r\n\t\t\tvertical-align: bottom;\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&.tabulator-moving{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tborder:1px solid $headerSeperatorColor;\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 10%);\r\n\t\t\t\tpointer-events: none;\r\n\t\t\t}\r\n\r\n\t\t\t//hold content of column header\r\n\t\t\t.tabulator-col-content{\r\n\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding:4px;\r\n\r\n\t\t\t\t//header menu button\r\n\t\t\t\t.tabulator-header-menu-button{\r\n\t\t\t\t\tpadding: 0 8px;\r\n\r\n\t\t\t\t\t&:hover{\r\n\t\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t\topacity: .6;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//hold title of column header\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\t\tvertical-align:bottom;\r\n\r\n\t\t\t\t\t//element to hold title editor\r\n\t\t\t\t\t.tabulator-title-editor{\r\n\t\t\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\t\tborder:1px solid #999;\r\n\r\n\t\t\t\t\t\tpadding:1px;\r\n\r\n\t\t\t\t\t\tbackground: #fff;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//column sorter arrow\r\n\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:9px;\r\n\t\t\t\t\tright:8px;\r\n\t\t\t\t\twidth: 0;\r\n\t\t\t\t\theight: 0;\r\n\t\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t//complex header column group\r\n\t\t\t&.tabulator-col-group{\r\n\r\n\t\t\t\t//gelement to hold sub columns in column group\r\n\t\t\t\t.tabulator-col-group-cols{\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tdisplay: flex;\r\n\r\n\t\t\t\t\tborder-top:1px solid $headerBorderColor;\r\n\t\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\t\tmargin-right:-1px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//hide left resize handle on first column\r\n\t\t\t&:first-child{\r\n\t\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//header filter containing element\r\n\t\t\t.tabulator-header-filter{\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tmargin-top:2px;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\ttext-align: center;\r\n\r\n\t\t\t\t//styling adjustment for inbuilt editors\r\n\t\t\t\ttextarea{\r\n\t\t\t\t\theight:auto !important;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsvg{\r\n\t\t\t\t\tmargin-top: 3px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput{\r\n\t\t\t\t\t&::-ms-clear {\r\n\t\t\t\t\t width : 0;\r\n\t\t\t\t\t height: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//styling child elements for sortable columns\r\n\t\t\t&.tabulator-sortable{\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tpadding-right:25px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t&[aria-sort=\"none\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"asc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowActive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"desc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\t\t\tborder-bottom: none;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-col-vertical{\r\n\t\t\t\t.tabulator-col-content{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\twriting-mode: vertical-rl;\r\n\t\t\t\t\t\ttext-orientation: mixed;\r\n\r\n\t\t\t\t\t\tdisplay:flex;\r\n\t\t\t\t\t\talign-items:center;\r\n\t\t\t\t\t\tjustify-content:center;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\ttransform: rotate(180deg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-sortable{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\tpadding-top:20px;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t\tpadding-bottom:20px;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\t\tright:calc(50% - 6px);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tposition: absolute;\r\n\r\n\t\t\t// background-color: inherit;\r\n\r\n\t\t\tz-index: 10;\r\n\r\n\t\t\t&.tabulator-frozen-left{\r\n\t\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-frozen-right{\r\n\t\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\tbackground:darken($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\t\t\tborder-bottom:1px solid $headerSeperatorColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen-rows-holder{\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\t&:empty{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t//scrolling element to hold table\r\n\t.tabulator-tableHolder{\r\n\t\tposition:relative;\r\n\t\twidth:100%;\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:auto;\r\n\t\t-webkit-overflow-scrolling: touch;\r\n\r\n\t\t&:focus{\r\n\t\t\toutline: none;\r\n\t\t}\r\n\r\n\t\t//default placeholder element\r\n\t\t.tabulator-placeholder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t&[tabulator-render-mode=\"virtual\"]{\r\n\t\t\t\tmin-height:100%;\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\r\n\t\t\twidth:100%;\r\n\r\n\t\t\tspan{\r\n\t\t\t\tdisplay: inline-block;\r\n\r\n\t\t\t\tmargin:0 auto;\r\n\t\t\t\tpadding:10px;\r\n\r\n\t\t\t\tcolor:#000;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//element to hold table rows\r\n\t\t.tabulator-table{\r\n\t\t\tposition:relative;\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tbackground-color:$rowBackgroundColor;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\toverflow:visible;\r\n\t\t\tcolor:$rowTextColor;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\t&.tabulator-calcs{\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t\tbackground:darken($rowAltBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t\t&.tabulator-calcs-top{\r\n\t\t\t\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-calcs-bottom{\r\n\t\t\t\t\t\tborder-top:2px solid $rowBorderColor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t//column resize handles\r\n\t.tabulator-col-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\ttop:0;\r\n\t\tbottom:0;\r\n\t\twidth:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\tleft:0;\r\n\t\t\tright:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ew-resize;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//footer element\r\n\t.tabulator-footer{\r\n\t\tpadding:5px 10px;\r\n\t\tborder-top:1px solid $footerSeperatorColor;\r\n\t\tbackground-color: $footerBackgroundColor;\r\n\t\ttext-align:right;\r\n\t\tcolor: $footerTextColor;\r\n\t\tfont-weight:bold;\r\n\t\twhite-space:nowrap;\r\n\t\tuser-select:none;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\twidth:calc(100% + 20px);\r\n\t\t\tmargin:-5px -10px 5px -10px;\r\n\r\n\t\t\ttext-align: left;\r\n\r\n\t\t\tbackground:darken($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:darken($footerBackgroundColor, 5%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-bottom:1px solid $footerBackgroundColor;\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&:only-child{\r\n\t\t\t\tmargin-bottom:-5px;\r\n\t\t\t\tborder-bottom:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-paginator{\r\n\t\t\tcolor: $footerTextColor;\r\n\t\t\tfont-family:inherit;\r\n\t\t\tfont-weight:inherit;\r\n\t\t\tfont-size:inherit;\r\n\t\t}\r\n\r\n\t\t//page size select element\r\n\t\t.tabulator-page-size{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 5px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-pages{\r\n\t\t\tmargin:0 7px;\r\n\t\t}\r\n\r\n\t\t//pagination button\r\n\t\t.tabulator-page{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 2px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\r\n\t\t\tbackground:rgba(255,255,255,.2);\r\n\r\n\t\t\t&.active{\r\n\t\t\t\tcolor:$footerActiveColor;\r\n\t\t\t}\r\n\r\n\t\t\t&:disabled{\r\n\t\t\t\topacity:.5;\r\n\t\t\t}\r\n\r\n\t\t\t&:not(.disabled){\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground:rgba(0,0,0,.2);\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//holding div that contains loader and covers tabulator element to prevent interaction\r\n\t.tabulator-loader{\r\n\t\tposition:absolute;\r\n\t\tdisplay: flex;\r\n\t\talign-items:center;\r\n\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tz-index:100;\r\n\r\n\t\theight:100%;\r\n\t\twidth:100%;\r\n\t\tbackground:rgba(0,0,0,.4);\r\n\t\ttext-align:center;\r\n\r\n\t\t//loading message element\r\n\t\t.tabulator-loader-msg{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 auto;\r\n\t\t\tpadding:10px 20px;\r\n\r\n\t\t\tborder-radius:10px;\r\n\r\n\t\t\tbackground:#fff;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:16px;\r\n\r\n\t\t\t//loading message\r\n\t\t\t&.tabulator-loading{\r\n\t\t\t\tborder:4px solid #333;\r\n\t\t\t\tcolor:#000;\r\n\t\t\t}\r\n\r\n\t\t\t//error message\r\n\t\t\t&.tabulator-error{\r\n\t\t\t\tborder:4px solid #D00;\r\n\t\t\t\tcolor:#590000;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//row element\r\n.tabulator-row{\r\n\tposition: relative;\r\n\tbox-sizing: border-box;\r\n\r\n\tmin-height:$textSize + ($headerMargin * 2);\r\n\tbackground-color: $rowBackgroundColor;\r\n\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t&:nth-child(even){\r\n\t\tbackground-color: $rowAltBackgroundColor;\r\n\t}\r\n\r\n\t&.tabulator-selectable:hover{\r\n\t\tbackground-color:$rowHoverBackground;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-selected{\r\n\t\tbackground-color:$rowSelectedBackground;\r\n\t}\r\n\r\n\t&.tabulator-selected:hover{\r\n\t\tbackground-color:$rowSelectedBackgroundHover;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-moving{\r\n\t\tposition: absolute;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpointer-events: none !important;\r\n\t\tz-index:15;\r\n\t}\r\n\r\n\t//row resize handles\r\n\t.tabulator-row-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\tbottom:0;\r\n\t\tleft:0;\r\n\t\theight:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\ttop:0;\r\n\t\t\tbottom:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ns-resize;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-frozen{\r\n\t\tdisplay: inline-block;\r\n\t\tposition: absolute;\r\n\r\n\t\tbackground-color: inherit;\r\n\r\n\t\tz-index: 10;\r\n\r\n\t\t&.tabulator-frozen-left{\r\n\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t&.tabulator-frozen-right{\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-responsive-collapse{\r\n\t\tbox-sizing:border-box;\r\n\r\n\t\tpadding:5px;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\t&:empty{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\ttable{\r\n\t\t\tfont-size:$textSize;\r\n\r\n\t\t\ttr{\r\n\t\t\t\ttd{\r\n\t\t\t\t\tposition: relative;\r\n\r\n\t\t\t\t\t&:first-of-type{\r\n\t\t\t\t\t\tpadding-right:10px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//cell element\r\n\t.tabulator-cell{\r\n\t\tdisplay:inline-block;\r\n\t\tposition: relative;\r\n\t\tbox-sizing:border-box;\r\n\t\tpadding:4px;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tvertical-align:middle;\r\n\t\twhite-space:nowrap;\r\n\t\toverflow:hidden;\r\n\t\ttext-overflow:ellipsis;\r\n\r\n\t\t&:last-of-type{\r\n\t\t\tborder-right: none;\r\n\t\t}\r\n\r\n\t\t&.tabulator-editing{\r\n\t\t\tborder:1px solid $editBoxColor;\r\n\t\t\tpadding: 0;\r\n\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-validation-fail{\r\n\t\t\tborder:1px solid $errorColor;\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\r\n\t\t\t\tcolor: $errorColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//hide left resize handle on first column\r\n\t\t&:first-child{\r\n\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//movable row handle\r\n\t\t&.tabulator-row-handle{\r\n\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\t//handle holder\r\n\t\t\t.tabulator-row-handle-box{\r\n\t\t\t\twidth:80%;\r\n\r\n\t\t\t\t//Hamburger element\r\n\t\t\t\t.tabulator-row-handle-bar{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\theight:3px;\r\n\t\t\t\t\tmargin-top:2px;\r\n\t\t\t\t\tbackground:#666;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-branch{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:9px;\r\n\t\t\twidth:7px;\r\n\r\n\t\t\tmargin-top:-9px;\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control{\r\n\r\n\t\t\tdisplay:inline-flex;\r\n\t\t\tjustify-content:center;\r\n\t\t\talign-items:center;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:11px;\r\n\t\t\twidth:11px;\r\n\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder:1px solid $rowTextColor;\r\n\t\t\tborder-radius:2px;\r\n\t\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\t\toverflow:hidden;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\tcursor:pointer;\r\n\t\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: transparent;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-expand{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-responsive-collapse-toggle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\theight:15px;\r\n\t\t\twidth:15px;\r\n\r\n\t\t\tborder-radius:20px;\r\n\t\t\tbackground:#666;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:1.1em;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\topacity:.7;\r\n\t\t\t}\r\n\r\n\t\t\t&.open{\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\t\tdisplay:initial;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-open{\r\n\t\t\t\t\tdisplay:none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\tdisplay:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-traffic-light{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\theight:14px;\r\n\t\t\twidth:14px;\r\n\r\n\t\t\tborder-radius:14px;\r\n\t\t}\r\n\t}\r\n\r\n\t//row grouping element\r\n\t&.tabulator-group{\r\n\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:1px solid #999;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #999;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:#fafafa;\r\n\t\tfont-weight:bold;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\tpadding-left:30px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\tpadding-left:50px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\tpadding-left:70px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\tpadding-left:90px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\tpadding-left:110px;\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:#666;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.tabulator-menu{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\tbox-shadow: 0 0 5px 0 rgba(0, 0, 0, .2);\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-menu-item{\r\n\r\n\t\tpadding:5px 10px;\r\n\r\n\t\tuser-select: none;\r\n\r\n\t\t&.tabulator-menu-item-disabled{\r\n\t\t\topacity: .5;\r\n\t\t}\r\n\r\n\t\t&:not(.tabulator-menu-item-disabled):hover{\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground: $rowAltBackgroundColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-menu-separator{\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t}\r\n}\r\n\r\n.tabulator-edit-select-list{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tmax-height:200px;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-edit-select-list-item{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\r\n\t\t&.active{\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\r\n\t\t\t&.focused{\r\n\t\t\t\toutline:1px solid rgba($rowBackgroundColor, .5);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.focused{\r\n\t\t\toutline:1px solid $editBoxColor;\r\n\t\t}\r\n\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-notice{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\ttext-align: center;\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-group{\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpadding:4px;\r\n\t\tpadding-top:6px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\tfont-weight:bold;\r\n\t}\r\n}\r\n\r\n// Table print styling\r\n\r\n.tabulator-print-fullscreen{\r\n\tposition: absolute;\r\n\ttop:0;\r\n\tbottom:0;\r\n\tleft:0;\r\n\tright:0;\r\n\r\n\tz-index: 10000;\r\n}\r\n\r\nbody.tabulator-print-fullscreen-hide>*:not(.tabulator-print-fullscreen){\r\n\tdisplay:none !important;\r\n}\r\n\r\n.tabulator-print-table{\r\n\tborder-collapse: collapse;\r\n\r\n\t//row grouping element\r\n\t.tabulator-print-table-group{\r\n\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-bottom:1px solid #999;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #999;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:#fafafa;\r\n\t\tfont-weight:bold;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:rgba(0,0,0,.1);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:30px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:50px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:70px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:90px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:110px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:#666;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-data-tree-branch{\r\n\t\tdisplay:inline-block;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:9px;\r\n\t\twidth:7px;\r\n\r\n\t\tmargin-top:-9px;\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\tborder-left:2px solid $rowBorderColor;\r\n\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t}\r\n\r\n\t.tabulator-data-tree-control{\r\n\r\n\t\tdisplay:inline-flex;\r\n\t\tjustify-content:center;\r\n\t\talign-items:center;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:11px;\r\n\t\twidth:11px;\r\n\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder:1px solid $rowTextColor;\r\n\t\tborder-radius:2px;\r\n\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\toverflow:hidden;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: transparent;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-expand{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n"]}
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator {
- position: relative;
- border-bottom: 5px solid #293146;
- background-color: #fff;
- font-size: 14px;
- text-align: left;
- overflow: hidden;
- -ms-transform: translatez(0);
- transform: translatez(0);
-}
-
-.tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table {
- min-width: 100%;
-}
-
-.tabulator[tabulator-layout="fitDataTable"] {
- display: inline-block;
-}
-
-.tabulator[tabulator-layout="fitColumns"] .tabulator-row .tabulator-cell:last-of-type {
- border-right: none;
-}
-
-.tabulator.tabulator-block-select {
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator .tabulator-header {
- position: relative;
- box-sizing: border-box;
- width: 100%;
- /* border-bottom: 3px solid #003268; */
- background-color: #293146;
- color: #fff;
- font-weight: bold;
- white-space: nowrap;
- overflow: hidden;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-header.tabulator-header-hidden {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- border-right: 1px solid #aaa;
- background-color: #293146;
- text-align: left;
- vertical-align: bottom;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-moving {
- position: absolute;
- /* border: 1px solid #3FB449; */
- background: #090909;
- pointer-events: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
- box-sizing: border-box;
- position: relative;
- padding: 8px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button {
- padding: 0 8px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover {
- cursor: pointer;
- opacity: .6;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
- box-sizing: border-box;
- width: 100%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- vertical-align: bottom;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
- box-sizing: border-box;
- width: 100%;
- border: 1px solid #999;
- padding: 1px;
- background: #fff;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow {
- display: inline-block;
- position: absolute;
- top: 14px;
- right: 8px;
- width: 0;
- height: 0;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
- position: relative;
- display: -ms-flexbox;
- display: flex;
- border-top: 1px solid #aaa;
- overflow: hidden;
- margin-right: -1px;
-}
-
-.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
- position: relative;
- box-sizing: border-box;
- margin-top: 2px;
- width: 100%;
- text-align: center;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
- height: auto !important;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
- margin-top: 3px;
-}
-
-.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear {
- width: 0;
- height: 0;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
- padding-right: 25px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
- cursor: pointer;
- background-color: #090909;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- border-bottom: 6px solid #bbb;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow {
- border-top: none;
- /* border-bottom: 6px solid #3FB449; */
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow {
- border-top: 6px solid #3FB449;
- border-bottom: none;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title {
- -ms-writing-mode: tb-rl;
- writing-mode: vertical-rl;
- text-orientation: mixed;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title {
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title {
- padding-right: 0;
- padding-top: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title {
- padding-right: 0;
- padding-bottom: 20px;
-}
-
-.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow {
- right: calc(50% - 6px);
-}
-
-.tabulator .tabulator-header .tabulator-frozen {
- display: inline-block;
- position: absolute;
- z-index: 10;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #aaa;
-}
-
-.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #aaa;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder {
- box-sizing: border-box;
- min-width: 600%;
- background: #3c3c3c !important;
- border-top: 1px solid #aaa;
- overflow: hidden;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
- background: #3c3c3c !important;
-}
-
-.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder {
- min-width: 600%;
-}
-
-.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty {
- display: none;
-}
-
-.tabulator .tabulator-tableHolder {
- position: relative;
- width: 100%;
- white-space: nowrap;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.tabulator .tabulator-tableHolder:focus {
- outline: none;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder {
- box-sizing: border-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode="virtual"] {
- min-height: 100%;
- min-width: 100%;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-placeholder span {
- display: inline-block;
- margin: 0 auto;
- padding: 10px;
- color: #3FB449;
- font-weight: bold;
- font-size: 20px;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table {
- position: relative;
- display: inline-block;
- background-color: #fff;
- white-space: nowrap;
- overflow: visible;
- color: #333;
-}
-
-.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs {
- font-weight: bold;
- background: #484848 !important;
- color: #fff;
-}
-
-.tabulator .tabulator-footer {
- padding: 5px 10px;
- padding-top: 8px;
- /* border-top: 3px solid #3FB449; */
- background-color: #293146;
- text-align: right;
- color: #293146;
- font-weight: bold;
- white-space: nowrap;
- -ms-user-select: none;
- user-select: none;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder {
- box-sizing: border-box;
- width: calc(100% + 20px);
- margin: -8px -10px 8px -10px;
- text-align: left;
- background: #3c3c3c !important;
- border-bottom: 1px solid #aaa;
- overflow: hidden;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
- background: #3c3c3c !important;
- color: #fff !important;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
- display: none;
-}
-
-.tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
- margin-bottom: -5px;
- border-bottom: none;
-}
-
-.tabulator .tabulator-footer .tabulator-paginator label {
- color: #fff;
-}
-
-.tabulator .tabulator-footer .tabulator-page-size {
- display: inline-block;
- margin: 0 5px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
-}
-
-.tabulator .tabulator-footer .tabulator-pages {
- margin: 0 7px;
-}
-
-.tabulator .tabulator-footer .tabulator-page {
- display: inline-block;
- margin: 0 2px;
- padding: 2px 5px;
- border: 1px solid #aaa;
- border-radius: 3px;
- background: #fff;
- color: #293146;
- font-family: inherit;
- font-weight: inherit;
- font-size: inherit;
-}
-
-.tabulator .tabulator-footer .tabulator-page.active {
- /* color: #3FB449; */
-}
-
-.tabulator .tabulator-footer .tabulator-page:disabled {
- opacity: .5;
-}
-
-.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
- color: #fff;
-}
-
-.tabulator .tabulator-col-resize-handle {
- position: absolute;
- right: 0;
- top: 0;
- bottom: 0;
- width: 5px;
-}
-
-.tabulator .tabulator-col-resize-handle.prev {
- left: 0;
- right: auto;
-}
-
-.tabulator .tabulator-col-resize-handle:hover {
- cursor: ew-resize;
-}
-
-.tabulator .tabulator-loader {
- position: absolute;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-align: center;
- align-items: center;
- top: 0;
- left: 0;
- z-index: 100;
- height: 100%;
- width: 100%;
- background: rgba(0, 0, 0, 0.4);
- text-align: center;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg {
- display: inline-block;
- margin: 0 auto;
- padding: 10px 20px;
- border-radius: 10px;
- background: #fff;
- font-weight: bold;
- font-size: 16px;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading {
- border: 4px solid #333;
- color: #000;
-}
-
-.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error {
- border: 4px solid #D00;
- color: #590000;
-}
-
-.tabulator-row {
- position: relative;
- box-sizing: border-box;
- min-height: 22px;
- background-color: #fff;
-}
-
-.tabulator-row.tabulator-row-even {
- background-color: #EFEFEF;
-}
-
-.tabulator-row.tabulator-selectable:hover {
- background-color: #bbb;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-selected {
- background-color: #9ABCEA;
-}
-
-.tabulator-row.tabulator-selected:hover {
- background-color: #769BCC;
- cursor: pointer;
-}
-
-.tabulator-row.tabulator-row-moving {
- border: 1px solid #000;
- background: #fff;
-}
-
-.tabulator-row.tabulator-moving {
- position: absolute;
- border-top: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
- pointer-events: none !important;
- z-index: 15;
-}
-
-.tabulator-row .tabulator-row-resize-handle {
- position: absolute;
- right: 0;
- bottom: 0;
- left: 0;
- height: 5px;
-}
-
-.tabulator-row .tabulator-row-resize-handle.prev {
- top: 0;
- bottom: auto;
-}
-
-.tabulator-row .tabulator-row-resize-handle:hover {
- cursor: ns-resize;
-}
-
-.tabulator-row .tabulator-frozen {
- display: inline-block;
- position: absolute;
- background-color: inherit;
- z-index: 10;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-left {
- border-right: 2px solid #aaa;
-}
-
-.tabulator-row .tabulator-frozen.tabulator-frozen-right {
- border-left: 2px solid #aaa;
-}
-
-.tabulator-row .tabulator-responsive-collapse {
- box-sizing: border-box;
- padding: 5px;
- border-top: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
-}
-
-.tabulator-row .tabulator-responsive-collapse:empty {
- display: none;
-}
-
-.tabulator-row .tabulator-responsive-collapse table {
- font-size: 14px;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td {
- position: relative;
-}
-
-.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
- padding-right: 10px;
-}
-
-.tabulator-row .tabulator-cell {
- display: inline-block;
- position: relative;
- box-sizing: border-box;
- padding: 6px;
- border-right: 1px solid #aaa;
- vertical-align: middle;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing {
- border: 1px solid #1D68CD;
- padding: 0;
-}
-
-.tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select {
- border: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail {
- border: 1px solid #dd0000;
-}
-
-.tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select {
- border: 1px;
- background: transparent;
- color: #dd0000;
-}
-
-.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev {
- display: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
- width: 80%;
-}
-
-.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
- width: 100%;
- height: 3px;
- margin-top: 2px;
- background: #3FB449;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #aaa;
- border-bottom: 2px solid #aaa;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-pack: center;
- justify-content: center;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
- height: 15px;
- width: 15px;
- border-radius: 20px;
- background: #666;
- color: #fff;
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover {
- opacity: .7;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close {
- display: initial;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close {
- display: none;
-}
-
-.tabulator-row .tabulator-cell .tabulator-traffic-light {
- display: inline-block;
- height: 14px;
- width: 14px;
- border-radius: 14px;
-}
-
-.tabulator-row.tabulator-group {
- box-sizing: border-box;
- border-right: 1px solid #aaa;
- border-top: 1px solid #000;
- /* border-bottom: 2px solid #3FB449; */
- padding: 5px;
- padding-left: 10px;
- background: #293146;
- color: #fff;
- font-weight: bold;
- min-width: 100%;
-}
-
-.tabulator-row.tabulator-group:hover {
- cursor: pointer;
- background-color: #090909;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #bbb;
- border-bottom: 0;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-1 {
- padding-left: 30px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-2 {
- padding-left: 50px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-3 {
- padding-left: 70px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-4 {
- padding-left: 90px;
-}
-
-.tabulator-row.tabulator-group.tabulator-group-level-5 {
- padding-left: 110px;
-}
-
-.tabulator-row.tabulator-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-row.tabulator-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #bbb;
- vertical-align: middle;
-}
-
-.tabulator-row.tabulator-group span {
- margin-left: 10px;
- color: #bbb;
-}
-
-.tabulator-menu {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- background: #fff;
- border: 1px solid #aaa;
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-menu .tabulator-menu-item {
- padding: 5px 10px;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled {
- opacity: .5;
-}
-
-.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover {
- cursor: pointer;
- background: #EFEFEF;
-}
-
-.tabulator-menu .tabulator-menu-separator {
- border-top: 1px solid #aaa;
-}
-
-.tabulator-edit-select-list {
- position: absolute;
- display: inline-block;
- box-sizing: border-box;
- max-height: 200px;
- background: #fff;
- border: 1px solid #aaa;
- font-size: 14px;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- z-index: 10000;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item {
- padding: 4px;
- color: #333;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active {
- color: #fff;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused {
- outline: 1px solid rgba(255, 255, 255, 0.5);
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item.focused {
- outline: 1px solid #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-item:hover {
- cursor: pointer;
- color: #fff;
- background: #1D68CD;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-notice {
- padding: 4px;
- color: #333;
- text-align: center;
-}
-
-.tabulator-edit-select-list .tabulator-edit-select-list-group {
- border-bottom: 1px solid #aaa;
- padding: 4px;
- padding-top: 6px;
- color: #333;
- font-weight: bold;
-}
-
-.tabulator-print-fullscreen {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 10000;
-}
-
-body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
- display: none !important;
-}
-
-.tabulator-print-table {
- border-collapse: collapse;
-}
-
-.tabulator-print-table .tabulator-print-table-group {
- box-sizing: border-box;
- border-right: 1px solid #aaa;
- border-top: 1px solid #000;
- border-bottom: 2px solid #3FB449;
- padding: 5px;
- padding-left: 10px;
- background: #293146;
- color: #fff;
- font-weight: bold;
- min-width: 100%;
-}
-
-.tabulator-print-table .tabulator-print-table-group:hover {
- cursor: pointer;
- background-color: #090909;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow {
- margin-right: 10px;
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-top: 6px solid #3FB449;
- border-bottom: 0;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td {
- padding-left: 30px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td {
- padding-left: 50px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td {
- padding-left: 70px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td {
- padding-left: 90px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td {
- padding-left: 110px !important;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle {
- display: inline-block;
-}
-
-.tabulator-print-table .tabulator-print-table-group .tabulator-arrow {
- display: inline-block;
- width: 0;
- height: 0;
- margin-right: 16px;
- border-top: 6px solid transparent;
- border-bottom: 6px solid transparent;
- border-right: 0;
- border-left: 6px solid #3FB449;
- vertical-align: middle;
-}
-
-.tabulator-print-table .tabulator-print-table-group span {
- margin-left: 10px;
- color: #3FB449;
-}
-
-.tabulator-print-table .tabulator-data-tree-branch {
- display: inline-block;
- vertical-align: middle;
- height: 9px;
- width: 7px;
- margin-top: -9px;
- margin-right: 5px;
- border-bottom-left-radius: 1px;
- border-left: 2px solid #aaa;
- border-bottom: 2px solid #aaa;
-}
-
-.tabulator-print-table .tabulator-data-tree-control {
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-pack: center;
- justify-content: center;
- -ms-flex-align: center;
- align-items: center;
- vertical-align: middle;
- height: 11px;
- width: 11px;
- margin-right: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- background: rgba(0, 0, 0, 0.1);
- overflow: hidden;
-}
-
-.tabulator-print-table .tabulator-data-tree-control:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.2);
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: transparent;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand {
- display: inline-block;
- position: relative;
- height: 7px;
- width: 1px;
- background: #333;
-}
-
-.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
- position: absolute;
- content: "";
- left: -3px;
- top: 3px;
- height: 1px;
- width: 7px;
- background: #333;
-}
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-.tabulator{position:relative;border-bottom:5px solid #222;background-color:#fff;font-size:14px;text-align:left;overflow:hidden;transform:translatez(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableHolder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator[tabulator-layout=fitColumns] .tabulator-row .tabulator-cell:last-of-type{border-right:none}.tabulator.tabulator-block-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator .tabulator-header{position:relative;box-sizing:border-box;width:100%;border-bottom:3px solid #3fb449;background-color:#222;color:#fff;font-weight:700;white-space:nowrap;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-col{display:inline-block;position:relative;box-sizing:border-box;border-right:1px solid #aaa;background-color:#222;text-align:left;vertical-align:bottom;overflow:hidden}.tabulator .tabulator-header .tabulator-col.tabulator-moving{position:absolute;border:1px solid #3fb449;background:#090909;pointer-events:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;position:relative;padding:8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{box-sizing:border-box;width:100%;border:1px solid #999;padding:1px;background:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{display:inline-block;position:absolute;top:14px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{position:relative;display:-ms-flexbox;display:flex;border-top:1px solid #aaa;overflow:hidden;margin-right:-1px}.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{position:relative;box-sizing:border-box;margin-top:2px;width:100%;text-align:center}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{width:0;height:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{cursor:pointer;background-color:#090909}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #bbb}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-col-content .tabulator-arrow{border-top:none;border-bottom:6px solid #3fb449}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-col-content .tabulator-arrow{border-top:6px solid #3fb449;border-bottom:none}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:mixed;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-right:0;padding-bottom:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow{right:calc(50% - 6px)}.tabulator .tabulator-header .tabulator-frozen{display:inline-block;position:absolute;z-index:10}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{box-sizing:border-box;min-width:600%;background:#3c3c3c!important;border-top:1px solid #aaa;overflow:hidden}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#3c3c3c!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{min-width:600%}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableHolder{position:relative;width:100%;white-space:nowrap;overflow:auto;-webkit-overflow-scrolling:touch}.tabulator .tabulator-tableHolder:focus{outline:none}.tabulator .tabulator-tableHolder .tabulator-placeholder{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%;min-width:100%}.tabulator .tabulator-tableHolder .tabulator-placeholder span{display:inline-block;margin:0 auto;padding:10px;color:#3fb449;font-weight:700;font-size:20px}.tabulator .tabulator-tableHolder .tabulator-table{position:relative;display:inline-block;background-color:#fff;white-space:nowrap;overflow:visible;color:#333}.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs{font-weight:700;background:#484848!important;color:#fff}.tabulator .tabulator-footer{padding:5px 10px;padding-top:8px;border-top:3px solid #3fb449;background-color:#222;text-align:right;color:#222;font-weight:700;white-space:nowrap;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator .tabulator-footer .tabulator-calcs-holder{box-sizing:border-box;width:calc(100% + 20px);margin:-8px -10px 8px;text-align:left;background:#3c3c3c!important;border-bottom:1px solid #aaa;overflow:hidden}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#3c3c3c!important;color:#fff!important}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px;border-bottom:none}.tabulator .tabulator-footer .tabulator-paginator label{color:#fff}.tabulator .tabulator-footer .tabulator-page-size{display:inline-block;margin:0 5px;padding:2px 5px;border:1px solid #aaa;border-radius:3px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{display:inline-block;margin:0 2px;padding:2px 5px;border:1px solid #aaa;border-radius:3px;background:#fff;color:#222;font-family:inherit;font-weight:inherit;font-size:inherit}.tabulator .tabulator-footer .tabulator-page.active{color:#3fb449}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{cursor:pointer;background:rgba(0,0,0,.2);color:#fff}.tabulator .tabulator-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px}.tabulator .tabulator-col-resize-handle.prev{left:0;right:auto}.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}.tabulator .tabulator-loader{position:absolute;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;top:0;left:0;z-index:100;height:100%;width:100%;background:rgba(0,0,0,.4);text-align:center}.tabulator .tabulator-loader .tabulator-loader-msg{display:inline-block;margin:0 auto;padding:10px 20px;border-radius:10px;background:#fff;font-weight:700;font-size:16px}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading{border:4px solid #333;color:#000}.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error{border:4px solid #d00;color:#590000}.tabulator-row{position:relative;box-sizing:border-box;min-height:22px;background-color:#fff}.tabulator-row.tabulator-row-even{background-color:#efefef}.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}.tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}.tabulator-row.tabulator-row-moving{border:1px solid #000;background:#fff}.tabulator-row.tabulator-moving{position:absolute;border-top:1px solid #aaa;border-bottom:1px solid #aaa;pointer-events:none!important;z-index:15}.tabulator-row .tabulator-row-resize-handle{position:absolute;right:0;bottom:0;left:0;height:5px}.tabulator-row .tabulator-row-resize-handle.prev{top:0;bottom:auto}.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}.tabulator-row .tabulator-frozen{display:inline-block;position:absolute;background-color:inherit;z-index:10}.tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-responsive-collapse{box-sizing:border-box;padding:5px;border-top:1px solid #aaa;border-bottom:1px solid #aaa}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{display:inline-block;position:relative;box-sizing:border-box;padding:6px;border-right:1px solid #aaa;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{border:1px;background:transparent}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{border:1px;background:transparent;color:#d00}.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev{display:none}.tabulator-row .tabulator-cell.tabulator-row-handle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{width:100%;height:3px;margin-top:2px;background:#3fb449}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #aaa;border-bottom:2px solid #aaa}.tabulator-row .tabulator-cell .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;height:15px;width:15px;border-radius:20px;background:#666;color:#fff;font-weight:700;font-size:1.1em}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{opacity:.7}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open,.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{display:inline-block;height:14px;width:14px;border-radius:14px}.tabulator-row.tabulator-group{box-sizing:border-box;border-right:1px solid #aaa;border-top:1px solid #000;border-bottom:2px solid #3fb449;padding:5px;padding-left:10px;background:#222;color:#fff;font-weight:700;min-width:100%}.tabulator-row.tabulator-group:hover{cursor:pointer;background-color:#090909}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #3fb449;border-bottom:0}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #3fb449;vertical-align:middle}.tabulator-row.tabulator-group span{margin-left:10px;color:#3fb449}.tabulator-menu{position:absolute;display:inline-block;box-sizing:border-box;background:#fff;border:1px solid #aaa;box-shadow:0 0 5px 0 rgba(0,0,0,.2);font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-menu .tabulator-menu-item{padding:5px 10px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{cursor:pointer;background:#efefef}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #aaa}.tabulator-edit-select-list{position:absolute;display:inline-block;box-sizing:border-box;max-height:200px;background:#fff;border:1px solid #aaa;font-size:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000}.tabulator-edit-select-list .tabulator-edit-select-list-item{padding:4px;color:#333}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-select-list .tabulator-edit-select-list-item.focused{outline:1px solid #1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{cursor:pointer;color:#fff;background:#1d68cd}.tabulator-edit-select-list .tabulator-edit-select-list-notice{padding:4px;color:#333;text-align:center}.tabulator-edit-select-list .tabulator-edit-select-list-group{border-bottom:1px solid #aaa;padding:4px;padding-top:6px;color:#333;font-weight:700}.tabulator-print-fullscreen{position:absolute;top:0;bottom:0;left:0;right:0;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-print-table-group{box-sizing:border-box;border-right:1px solid #aaa;border-top:1px solid #000;border-bottom:2px solid #3fb449;padding:5px;padding-left:10px;background:#222;color:#fff;font-weight:700;min-width:100%}.tabulator-print-table .tabulator-print-table-group:hover{cursor:pointer;background-color:#090909}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{margin-right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #3fb449;border-bottom:0}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{display:inline-block;width:0;height:0;margin-right:16px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:0;border-left:6px solid #3fb449;vertical-align:middle}.tabulator-print-table .tabulator-print-table-group span{margin-left:10px;color:#3fb449}.tabulator-print-table .tabulator-data-tree-branch{display:inline-block;vertical-align:middle;height:9px;width:7px;margin-top:-9px;margin-right:5px;border-bottom-left-radius:1px;border-left:2px solid #aaa;border-bottom:2px solid #aaa}.tabulator-print-table .tabulator-data-tree-control{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;vertical-align:middle;height:11px;width:11px;margin-right:5px;border:1px solid #333;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}.tabulator-print-table .tabulator-data-tree-control:hover{cursor:pointer;background:rgba(0,0,0,.2)}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{display:inline-block;position:relative;height:7px;width:1px;background:transparent}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{display:inline-block;position:relative;height:7px;width:1px;background:#333}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{position:absolute;content:"";left:-3px;top:3px;height:1px;width:7px;background:#333}
-/*# sourceMappingURL=tabulator_site.min.css.map */
+++ /dev/null
-{"version":3,"sources":["tabulator_site.scss"],"names":[],"mappings":"AAyCA,WACC,kBAAkB,AAElB,6BAvCgB,AAyChB,sBA1CqB,AA4CrB,eA1Ca,AA2Cb,gBAAgB,AAChB,gBAAe,AAMf,uBAAwB,CAigBxB,AAhhBD,iFAoBI,cAAc,CACd,AArBJ,0CA0BE,oBAAqB,CACrB,AA3BF,oFAiCK,iBAAkB,CAClB,AAlCL,kCAyCE,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CACjB,AA1CF,6BA8CE,kBAAiB,AACjB,sBAAsB,AAEtB,WAAU,AAEV,gCAhF2B,AAiF3B,sBApFyB,AAqFzB,WApFmB,AAqFnB,gBAAgB,AAEhB,mBAAmB,AACnB,gBAAe,AAEf,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAmPpB,AAjTF,qDAiEG,YAAY,CACZ,AAlEH,4CAsEG,qBAAoB,AAEpB,kBAAiB,AACjB,sBAAqB,AACrB,4BAxGoB,AAyGpB,sBA3GwB,AA4GxB,gBAAe,AACf,sBAAsB,AACtB,eAAgB,CAqLhB,AAnQH,6DAiFI,kBAAkB,AAClB,yBA/GyB,AAgHzB,mBAA8C,AAC9C,mBAAoB,CACpB,AArFJ,mEAyFI,sBAAqB,AACrB,kBAAkB,AAClB,WAAW,CAgDX,AA3IJ,iGA+FK,aAAc,CAMd,AArGL,uGAkGM,eAAe,AACf,UAAW,CACX,AApGN,wFAyGK,sBAAqB,AACrB,WAAW,AAEX,mBAAmB,AACnB,gBAAgB,AAChB,uBAAuB,AACvB,qBAAqB,CAarB,AA5HL,gHAmHM,sBAAsB,AACtB,WAAW,AAEX,sBAAqB,AAErB,YAAW,AAEX,eAAgB,CAChB,AA3HN,oFAgIK,qBAAqB,AACrB,kBAAkB,AAClB,SAAQ,AACR,UAAS,AACT,QAAQ,AACR,SAAS,AACT,kCAAkC,AAClC,mCAAmC,AACnC,4BAhKmB,CAiKnB,AAzIL,0FAkJK,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AAEb,0BAnLkB,AAoLlB,gBAAgB,AAEhB,iBAAiB,CACjB,AAzJL,0FA+JK,YAAa,CACb,AAhKL,qEAqKI,kBAAkB,AAClB,sBAAsB,AACtB,eAAc,AACd,WAAU,AACV,iBAAkB,CAiBlB,AA1LJ,8EA6KK,qBAAsB,CACtB,AA9KL,yEAiLK,cAAe,CACf,AAlLL,sFAsLO,QAAS,AACT,QAAS,CACV,AAxLN,oFA+LK,kBAAkB,CAClB,AAhML,qEAmMK,eAAc,AACd,wBAAoD,CACpD,AArML,uHAyMM,gBAAgB,AAChB,4BAlOkB,CAmOlB,AA3MN,sHAgNM,gBAAgB,AAChB,+BA1OmB,CA2OnB,AAlNN,uHAuNM,6BAhPmB,AAiPnB,kBAAmB,CACnB,AAzNN,+GAgOM,uBAAyB,AAAzB,yBAAyB,AACzB,uBAAuB,AAEvB,oBAAY,AAAZ,aAAY,AACZ,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,sBAAsB,CACtB,AAtON,oHA2OM,wBAAyB,CACzB,AA5ON,2GAiPM,gBAAe,AACf,gBAAgB,CAChB,AAnPN,uIAuPO,gBAAe,AACf,mBAAmB,CACnB,AAzPP,uGA8PM,qBAAqB,CACrB,AA/PN,+CAsQG,qBAAqB,AACrB,kBAAkB,AAIlB,UAAW,CASX,AApRH,qEA8QI,2BAjSgB,CAkShB,AA/QJ,sEAkRI,0BArSgB,CAsShB,AAnRJ,qDAuRG,sBAAqB,AACrB,eAAc,AAEd,6BAA0D,AAU1D,0BAvTiB,AA0TjB,eAAgB,CAChB,AAxSH,oEA6RI,4BAA0D,CAK1D,AAlSJ,iGAgSK,YAAa,CACb,AAjSL,2DA2SG,cAAc,CAKd,AAhTH,iEA8SI,YAAa,CACb,AA/SJ,kCAqTE,kBAAiB,AACjB,WAAU,AACV,mBAAmB,AACnB,cAAa,AACb,gCAAiC,CAgDjC,AAzWF,wCA4TG,YAAa,CACb,AA7TH,yDAiUG,sBAAqB,AACrB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAOlB,UAAU,CAYV,AAtVH,wFAsUI,gBAAe,AACf,cAAc,CACd,AAxUJ,8DA6UI,qBAAqB,AAErB,cAAa,AACb,aAAY,AAEZ,cA/WyB,AAgXzB,gBAAiB,AACjB,cAAe,CACf,AArVJ,mDA0VG,kBAAiB,AACjB,qBAAoB,AACpB,sBAjXqB,AAkXrB,mBAAmB,AACnB,iBAAgB,AAChB,UAjXe,CA0Xf,AAxWH,kFAmWK,gBAAiB,AACjB,6BAA0D,AAC1D,UApYgB,CAqYhB,AAtWL,6BA8WE,iBAAgB,AAChB,gBAAe,AACf,6BArX2B,AAsX3B,sBAzXyB,AA0XzB,iBAAgB,AAChB,WA1XmB,AA2XnB,gBAAgB,AAChB,mBAAkB,AAClB,qBAAgB,AAAhB,iBAAgB,AAEhB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAuFpB,AAldF,qDA8XG,sBAAqB,AACrB,wBAAuB,AACvB,sBAA2B,AAE3B,gBAAgB,AAEhB,6BAA0D,AAY1D,6BAnaiB,AAqajB,eAAgB,CAMhB,AAxZH,oEAuYI,6BAA0D,AAC1D,oBAAiC,CAKjC,AA7YJ,iGA2YK,YAAa,CACb,AA5YL,gEAqZI,mBAAkB,AAClB,kBAAkB,CAClB,AAvZJ,wDA6ZI,UAAU,CACV,AA9ZJ,kDAmaG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA9aoB,AA+apB,iBAAiB,CACjB,AA1aH,8CA8aG,YAAY,CACZ,AA/aH,6CAmbG,qBAAoB,AAEpB,aAAY,AACZ,gBAAe,AAEf,sBA9boB,AA+bpB,kBAAiB,AAEjB,gBAAe,AAEf,WApckB,AAqclB,oBAAmB,AACnB,oBAAmB,AACnB,iBAAiB,CAiBjB,AAjdH,oDAmcI,aAxcyB,CAyczB,AApcJ,sDAucI,UAAU,CACV,AAxcJ,kEA4cK,eAAc,AACd,0BAAyB,AACzB,UAAU,CACV,AA/cL,wCAsdE,kBAAiB,AACjB,QAAO,AACP,MAAK,AACL,SAAQ,AACR,SAAS,CAUT,AApeF,6CA6dG,OAAM,AACN,UAAU,CACV,AA/dH,8CAkeG,gBAAgB,CAChB,AAneH,6BAyeE,kBAAiB,AACjB,oBAAa,AAAb,aAAa,AACb,sBAAkB,AAAlB,mBAAkB,AAElB,MAAK,AACL,OAAM,AACN,YAAW,AAEX,YAAW,AACX,WAAU,AACV,0BAAyB,AACzB,iBAAiB,CA2BjB,AA/gBF,mDAwfG,qBAAoB,AAEpB,cAAa,AACb,kBAAiB,AAEjB,mBAAkB,AAElB,gBAAe,AACf,gBAAgB,AAChB,cAAc,CAad,AA9gBH,qEAqgBI,sBAAqB,AACrB,UAAU,CACV,AAvgBJ,mEA2gBI,sBAAqB,AACrB,aAAa,CACb,AAMJ,eACC,kBAAkB,AAClB,sBAAsB,AACtB,gBAA0C,AAC1C,qBA5iBuB,CA45BvB,AApXD,kCAQE,wBA/iB4B,CAgjB5B,AATF,0CAYE,sBAhjBsB,AAijBtB,cAAe,CACf,AAdF,kCAiBE,wBAnjB6B,CAojB7B,AAlBF,wCAqBE,yBAtjBkC,AAujBlC,cAAe,CACf,AAvBF,oCA0BE,sBAAqB,AACrB,eAAe,CACf,AA5BF,gCA+BE,kBAAkB,AAElB,0BAvkBkB,AAwkBlB,6BAxkBkB,AA0kBlB,8BAA+B,AAC/B,UAAU,CACV,AAtCF,4CA0CE,kBAAiB,AACjB,QAAO,AACP,SAAQ,AACR,OAAM,AACN,UAAU,CAUV,AAxDF,iDAiDG,MAAK,AACL,WAAW,CACX,AAnDH,kDAsDG,gBAAgB,CAChB,AAvDH,iCA2DE,qBAAqB,AACrB,kBAAkB,AAElB,yBAAyB,AAEzB,UAAW,CASX,AAzEF,uDAmEG,2BAzmBiB,CA0mBjB,AApEH,wDAuEG,0BA7mBiB,CA8mBjB,AAxEH,8CA4EE,sBAAqB,AAErB,YAAW,AAEX,0BAtnBkB,AAunBlB,4BAvnBkB,CA0oBlB,AApGF,oDAoFG,YAAY,CACZ,AArFH,oDAwFG,cA9oBW,CAypBX,AAnGH,0DA4FK,iBAAkB,CAKlB,AAjGL,wEA+FM,kBAAkB,CAClB,AAhGN,+BAwGE,qBAAoB,AACpB,kBAAkB,AAClB,sBAAqB,AACrB,YAAW,AACX,4BAlpBkB,AAmpBlB,sBAAqB,AACrB,mBAAkB,AAClB,gBAAe,AACf,sBAAsB,CA0LtB,AA1SF,iDAoHG,yBAnpBkB,AAopBlB,SAAU,CAMV,AA3HH,+GAwHI,WAAU,AACV,sBAAsB,CACtB,AA1HJ,yDA8HG,qBA5pBgB,CAmqBhB,AArIH,+HAgII,WAAU,AACV,uBAAsB,AAEtB,UAjqBe,CAkqBf,AApIJ,6EA0II,YAAa,CACb,AA3IJ,oDAiJG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAElB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,mBAAoB,CAcpB,AArKH,8EA2JI,SAAS,CAST,AApKJ,wGA+JK,WAAU,AACV,WAAU,AACV,eAAc,AACd,kBA9sBoB,CA+sBpB,AAnKL,2DAwKG,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BAztBiB,AA0tBjB,4BA1tBiB,CA2tBjB,AArLH,4DAyLG,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBAxuBe,AAyuBf,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAmDf,AA1PH,kEA0MI,eAAc,AACd,yBAA4B,CAC5B,AA5MJ,kGA+MI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AAlOJ,wGAwNK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eArwBa,CAswBb,AAjOL,gGAqOI,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eAhxBc,CA6xBd,AAxPJ,sGA8OK,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA3xBa,CA4xBb,AAvPL,qEA6PG,2BAAoB,AAApB,oBAAoB,AACpB,sBAAkB,AAAlB,mBAAkB,AAClB,qBAAsB,AAAtB,uBAAsB,AAEtB,sBAAsB,AACtB,wBAAwB,AACxB,yBAAyB,AACzB,oBAAoB,AAEpB,YAAW,AACX,WAAU,AAEV,mBAAkB,AAClB,gBAAe,AAEf,WApzBqB,AAqzBrB,gBAAgB,AAChB,eAAe,CAmBf,AAjSH,2EAiRI,UAAU,CACV,AAlRJ,sHAsRK,eAAe,CACf,AAvRL,sOA+RI,YAAY,CACZ,AAhSJ,wDAoSG,qBAAqB,AACrB,YAAW,AACX,WAAU,AAEV,kBAAkB,CAClB,AAzSH,+BA8SE,sBAAqB,AACrB,4BAr1BkB,AAs1BlB,0BAAyB,AACzB,gCAj2B2B,AAk2B3B,YAAW,AACX,kBAAiB,AACjB,gBAv2ByB,AAw2BzB,WAv2BmB,AAw2BnB,gBAAgB,AAEhB,cAAe,CA0Df,AAlXF,qCA2TG,eAAc,AACd,wBAAoD,CACpD,AA7TH,wEAiUI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,6BAh3BqB,AAi3BrB,eAAgB,CAChB,AAtUJ,uDA0UG,iBAAiB,CACjB,AA3UH,uDA8UG,iBAAiB,CACjB,AA/UH,uDAkVG,iBAAiB,CACjB,AAnVH,uDAsVG,iBAAiB,CACjB,AAvVH,uDA0VG,kBAAkB,CAClB,AA3VH,uDA8VG,oBAAqB,CACrB,AA/VH,gDAmWG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,8BAt5BsB,AAu5BtB,qBAAqB,CACrB,AA5WH,oCA+WG,iBAAgB,AAChB,aAh6B0B,CAi6B1B,AAKH,gBACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,gBAn6BuB,AAo6BvB,sBAl6BmB,AAm6BnB,oCAAuC,AAEvC,eAr7Ba,AAu7Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CAqBd,AAnCD,qCAkBE,iBAAgB,AAEhB,yBAAiB,AAAjB,qBAAiB,AAAjB,gBAAiB,CAUjB,AA9BF,kEAuBG,UAAW,CACX,AAxBH,8EA2BG,eAAe,AACf,kBAz7B2B,CA07B3B,AA7BH,0CAiCE,yBA77BkB,CA87BlB,AAGF,4BACC,kBAAkB,AAClB,qBAAoB,AACpB,sBAAqB,AAErB,iBAAgB,AAEhB,gBA18BuB,AA28BvB,sBAz8BmB,AA28BnB,eA39Ba,AA69Bb,gBAAe,AACf,iCAAiC,AAEjC,aAAc,CA6Cd,AA5DD,6DAkBE,YAAW,AAEX,UAp9BgB,CA0+BhB,AA1CF,oEAuBG,WA19BqB,AA29BrB,kBAl9BkB,CAu9BlB,AA7BH,4EA2BI,oCA99BoB,CA+9BpB,AA5BJ,qEAgCG,yBA19BkB,CA29BlB,AAjCH,mEAqCG,eAAc,AAEd,WA1+BqB,AA2+BrB,kBAl+BkB,CAm+BlB,AAzCH,+DA6CE,YAAW,AAEX,WA/+BgB,AAg/BhB,iBAAkB,CAClB,AAjDF,8DAoDE,6BAr/BkB,AAu/BlB,YAAW,AACX,gBAAe,AAEf,WAz/BgB,AA0/BhB,eAAgB,CAChB,AAKF,4BACC,kBAAkB,AAClB,MAAK,AACL,SAAQ,AACR,OAAM,AACN,QAAO,AAEP,aAAc,CACd,AAED,uEACC,sBAAuB,CACvB,AAED,uBACC,wBAAyB,CAsKzB,AAvKD,oDAKE,sBAAqB,AACrB,4BArhCkB,AAshClB,0BAAyB,AACzB,gCAjiC2B,AAkiC3B,YAAW,AACX,kBAAiB,AACjB,gBAviCyB,AAwiCzB,WAviCmB,AAwiCnB,gBAAgB,AAEhB,cAAe,CAmEf,AAlFF,0DAkBG,eAAc,AACd,wBAAoD,CACpD,AApBH,6FAwBI,kBAAiB,AACjB,kCAAkC,AAClC,mCAAmC,AACnC,6BAhjCqB,AAijCrB,eAAgB,CAChB,AA7BJ,+EAkCI,2BAA4B,CAC5B,AAnCJ,+EAwCI,2BAA4B,CAC5B,AAzCJ,+EA8CI,2BAA4B,CAC5B,AA/CJ,+EAoDI,2BAA4B,CAC5B,AArDJ,+EA0DI,4BAA6B,CAC7B,AA3DJ,4EA8DG,oBAAqB,CACrB,AA/DH,qEAmEG,qBAAqB,AACrB,QAAQ,AACR,SAAS,AACT,kBAAiB,AACjB,iCAAiC,AACjC,oCAAoC,AACpC,eAAe,AACf,8BA/lCsB,AAgmCtB,qBAAqB,CACrB,AA5EH,yDA+EG,iBAAgB,AAChB,aAzmC0B,CA0mC1B,AAjFH,mDAqFE,qBAAoB,AACpB,sBAAqB,AAErB,WAAU,AACV,UAAS,AAET,gBAAe,AACf,iBAAgB,AAEhB,8BAA6B,AAE7B,2BA/mCkB,AAgnClB,4BAhnCkB,CAinClB,AAlGF,oDAsGE,2BAAmB,AAAnB,oBAAmB,AACnB,qBAAsB,AAAtB,uBAAsB,AACtB,sBAAkB,AAAlB,mBAAkB,AAClB,sBAAqB,AAErB,YAAW,AACX,WAAU,AAEV,iBAAgB,AAEhB,sBA9nCgB,AA+nChB,kBAAiB,AACjB,0BAA4B,AAE5B,eAAe,CAkDf,AAtKF,0DAuHG,eAAc,AACd,yBAA4B,CAC5B,AAzHH,0FA4HG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,sBAAuB,CAavB,AA/IH,gGAqII,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eA3pCc,CA4pCd,AA9IJ,wFAkJG,qBAAoB,AACpB,kBAAkB,AAElB,WAAW,AACX,UAAU,AAEV,eAtqCe,CAmrCf,AArKH,8FA2JI,kBAAkB,AAClB,WAAW,AACX,UAAU,AACV,QAAQ,AAER,WAAW,AACX,UAAU,AAEV,eAjrCc,CAkrCd","file":"tabulator_site.min.css","sourcesContent":["/* Tabulator v4.7.0 (c) Oliver Folkerd */\n\n\r\n//Main Theme Variables\r\n$backgroundColor: #fff !default; //background color of tabulator\r\n$borderColor:#222 !default; //border to tabulator\r\n$textSize:14px !default; //table text size\r\n\r\n//header themeing\r\n$headerBackgroundColor:#222 !default; //border to tabulator\r\n$headerTextColor:#fff !default; //header text colour\r\n$headerBorderColor:#aaa !default; //header border color\r\n$headerSeperatorColor:#3FB449 !default; //header bottom seperator color\r\n$headerMargin:4px !default; //padding round header\r\n\r\n//column header arrows\r\n$sortArrowActive: #3FB449 !default;\r\n$sortArrowInactive: #bbb !default;\r\n\r\n//row themeing\r\n$rowBackgroundColor:#fff !default; //table row background color\r\n$rowAltBackgroundColor:#EFEFEF !default; //table row background color\r\n$rowBorderColor:#aaa !default; //table border color\r\n$rowTextColor:#333 !default; //table text color\r\n$rowHoverBackground:#bbb !default; //row background color on hover\r\n\r\n$rowSelectedBackground: #9ABCEA !default; //row background color when selected\r\n$rowSelectedBackgroundHover: #769BCC !default;//row background color when selected and hovered\r\n\r\n$editBoxColor:#1D68CD !default; //border color for edit boxes\r\n$errorColor:#dd0000 !default; //error indication\r\n\r\n//footer themeing\r\n$footerBackgroundColor:#222 !default; //border to tabulator\r\n$footerTextColor:#222 !default; //footer text colour\r\n$footerBorderColor:#aaa !default; //footer border color\r\n$footerSeperatorColor:#3FB449 !default; //footer bottom seperator color\r\n$footerActiveColor:$footerSeperatorColor !default; //footer bottom active text color\r\n\r\n\r\n//Tabulator Containing Element\r\n.tabulator{\r\n\tposition: relative;\r\n\r\n\tborder-bottom: 5px solid $borderColor;\r\n\r\n\tbackground-color: $backgroundColor;\r\n\r\n\tfont-size:$textSize;\r\n\ttext-align: left;\r\n\toverflow:hidden;\r\n\r\n\t-webkit-transform: translatez(0);\r\n\t-moz-transform: translatez(0);\r\n\t-ms-transform: translatez(0);\r\n\t-o-transform: translatez(0);\r\n\ttransform: translatez(0);\r\n\r\n\t&[tabulator-layout=\"fitDataFill\"]{\r\n\t\t.tabulator-tableHolder{\r\n\t\t\t.tabulator-table{\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t&[tabulator-layout=\"fitDataTable\"]{\r\n\t\tdisplay: inline-block;\r\n\t}\r\n\r\n\t&[tabulator-layout=\"fitColumns\"]{\r\n\t\t.tabulator-row{\r\n\t\t\t.tabulator-cell{\r\n\t\t\t\t&:last-of-type{\r\n\t\t\t\t\tborder-right: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t&.tabulator-block-select{\r\n\t\tuser-select: none;\r\n\t}\r\n\r\n\t//column header containing element\r\n\t.tabulator-header{\r\n\t\tposition:relative;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\twidth:100%;\r\n\r\n\t\tborder-bottom:3px solid $headerSeperatorColor;\r\n\t\tbackground-color: $headerBackgroundColor;\r\n\t\tcolor: $headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:hidden;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t&.tabulator-header-hidden{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\t//individual column header element\r\n\t\t.tabulator-col{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tposition:relative;\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tborder-right:1px solid $headerBorderColor;\r\n\t\t\tbackground-color: $headerBackgroundColor;\r\n\t\t\ttext-align:left;\r\n\t\t\tvertical-align: bottom;\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&.tabulator-moving{\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tborder:1px solid $headerSeperatorColor;\r\n\t\t\t\tbackground:darken($headerBackgroundColor, 10%);\r\n\t\t\t\tpointer-events: none;\r\n\t\t\t}\r\n\r\n\t\t\t//hold content of column header\r\n\t\t\t.tabulator-col-content{\r\n\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding:8px;\r\n\r\n\t\t\t\t//header menu button\r\n\t\t\t\t.tabulator-header-menu-button{\r\n\t\t\t\t\tpadding: 0 8px;\r\n\r\n\t\t\t\t\t&:hover{\r\n\t\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t\topacity: .6;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//hold title of column header\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tbox-sizing:border-box;\r\n\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\t\tvertical-align:bottom;\r\n\r\n\t\t\t\t\t//element to hold title editor\r\n\t\t\t\t\t.tabulator-title-editor{\r\n\t\t\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\t\t\twidth: 100%;\r\n\r\n\t\t\t\t\t\tborder:1px solid #999;\r\n\r\n\t\t\t\t\t\tpadding:1px;\r\n\r\n\t\t\t\t\t\tbackground: #fff;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//column sorter arrow\r\n\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop:14px;\r\n\t\t\t\t\tright:8px;\r\n\t\t\t\t\twidth: 0;\r\n\t\t\t\t\theight: 0;\r\n\t\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\t//complex header column group\r\n\t\t\t&.tabulator-col-group{\r\n\r\n\t\t\t\t//gelement to hold sub columns in column group\r\n\t\t\t\t.tabulator-col-group-cols{\r\n\t\t\t\t\tposition:relative;\r\n\t\t\t\t\tdisplay: flex;\r\n\r\n\t\t\t\t\tborder-top:1px solid $headerBorderColor;\r\n\t\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\t\tmargin-right:-1px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//hide left resize handle on first column\r\n\t\t\t&:first-child{\r\n\t\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//header filter containing element\r\n\t\t\t.tabulator-header-filter{\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tmargin-top:2px;\r\n\t\t\t\twidth:100%;\r\n\t\t\t\ttext-align: center;\r\n\r\n\t\t\t\t//styling adjustment for inbuilt editors\r\n\t\t\t\ttextarea{\r\n\t\t\t\t\theight:auto !important;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsvg{\r\n\t\t\t\t\tmargin-top: 3px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput{\r\n\t\t\t\t\t&::-ms-clear {\r\n\t\t\t\t\t width : 0;\r\n\t\t\t\t\t height: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//styling child elements for sortable columns\r\n\t\t\t&.tabulator-sortable{\r\n\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\tpadding-right:25px;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"none\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowInactive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"asc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: none;\r\n\t\t\t\t\t\tborder-bottom: 6px solid $sortArrowActive;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&[aria-sort=\"desc\"]{\r\n\t\t\t\t\t.tabulator-col-content .tabulator-arrow{\r\n\t\t\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\t\t\tborder-bottom: none;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-col-vertical{\r\n\t\t\t\t.tabulator-col-content{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\twriting-mode: vertical-rl;\r\n\t\t\t\t\t\ttext-orientation: mixed;\r\n\r\n\t\t\t\t\t\tdisplay:flex;\r\n\t\t\t\t\t\talign-items:center;\r\n\t\t\t\t\t\tjustify-content:center;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\ttransform: rotate(180deg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t&.tabulator-sortable{\r\n\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\tpadding-top:20px;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&.tabulator-col-vertical-flip{\r\n\t\t\t\t\t\t.tabulator-col-title{\r\n\t\t\t\t\t\t\tpadding-right:0;\r\n\t\t\t\t\t\t\tpadding-bottom:20px;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t.tabulator-arrow{\r\n\t\t\t\t\t\tright:calc(50% - 6px);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tposition: absolute;\r\n\r\n\t\t\t// background-color: inherit;\r\n\r\n\t\t\tz-index: 10;\r\n\r\n\t\t\t&.tabulator-frozen-left{\r\n\t\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\r\n\t\t\t&.tabulator-frozen-right{\r\n\t\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\tbackground:lighten($headerBackgroundColor, 10%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:lighten($headerBackgroundColor, 10%) !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tborder-top:1px solid $rowBorderColor;\r\n\t\t\t// border-bottom:1px solid $headerBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\t\t}\r\n\r\n\t\t.tabulator-frozen-rows-holder{\r\n\t\t\tmin-width:600%;\r\n\r\n\t\t\t&:empty{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//scrolling element to hold table\r\n\t.tabulator-tableHolder{\r\n\t\tposition:relative;\r\n\t\twidth:100%;\r\n\t\twhite-space: nowrap;\r\n\t\toverflow:auto;\r\n\t\t-webkit-overflow-scrolling: touch;\r\n\r\n\t\t&:focus{\r\n\t\t\toutline: none;\r\n\t\t}\r\n\r\n\t\t//default placeholder element\r\n\t\t.tabulator-placeholder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t&[tabulator-render-mode=\"virtual\"]{\r\n\t\t\t\tmin-height:100%;\r\n\t\t\t\tmin-width:100%;\r\n\t\t\t}\r\n\r\n\t\t\twidth:100%;\r\n\r\n\t\t\tspan{\r\n\t\t\t\tdisplay: inline-block;\r\n\r\n\t\t\t\tmargin:0 auto;\r\n\t\t\t\tpadding:10px;\r\n\r\n\t\t\t\tcolor:$headerSeperatorColor;\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//element to hold table rows\r\n\t\t.tabulator-table{\r\n\t\t\tposition:relative;\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tbackground-color:$rowBackgroundColor;\r\n\t\t\twhite-space: nowrap;\r\n\t\t\toverflow:visible;\r\n\t\t\tcolor:$rowTextColor;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\t&.tabulator-calcs{\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t\tbackground:lighten($headerBackgroundColor, 15%) !important;\r\n\t\t\t\t\tcolor:$headerTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//footer element\r\n\t.tabulator-footer{\r\n\t\tpadding:5px 10px;\r\n\t\tpadding-top:8px;\r\n\t\tborder-top:3px solid $footerSeperatorColor;\r\n\t\tbackground-color: $footerBackgroundColor;\r\n\t\ttext-align:right;\r\n\t\tcolor: $footerTextColor;\r\n\t\tfont-weight:bold;\r\n\t\twhite-space:nowrap;\r\n\t\tuser-select:none;\r\n\r\n\t\t-moz-user-select: none;\r\n\t\t-khtml-user-select: none;\r\n\t\t-webkit-user-select: none;\r\n\t\t-o-user-select: none;\r\n\r\n\t\t.tabulator-calcs-holder{\r\n\t\t\tbox-sizing:border-box;\r\n\t\t\twidth:calc(100% + 20px);\r\n\t\t\tmargin:-8px -10px 8px -10px;\r\n\r\n\t\t\ttext-align: left;\r\n\r\n\t\t\tbackground:lighten($footerBackgroundColor, 10%) !important;\r\n\r\n\t\t\t.tabulator-row{\r\n\t\t\t\tbackground:lighten($footerBackgroundColor, 10%) !important;\r\n\t\t\t\tcolor:$headerTextColor !important;\r\n\r\n\t\t\t\t.tabulator-col-resize-handle{\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// border-top:1px solid $rowBorderColor;\r\n\t\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\t\toverflow: hidden;\r\n\r\n\t\t\t&:only-child{\r\n\t\t\t\tmargin-bottom:-5px;\r\n\t\t\t\tborder-bottom:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-paginator{\r\n\t\t\tlabel{\r\n\t\t\t\tcolor:#fff;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//page size select element\r\n\t\t.tabulator-page-size{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 5px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\t\t}\r\n\r\n\t\t//pagination container element\r\n\t\t.tabulator-pages{\r\n\t\t\tmargin:0 7px;\r\n\t\t}\r\n\r\n\t\t//pagination button\r\n\t\t.tabulator-page{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 2px;\r\n\t\t\tpadding:2px 5px;\r\n\r\n\t\t\tborder:1px solid $footerBorderColor;\r\n\t\t\tborder-radius:3px;\r\n\r\n\t\t\tbackground:#fff;\r\n\r\n\t\t\tcolor: $footerTextColor;\r\n\t\t\tfont-family:inherit;\r\n\t\t\tfont-weight:inherit;\r\n\t\t\tfont-size:inherit;\r\n\r\n\t\t\t&.active{\r\n\t\t\t\tcolor:$footerActiveColor;\r\n\t\t\t}\r\n\r\n\t\t\t&:disabled{\r\n\t\t\t\topacity:.5;\r\n\t\t\t}\r\n\r\n\t\t\t&:not(.disabled){\r\n\t\t\t\t&:hover{\r\n\t\t\t\t\tcursor:pointer;\r\n\t\t\t\t\tbackground:rgba(0,0,0,.2);\r\n\t\t\t\t\tcolor:#fff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//column resize handles\r\n\t.tabulator-col-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\ttop:0;\r\n\t\tbottom:0;\r\n\t\twidth:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\tleft:0;\r\n\t\t\tright:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ew-resize;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t//holding div that contains loader and covers tabulator element to prevent interaction\r\n\t.tabulator-loader{\r\n\t\tposition:absolute;\r\n\t\tdisplay: flex;\r\n\t\talign-items:center;\r\n\r\n\t\ttop:0;\r\n\t\tleft:0;\r\n\t\tz-index:100;\r\n\r\n\t\theight:100%;\r\n\t\twidth:100%;\r\n\t\tbackground:rgba(0,0,0,.4);\r\n\t\ttext-align:center;\r\n\r\n\t\t//loading message element\r\n\t\t.tabulator-loader-msg{\r\n\t\t\tdisplay:inline-block;\r\n\r\n\t\t\tmargin:0 auto;\r\n\t\t\tpadding:10px 20px;\r\n\r\n\t\t\tborder-radius:10px;\r\n\r\n\t\t\tbackground:#fff;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:16px;\r\n\r\n\t\t\t//loading message\r\n\t\t\t&.tabulator-loading{\r\n\t\t\t\tborder:4px solid #333;\r\n\t\t\t\tcolor:#000;\r\n\t\t\t}\r\n\r\n\t\t\t//error message\r\n\t\t\t&.tabulator-error{\r\n\t\t\t\tborder:4px solid #D00;\r\n\t\t\t\tcolor:#590000;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//row element\r\n.tabulator-row{\r\n\tposition: relative;\r\n\tbox-sizing: border-box;\r\n\tmin-height:$textSize + ($headerMargin * 2);\r\n\tbackground-color: $rowBackgroundColor;\r\n\r\n\r\n\t&.tabulator-row-even{\r\n\t\tbackground-color: $rowAltBackgroundColor;\r\n\t}\r\n\r\n\t&.tabulator-selectable:hover{\r\n\t\tbackground-color:$rowHoverBackground;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-selected{\r\n\t\tbackground-color:$rowSelectedBackground;\r\n\t}\r\n\r\n\t&.tabulator-selected:hover{\r\n\t\tbackground-color:$rowSelectedBackgroundHover;\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t&.tabulator-row-moving{\r\n\t\tborder:1px solid #000;\r\n\t\tbackground:#fff;\r\n\t}\r\n\r\n\t&.tabulator-moving{\r\n\t\tposition: absolute;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpointer-events: none !important;\r\n\t\tz-index:15;\r\n\t}\r\n\r\n\t//row resize handles\r\n\t.tabulator-row-resize-handle{\r\n\t\tposition:absolute;\r\n\t\tright:0;\r\n\t\tbottom:0;\r\n\t\tleft:0;\r\n\t\theight:5px;\r\n\r\n\t\t&.prev{\r\n\t\t\ttop:0;\r\n\t\t\tbottom:auto;\r\n\t\t}\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:ns-resize;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-frozen{\r\n\t\tdisplay: inline-block;\r\n\t\tposition: absolute;\r\n\r\n\t\tbackground-color: inherit;\r\n\r\n\t\tz-index: 10;\r\n\r\n\t\t&.tabulator-frozen-left{\r\n\t\t\tborder-right:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t&.tabulator-frozen-right{\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-responsive-collapse{\r\n\t\tbox-sizing:border-box;\r\n\r\n\t\tpadding:5px;\r\n\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\t&:empty{\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\r\n\t\ttable{\r\n\t\t\tfont-size:$textSize;\r\n\r\n\t\t\ttr{\r\n\t\t\t\ttd{\r\n\t\t\t\t\tposition: relative;\r\n\r\n\t\t\t\t\t&:first-of-type{\r\n\t\t\t\t\t\tpadding-right:10px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//cell element\r\n\t.tabulator-cell{\r\n\t\tdisplay:inline-block;\r\n\t\tposition: relative;\r\n\t\tbox-sizing:border-box;\r\n\t\tpadding:6px;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tvertical-align:middle;\r\n\t\twhite-space:nowrap;\r\n\t\toverflow:hidden;\r\n\t\ttext-overflow:ellipsis;\r\n\r\n\r\n\t\t&.tabulator-editing{\r\n\t\t\tborder:1px solid $editBoxColor;\r\n\t\t\tpadding: 0;\r\n\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-validation-fail{\r\n\t\t\tborder:1px solid $errorColor;\r\n\t\t\tinput, select{\r\n\t\t\t\tborder:1px;\r\n\t\t\t\tbackground:transparent;\r\n\r\n\t\t\t\tcolor: $errorColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//hide left resize handle on first column\r\n\t\t&:first-child{\r\n\t\t\t.tabulator-col-resize-handle.prev{\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//movable row handle\r\n\t\t&.tabulator-row-handle{\r\n\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\t//handle holder\r\n\t\t\t.tabulator-row-handle-box{\r\n\t\t\t\twidth:80%;\r\n\r\n\t\t\t\t//Hamburger element\r\n\t\t\t\t.tabulator-row-handle-bar{\r\n\t\t\t\t\twidth:100%;\r\n\t\t\t\t\theight:3px;\r\n\t\t\t\t\tmargin-top:2px;\r\n\t\t\t\t\tbackground:$sortArrowActive;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-branch{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:9px;\r\n\t\t\twidth:7px;\r\n\r\n\t\t\tmargin-top:-9px;\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\t\tborder-left:2px solid $rowBorderColor;\r\n\t\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control{\r\n\r\n\t\t\tdisplay:inline-flex;\r\n\t\t\tjustify-content:center;\r\n\t\t\talign-items:center;\r\n\t\t\tvertical-align:middle;\r\n\r\n\t\t\theight:11px;\r\n\t\t\twidth:11px;\r\n\r\n\t\t\tmargin-right:5px;\r\n\r\n\t\t\tborder:1px solid $rowTextColor;\r\n\t\t\tborder-radius:2px;\r\n\t\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\t\toverflow:hidden;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\tcursor:pointer;\r\n\t\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: transparent;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-data-tree-control-expand{\r\n\t\t\t\tdisplay:inline-block;\r\n\t\t\t\tposition: relative;\r\n\r\n\t\t\t\theight: 7px;\r\n\t\t\t\twidth: 1px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t\t&:after {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tcontent: \"\";\r\n\t\t\t\t\tleft: -3px;\r\n\t\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\t\theight: 1px;\r\n\t\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.tabulator-responsive-collapse-toggle{\r\n\t\t\tdisplay: inline-flex;\r\n\t\t\talign-items:center;\r\n\t\t\tjustify-content:center;\r\n\r\n\t\t\t-moz-user-select: none;\r\n\t\t\t-khtml-user-select: none;\r\n\t\t\t-webkit-user-select: none;\r\n\t\t\t-o-user-select: none;\r\n\r\n\t\t\theight:15px;\r\n\t\t\twidth:15px;\r\n\r\n\t\t\tborder-radius:20px;\r\n\t\t\tbackground:#666;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tfont-weight:bold;\r\n\t\t\tfont-size:1.1em;\r\n\r\n\t\t\t&:hover{\r\n\t\t\t\topacity:.7;\r\n\t\t\t}\r\n\r\n\t\t\t&.open{\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\t\tdisplay:initial;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.tabulator-responsive-collapse-toggle-open{\r\n\t\t\t\t\tdisplay:none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.tabulator-responsive-collapse-toggle-close{\r\n\t\t\t\tdisplay:none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-traffic-light{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\theight:14px;\r\n\t\t\twidth:14px;\r\n\r\n\t\t\tborder-radius:14px;\r\n\t\t}\r\n\t}\r\n\r\n\t//row grouping element\r\n\t&.tabulator-group{\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #000;\r\n\t\tborder-bottom:2px solid $headerSeperatorColor;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:$headerBackgroundColor;\r\n\t\tcolor:$headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\tpadding-left:30px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\tpadding-left:50px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\tpadding-left:70px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\tpadding-left:90px;\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\tpadding-left:110px;\r\n\t\t}\r\n\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:$headerSeperatorColor;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n.tabulator-menu{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\tbox-shadow: 0 0 5px 0 rgba(0, 0, 0, .2);\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-menu-item{\r\n\r\n\t\tpadding:5px 10px;\r\n\r\n\t\tuser-select: none;\r\n\r\n\t\t&.tabulator-menu-item-disabled{\r\n\t\t\topacity: .5;\r\n\t\t}\r\n\r\n\t\t&:not(.tabulator-menu-item-disabled):hover{\r\n\t\t\tcursor: pointer;\r\n\t\t\tbackground: $rowAltBackgroundColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-menu-separator{\r\n\t\tborder-top:1px solid $rowBorderColor;\r\n\t}\r\n}\r\n\r\n.tabulator-edit-select-list{\r\n\tposition: absolute;\r\n\tdisplay:inline-block;\r\n\tbox-sizing:border-box;\r\n\r\n\tmax-height:200px;\r\n\r\n\tbackground:$rowBackgroundColor;\r\n\tborder:1px solid $rowBorderColor;\r\n\r\n\tfont-size:$textSize;\r\n\r\n\toverflow-y:auto;\r\n\t-webkit-overflow-scrolling: touch;\r\n\r\n\tz-index: 10000;\r\n\r\n\t.tabulator-edit-select-list-item{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\r\n\t\t&.active{\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\r\n\t\t\t&.focused{\r\n\t\t\t\toutline:1px solid rgba($rowBackgroundColor, .5);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.focused{\r\n\t\t\toutline:1px solid $editBoxColor;\r\n\t\t}\r\n\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\r\n\t\t\tcolor:$rowBackgroundColor;\r\n\t\t\tbackground:$editBoxColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-notice{\r\n\t\tpadding:4px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\ttext-align: center;\r\n\t}\r\n\r\n\t.tabulator-edit-select-list-group{\r\n\t\tborder-bottom:1px solid $rowBorderColor;\r\n\r\n\t\tpadding:4px;\r\n\t\tpadding-top:6px;\r\n\r\n\t\tcolor:$rowTextColor;\r\n\t\tfont-weight:bold;\r\n\t}\r\n}\r\n\r\n// Table print styling\r\n\r\n.tabulator-print-fullscreen{\r\n\tposition: absolute;\r\n\ttop:0;\r\n\tbottom:0;\r\n\tleft:0;\r\n\tright:0;\r\n\r\n\tz-index: 10000;\r\n}\r\n\r\nbody.tabulator-print-fullscreen-hide>*:not(.tabulator-print-fullscreen){\r\n\tdisplay:none !important;\r\n}\r\n\r\n.tabulator-print-table{\r\n\tborder-collapse: collapse;\r\n\r\n\t//row grouping element\r\n\t.tabulator-print-table-group{\r\n\t\tbox-sizing:border-box;\r\n\t\tborder-right:1px solid $rowBorderColor;\r\n\t\tborder-top:1px solid #000;\r\n\t\tborder-bottom:2px solid $headerSeperatorColor;\r\n\t\tpadding:5px;\r\n\t\tpadding-left:10px;\r\n\t\tbackground:$headerBackgroundColor;\r\n\t\tcolor:$headerTextColor;\r\n\t\tfont-weight:bold;\r\n\r\n\t\tmin-width: 100%;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground-color:darken($headerBackgroundColor, 10%);\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-visible{\r\n\t\t\t.tabulator-arrow{\r\n\t\t\t\tmargin-right:10px;\r\n\t\t\t\tborder-left: 6px solid transparent;\r\n\t\t\t\tborder-right: 6px solid transparent;\r\n\t\t\t\tborder-top: 6px solid $sortArrowActive;\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-1{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:30px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-2{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:50px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-3{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:70px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-4{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:90px !important;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t&.tabulator-group-level-5{\r\n\t\t\ttd{\r\n\t\t\t\tpadding-left:110px !important;\r\n\t\t\t}\r\n\t\t}\r\n\t\t.tabulator-group-toggle{\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\r\n\t\t//sorting arrow\r\n\t\t.tabulator-arrow{\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 0;\r\n\t\t\theight: 0;\r\n\t\t\tmargin-right:16px;\r\n\t\t\tborder-top: 6px solid transparent;\r\n\t\t\tborder-bottom: 6px solid transparent;\r\n\t\t\tborder-right: 0;\r\n\t\t\tborder-left: 6px solid $sortArrowActive;\r\n\t\t\tvertical-align:middle;\r\n\t\t}\r\n\r\n\t\tspan{\r\n\t\t\tmargin-left:10px;\r\n\t\t\tcolor:$headerSeperatorColor;\r\n\t\t}\r\n\t}\r\n\r\n\t.tabulator-data-tree-branch{\r\n\t\tdisplay:inline-block;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:9px;\r\n\t\twidth:7px;\r\n\r\n\t\tmargin-top:-9px;\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder-bottom-left-radius:1px;\r\n\r\n\t\tborder-left:2px solid $rowBorderColor;\r\n\t\tborder-bottom:2px solid $rowBorderColor;\r\n\t}\r\n\r\n\t.tabulator-data-tree-control{\r\n\r\n\t\tdisplay:inline-flex;\r\n\t\tjustify-content:center;\r\n\t\talign-items:center;\r\n\t\tvertical-align:middle;\r\n\r\n\t\theight:11px;\r\n\t\twidth:11px;\r\n\r\n\t\tmargin-right:5px;\r\n\r\n\t\tborder:1px solid $rowTextColor;\r\n\t\tborder-radius:2px;\r\n\t\tbackground:rgba(0, 0, 0, .1);\r\n\r\n\t\toverflow:hidden;\r\n\r\n\t\t&:hover{\r\n\t\t\tcursor:pointer;\r\n\t\t\tbackground:rgba(0, 0, 0, .2);\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-collapse{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: transparent;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.tabulator-data-tree-control-expand{\r\n\t\t\tdisplay:inline-block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\theight: 7px;\r\n\t\t\twidth: 1px;\r\n\r\n\t\t\tbackground: $rowTextColor;\r\n\r\n\t\t\t&:after {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tleft: -3px;\r\n\t\t\t\ttop: 3px;\r\n\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 7px;\r\n\r\n\t\t\t\tbackground: $rowTextColor;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n"]}
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Accessor = function Accessor(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "download", "clipboard", "print", "htmlOutput"]; //list of accessor types
-};
-
-//initialize column accessor
-Accessor.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1)),
- accessor;
-
- if (column.definition[key]) {
- accessor = self.lookupAccessor(column.definition[key]);
-
- if (accessor) {
- match = true;
-
- config[key] = {
- accessor: accessor,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.accessor = config;
- }
-};
-
-Accessor.prototype.lookupAccessor = function (value) {
- var accessor = false;
-
- //set column accessor
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "string":
- if (this.accessors[value]) {
- accessor = this.accessors[value];
- } else {
- console.warn("Accessor Error - No such accessor found, ignoring: ", value);
- }
- break;
-
- case "function":
- accessor = value;
- break;
- }
-
- return accessor;
-};
-
-//apply accessor to row
-Accessor.prototype.transformRow = function (dataIn, type) {
- var self = this,
- key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1));
-
- //clone data object with deep copy to isolate internal data from returned result
- var data = Tabulator.prototype.helpers.deepClone(dataIn || {});
-
- self.table.columnManager.traverse(function (column) {
- var value, accessor, params, component;
-
- if (column.modules.accessor) {
-
- accessor = column.modules.accessor[key] || column.modules.accessor.accessor || false;
-
- if (accessor) {
- value = column.getFieldValue(data);
-
- if (value != "undefined") {
- component = column.getComponent();
- params = typeof accessor.params === "function" ? accessor.params(value, data, type, component) : accessor.params;
- column.setFieldValue(data, accessor.accessor(value, data, type, params, component));
- }
- }
- }
- });
-
- return data;
-},
-
-//default accessors
-Accessor.prototype.accessors = {};
-
-Tabulator.prototype.registerModule("accessor", Accessor);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},Accessor=function(o){this.table=o,this.allowedTypes=["","data","download","clipboard","print","htmlOutput"]};Accessor.prototype.initializeColumn=function(o){var e=this,s=!1,r={};this.allowedTypes.forEach(function(t){var c,a="accessor"+(t.charAt(0).toUpperCase()+t.slice(1));o.definition[a]&&(c=e.lookupAccessor(o.definition[a]))&&(s=!0,r[a]={accessor:c,params:o.definition[a+"Params"]||{}})}),s&&(o.modules.accessor=r)},Accessor.prototype.lookupAccessor=function(o){var e=!1;switch(void 0===o?"undefined":_typeof(o)){case"string":this.accessors[o]?e=this.accessors[o]:console.warn("Accessor Error - No such accessor found, ignoring: ",o);break;case"function":e=o}return e},Accessor.prototype.transformRow=function(o,e){var s=this,r="accessor"+(e.charAt(0).toUpperCase()+e.slice(1)),t=Tabulator.prototype.helpers.deepClone(o||{});return s.table.columnManager.traverse(function(o){var s,c,a,n;o.modules.accessor&&(c=o.modules.accessor[r]||o.modules.accessor.accessor||!1)&&"undefined"!=(s=o.getFieldValue(t))&&(n=o.getComponent(),a="function"==typeof c.params?c.params(s,t,e,n):c.params,o.setFieldValue(t,c.accessor(s,t,e,a,n)))}),t},Accessor.prototype.accessors={},Tabulator.prototype.registerModule("accessor",Accessor);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Ajax = function Ajax(table) {
-
- this.table = table; //hold Tabulator object
- this.config = false; //hold config object for ajax request
- this.url = ""; //request URL
- this.urlGenerator = false;
- this.params = false; //request parameters
-
- this.loaderElement = this.createLoaderElement(); //loader message div
- this.msgElement = this.createMsgElement(); //message element
- this.loadingElement = false;
- this.errorElement = false;
- this.loaderPromise = false;
-
- this.progressiveLoad = false;
- this.loading = false;
-
- this.requestOrder = 0; //prevent requests comming out of sequence if overridden by another load request
-};
-
-//initialize setup options
-Ajax.prototype.initialize = function () {
- var template;
-
- this.loaderElement.appendChild(this.msgElement);
-
- if (this.table.options.ajaxLoaderLoading) {
- if (typeof this.table.options.ajaxLoaderLoading == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderLoading.trim();
- this.loadingElement = template.content.firstChild;
- } else {
- this.loadingElement = this.table.options.ajaxLoaderLoading;
- }
- }
-
- this.loaderPromise = this.table.options.ajaxRequestFunc || this.defaultLoaderPromise;
-
- this.urlGenerator = this.table.options.ajaxURLGenerator || this.defaultURLGenerator;
-
- if (this.table.options.ajaxLoaderError) {
- if (typeof this.table.options.ajaxLoaderError == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderError.trim();
- this.errorElement = template.content.firstChild;
- } else {
- this.errorElement = this.table.options.ajaxLoaderError;
- }
- }
-
- if (this.table.options.ajaxParams) {
- this.setParams(this.table.options.ajaxParams);
- }
-
- if (this.table.options.ajaxConfig) {
- this.setConfig(this.table.options.ajaxConfig);
- }
-
- if (this.table.options.ajaxURL) {
- this.setUrl(this.table.options.ajaxURL);
- }
-
- if (this.table.options.ajaxProgressiveLoad) {
- if (this.table.options.pagination) {
- this.progressiveLoad = false;
- console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time");
- } else {
- if (this.table.modExists("page")) {
- this.progressiveLoad = this.table.options.ajaxProgressiveLoad;
- this.table.modules.page.initializeProgressive(this.progressiveLoad);
- } else {
- console.error("Pagination plugin is required for progressive ajax loading");
- }
- }
- }
-};
-
-Ajax.prototype.createLoaderElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-loader");
- return el;
-};
-
-Ajax.prototype.createMsgElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-loader-msg");
- el.setAttribute("role", "alert");
-
- return el;
-};
-
-//set ajax params
-Ajax.prototype.setParams = function (params, update) {
- if (update) {
- this.params = this.params || {};
-
- for (var key in params) {
- this.params[key] = params[key];
- }
- } else {
- this.params = params;
- }
-};
-
-Ajax.prototype.getParams = function () {
- return this.params || {};
-};
-
-//load config object
-Ajax.prototype.setConfig = function (config) {
- this._loadDefaultConfig();
-
- if (typeof config == "string") {
- this.config.method = config;
- } else {
- for (var key in config) {
- this.config[key] = config[key];
- }
- }
-};
-
-//create config object from default
-Ajax.prototype._loadDefaultConfig = function (force) {
- var self = this;
- if (!self.config || force) {
-
- self.config = {};
-
- //load base config from defaults
- for (var key in self.defaultConfig) {
- self.config[key] = self.defaultConfig[key];
- }
- }
-};
-
-//set request url
-Ajax.prototype.setUrl = function (url) {
- this.url = url;
-};
-
-//get request url
-Ajax.prototype.getUrl = function () {
- return this.url;
-};
-
-//lstandard loading function
-Ajax.prototype.loadData = function (inPosition, columnsChanged) {
- var self = this;
-
- if (this.progressiveLoad) {
- return this._loadDataProgressive();
- } else {
- return this._loadDataStandard(inPosition, columnsChanged);
- }
-};
-
-Ajax.prototype.nextPage = function (diff) {
- var margin;
-
- if (!this.loading) {
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.getElement().clientHeight * 2;
-
- if (diff < margin) {
- this.table.modules.page.nextPage().then(function () {}).catch(function () {});
- }
- }
-};
-
-Ajax.prototype.blockActiveRequest = function () {
- this.requestOrder++;
-};
-
-Ajax.prototype._loadDataProgressive = function () {
- this.table.rowManager.setData([]);
- return this.table.modules.page.setPage(1);
-};
-
-Ajax.prototype._loadDataStandard = function (inPosition, columnsChanged) {
- var _this = this;
-
- return new Promise(function (resolve, reject) {
- _this.sendRequest(inPosition).then(function (data) {
- _this.table.rowManager.setData(data, inPosition, columnsChanged).then(function () {
- resolve();
- }).catch(function (e) {
- reject(e);
- });
- }).catch(function (e) {
- reject(e);
- });
- });
-};
-
-Ajax.prototype.generateParamsList = function (data, prefix) {
- var self = this,
- output = [];
-
- prefix = prefix || "";
-
- if (Array.isArray(data)) {
- data.forEach(function (item, i) {
- output = output.concat(self.generateParamsList(item, prefix ? prefix + "[" + i + "]" : i));
- });
- } else if ((typeof data === "undefined" ? "undefined" : _typeof(data)) === "object") {
- for (var key in data) {
- output = output.concat(self.generateParamsList(data[key], prefix ? prefix + "[" + key + "]" : key));
- }
- } else {
- output.push({ key: prefix, value: data });
- }
-
- return output;
-};
-
-Ajax.prototype.serializeParams = function (params) {
- var output = this.generateParamsList(params),
- encoded = [];
-
- output.forEach(function (item) {
- encoded.push(encodeURIComponent(item.key) + "=" + encodeURIComponent(item.value));
- });
-
- return encoded.join("&");
-};
-
-//send ajax request
-Ajax.prototype.sendRequest = function (silent) {
- var _this2 = this;
-
- var self = this,
- url = self.url,
- requestNo,
- esc,
- query;
-
- self.requestOrder++;
- requestNo = self.requestOrder;
-
- self._loadDefaultConfig();
-
- return new Promise(function (resolve, reject) {
- if (self.table.options.ajaxRequesting.call(_this2.table, self.url, self.params) !== false) {
-
- self.loading = true;
-
- if (!silent) {
- self.showLoader();
- }
-
- _this2.loaderPromise(url, self.config, self.params).then(function (data) {
- if (requestNo === self.requestOrder) {
- if (self.table.options.ajaxResponse) {
- data = self.table.options.ajaxResponse.call(self.table, self.url, self.params, data);
- }
- resolve(data);
-
- self.hideLoader();
- self.loading = false;
- } else {
- console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made");
- }
- }).catch(function (error) {
- console.error("Ajax Load Error: ", error);
- self.table.options.ajaxError.call(self.table, error);
-
- self.showError();
-
- setTimeout(function () {
- self.hideLoader();
- }, 3000);
-
- self.loading = false;
-
- reject();
- });
- } else {
- reject();
- }
- });
-};
-
-Ajax.prototype.showLoader = function () {
- var shouldLoad = typeof this.table.options.ajaxLoader === "function" ? this.table.options.ajaxLoader() : this.table.options.ajaxLoader;
-
- if (shouldLoad) {
-
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-error");
- this.msgElement.classList.add("tabulator-loading");
-
- if (this.loadingElement) {
- this.msgElement.appendChild(this.loadingElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|loading");
- }
-
- this.table.element.appendChild(this.loaderElement);
- }
-};
-
-Ajax.prototype.showError = function () {
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-loading");
- this.msgElement.classList.add("tabulator-error");
-
- if (this.errorElement) {
- this.msgElement.appendChild(this.errorElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|error");
- }
-
- this.table.element.appendChild(this.loaderElement);
-};
-
-Ajax.prototype.hideLoader = function () {
- if (this.loaderElement.parentNode) {
- this.loaderElement.parentNode.removeChild(this.loaderElement);
- }
-};
-
-//default ajax config object
-Ajax.prototype.defaultConfig = {
- method: "GET"
-};
-
-Ajax.prototype.defaultURLGenerator = function (url, config, params) {
-
- if (url) {
- if (params && Object.keys(params).length) {
- if (!config.method || config.method.toLowerCase() == "get") {
- config.method = "get";
-
- url += (url.includes("?") ? "&" : "?") + this.serializeParams(params);
- }
- }
- }
-
- return url;
-};
-
-Ajax.prototype.defaultLoaderPromise = function (url, config, params) {
- var self = this,
- contentType;
-
- return new Promise(function (resolve, reject) {
-
- //set url
- url = self.urlGenerator(url, config, params);
-
- //set body content if not GET request
- if (config.method.toUpperCase() != "GET") {
- contentType = _typeof(self.table.options.ajaxContentType) === "object" ? self.table.options.ajaxContentType : self.contentTypeFormatters[self.table.options.ajaxContentType];
- if (contentType) {
-
- for (var key in contentType.headers) {
- if (!config.headers) {
- config.headers = {};
- }
-
- if (typeof config.headers[key] === "undefined") {
- config.headers[key] = contentType.headers[key];
- }
- }
-
- config.body = contentType.body.call(self, url, config, params);
- } else {
- console.warn("Ajax Error - Invalid ajaxContentType value:", self.table.options.ajaxContentType);
- }
- }
-
- if (url) {
-
- //configure headers
- if (typeof config.headers === "undefined") {
- config.headers = {};
- }
-
- if (typeof config.headers.Accept === "undefined") {
- config.headers.Accept = "application/json";
- }
-
- if (typeof config.headers["X-Requested-With"] === "undefined") {
- config.headers["X-Requested-With"] = "XMLHttpRequest";
- }
-
- if (typeof config.mode === "undefined") {
- config.mode = "cors";
- }
-
- if (config.mode == "cors") {
-
- if (typeof config.headers["Access-Control-Allow-Origin"] === "undefined") {
- config.headers["Access-Control-Allow-Origin"] = window.location.origin;
- }
-
- if (typeof config.credentials === "undefined") {
- config.credentials = 'same-origin';
- }
- } else {
- if (typeof config.credentials === "undefined") {
- config.credentials = 'include';
- }
- }
-
- //send request
- fetch(url, config).then(function (response) {
- if (response.ok) {
- response.json().then(function (data) {
- resolve(data);
- }).catch(function (error) {
- reject(error);
- console.warn("Ajax Load Error - Invalid JSON returned", error);
- });
- } else {
- console.error("Ajax Load Error - Connection Error: " + response.status, response.statusText);
- reject(response);
- }
- }).catch(function (error) {
- console.error("Ajax Load Error - Connection Error: ", error);
- reject(error);
- });
- } else {
- console.warn("Ajax Load Error - No URL Set");
- resolve([]);
- }
- });
-};
-
-Ajax.prototype.contentTypeFormatters = {
- "json": {
- headers: {
- 'Content-Type': 'application/json'
- },
- body: function body(url, config, params) {
- return JSON.stringify(params);
- }
- },
- "form": {
- headers: {},
- body: function body(url, config, params) {
- var output = this.generateParamsList(params),
- form = new FormData();
-
- output.forEach(function (item) {
- form.append(item.key, item.value);
- });
-
- return form;
- }
- }
-};
-
-Tabulator.prototype.registerModule("ajax", Ajax);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ajax=function(e){this.table=e,this.config=!1,this.url="",this.urlGenerator=!1,this.params=!1,this.loaderElement=this.createLoaderElement(),this.msgElement=this.createMsgElement(),this.loadingElement=!1,this.errorElement=!1,this.loaderPromise=!1,this.progressiveLoad=!1,this.loading=!1,this.requestOrder=0};Ajax.prototype.initialize=function(){var e;this.loaderElement.appendChild(this.msgElement),this.table.options.ajaxLoaderLoading&&("string"==typeof this.table.options.ajaxLoaderLoading?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderLoading.trim(),this.loadingElement=e.content.firstChild):this.loadingElement=this.table.options.ajaxLoaderLoading),this.loaderPromise=this.table.options.ajaxRequestFunc||this.defaultLoaderPromise,this.urlGenerator=this.table.options.ajaxURLGenerator||this.defaultURLGenerator,this.table.options.ajaxLoaderError&&("string"==typeof this.table.options.ajaxLoaderError?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderError.trim(),this.errorElement=e.content.firstChild):this.errorElement=this.table.options.ajaxLoaderError),this.table.options.ajaxParams&&this.setParams(this.table.options.ajaxParams),this.table.options.ajaxConfig&&this.setConfig(this.table.options.ajaxConfig),this.table.options.ajaxURL&&this.setUrl(this.table.options.ajaxURL),this.table.options.ajaxProgressiveLoad&&(this.table.options.pagination?(this.progressiveLoad=!1,console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time")):this.table.modExists("page")?(this.progressiveLoad=this.table.options.ajaxProgressiveLoad,this.table.modules.page.initializeProgressive(this.progressiveLoad)):console.error("Pagination plugin is required for progressive ajax loading"))},Ajax.prototype.createLoaderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader"),e},Ajax.prototype.createMsgElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader-msg"),e.setAttribute("role","alert"),e},Ajax.prototype.setParams=function(e,t){if(t){this.params=this.params||{};for(var o in e)this.params[o]=e[o]}else this.params=e},Ajax.prototype.getParams=function(){return this.params||{}},Ajax.prototype.setConfig=function(e){if(this._loadDefaultConfig(),"string"==typeof e)this.config.method=e;else for(var t in e)this.config[t]=e[t]},Ajax.prototype._loadDefaultConfig=function(e){var t=this;if(!t.config||e){t.config={};for(var o in t.defaultConfig)t.config[o]=t.defaultConfig[o]}},Ajax.prototype.setUrl=function(e){this.url=e},Ajax.prototype.getUrl=function(){return this.url},Ajax.prototype.loadData=function(e,t){return this.progressiveLoad?this._loadDataProgressive():this._loadDataStandard(e,t)},Ajax.prototype.nextPage=function(e){var t;this.loading||(t=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.getElement().clientHeight,e<t&&this.table.modules.page.nextPage().then(function(){}).catch(function(){}))},Ajax.prototype.blockActiveRequest=function(){this.requestOrder++},Ajax.prototype._loadDataProgressive=function(){return this.table.rowManager.setData([]),this.table.modules.page.setPage(1)},Ajax.prototype._loadDataStandard=function(e,t){var o=this;return new Promise(function(a,r){o.sendRequest(e).then(function(i){o.table.rowManager.setData(i,e,t).then(function(){a()}).catch(function(e){r(e)})}).catch(function(e){r(e)})})},Ajax.prototype.generateParamsList=function(e,t){var o=this,a=[];if(t=t||"",Array.isArray(e))e.forEach(function(e,r){a=a.concat(o.generateParamsList(e,t?t+"["+r+"]":r))});else if("object"===(void 0===e?"undefined":_typeof(e)))for(var r in e)a=a.concat(o.generateParamsList(e[r],t?t+"["+r+"]":r));else a.push({key:t,value:e});return a},Ajax.prototype.serializeParams=function(e){var t=this.generateParamsList(e),o=[];return t.forEach(function(e){o.push(encodeURIComponent(e.key)+"="+encodeURIComponent(e.value))}),o.join("&")},Ajax.prototype.sendRequest=function(e){var t,o=this,a=this,r=a.url;return a.requestOrder++,t=a.requestOrder,a._loadDefaultConfig(),new Promise(function(i,n){!1!==a.table.options.ajaxRequesting.call(o.table,a.url,a.params)?(a.loading=!0,e||a.showLoader(),o.loaderPromise(r,a.config,a.params).then(function(e){t===a.requestOrder?(a.table.options.ajaxResponse&&(e=a.table.options.ajaxResponse.call(a.table,a.url,a.params,e)),i(e),a.hideLoader(),a.loading=!1):console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made")}).catch(function(e){console.error("Ajax Load Error: ",e),a.table.options.ajaxError.call(a.table,e),a.showError(),setTimeout(function(){a.hideLoader()},3e3),a.loading=!1,n()})):n()})},Ajax.prototype.showLoader=function(){if("function"==typeof this.table.options.ajaxLoader?this.table.options.ajaxLoader():this.table.options.ajaxLoader){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-error"),this.msgElement.classList.add("tabulator-loading"),this.loadingElement?this.msgElement.appendChild(this.loadingElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|loading"),this.table.element.appendChild(this.loaderElement)}},Ajax.prototype.showError=function(){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-loading"),this.msgElement.classList.add("tabulator-error"),this.errorElement?this.msgElement.appendChild(this.errorElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|error"),this.table.element.appendChild(this.loaderElement)},Ajax.prototype.hideLoader=function(){this.loaderElement.parentNode&&this.loaderElement.parentNode.removeChild(this.loaderElement)},Ajax.prototype.defaultConfig={method:"GET"},Ajax.prototype.defaultURLGenerator=function(e,t,o){return e&&o&&Object.keys(o).length&&(t.method&&"get"!=t.method.toLowerCase()||(t.method="get",e+=(e.includes("?")?"&":"?")+this.serializeParams(o))),e},Ajax.prototype.defaultLoaderPromise=function(e,t,o){var a,r=this;return new Promise(function(i,n){if(e=r.urlGenerator(e,t,o),"GET"!=t.method.toUpperCase())if(a="object"===_typeof(r.table.options.ajaxContentType)?r.table.options.ajaxContentType:r.contentTypeFormatters[r.table.options.ajaxContentType]){for(var s in a.headers)t.headers||(t.headers={}),void 0===t.headers[s]&&(t.headers[s]=a.headers[s]);t.body=a.body.call(r,e,t,o)}else console.warn("Ajax Error - Invalid ajaxContentType value:",r.table.options.ajaxContentType);e?(void 0===t.headers&&(t.headers={}),void 0===t.headers.Accept&&(t.headers.Accept="application/json"),void 0===t.headers["X-Requested-With"]&&(t.headers["X-Requested-With"]="XMLHttpRequest"),void 0===t.mode&&(t.mode="cors"),"cors"==t.mode?(void 0===t.headers["Access-Control-Allow-Origin"]&&(t.headers["Access-Control-Allow-Origin"]=window.location.origin),void 0===t.credentials&&(t.credentials="same-origin")):void 0===t.credentials&&(t.credentials="include"),fetch(e,t).then(function(e){e.ok?e.json().then(function(e){i(e)}).catch(function(e){n(e),console.warn("Ajax Load Error - Invalid JSON returned",e)}):(console.error("Ajax Load Error - Connection Error: "+e.status,e.statusText),n(e))}).catch(function(e){console.error("Ajax Load Error - Connection Error: ",e),n(e)})):(console.warn("Ajax Load Error - No URL Set"),i([]))})},Ajax.prototype.contentTypeFormatters={json:{headers:{"Content-Type":"application/json"},body:function(e,t,o){return JSON.stringify(o)}},form:{headers:{},body:function(e,t,o){var a=this.generateParamsList(o),r=new FormData;return a.forEach(function(e){r.append(e.key,e.value)}),r}}},Tabulator.prototype.registerModule("ajax",Ajax);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var ColumnCalcs = function ColumnCalcs(table) {
- this.table = table; //hold Tabulator object
- this.topCalcs = [];
- this.botCalcs = [];
- this.genColumn = false;
- this.topElement = this.createElement();
- this.botElement = this.createElement();
- this.topRow = false;
- this.botRow = false;
- this.topInitialized = false;
- this.botInitialized = false;
-
- this.initialize();
-};
-
-ColumnCalcs.prototype.createElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-calcs-holder");
- return el;
-};
-
-ColumnCalcs.prototype.initialize = function () {
- this.genColumn = new Column({ field: "value" }, this);
-};
-
-//dummy functions to handle being mock column manager
-ColumnCalcs.prototype.registerColumnField = function () {};
-
-//initialize column calcs
-ColumnCalcs.prototype.initializeColumn = function (column) {
- var def = column.definition;
-
- var config = {
- topCalcParams: def.topCalcParams || {},
- botCalcParams: def.bottomCalcParams || {}
- };
-
- if (def.topCalc) {
-
- switch (_typeof(def.topCalc)) {
- case "string":
- if (this.calculations[def.topCalc]) {
- config.topCalc = this.calculations[def.topCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.topCalc);
- }
- break;
-
- case "function":
- config.topCalc = def.topCalc;
- break;
-
- }
-
- if (config.topCalc) {
- column.modules.columnCalcs = config;
- this.topCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeTopRow();
- }
- }
- }
-
- if (def.bottomCalc) {
- switch (_typeof(def.bottomCalc)) {
- case "string":
- if (this.calculations[def.bottomCalc]) {
- config.botCalc = this.calculations[def.bottomCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.bottomCalc);
- }
- break;
-
- case "function":
- config.botCalc = def.bottomCalc;
- break;
-
- }
-
- if (config.botCalc) {
- column.modules.columnCalcs = config;
- this.botCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeBottomRow();
- }
- }
- }
-};
-
-ColumnCalcs.prototype.removeCalcs = function () {
- var changed = false;
-
- if (this.topInitialized) {
- this.topInitialized = false;
- this.topElement.parentNode.removeChild(this.topElement);
- changed = true;
- }
-
- if (this.botInitialized) {
- this.botInitialized = false;
- this.table.footerManager.remove(this.botElement);
- changed = true;
- }
-
- if (changed) {
- this.table.rowManager.adjustTableSize();
- }
-};
-
-ColumnCalcs.prototype.initializeTopRow = function () {
- if (!this.topInitialized) {
- // this.table.columnManager.headersElement.after(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
- this.topInitialized = true;
- }
-};
-
-ColumnCalcs.prototype.initializeBottomRow = function () {
- if (!this.botInitialized) {
- this.table.footerManager.prepend(this.botElement);
- this.botInitialized = true;
- }
-};
-
-ColumnCalcs.prototype.scrollHorizontal = function (left) {
- var hozAdjust = 0,
- scrollWidth = this.table.columnManager.getElement().scrollWidth - this.table.element.clientWidth;
-
- if (this.botInitialized) {
- this.botRow.getElement().style.marginLeft = -left + "px";
- }
-};
-
-ColumnCalcs.prototype.recalc = function (rows) {
- var data, row;
-
- if (this.topInitialized || this.botInitialized) {
- data = this.rowsToData(rows);
-
- if (this.topInitialized) {
- if (this.topRow) {
- this.topRow.deleteCells();
- }
-
- row = this.generateRow("top", this.rowsToData(rows));
- this.topRow = row;
- while (this.topElement.firstChild) {
- this.topElement.removeChild(this.topElement.firstChild);
- }this.topElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- if (this.botInitialized) {
- if (this.botRow) {
- this.botRow.deleteCells();
- }
-
- row = this.generateRow("bottom", this.rowsToData(rows));
- this.botRow = row;
- while (this.botElement.firstChild) {
- this.botElement.removeChild(this.botElement.firstChild);
- }this.botElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- this.table.rowManager.adjustTableSize();
-
- //set resizable handles
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
- }
-};
-
-ColumnCalcs.prototype.recalcRowGroup = function (row) {
- this.recalcGroup(this.table.modules.groupRows.getRowGroup(row));
-};
-
-ColumnCalcs.prototype.recalcAll = function () {
- var _this = this;
-
- if (this.topCalcs.length || this.botCalcs.length) {
- if (this.table.options.columnCalcs !== "group") {
- this.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.groupBy && this.table.options.columnCalcs !== "table") {
-
- var groups = table.modules.groupRows.getChildGroups();
-
- groups.forEach(function (group) {
- _this.recalcGroup(group);
- });
- }
- }
-};
-
-ColumnCalcs.prototype.recalcGroup = function (group) {
- var data, rowData;
-
- if (group) {
- if (group.calcs) {
- if (group.calcs.bottom) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("bottom", data);
-
- group.calcs.bottom.updateData(rowData);
- group.calcs.bottom.reinitialize();
- }
-
- if (group.calcs.top) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("top", data);
-
- group.calcs.top.updateData(rowData);
- group.calcs.top.reinitialize();
- }
- }
- }
-};
-
-//generate top stats row
-ColumnCalcs.prototype.generateTopRow = function (rows) {
- return this.generateRow("top", this.rowsToData(rows));
-};
-//generate bottom stats row
-ColumnCalcs.prototype.generateBottomRow = function (rows) {
- return this.generateRow("bottom", this.rowsToData(rows));
-};
-
-ColumnCalcs.prototype.rowsToData = function (rows) {
- var _this2 = this;
-
- var data = [];
-
- rows.forEach(function (row) {
- data.push(row.getData());
-
- if (_this2.table.options.dataTree && _this2.table.options.dataTreeChildColumnCalcs) {
- if (row.modules.dataTree.open) {
- var children = _this2.rowsToData(_this2.table.modules.dataTree.getFilteredTreeChildren(row));
- data = data.concat(children);
- }
- }
- });
-
- return data;
-};
-
-//generate stats row
-ColumnCalcs.prototype.generateRow = function (pos, data) {
- var self = this,
- rowData = this.generateRowData(pos, data),
- row;
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.disable();
- }
-
- row = new Row(rowData, this, "calc");
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.enable();
- }
-
- row.getElement().classList.add("tabulator-calcs", "tabulator-calcs-" + pos);
-
- row.generateCells = function () {
-
- var cells = [];
-
- self.table.columnManager.columnsByIndex.forEach(function (column) {
-
- //set field name of mock column
- self.genColumn.setField(column.getField());
- self.genColumn.hozAlign = column.hozAlign;
-
- if (column.definition[pos + "CalcFormatter"] && self.table.modExists("format")) {
-
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter(column.definition[pos + "CalcFormatter"]),
- params: column.definition[pos + "CalcFormatterParams"]
- };
- } else {
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter("plaintext"),
- params: {}
- };
- }
-
- //ensure css class defintion is replicated to calculation cell
- self.genColumn.definition.cssClass = column.definition.cssClass;
-
- //generate cell and assign to correct column
- var cell = new Cell(self.genColumn, row);
- cell.column = column;
- cell.setWidth();
-
- column.cells.push(cell);
- cells.push(cell);
-
- if (!column.visible) {
- cell.hide();
- }
- });
-
- this.cells = cells;
- };
-
- return row;
-};
-
-//generate stats row
-ColumnCalcs.prototype.generateRowData = function (pos, data) {
- var rowData = {},
- calcs = pos == "top" ? this.topCalcs : this.botCalcs,
- type = pos == "top" ? "topCalc" : "botCalc",
- params,
- paramKey;
-
- calcs.forEach(function (column) {
- var values = [];
-
- if (column.modules.columnCalcs && column.modules.columnCalcs[type]) {
- data.forEach(function (item) {
- values.push(column.getFieldValue(item));
- });
-
- paramKey = type + "Params";
- params = typeof column.modules.columnCalcs[paramKey] === "function" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey];
-
- column.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params));
- }
- });
-
- return rowData;
-};
-
-ColumnCalcs.prototype.hasTopCalcs = function () {
- return !!this.topCalcs.length;
-};
-
-ColumnCalcs.prototype.hasBottomCalcs = function () {
- return !!this.botCalcs.length;
-};
-
-//handle table redraw
-ColumnCalcs.prototype.redraw = function () {
- if (this.topRow) {
- this.topRow.normalizeHeight(true);
- }
- if (this.botRow) {
- this.botRow.normalizeHeight(true);
- }
-};
-
-//return the calculated
-ColumnCalcs.prototype.getResults = function () {
- var self = this,
- results = {},
- groups;
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- groups = this.table.modules.groupRows.getGroups(true);
-
- groups.forEach(function (group) {
- results[group.getKey()] = self.getGroupResults(group);
- });
- } else {
- results = {
- top: this.topRow ? this.topRow.getData() : {},
- bottom: this.botRow ? this.botRow.getData() : {}
- };
- }
-
- return results;
-};
-
-//get results from a group
-ColumnCalcs.prototype.getGroupResults = function (group) {
- var self = this,
- groupObj = group._getSelf(),
- subGroups = group.getSubGroups(),
- subGroupResults = {},
- results = {};
-
- subGroups.forEach(function (subgroup) {
- subGroupResults[subgroup.getKey()] = self.getGroupResults(subgroup);
- });
-
- results = {
- top: groupObj.calcs.top ? groupObj.calcs.top.getData() : {},
- bottom: groupObj.calcs.bottom ? groupObj.calcs.bottom.getData() : {},
- groups: subGroupResults
- };
-
- return results;
-};
-
-//default calculations
-ColumnCalcs.prototype.calculations = {
- "avg": function avg(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : 2;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- value = Number(value);
- return sum + value;
- });
-
- output = output / values.length;
-
- output = precision !== false ? output.toFixed(precision) : output;
- }
-
- return parseFloat(output).toString();
- },
- "max": function max(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value > output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "min": function min(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value < output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "sum": function sum(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- if (values.length) {
- values.forEach(function (value) {
- value = Number(value);
-
- output += !isNaN(value) ? Number(value) : 0;
- });
- }
-
- return precision !== false ? output.toFixed(precision) : output;
- },
- "concat": function concat(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- return String(sum) + String(value);
- });
- }
-
- return output;
- },
- "count": function count(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- values.forEach(function (value) {
- if (value) {
- output++;
- }
- });
- }
-
- return output;
- }
-};
-
-Tabulator.prototype.registerModule("columnCalcs", ColumnCalcs);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ColumnCalcs=function(t){this.table=t,this.topCalcs=[],this.botCalcs=[],this.genColumn=!1,this.topElement=this.createElement(),this.botElement=this.createElement(),this.topRow=!1,this.botRow=!1,this.topInitialized=!1,this.botInitialized=!1,this.initialize()};ColumnCalcs.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-calcs-holder"),t},ColumnCalcs.prototype.initialize=function(){this.genColumn=new Column({field:"value"},this)},ColumnCalcs.prototype.registerColumnField=function(){},ColumnCalcs.prototype.initializeColumn=function(t){var o=t.definition,e={topCalcParams:o.topCalcParams||{},botCalcParams:o.bottomCalcParams||{}};if(o.topCalc){switch(_typeof(o.topCalc)){case"string":this.calculations[o.topCalc]?e.topCalc=this.calculations[o.topCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",o.topCalc);break;case"function":e.topCalc=o.topCalc}e.topCalc&&(t.modules.columnCalcs=e,this.topCalcs.push(t),"group"!=this.table.options.columnCalcs&&this.initializeTopRow())}if(o.bottomCalc){switch(_typeof(o.bottomCalc)){case"string":this.calculations[o.bottomCalc]?e.botCalc=this.calculations[o.bottomCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",o.bottomCalc);break;case"function":e.botCalc=o.bottomCalc}e.botCalc&&(t.modules.columnCalcs=e,this.botCalcs.push(t),"group"!=this.table.options.columnCalcs&&this.initializeBottomRow())}},ColumnCalcs.prototype.removeCalcs=function(){var t=!1;this.topInitialized&&(this.topInitialized=!1,this.topElement.parentNode.removeChild(this.topElement),t=!0),this.botInitialized&&(this.botInitialized=!1,this.table.footerManager.remove(this.botElement),t=!0),t&&this.table.rowManager.adjustTableSize()},ColumnCalcs.prototype.initializeTopRow=function(){this.topInitialized||(this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling),this.topInitialized=!0)},ColumnCalcs.prototype.initializeBottomRow=function(){this.botInitialized||(this.table.footerManager.prepend(this.botElement),this.botInitialized=!0)},ColumnCalcs.prototype.scrollHorizontal=function(t){this.table.columnManager.getElement().scrollWidth,this.table.element.clientWidth;this.botInitialized&&(this.botRow.getElement().style.marginLeft=-t+"px")},ColumnCalcs.prototype.recalc=function(t){var o;if(this.topInitialized||this.botInitialized){if(this.rowsToData(t),this.topInitialized){for(this.topRow&&this.topRow.deleteCells(),o=this.generateRow("top",this.rowsToData(t)),this.topRow=o;this.topElement.firstChild;)this.topElement.removeChild(this.topElement.firstChild);this.topElement.appendChild(o.getElement()),o.initialize(!0)}if(this.botInitialized){for(this.botRow&&this.botRow.deleteCells(),o=this.generateRow("bottom",this.rowsToData(t)),this.botRow=o;this.botElement.firstChild;)this.botElement.removeChild(this.botElement.firstChild);this.botElement.appendChild(o.getElement()),o.initialize(!0)}this.table.rowManager.adjustTableSize(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()}},ColumnCalcs.prototype.recalcRowGroup=function(t){this.recalcGroup(this.table.modules.groupRows.getRowGroup(t))},ColumnCalcs.prototype.recalcAll=function(){var t=this;if((this.topCalcs.length||this.botCalcs.length)&&("group"!==this.table.options.columnCalcs&&this.recalc(this.table.rowManager.activeRows),this.table.options.groupBy&&"table"!==this.table.options.columnCalcs)){table.modules.groupRows.getChildGroups().forEach(function(o){t.recalcGroup(o)})}},ColumnCalcs.prototype.recalcGroup=function(t){var o,e;t&&t.calcs&&(t.calcs.bottom&&(o=this.rowsToData(t.rows),e=this.generateRowData("bottom",o),t.calcs.bottom.updateData(e),t.calcs.bottom.reinitialize()),t.calcs.top&&(o=this.rowsToData(t.rows),e=this.generateRowData("top",o),t.calcs.top.updateData(e),t.calcs.top.reinitialize()))},ColumnCalcs.prototype.generateTopRow=function(t){return this.generateRow("top",this.rowsToData(t))},ColumnCalcs.prototype.generateBottomRow=function(t){return this.generateRow("bottom",this.rowsToData(t))},ColumnCalcs.prototype.rowsToData=function(t){var o=this,e=[];return t.forEach(function(t){if(e.push(t.getData()),o.table.options.dataTree&&o.table.options.dataTreeChildColumnCalcs&&t.modules.dataTree.open){var l=o.rowsToData(o.table.modules.dataTree.getFilteredTreeChildren(t));e=e.concat(l)}}),e},ColumnCalcs.prototype.generateRow=function(t,o){var e,l=this,i=this.generateRowData(t,o);return l.table.modExists("mutator")&&l.table.modules.mutator.disable(),e=new Row(i,this,"calc"),l.table.modExists("mutator")&&l.table.modules.mutator.enable(),e.getElement().classList.add("tabulator-calcs","tabulator-calcs-"+t),e.generateCells=function(){var o=[];l.table.columnManager.columnsByIndex.forEach(function(i){l.genColumn.setField(i.getField()),l.genColumn.hozAlign=i.hozAlign,i.definition[t+"CalcFormatter"]&&l.table.modExists("format")?l.genColumn.modules.format={formatter:l.table.modules.format.getFormatter(i.definition[t+"CalcFormatter"]),params:i.definition[t+"CalcFormatterParams"]}:l.genColumn.modules.format={formatter:l.table.modules.format.getFormatter("plaintext"),params:{}},l.genColumn.definition.cssClass=i.definition.cssClass;var a=new Cell(l.genColumn,e);a.column=i,a.setWidth(),i.cells.push(a),o.push(a),i.visible||a.hide()}),this.cells=o},e},ColumnCalcs.prototype.generateRowData=function(t,o){var e,l,i={},a="top"==t?this.topCalcs:this.botCalcs,n="top"==t?"topCalc":"botCalc";return a.forEach(function(t){var a=[];t.modules.columnCalcs&&t.modules.columnCalcs[n]&&(o.forEach(function(o){a.push(t.getFieldValue(o))}),l=n+"Params",e="function"==typeof t.modules.columnCalcs[l]?t.modules.columnCalcs[l](a,o):t.modules.columnCalcs[l],t.setFieldValue(i,t.modules.columnCalcs[n](a,o,e)))}),i},ColumnCalcs.prototype.hasTopCalcs=function(){return!!this.topCalcs.length},ColumnCalcs.prototype.hasBottomCalcs=function(){return!!this.botCalcs.length},ColumnCalcs.prototype.redraw=function(){this.topRow&&this.topRow.normalizeHeight(!0),this.botRow&&this.botRow.normalizeHeight(!0)},ColumnCalcs.prototype.getResults=function(){var t,o=this,e={};return this.table.options.groupBy&&this.table.modExists("groupRows")?(t=this.table.modules.groupRows.getGroups(!0),t.forEach(function(t){e[t.getKey()]=o.getGroupResults(t)})):e={top:this.topRow?this.topRow.getData():{},bottom:this.botRow?this.botRow.getData():{}},e},ColumnCalcs.prototype.getGroupResults=function(t){var o=this,e=t._getSelf(),l=t.getSubGroups(),i={};return l.forEach(function(t){i[t.getKey()]=o.getGroupResults(t)}),{top:e.calcs.top?e.calcs.top.getData():{},bottom:e.calcs.bottom?e.calcs.bottom.getData():{},groups:i}},ColumnCalcs.prototype.calculations={avg:function(t,o,e){var l=0,i=void 0!==e.precision?e.precision:2;return t.length&&(l=t.reduce(function(t,o){return o=Number(o),t+o}),l/=t.length,l=!1!==i?l.toFixed(i):l),parseFloat(l).toString()},max:function(t,o,e){var l=null,i=void 0!==e.precision&&e.precision;return t.forEach(function(t){((t=Number(t))>l||null===l)&&(l=t)}),null!==l?!1!==i?l.toFixed(i):l:""},min:function(t,o,e){var l=null,i=void 0!==e.precision&&e.precision;return t.forEach(function(t){((t=Number(t))<l||null===l)&&(l=t)}),null!==l?!1!==i?l.toFixed(i):l:""},sum:function(t,o,e){var l=0,i=void 0!==e.precision&&e.precision;return t.length&&t.forEach(function(t){t=Number(t),l+=isNaN(t)?0:Number(t)}),!1!==i?l.toFixed(i):l},concat:function(t,o,e){var l=0;return t.length&&(l=t.reduce(function(t,o){return String(t)+String(o)})),l},count:function(t,o,e){var l=0;return t.length&&t.forEach(function(t){t&&l++}),l}},Tabulator.prototype.registerModule("columnCalcs",ColumnCalcs);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Clipboard = function Clipboard(table) {
- this.table = table;
- this.mode = true;
-
- this.pasteParser = function () {};
- this.pasteAction = function () {};
- this.customSelection = false;
- this.rowRange = false;
- this.blocked = true; //block copy actions not originating from this command
-};
-
-Clipboard.prototype.initialize = function () {
- var _this = this;
-
- this.mode = this.table.options.clipboard;
-
- this.rowRange = this.table.options.clipboardCopyRowRange;
-
- if (this.mode === true || this.mode === "copy") {
- this.table.element.addEventListener("copy", function (e) {
- var plain, html;
-
- if (!_this.blocked) {
- e.preventDefault();
-
- if (_this.customSelection) {
- plain = _this.customSelection;
-
- if (_this.table.options.clipboardCopyFormatter) {
- plain = _this.table.options.clipboardCopyFormatter("plain", plain);
- }
- } else {
- html = _this.table.modules.export.getHtml(_this.rowRange, _this.table.options.clipboardCopyStyled, _this.table.options.clipboardCopyConfig, "clipboard");
- plain = html ? _this.generatePlainContent(html) : "";
-
- if (_this.table.options.clipboardCopyFormatter) {
- plain = _this.table.options.clipboardCopyFormatter("plain", plain);
- html = _this.table.options.clipboardCopyFormatter("html", html);
- }
- }
-
- if (window.clipboardData && window.clipboardData.setData) {
- window.clipboardData.setData('Text', plain);
- } else if (e.clipboardData && e.clipboardData.setData) {
- e.clipboardData.setData('text/plain', plain);
- if (html) {
- e.clipboardData.setData('text/html', html);
- }
- } else if (e.originalEvent && e.originalEvent.clipboardData.setData) {
- e.originalEvent.clipboardData.setData('text/plain', plain);
- if (html) {
- e.originalEvent.clipboardData.setData('text/html', html);
- }
- }
-
- _this.table.options.clipboardCopied.call(_this.table, plain, html);
-
- _this.reset();
- }
- });
- }
-
- if (this.mode === true || this.mode === "paste") {
- this.table.element.addEventListener("paste", function (e) {
- _this.paste(e);
- });
- }
-
- this.setPasteParser(this.table.options.clipboardPasteParser);
- this.setPasteAction(this.table.options.clipboardPasteAction);
-};
-
-Clipboard.prototype.reset = function () {
- this.blocked = false;
- this.originalSelectionText = "";
-};
-
-Clipboard.prototype.generatePlainContent = function (html) {
- var output = [];
-
- var holder = document.createElement("div");
- holder.innerHTML = html;
-
- var table = holder.getElementsByTagName("table")[0];
- var rows = Array.prototype.slice.call(table.getElementsByTagName("tr"));
-
- rows.forEach(function (row) {
- var rowData = [];
-
- var headers = Array.prototype.slice.call(row.getElementsByTagName("th"));
- var cells = Array.prototype.slice.call(row.getElementsByTagName("td"));
-
- cells = cells.concat(headers);
-
- cells.forEach(function (cell) {
- var val = cell.innerHTML;
-
- val = val == " " ? "" : val;
-
- rowData.push(val);
- });
-
- output.push(rowData.join("\t"));
- });
-
- return output.join("\n");
-};
-
-Clipboard.prototype.copy = function (range, internal) {
- var range, sel, textRange;
- this.blocked = false;
- this.customSelection = false;
-
- if (this.mode === true || this.mode === "copy") {
-
- this.rowRange = range || this.table.options.clipboardCopyRowRange;
-
- if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
- range = document.createRange();
- range.selectNodeContents(this.table.element);
- sel = window.getSelection();
-
- if (sel.toString() && internal) {
- this.customSelection = sel.toString();
- }
-
- sel.removeAllRanges();
- sel.addRange(range);
- } else if (typeof document.selection != "undefined" && typeof document.body.createTextRange != "undefined") {
- textRange = document.body.createTextRange();
- textRange.moveToElementText(this.table.element);
- textRange.select();
- }
-
- document.execCommand('copy');
-
- if (sel) {
- sel.removeAllRanges();
- }
- }
-};
-
-//PASTE EVENT HANDLING
-
-Clipboard.prototype.setPasteAction = function (action) {
-
- switch (typeof action === "undefined" ? "undefined" : _typeof(action)) {
- case "string":
- this.pasteAction = this.pasteActions[action];
-
- if (!this.pasteAction) {
- console.warn("Clipboard Error - No such paste action found:", action);
- }
- break;
-
- case "function":
- this.pasteAction = action;
- break;
- }
-};
-
-Clipboard.prototype.setPasteParser = function (parser) {
- switch (typeof parser === "undefined" ? "undefined" : _typeof(parser)) {
- case "string":
- this.pasteParser = this.pasteParsers[parser];
-
- if (!this.pasteParser) {
- console.warn("Clipboard Error - No such paste parser found:", parser);
- }
- break;
-
- case "function":
- this.pasteParser = parser;
- break;
- }
-};
-
-Clipboard.prototype.paste = function (e) {
- var data, rowData, rows;
-
- if (this.checkPaseOrigin(e)) {
-
- data = this.getPasteData(e);
-
- rowData = this.pasteParser.call(this, data);
-
- if (rowData) {
- e.preventDefault();
-
- if (this.table.modExists("mutator")) {
- rowData = this.mutateData(rowData);
- }
-
- rows = this.pasteAction.call(this, rowData);
- this.table.options.clipboardPasted.call(this.table, data, rowData, rows);
- } else {
- this.table.options.clipboardPasteError.call(this.table, data);
- }
- }
-};
-
-Clipboard.prototype.mutateData = function (data) {
- var self = this,
- output = [];
-
- if (Array.isArray(data)) {
- data.forEach(function (row) {
- output.push(self.table.modules.mutator.transformRow(row, "clipboard"));
- });
- } else {
- output = data;
- }
-
- return output;
-};
-
-Clipboard.prototype.checkPaseOrigin = function (e) {
- var valid = true;
-
- if (e.target.tagName != "DIV" || this.table.modules.edit.currentCell) {
- valid = false;
- }
-
- return valid;
-};
-
-Clipboard.prototype.getPasteData = function (e) {
- var data;
-
- if (window.clipboardData && window.clipboardData.getData) {
- data = window.clipboardData.getData('Text');
- } else if (e.clipboardData && e.clipboardData.getData) {
- data = e.clipboardData.getData('text/plain');
- } else if (e.originalEvent && e.originalEvent.clipboardData.getData) {
- data = e.originalEvent.clipboardData.getData('text/plain');
- }
-
- return data;
-};
-
-Clipboard.prototype.pasteParsers = {
- table: function table(clipboard) {
- var data = [],
- success = false,
- headerFindSuccess = true,
- columns = this.table.columnManager.columns,
- columnMap = [],
- rows = [];
-
- //get data from clipboard into array of columns and rows.
- clipboard = clipboard.split("\n");
-
- clipboard.forEach(function (row) {
- data.push(row.split("\t"));
- });
-
- if (data.length && !(data.length === 1 && data[0].length < 2)) {
- success = true;
-
- //check if headers are present by title
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.definition.title && value.trim() && column.definition.title.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- //check if column headers are present by field
- if (!headerFindSuccess) {
- headerFindSuccess = true;
- columnMap = [];
-
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.field && value.trim() && column.field.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- if (!headerFindSuccess) {
- columnMap = this.table.columnManager.columnsByIndex;
- }
- }
-
- //remove header row if found
- if (headerFindSuccess) {
- data.shift();
- }
-
- data.forEach(function (item) {
- var row = {};
-
- item.forEach(function (value, i) {
- if (columnMap[i]) {
- row[columnMap[i].field] = value;
- }
- });
-
- rows.push(row);
- });
-
- return rows;
- } else {
- return false;
- }
- }
-};
-
-Clipboard.prototype.pasteActions = {
- replace: function replace(rows) {
- return this.table.setData(rows);
- },
- update: function update(rows) {
- return this.table.updateOrAddData(rows);
- },
- insert: function insert(rows) {
- return this.table.addData(rows);
- }
-};
-
-Tabulator.prototype.registerModule("clipboard", Clipboard);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Clipboard=function(t){this.table=t,this.mode=!0,this.pasteParser=function(){},this.pasteAction=function(){},this.customSelection=!1,this.rowRange=!1,this.blocked=!0};Clipboard.prototype.initialize=function(){var t=this;this.mode=this.table.options.clipboard,this.rowRange=this.table.options.clipboardCopyRowRange,!0!==this.mode&&"copy"!==this.mode||this.table.element.addEventListener("copy",function(e){var a,o;t.blocked||(e.preventDefault(),t.customSelection?(a=t.customSelection,t.table.options.clipboardCopyFormatter&&(a=t.table.options.clipboardCopyFormatter("plain",a))):(o=t.table.modules.export.getHtml(t.rowRange,t.table.options.clipboardCopyStyled,t.table.options.clipboardCopyConfig,"clipboard"),a=o?t.generatePlainContent(o):"",t.table.options.clipboardCopyFormatter&&(a=t.table.options.clipboardCopyFormatter("plain",a),o=t.table.options.clipboardCopyFormatter("html",o))),window.clipboardData&&window.clipboardData.setData?window.clipboardData.setData("Text",a):e.clipboardData&&e.clipboardData.setData?(e.clipboardData.setData("text/plain",a),o&&e.clipboardData.setData("text/html",o)):e.originalEvent&&e.originalEvent.clipboardData.setData&&(e.originalEvent.clipboardData.setData("text/plain",a),o&&e.originalEvent.clipboardData.setData("text/html",o)),t.table.options.clipboardCopied.call(t.table,a,o),t.reset())}),!0!==this.mode&&"paste"!==this.mode||this.table.element.addEventListener("paste",function(e){t.paste(e)}),this.setPasteParser(this.table.options.clipboardPasteParser),this.setPasteAction(this.table.options.clipboardPasteAction)},Clipboard.prototype.reset=function(){this.blocked=!1,this.originalSelectionText=""},Clipboard.prototype.generatePlainContent=function(t){var e=[],a=document.createElement("div");a.innerHTML=t;var o=a.getElementsByTagName("table")[0];return Array.prototype.slice.call(o.getElementsByTagName("tr")).forEach(function(t){var a=[],o=Array.prototype.slice.call(t.getElementsByTagName("th")),i=Array.prototype.slice.call(t.getElementsByTagName("td"));i=i.concat(o),i.forEach(function(t){var e=t.innerHTML;e=" "==e?"":e,a.push(e)}),e.push(a.join("\t"))}),e.join("\n")},Clipboard.prototype.copy=function(t,e){var t,a,o;this.blocked=!1,this.customSelection=!1,!0!==this.mode&&"copy"!==this.mode||(this.rowRange=t||this.table.options.clipboardCopyRowRange,void 0!==window.getSelection&&void 0!==document.createRange?(t=document.createRange(),t.selectNodeContents(this.table.element),a=window.getSelection(),a.toString()&&e&&(this.customSelection=a.toString()),a.removeAllRanges(),a.addRange(t)):void 0!==document.selection&&void 0!==document.body.createTextRange&&(o=document.body.createTextRange(),o.moveToElementText(this.table.element),o.select()),document.execCommand("copy"),a&&a.removeAllRanges())},Clipboard.prototype.setPasteAction=function(t){switch(void 0===t?"undefined":_typeof(t)){case"string":this.pasteAction=this.pasteActions[t],this.pasteAction||console.warn("Clipboard Error - No such paste action found:",t);break;case"function":this.pasteAction=t}},Clipboard.prototype.setPasteParser=function(t){switch(void 0===t?"undefined":_typeof(t)){case"string":this.pasteParser=this.pasteParsers[t],this.pasteParser||console.warn("Clipboard Error - No such paste parser found:",t);break;case"function":this.pasteParser=t}},Clipboard.prototype.paste=function(t){var e,a,o;this.checkPaseOrigin(t)&&(e=this.getPasteData(t),a=this.pasteParser.call(this,e),a?(t.preventDefault(),this.table.modExists("mutator")&&(a=this.mutateData(a)),o=this.pasteAction.call(this,a),this.table.options.clipboardPasted.call(this.table,e,a,o)):this.table.options.clipboardPasteError.call(this.table,e))},Clipboard.prototype.mutateData=function(t){var e=this,a=[];return Array.isArray(t)?t.forEach(function(t){a.push(e.table.modules.mutator.transformRow(t,"clipboard"))}):a=t,a},Clipboard.prototype.checkPaseOrigin=function(t){var e=!0;return("DIV"!=t.target.tagName||this.table.modules.edit.currentCell)&&(e=!1),e},Clipboard.prototype.getPasteData=function(t){var e;return window.clipboardData&&window.clipboardData.getData?e=window.clipboardData.getData("Text"):t.clipboardData&&t.clipboardData.getData?e=t.clipboardData.getData("text/plain"):t.originalEvent&&t.originalEvent.clipboardData.getData&&(e=t.originalEvent.clipboardData.getData("text/plain")),e},Clipboard.prototype.pasteParsers={table:function(t){var e=[],a=!0,o=this.table.columnManager.columns,i=[],n=[];return t=t.split("\n"),t.forEach(function(t){e.push(t.split("\t"))}),!(!e.length||1===e.length&&e[0].length<2)&&(!0,e[0].forEach(function(t){var e=o.find(function(e){return t&&e.definition.title&&t.trim()&&e.definition.title.trim()===t.trim()});e?i.push(e):a=!1}),a||(a=!0,i=[],e[0].forEach(function(t){var e=o.find(function(e){return t&&e.field&&t.trim()&&e.field.trim()===t.trim()});e?i.push(e):a=!1}),a||(i=this.table.columnManager.columnsByIndex)),a&&e.shift(),e.forEach(function(t){var e={};t.forEach(function(t,a){i[a]&&(e[i[a].field]=t)}),n.push(e)}),n)}},Clipboard.prototype.pasteActions={replace:function(t){return this.table.setData(t)},update:function(t){return this.table.updateOrAddData(t)},insert:function(t){return this.table.addData(t)}},Tabulator.prototype.registerModule("clipboard",Clipboard);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var DataTree = function DataTree(table) {
- this.table = table;
- this.indent = 10;
- this.field = "";
- this.collapseEl = null;
- this.expandEl = null;
- this.branchEl = null;
- this.elementField = false;
-
- this.startOpen = function () {};
-
- this.displayIndex = 0;
-};
-
-DataTree.prototype.initialize = function () {
- var dummyEl = null,
- firstCol = this.table.columnManager.getFirstVisibileColumn(),
- options = this.table.options;
-
- this.field = options.dataTreeChildField;
- this.indent = options.dataTreeChildIndent;
- this.elementField = options.dataTreeElementColumn || (firstCol ? firstCol.field : false);
-
- if (options.dataTreeBranchElement) {
-
- if (options.dataTreeBranchElement === true) {
- this.branchEl = document.createElement("div");
- this.branchEl.classList.add("tabulator-data-tree-branch");
- } else {
- if (typeof options.dataTreeBranchElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeBranchElement;
- this.branchEl = dummyEl.firstChild;
- } else {
- this.branchEl = options.dataTreeBranchElement;
- }
- }
- }
-
- if (options.dataTreeCollapseElement) {
- if (typeof options.dataTreeCollapseElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeCollapseElement;
- this.collapseEl = dummyEl.firstChild;
- } else {
- this.collapseEl = options.dataTreeCollapseElement;
- }
- } else {
- this.collapseEl = document.createElement("div");
- this.collapseEl.classList.add("tabulator-data-tree-control");
- this.collapseEl.tabIndex = 0;
- this.collapseEl.innerHTML = "<div class='tabulator-data-tree-control-collapse'></div>";
- }
-
- if (options.dataTreeExpandElement) {
- if (typeof options.dataTreeExpandElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeExpandElement;
- this.expandEl = dummyEl.firstChild;
- } else {
- this.expandEl = options.dataTreeExpandElement;
- }
- } else {
- this.expandEl = document.createElement("div");
- this.expandEl.classList.add("tabulator-data-tree-control");
- this.expandEl.tabIndex = 0;
- this.expandEl.innerHTML = "<div class='tabulator-data-tree-control-expand'></div>";
- }
-
- switch (_typeof(options.dataTreeStartExpanded)) {
- case "boolean":
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded;
- };
- break;
-
- case "function":
- this.startOpen = options.dataTreeStartExpanded;
- break;
-
- default:
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded[index];
- };
- break;
- }
-};
-
-DataTree.prototype.initializeRow = function (row) {
- var childArray = row.getData()[this.field];
- var isArray = Array.isArray(childArray);
-
- var children = isArray || !isArray && (typeof childArray === "undefined" ? "undefined" : _typeof(childArray)) === "object" && childArray !== null;
-
- if (!children && row.modules.dataTree && row.modules.dataTree.branchEl) {
- row.modules.dataTree.branchEl.parentNode.removeChild(row.modules.dataTree.branchEl);
- }
-
- if (!children && row.modules.dataTree && row.modules.dataTree.controlEl) {
- row.modules.dataTree.controlEl.parentNode.removeChild(row.modules.dataTree.controlEl);
- }
-
- row.modules.dataTree = {
- index: row.modules.dataTree ? row.modules.dataTree.index : 0,
- open: children ? row.modules.dataTree ? row.modules.dataTree.open : this.startOpen(row.getComponent(), 0) : false,
- controlEl: row.modules.dataTree && children ? row.modules.dataTree.controlEl : false,
- branchEl: row.modules.dataTree && children ? row.modules.dataTree.branchEl : false,
- parent: row.modules.dataTree ? row.modules.dataTree.parent : false,
- children: children
- };
-};
-
-DataTree.prototype.layoutRow = function (row) {
- var cell = this.elementField ? row.getCell(this.elementField) : row.getCells()[0],
- el = cell.getElement(),
- config = row.modules.dataTree;
-
- if (config.branchEl) {
- if (config.branchEl.parentNode) {
- config.branchEl.parentNode.removeChild(config.branchEl);
- }
- config.branchEl = false;
- }
-
- if (config.controlEl) {
- if (config.controlEl.parentNode) {
- config.controlEl.parentNode.removeChild(config.controlEl);
- }
- config.controlEl = false;
- }
-
- this.generateControlElement(row, el);
-
- row.element.classList.add("tabulator-tree-level-" + config.index);
-
- if (config.index) {
- if (this.branchEl) {
- config.branchEl = this.branchEl.cloneNode(true);
- el.insertBefore(config.branchEl, el.firstChild);
- config.branchEl.style.marginLeft = (config.branchEl.offsetWidth + config.branchEl.style.marginRight) * (config.index - 1) + config.index * this.indent + "px";
- } else {
- el.style.paddingLeft = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-left')) + config.index * this.indent + "px";
- }
- }
-};
-
-DataTree.prototype.generateControlElement = function (row, el) {
- var _this = this;
-
- var config = row.modules.dataTree,
- el = el || row.getCells()[0].getElement(),
- oldControl = config.controlEl;
-
- if (config.children !== false) {
-
- if (config.open) {
- config.controlEl = this.collapseEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this.collapseRow(row);
- });
- } else {
- config.controlEl = this.expandEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this.expandRow(row);
- });
- }
-
- config.controlEl.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
-
- if (oldControl && oldControl.parentNode === el) {
- oldControl.parentNode.replaceChild(config.controlEl, oldControl);
- } else {
- el.insertBefore(config.controlEl, el.firstChild);
- }
- }
-};
-
-DataTree.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-DataTree.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-DataTree.prototype.getRows = function (rows) {
- var _this2 = this;
-
- var output = [];
-
- rows.forEach(function (row, i) {
- var config, children;
-
- output.push(row);
-
- if (row instanceof Row) {
-
- config = row.modules.dataTree.children;
-
- if (!config.index && config.children !== false) {
- children = _this2.getChildren(row);
-
- children.forEach(function (child) {
- output.push(child);
- });
- }
- }
- });
-
- return output;
-};
-
-DataTree.prototype.getChildren = function (row) {
- var _this3 = this;
-
- var config = row.modules.dataTree,
- children = [],
- output = [];
-
- if (config.children !== false && config.open) {
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- if (this.table.modExists("sort")) {
- this.table.modules.sort.sort(children);
- }
-
- children.forEach(function (child) {
- output.push(child);
-
- var subChildren = _this3.getChildren(child);
-
- subChildren.forEach(function (sub) {
- output.push(sub);
- });
- });
- }
-
- return output;
-};
-
-DataTree.prototype.generateChildren = function (row) {
- var _this4 = this;
-
- var children = [];
-
- var childArray = row.getData()[this.field];
-
- if (!Array.isArray(childArray)) {
- childArray = [childArray];
- }
-
- childArray.forEach(function (childData) {
- var childRow = new Row(childData || {}, _this4.table.rowManager);
- childRow.modules.dataTree.index = row.modules.dataTree.index + 1;
- childRow.modules.dataTree.parent = row;
- if (childRow.modules.dataTree.children) {
- childRow.modules.dataTree.open = _this4.startOpen(childRow.getComponent(), childRow.modules.dataTree.index);
- }
- children.push(childRow);
- });
-
- return children;
-};
-
-DataTree.prototype.expandRow = function (row, silent) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = true;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowExpanded(row.getComponent(), row.modules.dataTree.index);
- }
-};
-
-DataTree.prototype.collapseRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = false;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowCollapsed(row.getComponent(), row.modules.dataTree.index);
- }
-};
-
-DataTree.prototype.toggleRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- if (config.open) {
- this.collapseRow(row);
- } else {
- this.expandRow(row);
- }
- }
-};
-
-DataTree.prototype.getTreeParent = function (row) {
- return row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false;
-};
-
-DataTree.prototype.getFilteredTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [],
- children;
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow);
- }
- });
- }
-
- return output;
-};
-
-DataTree.prototype.getTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [];
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- config.children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow.getComponent());
- }
- });
- }
-
- return output;
-};
-
-DataTree.prototype.checkForRestyle = function (cell) {
- if (!cell.row.cells.indexOf(cell)) {
- cell.row.reinitialize();
- }
-};
-
-DataTree.prototype.getChildField = function () {
- return this.field;
-};
-
-DataTree.prototype.redrawNeeded = function (data) {
- return (this.field ? typeof data[this.field] !== "undefined" : false) || (this.elementField ? typeof data[this.elementField] !== "undefined" : false);
-};
-
-Tabulator.prototype.registerModule("dataTree", DataTree);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},DataTree=function(e){this.table=e,this.indent=10,this.field="",this.collapseEl=null,this.expandEl=null,this.branchEl=null,this.elementField=!1,this.startOpen=function(){},this.displayIndex=0};DataTree.prototype.initialize=function(){var e=null,t=this.table.columnManager.getFirstVisibileColumn(),a=this.table.options;switch(this.field=a.dataTreeChildField,this.indent=a.dataTreeChildIndent,this.elementField=a.dataTreeElementColumn||!!t&&t.field,a.dataTreeBranchElement&&(!0===a.dataTreeBranchElement?(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch")):"string"==typeof a.dataTreeBranchElement?(e=document.createElement("div"),e.innerHTML=a.dataTreeBranchElement,this.branchEl=e.firstChild):this.branchEl=a.dataTreeBranchElement),a.dataTreeCollapseElement?"string"==typeof a.dataTreeCollapseElement?(e=document.createElement("div"),e.innerHTML=a.dataTreeCollapseElement,this.collapseEl=e.firstChild):this.collapseEl=a.dataTreeCollapseElement:(this.collapseEl=document.createElement("div"),this.collapseEl.classList.add("tabulator-data-tree-control"),this.collapseEl.tabIndex=0,this.collapseEl.innerHTML="<div class='tabulator-data-tree-control-collapse'></div>"),a.dataTreeExpandElement?"string"==typeof a.dataTreeExpandElement?(e=document.createElement("div"),e.innerHTML=a.dataTreeExpandElement,this.expandEl=e.firstChild):this.expandEl=a.dataTreeExpandElement:(this.expandEl=document.createElement("div"),this.expandEl.classList.add("tabulator-data-tree-control"),this.expandEl.tabIndex=0,this.expandEl.innerHTML="<div class='tabulator-data-tree-control-expand'></div>"),_typeof(a.dataTreeStartExpanded)){case"boolean":this.startOpen=function(e,t){return a.dataTreeStartExpanded};break;case"function":this.startOpen=a.dataTreeStartExpanded;break;default:this.startOpen=function(e,t){return a.dataTreeStartExpanded[t]}}},DataTree.prototype.initializeRow=function(e){var t=e.getData()[this.field],a=Array.isArray(t),r=a||!a&&"object"===(void 0===t?"undefined":_typeof(t))&&null!==t;!r&&e.modules.dataTree&&e.modules.dataTree.branchEl&&e.modules.dataTree.branchEl.parentNode.removeChild(e.modules.dataTree.branchEl),!r&&e.modules.dataTree&&e.modules.dataTree.controlEl&&e.modules.dataTree.controlEl.parentNode.removeChild(e.modules.dataTree.controlEl),e.modules.dataTree={index:e.modules.dataTree?e.modules.dataTree.index:0,open:!!r&&(e.modules.dataTree?e.modules.dataTree.open:this.startOpen(e.getComponent(),0)),controlEl:!(!e.modules.dataTree||!r)&&e.modules.dataTree.controlEl,branchEl:!(!e.modules.dataTree||!r)&&e.modules.dataTree.branchEl,parent:!!e.modules.dataTree&&e.modules.dataTree.parent,children:r}},DataTree.prototype.layoutRow=function(e){var t=this.elementField?e.getCell(this.elementField):e.getCells()[0],a=t.getElement(),r=e.modules.dataTree;r.branchEl&&(r.branchEl.parentNode&&r.branchEl.parentNode.removeChild(r.branchEl),r.branchEl=!1),r.controlEl&&(r.controlEl.parentNode&&r.controlEl.parentNode.removeChild(r.controlEl),r.controlEl=!1),this.generateControlElement(e,a),e.element.classList.add("tabulator-tree-level-"+r.index),r.index&&(this.branchEl?(r.branchEl=this.branchEl.cloneNode(!0),a.insertBefore(r.branchEl,a.firstChild),r.branchEl.style.marginLeft=(r.branchEl.offsetWidth+r.branchEl.style.marginRight)*(r.index-1)+r.index*this.indent+"px"):a.style.paddingLeft=parseInt(window.getComputedStyle(a,null).getPropertyValue("padding-left"))+r.index*this.indent+"px")},DataTree.prototype.generateControlElement=function(e,t){var a=this,r=e.modules.dataTree,t=t||e.getCells()[0].getElement(),n=r.controlEl;!1!==r.children&&(r.open?(r.controlEl=this.collapseEl.cloneNode(!0),r.controlEl.addEventListener("click",function(t){t.stopPropagation(),a.collapseRow(e)})):(r.controlEl=this.expandEl.cloneNode(!0),r.controlEl.addEventListener("click",function(t){t.stopPropagation(),a.expandRow(e)})),r.controlEl.addEventListener("mousedown",function(e){e.stopPropagation()}),n&&n.parentNode===t?n.parentNode.replaceChild(r.controlEl,n):t.insertBefore(r.controlEl,t.firstChild))},DataTree.prototype.setDisplayIndex=function(e){this.displayIndex=e},DataTree.prototype.getDisplayIndex=function(){return this.displayIndex},DataTree.prototype.getRows=function(e){var t=this,a=[];return e.forEach(function(e,r){var n,l;a.push(e),e instanceof Row&&(n=e.modules.dataTree.children,n.index||!1===n.children||(l=t.getChildren(e),l.forEach(function(e){a.push(e)})))}),a},DataTree.prototype.getChildren=function(e){var t=this,a=e.modules.dataTree,r=[],n=[];return!1!==a.children&&a.open&&(Array.isArray(a.children)||(a.children=this.generateChildren(e)),r=this.table.modExists("filter")?this.table.modules.filter.filter(a.children):a.children,this.table.modExists("sort")&&this.table.modules.sort.sort(r),r.forEach(function(e){n.push(e),t.getChildren(e).forEach(function(e){n.push(e)})})),n},DataTree.prototype.generateChildren=function(e){var t=this,a=[],r=e.getData()[this.field];return Array.isArray(r)||(r=[r]),r.forEach(function(r){var n=new Row(r||{},t.table.rowManager);n.modules.dataTree.index=e.modules.dataTree.index+1,n.modules.dataTree.parent=e,n.modules.dataTree.children&&(n.modules.dataTree.open=t.startOpen(n.getComponent(),n.modules.dataTree.index)),a.push(n)}),a},DataTree.prototype.expandRow=function(e,t){var a=e.modules.dataTree;!1!==a.children&&(a.open=!0,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowExpanded(e.getComponent(),e.modules.dataTree.index))},DataTree.prototype.collapseRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open=!1,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowCollapsed(e.getComponent(),e.modules.dataTree.index))},DataTree.prototype.toggleRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open?this.collapseRow(e):this.expandRow(e))},DataTree.prototype.getTreeParent=function(e){return!!e.modules.dataTree.parent&&e.modules.dataTree.parent.getComponent()},DataTree.prototype.getFilteredTreeChildren=function(e){var t,a=e.modules.dataTree,r=[];return a.children&&(Array.isArray(a.children)||(a.children=this.generateChildren(e)),t=this.table.modExists("filter")?this.table.modules.filter.filter(a.children):a.children,t.forEach(function(e){e instanceof Row&&r.push(e)})),r},DataTree.prototype.getTreeChildren=function(e){var t=e.modules.dataTree,a=[];return t.children&&(Array.isArray(t.children)||(t.children=this.generateChildren(e)),t.children.forEach(function(e){e instanceof Row&&a.push(e.getComponent())})),a},DataTree.prototype.checkForRestyle=function(e){e.row.cells.indexOf(e)||e.row.reinitialize()},DataTree.prototype.getChildField=function(){return this.field},DataTree.prototype.redrawNeeded=function(e){return!!this.field&&void 0!==e[this.field]||!!this.elementField&&void 0!==e[this.elementField]},Tabulator.prototype.registerModule("dataTree",DataTree);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Download = function Download(table) {
- this.table = table; //hold Tabulator object
- this.fields = {}; //hold filed multi dimension arrays
- this.columnsByIndex = []; //hold columns in their order in the table
- this.columnsByField = {}; //hold columns with lookup by field name
- this.config = {};
- this.active = false;
-};
-
-//trigger file download
-Download.prototype.download = function (type, filename, options, active, interceptCallback) {
- var self = this,
- downloadFunc = false;
- this.processConfig();
- this.active = active;
-
- function buildLink(data, mime) {
- if (interceptCallback) {
- if (interceptCallback === true) {
- self.triggerDownload(data, mime, type, filename, true);
- } else {
- interceptCallback(data);
- }
- } else {
- self.triggerDownload(data, mime, type, filename);
- }
- }
-
- if (typeof type == "function") {
- downloadFunc = type;
- } else {
- if (self.downloaders[type]) {
- downloadFunc = self.downloaders[type];
- } else {
- console.warn("Download Error - No such download type found: ", type);
- }
- }
-
- this.processColumns();
-
- if (downloadFunc) {
- downloadFunc.call(this, self.processDefinitions(), self.processData(active || "active"), options || {}, buildLink, this.config);
- }
-};
-
-Download.prototype.processConfig = function () {
- var config = { //download config
- columnGroups: true,
- rowGroups: true,
- columnCalcs: true,
- dataTree: true
- };
-
- if (this.table.options.downloadConfig) {
- for (var key in this.table.options.downloadConfig) {
- config[key] = this.table.options.downloadConfig[key];
- }
- }
-
- this.config.rowGroups = config.rowGroups && this.table.options.groupBy && this.table.modExists("groupRows");
-
- if (config.columnGroups && this.table.columnManager.columns.length != this.table.columnManager.columnsByIndex.length) {
- this.config.columnGroups = true;
- }
-
- if (config.columnCalcs && this.table.modExists("columnCalcs")) {
- this.config.columnCalcs = true;
- }
-
- if (config.dataTree && this.table.options.dataTree && this.table.modExists("dataTree")) {
- this.config.dataTree = true;
- }
-};
-
-Download.prototype.processColumns = function () {
- var self = this;
-
- self.columnsByIndex = [];
- self.columnsByField = {};
-
- self.table.columnManager.columnsByIndex.forEach(function (column) {
-
- if (column.field && column.definition.download !== false && (column.visible || !column.visible && column.definition.download)) {
- self.columnsByIndex.push(column);
- self.columnsByField[column.field] = column;
- }
- });
-};
-
-Download.prototype.processDefinitions = function () {
- var self = this,
- processedDefinitions = [];
-
- if (this.config.columnGroups) {
- self.table.columnManager.columns.forEach(function (column) {
- var colData = self.processColumnGroup(column);
-
- if (colData) {
- processedDefinitions.push(colData);
- }
- });
- } else {
- self.columnsByIndex.forEach(function (column) {
- if (column.download !== false) {
- //isolate definiton from defintion object
- processedDefinitions.push(self.processDefinition(column));
- }
- });
- }
-
- return processedDefinitions;
-};
-
-Download.prototype.processColumnGroup = function (column) {
- var _this = this;
-
- var subGroups = column.columns,
- maxDepth = 0;
- var processedColumn = this.processDefinition(column);
- var groupData = {
- type: "group",
- title: processedColumn.title,
- depth: 1
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
- groupData.width = 0;
-
- subGroups.forEach(function (subGroup) {
- var subGroupData = _this.processColumnGroup(subGroup);
-
- if (subGroupData.depth > maxDepth) {
- maxDepth = subGroupData.depth;
- }
-
- if (subGroupData) {
- groupData.width += subGroupData.width;
- groupData.subGroups.push(subGroupData);
- }
- });
-
- groupData.depth += maxDepth;
-
- if (!groupData.width) {
- return false;
- }
- } else {
- if (column.field && column.definition.download !== false && (column.visible || !column.visible && column.definition.download)) {
- groupData.width = 1;
- groupData.definition = processedColumn;
- } else {
- return false;
- }
- }
-
- return groupData;
-};
-
-Download.prototype.processDefinition = function (column) {
- var def = {};
-
- for (var key in column.definition) {
- def[key] = column.definition[key];
- }
-
- if (typeof column.definition.downloadTitle != "undefined") {
- def.title = column.definition.downloadTitle;
- }
-
- return def;
-};
-
-Download.prototype.processData = function (active) {
- var _this2 = this;
-
- var self = this,
- data = [],
- groups = [],
- rows = false,
- calcs = {};
-
- if (this.config.rowGroups) {
-
- if (active == "visible") {
-
- rows = self.table.rowManager.getRows(active);
-
- rows.forEach(function (row) {
- if (row.type == "row") {
- var group = row.getGroup();
-
- if (groups.indexOf(group) === -1) {
- groups.push(group);
- }
- }
- });
- } else {
- groups = this.table.modules.groupRows.getGroups();
- }
-
- groups.forEach(function (group) {
- data.push(_this2.processGroupData(group, rows));
- });
- } else {
- if (this.config.dataTree) {
- active = active = "active" ? "display" : active;
- }
- data = self.table.rowManager.getData(active, "download");
- }
-
- if (this.config.columnCalcs) {
- calcs = this.table.getCalcResults();
-
- data = {
- calcs: calcs,
- data: data
- };
- }
-
- //bulk data processing
- if (typeof self.table.options.downloadDataFormatter == "function") {
- data = self.table.options.downloadDataFormatter(data);
- }
-
- return data;
-};
-
-Download.prototype.processGroupData = function (group, visRows) {
- var _this3 = this;
-
- var subGroups = group.getSubGroups();
-
- var groupData = {
- type: "group",
- key: group.key
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
-
- subGroups.forEach(function (subGroup) {
- groupData.subGroups.push(_this3.processGroupData(subGroup, visRows));
- });
- } else {
- if (visRows) {
- groupData.rows = [];
-
- group.rows.forEach(function (row) {
- if (visRows.indexOf(row) > -1) {
- groupData.rows.push(row.getData("download"));
- }
- });
- } else {
- groupData.rows = group.getData(true, "download");
- }
- }
-
- return groupData;
-};
-
-Download.prototype.triggerDownload = function (data, mime, type, filename, newTab) {
- var element = document.createElement('a'),
- blob = new Blob([data], { type: mime }),
- filename = filename || "Tabulator." + (typeof type === "function" ? "txt" : type);
-
- blob = this.table.options.downloadReady.call(this.table, data, blob);
-
- if (blob) {
-
- if (newTab) {
- window.open(window.URL.createObjectURL(blob));
- } else {
- if (navigator.msSaveOrOpenBlob) {
- navigator.msSaveOrOpenBlob(blob, filename);
- } else {
- element.setAttribute('href', window.URL.createObjectURL(blob));
-
- //set file title
- element.setAttribute('download', filename);
-
- //trigger download
- element.style.display = 'none';
- document.body.appendChild(element);
- element.click();
-
- //remove temporary link element
- document.body.removeChild(element);
- }
- }
-
- if (this.table.options.downloadComplete) {
- this.table.options.downloadComplete();
- }
- }
-};
-
-//nested field lookup
-Download.prototype.getFieldValue = function (field, data) {
- var column = this.columnsByField[field];
-
- if (column) {
- return column.getFieldValue(data);
- }
-
- return false;
-};
-
-Download.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "intercept":
- this.download(data.type, "", data.options, data.active, data.intercept);
- break;
- }
-};
-
-//downloaders
-Download.prototype.downloaders = {
- csv: function csv(columns, data, options, setFileContents, config) {
- var self = this,
- titles = [],
- fields = [],
- delimiter = options && options.delimiter ? options.delimiter : ",",
- fileContents,
- output;
-
- //build column headers
- function parseSimpleTitles() {
- columns.forEach(function (column) {
- titles.push('"' + String(column.title).split('"').join('""') + '"');
- fields.push(column.field);
- });
- }
-
- function parseColumnGroup(column, level) {
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- } else {
- titles.push('"' + String(column.title).split('"').join('""') + '"');
- fields.push(column.definition.field);
- }
- }
-
- if (config.columnGroups) {
- console.warn("Download Warning - CSV downloader cannot process column groups");
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
- } else {
- parseSimpleTitles();
- }
-
- //generate header row
- fileContents = [titles.join(delimiter)];
-
- function parseRows(data) {
- //generate each row of the table
- data.forEach(function (row) {
- var rowData = [];
-
- fields.forEach(function (field) {
- var value = self.getFieldValue(field, row);
-
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
-
- //escape quotation marks
- rowData.push('"' + String(value).split('"').join('""') + '"');
- });
-
- fileContents.push(rowData.join(delimiter));
- });
- }
-
- function parseGroup(group) {
- if (group.subGroups) {
- group.subGroups.forEach(function (subGroup) {
- parseGroup(subGroup);
- });
- } else {
- parseRows(group.rows);
- }
- }
-
- if (config.columnCalcs) {
- console.warn("Download Warning - CSV downloader cannot process column calculations");
- data = data.data;
- }
-
- if (config.rowGroups) {
- console.warn("Download Warning - CSV downloader cannot process row groups");
-
- data.forEach(function (group) {
- parseGroup(group);
- });
- } else {
- parseRows(data);
- }
-
- output = fileContents.join("\n");
-
- if (options.bom) {
- output = "\uFEFF" + output;
- }
-
- setFileContents(output, "text/csv");
- },
-
- json: function json(columns, data, options, setFileContents, config) {
- var fileContents;
-
- if (config.columnCalcs) {
- console.warn("Download Warning - CSV downloader cannot process column calculations");
- data = data.data;
- }
-
- fileContents = JSON.stringify(data, null, '\t');
-
- setFileContents(fileContents, "application/json");
- },
-
- pdf: function pdf(columns, data, options, setFileContents, config) {
- var self = this,
- fields = [],
- header = [],
- body = [],
- calcs = {},
- headerDepth = 1,
- table = "",
- autoTableParams = {},
- rowGroupStyles = options.rowGroupStyles || {
- fontStyle: "bold",
- fontSize: 12,
- cellPadding: 6,
- fillColor: 220
- },
- rowCalcStyles = options.rowCalcStyles || {
- fontStyle: "bold",
- fontSize: 10,
- cellPadding: 4,
- fillColor: 232
- },
- jsPDFParams = options.jsPDF || {},
- title = options && options.title ? options.title : "";
-
- if (config.columnCalcs) {
- calcs = data.calcs;
- data = data.data;
- }
-
- if (!jsPDFParams.orientation) {
- jsPDFParams.orientation = options.orientation || "landscape";
- }
-
- if (!jsPDFParams.unit) {
- jsPDFParams.unit = "pt";
- }
-
- //build column headers
- function parseSimpleTitles() {
- columns.forEach(function (column) {
- if (column.field) {
- header.push(column.title || "");
- fields.push(column.field);
- }
- });
-
- header = [header];
- }
-
- function parseColumnGroup(column, level) {
- var colSpan = column.width,
- rowSpan = 1,
- col = {
- content: column.title || ""
- };
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- rowSpan = 1;
- } else {
- fields.push(column.definition.field);
- rowSpan = headerDepth - level;
- }
-
- col.rowSpan = rowSpan;
- // col.colSpan = colSpan;
-
- header[level].push(col);
-
- colSpan--;
-
- if (rowSpan > 1) {
- for (var i = level + 1; i < headerDepth; i++) {
- header[i].push("");
- }
- }
-
- for (var i = 0; i < colSpan; i++) {
- header[level].push("");
- }
- }
-
- if (config.columnGroups) {
- columns.forEach(function (column) {
- if (column.depth > headerDepth) {
- headerDepth = column.depth;
- }
- });
-
- for (var i = 0; i < headerDepth; i++) {
- header.push([]);
- }
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
- } else {
- parseSimpleTitles();
- }
-
- function parseValue(value) {
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
-
- return value;
- }
-
- function parseRows(data) {
- //build table rows
- data.forEach(function (row) {
- body.push(parseRow(row));
- });
- }
-
- function parseRow(row, styles) {
- var rowData = [];
-
- fields.forEach(function (field) {
- var value = self.getFieldValue(field, row);
- value = parseValue(value);
-
- if (styles) {
- rowData.push({
- content: value,
- styles: styles
- });
- } else {
- rowData.push(value);
- }
- });
-
- return rowData;
- }
-
- function parseGroup(group, calcObj) {
- var groupData = [];
-
- groupData.push({ content: parseValue(group.key), colSpan: fields.length, styles: rowGroupStyles });
-
- body.push(groupData);
-
- if (group.subGroups) {
- group.subGroups.forEach(function (subGroup) {
- parseGroup(subGroup, calcObj[group.key] ? calcObj[group.key].groups || {} : {});
- });
- } else {
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "top");
- }
-
- parseRows(group.rows);
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "bottom");
- }
- }
- }
-
- function addCalcRow(calcs, selector, pos) {
- var calcData = calcs[selector];
-
- if (calcData) {
- if (pos) {
- calcData = calcData[pos];
- }
-
- if (Object.keys(calcData).length) {
- body.push(parseRow(calcData, rowCalcStyles));
- }
- }
- }
-
- if (config.rowGroups) {
- data.forEach(function (group) {
- parseGroup(group, calcs);
- });
- } else {
- if (config.columnCalcs) {
- addCalcRow(calcs, "top");
- }
-
- parseRows(data);
-
- if (config.columnCalcs) {
- addCalcRow(calcs, "bottom");
- }
- }
-
- var doc = new jsPDF(jsPDFParams); //set document to landscape, better for most tables
-
- if (options && options.autoTable) {
- if (typeof options.autoTable === "function") {
- autoTableParams = options.autoTable(doc) || {};
- } else {
- autoTableParams = options.autoTable;
- }
- }
-
- if (title) {
- autoTableParams.addPageContent = function (data) {
- doc.text(title, 40, 30);
- };
- }
-
- autoTableParams.head = header;
- autoTableParams.body = body;
-
- doc.autoTable(autoTableParams);
-
- if (options && options.documentProcessing) {
- options.documentProcessing(doc);
- }
-
- setFileContents(doc.output("arraybuffer"), "application/pdf");
- },
-
- xlsx: function xlsx(columns, data, options, setFileContents, config) {
- var self = this,
- sheetName = options.sheetName || "Sheet1",
- workbook = XLSX.utils.book_new(),
- calcs = {},
- groupRowIndexs = [],
- groupColumnIndexs = [],
- calcRowIndexs = [],
- output;
-
- workbook.SheetNames = [];
- workbook.Sheets = {};
-
- if (config.columnCalcs) {
- calcs = data.calcs;
- data = data.data;
- }
-
- function generateSheet() {
- var titles = [],
- fields = [],
- rows = [],
- worksheet;
-
- //convert rows to worksheet
- function rowsToSheet() {
- var sheet = {};
- var range = { s: { c: 0, r: 0 }, e: { c: fields.length, r: rows.length } };
-
- XLSX.utils.sheet_add_aoa(sheet, rows);
-
- sheet['!ref'] = XLSX.utils.encode_range(range);
-
- var merges = generateMerges();
-
- if (merges.length) {
- sheet["!merges"] = merges;
- }
-
- return sheet;
- }
-
- function parseSimpleTitles() {
- //get field lists
- columns.forEach(function (column) {
- titles.push(column.title);
- fields.push(column.field);
- });
-
- rows.push(titles);
- }
-
- function parseColumnGroup(column, level) {
-
- if (typeof titles[level] === "undefined") {
- titles[level] = [];
- }
-
- if (typeof groupColumnIndexs[level] === "undefined") {
- groupColumnIndexs[level] = [];
- }
-
- if (column.width > 1) {
-
- groupColumnIndexs[level].push({
- type: "hoz",
- start: titles[level].length,
- end: titles[level].length + column.width - 1
- });
- }
-
- titles[level].push(column.title);
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- } else {
- fields.push(column.definition.field);
- padColumnTitles(fields.length - 1, level);
-
- groupColumnIndexs[level].push({
- type: "vert",
- start: fields.length - 1
- });
- }
- }
-
- function padColumnTitles() {
- var max = 0;
-
- titles.forEach(function (title) {
- var len = title.length;
- if (len > max) {
- max = len;
- }
- });
-
- titles.forEach(function (title) {
- var len = title.length;
- if (len < max) {
- for (var i = len; i < max; i++) {
- title.push("");
- }
- }
- });
- }
-
- if (config.columnGroups) {
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
-
- titles.forEach(function (title) {
- rows.push(title);
- });
- } else {
- parseSimpleTitles();
- }
-
- function generateMerges() {
- var output = [];
-
- groupRowIndexs.forEach(function (index) {
- output.push({ s: { r: index, c: 0 }, e: { r: index, c: fields.length - 1 } });
- });
-
- groupColumnIndexs.forEach(function (merges, level) {
- merges.forEach(function (merge) {
- if (merge.type === "hoz") {
- output.push({ s: { r: level, c: merge.start }, e: { r: level, c: merge.end } });
- } else {
- if (level != titles.length - 1) {
- output.push({ s: { r: level, c: merge.start }, e: { r: titles.length - 1, c: merge.start } });
- }
- }
- });
- });
-
- return output;
- }
-
- //generate each row of the table
- function parseRows(data) {
- data.forEach(function (row) {
- rows.push(parseRow(row));
- });
- }
-
- function parseRow(row) {
- var rowData = [];
-
- fields.forEach(function (field) {
- var value = self.getFieldValue(field, row);
- rowData.push(!(value instanceof Date) && (typeof value === "undefined" ? "undefined" : _typeof(value)) === "object" ? JSON.stringify(value) : value);
- });
-
- return rowData;
- }
-
- function addCalcRow(calcs, selector, pos) {
- var calcData = calcs[selector];
-
- if (calcData) {
- if (pos) {
- calcData = calcData[pos];
- }
-
- if (Object.keys(calcData).length) {
- calcRowIndexs.push(rows.length);
- rows.push(parseRow(calcData));
- }
- }
- }
-
- function parseGroup(group, calcObj) {
- var groupData = [];
-
- groupData.push(group.key);
-
- groupRowIndexs.push(rows.length);
-
- rows.push(groupData);
-
- if (group.subGroups) {
- group.subGroups.forEach(function (subGroup) {
- parseGroup(subGroup, calcObj[group.key] ? calcObj[group.key].groups || {} : {});
- });
- } else {
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "top");
- }
-
- parseRows(group.rows);
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "bottom");
- }
- }
- }
-
- if (config.rowGroups) {
- data.forEach(function (group) {
- parseGroup(group, calcs);
- });
- } else {
- if (config.columnCalcs) {
- addCalcRow(calcs, "top");
- }
-
- parseRows(data);
-
- if (config.columnCalcs) {
- addCalcRow(calcs, "bottom");
- }
- }
-
- worksheet = rowsToSheet();
-
- return worksheet;
- }
-
- if (options.sheetOnly) {
- setFileContents(generateSheet());
- return;
- }
-
- if (options.sheets) {
- for (var sheet in options.sheets) {
-
- if (options.sheets[sheet] === true) {
- workbook.SheetNames.push(sheet);
- workbook.Sheets[sheet] = generateSheet();
- } else {
-
- workbook.SheetNames.push(sheet);
-
- this.table.modules.comms.send(options.sheets[sheet], "download", "intercept", {
- type: "xlsx",
- options: { sheetOnly: true },
- active: self.active,
- intercept: function intercept(data) {
- workbook.Sheets[sheet] = data;
- }
- });
- }
- }
- } else {
- workbook.SheetNames.push(sheetName);
- workbook.Sheets[sheetName] = generateSheet();
- }
-
- if (options.documentProcessing) {
- workbook = options.documentProcessing(workbook);
- }
-
- //convert workbook to binary array
- function s2ab(s) {
- var buf = new ArrayBuffer(s.length);
- var view = new Uint8Array(buf);
- for (var i = 0; i != s.length; ++i) {
- view[i] = s.charCodeAt(i) & 0xFF;
- }return buf;
- }
-
- output = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'binary' });
-
- setFileContents(s2ab(output), "application/octet-stream");
- },
-
- html: function html(columns, data, options, setFileContents, config) {
- if (this.table.modExists("export", true)) {
- setFileContents(this.table.modules.export.getHtml(true, options.style, config), "text/html");
- }
- }
-
-};
-
-Tabulator.prototype.registerModule("download", Download);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},Download=function(o){this.table=o,this.fields={},this.columnsByIndex=[],this.columnsByField={},this.config={},this.active=!1};Download.prototype.download=function(o,t,n,e,i){function s(n,e){i?!0===i?a.triggerDownload(n,e,o,t,!0):i(n):a.triggerDownload(n,e,o,t)}var a=this,r=!1;this.processConfig(),this.active=e,"function"==typeof o?r=o:a.downloaders[o]?r=a.downloaders[o]:console.warn("Download Error - No such download type found: ",o),this.processColumns(),r&&r.call(this,a.processDefinitions(),a.processData(e||"active"),n||{},s,this.config)},Download.prototype.processConfig=function(){var o={columnGroups:!0,rowGroups:!0,columnCalcs:!0,dataTree:!0};if(this.table.options.downloadConfig)for(var t in this.table.options.downloadConfig)o[t]=this.table.options.downloadConfig[t];this.config.rowGroups=o.rowGroups&&this.table.options.groupBy&&this.table.modExists("groupRows"),o.columnGroups&&this.table.columnManager.columns.length!=this.table.columnManager.columnsByIndex.length&&(this.config.columnGroups=!0),o.columnCalcs&&this.table.modExists("columnCalcs")&&(this.config.columnCalcs=!0),o.dataTree&&this.table.options.dataTree&&this.table.modExists("dataTree")&&(this.config.dataTree=!0)},Download.prototype.processColumns=function(){var o=this;o.columnsByIndex=[],o.columnsByField={},o.table.columnManager.columnsByIndex.forEach(function(t){t.field&&!1!==t.definition.download&&(t.visible||!t.visible&&t.definition.download)&&(o.columnsByIndex.push(t),o.columnsByField[t.field]=t)})},Download.prototype.processDefinitions=function(){var o=this,t=[];return this.config.columnGroups?o.table.columnManager.columns.forEach(function(n){var e=o.processColumnGroup(n);e&&t.push(e)}):o.columnsByIndex.forEach(function(n){!1!==n.download&&t.push(o.processDefinition(n))}),t},Download.prototype.processColumnGroup=function(o){var t=this,n=o.columns,e=0,i=this.processDefinition(o),s={type:"group",title:i.title,depth:1};if(n.length){if(s.subGroups=[],s.width=0,n.forEach(function(o){var n=t.processColumnGroup(o);n.depth>e&&(e=n.depth),n&&(s.width+=n.width,s.subGroups.push(n))}),s.depth+=e,!s.width)return!1}else{if(!o.field||!1===o.definition.download||!(o.visible||!o.visible&&o.definition.download))return!1;s.width=1,s.definition=i}return s},Download.prototype.processDefinition=function(o){var t={};for(var n in o.definition)t[n]=o.definition[n];return void 0!==o.definition.downloadTitle&&(t.title=o.definition.downloadTitle),t},Download.prototype.processData=function(o){var t=this,n=this,e=[],i=[],s=!1,a={};return this.config.rowGroups?("visible"==o?(s=n.table.rowManager.getRows(o),s.forEach(function(o){if("row"==o.type){var t=o.getGroup();-1===i.indexOf(t)&&i.push(t)}})):i=this.table.modules.groupRows.getGroups(),i.forEach(function(o){e.push(t.processGroupData(o,s))})):(this.config.dataTree&&(o=o="display"),e=n.table.rowManager.getData(o,"download")),this.config.columnCalcs&&(a=this.table.getCalcResults(),e={calcs:a,data:e}),"function"==typeof n.table.options.downloadDataFormatter&&(e=n.table.options.downloadDataFormatter(e)),e},Download.prototype.processGroupData=function(o,t){var n=this,e=o.getSubGroups(),i={type:"group",key:o.key};return e.length?(i.subGroups=[],e.forEach(function(o){i.subGroups.push(n.processGroupData(o,t))})):t?(i.rows=[],o.rows.forEach(function(o){t.indexOf(o)>-1&&i.rows.push(o.getData("download"))})):i.rows=o.getData(!0,"download"),i},Download.prototype.triggerDownload=function(o,t,n,e,i){var s=document.createElement("a"),a=new Blob([o],{type:t}),e=e||"Tabulator."+("function"==typeof n?"txt":n);(a=this.table.options.downloadReady.call(this.table,o,a))&&(i?window.open(window.URL.createObjectURL(a)):navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(a,e):(s.setAttribute("href",window.URL.createObjectURL(a)),s.setAttribute("download",e),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)),this.table.options.downloadComplete&&this.table.options.downloadComplete())},Download.prototype.getFieldValue=function(o,t){var n=this.columnsByField[o];return!!n&&n.getFieldValue(t)},Download.prototype.commsReceived=function(o,t,n){switch(t){case"intercept":this.download(n.type,"",n.options,n.active,n.intercept)}},Download.prototype.downloaders={csv:function(o,t,n,e,i){function s(o,t){o.subGroups?o.subGroups.forEach(function(o){s(o,t+1)}):(f.push('"'+String(o.title).split('"').join('""')+'"'),p.push(o.definition.field))}function a(o){o.forEach(function(o){var t=[];p.forEach(function(n){var e=c.getFieldValue(n,o);switch(void 0===e?"undefined":_typeof(e)){case"object":e=JSON.stringify(e);break;case"undefined":case"null":e="";break;default:e=e}t.push('"'+String(e).split('"').join('""')+'"')}),u.push(t.join(d))})}function r(o){o.subGroups?o.subGroups.forEach(function(o){r(o)}):a(o.rows)}var u,l,c=this,f=[],p=[],d=n&&n.delimiter?n.delimiter:",";i.columnGroups?(console.warn("Download Warning - CSV downloader cannot process column groups"),o.forEach(function(o){s(o,0)})):function(){o.forEach(function(o){f.push('"'+String(o.title).split('"').join('""')+'"'),p.push(o.field)})}(),u=[f.join(d)],i.columnCalcs&&(console.warn("Download Warning - CSV downloader cannot process column calculations"),t=t.data),i.rowGroups?(console.warn("Download Warning - CSV downloader cannot process row groups"),t.forEach(function(o){r(o)})):a(t),l=u.join("\n"),n.bom&&(l="\ufeff"+l),e(l,"text/csv")},json:function(o,t,n,e,i){var s;i.columnCalcs&&(console.warn("Download Warning - CSV downloader cannot process column calculations"),t=t.data),s=JSON.stringify(t,null,"\t"),e(s,"application/json")},pdf:function(o,t,n,e,i){function s(o,t){var n=o.width,e=1,i={content:o.title||""};if(o.subGroups?(o.subGroups.forEach(function(o){s(o,t+1)}),e=1):(p.push(o.definition.field),e=m-t),i.rowSpan=e,d[t].push(i),n--,e>1)for(var a=t+1;a<m;a++)d[a].push("");for(var a=0;a<n;a++)d[t].push("")}function a(o){switch(void 0===o?"undefined":_typeof(o)){case"object":o=JSON.stringify(o);break;case"undefined":case"null":o="";break;default:o=o}return o}function r(o){o.forEach(function(o){h.push(u(o))})}function u(o,t){var n=[];return p.forEach(function(e){var i=f.getFieldValue(e,o);i=a(i),t?n.push({content:i,styles:t}):n.push(i)}),n}function l(o,t){var n=[];n.push({content:a(o.key),colSpan:p.length,styles:y}),h.push(n),o.subGroups?o.subGroups.forEach(function(n){l(n,t[o.key]?t[o.key].groups||{}:{})}):(i.columnCalcs&&c(t,o.key,"top"),r(o.rows),i.columnCalcs&&c(t,o.key,"bottom"))}function c(o,t,n){var e=o[t];e&&(n&&(e=e[n]),Object.keys(e).length&&h.push(u(e,b)))}var f=this,p=[],d=[],h=[],w={},m=1,g={},y=n.rowGroupStyles||{fontStyle:"bold",fontSize:12,cellPadding:6,fillColor:220},b=n.rowCalcStyles||{fontStyle:"bold",fontSize:10,cellPadding:4,fillColor:232},v=n.jsPDF||{},E=n&&n.title?n.title:"";if(i.columnCalcs&&(w=t.calcs,t=t.data),v.orientation||(v.orientation=n.orientation||"landscape"),v.unit||(v.unit="pt"),i.columnGroups){o.forEach(function(o){o.depth>m&&(m=o.depth)});for(var S=0;S<m;S++)d.push([]);o.forEach(function(o){s(o,0)})}else!function(){o.forEach(function(o){o.field&&(d.push(o.title||""),p.push(o.field))}),d=[d]}();i.rowGroups?t.forEach(function(o){l(o,w)}):(i.columnCalcs&&c(w,"top"),r(t),i.columnCalcs&&c(w,"bottom"));var C=new jsPDF(v);n&&n.autoTable&&(g="function"==typeof n.autoTable?n.autoTable(C)||{}:n.autoTable),E&&(g.addPageContent=function(o){C.text(E,40,30)}),g.head=d,g.body=h,C.autoTable(g),n&&n.documentProcessing&&n.documentProcessing(C),e(C.output("arraybuffer"),"application/pdf")},xlsx:function(o,t,n,e,i){function s(){function n(o,t){void 0===w[t]&&(w[t]=[]),void 0===p[t]&&(p[t]=[]),o.width>1&&p[t].push({type:"hoz",start:w[t].length,end:w[t].length+o.width-1}),w[t].push(o.title),o.subGroups?o.subGroups.forEach(function(o){n(o,t+1)}):(m.push(o.definition.field),e(m.length),p[t].push({type:"vert",start:m.length-1}))}function e(){var o=0;w.forEach(function(t){var n=t.length;n>o&&(o=n)}),w.forEach(function(t){var n=t.length;if(n<o)for(var e=n;e<o;e++)t.push("")})}function s(){var o=[];return f.forEach(function(t){o.push({s:{r:t,c:0},e:{r:t,c:m.length-1}})}),p.forEach(function(t,n){t.forEach(function(t){"hoz"===t.type?o.push({s:{r:n,c:t.start},e:{r:n,c:t.end}}):n!=w.length-1&&o.push({s:{r:n,c:t.start},e:{r:w.length-1,c:t.start}})})}),o}function a(o){o.forEach(function(o){g.push(u(o))})}function u(o){var t=[];return m.forEach(function(n){var e=r.getFieldValue(n,o);t.push(e instanceof Date||"object"!==(void 0===e?"undefined":_typeof(e))?e:JSON.stringify(e))}),t}function l(o,t,n){var e=o[t];e&&(n&&(e=e[n]),Object.keys(e).length&&(d.push(g.length),g.push(u(e))))}function h(o,t){var n=[];n.push(o.key),f.push(g.length),g.push(n),o.subGroups?o.subGroups.forEach(function(n){h(n,t[o.key]?t[o.key].groups||{}:{})}):(i.columnCalcs&&l(t,o.key,"top"),a(o.rows),i.columnCalcs&&l(t,o.key,"bottom"))}var w=[],m=[],g=[];return i.columnGroups?(o.forEach(function(o){n(o,0)}),w.forEach(function(o){g.push(o)})):function(){o.forEach(function(o){w.push(o.title),m.push(o.field)}),g.push(w)}(),i.rowGroups?t.forEach(function(o){h(o,c)}):(i.columnCalcs&&l(c,"top"),a(t),i.columnCalcs&&l(c,"bottom")),function(){var o={},t={s:{c:0,r:0},e:{c:m.length,r:g.length}};XLSX.utils.sheet_add_aoa(o,g),o["!ref"]=XLSX.utils.encode_range(t);var n=s();return n.length&&(o["!merges"]=n),o}()}var a,r=this,u=n.sheetName||"Sheet1",l=XLSX.utils.book_new(),c={},f=[],p=[],d=[];if(l.SheetNames=[],l.Sheets={},i.columnCalcs&&(c=t.calcs,t=t.data),n.sheetOnly)return void e(s());if(n.sheets)for(var h in n.sheets)!0===n.sheets[h]?(l.SheetNames.push(h),l.Sheets[h]=s()):(l.SheetNames.push(h),this.table.modules.comms.send(n.sheets[h],"download","intercept",{type:"xlsx",options:{sheetOnly:!0},active:r.active,intercept:function(o){l.Sheets[h]=o}}));else l.SheetNames.push(u),l.Sheets[u]=s();n.documentProcessing&&(l=n.documentProcessing(l)),a=XLSX.write(l,{bookType:"xlsx",bookSST:!0,type:"binary"}),e(function(o){for(var t=new ArrayBuffer(o.length),n=new Uint8Array(t),e=0;e!=o.length;++e)n[e]=255&o.charCodeAt(e);return t}(a),"application/octet-stream")},html:function(o,t,n,e,i){this.table.modExists("export",!0)&&e(this.table.modules.export.getHtml(!0,n.style,i),"text/html")}},Tabulator.prototype.registerModule("download",Download);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Edit = function Edit(table) {
- this.table = table; //hold Tabulator object
- this.currentCell = false; //hold currently editing cell
- this.mouseClick = false; //hold mousedown state to prevent click binding being overriden by editor opening
- this.recursionBlock = false; //prevent focus recursion
- this.invalidEdit = false;
-};
-
-//initialize column editor
-Edit.prototype.initializeColumn = function (column) {
- var self = this,
- config = {
- editor: false,
- blocked: false,
- check: column.definition.editable,
- params: column.definition.editorParams || {}
- };
-
- //set column editor
- switch (_typeof(column.definition.editor)) {
- case "string":
-
- if (column.definition.editor === "tick") {
- column.definition.editor = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.editor]) {
- config.editor = self.editors[column.definition.editor];
- } else {
- console.warn("Editor Error - No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- config.editor = column.definition.editor;
- break;
-
- case "boolean":
-
- if (column.definition.editor === true) {
-
- if (typeof column.definition.formatter !== "function") {
-
- if (column.definition.formatter === "tick") {
- column.definition.formatter = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.formatter]) {
- config.editor = self.editors[column.definition.formatter];
- } else {
- config.editor = self.editors["input"];
- }
- } else {
- console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ", column.definition.formatter);
- }
- }
- break;
- }
-
- if (config.editor) {
- column.modules.edit = config;
- }
-};
-
-Edit.prototype.getCurrentCell = function () {
- return this.currentCell ? this.currentCell.getComponent() : false;
-};
-
-Edit.prototype.clearEditor = function () {
- var cell = this.currentCell,
- cellEl;
-
- this.invalidEdit = false;
-
- if (cell) {
- this.currentCell = false;
-
- cellEl = cell.getElement();
- cellEl.classList.remove("tabulator-validation-fail");
- cellEl.classList.remove("tabulator-editing");
- while (cellEl.firstChild) {
- cellEl.removeChild(cellEl.firstChild);
- }cell.row.getElement().classList.remove("tabulator-row-editing");
- }
-};
-
-Edit.prototype.cancelEdit = function () {
-
- if (this.currentCell) {
- var cell = this.currentCell;
- var component = this.currentCell.getComponent();
-
- this.clearEditor();
- cell.setValueActual(cell.getValue());
- cell.cellRendered();
-
- if (cell.column.cellEvents.cellEditCancelled) {
- cell.column.cellEvents.cellEditCancelled.call(this.table, component);
- }
-
- this.table.options.cellEditCancelled.call(this.table, component);
- }
-};
-
-//return a formatted value for a cell
-Edit.prototype.bindEditor = function (cell) {
- var self = this,
- element = cell.getElement();
-
- element.setAttribute("tabindex", 0);
-
- element.addEventListener("click", function (e) {
- if (!element.classList.contains("tabulator-editing")) {
- element.focus({ preventScroll: true });
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- self.mouseClick = true;
- });
-
- element.addEventListener("focus", function (e) {
- if (!self.recursionBlock) {
- self.edit(cell, e, false);
- }
- });
-};
-
-Edit.prototype.focusCellNoEvent = function (cell, block) {
- this.recursionBlock = true;
- if (!(block && this.table.browser === "ie")) {
- cell.getElement().focus({ preventScroll: true });
- }
- this.recursionBlock = false;
-};
-
-Edit.prototype.editCell = function (cell, forceEdit) {
- this.focusCellNoEvent(cell);
- this.edit(cell, false, forceEdit);
-};
-
-Edit.prototype.focusScrollAdjust = function (cell) {
- if (this.table.rowManager.getRenderMode() == "virtual") {
- var topEdge = this.table.rowManager.element.scrollTop,
- bottomEdge = this.table.rowManager.element.clientHeight + this.table.rowManager.element.scrollTop,
- rowEl = cell.row.getElement(),
- offset = rowEl.offsetTop;
-
- if (rowEl.offsetTop < topEdge) {
- this.table.rowManager.element.scrollTop -= topEdge - rowEl.offsetTop;
- } else {
- if (rowEl.offsetTop + rowEl.offsetHeight > bottomEdge) {
- this.table.rowManager.element.scrollTop += rowEl.offsetTop + rowEl.offsetHeight - bottomEdge;
- }
- }
- }
-};
-
-Edit.prototype.edit = function (cell, e, forceEdit) {
- var self = this,
- allowEdit = true,
- rendered = function rendered() {},
- element = cell.getElement(),
- cellEditor,
- component,
- params;
-
- //prevent editing if another cell is refusing to leave focus (eg. validation fail)
- if (this.currentCell) {
- if (!this.invalidEdit) {
- this.cancelEdit();
- }
- return;
- }
-
- //handle successfull value change
- function success(value) {
- if (self.currentCell === cell) {
- var valid = true;
-
- if (cell.column.modules.validate && self.table.modExists("validate")) {
- valid = self.table.modules.validate.validate(cell.column.modules.validate, cell.getComponent(), value);
- }
-
- if (valid === true) {
- self.clearEditor();
- cell.setValue(value, true);
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
-
- return true;
- } else {
- self.invalidEdit = true;
- element.classList.add("tabulator-validation-fail");
- self.focusCellNoEvent(cell, true);
- rendered();
- self.table.options.validationFailed.call(self.table, cell.getComponent(), value, valid);
-
- return false;
- }
- } else {
- // console.warn("Edit Success Error - cannot call success on a cell that is no longer being edited");
- }
- }
-
- //handle aborted edit
- function cancel() {
- if (self.currentCell === cell) {
- self.cancelEdit();
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
- } else {
- // console.warn("Edit Success Error - cannot call cancel on a cell that is no longer being edited");
- }
- }
-
- function onRendered(callback) {
- rendered = callback;
- }
-
- if (!cell.column.modules.edit.blocked) {
- if (e) {
- e.stopPropagation();
- }
-
- switch (_typeof(cell.column.modules.edit.check)) {
- case "function":
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- break;
-
- case "boolean":
- allowEdit = cell.column.modules.edit.check;
- break;
- }
-
- if (allowEdit || forceEdit) {
-
- self.cancelEdit();
-
- self.currentCell = cell;
-
- this.focusScrollAdjust(cell);
-
- component = cell.getComponent();
-
- if (this.mouseClick) {
- this.mouseClick = false;
-
- if (cell.column.cellEvents.cellClick) {
- cell.column.cellEvents.cellClick.call(this.table, e, component);
- }
- }
-
- if (cell.column.cellEvents.cellEditing) {
- cell.column.cellEvents.cellEditing.call(this.table, component);
- }
-
- self.table.options.cellEditing.call(this.table, component);
-
- params = typeof cell.column.modules.edit.params === "function" ? cell.column.modules.edit.params(component) : cell.column.modules.edit.params;
-
- cellEditor = cell.column.modules.edit.editor.call(self, component, onRendered, success, cancel, params);
-
- //if editor returned, add to DOM, if false, abort edit
- if (cellEditor !== false) {
-
- if (cellEditor instanceof Node) {
- element.classList.add("tabulator-editing");
- cell.row.getElement().classList.add("tabulator-row-editing");
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.appendChild(cellEditor);
-
- //trigger onRendered Callback
- rendered();
-
- //prevent editing from triggering rowClick event
- var children = element.children;
-
- for (var i = 0; i < children.length; i++) {
- children[i].addEventListener("click", function (e) {
- e.stopPropagation();
- });
- }
- } else {
- console.warn("Edit Error - Editor should return an instance of Node, the editor returned:", cellEditor);
- element.blur();
- return false;
- }
- } else {
- element.blur();
- return false;
- }
-
- return true;
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
-};
-
-Edit.prototype.maskInput = function (el, options) {
- var mask = options.mask,
- maskLetter = typeof options.maskLetterChar !== "undefined" ? options.maskLetterChar : "A",
- maskNumber = typeof options.maskNumberChar !== "undefined" ? options.maskNumberChar : "9",
- maskWildcard = typeof options.maskWildcardChar !== "undefined" ? options.maskWildcardChar : "*",
- success = false;
-
- function fillSymbols(index) {
- var symbol = mask[index];
- if (typeof symbol !== "undefined" && symbol !== maskWildcard && symbol !== maskLetter && symbol !== maskNumber) {
- el.value = el.value + "" + symbol;
- fillSymbols(index + 1);
- }
- }
-
- el.addEventListener("keydown", function (e) {
- var index = el.value.length,
- char = e.key;
-
- if (e.keyCode > 46) {
- if (index >= mask.length) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- } else {
- switch (mask[index]) {
- case maskLetter:
- if (char.toUpperCase() == char.toLowerCase()) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskNumber:
- if (isNaN(char)) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskWildcard:
- break;
-
- default:
- if (char !== mask[index]) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- }
- }
-
- success = true;
- }
-
- return;
- });
-
- el.addEventListener("keyup", function (e) {
- if (e.keyCode > 46) {
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
- }
- });
-
- if (!el.placeholder) {
- el.placeholder = mask;
- }
-
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
-};
-
-//default data editors
-Edit.prototype.editors = {
-
- //input element
- input: function input(cell, onRendered, success, cancel, editorParams) {
-
- //create and style input
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", editorParams.search ? "search" : "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof cellValue !== "undefined" ? cellValue : "";
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- // case 9:
- case 13:
- onChange(e);
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //resizable text area element
- textarea: function textarea(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "hybrid",
- value = String(cellValue !== null && typeof cellValue !== "undefined" ? cellValue : ""),
- count = (value.match(/(?:\r\n|\r|\n)/g) || []).length + 1,
- input = document.createElement("textarea"),
- scrollHeight = 0;
-
- //create and style input
- input.style.display = "block";
- input.style.padding = "2px";
- input.style.height = "100%";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.whiteSpace = "pre-wrap";
- input.style.resize = "none";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
-
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
-
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
-
- setTimeout(function () {
- cell.getRow().normalizeHeight();
- }, 300);
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- input.addEventListener("keyup", function () {
-
- input.style.height = "";
-
- var heightNow = input.scrollHeight;
-
- input.style.height = heightNow + "px";
-
- if (heightNow != scrollHeight) {
- scrollHeight = heightNow;
- cell.getRow().normalizeHeight();
- }
- });
-
- input.addEventListener("keydown", function (e) {
-
- switch (e.keyCode) {
- case 27:
- cancel();
- break;
-
- case 38:
- //up arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
-
- break;
-
- case 40:
- //down arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart !== input.value.length) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- number: function number(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- input = document.createElement("input");
-
- input.setAttribute("type", "number");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- var blurFunc = function blurFunc(e) {
- onChange();
- };
-
- onRendered(function () {
- //submit new value on blur
- input.removeEventListener("blur", blurFunc);
-
- input.focus({ preventScroll: true });
- input.style.height = "100%";
-
- //submit new value on blur
- input.addEventListener("blur", blurFunc);
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value !== cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- // case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
-
- case 38: //up arrow
- case 40:
- //down arrow
- if (vertNav == "editor") {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- range: function range(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", "range");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value != cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur
- input.addEventListener("blur", function (e) {
- onChange();
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- return input;
- },
-
- //select
- select: function select(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "",
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- dataItems = [],
- displayItems = [],
- currentItem = {},
- blurable = true;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- if (Array.isArray(editorParams) || !Array.isArray(editorParams) && (typeof editorParams === "undefined" ? "undefined" : _typeof(editorParams)) === "object" && !editorParams.values) {
- console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object");
- editorParams = { values: editorParams };
- }
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create select lookup list:", field);
- }
-
- return output;
- }
-
- function parseItems(inputValues, curentValue) {
- var dataList = [];
- var displayList = [];
-
- function processComplexListItem(item) {
- var item = {
- label: editorParams.listItemFormatter ? editorParams.listItemFormatter(item.value, item.label) : item.label,
- value: item.value,
- element: false
- };
-
- if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) {
- setCurrentItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
-
- return item;
- }
-
- if (typeof inputValues == "function") {
- inputValues = inputValues(cell);
- }
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
- var item;
-
- if ((typeof value === "undefined" ? "undefined" : _typeof(value)) === "object") {
-
- if (value.options) {
- item = {
- label: value.label,
- group: true,
- element: false
- };
-
- displayList.push(item);
-
- value.options.forEach(function (item) {
- processComplexListItem(item);
- });
- } else {
- processComplexListItem(value);
- }
- } else {
-
- item = {
- label: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value,
- value: value,
- element: false
- };
-
- if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) {
- setCurrentItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- });
- } else {
- for (var key in inputValues) {
- var item = {
- label: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
- value: key,
- element: false
- };
-
- if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) {
- setCurrentItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- }
-
- dataItems = dataList;
- displayItems = displayList;
-
- fillList();
- }
-
- function fillList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }displayItems.forEach(function (item) {
- var el = item.element;
-
- if (!el) {
-
- if (item.group) {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-group");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
- } else {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
-
- el.addEventListener("click", function () {
- setCurrentItem(item);
- chooseItem();
- });
-
- if (item === currentItem) {
- el.classList.add("active");
- }
- }
-
- el.addEventListener("mousedown", function () {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
- }
-
- listEl.appendChild(el);
- });
- }
-
- function setCurrentItem(item) {
-
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- currentItem = item;
- input.value = item.label === " " ? "" : item.label;
-
- if (item.element) {
- item.element.classList.add("active");
- }
- }
-
- function chooseItem() {
- hideList();
-
- if (initialValue !== currentItem.value) {
- initialValue = currentItem.value;
- success(currentItem.value);
- } else {
- cancel();
- }
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function showList() {
- if (!listEl.parentNode) {
-
- if (editorParams.values === true) {
- parseItems(getUniqueColumnValues(), initialDisplayValue);
- } else if (typeof editorParams.values === "string") {
- parseItems(getUniqueColumnValues(editorParams.values), initialDisplayValue);
- } else {
- parseItems(editorParams.values || [], initialDisplayValue);
- }
-
- var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- document.body.appendChild(listEl);
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //style input
- input.setAttribute("type", "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.cursor = "default";
- input.readOnly = this.currentCell != false;
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof initialValue !== "undefined" || initialValue === null ? initialValue : "";
-
- // if(editorParams.values === true){
- // parseItems(getUniqueColumnValues(), initialValue);
- // }else if(typeof editorParams.values === "string"){
- // parseItems(getUniqueColumnValues(editorParams.values), initialValue);
- // }else{
- // parseItems(editorParams.values || [], initialValue);
- // }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(dataItems[index - 1]);
- }
- }
- break;
-
- case 40:
- //down arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < dataItems.length - 1) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < dataItems.length - 1) {
- if (index == -1) {
- setCurrentItem(dataItems[0]);
- } else {
- setCurrentItem(dataItems[index + 1]);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
- break;
-
- case 13:
- //enter
- chooseItem();
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
- }
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- cancelItem();
- }
- });
-
- input.addEventListener("focus", function (e) {
- showList();
- });
-
- //style list element
- listEl = document.createElement("div");
- listEl.classList.add("tabulator-edit-select-list");
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- return input;
- },
-
- //autocomplete
- autocomplete: function autocomplete(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "",
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- allItems = [],
- displayItems = [],
- values = [],
- currentItem = false,
- blurable = true;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- //style input
- input.setAttribute("type", "search");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style list element
- listEl.classList.add("tabulator-edit-select-list");
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create autocomplete lookup list:", field);
- }
-
- return output;
- }
-
- function filterList(term, intialLoad) {
- var matches = [],
- values,
- items,
- searchEl;
-
- //lookup base values list
- if (editorParams.values === true) {
- values = getUniqueColumnValues();
- } else if (typeof editorParams.values === "string") {
- values = getUniqueColumnValues(editorParams.values);
- } else {
- values = editorParams.values || [];
- }
-
- if (editorParams.searchFunc) {
- matches = editorParams.searchFunc(term, values);
-
- if (matches instanceof Promise) {
-
- addNotice(typeof editorParams.searchingPlaceholder !== "undefined" ? editorParams.searchingPlaceholder : "Searching...");
-
- matches.then(function (result) {
- fillListIfNotEmpty(parseItems(result), intialLoad);
- }).catch(function (err) {
- console.err("error in autocomplete search promise:", err);
- });
- } else {
- fillListIfNotEmpty(parseItems(matches), intialLoad);
- }
- } else {
- items = parseItems(values);
-
- if (term === "") {
- if (editorParams.showListOnEmpty) {
- matches = items;
- }
- } else {
- items.forEach(function (item) {
- if (item.value !== null || typeof item.value !== "undefined") {
- if (String(item.value).toLowerCase().indexOf(String(term).toLowerCase()) > -1 || String(item.title).toLowerCase().indexOf(String(term).toLowerCase()) > -1) {
- matches.push(item);
- }
- }
- });
- }
-
- fillListIfNotEmpty(matches, intialLoad);
- }
- }
-
- function addNotice(notice) {
- var searchEl = document.createElement("div");
-
- clearList();
-
- if (notice !== false) {
- searchEl.classList.add("tabulator-edit-select-list-notice");
- searchEl.tabIndex = 0;
-
- if (notice instanceof Node) {
- searchEl.appendChild(notice);
- } else {
- searchEl.innerHTML = notice;
- }
-
- listEl.appendChild(searchEl);
- }
- }
-
- function parseItems(inputValues) {
- var itemList = [];
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
- var item = {
- title: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value,
- value: value
- };
-
- itemList.push(item);
- });
- } else {
- for (var key in inputValues) {
- var item = {
- title: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
- value: key
- };
-
- itemList.push(item);
- }
- }
-
- return itemList;
- }
-
- function clearList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }
- }
-
- function fillListIfNotEmpty(items, intialLoad) {
- if (items.length) {
- fillList(items, intialLoad);
- } else {
- if (editorParams.emptyPlaceholder) {
- addNotice(editorParams.emptyPlaceholder);
- }
- }
- }
-
- function fillList(items, intialLoad) {
- var current = false;
-
- clearList();
-
- displayItems = items;
-
- displayItems.forEach(function (item) {
- var el = item.element;
-
- if (!el) {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.title;
-
- el.addEventListener("click", function (e) {
- setCurrentItem(item);
- chooseItem();
- });
-
- el.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
-
- if (intialLoad && item.value == initialValue) {
- input.value = item.title;
- item.element.classList.add("active");
- current = true;
- }
-
- if (item === currentItem) {
- item.element.classList.add("active");
- current = true;
- }
- }
-
- listEl.appendChild(el);
- });
-
- if (!current) {
- setCurrentItem(false);
- }
- }
-
- function chooseItem() {
- hideList();
-
- if (currentItem) {
- if (initialValue !== currentItem.value) {
- initialValue = currentItem.value;
- input.value = currentItem.title;
- success(currentItem.value);
- } else {
- cancel();
- }
- } else {
- if (editorParams.freetext) {
- initialValue = input.value;
- success(input.value);
- } else {
- if (editorParams.allowEmpty && input.value === "") {
- initialValue = input.value;
- success(input.value);
- } else {
- cancel();
- }
- }
- }
- }
-
- function showList() {
- if (!listEl.parentNode) {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
- document.body.appendChild(listEl);
- }
- }
-
- function setCurrentItem(item, showInputValue) {
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- currentItem = item;
-
- if (item && item.element) {
- item.element.classList.add("active");
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(displayItems[index - 1]);
- } else {
- setCurrentItem(false);
- }
- }
- break;
-
- case 40:
- //down arrow
-
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < displayItems.length - 1) {
-
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < displayItems.length - 1) {
- if (index == -1) {
- setCurrentItem(displayItems[0]);
- } else {
- setCurrentItem(displayItems[index + 1]);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
- break;
-
- case 13:
- //enter
- chooseItem();
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
-
- case 36: //home
- case 35:
- //end
- //prevent table navigation while using input element
- e.stopImmediatePropagation();
- break;
- }
- });
-
- input.addEventListener("keyup", function (e) {
-
- switch (e.keyCode) {
- case 38: //up arrow
- case 37: //left arrow
- case 39: //up arrow
- case 40: //right arrow
- case 13: //enter
- case 27:
- //escape
- break;
-
- default:
- filterList(input.value);
- }
- });
-
- input.addEventListener("search", function (e) {
- filterList(input.value);
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- chooseItem();
- }
- });
-
- input.addEventListener("focus", function (e) {
- var value = initialDisplayValue;
- showList();
- input.value = value;
- filterList(value, true);
- });
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //start rating
- star: function star(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- element = cell.getElement(),
- value = cell.getValue(),
- maxStars = element.getElementsByTagName("svg").length || 5,
- size = element.getElementsByTagName("svg")[0] ? element.getElementsByTagName("svg")[0].getAttribute("width") : 14,
- stars = [],
- starsHolder = document.createElement("div"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg");
-
- //change star type
- function starChange(val) {
- stars.forEach(function (star, i) {
- if (i < val) {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-active");
- } else {
- star.classList.replace("tabulator-star-inactive", "tabulator-star-active");
- }
-
- star.innerHTML = '<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- } else {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-inactive");
- } else {
- star.classList.replace("tabulator-star-active", "tabulator-star-inactive");
- }
-
- star.innerHTML = '<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- }
- });
- }
-
- //build stars
- function buildStar(i) {
-
- var starHolder = document.createElement("span");
- var nextStar = star.cloneNode(true);
-
- stars.push(nextStar);
-
- starHolder.addEventListener("mouseenter", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- starChange(i);
- });
-
- starHolder.addEventListener("mousemove", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- });
-
- starHolder.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- success(i);
- });
-
- starHolder.appendChild(nextStar);
- starsHolder.appendChild(starHolder);
- }
-
- //handle keyboard navigation value change
- function changeValue(val) {
- value = val;
- starChange(val);
- }
-
- //style cell
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- //style holding element
- starsHolder.style.verticalAlign = "middle";
- starsHolder.style.display = "inline-block";
- starsHolder.style.padding = "4px";
-
- //style star
- star.setAttribute("width", size);
- star.setAttribute("height", size);
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- starsHolder.setAttribute(key, starsHolder.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- starsHolder.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //create correct number of stars
- for (var i = 1; i <= maxStars; i++) {
- buildStar(i);
- }
-
- //ensure value does not exceed number of stars
- value = Math.min(parseInt(value), maxStars);
-
- // set initial styling of stars
- starChange(value);
-
- starsHolder.addEventListener("mousemove", function (e) {
- starChange(0);
- });
-
- starsHolder.addEventListener("click", function (e) {
- success(0);
- });
-
- element.addEventListener("blur", function (e) {
- cancel();
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- changeValue(value + 1);
- break;
-
- case 37:
- //left arrow
- changeValue(value - 1);
- break;
-
- case 13:
- //enter
- success(value);
- break;
-
- case 27:
- //escape
- cancel();
- break;
- }
- });
-
- return starsHolder;
- },
-
- //draggable progress bar
- progress: function progress(cell, onRendered, success, cancel, editorParams) {
- var element = cell.getElement(),
- max = typeof editorParams.max === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("max") || 100 : editorParams.max,
- min = typeof editorParams.min === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("min") || 0 : editorParams.min,
- percent = (max - min) / 100,
- value = cell.getValue() || 0,
- handle = document.createElement("div"),
- bar = document.createElement("div"),
- mouseDrag,
- mouseDragWidth;
-
- //set new value
- function updateValue() {
- var calcVal = percent * Math.round(bar.offsetWidth / (element.clientWidth / 100)) + min;
- success(calcVal);
- element.setAttribute("aria-valuenow", calcVal);
- element.setAttribute("aria-label", value);
- }
-
- //style handle
- handle.style.position = "absolute";
- handle.style.right = "0";
- handle.style.top = "0";
- handle.style.bottom = "0";
- handle.style.width = "5px";
- handle.classList.add("tabulator-progress-handle");
-
- //style bar
- bar.style.display = "inline-block";
- bar.style.position = "relative";
- // bar.style.top = "8px";
- // bar.style.bottom = "8px";
- // bar.style.left = "4px";
- // bar.style.marginRight = "4px";
- bar.style.height = "100%";
- bar.style.backgroundColor = "#488CE9";
- bar.style.maxWidth = "100%";
- bar.style.minWidth = "0%";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- bar.setAttribute(key, bar.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- bar.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style cell
- element.style.padding = "4px 4px";
-
- //make sure value is in range
- value = Math.min(parseFloat(value), max);
- value = Math.max(parseFloat(value), min);
-
- //workout percentage
- value = Math.round((value - min) / percent);
- // bar.style.right = value + "%";
- bar.style.width = value + "%";
-
- element.setAttribute("aria-valuemin", min);
- element.setAttribute("aria-valuemax", max);
-
- bar.appendChild(handle);
-
- handle.addEventListener("mousedown", function (e) {
- mouseDrag = e.screenX;
- mouseDragWidth = bar.offsetWidth;
- });
-
- handle.addEventListener("mouseover", function () {
- handle.style.cursor = "ew-resize";
- });
-
- element.addEventListener("mousemove", function (e) {
- if (mouseDrag) {
- bar.style.width = mouseDragWidth + e.screenX - mouseDrag + "px";
- }
- });
-
- element.addEventListener("mouseup", function (e) {
- if (mouseDrag) {
- e.stopPropagation();
- e.stopImmediatePropagation();
-
- mouseDrag = false;
- mouseDragWidth = false;
-
- updateValue();
- }
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth + element.clientWidth / 100 + "px";
- break;
-
- case 37:
- //left arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth - element.clientWidth / 100 + "px";
- break;
-
- case 9: //tab
- case 13:
- //enter
- updateValue();
- break;
-
- case 27:
- //escape
- cancel();
- break;
-
- }
- });
-
- element.addEventListener("blur", function () {
- cancel();
- });
-
- return bar;
- },
-
- //checkbox
- tickCross: function tickCross(cell, onRendered, success, cancel, editorParams) {
- var value = cell.getValue(),
- input = document.createElement("input"),
- tristate = editorParams.tristate,
- indetermValue = typeof editorParams.indeterminateValue === "undefined" ? null : editorParams.indeterminateValue,
- indetermState = false;
-
- input.setAttribute("type", "checkbox");
- input.style.marginTop = "5px";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- if (tristate && (typeof value === "undefined" || value === indetermValue || value === "")) {
- indetermState = true;
- input.indeterminate = true;
- }
-
- if (this.table.browser != "firefox") {
- //prevent blur issue on mac firefox
- onRendered(function () {
- input.focus({ preventScroll: true });
- });
- }
-
- input.checked = value === true || value === "true" || value === "True" || value === 1;
-
- function setValue(blur) {
- if (tristate) {
- if (!blur) {
- if (input.checked && !indetermState) {
- input.checked = false;
- input.indeterminate = true;
- indetermState = true;
- return indetermValue;
- } else {
- indetermState = false;
- return input.checked;
- }
- } else {
- if (indetermState) {
- return indetermValue;
- } else {
- return input.checked;
- }
- }
- } else {
- return input.checked;
- }
- }
-
- //submit new value on blur
- input.addEventListener("change", function (e) {
- success(setValue());
- });
-
- input.addEventListener("blur", function (e) {
- success(setValue(true));
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- if (e.keyCode == 13) {
- success(setValue());
- }
- if (e.keyCode == 27) {
- cancel();
- }
- });
-
- return input;
- }
-};
-
-Tabulator.prototype.registerModule("edit", Edit);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Edit=function(e){this.table=e,this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1};Edit.prototype.initializeColumn=function(e){var t=this,i={editor:!1,blocked:!1,check:e.definition.editable,params:e.definition.editorParams||{}};switch(_typeof(e.definition.editor)){case"string":"tick"===e.definition.editor&&(e.definition.editor="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.editor]?i.editor=t.editors[e.definition.editor]:console.warn("Editor Error - No such editor found: ",e.definition.editor);break;case"function":i.editor=e.definition.editor;break;case"boolean":!0===e.definition.editor&&("function"!=typeof e.definition.formatter?("tick"===e.definition.formatter&&(e.definition.formatter="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.formatter]?i.editor=t.editors[e.definition.formatter]:i.editor=t.editors.input):console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",e.definition.formatter))}i.editor&&(e.modules.edit=i)},Edit.prototype.getCurrentCell=function(){return!!this.currentCell&&this.currentCell.getComponent()},Edit.prototype.clearEditor=function(){var e,t=this.currentCell;if(this.invalidEdit=!1,t){for(this.currentCell=!1,e=t.getElement(),e.classList.remove("tabulator-validation-fail"),e.classList.remove("tabulator-editing");e.firstChild;)e.removeChild(e.firstChild);t.row.getElement().classList.remove("tabulator-row-editing")}},Edit.prototype.cancelEdit=function(){if(this.currentCell){var e=this.currentCell,t=this.currentCell.getComponent();this.clearEditor(),e.setValueActual(e.getValue()),e.cellRendered(),e.column.cellEvents.cellEditCancelled&&e.column.cellEvents.cellEditCancelled.call(this.table,t),this.table.options.cellEditCancelled.call(this.table,t)}},Edit.prototype.bindEditor=function(e){var t=this,i=e.getElement();i.setAttribute("tabindex",0),i.addEventListener("click",function(e){i.classList.contains("tabulator-editing")||i.focus({preventScroll:!0})}),i.addEventListener("mousedown",function(e){t.mouseClick=!0}),i.addEventListener("focus",function(i){t.recursionBlock||t.edit(e,i,!1)})},Edit.prototype.focusCellNoEvent=function(e,t){this.recursionBlock=!0,t&&"ie"===this.table.browser||e.getElement().focus({preventScroll:!0}),this.recursionBlock=!1},Edit.prototype.editCell=function(e,t){this.focusCellNoEvent(e),this.edit(e,!1,t)},Edit.prototype.focusScrollAdjust=function(e){if("virtual"==this.table.rowManager.getRenderMode()){var t=this.table.rowManager.element.scrollTop,i=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,n=e.row.getElement();n.offsetTop;n.offsetTop<t?this.table.rowManager.element.scrollTop-=t-n.offsetTop:n.offsetTop+n.offsetHeight>i&&(this.table.rowManager.element.scrollTop+=n.offsetTop+n.offsetHeight-i)}},Edit.prototype.edit=function(e,t,i){function n(t){if(u.currentCell===e){var i=!0;return e.column.modules.validate&&u.table.modExists("validate")&&(i=u.table.modules.validate.validate(e.column.modules.validate,e.getComponent(),t)),!0===i?(u.clearEditor(),e.setValue(t,!0),u.table.options.dataTree&&u.table.modExists("dataTree")&&u.table.modules.dataTree.checkForRestyle(e),!0):(u.invalidEdit=!0,m.classList.add("tabulator-validation-fail"),u.focusCellNoEvent(e,!0),c(),u.table.options.validationFailed.call(u.table,e.getComponent(),t,i),!1)}}function a(){u.currentCell===e&&(u.cancelEdit(),u.table.options.dataTree&&u.table.modExists("dataTree")&&u.table.modules.dataTree.checkForRestyle(e))}function o(e){c=e}var r,l,s,u=this,d=!0,c=function(){},m=e.getElement();if(this.currentCell)return void(this.invalidEdit||this.cancelEdit());if(e.column.modules.edit.blocked)return this.mouseClick=!1,m.blur(),!1;switch(t&&t.stopPropagation(),_typeof(e.column.modules.edit.check)){case"function":d=e.column.modules.edit.check(e.getComponent());break;case"boolean":d=e.column.modules.edit.check}if(d||i){if(u.cancelEdit(),u.currentCell=e,this.focusScrollAdjust(e),l=e.getComponent(),this.mouseClick&&(this.mouseClick=!1,e.column.cellEvents.cellClick&&e.column.cellEvents.cellClick.call(this.table,t,l)),e.column.cellEvents.cellEditing&&e.column.cellEvents.cellEditing.call(this.table,l),u.table.options.cellEditing.call(this.table,l),s="function"==typeof e.column.modules.edit.params?e.column.modules.edit.params(l):e.column.modules.edit.params,!1===(r=e.column.modules.edit.editor.call(u,l,o,n,a,s)))return m.blur(),!1;if(!(r instanceof Node))return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",r),m.blur(),!1;for(m.classList.add("tabulator-editing"),e.row.getElement().classList.add("tabulator-row-editing");m.firstChild;)m.removeChild(m.firstChild);m.appendChild(r),c();for(var f=m.children,p=0;p<f.length;p++)f[p].addEventListener("click",function(e){e.stopPropagation()});return!0}return this.mouseClick=!1,m.blur(),!1},Edit.prototype.maskInput=function(e,t){function i(t){var l=n[t];void 0!==l&&l!==r&&l!==a&&l!==o&&(e.value=e.value+""+l,i(t+1))}var n=t.mask,a=void 0!==t.maskLetterChar?t.maskLetterChar:"A",o=void 0!==t.maskNumberChar?t.maskNumberChar:"9",r=void 0!==t.maskWildcardChar?t.maskWildcardChar:"*",l=!1;e.addEventListener("keydown",function(t){var i=e.value.length,s=t.key;if(t.keyCode>46){if(i>=n.length)return t.preventDefault(),t.stopPropagation(),l=!1,!1;switch(n[i]){case a:if(s.toUpperCase()==s.toLowerCase())return t.preventDefault(),t.stopPropagation(),l=!1,!1;break;case o:if(isNaN(s))return t.preventDefault(),t.stopPropagation(),l=!1,!1;break;case r:break;default:if(s!==n[i])return t.preventDefault(),t.stopPropagation(),l=!1,!1}l=!0}}),e.addEventListener("keyup",function(n){n.keyCode>46&&t.maskAutoFill&&i(e.value.length)}),e.placeholder||(e.placeholder=n),t.maskAutoFill&&i(e.value.length)},Edit.prototype.editors={input:function(e,t,i,n,a){function o(e){(null===r||void 0===r)&&""!==l.value||l.value!==r?i(l.value)&&(r=l.value):n()}var r=e.getValue(),l=document.createElement("input");if(l.setAttribute("type",a.search?"search":"text"),l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var s in a.elementAttributes)"+"==s.charAt(0)?(s=s.slice(1),l.setAttribute(s,l.getAttribute(s)+a.elementAttributes["+"+s])):l.setAttribute(s,a.elementAttributes[s]);return l.value=void 0!==r?r:"",t(function(){l.focus({preventScroll:!0}),l.style.height="100%"}),l.addEventListener("change",o),l.addEventListener("blur",o),l.addEventListener("keydown",function(e){switch(e.keyCode){case 13:o(e);break;case 27:n()}}),a.mask&&this.table.modules.edit.maskInput(l,a),l},textarea:function(e,t,i,n,a){function o(t){(null===r||void 0===r)&&""!==u.value||u.value!==r?(i(u.value)&&(r=u.value),setTimeout(function(){e.getRow().normalizeHeight()},300)):n()}var r=e.getValue(),l=a.verticalNavigation||"hybrid",s=String(null!==r&&void 0!==r?r:""),u=(s.match(/(?:\r\n|\r|\n)/g),document.createElement("textarea")),d=0;if(u.style.display="block",u.style.padding="2px",u.style.height="100%",u.style.width="100%",u.style.boxSizing="border-box",u.style.whiteSpace="pre-wrap",u.style.resize="none",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var c in a.elementAttributes)"+"==c.charAt(0)?(c=c.slice(1),u.setAttribute(c,u.getAttribute(c)+a.elementAttributes["+"+c])):u.setAttribute(c,a.elementAttributes[c]);return u.value=s,t(function(){u.focus({preventScroll:!0}),u.style.height="100%"}),u.addEventListener("change",o),u.addEventListener("blur",o),u.addEventListener("keyup",function(){u.style.height="";var t=u.scrollHeight;u.style.height=t+"px",t!=d&&(d=t,e.getRow().normalizeHeight())}),u.addEventListener("keydown",function(e){switch(e.keyCode){case 27:n();break;case 38:("editor"==l||"hybrid"==l&&u.selectionStart)&&(e.stopImmediatePropagation(),e.stopPropagation());break;case 40:("editor"==l||"hybrid"==l&&u.selectionStart!==u.value.length)&&(e.stopImmediatePropagation(),e.stopPropagation())}}),a.mask&&this.table.modules.edit.maskInput(u,a),u},number:function(e,t,i,n,a){function o(){var e=s.value;isNaN(e)||""===e||(e=Number(e)),e!==r?i(e)&&(r=e):n()}var r=e.getValue(),l=a.verticalNavigation||"editor",s=document.createElement("input");if(s.setAttribute("type","number"),void 0!==a.max&&s.setAttribute("max",a.max),void 0!==a.min&&s.setAttribute("min",a.min),void 0!==a.step&&s.setAttribute("step",a.step),s.style.padding="4px",s.style.width="100%",s.style.boxSizing="border-box",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var u in a.elementAttributes)"+"==u.charAt(0)?(u=u.slice(1),s.setAttribute(u,s.getAttribute(u)+a.elementAttributes["+"+u])):s.setAttribute(u,a.elementAttributes[u]);s.value=r;var d=function(e){o()};return t(function(){s.removeEventListener("blur",d),s.focus({preventScroll:!0}),s.style.height="100%",s.addEventListener("blur",d)}),s.addEventListener("keydown",function(e){switch(e.keyCode){case 13:o();break;case 27:n();break;case 38:case 40:"editor"==l&&(e.stopImmediatePropagation(),e.stopPropagation())}}),a.mask&&this.table.modules.edit.maskInput(s,a),s},range:function(e,t,i,n,a){function o(){var e=l.value;isNaN(e)||""===e||(e=Number(e)),e!=r?i(e)&&(r=e):n()}var r=e.getValue(),l=document.createElement("input");if(l.setAttribute("type","range"),void 0!==a.max&&l.setAttribute("max",a.max),void 0!==a.min&&l.setAttribute("min",a.min),void 0!==a.step&&l.setAttribute("step",a.step),l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var s in a.elementAttributes)"+"==s.charAt(0)?(s=s.slice(1),l.setAttribute(s,l.getAttribute(s)+a.elementAttributes["+"+s])):l.setAttribute(s,a.elementAttributes[s]);return l.value=r,t(function(){l.focus({preventScroll:!0}),l.style.height="100%"}),l.addEventListener("blur",function(e){o()}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 13:case 9:o();break;case 27:n()}}),l},select:function(e,t,i,n,a){function o(t){var i,n={},o=p.table.getData();return i=t?p.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),i?(o.forEach(function(e){var t=i.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(n[t]=!0)}),n=a.sortValuesList?"asc"==a.sortValuesList?Object.keys(n).sort():Object.keys(n).sort().reverse():Object.keys(n)):console.warn("unable to find matching column to create select lookup list:",t),n}function r(t,i){function n(e){var e={label:a.listItemFormatter?a.listItemFormatter(e.value,e.label):e.label,value:e.value,element:!1};return e.value!==i&&(isNaN(parseFloat(e.value))||isNaN(parseFloat(e.value))||parseFloat(e.value)!==parseFloat(i))||s(e),o.push(e),r.push(e),e}var o=[],r=[];if("function"==typeof t&&(t=t(e)),Array.isArray(t))t.forEach(function(e){var t;"object"===(void 0===e?"undefined":_typeof(e))?e.options?(t={label:e.label,group:!0,element:!1},r.push(t),e.options.forEach(function(e){n(e)})):n(e):(t={label:a.listItemFormatter?a.listItemFormatter(e,e):e,value:e,element:!1},t.value!==i&&(isNaN(parseFloat(t.value))||isNaN(parseFloat(t.value))||parseFloat(t.value)!==parseFloat(i))||s(t),o.push(t),r.push(t))});else for(var u in t){var d={label:a.listItemFormatter?a.listItemFormatter(u,t[u]):t[u],value:u,element:!1};d.value!==i&&(isNaN(parseFloat(d.value))||isNaN(parseFloat(d.value))||parseFloat(d.value)!==parseFloat(i))||s(d),o.push(d),r.push(d)}k=o,A=r,l()}function l(){for(;E.firstChild;)E.removeChild(E.firstChild);A.forEach(function(e){var t=e.element;t||(e.group?(t=document.createElement("div"),t.classList.add("tabulator-edit-select-list-group"),t.tabIndex=0,t.innerHTML=""===e.label?" ":e.label):(t=document.createElement("div"),t.classList.add("tabulator-edit-select-list-item"),t.tabIndex=0,t.innerHTML=""===e.label?" ":e.label,t.addEventListener("click",function(){s(e),u()}),e===C&&t.classList.add("active")),t.addEventListener("mousedown",function(){w=!1,setTimeout(function(){w=!0},10)}),e.element=t),E.appendChild(t)})}function s(e){C&&C.element&&C.element.classList.remove("active"),C=e,y.value=" "===e.label?"":e.label,e.element&&e.element.classList.add("active")}function u(){m(),b!==C.value?(b=C.value,i(C.value)):n()}function d(){m(),n()}function c(){if(!E.parentNode){!0===a.values?r(o(),g):"string"==typeof a.values?r(o(a.values),g):r(a.values||[],g);var e=Tabulator.prototype.helpers.elOffset(v);E.style.minWidth=v.offsetWidth+"px",E.style.top=e.top+v.offsetHeight+"px",E.style.left=e.left+"px",E.addEventListener("mousedown",function(e){w=!1,setTimeout(function(){w=!0},10)}),document.body.appendChild(E)}}function m(){E.parentNode&&E.parentNode.removeChild(E),f()}function f(){p.table.rowManager.element.removeEventListener("scroll",d)}var p=this,v=e.getElement(),b=e.getValue(),h=a.verticalNavigation||"editor",g=void 0!==b||null===b?b:void 0!==a.defaultValue?a.defaultValue:"",y=document.createElement("input"),E=document.createElement("div"),k=[],A=[],C={},w=!0;if(this.table.rowManager.element.addEventListener("scroll",d),(Array.isArray(a)||!Array.isArray(a)&&"object"===(void 0===a?"undefined":_typeof(a))&&!a.values)&&(console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object"),a={values:a}),y.setAttribute("type","text"),y.style.padding="4px",y.style.width="100%",y.style.boxSizing="border-box",y.style.cursor="default",y.readOnly=0!=this.currentCell,a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var L in a.elementAttributes)"+"==L.charAt(0)?(L=L.slice(1),y.setAttribute(L,y.getAttribute(L)+a.elementAttributes["+"+L])):y.setAttribute(L,a.elementAttributes[L]);return y.value=void 0!==b||null===b?b:"",y.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=k.indexOf(C),("editor"==h||"hybrid"==h&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t>0&&s(k[t-1]));break;case 40:t=k.indexOf(C),("editor"==h||"hybrid"==h&&t<k.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<k.length-1&&s(-1==t?k[0]:k[t+1]));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault();break;case 13:u();break;case 27:d()}}),y.addEventListener("blur",function(e){w&&d()}),y.addEventListener("focus",function(e){c()}),E=document.createElement("div"),E.classList.add("tabulator-edit-select-list"),t(function(){y.style.height="100%",y.focus({preventScroll:!0})}),y},autocomplete:function(e,t,i,n,a){function o(t){var i,n={},o=g.table.getData();return i=t?g.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),i?(o.forEach(function(e){var t=i.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(n[t]=!0)}),n=a.sortValuesList?"asc"==a.sortValuesList?Object.keys(n).sort():Object.keys(n).sort().reverse():Object.keys(n)):console.warn("unable to find matching column to create autocomplete lookup list:",t),n}function r(e,t){var i,n,r=[];i=!0===a.values?o():"string"==typeof a.values?o(a.values):a.values||[],a.searchFunc?(r=a.searchFunc(e,i),r instanceof Promise?(l(void 0!==a.searchingPlaceholder?a.searchingPlaceholder:"Searching..."),r.then(function(e){d(s(e),t)}).catch(function(e){console.err("error in autocomplete search promise:",e)})):d(s(r),t)):(n=s(i),""===e?a.showListOnEmpty&&(r=n):n.forEach(function(t){null===t.value&&void 0===t.value||(String(t.value).toLowerCase().indexOf(String(e).toLowerCase())>-1||String(t.title).toLowerCase().indexOf(String(e).toLowerCase())>-1)&&r.push(t)}),d(r,t))}function l(e){var t=document.createElement("div");u(),!1!==e&&(t.classList.add("tabulator-edit-select-list-notice"),t.tabIndex=0,e instanceof Node?t.appendChild(e):t.innerHTML=e,w.appendChild(t))}function s(e){var t=[];if(Array.isArray(e))e.forEach(function(e){var i={title:a.listItemFormatter?a.listItemFormatter(e,e):e,value:e};t.push(i)});else for(var i in e){var n={title:a.listItemFormatter?a.listItemFormatter(i,e[i]):e[i],value:i};t.push(n)}return t}function u(){for(;w.firstChild;)w.removeChild(w.firstChild)}function d(e,t){e.length?c(e,t):a.emptyPlaceholder&&l(a.emptyPlaceholder)}function c(e,t){var i=!1;u(),L=e,L.forEach(function(e){var n=e.element;n||(n=document.createElement("div"),n.classList.add("tabulator-edit-select-list-item"),n.tabIndex=0,n.innerHTML=e.title,n.addEventListener("click",function(t){p(e),m()}),n.addEventListener("mousedown",function(e){N=!1,setTimeout(function(){N=!0},10)}),e.element=n,t&&e.value==E&&(C.value=e.title,e.element.classList.add("active"),i=!0),e===x&&(e.element.classList.add("active"),i=!0)),w.appendChild(n)}),i||p(!1)}function m(){v(),x?E!==x.value?(E=x.value,C.value=x.title,i(x.value)):n():a.freetext?(E=C.value,i(C.value)):a.allowEmpty&&""===C.value?(E=C.value,i(C.value)):n()}function f(){if(!w.parentNode){for(;w.firstChild;)w.removeChild(w.firstChild);var e=Tabulator.prototype.helpers.elOffset(y);w.style.minWidth=y.offsetWidth+"px",w.style.top=e.top+y.offsetHeight+"px",w.style.left=e.left+"px",document.body.appendChild(w)}}function p(e,t){x&&x.element&&x.element.classList.remove("active"),x=e,e&&e.element&&e.element.classList.add("active")}function v(){w.parentNode&&w.parentNode.removeChild(w),h()}function b(){v(),n()}function h(){g.table.rowManager.element.removeEventListener("scroll",b)}var g=this,y=e.getElement(),E=e.getValue(),k=a.verticalNavigation||"editor",A=void 0!==E||null===E?E:void 0!==a.defaultValue?a.defaultValue:"",C=document.createElement("input"),w=document.createElement("div"),L=[],x=!1,N=!0;if(this.table.rowManager.element.addEventListener("scroll",b),C.setAttribute("type","search"),C.style.padding="4px",C.style.width="100%",C.style.boxSizing="border-box",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var P in a.elementAttributes)"+"==P.charAt(0)?(P=P.slice(1),C.setAttribute(P,C.getAttribute(P)+a.elementAttributes["+"+P])):C.setAttribute(P,a.elementAttributes[P]);return w.classList.add("tabulator-edit-select-list"),w.addEventListener("mousedown",function(e){N=!1,setTimeout(function(){N=!0},10)}),C.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=L.indexOf(x),("editor"==k||"hybrid"==k&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),p(t>0?L[t-1]:!1));break;case 40:t=L.indexOf(x),("editor"==k||"hybrid"==k&&t<L.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<L.length-1&&p(-1==t?L[0]:L[t+1]));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault();break;case 13:m();break;case 27:b();break;case 36:case 35:e.stopImmediatePropagation()}}),C.addEventListener("keyup",function(e){switch(e.keyCode){case 38:case 37:case 39:case 40:case 13:case 27:break;default:r(C.value)}}),C.addEventListener("search",function(e){r(C.value)}),C.addEventListener("blur",function(e){N&&m()}),C.addEventListener("focus",function(e){var t=A;f(),C.value=t,r(t,!0)}),t(function(){C.style.height="100%",C.focus({preventScroll:!0})}),a.mask&&this.table.modules.edit.maskInput(C,a),C},star:function(e,t,i,n,a){function o(e){m.forEach(function(t,i){i<e?("ie"==l.table.browser?t.setAttribute("class","tabulator-star-active"):t.classList.replace("tabulator-star-inactive","tabulator-star-active"),t.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'):("ie"==l.table.browser?t.setAttribute("class","tabulator-star-inactive"):t.classList.replace("tabulator-star-active","tabulator-star-inactive"),t.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>')})}function r(e){u=e,o(e)}var l=this,s=e.getElement(),u=e.getValue(),d=s.getElementsByTagName("svg").length||5,c=s.getElementsByTagName("svg")[0]?s.getElementsByTagName("svg")[0].getAttribute("width"):14,m=[],f=document.createElement("div"),p=document.createElementNS("http://www.w3.org/2000/svg","svg");if(s.style.whiteSpace="nowrap",s.style.overflow="hidden",s.style.textOverflow="ellipsis",f.style.verticalAlign="middle",f.style.display="inline-block",f.style.padding="4px",p.setAttribute("width",c),p.setAttribute("height",c),p.setAttribute("viewBox","0 0 512 512"),p.setAttribute("xml:space","preserve"),p.style.padding="0 1px",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var v in a.elementAttributes)"+"==v.charAt(0)?(v=v.slice(1),f.setAttribute(v,f.getAttribute(v)+a.elementAttributes["+"+v])):f.setAttribute(v,a.elementAttributes[v]);for(var b=1;b<=d;b++)!function(e){var t=document.createElement("span"),n=p.cloneNode(!0);m.push(n),t.addEventListener("mouseenter",function(t){t.stopPropagation(),t.stopImmediatePropagation(),o(e)}),t.addEventListener("mousemove",function(e){e.stopPropagation(),e.stopImmediatePropagation()}),t.addEventListener("click",function(t){t.stopPropagation(),t.stopImmediatePropagation(),i(e)}),t.appendChild(n),f.appendChild(t)}(b);return u=Math.min(parseInt(u),d),o(u),f.addEventListener("mousemove",function(e){o(0)}),f.addEventListener("click",function(e){i(0)}),s.addEventListener("blur",function(e){n()}),s.addEventListener("keydown",function(e){switch(e.keyCode){case 39:r(u+1);break;case 37:r(u-1);break;case 13:i(u);break;case 27:n()}}),f},progress:function(e,t,i,n,a){function o(){var e=c*Math.round(p.offsetWidth/(s.clientWidth/100))+d;i(e),s.setAttribute("aria-valuenow",e),s.setAttribute("aria-label",m)}var r,l,s=e.getElement(),u=void 0===a.max?s.getElementsByTagName("div")[0].getAttribute("max")||100:a.max,d=void 0===a.min?s.getElementsByTagName("div")[0].getAttribute("min")||0:a.min,c=(u-d)/100,m=e.getValue()||0,f=document.createElement("div"),p=document.createElement("div");if(f.style.position="absolute",f.style.right="0",f.style.top="0",f.style.bottom="0",f.style.width="5px",f.classList.add("tabulator-progress-handle"),p.style.display="inline-block",p.style.position="relative",p.style.height="100%",p.style.backgroundColor="#488CE9",p.style.maxWidth="100%",p.style.minWidth="0%",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var v in a.elementAttributes)"+"==v.charAt(0)?(v=v.slice(1),p.setAttribute(v,p.getAttribute(v)+a.elementAttributes["+"+v])):p.setAttribute(v,a.elementAttributes[v]);return s.style.padding="4px 4px",m=Math.min(parseFloat(m),u),m=Math.max(parseFloat(m),d),m=Math.round((m-d)/c),p.style.width=m+"%",s.setAttribute("aria-valuemin",d),s.setAttribute("aria-valuemax",u),p.appendChild(f),f.addEventListener("mousedown",function(e){r=e.screenX,l=p.offsetWidth}),f.addEventListener("mouseover",function(){f.style.cursor="ew-resize"}),s.addEventListener("mousemove",function(e){r&&(p.style.width=l+e.screenX-r+"px")}),s.addEventListener("mouseup",function(e){r&&(e.stopPropagation(),e.stopImmediatePropagation(),r=!1,l=!1,o())}),s.addEventListener("keydown",function(e){switch(e.keyCode){case 39:e.preventDefault(),p.style.width=p.clientWidth+s.clientWidth/100+"px";break;case 37:e.preventDefault(),p.style.width=p.clientWidth-s.clientWidth/100+"px";break;case 9:case 13:o();break;case 27:n()}}),s.addEventListener("blur",function(){n()}),p},tickCross:function(e,t,i,n,a){function o(e){return s?e?d?u:l.checked:l.checked&&!d?(l.checked=!1,l.indeterminate=!0,d=!0,u):(d=!1,l.checked):l.checked}var r=e.getValue(),l=document.createElement("input"),s=a.tristate,u=void 0===a.indeterminateValue?null:a.indeterminateValue,d=!1;if(l.setAttribute("type","checkbox"),l.style.marginTop="5px",l.style.boxSizing="border-box",a.elementAttributes&&"object"==_typeof(a.elementAttributes))for(var c in a.elementAttributes)"+"==c.charAt(0)?(c=c.slice(1),l.setAttribute(c,l.getAttribute(c)+a.elementAttributes["+"+c])):l.setAttribute(c,a.elementAttributes[c]);return l.value=r,!s||void 0!==r&&r!==u&&""!==r||(d=!0,l.indeterminate=!0),"firefox"!=this.table.browser&&t(function(){l.focus({preventScroll:!0})}),l.checked=!0===r||"true"===r||"True"===r||1===r,l.addEventListener("change",function(e){i(o())}),l.addEventListener("blur",function(e){i(o(!0))}),l.addEventListener("keydown",function(e){13==e.keyCode&&i(o()),27==e.keyCode&&n()}),l}},Tabulator.prototype.registerModule("edit",Edit);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Export = function Export(table) {
- this.table = table; //hold Tabulator object
- this.config = {};
- this.cloneTableStyle = true;
- this.colVisProp = "";
-};
-
-Export.prototype.genereateTable = function (config, style, range, colVisProp) {
- this.cloneTableStyle = style;
- this.config = config || {};
- this.colVisProp = colVisProp;
-
- var table = document.createElement("table");
- table.classList.add("tabulator-print-table");
-
- if (this.config.columnHeaders !== false) {
- table.appendChild(this.generateHeaderElements());
- }
-
- table.appendChild(this.generateBodyElements(this.rowLookup(range)));
-
- this.mapElementStyles(this.table.element, table, ["border-top", "border-left", "border-right", "border-bottom"]);
-
- return table;
-};
-
-Export.prototype.rowLookup = function (range) {
- var _this = this;
-
- var rows = [];
-
- if (typeof range == "function") {
- range.call(this.table).forEach(function (row) {
- row = _this.table.rowManager.findRow(row);
-
- if (row) {
- rows.push(row);
- }
- });
- } else {
- switch (range) {
- case true:
- case "visible":
- rows = this.table.rowManager.getVisibleRows(true);
- break;
-
- case "all":
- rows = this.table.rowManager.rows;
- break;
-
- case "selected":
- rows = this.table.modules.selectRow.selectedRows;
- break;
-
- case "active":
- default:
- rows = this.table.rowManager.getDisplayRows();
- }
- }
-
- return Object.assign([], rows);
-};
-
-Export.prototype.generateColumnGroupHeaders = function () {
- var _this2 = this;
-
- var output = [];
-
- var columns = this.config.columnGroups !== false ? this.table.columnManager.columns : this.table.columnManager.columnsByIndex;
-
- columns.forEach(function (column) {
- var colData = _this2.processColumnGroup(column);
-
- if (colData) {
- output.push(colData);
- }
- });
-
- return output;
-};
-
-Export.prototype.processColumnGroup = function (column) {
- var _this3 = this;
-
- var subGroups = column.columns,
- maxDepth = 0;
-
- var groupData = {
- title: column.definition.title,
- column: column,
- depth: 1
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
- groupData.width = 0;
-
- subGroups.forEach(function (subGroup) {
- var subGroupData = _this3.processColumnGroup(subGroup);
-
- if (subGroupData) {
- groupData.width += subGroupData.width;
- groupData.subGroups.push(subGroupData);
-
- if (subGroupData.depth > maxDepth) {
- maxDepth = subGroupData.depth;
- }
- }
- });
-
- groupData.depth += maxDepth;
-
- if (!groupData.width) {
- return false;
- }
- } else {
- if (this.columnVisCheck(column)) {
- groupData.width = 1;
- } else {
- return false;
- }
- }
-
- return groupData;
-};
-
-Export.prototype.groupHeadersToRows = function (columns) {
-
- var headers = [],
- headerDepth = 0;
-
- function parseColumnGroup(column, level) {
-
- var depth = headerDepth - level;
-
- if (typeof headers[level] === "undefined") {
- headers[level] = [];
- }
-
- column.height = column.subGroups ? 1 : depth - column.depth + 1;
-
- headers[level].push(column);
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- }
- }
-
- //calculate maximum header debth
- columns.forEach(function (column) {
- if (column.depth > headerDepth) {
- headerDepth = column.depth;
- }
- });
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
-
- return headers;
-};
-
-Export.prototype.generateHeaderElements = function () {
- var _this4 = this;
-
- var headerEl = document.createElement("thead");
-
- var rows = this.groupHeadersToRows(this.generateColumnGroupHeaders());
-
- rows.forEach(function (row) {
- var rowEl = document.createElement("tr");
-
- _this4.mapElementStyles(_this4.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
-
- row.forEach(function (column) {
- var cellEl = document.createElement("th");
- var classNames = column.column.definition.cssClass ? column.column.definition.cssClass.split(" ") : [];
-
- cellEl.colSpan = column.width;
- cellEl.rowSpan = column.height;
-
- cellEl.innerHTML = column.column.definition.title;
-
- if (_this4.cloneTableStyle) {
- cellEl.style.boxSizing = "border-box";
- }
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- _this4.mapElementStyles(column.column.getElement(), cellEl, ["text-align", "border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
- _this4.mapElementStyles(column.column.contentElement, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
-
- if (column.column.visible) {
- _this4.mapElementStyles(column.column.getElement(), cellEl, ["width"]);
- } else {
- if (column.column.definition.width) {
- cellEl.style.width = column.column.definition.width + "px";
- }
- }
-
- if (column.column.parent) {
- _this4.mapElementStyles(column.column.parent.groupElement, cellEl, ["border-top"]);
- }
-
- rowEl.appendChild(cellEl);
- });
-
- headerEl.appendChild(rowEl);
- });
-
- return headerEl;
-};
-
-Export.prototype.generateBodyElements = function (rows) {};
-
-Export.prototype.generateBodyElements = function (rows) {
- var _this5 = this;
-
- var oddRow, evenRow, calcRow, firstRow, firstCell, firstGroup, lastCell, styleCells, styleRow, treeElementField, rowFormatter;
-
- //assign row formatter
- rowFormatter = this.table.options["rowFormatter" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))];
- rowFormatter = rowFormatter !== null ? rowFormatter : this.table.options.rowFormatter;
-
- //lookup row styles
- if (this.cloneTableStyle && window.getComputedStyle) {
- oddRow = this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)");
- evenRow = this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)");
- calcRow = this.table.element.querySelector(".tabulator-row.tabulator-calcs");
- firstRow = this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)");
- firstGroup = this.table.element.getElementsByClassName("tabulator-group")[0];
-
- if (firstRow) {
- styleCells = firstRow.getElementsByClassName("tabulator-cell");
- firstCell = styleCells[0];
- lastCell = styleCells[styleCells.length - 1];
- }
- }
-
- var bodyEl = document.createElement("tbody");
-
- var columns = [];
-
- if (this.config.columnCalcs !== false && this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized) {
- rows.unshift(this.table.modules.columnCalcs.topRow);
- }
-
- if (this.table.modules.columnCalcs.botInitialized) {
- rows.push(this.table.modules.columnCalcs.botRow);
- }
- }
-
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (_this5.columnVisCheck(column)) {
- columns.push(column);
- }
- });
-
- if (this.table.options.dataTree && this.config.dataTree !== false && this.table.modExists("columnCalcs")) {
- treeElementField = this.table.modules.dataTree.elementField;
- }
-
- rows = rows.filter(function (row) {
- switch (row.type) {
- case "group":
- return _this5.config.rowGroups !== false;
- break;
-
- case "calc":
- return _this5.config.columnCalcs !== false;
- break;
- }
-
- return true;
- });
-
- if (rows.length > 1000) {
- console.warn("It may take a long time to render an HTML table with more than 1000 rows");
- }
-
- rows.forEach(function (row, i) {
- var rowData = row.getData(_this5.colVisProp);
-
- var rowEl = document.createElement("tr");
- rowEl.classList.add("tabulator-print-table-row");
-
- switch (row.type) {
- case "group":
- var cellEl = document.createElement("td");
- cellEl.colSpan = columns.length;
- cellEl.innerHTML = row.key;
-
- rowEl.classList.add("tabulator-print-table-group");
-
- _this5.mapElementStyles(firstGroup, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
- _this5.mapElementStyles(firstGroup, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
- rowEl.appendChild(cellEl);
- break;
-
- case "calc":
- rowEl.classList.add("tabulator-print-table-calcs");
-
- case "row":
-
- if (_this5.table.options.dataTree && _this5.config.dataTree === false && row.modules.dataTree.parent) {
- return;
- }
-
- columns.forEach(function (column, i) {
- var cellEl = document.createElement("td");
-
- var value = column.getFieldValue(rowData);
-
- var cellWrapper = {
- modules: {},
- getValue: function getValue() {
- return value;
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return cellEl;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getData: function getData() {
- return rowData;
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getComponent: function getComponent() {
- return cellWrapper;
- },
- column: column
- };
-
- var classNames = column.definition.cssClass ? column.definition.cssClass.split(" ") : [];
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- if (_this5.table.modExists("format") && _this5.config.formatCells !== false) {
- value = _this5.table.modules.format.formatExportValue(cellWrapper, _this5.colVisProp);
- } else {
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
- }
-
- if (value instanceof Node) {
- cellEl.appendChild(value);
- } else {
- cellEl.innerHTML = value;
- }
-
- if (firstCell) {
- _this5.mapElementStyles(firstCell, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
-
- if (column.definition.align) {
- cellEl.style.textAlign = column.definition.align;
- }
- }
-
- if (_this5.table.options.dataTree && _this5.config.dataTree !== false) {
- if (treeElementField && treeElementField == column.field || !treeElementField && i == 0) {
- if (row.modules.dataTree.controlEl) {
- cellEl.insertBefore(row.modules.dataTree.controlEl.cloneNode(true), cellEl.firstChild);
- }
- if (row.modules.dataTree.branchEl) {
- cellEl.insertBefore(row.modules.dataTree.branchEl.cloneNode(true), cellEl.firstChild);
- }
- }
- }
-
- rowEl.appendChild(cellEl);
-
- if (cellWrapper.modules.format && cellWrapper.modules.format.renderedCallback) {
- cellWrapper.modules.format.renderedCallback();
- }
- });
-
- styleRow = row.type == "calc" ? calcRow : i % 2 && evenRow ? evenRow : oddRow;
-
- _this5.mapElementStyles(styleRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
-
- if (rowFormatter && _this5.config.formatCells !== false) {
- var rowComponent = row.getComponent();
-
- rowComponent.getElement = function () {
- return rowEl;
- };
-
- rowFormatter(rowComponent);
- }
-
- break;
- }
-
- bodyEl.appendChild(rowEl);
- });
-
- return bodyEl;
-};
-
-Export.prototype.columnVisCheck = function (column) {
- return column.definition[this.colVisProp] !== false && (column.visible || !column.visible && column.definition[this.colVisProp]);
-};
-
-Export.prototype.getHtml = function (visible, style, config, colVisProp) {
- var holder = document.createElement("div");
-
- holder.appendChild(this.genereateTable(config || this.table.options.htmlOutputConfig, style, visible, colVisProp || "htmlOutput"));
-
- return holder.innerHTML;
-};
-
-Export.prototype.mapElementStyles = function (from, to, props) {
- if (this.cloneTableStyle && from && to) {
-
- var lookup = {
- "background-color": "backgroundColor",
- "color": "fontColor",
- "width": "width",
- "font-weight": "fontWeight",
- "font-family": "fontFamily",
- "font-size": "fontSize",
- "text-align": "textAlign",
- "border-top": "borderTop",
- "border-left": "borderLeft",
- "border-right": "borderRight",
- "border-bottom": "borderBottom",
- "padding-top": "paddingTop",
- "padding-left": "paddingLeft",
- "padding-right": "paddingRight",
- "padding-bottom": "paddingBottom"
- };
-
- if (window.getComputedStyle) {
- var fromStyle = window.getComputedStyle(from);
-
- props.forEach(function (prop) {
- to.style[lookup[prop]] = fromStyle.getPropertyValue(prop);
- });
- }
- }
-};
-
-Tabulator.prototype.registerModule("export", Export);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Export=function(t){this.table=t,this.config={},this.cloneTableStyle=!0,this.colVisProp=""};Export.prototype.genereateTable=function(t,e,o,n){this.cloneTableStyle=e,this.config=t||{},this.colVisProp=n;var r=document.createElement("table");return r.classList.add("tabulator-print-table"),!1!==this.config.columnHeaders&&r.appendChild(this.generateHeaderElements()),r.appendChild(this.generateBodyElements(this.rowLookup(o))),this.mapElementStyles(this.table.element,r,["border-top","border-left","border-right","border-bottom"]),r},Export.prototype.rowLookup=function(t){var e=this,o=[];if("function"==typeof t)t.call(this.table).forEach(function(t){(t=e.table.rowManager.findRow(t))&&o.push(t)});else switch(t){case!0:case"visible":o=this.table.rowManager.getVisibleRows(!0);break;case"all":o=this.table.rowManager.rows;break;case"selected":o=this.table.modules.selectRow.selectedRows;break;case"active":default:o=this.table.rowManager.getDisplayRows()}return Object.assign([],o)},Export.prototype.generateColumnGroupHeaders=function(){var t=this,e=[];return(!1!==this.config.columnGroups?this.table.columnManager.columns:this.table.columnManager.columnsByIndex).forEach(function(o){var n=t.processColumnGroup(o);n&&e.push(n)}),e},Export.prototype.processColumnGroup=function(t){var e=this,o=t.columns,n=0,r={title:t.definition.title,column:t,depth:1};if(o.length){if(r.subGroups=[],r.width=0,o.forEach(function(t){var o=e.processColumnGroup(t);o&&(r.width+=o.width,r.subGroups.push(o),o.depth>n&&(n=o.depth))}),r.depth+=n,!r.width)return!1}else{if(!this.columnVisCheck(t))return!1;r.width=1}return r},Export.prototype.groupHeadersToRows=function(t){function e(t,r){var l=n-r;void 0===o[r]&&(o[r]=[]),t.height=t.subGroups?1:l-t.depth+1,o[r].push(t),t.subGroups&&t.subGroups.forEach(function(t){e(t,r+1)})}var o=[],n=0;return t.forEach(function(t){t.depth>n&&(n=t.depth)}),t.forEach(function(t){e(t,0)}),o},Export.prototype.generateHeaderElements=function(){var t=this,e=document.createElement("thead");return this.groupHeadersToRows(this.generateColumnGroupHeaders()).forEach(function(o){var n=document.createElement("tr");t.mapElementStyles(t.table.columnManager.getHeadersElement(),e,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),o.forEach(function(e){var o=document.createElement("th"),r=e.column.definition.cssClass?e.column.definition.cssClass.split(" "):[];o.colSpan=e.width,o.rowSpan=e.height,o.innerHTML=e.column.definition.title,t.cloneTableStyle&&(o.style.boxSizing="border-box"),r.forEach(function(t){o.classList.add(t)}),t.mapElementStyles(e.column.getElement(),o,["text-align","border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),t.mapElementStyles(e.column.contentElement,o,["padding-top","padding-left","padding-right","padding-bottom"]),e.column.visible?t.mapElementStyles(e.column.getElement(),o,["width"]):e.column.definition.width&&(o.style.width=e.column.definition.width+"px"),e.column.parent&&t.mapElementStyles(e.column.parent.groupElement,o,["border-top"]),n.appendChild(o)}),e.appendChild(n)}),e},Export.prototype.generateBodyElements=function(t){},Export.prototype.generateBodyElements=function(t){var e,o,n,r,l,a,i,s,d,c,u=this;c=this.table.options["rowFormatter"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))],c=null!==c?c:this.table.options.rowFormatter,this.cloneTableStyle&&window.getComputedStyle&&(e=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),o=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),n=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),r=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),a=this.table.element.getElementsByClassName("tabulator-group")[0],r&&(i=r.getElementsByClassName("tabulator-cell"),l=i[0],i[i.length-1]));var p=document.createElement("tbody"),m=[];return!1!==this.config.columnCalcs&&this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&t.unshift(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&t.push(this.table.modules.columnCalcs.botRow)),this.table.columnManager.columnsByIndex.forEach(function(t){u.columnVisCheck(t)&&m.push(t)}),this.table.options.dataTree&&!1!==this.config.dataTree&&this.table.modExists("columnCalcs")&&(d=this.table.modules.dataTree.elementField),t=t.filter(function(t){switch(t.type){case"group":return!1!==u.config.rowGroups;case"calc":return!1!==u.config.columnCalcs}return!0}),t.length>1e3&&console.warn("It may take a long time to render an HTML table with more than 1000 rows"),t.forEach(function(t,r){var i=t.getData(u.colVisProp),f=document.createElement("tr");switch(f.classList.add("tabulator-print-table-row"),t.type){case"group":var h=document.createElement("td");h.colSpan=m.length,h.innerHTML=t.key,f.classList.add("tabulator-print-table-group"),u.mapElementStyles(a,f,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),u.mapElementStyles(a,h,["padding-top","padding-left","padding-right","padding-bottom"]),f.appendChild(h);break;case"calc":f.classList.add("tabulator-print-table-calcs");case"row":if(u.table.options.dataTree&&!1===u.config.dataTree&&t.modules.dataTree.parent)return;if(m.forEach(function(e,o){var n=document.createElement("td"),r=e.getFieldValue(i),a={modules:{},getValue:function(){return r},getField:function(){return e.definition.field},getElement:function(){return n},getColumn:function(){return e.getComponent()},getData:function(){return i},getRow:function(){return t.getComponent()},getComponent:function(){return a},column:e};if((e.definition.cssClass?e.definition.cssClass.split(" "):[]).forEach(function(t){n.classList.add(t)}),u.table.modExists("format")&&!1!==u.config.formatCells)r=u.table.modules.format.formatExportValue(a,u.colVisProp);else switch(void 0===r?"undefined":_typeof(r)){case"object":r=JSON.stringify(r);break;case"undefined":case"null":r="";break;default:r=r}r instanceof Node?n.appendChild(r):n.innerHTML=r,l&&(u.mapElementStyles(l,n,["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size"]),e.definition.align&&(n.style.textAlign=e.definition.align)),u.table.options.dataTree&&!1!==u.config.dataTree&&(d&&d==e.field||!d&&0==o)&&(t.modules.dataTree.controlEl&&n.insertBefore(t.modules.dataTree.controlEl.cloneNode(!0),n.firstChild),t.modules.dataTree.branchEl&&n.insertBefore(t.modules.dataTree.branchEl.cloneNode(!0),n.firstChild)),f.appendChild(n),a.modules.format&&a.modules.format.renderedCallback&&a.modules.format.renderedCallback()}),s="calc"==t.type?n:r%2&&o?o:e,u.mapElementStyles(s,f,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),c&&!1!==u.config.formatCells){var b=t.getComponent();b.getElement=function(){return f},c(b)}}p.appendChild(f)}),p},Export.prototype.columnVisCheck=function(t){return!1!==t.definition[this.colVisProp]&&(t.visible||!t.visible&&t.definition[this.colVisProp])},Export.prototype.getHtml=function(t,e,o,n){var r=document.createElement("div");return r.appendChild(this.genereateTable(o||this.table.options.htmlOutputConfig,e,t,n||"htmlOutput")),r.innerHTML},Export.prototype.mapElementStyles=function(t,e,o){if(this.cloneTableStyle&&t&&e){var n={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var r=window.getComputedStyle(t);o.forEach(function(t){e.style[n[t]]=r.getPropertyValue(t)})}}},Tabulator.prototype.registerModule("export",Export);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Filter = function Filter(table) {
-
- this.table = table; //hold Tabulator object
-
- this.filterList = []; //hold filter list
- this.headerFilters = {}; //hold column filters
- this.headerFilterColumns = []; //hold columns that use header filters
-
- this.prevHeaderFilterChangeCheck = "";
- this.prevHeaderFilterChangeCheck = "{}";
-
- this.changed = false; //has filtering changed since last render
-};
-
-//initialize column header filter
-Filter.prototype.initializeColumn = function (column, value) {
- var self = this,
- field = column.getField(),
- params;
-
- //handle successfull value change
- function success(value) {
- var filterType = column.modules.filter.tagType == "input" && column.modules.filter.attrType == "text" || column.modules.filter.tagType == "textarea" ? "partial" : "match",
- type = "",
- filterChangeCheck = "",
- filterFunc;
-
- if (typeof column.modules.filter.prevSuccess === "undefined" || column.modules.filter.prevSuccess !== value) {
-
- column.modules.filter.prevSuccess = value;
-
- if (!column.modules.filter.emptyFunc(value)) {
- column.modules.filter.value = value;
-
- switch (_typeof(column.definition.headerFilterFunc)) {
- case "string":
- if (self.filters[column.definition.headerFilterFunc]) {
- type = column.definition.headerFilterFunc;
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return self.filters[column.definition.headerFilterFunc](value, fieldVal, data, params);
- };
- } else {
- console.warn("Header Filter Error - Matching filter function not found: ", column.definition.headerFilterFunc);
- }
- break;
-
- case "function":
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return column.definition.headerFilterFunc(value, fieldVal, data, params);
- };
-
- type = filterFunc;
- break;
- }
-
- if (!filterFunc) {
- switch (filterType) {
- case "partial":
- filterFunc = function filterFunc(data) {
- var colVal = column.getFieldValue(data);
-
- if (typeof colVal !== 'undefined' && colVal !== null) {
- return String(colVal).toLowerCase().indexOf(String(value).toLowerCase()) > -1;
- } else {
- return false;
- }
- };
- type = "like";
- break;
-
- default:
- filterFunc = function filterFunc(data) {
- return column.getFieldValue(data) == value;
- };
- type = "=";
- }
- }
-
- self.headerFilters[field] = { value: value, func: filterFunc, type: type };
- } else {
- delete self.headerFilters[field];
- }
-
- filterChangeCheck = JSON.stringify(self.headerFilters);
-
- if (self.prevHeaderFilterChangeCheck !== filterChangeCheck) {
- self.prevHeaderFilterChangeCheck = filterChangeCheck;
-
- self.changed = true;
- self.table.rowManager.filterRefresh();
- }
- }
-
- return true;
- }
-
- column.modules.filter = {
- success: success,
- attrType: false,
- tagType: false,
- emptyFunc: false
- };
-
- this.generateHeaderFilterElement(column);
-};
-
-Filter.prototype.generateHeaderFilterElement = function (column, initialValue, reinitialize) {
- var _this = this;
-
- var self = this,
- success = column.modules.filter.success,
- field = column.getField(),
- filterElement,
- editor,
- editorElement,
- cellWrapper,
- typingTimer,
- searchTrigger,
- params;
-
- //handle aborted edit
- function cancel() {}
-
- if (column.modules.filter.headerElement && column.modules.filter.headerElement.parentNode) {
- column.contentElement.removeChild(column.modules.filter.headerElement.parentNode);
- }
-
- if (field) {
-
- //set empty value function
- column.modules.filter.emptyFunc = column.definition.headerFilterEmptyCheck || function (value) {
- return !value && value !== "0";
- };
-
- filterElement = document.createElement("div");
- filterElement.classList.add("tabulator-header-filter");
-
- //set column editor
- switch (_typeof(column.definition.headerFilter)) {
- case "string":
- if (self.table.modules.edit.editors[column.definition.headerFilter]) {
- editor = self.table.modules.edit.editors[column.definition.headerFilter];
-
- if ((column.definition.headerFilter === "tick" || column.definition.headerFilter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- console.warn("Filter Error - Cannot build header filter, No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- editor = column.definition.headerFilter;
- break;
-
- case "boolean":
- if (column.modules.edit && column.modules.edit.editor) {
- editor = column.modules.edit.editor;
- } else {
- if (column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]) {
- editor = self.table.modules.edit.editors[column.definition.formatter];
-
- if ((column.definition.formatter === "tick" || column.definition.formatter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- editor = self.table.modules.edit.editors["input"];
- }
- }
- break;
- }
-
- if (editor) {
-
- cellWrapper = {
- getValue: function getValue() {
- return typeof initialValue !== "undefined" ? initialValue : "";
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return filterElement;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getRow: function getRow() {
- return {
- normalizeHeight: function normalizeHeight() {}
- };
- }
- };
-
- params = column.definition.headerFilterParams || {};
-
- params = typeof params === "function" ? params.call(self.table) : params;
-
- editorElement = editor.call(this.table.modules.edit, cellWrapper, function () {}, success, cancel, params);
-
- if (!editorElement) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor returned a value of false");
- return;
- }
-
- if (!(editorElement instanceof Node)) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor should return an instance of Node, the editor returned:", editorElement);
- return;
- }
-
- //set Placeholder Text
- if (field) {
- self.table.modules.localize.bind("headerFilters|columns|" + column.definition.field, function (value) {
- editorElement.setAttribute("placeholder", typeof value !== "undefined" && value ? value : self.table.modules.localize.getText("headerFilters|default"));
- });
- } else {
- self.table.modules.localize.bind("headerFilters|default", function (value) {
- editorElement.setAttribute("placeholder", typeof self.column.definition.headerFilterPlaceholder !== "undefined" && self.column.definition.headerFilterPlaceholder ? self.column.definition.headerFilterPlaceholder : value);
- });
- }
-
- //focus on element on click
- editorElement.addEventListener("click", function (e) {
- e.stopPropagation();
- editorElement.focus();
- });
-
- editorElement.addEventListener("focus", function (e) {
- var left = _this.table.columnManager.element.scrollLeft;
-
- if (left !== _this.table.rowManager.element.scrollLeft) {
- _this.table.rowManager.scrollHorizontal(left);
- _this.table.columnManager.scrollHorizontal(left);
- }
- });
-
- //live update filters as user types
- typingTimer = false;
-
- searchTrigger = function searchTrigger(e) {
- if (typingTimer) {
- clearTimeout(typingTimer);
- }
-
- typingTimer = setTimeout(function () {
- success(editorElement.value);
- }, self.table.options.headerFilterLiveFilterDelay);
- };
-
- column.modules.filter.headerElement = editorElement;
- column.modules.filter.attrType = editorElement.hasAttribute("type") ? editorElement.getAttribute("type").toLowerCase() : "";
- column.modules.filter.tagType = editorElement.tagName.toLowerCase();
-
- if (column.definition.headerFilterLiveFilter !== false) {
-
- if (!(column.definition.headerFilter === 'autocomplete' || column.definition.headerFilter === 'tickCross' || (column.definition.editor === 'autocomplete' || column.definition.editor === 'tickCross') && column.definition.headerFilter === true)) {
- editorElement.addEventListener("keyup", searchTrigger);
- editorElement.addEventListener("search", searchTrigger);
-
- //update number filtered columns on change
- if (column.modules.filter.attrType == "number") {
- editorElement.addEventListener("change", function (e) {
- success(editorElement.value);
- });
- }
-
- //change text inputs to search inputs to allow for clearing of field
- if (column.modules.filter.attrType == "text" && this.table.browser !== "ie") {
- editorElement.setAttribute("type", "search");
- // editorElement.off("change blur"); //prevent blur from triggering filter and preventing selection click
- }
- }
-
- //prevent input and select elements from propegating click to column sorters etc
- if (column.modules.filter.tagType == "input" || column.modules.filter.tagType == "select" || column.modules.filter.tagType == "textarea") {
- editorElement.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
- }
- }
-
- filterElement.appendChild(editorElement);
-
- column.contentElement.appendChild(filterElement);
-
- if (!reinitialize) {
- self.headerFilterColumns.push(column);
- }
- }
- } else {
- console.warn("Filter Error - Cannot add header filter, column has no field set:", column.definition.title);
- }
-};
-
-//hide all header filter elements (used to ensure correct column widths in "fitData" layout mode)
-Filter.prototype.hideHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = 'none';
- }
- });
-};
-
-//show all header filter elements (used to ensure correct column widths in "fitData" layout mode)
-Filter.prototype.showHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = '';
- }
- });
-};
-
-//programatically set focus of header filter
-Filter.prototype.setHeaderFilterFocus = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.focus();
- } else {
- console.warn("Column Filter Focus Error - No header filter set on column:", column.getField());
- }
-};
-
-//programmatically get value of header filter
-Filter.prototype.getHeaderFilterValue = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- return column.modules.filter.headerElement.value;
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
-};
-
-//programatically set value of header filter
-Filter.prototype.setHeaderFilterValue = function (column, value) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, value, true);
- column.modules.filter.success(value);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
-};
-
-Filter.prototype.reloadHeaderFilter = function (column) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, column.modules.filter.value, true);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
-};
-
-//check if the filters has changed since last use
-Filter.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
-};
-
-//set standard filters
-Filter.prototype.setFilter = function (field, type, value) {
- var self = this;
-
- self.filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- self.addFilter(field);
-};
-
-//add filter to array
-Filter.prototype.addFilter = function (field, type, value) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
-
- filter = self.findFilter(filter);
-
- if (filter) {
- self.filterList.push(filter);
-
- self.changed = true;
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
-};
-
-Filter.prototype.findFilter = function (filter) {
- var self = this,
- column;
-
- if (Array.isArray(filter)) {
- return this.findSubFilters(filter);
- }
-
- var filterFunc = false;
-
- if (typeof filter.field == "function") {
- filterFunc = function filterFunc(data) {
- return filter.field(data, filter.type || {}); // pass params to custom filter function
- };
- } else {
-
- if (self.filters[filter.type]) {
-
- column = self.table.columnManager.getColumnByField(filter.field);
-
- if (column) {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, column.getFieldValue(data));
- };
- } else {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, data[filter.field]);
- };
- }
- } else {
- console.warn("Filter Error - No such filter type found, ignoring: ", filter.type);
- }
- }
-
- filter.func = filterFunc;
-
- return filter.func ? filter : false;
-};
-
-Filter.prototype.findSubFilters = function (filters) {
- var self = this,
- output = [];
-
- filters.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- output.push(filter);
- }
- });
-
- return output.length ? output : false;
-};
-
-//get all filters
-Filter.prototype.getFilters = function (all, ajax) {
- var output = [];
-
- if (all) {
- output = this.getHeaderFilters();
- }
-
- if (ajax) {
- output.forEach(function (item) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- });
- }
-
- output = output.concat(this.filtersToArray(this.filterList, ajax));
-
- return output;
-};
-
-//filter to Object
-Filter.prototype.filtersToArray = function (filterList, ajax) {
- var _this2 = this;
-
- var output = [];
-
- filterList.forEach(function (filter) {
- var item;
-
- if (Array.isArray(filter)) {
- output.push(_this2.filtersToArray(filter, ajax));
- } else {
- item = { field: filter.field, type: filter.type, value: filter.value };
-
- if (ajax) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- }
-
- output.push(item);
- }
- });
-
- return output;
-};
-
-//get all filters
-Filter.prototype.getHeaderFilters = function () {
- var self = this,
- output = [];
-
- for (var key in this.headerFilters) {
- output.push({ field: key, type: this.headerFilters[key].type, value: this.headerFilters[key].value });
- }
-
- return output;
-};
-
-//remove filter from array
-Filter.prototype.removeFilter = function (field, type, value) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- var index = -1;
-
- if (_typeof(filter.field) == "object") {
- index = self.filterList.findIndex(function (element) {
- return filter === element;
- });
- } else {
- index = self.filterList.findIndex(function (element) {
- return filter.field === element.field && filter.type === element.type && filter.value === element.value;
- });
- }
-
- if (index > -1) {
- self.filterList.splice(index, 1);
- self.changed = true;
- } else {
- console.warn("Filter Error - No matching filter type found, ignoring: ", filter.type);
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
-};
-
-//clear filters
-Filter.prototype.clearFilter = function (all) {
- this.filterList = [];
-
- if (all) {
- this.clearHeaderFilter();
- }
-
- this.changed = true;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
-};
-
-//clear header filters
-Filter.prototype.clearHeaderFilter = function () {
- var self = this;
-
- this.headerFilters = {};
- self.prevHeaderFilterChangeCheck = "{}";
-
- this.headerFilterColumns.forEach(function (column) {
- column.modules.filter.value = null;
- column.modules.filter.prevSuccess = undefined;
- self.reloadHeaderFilter(column);
- });
-
- this.changed = true;
-};
-
-//search data and return matching rows
-Filter.prototype.search = function (searchType, field, type, value) {
- var self = this,
- activeRows = [],
- filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- filterList.push(filter);
- }
- });
-
- this.table.rowManager.rows.forEach(function (row) {
- var match = true;
-
- filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, row.getData())) {
- match = false;
- }
- });
-
- if (match) {
- activeRows.push(searchType === "data" ? row.getData("data") : row.getComponent());
- }
- });
-
- return activeRows;
-};
-
-//filter row array
-Filter.prototype.filter = function (rowList, filters) {
- var self = this,
- activeRows = [],
- activeRowComponents = [];
-
- if (self.table.options.dataFiltering) {
- self.table.options.dataFiltering.call(self.table, self.getFilters());
- }
-
- if (!self.table.options.ajaxFiltering && (self.filterList.length || Object.keys(self.headerFilters).length)) {
-
- rowList.forEach(function (row) {
- if (self.filterRow(row)) {
- activeRows.push(row);
- }
- });
- } else {
- activeRows = rowList.slice(0);
- }
-
- if (self.table.options.dataFiltered) {
-
- activeRows.forEach(function (row) {
- activeRowComponents.push(row.getComponent());
- });
-
- self.table.options.dataFiltered.call(self.table, self.getFilters(), activeRowComponents);
- }
-
- return activeRows;
-};
-
-//filter individual row
-Filter.prototype.filterRow = function (row, filters) {
- var self = this,
- match = true,
- data = row.getData();
-
- self.filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, data)) {
- match = false;
- }
- });
-
- for (var field in self.headerFilters) {
- if (!self.headerFilters[field].func(data)) {
- match = false;
- }
- }
-
- return match;
-};
-
-Filter.prototype.filterRecurse = function (filter, data) {
- var self = this,
- match = false;
-
- if (Array.isArray(filter)) {
- filter.forEach(function (subFilter) {
- if (self.filterRecurse(subFilter, data)) {
- match = true;
- }
- });
- } else {
- match = filter.func(data);
- }
-
- return match;
-};
-
-//list of available filters
-Filter.prototype.filters = {
-
- //equal to
- "=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal == filterVal ? true : false;
- },
-
- //less than
- "<": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal < filterVal ? true : false;
- },
-
- //less than or equal to
- "<=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal <= filterVal ? true : false;
- },
-
- //greater than
- ">": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal > filterVal ? true : false;
- },
-
- //greater than or equal to
- ">=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal >= filterVal ? true : false;
- },
-
- //not equal to
- "!=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal != filterVal ? true : false;
- },
-
- "regex": function regex(filterVal, rowVal, rowData, filterParams) {
-
- if (typeof filterVal == "string") {
- filterVal = new RegExp(filterVal);
- }
-
- return filterVal.test(rowVal);
- },
-
- //contains the string
- "like": function like(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().indexOf(filterVal.toLowerCase()) > -1;
- } else {
- return false;
- }
- }
- },
-
- //in array
- "in": function _in(filterVal, rowVal, rowData, filterParams) {
- if (Array.isArray(filterVal)) {
- return filterVal.indexOf(rowVal) > -1;
- } else {
- console.warn("Filter Error - filter value is not an array:", filterVal);
- return false;
- }
- }
-};
-
-Tabulator.prototype.registerModule("filter", Filter);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Filter=function(e){this.table=e,this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1};Filter.prototype.initializeColumn=function(e,t){function r(t){var r,l="input"==e.modules.filter.tagType&&"text"==e.modules.filter.attrType||"textarea"==e.modules.filter.tagType?"partial":"match",o="",a="";if(void 0===e.modules.filter.prevSuccess||e.modules.filter.prevSuccess!==t){if(e.modules.filter.prevSuccess=t,e.modules.filter.emptyFunc(t))delete i.headerFilters[n];else{switch(e.modules.filter.value=t,_typeof(e.definition.headerFilterFunc)){case"string":i.filters[e.definition.headerFilterFunc]?(o=e.definition.headerFilterFunc,r=function(r){var n=e.definition.headerFilterFuncParams||{},l=e.getFieldValue(r);return n="function"==typeof n?n(t,l,r):n,i.filters[e.definition.headerFilterFunc](t,l,r,n)}):console.warn("Header Filter Error - Matching filter function not found: ",e.definition.headerFilterFunc);break;case"function":r=function(r){var i=e.definition.headerFilterFuncParams||{},n=e.getFieldValue(r);return i="function"==typeof i?i(t,n,r):i,e.definition.headerFilterFunc(t,n,r,i)},o=r}if(!r)switch(l){case"partial":r=function(r){var i=e.getFieldValue(r);return void 0!==i&&null!==i&&String(i).toLowerCase().indexOf(String(t).toLowerCase())>-1},o="like";break;default:r=function(r){return e.getFieldValue(r)==t},o="="}i.headerFilters[n]={value:t,func:r,type:o}}a=JSON.stringify(i.headerFilters),i.prevHeaderFilterChangeCheck!==a&&(i.prevHeaderFilterChangeCheck=a,i.changed=!0,i.table.rowManager.filterRefresh())}return!0}var i=this,n=e.getField();e.modules.filter={success:r,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(e)},Filter.prototype.generateHeaderFilterElement=function(e,t,r){function i(){}var n,l,o,a,s,d,u,f=this,c=this,h=e.modules.filter.success,p=e.getField();if(e.modules.filter.headerElement&&e.modules.filter.headerElement.parentNode&&e.contentElement.removeChild(e.modules.filter.headerElement.parentNode),p){switch(e.modules.filter.emptyFunc=e.definition.headerFilterEmptyCheck||function(e){return!e&&"0"!==e},n=document.createElement("div"),n.classList.add("tabulator-header-filter"),_typeof(e.definition.headerFilter)){case"string":c.table.modules.edit.editors[e.definition.headerFilter]?(l=c.table.modules.edit.editors[e.definition.headerFilter],"tick"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):console.warn("Filter Error - Cannot build header filter, No such editor found: ",e.definition.editor);break;case"function":l=e.definition.headerFilter;break;case"boolean":e.modules.edit&&e.modules.edit.editor?l=e.modules.edit.editor:e.definition.formatter&&c.table.modules.edit.editors[e.definition.formatter]?(l=c.table.modules.edit.editors[e.definition.formatter],"tick"!==e.definition.formatter&&"tickCross"!==e.definition.formatter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):l=c.table.modules.edit.editors.input}if(l){if(a={getValue:function(){return void 0!==t?t:""},getField:function(){return e.definition.field},getElement:function(){return n},getColumn:function(){return e.getComponent()},getRow:function(){return{normalizeHeight:function(){}}}},u=e.definition.headerFilterParams||{},u="function"==typeof u?u.call(c.table):u,!(o=l.call(this.table.modules.edit,a,function(){},h,i,u)))return void console.warn("Filter Error - Cannot add filter to "+p+" column, editor returned a value of false");if(!(o instanceof Node))return void console.warn("Filter Error - Cannot add filter to "+p+" column, editor should return an instance of Node, the editor returned:",o);p?c.table.modules.localize.bind("headerFilters|columns|"+e.definition.field,function(e){o.setAttribute("placeholder",void 0!==e&&e?e:c.table.modules.localize.getText("headerFilters|default"))}):c.table.modules.localize.bind("headerFilters|default",function(e){o.setAttribute("placeholder",void 0!==c.column.definition.headerFilterPlaceholder&&c.column.definition.headerFilterPlaceholder?c.column.definition.headerFilterPlaceholder:e)}),o.addEventListener("click",function(e){e.stopPropagation(),o.focus()}),o.addEventListener("focus",function(e){var t=f.table.columnManager.element.scrollLeft;t!==f.table.rowManager.element.scrollLeft&&(f.table.rowManager.scrollHorizontal(t),f.table.columnManager.scrollHorizontal(t))}),s=!1,d=function(e){s&&clearTimeout(s),s=setTimeout(function(){h(o.value)},c.table.options.headerFilterLiveFilterDelay)},e.modules.filter.headerElement=o,e.modules.filter.attrType=o.hasAttribute("type")?o.getAttribute("type").toLowerCase():"",e.modules.filter.tagType=o.tagName.toLowerCase(),!1!==e.definition.headerFilterLiveFilter&&("autocomplete"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter&&("autocomplete"!==e.definition.editor&&"tickCross"!==e.definition.editor||!0!==e.definition.headerFilter)&&(o.addEventListener("keyup",d),o.addEventListener("search",d),"number"==e.modules.filter.attrType&&o.addEventListener("change",function(e){h(o.value)}),"text"==e.modules.filter.attrType&&"ie"!==this.table.browser&&o.setAttribute("type","search")),"input"!=e.modules.filter.tagType&&"select"!=e.modules.filter.tagType&&"textarea"!=e.modules.filter.tagType||o.addEventListener("mousedown",function(e){e.stopPropagation()})),n.appendChild(o),e.contentElement.appendChild(n),r||c.headerFilterColumns.push(e)}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",e.definition.title)},Filter.prototype.hideHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="none")})},Filter.prototype.showHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="")})},Filter.prototype.setHeaderFilterFocus=function(e){e.modules.filter&&e.modules.filter.headerElement?e.modules.filter.headerElement.focus():console.warn("Column Filter Focus Error - No header filter set on column:",e.getField())},Filter.prototype.getHeaderFilterValue=function(e){if(e.modules.filter&&e.modules.filter.headerElement)return e.modules.filter.headerElement.value;console.warn("Column Filter Error - No header filter set on column:",e.getField())},Filter.prototype.setHeaderFilterValue=function(e,t){e&&(e.modules.filter&&e.modules.filter.headerElement?(this.generateHeaderFilterElement(e,t,!0),e.modules.filter.success(t)):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},Filter.prototype.reloadHeaderFilter=function(e){e&&(e.modules.filter&&e.modules.filter.headerElement?this.generateHeaderFilterElement(e,e.modules.filter.value,!0):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},Filter.prototype.hasChanged=function(){var e=this.changed;return this.changed=!1,e},Filter.prototype.setFilter=function(e,t,r){var i=this;i.filterList=[],Array.isArray(e)||(e=[{field:e,type:t,value:r}]),i.addFilter(e)},Filter.prototype.addFilter=function(e,t,r){var i=this;Array.isArray(e)||(e=[{field:e,type:t,value:r}]),e.forEach(function(e){(e=i.findFilter(e))&&(i.filterList.push(e),i.changed=!0)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},Filter.prototype.findFilter=function(e){var t,r=this;if(Array.isArray(e))return this.findSubFilters(e);var i=!1;return"function"==typeof e.field?i=function(t){return e.field(t,e.type||{})}:r.filters[e.type]?(t=r.table.columnManager.getColumnByField(e.field),i=t?function(i){return r.filters[e.type](e.value,t.getFieldValue(i))}:function(t){return r.filters[e.type](e.value,t[e.field])}):console.warn("Filter Error - No such filter type found, ignoring: ",e.type),e.func=i,!!e.func&&e},Filter.prototype.findSubFilters=function(e){var t=this,r=[];return e.forEach(function(e){(e=t.findFilter(e))&&r.push(e)}),!!r.length&&r},Filter.prototype.getFilters=function(e,t){var r=[];return e&&(r=this.getHeaderFilters()),t&&r.forEach(function(e){"function"==typeof e.type&&(e.type="function")}),r=r.concat(this.filtersToArray(this.filterList,t))},Filter.prototype.filtersToArray=function(e,t){var r=this,i=[];return e.forEach(function(e){var n;Array.isArray(e)?i.push(r.filtersToArray(e,t)):(n={field:e.field,type:e.type,value:e.value},t&&"function"==typeof n.type&&(n.type="function"),i.push(n))}),i},Filter.prototype.getHeaderFilters=function(){var e=[];for(var t in this.headerFilters)e.push({field:t,type:this.headerFilters[t].type,value:this.headerFilters[t].value});return e},Filter.prototype.removeFilter=function(e,t,r){var i=this;Array.isArray(e)||(e=[{field:e,type:t,value:r}]),e.forEach(function(e){var t=-1;t="object"==_typeof(e.field)?i.filterList.findIndex(function(t){return e===t}):i.filterList.findIndex(function(t){return e.field===t.field&&e.type===t.type&&e.value===t.value}),t>-1?(i.filterList.splice(t,1),i.changed=!0):console.warn("Filter Error - No matching filter type found, ignoring: ",e.type)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},Filter.prototype.clearFilter=function(e){this.filterList=[],e&&this.clearHeaderFilter(),this.changed=!0,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},Filter.prototype.clearHeaderFilter=function(){var e=this;this.headerFilters={},e.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach(function(t){t.modules.filter.value=null,t.modules.filter.prevSuccess=void 0,e.reloadHeaderFilter(t)}),this.changed=!0},Filter.prototype.search=function(e,t,r,i){var n=this,l=[],o=[];return Array.isArray(t)||(t=[{field:t,type:r,value:i}]),t.forEach(function(e){(e=n.findFilter(e))&&o.push(e)}),this.table.rowManager.rows.forEach(function(t){var r=!0;o.forEach(function(e){n.filterRecurse(e,t.getData())||(r=!1)}),r&&l.push("data"===e?t.getData("data"):t.getComponent())}),l},Filter.prototype.filter=function(e,t){var r=this,i=[],n=[];return r.table.options.dataFiltering&&r.table.options.dataFiltering.call(r.table,r.getFilters()),r.table.options.ajaxFiltering||!r.filterList.length&&!Object.keys(r.headerFilters).length?i=e.slice(0):e.forEach(function(e){r.filterRow(e)&&i.push(e)}),r.table.options.dataFiltered&&(i.forEach(function(e){n.push(e.getComponent())}),r.table.options.dataFiltered.call(r.table,r.getFilters(),n)),i},Filter.prototype.filterRow=function(e,t){var r=this,i=!0,n=e.getData();r.filterList.forEach(function(e){r.filterRecurse(e,n)||(i=!1)});for(var l in r.headerFilters)r.headerFilters[l].func(n)||(i=!1);return i},Filter.prototype.filterRecurse=function(e,t){var r=this,i=!1;return Array.isArray(e)?e.forEach(function(e){r.filterRecurse(e,t)&&(i=!0)}):i=e.func(t),i},Filter.prototype.filters={"=":function(e,t,r,i){return t==e},"<":function(e,t,r,i){return t<e},"<=":function(e,t,r,i){return t<=e},">":function(e,t,r,i){return t>e},">=":function(e,t,r,i){return t>=e},"!=":function(e,t,r,i){return t!=e},regex:function(e,t,r,i){return"string"==typeof e&&(e=new RegExp(e)),e.test(t)},like:function(e,t,r,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().indexOf(e.toLowerCase())>-1},in:function(e,t,r,i){return Array.isArray(e)?e.indexOf(t)>-1:(console.warn("Filter Error - filter value is not an array:",e),!1)}},Tabulator.prototype.registerModule("filter",Filter);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Format = function Format(table) {
- this.table = table; //hold Tabulator object
-};
-
-//initialize column formatter
-Format.prototype.initializeColumn = function (column) {
- column.modules.format = this.lookupFormatter(column, "");
-
- if (typeof column.definition.formatterPrint !== "undefined") {
- column.modules.format.print = this.lookupFormatter(column, "Print");
- }
-
- if (typeof column.definition.formatterClipboard !== "undefined") {
- column.modules.format.clipboard = this.lookupFormatter(column, "Clipboard");
- }
-
- if (typeof column.definition.formatterHtmlOutput !== "undefined") {
- column.modules.format.htmlOutput = this.lookupFormatter(column, "HtmlOutput");
- }
-};
-
-Format.prototype.lookupFormatter = function (column, type) {
- var config = { params: column.definition["formatter" + type + "Params"] || {} },
- formatter = column.definition["formatter" + type];
-
- //set column formatter
- switch (typeof formatter === "undefined" ? "undefined" : _typeof(formatter)) {
- case "string":
-
- if (formatter === "tick") {
- formatter = "tickCross";
-
- if (typeof config.params.crossElement == "undefined") {
- config.params.crossElement = false;
- }
-
- console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false");
- }
-
- if (this.formatters[formatter]) {
- config.formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- config.formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- config.formatter = formatter;
- break;
-
- default:
- config.formatter = this.formatters.plaintext;
- break;
- }
-
- return config;
-};
-
-Format.prototype.cellRendered = function (cell) {
- if (cell.modules.format && cell.modules.format.renderedCallback) {
- cell.modules.format.renderedCallback();
- }
-};
-
-//return a formatted value for a cell
-Format.prototype.formatValue = function (cell) {
- var component = cell.getComponent(),
- params = typeof cell.column.modules.format.params === "function" ? cell.column.modules.format.params(component) : cell.column.modules.format.params;
-
- function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- }
-
- return cell.column.modules.format.formatter.call(this, component, params, onRendered);
-};
-
-Format.prototype.formatExportValue = function (cell, type) {
- var formatter = cell.column.modules.format[type],
- params;
-
- if (formatter) {
- var onRendered = function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- };
-
- params = typeof formatter.params === "function" ? formatter.params(component) : formatter.params;
-
- return formatter.formatter.call(this, cell.getComponent(), params, onRendered);
- } else {
- return this.formatValue(cell);
- }
-};
-
-Format.prototype.sanitizeHTML = function (value) {
- if (value) {
- var entityMap = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": ''',
- '/': '/',
- '`': '`',
- '=': '='
- };
-
- return String(value).replace(/[&<>"'`=\/]/g, function (s) {
- return entityMap[s];
- });
- } else {
- return value;
- }
-};
-
-Format.prototype.emptyToSpace = function (value) {
- return value === null || typeof value === "undefined" || value === "" ? " " : value;
-};
-
-//get formatter for cell
-Format.prototype.getFormatter = function (formatter) {
- var formatter;
-
- switch (typeof formatter === "undefined" ? "undefined" : _typeof(formatter)) {
- case "string":
- if (this.formatters[formatter]) {
- formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- formatter = formatter;
- break;
-
- default:
- formatter = this.formatters.plaintext;
- break;
- }
-
- return formatter;
-};
-
-//default data formatters
-Format.prototype.formatters = {
- //plain text value
- plaintext: function plaintext(cell, formatterParams, onRendered) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //html text value
- html: function html(cell, formatterParams, onRendered) {
- return cell.getValue();
- },
-
- //multiline text area
- textarea: function textarea(cell, formatterParams, onRendered) {
- cell.getElement().style.whiteSpace = "pre-wrap";
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //currency formatting
- money: function money(cell, formatterParams, onRendered) {
- var floatVal = parseFloat(cell.getValue()),
- number,
- integer,
- decimal,
- rgx;
-
- var decimalSym = formatterParams.decimal || ".";
- var thousandSym = formatterParams.thousand || ",";
- var symbol = formatterParams.symbol || "";
- var after = !!formatterParams.symbolAfter;
- var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
-
- if (isNaN(floatVal)) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- }
-
- number = precision !== false ? floatVal.toFixed(precision) : floatVal;
- number = String(number).split(".");
-
- integer = number[0];
- decimal = number.length > 1 ? decimalSym + number[1] : "";
-
- rgx = /(\d+)(\d{3})/;
-
- while (rgx.test(integer)) {
- integer = integer.replace(rgx, "$1" + thousandSym + "$2");
- }
-
- return after ? integer + decimal + symbol : symbol + integer + decimal;
- },
-
- //clickable anchor tag
- link: function link(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- urlPrefix = formatterParams.urlPrefix || "",
- download = formatterParams.download,
- label = value,
- el = document.createElement("a"),
- data;
-
- if (formatterParams.labelField) {
- data = cell.getData();
- label = data[formatterParams.labelField];
- }
-
- if (formatterParams.label) {
- switch (_typeof(formatterParams.label)) {
- case "string":
- label = formatterParams.label;
- break;
-
- case "function":
- label = formatterParams.label(cell);
- break;
- }
- }
-
- if (label) {
- if (formatterParams.urlField) {
- data = cell.getData();
- value = data[formatterParams.urlField];
- }
-
- if (formatterParams.url) {
- switch (_typeof(formatterParams.url)) {
- case "string":
- value = formatterParams.url;
- break;
-
- case "function":
- value = formatterParams.url(cell);
- break;
- }
- }
-
- el.setAttribute("href", urlPrefix + value);
-
- if (formatterParams.target) {
- el.setAttribute("target", formatterParams.target);
- }
-
- if (formatterParams.download) {
-
- if (typeof download == "function") {
- download = download(cell);
- } else {
- download = download === true ? "" : download;
- }
-
- el.setAttribute("download", download);
- }
-
- el.innerHTML = this.emptyToSpace(this.sanitizeHTML(label));
-
- return el;
- } else {
- return " ";
- }
- },
-
- //image element
- image: function image(cell, formatterParams, onRendered) {
- var el = document.createElement("img");
- el.setAttribute("src", cell.getValue());
-
- switch (_typeof(formatterParams.height)) {
- case "number":
- el.style.height = formatterParams.height + "px";
- break;
-
- case "string":
- el.style.height = formatterParams.height;
- break;
- }
-
- switch (_typeof(formatterParams.width)) {
- case "number":
- el.style.width = formatterParams.width + "px";
- break;
-
- case "string":
- el.style.width = formatterParams.width;
- break;
- }
-
- el.addEventListener("load", function () {
- cell.getRow().normalizeHeight();
- });
-
- return el;
- },
-
- //tick or cross
- tickCross: function tickCross(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- empty = formatterParams.allowEmpty,
- truthy = formatterParams.allowTruthy,
- tick = typeof formatterParams.tickElement !== "undefined" ? formatterParams.tickElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',
- cross = typeof formatterParams.crossElement !== "undefined" ? formatterParams.crossElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
-
- if (truthy && value || value === true || value === "true" || value === "True" || value === 1 || value === "1") {
- element.setAttribute("aria-checked", true);
- return tick || "";
- } else {
- if (empty && (value === "null" || value === "" || value === null || typeof value === "undefined")) {
- element.setAttribute("aria-checked", "mixed");
- return "";
- } else {
- element.setAttribute("aria-checked", false);
- return cross || "";
- }
- }
- },
-
- datetime: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var outputFormat = formatterParams.outputFormat || "DD/MM/YYYY hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- return newDatetime.format(outputFormat);
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- datetimediff: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var suffix = typeof formatterParams.suffix !== "undefined" ? formatterParams.suffix : false;
- var unit = typeof formatterParams.unit !== "undefined" ? formatterParams.unit : undefined;
- var humanize = typeof formatterParams.humanize !== "undefined" ? formatterParams.humanize : false;
- var date = typeof formatterParams.date !== "undefined" ? formatterParams.date : moment();
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- if (humanize) {
- return moment.duration(newDatetime.diff(date)).humanize(suffix);
- } else {
- return newDatetime.diff(date, unit) + (suffix ? " " + suffix : "");
- }
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- //select
- lookup: function lookup(cell, formatterParams, onRendered) {
- var value = cell.getValue();
-
- if (typeof formatterParams[value] === "undefined") {
- console.warn('Missing display value for ' + value);
- return value;
- }
-
- return formatterParams[value];
- },
-
- //star rating
- star: function star(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- maxStars = formatterParams && formatterParams.stars ? formatterParams.stars : 5,
- stars = document.createElement("span"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg"),
- starActive = '<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',
- starInactive = '<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
-
- //style stars holder
- stars.style.verticalAlign = "middle";
-
- //style star
- star.setAttribute("width", "14");
- star.setAttribute("height", "14");
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- value = value && !isNaN(value) ? parseInt(value) : 0;
-
- value = Math.max(0, Math.min(value, maxStars));
-
- for (var i = 1; i <= maxStars; i++) {
- var nextStar = star.cloneNode(true);
- nextStar.innerHTML = i <= value ? starActive : starInactive;
-
- stars.appendChild(nextStar);
- }
-
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- element.setAttribute("aria-label", value);
-
- return stars;
- },
-
- traffic: function traffic(cell, formatterParams, onRendered) {
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- el = document.createElement("span"),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- colors = formatterParams && typeof formatterParams.color !== "undefined" ? formatterParams.color : ["red", "orange", "green"],
- color = "#666666",
- percent,
- percentValue;
-
- if (isNaN(value) || typeof cell.getValue() === "undefined") {
- return;
- }
-
- el.classList.add("tabulator-traffic-light");
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set color
- switch (typeof colors === "undefined" ? "undefined" : _typeof(colors)) {
- case "string":
- color = colors;
- break;
- case "function":
- color = colors(value);
- break;
- case "object":
- if (Array.isArray(colors)) {
- var unit = 100 / colors.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, colors.length - 1);
- index = Math.max(index, 0);
- color = colors[index];
- break;
- }
- }
-
- el.style.backgroundColor = color;
-
- return el;
- },
-
- //progress bar
- progress: function progress(cell, formatterParams, onRendered) {
- //progress bar
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- element = cell.getElement(),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- legendAlign = formatterParams && formatterParams.legendAlign ? formatterParams.legendAlign : "center",
- percent,
- percentValue,
- color,
- legend,
- legendColor,
- top,
- left,
- right,
- bottom;
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set bar color
- switch (_typeof(formatterParams.color)) {
- case "string":
- color = formatterParams.color;
- break;
- case "function":
- color = formatterParams.color(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.color)) {
- var unit = 100 / formatterParams.color.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.color.length - 1);
- index = Math.max(index, 0);
- color = formatterParams.color[index];
- break;
- }
- default:
- color = "#2DC214";
- }
-
- //generate legend
- switch (_typeof(formatterParams.legend)) {
- case "string":
- legend = formatterParams.legend;
- break;
- case "function":
- legend = formatterParams.legend(value);
- break;
- case "boolean":
- legend = value;
- break;
- default:
- legend = false;
- }
-
- //set legend color
- switch (_typeof(formatterParams.legendColor)) {
- case "string":
- legendColor = formatterParams.legendColor;
- break;
- case "function":
- legendColor = formatterParams.legendColor(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.legendColor)) {
- var unit = 100 / formatterParams.legendColor.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.legendColor.length - 1);
- index = Math.max(index, 0);
- legendColor = formatterParams.legendColor[index];
- }
- break;
- default:
- legendColor = "#000";
- }
-
- element.style.minWidth = "30px";
- element.style.position = "relative";
-
- element.setAttribute("aria-label", percentValue);
-
- var barEl = document.createElement("div");
- barEl.style.display = "inline-block";
- barEl.style.position = "relative";
- barEl.style.width = percentValue + "%";
- barEl.style.backgroundColor = color;
- barEl.style.height = "100%";
-
- barEl.setAttribute('data-max', max);
- barEl.setAttribute('data-min', min);
-
- if (legend) {
- var legendEl = document.createElement("div");
- legendEl.style.position = "absolute";
- legendEl.style.top = "4px";
- legendEl.style.left = 0;
- legendEl.style.textAlign = legendAlign;
- legendEl.style.width = "100%";
- legendEl.style.color = legendColor;
- legendEl.innerHTML = legend;
- }
-
- onRendered(function () {
-
- //handle custom element needed if formatter is to be included in printed/downloaded output
- if (!(cell instanceof CellComponent)) {
- var holderEl = document.createElement("div");
- holderEl.style.position = "absolute";
- holderEl.style.top = "4px";
- holderEl.style.bottom = "4px";
- holderEl.style.left = "4px";
- holderEl.style.right = "4px";
-
- element.appendChild(holderEl);
-
- element = holderEl;
- }
-
- element.appendChild(barEl);
-
- if (legend) {
- element.appendChild(legendEl);
- }
- });
-
- return "";
- },
-
- //background color
- color: function color(cell, formatterParams, onRendered) {
- cell.getElement().style.backgroundColor = this.sanitizeHTML(cell.getValue());
- return "";
- },
-
- //tick icon
- buttonTick: function buttonTick(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>';
- },
-
- //cross icon
- buttonCross: function buttonCross(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
- },
-
- //current row number
- rownum: function rownum(cell, formatterParams, onRendered) {
- return this.table.rowManager.activeRows.indexOf(cell.getRow()._getSelf()) + 1;
- },
-
- //row handle
- handle: function handle(cell, formatterParams, onRendered) {
- cell.getElement().classList.add("tabulator-row-handle");
- return "<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>";
- },
-
- responsiveCollapse: function responsiveCollapse(cell, formatterParams, onRendered) {
- var self = this,
- open = false,
- el = document.createElement("div"),
- config = cell.getRow()._row.modules.responsiveLayout;
-
- el.classList.add("tabulator-responsive-collapse-toggle");
- el.innerHTML = "<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>";
-
- cell.getElement().classList.add("tabulator-row-handle");
-
- function toggleList(isOpen) {
- var collapseEl = config.element;
-
- config.open = isOpen;
-
- if (collapseEl) {
-
- if (config.open) {
- el.classList.add("open");
- collapseEl.style.display = '';
- } else {
- el.classList.remove("open");
- collapseEl.style.display = 'none';
- }
- }
- }
-
- el.addEventListener("click", function (e) {
- e.stopImmediatePropagation();
- toggleList(!config.open);
- });
-
- toggleList(config.open);
-
- return el;
- },
-
- rowSelection: function rowSelection(cell) {
- var _this = this;
-
- var checkbox = document.createElement("input");
-
- checkbox.type = 'checkbox';
-
- if (this.table.modExists("selectRow", true)) {
-
- checkbox.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- if (typeof cell.getRow == 'function') {
- var row = cell.getRow();
-
- checkbox.addEventListener("change", function (e) {
- row.toggleSelect();
- });
-
- checkbox.checked = row.isSelected();
- this.table.modules.selectRow.registerRowSelectCheckbox(row, checkbox);
- } else {
- checkbox.addEventListener("change", function (e) {
- if (_this.table.modules.selectRow.selectedRows.length) {
- _this.table.deselectRow();
- } else {
- _this.table.selectRow();
- }
- });
-
- this.table.modules.selectRow.registerHeaderSelectCheckbox(checkbox);
- }
- }
- return checkbox;
- }
-};
-
-Tabulator.prototype.registerModule("format", Format);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Format=function(e){this.table=e};Format.prototype.initializeColumn=function(e){e.modules.format=this.lookupFormatter(e,""),void 0!==e.definition.formatterPrint&&(e.modules.format.print=this.lookupFormatter(e,"Print")),void 0!==e.definition.formatterClipboard&&(e.modules.format.clipboard=this.lookupFormatter(e,"Clipboard")),void 0!==e.definition.formatterHtmlOutput&&(e.modules.format.htmlOutput=this.lookupFormatter(e,"HtmlOutput"))},Format.prototype.lookupFormatter=function(e,t){var o={params:e.definition["formatter"+t+"Params"]||{}},r=e.definition["formatter"+t];switch(void 0===r?"undefined":_typeof(r)){case"string":"tick"===r&&(r="tickCross",void 0===o.params.crossElement&&(o.params.crossElement=!1),console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false")),this.formatters[r]?o.formatter=this.formatters[r]:(console.warn("Formatter Error - No such formatter found: ",r),o.formatter=this.formatters.plaintext);break;case"function":o.formatter=r;break;default:o.formatter=this.formatters.plaintext}return o},Format.prototype.cellRendered=function(e){e.modules.format&&e.modules.format.renderedCallback&&e.modules.format.renderedCallback()},Format.prototype.formatValue=function(e){function t(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t}var o=e.getComponent(),r="function"==typeof e.column.modules.format.params?e.column.modules.format.params(o):e.column.modules.format.params;return e.column.modules.format.formatter.call(this,o,r,t)},Format.prototype.formatExportValue=function(e,t){var o,r=e.column.modules.format[t];if(r){var a=function(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t};return o="function"==typeof r.params?r.params(component):r.params,r.formatter.call(this,e.getComponent(),o,a)}return this.formatValue(e)},Format.prototype.sanitizeHTML=function(e){if(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(e).replace(/[&<>"'`=\/]/g,function(e){return t[e]})}return e},Format.prototype.emptyToSpace=function(e){return null===e||void 0===e||""===e?" ":e},Format.prototype.getFormatter=function(e){var e;switch(void 0===e?"undefined":_typeof(e)){case"string":this.formatters[e]?e=this.formatters[e]:(console.warn("Formatter Error - No such formatter found: ",e),e=this.formatters.plaintext);break;case"function":e=e;break;default:e=this.formatters.plaintext}return e},Format.prototype.formatters={plaintext:function(e,t,o){return this.emptyToSpace(this.sanitizeHTML(e.getValue()))},html:function(e,t,o){return e.getValue()},textarea:function(e,t,o){return e.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(e.getValue()))},money:function(e,t,o){var r,a,l,n,i=parseFloat(e.getValue()),s=t.decimal||".",c=t.thousand||",",u=t.symbol||"",d=!!t.symbolAfter,m=void 0!==t.precision?t.precision:2;if(isNaN(i))return this.emptyToSpace(this.sanitizeHTML(e.getValue()));for(r=!1!==m?i.toFixed(m):i,r=String(r).split("."),a=r[0],l=r.length>1?s+r[1]:"",n=/(\d+)(\d{3})/;n.test(a);)a=a.replace(n,"$1"+c+"$2");return d?a+l+u:u+a+l},link:function(e,t,o){var r,a=e.getValue(),l=t.urlPrefix||"",n=t.download,i=a,s=document.createElement("a");if(t.labelField&&(r=e.getData(),i=r[t.labelField]),t.label)switch(_typeof(t.label)){case"string":i=t.label;break;case"function":i=t.label(e)}if(i){if(t.urlField&&(r=e.getData(),a=r[t.urlField]),t.url)switch(_typeof(t.url)){case"string":a=t.url;break;case"function":a=t.url(e)}return s.setAttribute("href",l+a),t.target&&s.setAttribute("target",t.target),t.download&&(n="function"==typeof n?n(e):!0===n?"":n,s.setAttribute("download",n)),s.innerHTML=this.emptyToSpace(this.sanitizeHTML(i)),s}return" "},image:function(e,t,o){var r=document.createElement("img");switch(r.setAttribute("src",e.getValue()),_typeof(t.height)){case"number":r.style.height=t.height+"px";break;case"string":r.style.height=t.height}switch(_typeof(t.width)){case"number":r.style.width=t.width+"px";break;case"string":r.style.width=t.width}return r.addEventListener("load",function(){e.getRow().normalizeHeight()}),r},tickCross:function(e,t,o){var r=e.getValue(),a=e.getElement(),l=t.allowEmpty,n=t.allowTruthy,i=void 0!==t.tickElement?t.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',s=void 0!==t.crossElement?t.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';return n&&r||!0===r||"true"===r||"True"===r||1===r||"1"===r?(a.setAttribute("aria-checked",!0),i||""):!l||"null"!==r&&""!==r&&null!==r&&void 0!==r?(a.setAttribute("aria-checked",!1),s||""):(a.setAttribute("aria-checked","mixed"),"")},datetime:function(e,t,o){var r=t.inputFormat||"YYYY-MM-DD hh:mm:ss",a=t.outputFormat||"DD/MM/YYYY hh:mm:ss",l=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",n=e.getValue(),i=moment(n,r);return i.isValid()?i.format(a):!0===l?n:"function"==typeof l?l(n):l},datetimediff:function(e,t,o){var r=t.inputFormat||"YYYY-MM-DD hh:mm:ss",a=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",l=void 0!==t.suffix&&t.suffix,n=void 0!==t.unit?t.unit:void 0,i=void 0!==t.humanize&&t.humanize,s=void 0!==t.date?t.date:moment(),c=e.getValue(),u=moment(c,r);return u.isValid()?i?moment.duration(u.diff(s)).humanize(l):u.diff(s,n)+(l?" "+l:""):!0===a?c:"function"==typeof a?a(c):a},lookup:function(e,t,o){var r=e.getValue();return void 0===t[r]?(console.warn("Missing display value for "+r),r):t[r]},star:function(e,t,o){var r=e.getValue(),a=e.getElement(),l=t&&t.stars?t.stars:5,n=document.createElement("span"),i=document.createElementNS("http://www.w3.org/2000/svg","svg");n.style.verticalAlign="middle",i.setAttribute("width","14"),i.setAttribute("height","14"),i.setAttribute("viewBox","0 0 512 512"),i.setAttribute("xml:space","preserve"),i.style.padding="0 1px",r=r&&!isNaN(r)?parseInt(r):0,r=Math.max(0,Math.min(r,l));for(var s=1;s<=l;s++){var c=i.cloneNode(!0);c.innerHTML=s<=r?'<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>':'<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',n.appendChild(c)}return a.style.whiteSpace="nowrap",a.style.overflow="hidden",a.style.textOverflow="ellipsis",a.setAttribute("aria-label",r),n},traffic:function(e,t,o){var r,a,l=this.sanitizeHTML(e.getValue())||0,n=document.createElement("span"),i=t&&t.max?t.max:100,s=t&&t.min?t.min:0,c=t&&void 0!==t.color?t.color:["red","orange","green"],u="#666666";if(!isNaN(l)&&void 0!==e.getValue()){switch(n.classList.add("tabulator-traffic-light"),a=parseFloat(l)<=i?parseFloat(l):i,a=parseFloat(a)>=s?parseFloat(a):s,r=(i-s)/100,a=Math.round((a-s)/r),void 0===c?"undefined":_typeof(c)){case"string":u=c;break;case"function":u=c(l);break;case"object":if(Array.isArray(c)){var d=100/c.length,m=Math.floor(a/d);m=Math.min(m,c.length-1),m=Math.max(m,0),u=c[m];break}}return n.style.backgroundColor=u,n}},progress:function(e,t,o){var r,a,l,n,i,s=this.sanitizeHTML(e.getValue())||0,c=e.getElement(),u=t&&t.max?t.max:100,d=t&&t.min?t.min:0,m=t&&t.legendAlign?t.legendAlign:"center";switch(a=parseFloat(s)<=u?parseFloat(s):u,a=parseFloat(a)>=d?parseFloat(a):d,r=(u-d)/100,a=Math.round((a-d)/r),_typeof(t.color)){case"string":l=t.color;break;case"function":l=t.color(s);break;case"object":if(Array.isArray(t.color)){var p=100/t.color.length,f=Math.floor(a/p);f=Math.min(f,t.color.length-1),f=Math.max(f,0),l=t.color[f];break}default:l="#2DC214"}switch(_typeof(t.legend)){case"string":n=t.legend;break;case"function":n=t.legend(s);break;case"boolean":n=s;break;default:n=!1}switch(_typeof(t.legendColor)){case"string":i=t.legendColor;break;case"function":i=t.legendColor(s);break;case"object":if(Array.isArray(t.legendColor)){var p=100/t.legendColor.length,f=Math.floor(a/p);f=Math.min(f,t.legendColor.length-1),f=Math.max(f,0),i=t.legendColor[f]}break;default:i="#000"}c.style.minWidth="30px",c.style.position="relative",c.setAttribute("aria-label",a);var h=document.createElement("div");if(h.style.display="inline-block",h.style.position="relative",h.style.width=a+"%",h.style.backgroundColor=l,h.style.height="100%",h.setAttribute("data-max",u),h.setAttribute("data-min",d),n){var g=document.createElement("div");g.style.position="absolute",g.style.top="4px",g.style.left=0,g.style.textAlign=m,g.style.width="100%",g.style.color=i,g.innerHTML=n}return o(function(){if(!(e instanceof CellComponent)){var t=document.createElement("div");t.style.position="absolute",t.style.top="4px",t.style.bottom="4px",t.style.left="4px",t.style.right="4px",c.appendChild(t),c=t}c.appendChild(h),n&&c.appendChild(g)}),""},color:function(e,t,o){return e.getElement().style.backgroundColor=this.sanitizeHTML(e.getValue()),""},buttonTick:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'},buttonCross:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'},rownum:function(e,t,o){return this.table.rowManager.activeRows.indexOf(e.getRow()._getSelf())+1},handle:function(e,t,o){return e.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"},responsiveCollapse:function(e,t,o){function r(e){var t=l.element;l.open=e,t&&(l.open?(a.classList.add("open"),t.style.display=""):(a.classList.remove("open"),t.style.display="none"))}var a=document.createElement("div"),l=e.getRow()._row.modules.responsiveLayout;return a.classList.add("tabulator-responsive-collapse-toggle"),a.innerHTML="<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>",e.getElement().classList.add("tabulator-row-handle"),a.addEventListener("click",function(e){e.stopImmediatePropagation(),r(!l.open)}),r(l.open),a},rowSelection:function(e){var t=this,o=document.createElement("input");if(o.type="checkbox",this.table.modExists("selectRow",!0))if(o.addEventListener("click",function(e){e.stopPropagation()}),"function"==typeof e.getRow){var r=e.getRow();o.addEventListener("change",function(e){r.toggleSelect()}),o.checked=r.isSelected(),this.table.modules.selectRow.registerRowSelectCheckbox(r,o)}else o.addEventListener("change",function(e){t.table.modules.selectRow.selectedRows.length?t.table.deselectRow():t.table.selectRow()}),this.table.modules.selectRow.registerHeaderSelectCheckbox(o);return o}},Tabulator.prototype.registerModule("format",Format);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var FrozenColumns = function FrozenColumns(table) {
- this.table = table; //hold Tabulator object
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightPadding = 0;
- this.initializationMode = "left";
- this.active = false;
- this.scrollEndTimer = false;
-};
-
-//reset initial state
-FrozenColumns.prototype.reset = function () {
- this.initializationMode = "left";
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightMargin = 0;
- this.active = false;
-
- this.table.columnManager.headersElement.style.marginLeft = 0;
- this.table.columnManager.element.style.paddingRight = 0;
-};
-
-//initialize specific column
-FrozenColumns.prototype.initializeColumn = function (column) {
- var config = { margin: 0, edge: false };
-
- if (!column.isGroup) {
-
- if (this.frozenCheck(column)) {
-
- config.position = this.initializationMode;
-
- if (this.initializationMode == "left") {
- this.leftColumns.push(column);
- } else {
- this.rightColumns.unshift(column);
- }
-
- this.active = true;
-
- column.modules.frozen = config;
- } else {
- this.initializationMode = "right";
- }
- }
-};
-
-FrozenColumns.prototype.frozenCheck = function (column) {
- var frozen = false;
-
- if (column.parent.isGroup && column.definition.frozen) {
- console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups");
- }
-
- if (column.parent.isGroup) {
- return this.frozenCheck(column.parent);
- } else {
- return column.definition.frozen;
- }
-
- return frozen;
-};
-
-//quick layout to smooth horizontal scrolling
-FrozenColumns.prototype.scrollHorizontal = function () {
- var _this = this;
-
- var rows;
-
- if (this.active) {
- clearTimeout(this.scrollEndTimer);
-
- //layout all rows after scroll is complete
- this.scrollEndTimer = setTimeout(function () {
- _this.layout();
- }, 100);
-
- rows = this.table.rowManager.getVisibleRows();
-
- this.calcMargins();
-
- this.layoutColumnPosition();
-
- this.layoutCalcRows();
-
- rows.forEach(function (row) {
- if (row.type === "row") {
- _this.layoutRow(row);
- }
- });
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
-};
-
-//calculate margins for rows
-FrozenColumns.prototype.calcMargins = function () {
- this.leftMargin = this._calcSpace(this.leftColumns, this.leftColumns.length) + "px";
- this.table.columnManager.headersElement.style.marginLeft = this.leftMargin;
-
- this.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + "px";
- this.table.columnManager.element.style.paddingRight = this.rightMargin;
-
- //calculate right frozen columns
- this.rightPadding = this.table.rowManager.element.clientWidth + this.table.columnManager.scrollLeft;
-};
-
-//layout calculation rows
-FrozenColumns.prototype.layoutCalcRows = function () {
- if (this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized && this.table.modules.columnCalcs.topRow) {
- this.layoutRow(this.table.modules.columnCalcs.topRow);
- }
- if (this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow) {
- this.layoutRow(this.table.modules.columnCalcs.botRow);
- }
- }
-};
-
-//calculate column positions and layout headers
-FrozenColumns.prototype.layoutColumnPosition = function (allCells) {
- var _this2 = this;
-
- var leftParents = [];
-
- this.leftColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this2._calcSpace(_this2.leftColumns, i) + _this2.table.columnManager.scrollLeft + "px";
-
- if (i == _this2.leftColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- var parentEl = _this2.getColGroupParentElement(column);
- if (!leftParents.includes(parentEl)) {
- _this2.layoutElement(parentEl, column);
- leftParents.push(parentEl);
- }
-
- if (column.modules.frozen.edge) {
- parentEl.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- } else {
- _this2.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this2.layoutElement(cell.getElement(), column);
- });
- }
- });
-
- this.rightColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this2.rightPadding - _this2._calcSpace(_this2.rightColumns, i + 1) + "px";
-
- if (i == _this2.rightColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- _this2.layoutElement(_this2.getColGroupParentElement(column), column);
- } else {
- _this2.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this2.layoutElement(cell.getElement(), column);
- });
- }
- });
-};
-
-FrozenColumns.prototype.getColGroupParentElement = function (column) {
- return column.parent.isGroup ? this.getColGroupParentElement(column.parent) : column.getElement();
-};
-
-//layout columns appropropriatly
-FrozenColumns.prototype.layout = function () {
- var self = this,
- rightMargin = 0;
-
- if (self.active) {
-
- //calculate row padding
- this.calcMargins();
-
- // self.table.rowManager.activeRows.forEach(function(row){
- // self.layoutRow(row);
- // });
-
- // if(self.table.options.dataTree){
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row") {
- self.layoutRow(row);
- }
- });
- // }
-
- this.layoutCalcRows();
-
- //calculate left columns
- this.layoutColumnPosition(true);
-
- // if(tableHolder.scrollHeight > tableHolder.clientHeight){
- // rightMargin -= tableHolder.offsetWidth - tableHolder.clientWidth;
- // }
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
-};
-
-FrozenColumns.prototype.layoutRow = function (row) {
- var _this3 = this;
-
- var rowEl = row.getElement();
-
- rowEl.style.paddingLeft = this.leftMargin;
- // rowEl.style.paddingRight = this.rightMargin + "px";
-
- this.leftColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this3.layoutElement(cell.getElement(), column);
- }
- });
-
- this.rightColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this3.layoutElement(cell.getElement(), column);
- }
- });
-};
-
-FrozenColumns.prototype.layoutElement = function (element, column) {
-
- if (column.modules.frozen) {
- element.style.position = "absolute";
- element.style.left = column.modules.frozen.margin;
-
- element.classList.add("tabulator-frozen");
-
- if (column.modules.frozen.edge) {
- element.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- }
-};
-
-FrozenColumns.prototype._calcSpace = function (columns, index) {
- var width = 0;
-
- for (var i = 0; i < index; i++) {
- if (columns[i].visible) {
- width += columns[i].getWidth();
- }
- }
-
- return width;
-};
-
-Tabulator.prototype.registerModule("frozenColumns", FrozenColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var FrozenColumns=function(t){this.table=t,this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightPadding=0,this.initializationMode="left",this.active=!1,this.scrollEndTimer=!1};FrozenColumns.prototype.reset=function(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightMargin=0,this.active=!1,this.table.columnManager.headersElement.style.marginLeft=0,this.table.columnManager.element.style.paddingRight=0},FrozenColumns.prototype.initializeColumn=function(t){var e={margin:0,edge:!1};t.isGroup||(this.frozenCheck(t)?(e.position=this.initializationMode,"left"==this.initializationMode?this.leftColumns.push(t):this.rightColumns.unshift(t),this.active=!0,t.modules.frozen=e):this.initializationMode="right")},FrozenColumns.prototype.frozenCheck=function(t){return t.parent.isGroup&&t.definition.frozen&&console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups"),t.parent.isGroup?this.frozenCheck(t.parent):t.definition.frozen},FrozenColumns.prototype.scrollHorizontal=function(){var t,e=this;this.active&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=setTimeout(function(){e.layout()},100),t=this.table.rowManager.getVisibleRows(),this.calcMargins(),this.layoutColumnPosition(),this.layoutCalcRows(),t.forEach(function(t){"row"===t.type&&e.layoutRow(t)}),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},FrozenColumns.prototype.calcMargins=function(){this.leftMargin=this._calcSpace(this.leftColumns,this.leftColumns.length)+"px",this.table.columnManager.headersElement.style.marginLeft=this.leftMargin,this.rightMargin=this._calcSpace(this.rightColumns,this.rightColumns.length)+"px",this.table.columnManager.element.style.paddingRight=this.rightMargin,this.rightPadding=this.table.rowManager.element.clientWidth+this.table.columnManager.scrollLeft},FrozenColumns.prototype.layoutCalcRows=function(){this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow&&this.layoutRow(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow&&this.layoutRow(this.table.modules.columnCalcs.botRow))},FrozenColumns.prototype.layoutColumnPosition=function(t){var e=this,o=[];this.leftColumns.forEach(function(n,l){if(n.modules.frozen.margin=e._calcSpace(e.leftColumns,l)+e.table.columnManager.scrollLeft+"px",l==e.leftColumns.length-1?n.modules.frozen.edge=!0:n.modules.frozen.edge=!1,n.parent.isGroup){var i=e.getColGroupParentElement(n);o.includes(i)||(e.layoutElement(i,n),o.push(i)),n.modules.frozen.edge&&i.classList.add("tabulator-frozen-"+n.modules.frozen.position)}else e.layoutElement(n.getElement(),n);t&&n.cells.forEach(function(t){e.layoutElement(t.getElement(),n)})}),this.rightColumns.forEach(function(o,n){o.modules.frozen.margin=e.rightPadding-e._calcSpace(e.rightColumns,n+1)+"px",n==e.rightColumns.length-1?o.modules.frozen.edge=!0:o.modules.frozen.edge=!1,o.parent.isGroup?e.layoutElement(e.getColGroupParentElement(o),o):e.layoutElement(o.getElement(),o),t&&o.cells.forEach(function(t){e.layoutElement(t.getElement(),o)})})},FrozenColumns.prototype.getColGroupParentElement=function(t){return t.parent.isGroup?this.getColGroupParentElement(t.parent):t.getElement()},FrozenColumns.prototype.layout=function(){var t=this;t.active&&(this.calcMargins(),t.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&t.layoutRow(e)}),this.layoutCalcRows(),this.layoutColumnPosition(!0),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},FrozenColumns.prototype.layoutRow=function(t){var e=this;t.getElement().style.paddingLeft=this.leftMargin,this.leftColumns.forEach(function(o){var n=t.getCell(o);n&&e.layoutElement(n.getElement(),o)}),this.rightColumns.forEach(function(o){var n=t.getCell(o);n&&e.layoutElement(n.getElement(),o)})},FrozenColumns.prototype.layoutElement=function(t,e){e.modules.frozen&&(t.style.position="absolute",t.style.left=e.modules.frozen.margin,t.classList.add("tabulator-frozen"),e.modules.frozen.edge&&t.classList.add("tabulator-frozen-"+e.modules.frozen.position))},FrozenColumns.prototype._calcSpace=function(t,e){for(var o=0,n=0;n<e;n++)t[n].visible&&(o+=t[n].getWidth());return o},Tabulator.prototype.registerModule("frozenColumns",FrozenColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var FrozenRows = function FrozenRows(table) {
- this.table = table; //hold Tabulator object
- this.topElement = document.createElement("div");
- this.rows = [];
- this.displayIndex = 0; //index in display pipeline
-};
-
-FrozenRows.prototype.initialize = function () {
- this.rows = [];
-
- this.topElement.classList.add("tabulator-frozen-rows-holder");
-
- // this.table.columnManager.element.append(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
-};
-
-FrozenRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-FrozenRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-FrozenRows.prototype.isFrozen = function () {
- return !!this.rows.length;
-};
-
-//filter frozen rows out of display data
-FrozenRows.prototype.getRows = function (rows) {
- var self = this,
- frozen = [],
- output = rows.slice(0);
-
- this.rows.forEach(function (row) {
- var index = output.indexOf(row);
-
- if (index > -1) {
- output.splice(index, 1);
- }
- });
-
- return output;
-};
-
-FrozenRows.prototype.freezeRow = function (row) {
- if (!row.modules.frozen) {
- row.modules.frozen = true;
- this.topElement.appendChild(row.getElement());
- row.initialize();
- row.normalizeHeight();
- this.table.rowManager.adjustTableSize();
-
- this.rows.push(row);
-
- this.table.rowManager.refreshActiveData("display");
-
- this.styleRows();
- } else {
- console.warn("Freeze Error - Row is already frozen");
- }
-};
-
-FrozenRows.prototype.unfreezeRow = function (row) {
- var index = this.rows.indexOf(row);
-
- if (row.modules.frozen) {
-
- row.modules.frozen = false;
-
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
-
- this.table.rowManager.adjustTableSize();
-
- this.rows.splice(index, 1);
-
- this.table.rowManager.refreshActiveData("display");
-
- if (this.rows.length) {
- this.styleRows();
- }
- } else {
- console.warn("Freeze Error - Row is already unfrozen");
- }
-};
-
-FrozenRows.prototype.styleRows = function (row) {
- var self = this;
-
- this.rows.forEach(function (row, i) {
- self.table.rowManager.styleRow(row, i);
- });
-};
-
-Tabulator.prototype.registerModule("frozenRows", FrozenRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var FrozenRows=function(e){this.table=e,this.topElement=document.createElement("div"),this.rows=[],this.displayIndex=0};FrozenRows.prototype.initialize=function(){this.rows=[],this.topElement.classList.add("tabulator-frozen-rows-holder"),this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling)},FrozenRows.prototype.setDisplayIndex=function(e){this.displayIndex=e},FrozenRows.prototype.getDisplayIndex=function(){return this.displayIndex},FrozenRows.prototype.isFrozen=function(){return!!this.rows.length},FrozenRows.prototype.getRows=function(e){var o=e.slice(0);return this.rows.forEach(function(e){var t=o.indexOf(e);t>-1&&o.splice(t,1)}),o},FrozenRows.prototype.freezeRow=function(e){e.modules.frozen?console.warn("Freeze Error - Row is already frozen"):(e.modules.frozen=!0,this.topElement.appendChild(e.getElement()),e.initialize(),e.normalizeHeight(),this.table.rowManager.adjustTableSize(),this.rows.push(e),this.table.rowManager.refreshActiveData("display"),this.styleRows())},FrozenRows.prototype.unfreezeRow=function(e){var o=this.rows.indexOf(e);if(e.modules.frozen){e.modules.frozen=!1;var t=e.getElement();t.parentNode.removeChild(t),this.table.rowManager.adjustTableSize(),this.rows.splice(o,1),this.table.rowManager.refreshActiveData("display"),this.rows.length&&this.styleRows()}else console.warn("Freeze Error - Row is already unfrozen")},FrozenRows.prototype.styleRows=function(e){var o=this;this.rows.forEach(function(e,t){o.table.rowManager.styleRow(e,t)})},Tabulator.prototype.registerModule("frozenRows",FrozenRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-//public group object
-var GroupComponent = function GroupComponent(group) {
- this._group = group;
- this.type = "GroupComponent";
-};
-
-GroupComponent.prototype.getKey = function () {
- return this._group.key;
-};
-
-GroupComponent.prototype.getField = function () {
- return this._group.field;
-};
-
-GroupComponent.prototype.getElement = function () {
- return this._group.element;
-};
-
-GroupComponent.prototype.getRows = function () {
- return this._group.getRows(true);
-};
-
-GroupComponent.prototype.getSubGroups = function () {
- return this._group.getSubGroups(true);
-};
-
-GroupComponent.prototype.getParentGroup = function () {
- return this._group.parent ? this._group.parent.getComponent() : false;
-};
-
-GroupComponent.prototype.getVisibility = function () {
- return this._group.visible;
-};
-
-GroupComponent.prototype.show = function () {
- this._group.show();
-};
-
-GroupComponent.prototype.hide = function () {
- this._group.hide();
-};
-
-GroupComponent.prototype.toggle = function () {
- this._group.toggleVisibility();
-};
-
-GroupComponent.prototype._getSelf = function () {
- return this._group;
-};
-
-GroupComponent.prototype.getTable = function () {
- return this._group.groupManager.table;
-};
-
-//////////////////////////////////////////////////
-//////////////// Group Functions /////////////////
-//////////////////////////////////////////////////
-
-var Group = function Group(groupManager, parent, level, key, field, generator, oldGroup) {
-
- this.groupManager = groupManager;
- this.parent = parent;
- this.key = key;
- this.level = level;
- this.field = field;
- this.hasSubGroups = level < groupManager.groupIDLookups.length - 1;
- this.addRow = this.hasSubGroups ? this._addRowToGroup : this._addRow;
- this.type = "group"; //type of element
- this.old = oldGroup;
- this.rows = [];
- this.groups = [];
- this.groupList = [];
- this.generator = generator;
- this.elementContents = false;
- this.height = 0;
- this.outerHeight = 0;
- this.initialized = false;
- this.calcs = {};
- this.initialized = false;
- this.modules = {};
- this.arrowElement = false;
-
- this.visible = oldGroup ? oldGroup.visible : typeof groupManager.startOpen[level] !== "undefined" ? groupManager.startOpen[level] : groupManager.startOpen[0];
-
- this.createElements();
- this.addBindings();
-
- this.createValueGroups();
-};
-
-Group.prototype.wipe = function () {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
- } else {
- this.element = false;
- this.arrowElement = false;
- this.elementContents = false;
- }
-};
-
-Group.prototype.createElements = function () {
- var arrow = document.createElement("div");
- arrow.classList.add("tabulator-arrow");
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-row");
- this.element.classList.add("tabulator-group");
- this.element.classList.add("tabulator-group-level-" + this.level);
- this.element.setAttribute("role", "rowgroup");
-
- this.arrowElement = document.createElement("div");
- this.arrowElement.classList.add("tabulator-group-toggle");
- this.arrowElement.appendChild(arrow);
-
- //setup movable rows
- if (this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists("moveRow")) {
- this.groupManager.table.modules.moveRow.initializeGroupHeader(this);
- }
-};
-
-Group.prototype.createValueGroups = function () {
- var _this = this;
-
- var level = this.level + 1;
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- this.groupManager.allowedValues[level].forEach(function (value) {
- _this._createGroup(value, level);
- });
- }
-};
-
-Group.prototype.addBindings = function () {
- var self = this,
- dblTap,
- tapHold,
- tap,
- toggleElement;
-
- //handle group click events
- if (self.groupManager.table.options.groupClick) {
- self.element.addEventListener("click", function (e) {
- self.groupManager.table.options.groupClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupDblClick) {
- self.element.addEventListener("dblclick", function (e) {
- self.groupManager.table.options.groupDblClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupContext) {
- self.element.addEventListener("contextmenu", function (e) {
- self.groupManager.table.options.groupContext.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- self.groupManager.table.options.groupTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.groupManager.table.options.groupDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- self.groupManager.table.options.groupDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.groupManager.table.options.groupTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- self.groupManager.table.options.groupTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-
- if (self.groupManager.table.options.groupToggleElement) {
- toggleElement = self.groupManager.table.options.groupToggleElement == "arrow" ? self.arrowElement : self.element;
-
- toggleElement.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- self.toggleVisibility();
- });
- }
-};
-
-Group.prototype._createGroup = function (groupID, level) {
- var groupKey = level + "_" + groupID;
- var group = new Group(this.groupManager, this, level, groupID, this.groupManager.groupIDLookups[level].field, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupKey] : false);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
-};
-
-Group.prototype._addRowToGroup = function (row) {
-
- var level = this.level + 1;
-
- if (this.hasSubGroups) {
- var groupID = this.groupManager.groupIDLookups[level].func(row.getData()),
- groupKey = level + "_" + groupID;
-
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
- } else {
- if (!this.groups[groupKey]) {
- this._createGroup(groupID, level);
- }
-
- this.groups[groupKey].addRow(row);
- }
- }
-};
-
-Group.prototype._addRow = function (row) {
- this.rows.push(row);
- row.modules.group = this;
-};
-
-Group.prototype.insertRow = function (row, to, after) {
- var data = this.conformRowData({});
-
- row.updateData(data);
-
- var toIndex = this.rows.indexOf(to);
-
- if (toIndex > -1) {
- if (after) {
- this.rows.splice(toIndex + 1, 0, row);
- } else {
- this.rows.splice(toIndex, 0, row);
- }
- } else {
- if (after) {
- this.rows.push(row);
- } else {
- this.rows.unshift(row);
- }
- }
-
- row.modules.group = this;
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
-};
-
-Group.prototype.scrollHeader = function (left) {
- this.arrowElement.style.marginLeft = left;
-
- this.groupList.forEach(function (child) {
- child.scrollHeader(left);
- });
-};
-
-Group.prototype.getRowIndex = function (row) {};
-
-//update row data to match grouping contraints
-Group.prototype.conformRowData = function (data) {
- if (this.field) {
- data[this.field] = this.key;
- } else {
- console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function");
- }
-
- if (this.parent) {
- data = this.parent.conformRowData(data);
- }
-
- return data;
-};
-
-Group.prototype.removeRow = function (row) {
- var index = this.rows.indexOf(row);
- var el = row.getElement();
-
- if (index > -1) {
- this.rows.splice(index, 1);
- }
-
- if (!this.groupManager.table.options.groupValues && !this.rows.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
- } else {
-
- if (el.parentNode) {
- el.parentNode.removeChild(el);
- }
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
- }
-};
-
-Group.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
-
- if (!this.groupList.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
- }
- }
-};
-
-Group.prototype.getHeadersAndRows = function (noCalc) {
- var output = [];
-
- output.push(this);
-
- this._visSet();
-
- if (this.visible) {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows(noCalc));
- });
- } else {
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
-
- output = output.concat(this.rows);
-
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- } else {
- if (!this.groupList.length && this.groupManager.table.options.columnCalcs != "table") {
-
- if (this.groupManager.table.modExists("columnCalcs")) {
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
- }
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- }
- }
- }
-
- return output;
-};
-
-Group.prototype.getData = function (visible, transform) {
- var self = this,
- output = [];
-
- this._visSet();
-
- if (!visible || visible && this.visible) {
- this.rows.forEach(function (row) {
- output.push(row.getData(transform || "data"));
- });
- }
-
- return output;
-};
-
-// Group.prototype.getRows = function(){
-// this._visSet();
-
-// return this.visible ? this.rows : [];
-// };
-
-Group.prototype.getRowCount = function () {
- var count = 0;
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- count += group.getRowCount();
- });
- } else {
- count = this.rows.length;
- }
- return count;
-};
-
-Group.prototype.toggleVisibility = function () {
- if (this.visible) {
- this.hide();
- } else {
- this.show();
- }
-};
-
-Group.prototype.hide = function () {
- this.visible = false;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.remove("tabulator-group-visible");
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
-
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- row.detachElement();
- });
- });
- } else {
- this.rows.forEach(function (row) {
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), false);
-};
-
-Group.prototype.show = function () {
- var self = this;
-
- self.visible = true;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.add("tabulator-group-visible");
-
- var prev = self.getElement();
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- });
- } else {
- self.rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), true);
-};
-
-Group.prototype._visSet = function () {
- var data = [];
-
- if (typeof this.visible == "function") {
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.visible = this.visible(this.key, this.getRowCount(), data, this.getComponent());
- }
-};
-
-Group.prototype.getRowGroup = function (row) {
- var match = false;
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
- } else {
- if (this.rows.find(function (item) {
- return item === row;
- })) {
- match = this;
- }
- }
-
- return match;
-};
-
-Group.prototype.getSubGroups = function (component) {
- var output = [];
-
- this.groupList.forEach(function (child) {
- output.push(component ? child.getComponent() : child);
- });
-
- return output;
-};
-
-Group.prototype.getRows = function (compoment) {
- var output = [];
-
- this.rows.forEach(function (row) {
- output.push(compoment ? row.getComponent() : row);
- });
-
- return output;
-};
-
-Group.prototype.generateGroupHeaderContents = function () {
- var data = [];
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent());
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }if (typeof this.elementContents === "string") {
- this.element.innerHTML = this.elementContents;
- } else {
- this.element.appendChild(this.elementContents);
- }
-
- this.element.insertBefore(this.arrowElement, this.element.firstChild);
-};
-
-////////////// Standard Row Functions //////////////
-
-Group.prototype.getElement = function () {
- this.addBindingsd = false;
-
- this._visSet();
-
- if (this.visible) {
- this.element.classList.add("tabulator-group-visible");
- } else {
- this.element.classList.remove("tabulator-group-visible");
- }
-
- for (var i = 0; i < this.element.childNodes.length; ++i) {
- this.element.childNodes[i].parentNode.removeChild(this.element.childNodes[i]);
- }
-
- this.generateGroupHeaderContents();
-
- // this.addBindings();
-
- return this.element;
-};
-
-Group.prototype.detachElement = function () {
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
-};
-
-//normalize the height of elements in the row
-Group.prototype.normalizeHeight = function () {
- this.setHeight(this.element.clientHeight);
-};
-
-Group.prototype.initialize = function (force) {
- if (!this.initialized || force) {
- this.normalizeHeight();
- this.initialized = true;
- }
-};
-
-Group.prototype.reinitialize = function () {
- this.initialized = false;
- this.height = 0;
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
- this.initialize(true);
- }
-};
-
-Group.prototype.setHeight = function (height) {
- if (this.height != height) {
- this.height = height;
- this.outerHeight = this.element.offsetHeight;
- }
-};
-
-//return rows outer height
-Group.prototype.getHeight = function () {
- return this.outerHeight;
-};
-
-Group.prototype.getGroup = function () {
- return this;
-};
-
-Group.prototype.reinitializeHeight = function () {};
-Group.prototype.calcHeight = function () {};
-Group.prototype.setCellHeight = function () {};
-Group.prototype.clearCellHeight = function () {};
-
-//////////////// Object Generation /////////////////
-Group.prototype.getComponent = function () {
- return new GroupComponent(this);
-};
-
-//////////////////////////////////////////////////
-////////////// Group Row Extension ///////////////
-//////////////////////////////////////////////////
-
-var GroupRows = function GroupRows(table) {
-
- this.table = table; //hold Tabulator object
-
- this.groupIDLookups = false; //enable table grouping and set field to group by
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
- this.headerGenerator = [function () {
- return "";
- }];
- this.groupList = []; //ordered list of groups
- this.allowedValues = false;
- this.groups = {}; //hold row groups
- this.displayIndex = 0; //index in display pipeline
-};
-
-//initialize group configuration
-GroupRows.prototype.initialize = function () {
- var self = this,
- groupBy = self.table.options.groupBy,
- startOpen = self.table.options.groupStartOpen,
- groupHeader = self.table.options.groupHeader;
-
- this.allowedValues = self.table.options.groupValues;
-
- if (Array.isArray(groupBy) && Array.isArray(groupHeader) && groupBy.length > groupHeader.length) {
- console.warn("Error creating group headers, groupHeader array is shorter than groupBy array");
- }
-
- self.headerGenerator = [function () {
- return "";
- }];
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
-
- self.table.modules.localize.bind("groups|item", function (langValue, lang) {
- self.headerGenerator[0] = function (value, count, data) {
- //header layout function
- return (typeof value === "undefined" ? "" : value) + "<span>(" + count + " " + (count === 1 ? langValue : lang.groups.items) + ")</span>";
- };
- });
-
- this.groupIDLookups = [];
-
- if (Array.isArray(groupBy) || groupBy) {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "table" && this.table.options.columnCalcs != "both") {
- this.table.modules.columnCalcs.removeCalcs();
- }
- } else {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "group") {
-
- var cols = this.table.columnManager.getRealColumns();
-
- cols.forEach(function (col) {
- if (col.definition.topCalc) {
- self.table.modules.columnCalcs.initializeTopRow();
- }
-
- if (col.definition.bottomCalc) {
- self.table.modules.columnCalcs.initializeBottomRow();
- }
- });
- }
- }
-
- if (!Array.isArray(groupBy)) {
- groupBy = [groupBy];
- }
-
- groupBy.forEach(function (group, i) {
- var lookupFunc, column;
-
- if (typeof group == "function") {
- lookupFunc = group;
- } else {
- column = self.table.columnManager.getColumnByField(group);
-
- if (column) {
- lookupFunc = function lookupFunc(data) {
- return column.getFieldValue(data);
- };
- } else {
- lookupFunc = function lookupFunc(data) {
- return data[group];
- };
- }
- }
-
- self.groupIDLookups.push({
- field: typeof group === "function" ? false : group,
- func: lookupFunc,
- values: self.allowedValues ? self.allowedValues[i] : false
- });
- });
-
- if (startOpen) {
-
- if (!Array.isArray(startOpen)) {
- startOpen = [startOpen];
- }
-
- startOpen.forEach(function (level) {
- level = typeof level == "function" ? level : function () {
- return true;
- };
- });
-
- self.startOpen = startOpen;
- }
-
- if (groupHeader) {
- self.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader];
- }
-
- this.initialized = true;
-};
-
-GroupRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-GroupRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-//return appropriate rows with group headers
-GroupRows.prototype.getRows = function (rows) {
- if (this.groupIDLookups.length) {
-
- this.table.options.dataGrouping.call(this.table);
-
- this.generateGroups(rows);
-
- if (this.table.options.dataGrouped) {
- this.table.options.dataGrouped.call(this.table, this.getGroups(true));
- }
-
- return this.updateGroupRows();
- } else {
- return rows.slice(0);
- }
-};
-
-GroupRows.prototype.getGroups = function (compoment) {
- var groupComponents = [];
-
- this.groupList.forEach(function (group) {
- groupComponents.push(compoment ? group.getComponent() : group);
- });
-
- return groupComponents;
-};
-
-GroupRows.prototype.getChildGroups = function (group) {
- var _this2 = this;
-
- var groupComponents = [];
-
- if (!group) {
- group = this;
- }
-
- group.groupList.forEach(function (child) {
- if (child.groupList.length) {
- groupComponents = groupComponents.concat(_this2.getChildGroups(child));
- } else {
- groupComponents.push(child);
- }
- });
-
- return groupComponents;
-};
-
-GroupRows.prototype.wipe = function () {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
-};
-
-GroupRows.prototype.pullGroupListData = function (groupList) {
- var self = this;
- var groupListData = [];
-
- groupList.forEach(function (group) {
- var groupHeader = {};
- groupHeader.level = 0;
- groupHeader.rowCount = 0;
- groupHeader.headerContent = "";
- var childData = [];
-
- if (group.hasSubGroups) {
- childData = self.pullGroupListData(group.groupList);
-
- groupHeader.level = group.level;
- groupHeader.rowCount = childData.length - group.groupList.length; // data length minus number of sub-headers
- groupHeader.headerContent = group.generator(group.key, groupHeader.rowCount, group.rows, group);
-
- groupListData.push(groupHeader);
- groupListData = groupListData.concat(childData);
- } else {
- groupHeader.level = group.level;
- groupHeader.headerContent = group.generator(group.key, group.rows.length, group.rows, group);
- groupHeader.rowCount = group.getRows().length;
-
- groupListData.push(groupHeader);
-
- group.getRows().forEach(function (row) {
- groupListData.push(row.getData("data"));
- });
- }
- });
-
- return groupListData;
-};
-
-GroupRows.prototype.getGroupedData = function () {
-
- return this.pullGroupListData(this.groupList);
-};
-
-GroupRows.prototype.getRowGroup = function (row) {
- var match = false;
-
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
-
- return match;
-};
-
-GroupRows.prototype.countGroups = function () {
- return this.groupList.length;
-};
-
-GroupRows.prototype.generateGroups = function (rows) {
- var self = this,
- oldGroups = self.groups;
-
- self.groups = {};
- self.groupList = [];
-
- if (this.allowedValues && this.allowedValues[0]) {
- this.allowedValues[0].forEach(function (value) {
- self.createGroup(value, 0, oldGroups);
- });
-
- rows.forEach(function (row) {
- self.assignRowToExistingGroup(row, oldGroups);
- });
- } else {
- rows.forEach(function (row) {
- self.assignRowToGroup(row, oldGroups);
- });
- }
-};
-
-GroupRows.prototype.createGroup = function (groupID, level, oldGroups) {
- var groupKey = level + "_" + groupID,
- group;
-
- oldGroups = oldGroups || [];
-
- group = new Group(this, false, level, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupKey]);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
-};
-
-// GroupRows.prototype.assignRowToGroup = function(row, oldGroups){
-// var groupID = this.groupIDLookups[0].func(row.getData()),
-// groupKey = "0_" + groupID;
-
-// if(!this.groups[groupKey]){
-// this.createGroup(groupID, 0, oldGroups);
-// }
-
-// this.groups[groupKey].addRow(row);
-// };
-
-GroupRows.prototype.assignRowToExistingGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- groupKey = "0_" + groupID;
-
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
-};
-
-GroupRows.prototype.assignRowToGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- newGroupNeeded = !this.groups["0_" + groupID];
-
- if (newGroupNeeded) {
- this.createGroup(groupID, 0, oldGroups);
- }
-
- this.groups["0_" + groupID].addRow(row);
-
- return !newGroupNeeded;
-};
-
-GroupRows.prototype.updateGroupRows = function (force) {
- var self = this,
- output = [],
- oldRowCount;
-
- self.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows());
- });
-
- //force update of table display
- if (force) {
-
- var displayIndex = self.table.rowManager.setDisplayRows(output, this.getDisplayIndex());
-
- if (displayIndex !== true) {
- this.setDisplayIndex(displayIndex);
- }
-
- self.table.rowManager.refreshActiveData("group", true, true);
- }
-
- return output;
-};
-
-GroupRows.prototype.scrollHeaders = function (left) {
- left = left + "px";
-
- this.groupList.forEach(function (group) {
- group.scrollHeader(left);
- });
-};
-
-GroupRows.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
- }
-};
-
-Tabulator.prototype.registerModule("groupRows", GroupRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var GroupComponent=function(t){this._group=t,this.type="GroupComponent"};GroupComponent.prototype.getKey=function(){return this._group.key},GroupComponent.prototype.getField=function(){return this._group.field},GroupComponent.prototype.getElement=function(){return this._group.element},GroupComponent.prototype.getRows=function(){return this._group.getRows(!0)},GroupComponent.prototype.getSubGroups=function(){return this._group.getSubGroups(!0)},GroupComponent.prototype.getParentGroup=function(){return!!this._group.parent&&this._group.parent.getComponent()},GroupComponent.prototype.getVisibility=function(){return this._group.visible},GroupComponent.prototype.show=function(){this._group.show()},GroupComponent.prototype.hide=function(){this._group.hide()},GroupComponent.prototype.toggle=function(){this._group.toggleVisibility()},GroupComponent.prototype._getSelf=function(){return this._group},GroupComponent.prototype.getTable=function(){return this._group.groupManager.table};var Group=function(t,o,e,r,i,s,n){this.groupManager=t,this.parent=o,this.key=r,this.level=e,this.field=i,this.hasSubGroups=e<t.groupIDLookups.length-1,this.addRow=this.hasSubGroups?this._addRowToGroup:this._addRow,this.type="group",this.old=n,this.rows=[],this.groups=[],this.groupList=[],this.generator=s,this.elementContents=!1,this.height=0,this.outerHeight=0,this.initialized=!1,this.calcs={},this.initialized=!1,this.modules={},this.arrowElement=!1,this.visible=n?n.visible:void 0!==t.startOpen[e]?t.startOpen[e]:t.startOpen[0],this.createElements(),this.addBindings(),this.createValueGroups()};Group.prototype.wipe=function(){this.groupList.length?this.groupList.forEach(function(t){t.wipe()}):(this.element=!1,this.arrowElement=!1,this.elementContents=!1)},Group.prototype.createElements=function(){var t=document.createElement("div");t.classList.add("tabulator-arrow"),this.element=document.createElement("div"),this.element.classList.add("tabulator-row"),this.element.classList.add("tabulator-group"),this.element.classList.add("tabulator-group-level-"+this.level),this.element.setAttribute("role","rowgroup"),this.arrowElement=document.createElement("div"),this.arrowElement.classList.add("tabulator-group-toggle"),this.arrowElement.appendChild(t),!1!==this.groupManager.table.options.movableRows&&this.groupManager.table.modExists("moveRow")&&this.groupManager.table.modules.moveRow.initializeGroupHeader(this)},Group.prototype.createValueGroups=function(){var t=this,o=this.level+1;this.groupManager.allowedValues&&this.groupManager.allowedValues[o]&&this.groupManager.allowedValues[o].forEach(function(e){t._createGroup(e,o)})},Group.prototype.addBindings=function(){var t,o,e,r,i=this;i.groupManager.table.options.groupClick&&i.element.addEventListener("click",function(t){i.groupManager.table.options.groupClick.call(i.groupManager.table,t,i.getComponent())}),i.groupManager.table.options.groupDblClick&&i.element.addEventListener("dblclick",function(t){i.groupManager.table.options.groupDblClick.call(i.groupManager.table,t,i.getComponent())}),i.groupManager.table.options.groupContext&&i.element.addEventListener("contextmenu",function(t){i.groupManager.table.options.groupContext.call(i.groupManager.table,t,i.getComponent())}),i.groupManager.table.options.groupTap&&(e=!1,i.element.addEventListener("touchstart",function(t){e=!0},{passive:!0}),i.element.addEventListener("touchend",function(t){e&&i.groupManager.table.options.groupTap(t,i.getComponent()),e=!1})),i.groupManager.table.options.groupDblTap&&(t=null,i.element.addEventListener("touchend",function(o){t?(clearTimeout(t),t=null,i.groupManager.table.options.groupDblTap(o,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),i.groupManager.table.options.groupTapHold&&(o=null,i.element.addEventListener("touchstart",function(t){clearTimeout(o),o=setTimeout(function(){clearTimeout(o),o=null,e=!1,i.groupManager.table.options.groupTapHold(t,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(t){clearTimeout(o),o=null})),i.groupManager.table.options.groupToggleElement&&(r="arrow"==i.groupManager.table.options.groupToggleElement?i.arrowElement:i.element,r.addEventListener("click",function(t){t.stopPropagation(),t.stopImmediatePropagation(),i.toggleVisibility()}))},Group.prototype._createGroup=function(t,o){var e=o+"_"+t,r=new Group(this.groupManager,this,o,t,this.groupManager.groupIDLookups[o].field,this.groupManager.headerGenerator[o]||this.groupManager.headerGenerator[0],!!this.old&&this.old.groups[e]);this.groups[e]=r,this.groupList.push(r)},Group.prototype._addRowToGroup=function(t){var o=this.level+1;if(this.hasSubGroups){var e=this.groupManager.groupIDLookups[o].func(t.getData()),r=o+"_"+e;this.groupManager.allowedValues&&this.groupManager.allowedValues[o]?this.groups[r]&&this.groups[r].addRow(t):(this.groups[r]||this._createGroup(e,o),this.groups[r].addRow(t))}},Group.prototype._addRow=function(t){this.rows.push(t),t.modules.group=this},Group.prototype.insertRow=function(t,o,e){var r=this.conformRowData({});t.updateData(r);var i=this.rows.indexOf(o);i>-1?e?this.rows.splice(i+1,0,t):this.rows.splice(i,0,t):e?this.rows.push(t):this.rows.unshift(t),t.modules.group=this,this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this),this.groupManager.updateGroupRows(!0)},Group.prototype.scrollHeader=function(t){this.arrowElement.style.marginLeft=t,this.groupList.forEach(function(o){o.scrollHeader(t)})},Group.prototype.getRowIndex=function(t){},Group.prototype.conformRowData=function(t){return this.field?t[this.field]=this.key:console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"),this.parent&&(t=this.parent.conformRowData(t)),t},Group.prototype.removeRow=function(t){var o=this.rows.indexOf(t),e=t.getElement();o>-1&&this.rows.splice(o,1),this.groupManager.table.options.groupValues||this.rows.length?(e.parentNode&&e.parentNode.removeChild(e),this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this)):(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this),this.groupManager.updateGroupRows(!0))},Group.prototype.removeGroup=function(t){var o,e=t.level+"_"+t.key;this.groups[e]&&(delete this.groups[e],o=this.groupList.indexOf(t),o>-1&&this.groupList.splice(o,1),this.groupList.length||(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this)))},Group.prototype.getHeadersAndRows=function(t){var o=[];return o.push(this),this._visSet(),this.visible?this.groupList.length?this.groupList.forEach(function(e){o=o.concat(e.getHeadersAndRows(t))}):(!t&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),o.push(this.calcs.top)),o=o.concat(this.rows),!t&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),o.push(this.calcs.bottom))):this.groupList.length||"table"==this.groupManager.table.options.columnCalcs||this.groupManager.table.modExists("columnCalcs")&&(!t&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),o.push(this.calcs.top))),!t&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),o.push(this.calcs.bottom)))),o},Group.prototype.getData=function(t,o){var e=[];return this._visSet(),(!t||t&&this.visible)&&this.rows.forEach(function(t){e.push(t.getData(o||"data"))}),e},Group.prototype.getRowCount=function(){var t=0;return this.groupList.length?this.groupList.forEach(function(o){t+=o.getRowCount()}):t=this.rows.length,t},Group.prototype.toggleVisibility=function(){this.visible?this.hide():this.show()},Group.prototype.hide=function(){this.visible=!1,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination?this.groupManager.updateGroupRows(!0):(this.element.classList.remove("tabulator-group-visible"),this.groupList.length?this.groupList.forEach(function(t){t.getHeadersAndRows().forEach(function(t){t.detachElement()})}):this.rows.forEach(function(t){var o=t.getElement();o.parentNode.removeChild(o)}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()),this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!1)},Group.prototype.show=function(){var t=this;if(t.visible=!0,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination)this.groupManager.updateGroupRows(!0);else{this.element.classList.add("tabulator-group-visible");var o=t.getElement();this.groupList.length?this.groupList.forEach(function(t){t.getHeadersAndRows().forEach(function(t){var e=t.getElement();o.parentNode.insertBefore(e,o.nextSibling),t.initialize(),o=e})}):t.rows.forEach(function(t){var e=t.getElement();o.parentNode.insertBefore(e,o.nextSibling),t.initialize(),o=e}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()}this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!0)},Group.prototype._visSet=function(){var t=[];"function"==typeof this.visible&&(this.rows.forEach(function(o){t.push(o.getData())}),this.visible=this.visible(this.key,this.getRowCount(),t,this.getComponent()))},Group.prototype.getRowGroup=function(t){var o=!1;return this.groupList.length?this.groupList.forEach(function(e){var r=e.getRowGroup(t);r&&(o=r)}):this.rows.find(function(o){return o===t})&&(o=this),o},Group.prototype.getSubGroups=function(t){var o=[];return this.groupList.forEach(function(e){o.push(t?e.getComponent():e)}),o},Group.prototype.getRows=function(t){var o=[];return this.rows.forEach(function(e){o.push(t?e.getComponent():e)}),o},Group.prototype.generateGroupHeaderContents=function(){var t=[];for(this.rows.forEach(function(o){t.push(o.getData())}),this.elementContents=this.generator(this.key,this.getRowCount(),t,this.getComponent());this.element.firstChild;)this.element.removeChild(this.element.firstChild);"string"==typeof this.elementContents?this.element.innerHTML=this.elementContents:this.element.appendChild(this.elementContents),this.element.insertBefore(this.arrowElement,this.element.firstChild)},Group.prototype.getElement=function(){this.addBindingsd=!1,this._visSet(),this.visible?this.element.classList.add("tabulator-group-visible"):this.element.classList.remove("tabulator-group-visible");for(var t=0;t<this.element.childNodes.length;++t)this.element.childNodes[t].parentNode.removeChild(this.element.childNodes[t]);return this.generateGroupHeaderContents(),this.element},Group.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},Group.prototype.normalizeHeight=function(){this.setHeight(this.element.clientHeight)},Group.prototype.initialize=function(t){this.initialized&&!t||(this.normalizeHeight(),this.initialized=!0)},Group.prototype.reinitialize=function(){this.initialized=!1,this.height=0,Tabulator.prototype.helpers.elVisible(this.element)&&this.initialize(!0)},Group.prototype.setHeight=function(t){this.height!=t&&(this.height=t,this.outerHeight=this.element.offsetHeight)},Group.prototype.getHeight=function(){return this.outerHeight},Group.prototype.getGroup=function(){return this},Group.prototype.reinitializeHeight=function(){},Group.prototype.calcHeight=function(){},Group.prototype.setCellHeight=function(){},Group.prototype.clearCellHeight=function(){},Group.prototype.getComponent=function(){return new GroupComponent(this)};var GroupRows=function(t){this.table=t,this.groupIDLookups=!1,this.startOpen=[function(){return!1}],this.headerGenerator=[function(){return""}],this.groupList=[],this.allowedValues=!1,this.groups={},this.displayIndex=0};GroupRows.prototype.initialize=function(){var t=this,o=t.table.options.groupBy,e=t.table.options.groupStartOpen,r=t.table.options.groupHeader;if(this.allowedValues=t.table.options.groupValues,Array.isArray(o)&&Array.isArray(r)&&o.length>r.length&&console.warn("Error creating group headers, groupHeader array is shorter than groupBy array"),t.headerGenerator=[function(){return""}],this.startOpen=[function(){return!1}],t.table.modules.localize.bind("groups|item",function(o,e){t.headerGenerator[0]=function(t,r,i){return(void 0===t?"":t)+"<span>("+r+" "+(1===r?o:e.groups.items)+")</span>"}}),this.groupIDLookups=[],Array.isArray(o)||o)this.table.modExists("columnCalcs")&&"table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.removeCalcs();else if(this.table.modExists("columnCalcs")&&"group"!=this.table.options.columnCalcs){var i=this.table.columnManager.getRealColumns();i.forEach(function(o){o.definition.topCalc&&t.table.modules.columnCalcs.initializeTopRow(),o.definition.bottomCalc&&t.table.modules.columnCalcs.initializeBottomRow()})}Array.isArray(o)||(o=[o]),o.forEach(function(o,e){var r,i;"function"==typeof o?r=o:(i=t.table.columnManager.getColumnByField(o),r=i?function(t){return i.getFieldValue(t)}:function(t){return t[o]}),t.groupIDLookups.push({field:"function"!=typeof o&&o,func:r,values:!!t.allowedValues&&t.allowedValues[e]})}),e&&(Array.isArray(e)||(e=[e]),e.forEach(function(t){t="function"==typeof t?t:function(){return!0}}),t.startOpen=e),r&&(t.headerGenerator=Array.isArray(r)?r:[r]),this.initialized=!0},GroupRows.prototype.setDisplayIndex=function(t){this.displayIndex=t},GroupRows.prototype.getDisplayIndex=function(){return this.displayIndex},GroupRows.prototype.getRows=function(t){return this.groupIDLookups.length?(this.table.options.dataGrouping.call(this.table),this.generateGroups(t),this.table.options.dataGrouped&&this.table.options.dataGrouped.call(this.table,this.getGroups(!0)),this.updateGroupRows()):t.slice(0)},GroupRows.prototype.getGroups=function(t){var o=[];return this.groupList.forEach(function(e){o.push(t?e.getComponent():e)}),o},GroupRows.prototype.getChildGroups=function(t){var o=this,e=[];return t||(t=this),t.groupList.forEach(function(t){t.groupList.length?e=e.concat(o.getChildGroups(t)):e.push(t)}),e},GroupRows.prototype.wipe=function(){this.groupList.forEach(function(t){t.wipe()})},GroupRows.prototype.pullGroupListData=function(t){var o=this,e=[];return t.forEach(function(t){var r={};r.level=0,r.rowCount=0,r.headerContent="";var i=[];t.hasSubGroups?(i=o.pullGroupListData(t.groupList),r.level=t.level,r.rowCount=i.length-t.groupList.length,r.headerContent=t.generator(t.key,r.rowCount,t.rows,t),e.push(r),e=e.concat(i)):(r.level=t.level,r.headerContent=t.generator(t.key,t.rows.length,t.rows,t),r.rowCount=t.getRows().length,e.push(r),t.getRows().forEach(function(t){e.push(t.getData("data"))}))}),e},GroupRows.prototype.getGroupedData=function(){return this.pullGroupListData(this.groupList)},GroupRows.prototype.getRowGroup=function(t){var o=!1;return this.groupList.forEach(function(e){var r=e.getRowGroup(t);r&&(o=r)}),o},GroupRows.prototype.countGroups=function(){return this.groupList.length},GroupRows.prototype.generateGroups=function(t){var o=this,e=o.groups;o.groups={},o.groupList=[],this.allowedValues&&this.allowedValues[0]?(this.allowedValues[0].forEach(function(t){o.createGroup(t,0,e)}),t.forEach(function(t){o.assignRowToExistingGroup(t,e)})):t.forEach(function(t){o.assignRowToGroup(t,e)})},GroupRows.prototype.createGroup=function(t,o,e){var r,i=o+"_"+t;e=e||[],r=new Group(this,!1,o,t,this.groupIDLookups[0].field,this.headerGenerator[0],e[i]),this.groups[i]=r,this.groupList.push(r)},GroupRows.prototype.assignRowToExistingGroup=function(t,o){var e=this.groupIDLookups[0].func(t.getData()),r="0_"+e;this.groups[r]&&this.groups[r].addRow(t)},GroupRows.prototype.assignRowToGroup=function(t,o){var e=this.groupIDLookups[0].func(t.getData()),r=!this.groups["0_"+e];return r&&this.createGroup(e,0,o),this.groups["0_"+e].addRow(t),!r},GroupRows.prototype.updateGroupRows=function(t){var o=this,e=[];if(o.groupList.forEach(function(t){e=e.concat(t.getHeadersAndRows())}),t){var r=o.table.rowManager.setDisplayRows(e,this.getDisplayIndex());!0!==r&&this.setDisplayIndex(r),o.table.rowManager.refreshActiveData("group",!0,!0)}return e},GroupRows.prototype.scrollHeaders=function(t){t+="px",this.groupList.forEach(function(o){o.scrollHeader(t)})},GroupRows.prototype.removeGroup=function(t){var o,e=t.level+"_"+t.key;this.groups[e]&&(delete this.groups[e],(o=this.groupList.indexOf(t))>-1&&this.groupList.splice(o,1))},Tabulator.prototype.registerModule("groupRows",GroupRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var History = function History(table) {
- this.table = table; //hold Tabulator object
-
- this.history = [];
- this.index = -1;
-};
-
-History.prototype.clear = function () {
- this.history = [];
- this.index = -1;
-};
-
-History.prototype.action = function (type, component, data) {
-
- this.history = this.history.slice(0, this.index + 1);
-
- this.history.push({
- type: type,
- component: component,
- data: data
- });
-
- this.index++;
-};
-
-History.prototype.getHistoryUndoSize = function () {
- return this.index + 1;
-};
-
-History.prototype.getHistoryRedoSize = function () {
- return this.history.length - (this.index + 1);
-};
-
-History.prototype.undo = function () {
-
- if (this.index > -1) {
- var action = this.history[this.index];
-
- this.undoers[action.type].call(this, action);
-
- this.index--;
-
- this.table.options.historyUndo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Undo Error - No more history to undo");
- return false;
- }
-};
-
-History.prototype.redo = function () {
- if (this.history.length - 1 > this.index) {
-
- this.index++;
-
- var action = this.history[this.index];
-
- this.redoers[action.type].call(this, action);
-
- this.table.options.historyRedo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Redo Error - No more history to redo");
- return false;
- }
-};
-
-History.prototype.undoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.oldValue);
- },
-
- rowAdd: function rowAdd(action) {
- action.component.deleteActual();
- },
-
- rowDelete: function rowDelete(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posFrom], !action.data.after);
- this.table.rowManager.redraw();
- }
-};
-
-History.prototype.redoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.newValue);
- },
-
- rowAdd: function rowAdd(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowDelete: function rowDelete(action) {
- action.component.deleteActual();
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posTo], action.data.after);
- this.table.rowManager.redraw();
- }
-};
-
-//rebind rows to new element after deletion
-History.prototype._rebindRow = function (oldRow, newRow) {
- this.history.forEach(function (action) {
- if (action.component instanceof Row) {
- if (action.component === oldRow) {
- action.component = newRow;
- }
- } else if (action.component instanceof Cell) {
- if (action.component.row === oldRow) {
- var field = action.component.column.getField();
-
- if (field) {
- action.component = newRow.getCell(field);
- }
- }
- }
- });
-};
-
-Tabulator.prototype.registerModule("history", History);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var History=function(t){this.table=t,this.history=[],this.index=-1};History.prototype.clear=function(){this.history=[],this.index=-1},History.prototype.action=function(t,o,e){this.history=this.history.slice(0,this.index+1),this.history.push({type:t,component:o,data:e}),this.index++},History.prototype.getHistoryUndoSize=function(){return this.index+1},History.prototype.getHistoryRedoSize=function(){return this.history.length-(this.index+1)},History.prototype.undo=function(){if(this.index>-1){var t=this.history[this.index];return this.undoers[t.type].call(this,t),this.index--,this.table.options.historyUndo.call(this.table,t.type,t.component.getComponent(),t.data),!0}return console.warn("History Undo Error - No more history to undo"),!1},History.prototype.redo=function(){if(this.history.length-1>this.index){this.index++;var t=this.history[this.index];return this.redoers[t.type].call(this,t),this.table.options.historyRedo.call(this.table,t.type,t.component.getComponent(),t.data),!0}return console.warn("History Redo Error - No more history to redo"),!1},History.prototype.undoers={cellEdit:function(t){t.component.setValueProcessData(t.data.oldValue)},rowAdd:function(t){t.component.deleteActual()},rowDelete:function(t){var o=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(t.component,o)},rowMove:function(t){this.table.rowManager.moveRowActual(t.component,this.table.rowManager.rows[t.data.posFrom],!t.data.after),this.table.rowManager.redraw()}},History.prototype.redoers={cellEdit:function(t){t.component.setValueProcessData(t.data.newValue)},rowAdd:function(t){var o=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(t.component,o)},rowDelete:function(t){t.component.deleteActual()},rowMove:function(t){this.table.rowManager.moveRowActual(t.component,this.table.rowManager.rows[t.data.posTo],t.data.after),this.table.rowManager.redraw()}},History.prototype._rebindRow=function(t,o){this.history.forEach(function(e){if(e.component instanceof Row)e.component===t&&(e.component=o);else if(e.component instanceof Cell&&e.component.row===t){var i=e.component.column.getField();i&&(e.component=o.getCell(i))}})},Tabulator.prototype.registerModule("history",History);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var HtmlTableImport = function HtmlTableImport(table) {
- this.table = table; //hold Tabulator object
- this.fieldIndex = [];
- this.hasIndex = false;
-};
-
-HtmlTableImport.prototype.parseTable = function () {
- var self = this,
- element = self.table.element,
- options = self.table.options,
- columns = options.columns,
- headers = element.getElementsByTagName("th"),
- rows = element.getElementsByTagName("tbody")[0],
- data = [],
- newTable;
-
- self.hasIndex = false;
-
- self.table.options.htmlImporting.call(this.table);
-
- rows = rows ? rows.getElementsByTagName("tr") : [];
-
- //check for tablator inline options
- self._extractOptions(element, options);
-
- if (headers.length) {
- self._extractHeaders(headers, rows);
- } else {
- self._generateBlankHeaders(headers, rows);
- }
-
- //iterate through table rows and build data set
- for (var index = 0; index < rows.length; index++) {
- var row = rows[index],
- cells = row.getElementsByTagName("td"),
- item = {};
-
- //create index if the dont exist in table
- if (!self.hasIndex) {
- item[options.index] = index;
- }
-
- for (var i = 0; i < cells.length; i++) {
- var cell = cells[i];
- if (typeof this.fieldIndex[i] !== "undefined") {
- item[this.fieldIndex[i]] = cell.innerHTML;
- }
- }
-
- //add row data to item
- data.push(item);
- }
-
- //create new element
- var newElement = document.createElement("div");
-
- //transfer attributes to new element
- var attributes = element.attributes;
-
- // loop through attributes and apply them on div
-
- for (var i in attributes) {
- if (_typeof(attributes[i]) == "object") {
- newElement.setAttribute(attributes[i].name, attributes[i].value);
- }
- }
-
- // replace table with div element
- element.parentNode.replaceChild(newElement, element);
-
- options.data = data;
-
- self.table.options.htmlImported.call(this.table);
-
- // // newElement.tabulator(options);
-
- this.table.element = newElement;
-};
-
-//extract tabulator attribute options
-HtmlTableImport.prototype._extractOptions = function (element, options, defaultOptions) {
- var attributes = element.attributes;
- var optionsArr = defaultOptions ? Object.assign([], defaultOptions) : Object.keys(options);
- var optionsList = {};
-
- optionsArr.forEach(function (item) {
- optionsList[item.toLowerCase()] = item;
- });
-
- for (var index in attributes) {
- var attrib = attributes[index];
- var name;
-
- if (attrib && (typeof attrib === "undefined" ? "undefined" : _typeof(attrib)) == "object" && attrib.name && attrib.name.indexOf("tabulator-") === 0) {
- name = attrib.name.replace("tabulator-", "");
-
- if (typeof optionsList[name] !== "undefined") {
- options[optionsList[name]] = this._attribValue(attrib.value);
- }
- }
- }
-};
-
-//get value of attribute
-HtmlTableImport.prototype._attribValue = function (value) {
- if (value === "true") {
- return true;
- }
-
- if (value === "false") {
- return false;
- }
-
- return value;
-};
-
-//find column if it has already been defined
-HtmlTableImport.prototype._findCol = function (title) {
- var match = this.table.options.columns.find(function (column) {
- return column.title === title;
- });
-
- return match || false;
-};
-
-//extract column from headers
-HtmlTableImport.prototype._extractHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- exists = false,
- col = this._findCol(header.textContent),
- width,
- attributes;
-
- if (col) {
- exists = true;
- } else {
- col = { title: header.textContent.trim() };
- }
-
- if (!col.field) {
- col.field = header.textContent.trim().toLowerCase().replace(" ", "_");
- }
-
- width = header.getAttribute("width");
-
- if (width && !col.width) {
- col.width = width;
- }
-
- //check for tablator inline options
- attributes = header.attributes;
-
- // //check for tablator inline options
- this._extractOptions(header, col, Column.prototype.defaultOptionList);
-
- this.fieldIndex[index] = col.field;
-
- if (col.field == this.table.options.index) {
- this.hasIndex = true;
- }
-
- if (!exists) {
- this.table.options.columns.push(col);
- }
- }
-};
-
-//generate blank headers
-HtmlTableImport.prototype._generateBlankHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- col = { title: "", field: "col" + index };
-
- this.fieldIndex[index] = col.field;
-
- var width = header.getAttribute("width");
-
- if (width) {
- col.width = width;
- }
-
- this.table.options.columns.push(col);
- }
-};
-
-Tabulator.prototype.registerModule("htmlTableImport", HtmlTableImport);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},HtmlTableImport=function(t){this.table=t,this.fieldIndex=[],this.hasIndex=!1};HtmlTableImport.prototype.parseTable=function(){var t=this,e=t.table.element,o=t.table.options,a=(o.columns,e.getElementsByTagName("th")),n=e.getElementsByTagName("tbody")[0],l=[];t.hasIndex=!1,t.table.options.htmlImporting.call(this.table),n=n?n.getElementsByTagName("tr"):[],t._extractOptions(e,o),a.length?t._extractHeaders(a,n):t._generateBlankHeaders(a,n);for(var r=0;r<n.length;r++){var i=n[r],s=i.getElementsByTagName("td"),p={};t.hasIndex||(p[o.index]=r);for(var m=0;m<s.length;m++){var d=s[m];void 0!==this.fieldIndex[m]&&(p[this.fieldIndex[m]]=d.innerHTML)}l.push(p)}var f=document.createElement("div"),b=e.attributes;for(var m in b)"object"==_typeof(b[m])&&f.setAttribute(b[m].name,b[m].value);e.parentNode.replaceChild(f,e),o.data=l,t.table.options.htmlImported.call(this.table),this.table.element=f},HtmlTableImport.prototype._extractOptions=function(t,e,o){var a=t.attributes,n=o?Object.assign([],o):Object.keys(e),l={};n.forEach(function(t){l[t.toLowerCase()]=t});for(var r in a){var i,s=a[r];s&&"object"==(void 0===s?"undefined":_typeof(s))&&s.name&&0===s.name.indexOf("tabulator-")&&(i=s.name.replace("tabulator-",""),void 0!==l[i]&&(e[l[i]]=this._attribValue(s.value)))}},HtmlTableImport.prototype._attribValue=function(t){return"true"===t||"false"!==t&&t},HtmlTableImport.prototype._findCol=function(t){return this.table.options.columns.find(function(e){return e.title===t})||!1},HtmlTableImport.prototype._extractHeaders=function(t,e){for(var o=0;o<t.length;o++){var a,n=t[o],l=!1,r=this._findCol(n.textContent);r?l=!0:r={title:n.textContent.trim()},r.field||(r.field=n.textContent.trim().toLowerCase().replace(" ","_")),a=n.getAttribute("width"),a&&!r.width&&(r.width=a),n.attributes,this._extractOptions(n,r,Column.prototype.defaultOptionList),this.fieldIndex[o]=r.field,r.field==this.table.options.index&&(this.hasIndex=!0),l||this.table.options.columns.push(r)}},HtmlTableImport.prototype._generateBlankHeaders=function(t,e){for(var o=0;o<t.length;o++){var a=t[o],n={title:"",field:"col"+o};this.fieldIndex[o]=n.field;var l=a.getAttribute("width");l&&(n.width=l),this.table.options.columns.push(n)}},Tabulator.prototype.registerModule("htmlTableImport",HtmlTableImport);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Keybindings = function Keybindings(table) {
- this.table = table; //hold Tabulator object
- this.watchKeys = null;
- this.pressedKeys = null;
- this.keyupBinding = false;
- this.keydownBinding = false;
-};
-
-Keybindings.prototype.initialize = function () {
- var bindings = this.table.options.keybindings,
- mergedBindings = {};
-
- this.watchKeys = {};
- this.pressedKeys = [];
-
- if (bindings !== false) {
-
- for (var key in this.bindings) {
- mergedBindings[key] = this.bindings[key];
- }
-
- if (Object.keys(bindings).length) {
-
- for (var _key in bindings) {
- mergedBindings[_key] = bindings[_key];
- }
- }
-
- this.mapBindings(mergedBindings);
- this.bindEvents();
- }
-};
-
-Keybindings.prototype.mapBindings = function (bindings) {
- var _this = this;
-
- var self = this;
-
- var _loop = function _loop(key) {
-
- if (_this.actions[key]) {
-
- if (bindings[key]) {
-
- if (_typeof(bindings[key]) !== "object") {
- bindings[key] = [bindings[key]];
- }
-
- bindings[key].forEach(function (binding) {
- self.mapBinding(key, binding);
- });
- }
- } else {
- console.warn("Key Binding Error - no such action:", key);
- }
- };
-
- for (var key in bindings) {
- _loop(key);
- }
-};
-
-Keybindings.prototype.mapBinding = function (action, symbolsList) {
- var self = this;
-
- var binding = {
- action: this.actions[action],
- keys: [],
- ctrl: false,
- shift: false,
- meta: false
- };
-
- var symbols = symbolsList.toString().toLowerCase().split(" ").join("").split("+");
-
- symbols.forEach(function (symbol) {
- switch (symbol) {
- case "ctrl":
- binding.ctrl = true;
- break;
-
- case "shift":
- binding.shift = true;
- break;
-
- case "meta":
- binding.meta = true;
- break;
-
- default:
- symbol = parseInt(symbol);
- binding.keys.push(symbol);
-
- if (!self.watchKeys[symbol]) {
- self.watchKeys[symbol] = [];
- }
-
- self.watchKeys[symbol].push(binding);
- }
- });
-};
-
-Keybindings.prototype.bindEvents = function () {
- var self = this;
-
- this.keyupBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- self.pressedKeys.push(code);
-
- bindings.forEach(function (binding) {
- self.checkBinding(e, binding);
- });
- }
- };
-
- this.keydownBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- var index = self.pressedKeys.indexOf(code);
-
- if (index > -1) {
- self.pressedKeys.splice(index, 1);
- }
- }
- };
-
- this.table.element.addEventListener("keydown", this.keyupBinding);
-
- this.table.element.addEventListener("keyup", this.keydownBinding);
-};
-
-Keybindings.prototype.clearBindings = function () {
- if (this.keyupBinding) {
- this.table.element.removeEventListener("keydown", this.keyupBinding);
- }
-
- if (this.keydownBinding) {
- this.table.element.removeEventListener("keyup", this.keydownBinding);
- }
-};
-
-Keybindings.prototype.checkBinding = function (e, binding) {
- var self = this,
- match = true;
-
- if (e.ctrlKey == binding.ctrl && e.shiftKey == binding.shift && e.metaKey == binding.meta) {
- binding.keys.forEach(function (key) {
- var index = self.pressedKeys.indexOf(key);
-
- if (index == -1) {
- match = false;
- }
- });
-
- if (match) {
- binding.action.call(self, e);
- }
-
- return true;
- }
-
- return false;
-};
-
-//default bindings
-Keybindings.prototype.bindings = {
- navPrev: "shift + 9",
- navNext: 9,
- navUp: 38,
- navDown: 40,
- scrollPageUp: 33,
- scrollPageDown: 34,
- scrollToStart: 36,
- scrollToEnd: 35,
- undo: "ctrl + 90",
- redo: "ctrl + 89",
- copyToClipboard: "ctrl + 67"
-};
-
-//default actions
-Keybindings.prototype.actions = {
- keyBlock: function keyBlock(e) {
- e.stopPropagation();
- e.preventDefault();
- },
- scrollPageUp: function scrollPageUp(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop - rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos >= 0) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
- }
-
- this.table.element.focus();
- },
- scrollPageDown: function scrollPageDown(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop + rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos <= scrollMax) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
- }
-
- this.table.element.focus();
- },
- scrollToStart: function scrollToStart(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
-
- this.table.element.focus();
- },
- scrollToEnd: function scrollToEnd(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
-
- this.table.element.focus();
- },
- navPrev: function navPrev(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().prev();
- }
- }
- },
-
- navNext: function navNext(e) {
- var cell = false;
- var newRow = this.table.options.tabEndNewRow;
- var nav;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
-
- nav = cell.nav();
-
- if (!nav.next()) {
- if (newRow) {
-
- cell.getElement().firstChild.blur();
-
- if (newRow === true) {
- newRow = this.table.addRow({});
- } else {
- if (typeof newRow == "function") {
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
- } else {
- newRow = this.table.addRow(newRow);
- }
- }
-
- newRow.then(function () {
- setTimeout(function () {
- nav.next();
- });
- });
- }
- }
- }
- }
- },
-
- navLeft: function navLeft(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().left();
- }
- }
- },
-
- navRight: function navRight(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().right();
- }
- }
- },
-
- navUp: function navUp(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().up();
- }
- }
- },
-
- navDown: function navDown(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().down();
- }
- }
- },
-
- undo: function undo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.undo();
- }
- }
- },
-
- redo: function redo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.redo();
- }
- }
- },
-
- copyToClipboard: function copyToClipboard(e) {
- if (!this.table.modules.edit.currentCell) {
- if (this.table.modExists("clipboard", true)) {
- this.table.modules.clipboard.copy(false, true);
- }
- }
- }
-};
-
-Tabulator.prototype.registerModule("keybindings", Keybindings);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Keybindings=function(t){this.table=t,this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1};Keybindings.prototype.initialize=function(){var t=this.table.options.keybindings,e={};if(this.watchKeys={},this.pressedKeys=[],!1!==t){for(var i in this.bindings)e[i]=this.bindings[i];if(Object.keys(t).length)for(var n in t)e[n]=t[n];this.mapBindings(e),this.bindEvents()}},Keybindings.prototype.mapBindings=function(t){var e=this,i=this;for(var n in t)!function(n){e.actions[n]?t[n]&&("object"!==_typeof(t[n])&&(t[n]=[t[n]]),t[n].forEach(function(t){i.mapBinding(n,t)})):console.warn("Key Binding Error - no such action:",n)}(n)},Keybindings.prototype.mapBinding=function(t,e){var i=this,n={action:this.actions[t],keys:[],ctrl:!1,shift:!1,meta:!1};e.toString().toLowerCase().split(" ").join("").split("+").forEach(function(t){switch(t){case"ctrl":n.ctrl=!0;break;case"shift":n.shift=!0;break;case"meta":n.meta=!0;break;default:t=parseInt(t),n.keys.push(t),i.watchKeys[t]||(i.watchKeys[t]=[]),i.watchKeys[t].push(n)}})},Keybindings.prototype.bindEvents=function(){var t=this;this.keyupBinding=function(e){var i=e.keyCode,n=t.watchKeys[i];n&&(t.pressedKeys.push(i),n.forEach(function(i){t.checkBinding(e,i)}))},this.keydownBinding=function(e){var i=e.keyCode;if(t.watchKeys[i]){var n=t.pressedKeys.indexOf(i);n>-1&&t.pressedKeys.splice(n,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)},Keybindings.prototype.clearBindings=function(){this.keyupBinding&&this.table.element.removeEventListener("keydown",this.keyupBinding),this.keydownBinding&&this.table.element.removeEventListener("keyup",this.keydownBinding)},Keybindings.prototype.checkBinding=function(t,e){var i=this,n=!0;return t.ctrlKey==e.ctrl&&t.shiftKey==e.shift&&t.metaKey==e.meta&&(e.keys.forEach(function(t){-1==i.pressedKeys.indexOf(t)&&(n=!1)}),n&&e.action.call(i,t),!0)},Keybindings.prototype.bindings={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35,undo:"ctrl + 90",redo:"ctrl + 89",copyToClipboard:"ctrl + 67"},Keybindings.prototype.actions={keyBlock:function(t){t.stopPropagation(),t.preventDefault()},scrollPageUp:function(t){var e=this.table.rowManager,i=e.scrollTop-e.height;e.element.scrollHeight;t.preventDefault(),e.displayRowsCount&&(i>=0?e.element.scrollTop=i:e.scrollToRow(e.getDisplayRows()[0])),this.table.element.focus()},scrollPageDown:function(t){var e=this.table.rowManager,i=e.scrollTop+e.height,n=e.element.scrollHeight;t.preventDefault(),e.displayRowsCount&&(i<=n?e.element.scrollTop=i:e.scrollToRow(e.getDisplayRows()[e.displayRowsCount-1])),this.table.element.focus()},scrollToStart:function(t){var e=this.table.rowManager;t.preventDefault(),e.displayRowsCount&&e.scrollToRow(e.getDisplayRows()[0]),this.table.element.focus()},scrollToEnd:function(t){var e=this.table.rowManager;t.preventDefault(),e.displayRowsCount&&e.scrollToRow(e.getDisplayRows()[e.displayRowsCount-1]),this.table.element.focus()},navPrev:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().prev())},navNext:function(t){var e,i=!1,n=this.table.options.tabEndNewRow;this.table.modExists("edit")&&(i=this.table.modules.edit.currentCell)&&(t.preventDefault(),e=i.nav(),e.next()||n&&(i.getElement().firstChild.blur(),n=!0===n?this.table.addRow({}):"function"==typeof n?this.table.addRow(n(i.row.getComponent())):this.table.addRow(n),n.then(function(){setTimeout(function(){e.next()})})))},navLeft:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().left())},navRight:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().right())},navUp:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().up())},navDown:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().down())},undo:function(t){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(t.preventDefault(),this.table.modules.history.undo()))},redo:function(t){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(t.preventDefault(),this.table.modules.history.redo()))},copyToClipboard:function(t){this.table.modules.edit.currentCell||this.table.modExists("clipboard",!0)&&this.table.modules.clipboard.copy(!1,!0)}},Tabulator.prototype.registerModule("keybindings",Keybindings);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Menu = function Menu(table) {
- this.table = table; //hold Tabulator object
- this.menuEl = false;
- this.blurEvent = this.hideMenu.bind(this);
-};
-
-Menu.prototype.initializeColumnHeader = function (column) {
- var _this = this;
-
- var headerMenuEl;
-
- if (column.definition.headerContextMenu) {
- column.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof column.definition.headerContextMenu == "function" ? column.definition.headerContextMenu(column.getComponent()) : column.definition.headerContextMenu;
-
- e.preventDefault();
-
- _this.loadMenu(e, column, menu);
- });
- }
-
- if (column.definition.headerMenu) {
-
- headerMenuEl = document.createElement("span");
- headerMenuEl.classList.add("tabulator-header-menu-button");
- headerMenuEl.innerHTML = "⋮";
-
- headerMenuEl.addEventListener("click", function (e) {
- var menu = typeof column.definition.headerMenu == "function" ? column.definition.headerMenu(column.getComponent()) : column.definition.headerMenu;
- e.stopPropagation();
- e.preventDefault();
-
- _this.loadMenu(e, column, menu);
- });
-
- column.titleElement.insertBefore(headerMenuEl, column.titleElement.firstChild);
- }
-};
-
-Menu.prototype.initializeCell = function (cell) {
- var _this2 = this;
-
- cell.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof cell.column.definition.contextMenu == "function" ? cell.column.definition.contextMenu(cell.getComponent()) : cell.column.definition.contextMenu;
-
- e.preventDefault();
-
- _this2.loadMenu(e, cell, menu);
- });
-};
-
-Menu.prototype.initializeRow = function (row) {
- var _this3 = this;
-
- row.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof _this3.table.options.rowContextMenu == "function" ? _this3.table.options.rowContextMenu(row.getComponent()) : _this3.table.options.rowContextMenu;
-
- e.preventDefault();
-
- _this3.loadMenu(e, row, menu);
- });
-};
-
-Menu.prototype.loadMenu = function (e, component, menu) {
- var _this4 = this;
-
- var docHeight = Math.max(document.body.offsetHeight, window.innerHeight);
-
- //abort if no menu set
- if (!menu || !menu.length) {
- return;
- }
-
- this.hideMenu();
-
- this.menuEl = document.createElement("div");
- this.menuEl.classList.add("tabulator-menu");
-
- menu.forEach(function (item) {
- var itemEl = document.createElement("div");
- var label = item.label;
- var disabled = item.disabled;
-
- if (item.separator) {
- itemEl.classList.add("tabulator-menu-separator");
- } else {
- itemEl.classList.add("tabulator-menu-item");
-
- if (typeof label == "function") {
- label = label(component.getComponent());
- }
-
- if (label instanceof Node) {
- itemEl.appendChild(label);
- } else {
- itemEl.innerHTML = label;
- }
-
- if (typeof disabled == "function") {
- disabled = disabled(component.getComponent());
- }
-
- if (disabled) {
- itemEl.classList.add("tabulator-menu-item-disabled");
- itemEl.addEventListener("click", function (e) {
- e.stopPropagation();
- });
- } else {
- itemEl.addEventListener("click", function (e) {
- _this4.hideMenu();
- item.action(e, component.getComponent());
- });
- }
- }
-
- _this4.menuEl.appendChild(itemEl);
- });
-
- this.menuEl.style.top = e.pageY + "px";
- this.menuEl.style.left = e.pageX + "px";
-
- document.body.addEventListener("click", this.blurEvent);
- this.table.rowManager.element.addEventListener("scroll", this.blurEvent);
-
- setTimeout(function () {
- document.body.addEventListener("contextmenu", _this4.blurEvent);
- }, 100);
-
- document.body.appendChild(this.menuEl);
-
- //move menu to start on right edge if it is too close to the edge of the screen
- if (e.pageX + this.menuEl.offsetWidth >= document.body.offsetWidth) {
- this.menuEl.style.left = "";
- this.menuEl.style.right = document.body.offsetWidth - e.pageX + "px";
- }
-
- //move menu to start on bottom edge if it is too close to the edge of the screen
- if (e.pageY + this.menuEl.offsetHeight >= docHeight) {
- this.menuEl.style.top = "";
- this.menuEl.style.bottom = docHeight - e.pageY + "px";
- }
-};
-
-Menu.prototype.hideMenu = function () {
- if (this.menuEl.parentNode) {
- this.menuEl.parentNode.removeChild(this.menuEl);
- }
-
- if (this.blurEvent) {
- document.body.removeEventListener("click", this.blurEvent);
- document.body.removeEventListener("contextmenu", this.blurEvent);
- this.table.rowManager.element.removeEventListener("scroll", this.blurEvent);
- }
-};
-
-//default accessors
-Menu.prototype.menus = {};
-
-Tabulator.prototype.registerModule("menu", Menu);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var Menu=function(e){this.table=e,this.menuEl=!1,this.blurEvent=this.hideMenu.bind(this)};Menu.prototype.initializeColumnHeader=function(e){var t,n=this;e.definition.headerContextMenu&&e.getElement().addEventListener("contextmenu",function(t){var i="function"==typeof e.definition.headerContextMenu?e.definition.headerContextMenu(e.getComponent()):e.definition.headerContextMenu;t.preventDefault(),n.loadMenu(t,e,i)}),e.definition.headerMenu&&(t=document.createElement("span"),t.classList.add("tabulator-header-menu-button"),t.innerHTML="⋮",t.addEventListener("click",function(t){var i="function"==typeof e.definition.headerMenu?e.definition.headerMenu(e.getComponent()):e.definition.headerMenu;t.stopPropagation(),t.preventDefault(),n.loadMenu(t,e,i)}),e.titleElement.insertBefore(t,e.titleElement.firstChild))},Menu.prototype.initializeCell=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(n){var i="function"==typeof e.column.definition.contextMenu?e.column.definition.contextMenu(e.getComponent()):e.column.definition.contextMenu;n.preventDefault(),t.loadMenu(n,e,i)})},Menu.prototype.initializeRow=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(n){var i="function"==typeof t.table.options.rowContextMenu?t.table.options.rowContextMenu(e.getComponent()):t.table.options.rowContextMenu;n.preventDefault(),t.loadMenu(n,e,i)})},Menu.prototype.loadMenu=function(e,t,n){var i=this,o=Math.max(document.body.offsetHeight,window.innerHeight);n&&n.length&&(this.hideMenu(),this.menuEl=document.createElement("div"),this.menuEl.classList.add("tabulator-menu"),n.forEach(function(e){var n=document.createElement("div"),o=e.label,u=e.disabled;e.separator?n.classList.add("tabulator-menu-separator"):(n.classList.add("tabulator-menu-item"),"function"==typeof o&&(o=o(t.getComponent())),o instanceof Node?n.appendChild(o):n.innerHTML=o,"function"==typeof u&&(u=u(t.getComponent())),u?(n.classList.add("tabulator-menu-item-disabled"),n.addEventListener("click",function(e){e.stopPropagation()})):n.addEventListener("click",function(n){i.hideMenu(),e.action(n,t.getComponent())})),i.menuEl.appendChild(n)}),this.menuEl.style.top=e.pageY+"px",this.menuEl.style.left=e.pageX+"px",document.body.addEventListener("click",this.blurEvent),this.table.rowManager.element.addEventListener("scroll",this.blurEvent),setTimeout(function(){document.body.addEventListener("contextmenu",i.blurEvent)},100),document.body.appendChild(this.menuEl),e.pageX+this.menuEl.offsetWidth>=document.body.offsetWidth&&(this.menuEl.style.left="",this.menuEl.style.right=document.body.offsetWidth-e.pageX+"px"),e.pageY+this.menuEl.offsetHeight>=o&&(this.menuEl.style.top="",this.menuEl.style.bottom=o-e.pageY+"px"))},Menu.prototype.hideMenu=function(){this.menuEl.parentNode&&this.menuEl.parentNode.removeChild(this.menuEl),this.blurEvent&&(document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent))},Menu.prototype.menus={},Tabulator.prototype.registerModule("menu",Menu);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var MoveColumns = function MoveColumns(table) {
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating column header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 250; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving column
- this.toCol = false; //destination column
- this.toColAfter = false; //position of moving column relative to the desitnation column
- this.startX = 0; //starting position within header element
- this.autoScrollMargin = 40; //auto scroll on edge when within margin
- this.autoScrollStep = 5; //auto scroll distance in pixels
- this.autoScrollTimeout = false; //auto scroll timeout
- this.touchMove = false;
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
-};
-
-MoveColumns.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
- el.classList.add("tabulator-col-placeholder");
-
- return el;
-};
-
-MoveColumns.prototype.initializeColumn = function (column) {
- var self = this,
- config = {},
- colEl;
-
- if (!column.modules.frozen) {
-
- colEl = column.getElement();
-
- config.mousemove = function (e) {
- if (column.parent === self.moving.parent) {
- if ((self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(colEl).left + self.table.columnManager.element.scrollLeft > column.getWidth() / 2) {
- if (self.toCol !== column || !self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl.nextSibling);
- self.moveColumn(column, true);
- }
- } else {
- if (self.toCol !== column || self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl);
- self.moveColumn(column, false);
- }
- }
- }
- }.bind(self);
-
- colEl.addEventListener("mousedown", function (e) {
- self.touchMove = false;
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, column);
- }, self.checkPeriod);
- }
- });
-
- colEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- self.bindTouchEvents(column);
- }
-
- column.modules.moveColumn = config;
-};
-
-MoveColumns.prototype.bindTouchEvents = function (column) {
- var self = this,
- colEl = column.getElement(),
- startXMove = false,
- //shifting center position of the cell
- dir = false,
- currentCol,
- nextCol,
- prevCol,
- nextColWidth,
- prevColWidth,
- nextColWidthLast,
- prevColWidthLast;
-
- colEl.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentCol = column;
- nextCol = column.nextColumn();
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = column.prevColumn();
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- nextColWidthLast = 0;
- prevColWidthLast = 0;
- startXMove = false;
-
- self.startMove(e, column);
- }, self.checkPeriod);
- }, { passive: true });
-
- colEl.addEventListener("touchmove", function (e) {
- var halfCol, diff, moveToCol;
-
- if (self.moving) {
- self.moveHover(e);
-
- if (!startXMove) {
- startXMove = e.touches[0].pageX;
- }
-
- diff = e.touches[0].pageX - startXMove;
-
- if (diff > 0) {
- if (nextCol && diff - nextColWidthLast > nextColWidth) {
- moveToCol = nextCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement().nextSibling);
- self.moveColumn(moveToCol, true);
- }
- }
- } else {
- if (prevCol && -diff - prevColWidthLast > prevColWidth) {
- moveToCol = prevCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement());
- self.moveColumn(moveToCol, false);
- }
- }
- }
-
- if (moveToCol) {
- currentCol = moveToCol;
- nextCol = moveToCol.nextColumn();
- nextColWidthLast = nextColWidth;
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = moveToCol.prevColumn();
- prevColWidthLast = prevColWidth;
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- }
- }
- }, { passive: true });
-
- colEl.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- }
- });
-};
-
-MoveColumns.prototype.startMove = function (e, column) {
- var element = column.getElement();
-
- this.moving = column;
- this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(element).left;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = column.getWidth() + "px";
- this.placeholderElement.style.height = column.getHeight() + "px";
-
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- this.table.columnManager.getElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.bottom = "0";
-
- if (!this.touchMove) {
- this._bindMouseMove();
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
- }
-
- this.moveHover(e);
-};
-
-MoveColumns.prototype._bindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().addEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
-};
-
-MoveColumns.prototype._unbindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().removeEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
-};
-
-MoveColumns.prototype.moveColumn = function (column, after) {
- var movingCells = this.moving.getCells();
-
- this.toCol = column;
- this.toColAfter = after;
-
- if (after) {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling);
- });
- } else {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl);
- });
- }
-};
-
-MoveColumns.prototype.endMove = function (e) {
- if (e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toCol) {
- this.table.columnManager.moveColumnActual(this.moving, this.toCol, this.toColAfter);
- }
-
- this.moving = false;
- this.toCol = false;
- this.toColAfter = false;
-
- if (!this.touchMove) {
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
- }
- }
-};
-
-MoveColumns.prototype.moveHover = function (e) {
- var self = this,
- columnHolder = self.table.columnManager.getElement(),
- scrollLeft = columnHolder.scrollLeft,
- xPos = (self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(columnHolder).left + scrollLeft,
- scrollPos;
-
- self.hoverElement.style.left = xPos - self.startX + "px";
-
- if (xPos - scrollLeft < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.max(0, scrollLeft - 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
-
- if (scrollLeft + columnHolder.clientWidth - xPos < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.min(columnHolder.clientWidth, scrollLeft + 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
-};
-
-Tabulator.prototype.registerModule("moveColumn", MoveColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var MoveColumns=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this)};MoveColumns.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.classList.add("tabulator-col-placeholder"),e},MoveColumns.prototype.initializeColumn=function(e){var t,o=this,n={};e.modules.frozen||(t=e.getElement(),n.mousemove=function(n){e.parent===o.moving.parent&&((o.touchMove?n.touches[0].pageX:n.pageX)-Tabulator.prototype.helpers.elOffset(t).left+o.table.columnManager.element.scrollLeft>e.getWidth()/2?o.toCol===e&&o.toColAfter||(t.parentNode.insertBefore(o.placeholderElement,t.nextSibling),o.moveColumn(e,!0)):(o.toCol!==e||o.toColAfter)&&(t.parentNode.insertBefore(o.placeholderElement,t),o.moveColumn(e,!1)))}.bind(o),t.addEventListener("mousedown",function(t){o.touchMove=!1,1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),o.bindTouchEvents(e)),e.modules.moveColumn=n},MoveColumns.prototype.bindTouchEvents=function(e){var t,o,n,l,i,s,m,r=this,u=e.getElement(),h=!1;u.addEventListener("touchstart",function(u){r.checkTimeout=setTimeout(function(){r.touchMove=!0,t=e,o=e.nextColumn(),l=o?o.getWidth()/2:0,n=e.prevColumn(),i=n?n.getWidth()/2:0,s=0,m=0,h=!1,r.startMove(u,e)},r.checkPeriod)},{passive:!0}),u.addEventListener("touchmove",function(u){var a,c;r.moving&&(r.moveHover(u),h||(h=u.touches[0].pageX),a=u.touches[0].pageX-h,a>0?o&&a-s>l&&(c=o)!==e&&(h=u.touches[0].pageX,c.getElement().parentNode.insertBefore(r.placeholderElement,c.getElement().nextSibling),r.moveColumn(c,!0)):n&&-a-m>i&&(c=n)!==e&&(h=u.touches[0].pageX,c.getElement().parentNode.insertBefore(r.placeholderElement,c.getElement()),r.moveColumn(c,!1)),c&&(t=c,o=c.nextColumn(),s=l,l=o?o.getWidth()/2:0,n=c.prevColumn(),m=i,i=n?n.getWidth()/2:0))},{passive:!0}),u.addEventListener("touchend",function(e){r.checkTimeout&&clearTimeout(r.checkTimeout),r.moving&&r.endMove(e)})},MoveColumns.prototype.startMove=function(e,t){var o=t.getElement();this.moving=t,this.startX=(this.touchMove?e.touches[0].pageX:e.pageX)-Tabulator.prototype.helpers.elOffset(o).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.table.columnManager.getElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom="0",this.touchMove||(this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove)),this.moveHover(e)},MoveColumns.prototype._bindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().addEventListener("mousemove",e.modules.moveColumn.mousemove)})},MoveColumns.prototype._unbindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().removeEventListener("mousemove",e.modules.moveColumn.mousemove)})},MoveColumns.prototype.moveColumn=function(e,t){var o=this.moving.getCells();this.toCol=e,this.toColAfter=t,t?e.getCells().forEach(function(e,t){var n=e.getElement();n.parentNode.insertBefore(o[t].getElement(),n.nextSibling)}):e.getCells().forEach(function(e,t){var n=e.getElement();n.parentNode.insertBefore(o[t].getElement(),n)})},MoveColumns.prototype.endMove=function(e){(1===e.which||this.touchMove)&&(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol&&this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter),this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.touchMove||(document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)))},MoveColumns.prototype.moveHover=function(e){var t,o=this,n=o.table.columnManager.getElement(),l=n.scrollLeft,i=(o.touchMove?e.touches[0].pageX:e.pageX)-Tabulator.prototype.helpers.elOffset(n).left+l;o.hoverElement.style.left=i-o.startX+"px",i-l<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.max(0,l-5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1))),l+n.clientWidth-i<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.min(n.clientWidth,l+5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1)))},Tabulator.prototype.registerModule("moveColumn",MoveColumns);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var MoveRows = function MoveRows(table) {
-
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating row header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 150; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving row
- this.toRow = false; //destination row
- this.toRowAfter = false; //position of moving row relative to the desitnation row
- this.hasHandle = false; //row has handle instead of fully movable row
- this.startY = 0; //starting Y position within header element
- this.startX = 0; //starting X position within header element
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
- this.tableRowDropEvent = false;
-
- this.touchMove = false;
-
- this.connection = false;
- this.connections = [];
-
- this.connectedTable = false;
- this.connectedRow = false;
-};
-
-MoveRows.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
- el.classList.add("tabulator-row-placeholder");
-
- return el;
-};
-
-MoveRows.prototype.initialize = function (handle) {
- this.connection = this.table.options.movableRowsConnectedTables;
-};
-
-MoveRows.prototype.setHandle = function (handle) {
- this.hasHandle = handle;
-};
-
-MoveRows.prototype.initializeGroupHeader = function (group) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(group.element).top + self.table.rowManager.element.scrollTop > group.getHeight() / 2) {
- if (self.toRow !== group || !self.toRowAfter) {
- var rowEl = group.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(group, true);
- }
- } else {
- if (self.toRow !== group || self.toRowAfter) {
- var rowEl = group.getElement();
- if (rowEl.previousSibling) {
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(group, false);
- }
- }
- }
- }.bind(self);
-
- group.modules.moveRow = config;
-};
-
-MoveRows.prototype.initializeRow = function (row) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(row.element).top + self.table.rowManager.element.scrollTop > row.getHeight() / 2) {
- if (self.toRow !== row || !self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(row, true);
- }
- } else {
- if (self.toRow !== row || self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(row, false);
- }
- }
- }.bind(self);
-
- if (!this.hasHandle) {
-
- rowEl = row.getElement();
-
- rowEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, row);
- }, self.checkPeriod);
- }
- });
-
- rowEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(row, row.getElement());
- }
-
- row.modules.moveRow = config;
-};
-
-MoveRows.prototype.initializeCell = function (cell) {
- var self = this,
- cellEl = cell.getElement();
-
- cellEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, cell.row);
- }, self.checkPeriod);
- }
- });
-
- cellEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(cell.row, cell.getElement());
-};
-
-MoveRows.prototype.bindTouchEvents = function (row, element) {
- var self = this,
- startYMove = false,
- //shifting center position of the cell
- dir = false,
- currentRow,
- nextRow,
- prevRow,
- nextRowHeight,
- prevRowHeight,
- nextRowHeightLast,
- prevRowHeightLast;
-
- element.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentRow = row;
- nextRow = row.nextRow();
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = row.prevRow();
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- nextRowHeightLast = 0;
- prevRowHeightLast = 0;
- startYMove = false;
-
- self.startMove(e, row);
- }, self.checkPeriod);
- }, { passive: true });
- this.moving, this.toRow, this.toRowAfter;
- element.addEventListener("touchmove", function (e) {
-
- var halfCol, diff, moveToRow;
-
- if (self.moving) {
- e.preventDefault();
-
- self.moveHover(e);
-
- if (!startYMove) {
- startYMove = e.touches[0].pageY;
- }
-
- diff = e.touches[0].pageY - startYMove;
-
- if (diff > 0) {
- if (nextRow && diff - nextRowHeightLast > nextRowHeight) {
- moveToRow = nextRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement().nextSibling);
- self.moveRow(moveToRow, true);
- }
- }
- } else {
- if (prevRow && -diff - prevRowHeightLast > prevRowHeight) {
- moveToRow = prevRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement());
- self.moveRow(moveToRow, false);
- }
- }
- }
-
- if (moveToRow) {
- currentRow = moveToRow;
- nextRow = moveToRow.nextRow();
- nextRowHeightLast = nextRowHeight;
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = moveToRow.prevRow();
- prevRowHeightLast = prevRowHeight;
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- }
- }
- });
-
- element.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- self.touchMove = false;
- }
- });
-};
-
-MoveRows.prototype._bindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().addEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
-};
-
-MoveRows.prototype._unbindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().removeEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
-};
-
-MoveRows.prototype.startMove = function (e, row) {
- var element = row.getElement();
-
- this.setStartPosition(e, row);
-
- this.moving = row;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = row.getWidth() + "px";
- this.placeholderElement.style.height = row.getHeight() + "px";
-
- if (!this.connection) {
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
- } else {
- this.table.element.classList.add("tabulator-movingrow-sending");
- this.connectToTables(row);
- }
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- if (this.connection) {
- document.body.appendChild(this.hoverElement);
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
- this.hoverElement.style.width = this.table.element.clientWidth + "px";
- this.hoverElement.style.whiteSpace = "nowrap";
- this.hoverElement.style.overflow = "hidden";
- this.hoverElement.style.pointerEvents = "none";
- } else {
- this.table.rowManager.getTableElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
-
- this._bindMouseMove();
- }
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
-
- this.moveHover(e);
-};
-
-MoveRows.prototype.setStartPosition = function (e, row) {
- var pageX = this.touchMove ? e.touches[0].pageX : e.pageX,
- pageY = this.touchMove ? e.touches[0].pageY : e.pageY,
- element,
- position;
-
- element = row.getElement();
- if (this.connection) {
- position = element.getBoundingClientRect();
-
- this.startX = position.left - pageX + window.pageXOffset;
- this.startY = position.top - pageY + window.pageYOffset;
- } else {
- this.startY = pageY - element.getBoundingClientRect().top;
- }
-};
-
-MoveRows.prototype.endMove = function (e) {
- if (!e || e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- if (!this.connection) {
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- }
-
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toRow) {
- this.table.rowManager.moveRow(this.moving, this.toRow, this.toRowAfter);
- }
-
- this.moving = false;
- this.toRow = false;
- this.toRowAfter = false;
-
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
-
- if (this.connection) {
- this.table.element.classList.remove("tabulator-movingrow-sending");
- this.disconnectFromTables();
- }
- }
-};
-
-MoveRows.prototype.moveRow = function (row, after) {
- this.toRow = row;
- this.toRowAfter = after;
-};
-
-MoveRows.prototype.moveHover = function (e) {
- if (this.connection) {
- this.moveHoverConnections.call(this, e);
- } else {
- this.moveHoverTable.call(this, e);
- }
-};
-
-MoveRows.prototype.moveHoverTable = function (e) {
- var rowHolder = this.table.rowManager.getElement(),
- scrollTop = rowHolder.scrollTop,
- yPos = (this.touchMove ? e.touches[0].pageY : e.pageY) - rowHolder.getBoundingClientRect().top + scrollTop,
- scrollPos;
-
- this.hoverElement.style.top = yPos - this.startY + "px";
-};
-
-MoveRows.prototype.moveHoverConnections = function (e) {
- this.hoverElement.style.left = this.startX + (this.touchMove ? e.touches[0].pageX : e.pageX) + "px";
- this.hoverElement.style.top = this.startY + (this.touchMove ? e.touches[0].pageY : e.pageY) + "px";
-};
-
-//establish connection with other tables
-MoveRows.prototype.connectToTables = function (row) {
- var self = this,
- connections = this.table.modules.comms.getConnections(this.connection);
-
- this.table.options.movableRowsSendingStart.call(this.table, connections);
-
- this.table.modules.comms.send(this.connection, "moveRow", "connect", {
- row: row
- });
-};
-
-//disconnect from other tables
-MoveRows.prototype.disconnectFromTables = function () {
- var self = this,
- connections = this.table.modules.comms.getConnections(this.connection);
-
- this.table.options.movableRowsSendingStop.call(this.table, connections);
-
- this.table.modules.comms.send(this.connection, "moveRow", "disconnect");
-};
-
-//accept incomming connection
-MoveRows.prototype.connect = function (table, row) {
- var self = this;
- if (!this.connectedTable) {
- this.connectedTable = table;
- this.connectedRow = row;
-
- this.table.element.classList.add("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().addEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.tableRowDropEvent = self.tableRowDrop.bind(self);
-
- self.table.element.addEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStart.call(this.table, row, table);
-
- return true;
- } else {
- console.warn("Move Row Error - Table cannot accept connection, already connected to table:", this.connectedTable);
- return false;
- }
-};
-
-//close incomming connection
-MoveRows.prototype.disconnect = function (table) {
- var self = this;
- if (table === this.connectedTable) {
- this.connectedTable = false;
- this.connectedRow = false;
-
- this.table.element.classList.remove("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().removeEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.table.element.removeEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStop.call(this.table, table);
- } else {
- console.warn("Move Row Error - trying to disconnect from non connected table");
- }
-};
-
-MoveRows.prototype.dropComplete = function (table, row, success) {
- var sender = false;
-
- if (success) {
-
- switch (_typeof(this.table.options.movableRowsSender)) {
- case "string":
- sender = this.senders[this.table.options.movableRowsSender];
- break;
-
- case "function":
- sender = this.table.options.movableRowsSender;
- break;
- }
-
- if (sender) {
- sender.call(this, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- if (this.table.options.movableRowsSender) {
- console.warn("Mover Row Error - no matching sender found:", this.table.options.movableRowsSender);
- }
- }
-
- this.table.options.movableRowsSent.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- this.table.options.movableRowsSentFailed.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- }
-
- this.endMove();
-};
-
-MoveRows.prototype.tableRowDrop = function (e, row) {
- var receiver = false,
- success = false;
-
- e.stopImmediatePropagation();
-
- switch (_typeof(this.table.options.movableRowsReceiver)) {
- case "string":
- receiver = this.receivers[this.table.options.movableRowsReceiver];
- break;
-
- case "function":
- receiver = this.table.options.movableRowsReceiver;
- break;
- }
-
- if (receiver) {
- success = receiver.call(this, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- console.warn("Mover Row Error - no matching receiver found:", this.table.options.movableRowsReceiver);
- }
-
- if (success) {
- this.table.options.movableRowsReceived.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- this.table.options.movableRowsReceivedFailed.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- }
-
- this.table.modules.comms.send(this.connectedTable, "moveRow", "dropcomplete", {
- row: row,
- success: success
- });
-};
-
-MoveRows.prototype.receivers = {
- insert: function insert(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- return true;
- },
-
- add: function add(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData());
- return true;
- },
-
- update: function update(fromRow, toRow, fromTable) {
- if (toRow) {
- toRow.update(fromRow.getData());
- return true;
- }
-
- return false;
- },
-
- replace: function replace(fromRow, toRow, fromTable) {
- if (toRow) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- toRow.delete();
- return true;
- }
-
- return false;
- }
-};
-
-MoveRows.prototype.senders = {
- delete: function _delete(fromRow, toRow, toTable) {
- fromRow.delete();
- }
-};
-
-MoveRows.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "connect":
- return this.connect(table, data.row);
- break;
-
- case "disconnect":
- return this.disconnect(table);
- break;
-
- case "dropcomplete":
- return this.dropComplete(table, data.row, data.success);
- break;
- }
-};
-
-Tabulator.prototype.registerModule("moveRow", MoveRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},MoveRows=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=150,this.moving=!1,this.toRow=!1,this.toRowAfter=!1,this.hasHandle=!1,this.startY=0,this.startX=0,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.tableRowDropEvent=!1,this.touchMove=!1,this.connection=!1,this.connections=[],this.connectedTable=!1,this.connectedRow=!1};MoveRows.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-row"),e.classList.add("tabulator-row-placeholder"),e},MoveRows.prototype.initialize=function(e){this.connection=this.table.options.movableRowsConnectedTables},MoveRows.prototype.setHandle=function(e){this.hasHandle=e},MoveRows.prototype.initializeGroupHeader=function(e){var t=this,o={};o.mouseup=function(e){t.tableRowDrop(e,row)}.bind(t),o.mousemove=function(o){if(o.pageY-Tabulator.prototype.helpers.elOffset(e.element).top+t.table.rowManager.element.scrollTop>e.getHeight()/2){if(t.toRow!==e||!t.toRowAfter){var n=e.getElement();n.parentNode.insertBefore(t.placeholderElement,n.nextSibling),t.moveRow(e,!0)}}else if(t.toRow!==e||t.toRowAfter){var n=e.getElement();n.previousSibling&&(n.parentNode.insertBefore(t.placeholderElement,n),t.moveRow(e,!1))}}.bind(t),e.modules.moveRow=o},MoveRows.prototype.initializeRow=function(e){var t,o=this,n={};n.mouseup=function(t){o.tableRowDrop(t,e)}.bind(o),n.mousemove=function(t){if(t.pageY-Tabulator.prototype.helpers.elOffset(e.element).top+o.table.rowManager.element.scrollTop>e.getHeight()/2){if(o.toRow!==e||!o.toRowAfter){var n=e.getElement();n.parentNode.insertBefore(o.placeholderElement,n.nextSibling),o.moveRow(e,!0)}}else if(o.toRow!==e||o.toRowAfter){var n=e.getElement();n.parentNode.insertBefore(o.placeholderElement,n),o.moveRow(e,!1)}}.bind(o),this.hasHandle||(t=e.getElement(),t.addEventListener("mousedown",function(t){1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),this.bindTouchEvents(e,e.getElement())),e.modules.moveRow=n},MoveRows.prototype.initializeCell=function(e){var t=this,o=e.getElement();o.addEventListener("mousedown",function(o){1===o.which&&(t.checkTimeout=setTimeout(function(){t.startMove(o,e.row)},t.checkPeriod))}),o.addEventListener("mouseup",function(e){1===e.which&&t.checkTimeout&&clearTimeout(t.checkTimeout)}),this.bindTouchEvents(e.row,e.getElement())},MoveRows.prototype.bindTouchEvents=function(e,t){var o,n,i,s,l,r,a,c=this,h=!1;t.addEventListener("touchstart",function(t){c.checkTimeout=setTimeout(function(){c.touchMove=!0,o=e,n=e.nextRow(),s=n?n.getHeight()/2:0,i=e.prevRow(),l=i?i.getHeight()/2:0,r=0,a=0,h=!1,c.startMove(t,e)},c.checkPeriod)},{passive:!0}),this.moving,this.toRow,this.toRowAfter,t.addEventListener("touchmove",function(t){var m,v;c.moving&&(t.preventDefault(),c.moveHover(t),h||(h=t.touches[0].pageY),m=t.touches[0].pageY-h,m>0?n&&m-r>s&&(v=n)!==e&&(h=t.touches[0].pageY,v.getElement().parentNode.insertBefore(c.placeholderElement,v.getElement().nextSibling),c.moveRow(v,!0)):i&&-m-a>l&&(v=i)!==e&&(h=t.touches[0].pageY,v.getElement().parentNode.insertBefore(c.placeholderElement,v.getElement()),c.moveRow(v,!1)),v&&(o=v,n=v.nextRow(),r=s,s=n?n.getHeight()/2:0,i=v.prevRow(),a=l,l=i?i.getHeight()/2:0))}),t.addEventListener("touchend",function(e){c.checkTimeout&&clearTimeout(c.checkTimeout),c.moving&&(c.endMove(e),c.touchMove=!1)})},MoveRows.prototype._bindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().addEventListener("mousemove",e.modules.moveRow.mousemove)})},MoveRows.prototype._unbindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().removeEventListener("mousemove",e.modules.moveRow.mousemove)})},MoveRows.prototype.startMove=function(e,t){var o=t.getElement();this.setStartPosition(e,t),this.moving=t,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",this.connection?(this.table.element.classList.add("tabulator-movingrow-sending"),this.connectToTables(t)):(o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o)),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.connection?(document.body.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this.hoverElement.style.width=this.table.element.clientWidth+"px",this.hoverElement.style.whiteSpace="nowrap",this.hoverElement.style.overflow="hidden",this.hoverElement.style.pointerEvents="none"):(this.table.rowManager.getTableElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this._bindMouseMove()),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove),this.moveHover(e)},MoveRows.prototype.setStartPosition=function(e,t){var o,n,i=this.touchMove?e.touches[0].pageX:e.pageX,s=this.touchMove?e.touches[0].pageY:e.pageY;o=t.getElement(),this.connection?(n=o.getBoundingClientRect(),this.startX=n.left-i+window.pageXOffset,this.startY=n.top-s+window.pageYOffset):this.startY=s-o.getBoundingClientRect().top},MoveRows.prototype.endMove=function(e){e&&1!==e.which&&!this.touchMove||(this._unbindMouseMove(),this.connection||(this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement)),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toRow&&this.table.rowManager.moveRow(this.moving,this.toRow,this.toRowAfter),this.moving=!1,this.toRow=!1,this.toRowAfter=!1,document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove),this.connection&&(this.table.element.classList.remove("tabulator-movingrow-sending"),this.disconnectFromTables()))},MoveRows.prototype.moveRow=function(e,t){this.toRow=e,this.toRowAfter=t},MoveRows.prototype.moveHover=function(e){this.connection?this.moveHoverConnections.call(this,e):this.moveHoverTable.call(this,e)},MoveRows.prototype.moveHoverTable=function(e){var t=this.table.rowManager.getElement(),o=t.scrollTop,n=(this.touchMove?e.touches[0].pageY:e.pageY)-t.getBoundingClientRect().top+o;this.hoverElement.style.top=n-this.startY+"px"},MoveRows.prototype.moveHoverConnections=function(e){this.hoverElement.style.left=this.startX+(this.touchMove?e.touches[0].pageX:e.pageX)+"px",this.hoverElement.style.top=this.startY+(this.touchMove?e.touches[0].pageY:e.pageY)+"px"},MoveRows.prototype.connectToTables=function(e){var t=this.table.modules.comms.getConnections(this.connection);this.table.options.movableRowsSendingStart.call(this.table,t),this.table.modules.comms.send(this.connection,"moveRow","connect",{row:e})},MoveRows.prototype.disconnectFromTables=function(){var e=this.table.modules.comms.getConnections(this.connection);this.table.options.movableRowsSendingStop.call(this.table,e),this.table.modules.comms.send(this.connection,"moveRow","disconnect")},MoveRows.prototype.connect=function(e,t){var o=this;return this.connectedTable?(console.warn("Move Row Error - Table cannot accept connection, already connected to table:",this.connectedTable),!1):(this.connectedTable=e,this.connectedRow=t,this.table.element.classList.add("tabulator-movingrow-receiving"),o.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().addEventListener("mouseup",e.modules.moveRow.mouseup)}),o.tableRowDropEvent=o.tableRowDrop.bind(o),o.table.element.addEventListener("mouseup",o.tableRowDropEvent),this.table.options.movableRowsReceivingStart.call(this.table,t,e),!0)},MoveRows.prototype.disconnect=function(e){var t=this;e===this.connectedTable?(this.connectedTable=!1,this.connectedRow=!1,this.table.element.classList.remove("tabulator-movingrow-receiving"),t.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().removeEventListener("mouseup",e.modules.moveRow.mouseup)}),t.table.element.removeEventListener("mouseup",t.tableRowDropEvent),this.table.options.movableRowsReceivingStop.call(this.table,e)):console.warn("Move Row Error - trying to disconnect from non connected table")},MoveRows.prototype.dropComplete=function(e,t,o){var n=!1;if(o){switch(_typeof(this.table.options.movableRowsSender)){case"string":n=this.senders[this.table.options.movableRowsSender];break;case"function":n=this.table.options.movableRowsSender}n?n.call(this,this.moving.getComponent(),t?t.getComponent():void 0,e):this.table.options.movableRowsSender&&console.warn("Mover Row Error - no matching sender found:",this.table.options.movableRowsSender),this.table.options.movableRowsSent.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e)}else this.table.options.movableRowsSentFailed.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e);this.endMove()},MoveRows.prototype.tableRowDrop=function(e,t){var o=!1,n=!1;switch(e.stopImmediatePropagation(),_typeof(this.table.options.movableRowsReceiver)){case"string":o=this.receivers[this.table.options.movableRowsReceiver];break;case"function":o=this.table.options.movableRowsReceiver}o?n=o.call(this,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):console.warn("Mover Row Error - no matching receiver found:",this.table.options.movableRowsReceiver),n?this.table.options.movableRowsReceived.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):this.table.options.movableRowsReceivedFailed.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable),this.table.modules.comms.send(this.connectedTable,"moveRow","dropcomplete",{row:t,success:n})},MoveRows.prototype.receivers={insert:function(e,t,o){return this.table.addRow(e.getData(),void 0,t),!0},add:function(e,t,o){return this.table.addRow(e.getData()),!0},update:function(e,t,o){return!!t&&(t.update(e.getData()),!0)},replace:function(e,t,o){return!!t&&(this.table.addRow(e.getData(),void 0,t),t.delete(),!0)}},MoveRows.prototype.senders={delete:function(e,t,o){e.delete()}},MoveRows.prototype.commsReceived=function(e,t,o){switch(t){case"connect":return this.connect(e,o.row);case"disconnect":return this.disconnect(e);case"dropcomplete":return this.dropComplete(e,o.row,o.success)}},Tabulator.prototype.registerModule("moveRow",MoveRows);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Mutator = function Mutator(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "edit", "clipboard"]; //list of muatation types
- this.enabled = true;
-};
-
-//initialize column mutator
-Mutator.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- mutator;
-
- if (column.definition[key]) {
- mutator = self.lookupMutator(column.definition[key]);
-
- if (mutator) {
- match = true;
-
- config[key] = {
- mutator: mutator,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.mutate = config;
- }
-};
-
-Mutator.prototype.lookupMutator = function (value) {
- var mutator = false;
-
- //set column mutator
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "string":
- if (this.mutators[value]) {
- mutator = this.mutators[value];
- } else {
- console.warn("Mutator Error - No such mutator found, ignoring: ", value);
- }
- break;
-
- case "function":
- mutator = value;
- break;
- }
-
- return mutator;
-};
-
-//apply mutator to row
-Mutator.prototype.transformRow = function (data, type, updatedData) {
- var self = this,
- key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- value;
-
- if (this.enabled) {
-
- self.table.columnManager.traverse(function (column) {
- var mutator, params, component;
-
- if (column.modules.mutate) {
- mutator = column.modules.mutate[key] || column.modules.mutate.mutator || false;
-
- if (mutator) {
- value = column.getFieldValue(typeof updatedData !== "undefined" ? updatedData : data);
-
- if (type == "data" || typeof value !== "undefined") {
- component = column.getComponent();
- params = typeof mutator.params === "function" ? mutator.params(value, data, type, component) : mutator.params;
- column.setFieldValue(data, mutator.mutator(value, data, type, params, component));
- }
- }
- }
- });
- }
-
- return data;
-};
-
-//apply mutator to new cell value
-Mutator.prototype.transformCell = function (cell, value) {
- var mutator = cell.column.modules.mutate.mutatorEdit || cell.column.modules.mutate.mutator || false,
- tempData = {};
-
- if (mutator) {
- tempData = Object.assign(tempData, cell.row.getData());
- cell.column.setFieldValue(tempData, value);
- return mutator.mutator(value, tempData, "edit", mutator.params, cell.getComponent());
- } else {
- return value;
- }
-};
-
-Mutator.prototype.enable = function () {
- this.enabled = true;
-};
-
-Mutator.prototype.disable = function () {
- this.enabled = false;
-};
-
-//default mutators
-Mutator.prototype.mutators = {};
-
-Tabulator.prototype.registerModule("mutator", Mutator);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mutator=function(t){this.table=t,this.allowedTypes=["","data","edit","clipboard"],this.enabled=!0};Mutator.prototype.initializeColumn=function(t){var o=this,e=!1,a={};this.allowedTypes.forEach(function(r){var u,n="mutator"+(r.charAt(0).toUpperCase()+r.slice(1));t.definition[n]&&(u=o.lookupMutator(t.definition[n]))&&(e=!0,a[n]={mutator:u,params:t.definition[n+"Params"]||{}})}),e&&(t.modules.mutate=a)},Mutator.prototype.lookupMutator=function(t){var o=!1;switch(void 0===t?"undefined":_typeof(t)){case"string":this.mutators[t]?o=this.mutators[t]:console.warn("Mutator Error - No such mutator found, ignoring: ",t);break;case"function":o=t}return o},Mutator.prototype.transformRow=function(t,o,e){var a,r=this,u="mutator"+(o.charAt(0).toUpperCase()+o.slice(1));return this.enabled&&r.table.columnManager.traverse(function(r){var n,i,s;r.modules.mutate&&(n=r.modules.mutate[u]||r.modules.mutate.mutator||!1)&&(a=r.getFieldValue(void 0!==e?e:t),"data"!=o&&void 0===a||(s=r.getComponent(),i="function"==typeof n.params?n.params(a,t,o,s):n.params,r.setFieldValue(t,n.mutator(a,t,o,i,s))))}),t},Mutator.prototype.transformCell=function(t,o){var e=t.column.modules.mutate.mutatorEdit||t.column.modules.mutate.mutator||!1,a={};return e?(a=Object.assign(a,t.row.getData()),t.column.setFieldValue(a,o),e.mutator(o,a,"edit",e.params,t.getComponent())):o},Mutator.prototype.enable=function(){this.enabled=!0},Mutator.prototype.disable=function(){this.enabled=!1},Mutator.prototype.mutators={},Tabulator.prototype.registerModule("mutator",Mutator);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Page = function Page(table) {
-
- this.table = table; //hold Tabulator object
-
- this.mode = "local";
- this.progressiveLoad = false;
-
- this.size = 0;
- this.page = 1;
- this.count = 5;
- this.max = 1;
-
- this.displayIndex = 0; //index in display pipeline
-
- this.initialLoad = true;
-
- this.pageSizes = [];
-
- this.dataReceivedNames = {};
- this.dataSentNames = {};
-
- this.createElements();
-};
-
-Page.prototype.createElements = function () {
-
- var button;
-
- this.element = document.createElement("span");
- this.element.classList.add("tabulator-paginator");
-
- this.pagesElement = document.createElement("span");
- this.pagesElement.classList.add("tabulator-pages");
-
- button = document.createElement("button");
- button.classList.add("tabulator-page");
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
- button.setAttribute("aria-label", "");
- button.setAttribute("title", "");
-
- this.firstBut = button.cloneNode(true);
- this.firstBut.setAttribute("data-page", "first");
-
- this.prevBut = button.cloneNode(true);
- this.prevBut.setAttribute("data-page", "prev");
-
- this.nextBut = button.cloneNode(true);
- this.nextBut.setAttribute("data-page", "next");
-
- this.lastBut = button.cloneNode(true);
- this.lastBut.setAttribute("data-page", "last");
-
- if (this.table.options.paginationSizeSelector) {
- this.pageSizeSelect = document.createElement("select");
- this.pageSizeSelect.classList.add("tabulator-page-size");
- }
-};
-
-Page.prototype.generatePageSizeSelectList = function () {
- var _this = this;
-
- var pageSizes = [];
-
- if (this.pageSizeSelect) {
-
- if (Array.isArray(this.table.options.paginationSizeSelector)) {
- pageSizes = this.table.options.paginationSizeSelector;
- this.pageSizes = pageSizes;
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes.unshift(this.size);
- }
- } else {
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes = [];
-
- for (var i = 1; i < 5; i++) {
- pageSizes.push(this.size * i);
- }
-
- this.pageSizes = pageSizes;
- } else {
- pageSizes = this.pageSizes;
- }
- }
-
- while (this.pageSizeSelect.firstChild) {
- this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);
- }pageSizes.forEach(function (item) {
- var itemEl = document.createElement("option");
- itemEl.value = item;
- itemEl.innerHTML = item;
-
- _this.pageSizeSelect.appendChild(itemEl);
- });
-
- this.pageSizeSelect.value = this.size;
- }
-};
-
-//setup pageination
-Page.prototype.initialize = function (hidden) {
- var self = this,
- pageSelectLabel,
- testElRow,
- testElCell;
-
- //update param names
- this.dataSentNames = Object.assign({}, this.paginationDataSentNames);
- this.dataSentNames = Object.assign(this.dataSentNames, this.table.options.paginationDataSent);
-
- this.dataReceivedNames = Object.assign({}, this.paginationDataReceivedNames);
- this.dataReceivedNames = Object.assign(this.dataReceivedNames, this.table.options.paginationDataReceived);
-
- //build pagination element
-
- //bind localizations
- self.table.modules.localize.bind("pagination|first", function (value) {
- self.firstBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|first_title", function (value) {
- self.firstBut.setAttribute("aria-label", value);
- self.firstBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|prev", function (value) {
- self.prevBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|prev_title", function (value) {
- self.prevBut.setAttribute("aria-label", value);
- self.prevBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|next", function (value) {
- self.nextBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|next_title", function (value) {
- self.nextBut.setAttribute("aria-label", value);
- self.nextBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|last", function (value) {
- self.lastBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|last_title", function (value) {
- self.lastBut.setAttribute("aria-label", value);
- self.lastBut.setAttribute("title", value);
- });
-
- //click bindings
- self.firstBut.addEventListener("click", function () {
- self.setPage(1);
- });
-
- self.prevBut.addEventListener("click", function () {
- self.previousPage();
- });
-
- self.nextBut.addEventListener("click", function () {
- self.nextPage().then(function () {}).catch(function () {});
- });
-
- self.lastBut.addEventListener("click", function () {
- self.setPage(self.max);
- });
-
- if (self.table.options.paginationElement) {
- self.element = self.table.options.paginationElement;
- }
-
- if (this.pageSizeSelect) {
- pageSelectLabel = document.createElement("label");
-
- self.table.modules.localize.bind("pagination|page_size", function (value) {
- self.pageSizeSelect.setAttribute("aria-label", value);
- self.pageSizeSelect.setAttribute("title", value);
- pageSelectLabel.innerHTML = value;
- });
-
- self.element.appendChild(pageSelectLabel);
- self.element.appendChild(self.pageSizeSelect);
-
- self.pageSizeSelect.addEventListener("change", function (e) {
- self.setPageSize(self.pageSizeSelect.value);
- self.setPage(1).then(function () {}).catch(function () {});
- });
- }
-
- //append to DOM
- self.element.appendChild(self.firstBut);
- self.element.appendChild(self.prevBut);
- self.element.appendChild(self.pagesElement);
- self.element.appendChild(self.nextBut);
- self.element.appendChild(self.lastBut);
-
- if (!self.table.options.paginationElement && !hidden) {
- self.table.footerManager.append(self.element, self);
- }
-
- //set default values
- self.mode = self.table.options.pagination;
-
- if (self.table.options.paginationSize) {
- self.size = self.table.options.paginationSize;
- } else {
- testElRow = document.createElement("div");
- testElRow.classList.add("tabulator-row");
- testElRow.style.visibility = hidden;
-
- testElCell = document.createElement("div");
- testElCell.classList.add("tabulator-cell");
- testElCell.innerHTML = "Page Row Test";
-
- testElRow.appendChild(testElCell);
-
- self.table.rowManager.getTableElement().appendChild(testElRow);
-
- self.size = Math.floor(self.table.rowManager.getElement().clientHeight / testElRow.offsetHeight);
-
- self.table.rowManager.getTableElement().removeChild(testElRow);
- }
-
- // self.page = self.table.options.paginationInitialPage || 1;
- self.count = self.table.options.paginationButtonCount;
-
- self.generatePageSizeSelectList();
-};
-
-Page.prototype.initializeProgressive = function (mode) {
- this.initialize(true);
- this.mode = "progressive_" + mode;
- this.progressiveLoad = true;
-};
-
-Page.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-Page.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-//calculate maximum page from number of rows
-Page.prototype.setMaxRows = function (rowCount) {
- if (!rowCount) {
- this.max = 1;
- } else {
- this.max = Math.ceil(rowCount / this.size);
- }
-
- if (this.page > this.max) {
- this.page = this.max;
- }
-};
-
-//reset to first page without triggering action
-Page.prototype.reset = function (force, columnsChanged) {
- if (this.mode == "local" || force) {
- this.page = 1;
- }
-
- if (columnsChanged) {
- this.initialLoad = true;
- }
-
- return true;
-};
-
-//set the maxmum page
-Page.prototype.setMaxPage = function (max) {
-
- max = parseInt(max);
-
- this.max = max || 1;
-
- if (this.page > this.max) {
- this.page = this.max;
- this.trigger();
- }
-};
-
-//set current page number
-Page.prototype.setPage = function (page) {
- var _this2 = this;
-
- var self = this;
-
- return new Promise(function (resolve, reject) {
-
- page = parseInt(page);
-
- if (page > 0 && page <= _this2.max) {
- _this2.page = page;
- _this2.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.page) {
- self.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Requested page is out of range of 1 - " + _this2.max + ":", page);
- reject();
- }
- });
-};
-
-Page.prototype.setPageToRow = function (row) {
- var _this3 = this;
-
- return new Promise(function (resolve, reject) {
-
- var rows = _this3.table.rowManager.getDisplayRows(_this3.displayIndex - 1);
- var index = rows.indexOf(row);
-
- if (index > -1) {
- var page = Math.ceil((index + 1) / _this3.size);
-
- _this3.setPage(page).then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- } else {
- console.warn("Pagination Error - Requested row is not visible");
- reject();
- }
- });
-};
-
-Page.prototype.setPageSize = function (size) {
- size = parseInt(size);
-
- if (size > 0) {
- this.size = size;
- }
-
- if (this.pageSizeSelect) {
- // this.pageSizeSelect.value = size;
- this.generatePageSizeSelectList();
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.page) {
- this.table.modules.persistence.save("page");
- }
-};
-
-//setup the pagination buttons
-Page.prototype._setPageButtons = function () {
- var self = this;
-
- var leftSize = Math.floor((this.count - 1) / 2);
- var rightSize = Math.ceil((this.count - 1) / 2);
- var min = this.max - this.page + leftSize + 1 < this.count ? this.max - this.count + 1 : Math.max(this.page - leftSize, 1);
- var max = this.page <= rightSize ? Math.min(this.count, this.max) : Math.min(this.page + rightSize, this.max);
-
- while (self.pagesElement.firstChild) {
- self.pagesElement.removeChild(self.pagesElement.firstChild);
- }if (self.page == 1) {
- self.firstBut.disabled = true;
- self.prevBut.disabled = true;
- } else {
- self.firstBut.disabled = false;
- self.prevBut.disabled = false;
- }
-
- if (self.page == self.max) {
- self.lastBut.disabled = true;
- self.nextBut.disabled = true;
- } else {
- self.lastBut.disabled = false;
- self.nextBut.disabled = false;
- }
-
- for (var i = min; i <= max; i++) {
- if (i > 0 && i <= self.max) {
- self.pagesElement.appendChild(self._generatePageButton(i));
- }
- }
-
- this.footerRedraw();
-};
-
-Page.prototype._generatePageButton = function (page) {
- var self = this,
- button = document.createElement("button");
-
- button.classList.add("tabulator-page");
- if (page == self.page) {
- button.classList.add("active");
- }
-
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
- button.setAttribute("aria-label", "Show Page " + page);
- button.setAttribute("title", "Show Page " + page);
- button.setAttribute("data-page", page);
- button.textContent = page;
-
- button.addEventListener("click", function (e) {
- self.setPage(page);
- });
-
- return button;
-};
-
-//previous page
-Page.prototype.previousPage = function () {
- var _this4 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this4.page > 1) {
- _this4.page--;
- _this4.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this4.table.options.persistence && _this4.table.modExists("persistence", true) && _this4.table.modules.persistence.config.page) {
- _this4.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Previous page would be less than page 1:", 0);
- reject();
- }
- });
-};
-
-//next page
-Page.prototype.nextPage = function () {
- var _this5 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this5.page < _this5.max) {
- _this5.page++;
- _this5.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this5.table.options.persistence && _this5.table.modExists("persistence", true) && _this5.table.modules.persistence.config.page) {
- _this5.table.modules.persistence.save("page");
- }
- } else {
- if (!_this5.progressiveLoad) {
- console.warn("Pagination Error - Next page would be greater than maximum page of " + _this5.max + ":", _this5.max + 1);
- }
- reject();
- }
- });
-};
-
-//return current page number
-Page.prototype.getPage = function () {
- return this.page;
-};
-
-//return max page number
-Page.prototype.getPageMax = function () {
- return this.max;
-};
-
-Page.prototype.getPageSize = function (size) {
- return this.size;
-};
-
-Page.prototype.getMode = function () {
- return this.mode;
-};
-
-//return appropriate rows for current page
-Page.prototype.getRows = function (data) {
- var output, start, end;
-
- if (this.mode == "local") {
- output = [];
- start = this.size * (this.page - 1);
- end = start + parseInt(this.size);
-
- this._setPageButtons();
-
- for (var i = start; i < end; i++) {
- if (data[i]) {
- output.push(data[i]);
- }
- }
-
- return output;
- } else {
-
- this._setPageButtons();
-
- return data.slice(0);
- }
-};
-
-Page.prototype.trigger = function () {
- var _this6 = this;
-
- var left;
-
- return new Promise(function (resolve, reject) {
-
- switch (_this6.mode) {
- case "local":
- left = _this6.table.rowManager.scrollLeft;
-
- _this6.table.rowManager.refreshActiveData("page");
- _this6.table.rowManager.scrollHorizontal(left);
-
- _this6.table.options.pageLoaded.call(_this6.table, _this6.getPage());
- resolve();
- break;
-
- case "remote":
- case "progressive_load":
- case "progressive_scroll":
- _this6.table.modules.ajax.blockActiveRequest();
- _this6._getRemotePage().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- break;
-
- default:
- console.warn("Pagination Error - no such pagination mode:", _this6.mode);
- reject();
- }
- });
-};
-
-Page.prototype._getRemotePage = function () {
- var _this7 = this;
-
- var self = this,
- oldParams,
- pageParams;
-
- return new Promise(function (resolve, reject) {
-
- if (!self.table.modExists("ajax", true)) {
- reject();
- }
-
- //record old params and restore after request has been made
- oldParams = Tabulator.prototype.helpers.deepClone(self.table.modules.ajax.getParams() || {});
- pageParams = self.table.modules.ajax.getParams();
-
- //configure request params
- pageParams[_this7.dataSentNames.page] = self.page;
-
- //set page size if defined
- if (_this7.size) {
- pageParams[_this7.dataSentNames.size] = _this7.size;
- }
-
- //set sort data if defined
- if (_this7.table.options.ajaxSorting && _this7.table.modExists("sort")) {
- var sorters = self.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
- delete item.column;
- });
-
- pageParams[_this7.dataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
- if (_this7.table.options.ajaxFiltering && _this7.table.modExists("filter")) {
- var filters = self.table.modules.filter.getFilters(true, true);
- pageParams[_this7.dataSentNames.filters] = filters;
- }
-
- self.table.modules.ajax.setParams(pageParams);
-
- self.table.modules.ajax.sendRequest(_this7.progressiveLoad).then(function (data) {
- self._parseRemoteData(data);
- resolve();
- }).catch(function (e) {
- reject();
- });
-
- self.table.modules.ajax.setParams(oldParams);
- });
-};
-
-Page.prototype._parseRemoteData = function (data) {
- var self = this,
- left,
- data,
- margin;
-
- if (typeof data[this.dataReceivedNames.last_page] === "undefined") {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.last_page + "' property");
- }
-
- if (data[this.dataReceivedNames.data]) {
- this.max = parseInt(data[this.dataReceivedNames.last_page]) || 1;
-
- if (this.progressiveLoad) {
- switch (this.mode) {
- case "progressive_load":
-
- if (this.page == 1) {
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
- } else {
- this.table.rowManager.addRows(data[this.dataReceivedNames.data]);
- }
-
- if (this.page < this.max) {
- setTimeout(function () {
- self.nextPage().then(function () {}).catch(function () {});
- }, self.table.options.ajaxProgressiveLoadDelay);
- }
- break;
-
- case "progressive_scroll":
- data = this.table.rowManager.getData().concat(data[this.dataReceivedNames.data]);
-
- this.table.rowManager.setData(data, true, this.initialLoad && this.page == 1);
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.element.clientHeight * 2;
-
- if (self.table.rowManager.element.scrollHeight <= self.table.rowManager.element.clientHeight + margin) {
- self.nextPage().then(function () {}).catch(function () {});
- }
- break;
- }
- } else {
- left = this.table.rowManager.scrollLeft;
-
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
-
- this.table.rowManager.scrollHorizontal(left);
-
- this.table.columnManager.scrollHorizontal(left);
-
- this.table.options.pageLoaded.call(this.table, this.getPage());
- }
-
- this.initialLoad = false;
- } else {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.data + "' property");
- }
-};
-
-//handle the footer element being redrawn
-Page.prototype.footerRedraw = function () {
- var footer = this.table.footerManager.element;
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- } else {
- this.pagesElement.style.display = '';
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- }
- }
-};
-
-//set the paramter names for pagination requests
-Page.prototype.paginationDataSentNames = {
- "page": "page",
- "size": "size",
- "sorters": "sorters",
- // "sort_dir":"sort_dir",
- "filters": "filters"
- // "filter_value":"filter_value",
- // "filter_type":"filter_type",
-};
-
-//set the property names for pagination responses
-Page.prototype.paginationDataReceivedNames = {
- "current_page": "current_page",
- "last_page": "last_page",
- "data": "data"
-};
-
-Tabulator.prototype.registerModule("page", Page);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var Page=function(e){this.table=e,this.mode="local",this.progressiveLoad=!1,this.size=0,this.page=1,this.count=5,this.max=1,this.displayIndex=0,this.initialLoad=!0,this.pageSizes=[],this.dataReceivedNames={},this.dataSentNames={},this.createElements()};Page.prototype.createElements=function(){var e;this.element=document.createElement("span"),this.element.classList.add("tabulator-paginator"),this.pagesElement=document.createElement("span"),this.pagesElement.classList.add("tabulator-pages"),e=document.createElement("button"),e.classList.add("tabulator-page"),e.setAttribute("type","button"),e.setAttribute("role","button"),e.setAttribute("aria-label",""),e.setAttribute("title",""),this.firstBut=e.cloneNode(!0),this.firstBut.setAttribute("data-page","first"),this.prevBut=e.cloneNode(!0),this.prevBut.setAttribute("data-page","prev"),this.nextBut=e.cloneNode(!0),this.nextBut.setAttribute("data-page","next"),this.lastBut=e.cloneNode(!0),this.lastBut.setAttribute("data-page","last"),this.table.options.paginationSizeSelector&&(this.pageSizeSelect=document.createElement("select"),this.pageSizeSelect.classList.add("tabulator-page-size"))},Page.prototype.generatePageSizeSelectList=function(){var e=this,t=[];if(this.pageSizeSelect){if(Array.isArray(this.table.options.paginationSizeSelector))t=this.table.options.paginationSizeSelector,this.pageSizes=t,-1==this.pageSizes.indexOf(this.size)&&t.unshift(this.size);else if(-1==this.pageSizes.indexOf(this.size)){t=[];for(var a=1;a<5;a++)t.push(this.size*a);this.pageSizes=t}else t=this.pageSizes;for(;this.pageSizeSelect.firstChild;)this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);t.forEach(function(t){var a=document.createElement("option");a.value=t,a.innerHTML=t,e.pageSizeSelect.appendChild(a)}),this.pageSizeSelect.value=this.size}},Page.prototype.initialize=function(e){var t,a,i,s=this;this.dataSentNames=Object.assign({},this.paginationDataSentNames),this.dataSentNames=Object.assign(this.dataSentNames,this.table.options.paginationDataSent),this.dataReceivedNames=Object.assign({},this.paginationDataReceivedNames),this.dataReceivedNames=Object.assign(this.dataReceivedNames,this.table.options.paginationDataReceived),s.table.modules.localize.bind("pagination|first",function(e){s.firstBut.innerHTML=e}),s.table.modules.localize.bind("pagination|first_title",function(e){s.firstBut.setAttribute("aria-label",e),s.firstBut.setAttribute("title",e)}),s.table.modules.localize.bind("pagination|prev",function(e){s.prevBut.innerHTML=e}),s.table.modules.localize.bind("pagination|prev_title",function(e){s.prevBut.setAttribute("aria-label",e),s.prevBut.setAttribute("title",e)}),s.table.modules.localize.bind("pagination|next",function(e){s.nextBut.innerHTML=e}),s.table.modules.localize.bind("pagination|next_title",function(e){s.nextBut.setAttribute("aria-label",e),s.nextBut.setAttribute("title",e)}),s.table.modules.localize.bind("pagination|last",function(e){s.lastBut.innerHTML=e}),s.table.modules.localize.bind("pagination|last_title",function(e){s.lastBut.setAttribute("aria-label",e),s.lastBut.setAttribute("title",e)}),s.firstBut.addEventListener("click",function(){s.setPage(1)}),s.prevBut.addEventListener("click",function(){s.previousPage()}),s.nextBut.addEventListener("click",function(){s.nextPage().then(function(){}).catch(function(){})}),s.lastBut.addEventListener("click",function(){s.setPage(s.max)}),s.table.options.paginationElement&&(s.element=s.table.options.paginationElement),this.pageSizeSelect&&(t=document.createElement("label"),s.table.modules.localize.bind("pagination|page_size",function(e){s.pageSizeSelect.setAttribute("aria-label",e),s.pageSizeSelect.setAttribute("title",e),t.innerHTML=e}),s.element.appendChild(t),s.element.appendChild(s.pageSizeSelect),s.pageSizeSelect.addEventListener("change",function(e){s.setPageSize(s.pageSizeSelect.value),s.setPage(1).then(function(){}).catch(function(){})})),s.element.appendChild(s.firstBut),s.element.appendChild(s.prevBut),s.element.appendChild(s.pagesElement),s.element.appendChild(s.nextBut),s.element.appendChild(s.lastBut),s.table.options.paginationElement||e||s.table.footerManager.append(s.element,s),s.mode=s.table.options.pagination,s.table.options.paginationSize?s.size=s.table.options.paginationSize:(a=document.createElement("div"),a.classList.add("tabulator-row"),a.style.visibility=e,i=document.createElement("div"),i.classList.add("tabulator-cell"),i.innerHTML="Page Row Test",a.appendChild(i),s.table.rowManager.getTableElement().appendChild(a),s.size=Math.floor(s.table.rowManager.getElement().clientHeight/a.offsetHeight),s.table.rowManager.getTableElement().removeChild(a)),s.count=s.table.options.paginationButtonCount,s.generatePageSizeSelectList()},Page.prototype.initializeProgressive=function(e){this.initialize(!0),this.mode="progressive_"+e,this.progressiveLoad=!0},Page.prototype.setDisplayIndex=function(e){this.displayIndex=e},Page.prototype.getDisplayIndex=function(){return this.displayIndex},Page.prototype.setMaxRows=function(e){this.max=e?Math.ceil(e/this.size):1,this.page>this.max&&(this.page=this.max)},Page.prototype.reset=function(e,t){return("local"==this.mode||e)&&(this.page=1),t&&(this.initialLoad=!0),!0},Page.prototype.setMaxPage=function(e){e=parseInt(e),this.max=e||1,this.page>this.max&&(this.page=this.max,this.trigger())},Page.prototype.setPage=function(e){var t=this,a=this;return new Promise(function(i,s){e=parseInt(e),e>0&&e<=t.max?(t.page=e,t.trigger().then(function(){i()}).catch(function(){s()}),a.table.options.persistence&&a.table.modExists("persistence",!0)&&a.table.modules.persistence.config.page&&a.table.modules.persistence.save("page")):(console.warn("Pagination Error - Requested page is out of range of 1 - "+t.max+":",e),s())})},Page.prototype.setPageToRow=function(e){var t=this;return new Promise(function(a,i){var s=t.table.rowManager.getDisplayRows(t.displayIndex-1),n=s.indexOf(e);if(n>-1){var o=Math.ceil((n+1)/t.size);t.setPage(o).then(function(){a()}).catch(function(){i()})}else console.warn("Pagination Error - Requested row is not visible"),i()})},Page.prototype.setPageSize=function(e){e=parseInt(e),e>0&&(this.size=e),this.pageSizeSelect&&this.generatePageSizeSelectList(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.page&&this.table.modules.persistence.save("page")},Page.prototype._setPageButtons=function(){for(var e=this,t=Math.floor((this.count-1)/2),a=Math.ceil((this.count-1)/2),i=this.max-this.page+t+1<this.count?this.max-this.count+1:Math.max(this.page-t,1),s=this.page<=a?Math.min(this.count,this.max):Math.min(this.page+a,this.max);e.pagesElement.firstChild;)e.pagesElement.removeChild(e.pagesElement.firstChild);1==e.page?(e.firstBut.disabled=!0,e.prevBut.disabled=!0):(e.firstBut.disabled=!1,e.prevBut.disabled=!1),e.page==e.max?(e.lastBut.disabled=!0,e.nextBut.disabled=!0):(e.lastBut.disabled=!1,e.nextBut.disabled=!1);for(var n=i;n<=s;n++)n>0&&n<=e.max&&e.pagesElement.appendChild(e._generatePageButton(n));this.footerRedraw()},Page.prototype._generatePageButton=function(e){var t=this,a=document.createElement("button");return a.classList.add("tabulator-page"),e==t.page&&a.classList.add("active"),a.setAttribute("type","button"),a.setAttribute("role","button"),a.setAttribute("aria-label","Show Page "+e),a.setAttribute("title","Show Page "+e),a.setAttribute("data-page",e),a.textContent=e,a.addEventListener("click",function(a){t.setPage(e)}),a},Page.prototype.previousPage=function(){var e=this;return new Promise(function(t,a){e.page>1?(e.page--,e.trigger().then(function(){t()}).catch(function(){a()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(console.warn("Pagination Error - Previous page would be less than page 1:",0),a())})},Page.prototype.nextPage=function(){var e=this;return new Promise(function(t,a){e.page<e.max?(e.page++,e.trigger().then(function(){t()}).catch(function(){a()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(e.progressiveLoad||console.warn("Pagination Error - Next page would be greater than maximum page of "+e.max+":",e.max+1),a())})},Page.prototype.getPage=function(){return this.page},Page.prototype.getPageMax=function(){return this.max},Page.prototype.getPageSize=function(e){return this.size},Page.prototype.getMode=function(){return this.mode},Page.prototype.getRows=function(e){var t,a,i;if("local"==this.mode){t=[],a=this.size*(this.page-1),i=a+parseInt(this.size),this._setPageButtons();for(var s=a;s<i;s++)e[s]&&t.push(e[s]);return t}return this._setPageButtons(),e.slice(0)},Page.prototype.trigger=function(){var e,t=this;return new Promise(function(a,i){switch(t.mode){case"local":e=t.table.rowManager.scrollLeft,t.table.rowManager.refreshActiveData("page"),t.table.rowManager.scrollHorizontal(e),t.table.options.pageLoaded.call(t.table,t.getPage()),a();break;case"remote":case"progressive_load":case"progressive_scroll":t.table.modules.ajax.blockActiveRequest(),t._getRemotePage().then(function(){a()}).catch(function(){i()});break;default:console.warn("Pagination Error - no such pagination mode:",t.mode),i()}})},Page.prototype._getRemotePage=function(){var e,t,a=this,i=this;return new Promise(function(s,n){if(i.table.modExists("ajax",!0)||n(),e=Tabulator.prototype.helpers.deepClone(i.table.modules.ajax.getParams()||{}),t=i.table.modules.ajax.getParams(),t[a.dataSentNames.page]=i.page,a.size&&(t[a.dataSentNames.size]=a.size),a.table.options.ajaxSorting&&a.table.modExists("sort")){var o=i.table.modules.sort.getSort();o.forEach(function(e){delete e.column}),t[a.dataSentNames.sorters]=o}if(a.table.options.ajaxFiltering&&a.table.modExists("filter")){var r=i.table.modules.filter.getFilters(!0,!0);t[a.dataSentNames.filters]=r}i.table.modules.ajax.setParams(t),i.table.modules.ajax.sendRequest(a.progressiveLoad).then(function(e){i._parseRemoteData(e),s()}).catch(function(e){n()}),i.table.modules.ajax.setParams(e)})},Page.prototype._parseRemoteData=function(e){var t,e,a,i=this;if(void 0===e[this.dataReceivedNames.last_page]&&console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.last_page+"' property"),e[this.dataReceivedNames.data]){if(this.max=parseInt(e[this.dataReceivedNames.last_page])||1,this.progressiveLoad)switch(this.mode){case"progressive_load":1==this.page?this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page):this.table.rowManager.addRows(e[this.dataReceivedNames.data]),this.page<this.max&&setTimeout(function(){i.nextPage().then(function(){}).catch(function(){})},i.table.options.ajaxProgressiveLoadDelay);break;case"progressive_scroll":e=this.table.rowManager.getData().concat(e[this.dataReceivedNames.data]),this.table.rowManager.setData(e,!0,this.initialLoad&&1==this.page),a=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.element.clientHeight,i.table.rowManager.element.scrollHeight<=i.table.rowManager.element.clientHeight+a&&i.nextPage().then(function(){}).catch(function(){})}else t=this.table.rowManager.scrollLeft,this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page),this.table.rowManager.scrollHorizontal(t),this.table.columnManager.scrollHorizontal(t),this.table.options.pageLoaded.call(this.table,this.getPage());this.initialLoad=!1}else console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.data+"' property")},Page.prototype.footerRedraw=function(){var e=this.table.footerManager.element;Math.ceil(e.clientWidth)-e.scrollWidth<0?this.pagesElement.style.display="none":(this.pagesElement.style.display="",Math.ceil(e.clientWidth)-e.scrollWidth<0&&(this.pagesElement.style.display="none"))},Page.prototype.paginationDataSentNames={page:"page",size:"size",sorters:"sorters",filters:"filters"},Page.prototype.paginationDataReceivedNames={current_page:"current_page",last_page:"last_page",data:"data"},Tabulator.prototype.registerModule("page",Page);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Persistence = function Persistence(table) {
- this.table = table; //hold Tabulator object
- this.mode = "";
- this.id = "";
- // this.persistProps = ["field", "width", "visible"];
- this.defWatcherBlock = false;
- this.config = {};
- this.readFunc = false;
- this.writeFunc = false;
-};
-
-// Test for whether localStorage is available for use.
-Persistence.prototype.localStorageTest = function () {
- var testKey = "_tabulator_test";
-
- try {
- window.localStorage.setItem(testKey, testKey);
- window.localStorage.removeItem(testKey);
- return true;
- } catch (e) {
- return false;
- }
-};
-
-//setup parameters
-Persistence.prototype.initialize = function () {
- //determine persistent layout storage type
-
- var mode = this.table.options.persistenceMode,
- id = this.table.options.persistenceID,
- retreivedData;
-
- this.mode = mode !== true ? mode : this.localStorageTest() ? "local" : "cookie";
-
- if (this.table.options.persistenceReaderFunc) {
- if (typeof this.table.options.persistenceReaderFunc === "function") {
- this.readFunc = this.table.options.persistenceReaderFunc;
- } else {
- if (this.readers[this.table.options.persistenceReaderFunc]) {
- this.readFunc = this.readers[this.table.options.persistenceReaderFunc];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.table.options.persistenceReaderFunc);
- }
- }
- } else {
- if (this.readers[this.mode]) {
- this.readFunc = this.readers[this.mode];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.mode);
- }
- }
-
- if (this.table.options.persistenceWriterFunc) {
- if (typeof this.table.options.persistenceWriterFunc === "function") {
- this.writeFunc = this.table.options.persistenceWriterFunc;
- } else {
- if (this.readers[this.table.options.persistenceWriterFunc]) {
- this.writeFunc = this.readers[this.table.options.persistenceWriterFunc];
- } else {
- console.warn("Persistence Write Error - invalid reader set", this.table.options.persistenceWriterFunc);
- }
- }
- } else {
- if (this.writers[this.mode]) {
- this.writeFunc = this.writers[this.mode];
- } else {
- console.warn("Persistence Write Error - invalid writer set", this.mode);
- }
- }
-
- //set storage tag
- this.id = "tabulator-" + (id || this.table.element.getAttribute("id") || "");
-
- this.config = {
- sort: this.table.options.persistence === true || this.table.options.persistence.sort,
- filter: this.table.options.persistence === true || this.table.options.persistence.filter,
- group: this.table.options.persistence === true || this.table.options.persistence.group,
- page: this.table.options.persistence === true || this.table.options.persistence.page,
- columns: this.table.options.persistence === true ? ["title", "width", "visible"] : this.table.options.persistence.columns
- };
-
- //load pagination data if needed
- if (this.config.page) {
- retreivedData = this.retreiveData("page");
-
- if (retreivedData) {
- if (typeof retreivedData.paginationSize !== "undefined" && (this.config.page === true || this.config.page.size)) {
- this.table.options.paginationSize = retreivedData.paginationSize;
- }
-
- if (typeof retreivedData.paginationInitialPage !== "undefined" && (this.config.page === true || this.config.page.page)) {
- this.table.options.paginationInitialPage = retreivedData.paginationInitialPage;
- }
- }
- }
-
- //load group data if needed
- if (this.config.group) {
- retreivedData = this.retreiveData("group");
-
- if (retreivedData) {
- if (typeof retreivedData.groupBy !== "undefined" && (this.config.group === true || this.config.group.groupBy)) {
- this.table.options.groupBy = retreivedData.groupBy;
- }
- if (typeof retreivedData.groupStartOpen !== "undefined" && (this.config.group === true || this.config.group.groupStartOpen)) {
- this.table.options.groupStartOpen = retreivedData.groupStartOpen;
- }
- if (typeof retreivedData.groupHeader !== "undefined" && (this.config.group === true || this.config.group.groupHeader)) {
- this.table.options.groupHeader = retreivedData.groupHeader;
- }
- }
- }
-};
-
-Persistence.prototype.initializeColumn = function (column) {
- var self = this,
- def,
- keys;
-
- if (this.config.columns) {
- this.defWatcherBlock = true;
-
- def = column.getDefinition();
-
- keys = this.config.columns === true ? Object.keys(def) : this.config.columns;
-
- keys.forEach(function (key) {
- var props = Object.getOwnPropertyDescriptor(def, key);
- var value = def[key];
- if (props) {
- Object.defineProperty(def, key, {
- set: function set(newValue) {
- value = newValue;
-
- if (!self.defWatcherBlock) {
- self.save("columns");
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
- if (props.get) {
- props.get();
- }
- return value;
- }
- });
- }
- });
-
- this.defWatcherBlock = false;
- }
-};
-
-//load saved definitions
-Persistence.prototype.load = function (type, current) {
- var data = this.retreiveData(type);
-
- if (current) {
- data = data ? this.mergeDefinition(current, data) : current;
- }
-
- return data;
-};
-
-//retreive data from memory
-Persistence.prototype.retreiveData = function (type) {
- return this.readFunc ? this.readFunc(this.id, type) : false;
-};
-
-//merge old and new column definitions
-Persistence.prototype.mergeDefinition = function (oldCols, newCols) {
- var self = this,
- output = [];
-
- // oldCols = oldCols || [];
- newCols = newCols || [];
-
- newCols.forEach(function (column, to) {
-
- var from = self._findColumn(oldCols, column),
- keys;
-
- if (from) {
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(from);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
- if (typeof column[key] !== "undefined") {
- from[key] = column[key];
- }
- });
-
- if (from.columns) {
- from.columns = self.mergeDefinition(from.columns, column.columns);
- }
-
- output.push(from);
- }
- });
-
- oldCols.forEach(function (column, i) {
- var from = self._findColumn(newCols, column);
- if (!from) {
- if (output.length > i) {
- output.splice(i, 0, column);
- } else {
- output.push(column);
- }
- }
- });
-
- return output;
-};
-
-//find matching columns
-Persistence.prototype._findColumn = function (columns, subject) {
- var type = subject.columns ? "group" : subject.field ? "field" : "object";
-
- return columns.find(function (col) {
- switch (type) {
- case "group":
- return col.title === subject.title && col.columns.length === subject.columns.length;
- break;
-
- case "field":
- return col.field === subject.field;
- break;
-
- case "object":
- return col === subject;
- break;
- }
- });
-};
-
-//save data
-Persistence.prototype.save = function (type) {
- var data = {};
-
- switch (type) {
- case "columns":
- data = this.parseColumns(this.table.columnManager.getColumns());
- break;
-
- case "filter":
- data = this.table.modules.filter.getFilters();
- break;
-
- case "sort":
- data = this.validateSorters(this.table.modules.sort.getSort());
- break;
-
- case "group":
- data = this.getGroupConfig();
- break;
-
- case "page":
- data = this.getPageConfig();
- break;
- }
-
- if (this.writeFunc) {
- this.writeFunc(this.id, type, data);
- }
-};
-
-//ensure sorters contain no function data
-Persistence.prototype.validateSorters = function (data) {
- data.forEach(function (item) {
- item.column = item.field;
- delete item.field;
- });
-
- return data;
-};
-
-Persistence.prototype.getGroupConfig = function () {
- if (this.config.group) {
- if (this.config.group === true || this.config.group.groupBy) {
- data.groupBy = this.table.options.groupBy;
- }
-
- if (this.config.group === true || this.config.group.groupStartOpen) {
- data.groupStartOpen = this.table.options.groupStartOpen;
- }
-
- if (this.config.group === true || this.config.group.groupHeader) {
- data.groupHeader = this.table.options.groupHeader;
- }
- }
-
- return data;
-};
-
-Persistence.prototype.getPageConfig = function () {
- var data = {};
-
- if (this.config.page) {
- if (this.config.page === true || this.config.page.size) {
- data.paginationSize = this.table.modules.page.getPageSize();
- }
-
- if (this.config.page === true || this.config.page.page) {
- data.paginationInitialPage = this.table.modules.page.getPage();
- }
- }
-
- return data;
-};
-
-//parse columns for data to store
-Persistence.prototype.parseColumns = function (columns) {
- var self = this,
- definitions = [];
-
- columns.forEach(function (column) {
- var defStore = {},
- colDef = column.getDefinition(),
- keys;
-
- if (column.isGroup) {
- defStore.title = colDef.title;
- defStore.columns = self.parseColumns(column.getColumns());
- } else {
- defStore.field = column.getField();
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(colDef);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
-
- switch (key) {
- case "width":
- defStore.width = column.getWidth();
- break;
- case "visible":
- defStore.visible = column.visible;
- break;
-
- default:
- defStore[key] = colDef[key];
- }
- });
- }
-
- definitions.push(defStore);
- });
-
- return definitions;
-};
-
-// read peristence information from storage
-Persistence.prototype.readers = {
- local: function local(id, type) {
- var data = localStorage.getItem(id + "-" + type);
-
- return data ? JSON.parse(data) : false;
- },
- cookie: function cookie(id, type) {
- var cookie = document.cookie,
- key = id + "-" + type,
- cookiePos = cookie.indexOf(key + "="),
- end,
- data;
-
- //if cookie exists, decode and load column data into tabulator
- if (cookiePos > -1) {
- cookie = cookie.substr(cookiePos);
-
- end = cookie.indexOf(";");
-
- if (end > -1) {
- cookie = cookie.substr(0, end);
- }
-
- data = cookie.replace(key + "=", "");
- }
-
- return data ? JSON.parse(data) : false;
- }
-};
-
-//write persistence information to storage
-Persistence.prototype.writers = {
- local: function local(id, type, data) {
- localStorage.setItem(id + "-" + type, JSON.stringify(data));
- },
- cookie: function cookie(id, type, data) {
- var expireDate = new Date();
-
- expireDate.setDate(expireDate.getDate() + 10000);
-
- document.cookie = id + "-" + type + "=" + JSON.stringify(data) + "; expires=" + expireDate.toUTCString();
- }
-};
-
-Tabulator.prototype.registerModule("persistence", Persistence);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var Persistence=function(e){this.table=e,this.mode="",this.id="",this.defWatcherBlock=!1,this.config={},this.readFunc=!1,this.writeFunc=!1};Persistence.prototype.localStorageTest=function(){var e="_tabulator_test";try{return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}},Persistence.prototype.initialize=function(){var e,t=this.table.options.persistenceMode,i=this.table.options.persistenceID;this.mode=!0!==t?t:this.localStorageTest()?"local":"cookie",this.table.options.persistenceReaderFunc?"function"==typeof this.table.options.persistenceReaderFunc?this.readFunc=this.table.options.persistenceReaderFunc:this.readers[this.table.options.persistenceReaderFunc]?this.readFunc=this.readers[this.table.options.persistenceReaderFunc]:console.warn("Persistence Read Error - invalid reader set",this.table.options.persistenceReaderFunc):this.readers[this.mode]?this.readFunc=this.readers[this.mode]:console.warn("Persistence Read Error - invalid reader set",this.mode),this.table.options.persistenceWriterFunc?"function"==typeof this.table.options.persistenceWriterFunc?this.writeFunc=this.table.options.persistenceWriterFunc:this.readers[this.table.options.persistenceWriterFunc]?this.writeFunc=this.readers[this.table.options.persistenceWriterFunc]:console.warn("Persistence Write Error - invalid reader set",this.table.options.persistenceWriterFunc):this.writers[this.mode]?this.writeFunc=this.writers[this.mode]:console.warn("Persistence Write Error - invalid writer set",this.mode),this.id="tabulator-"+(i||this.table.element.getAttribute("id")||""),this.config={sort:!0===this.table.options.persistence||this.table.options.persistence.sort,filter:!0===this.table.options.persistence||this.table.options.persistence.filter,group:!0===this.table.options.persistence||this.table.options.persistence.group,page:!0===this.table.options.persistence||this.table.options.persistence.page,columns:!0===this.table.options.persistence?["title","width","visible"]:this.table.options.persistence.columns},this.config.page&&(e=this.retreiveData("page"))&&(void 0===e.paginationSize||!0!==this.config.page&&!this.config.page.size||(this.table.options.paginationSize=e.paginationSize),void 0===e.paginationInitialPage||!0!==this.config.page&&!this.config.page.page||(this.table.options.paginationInitialPage=e.paginationInitialPage)),this.config.group&&(e=this.retreiveData("group"))&&(void 0===e.groupBy||!0!==this.config.group&&!this.config.group.groupBy||(this.table.options.groupBy=e.groupBy),void 0===e.groupStartOpen||!0!==this.config.group&&!this.config.group.groupStartOpen||(this.table.options.groupStartOpen=e.groupStartOpen),void 0===e.groupHeader||!0!==this.config.group&&!this.config.group.groupHeader||(this.table.options.groupHeader=e.groupHeader))},Persistence.prototype.initializeColumn=function(e){var t,i,s=this;this.config.columns&&(this.defWatcherBlock=!0,t=e.getDefinition(),i=!0===this.config.columns?Object.keys(t):this.config.columns,i.forEach(function(e){var i=Object.getOwnPropertyDescriptor(t,e),o=t[e];i&&Object.defineProperty(t,e,{set:function(e){o=e,s.defWatcherBlock||s.save("columns"),i.set&&i.set(e)},get:function(){return i.get&&i.get(),o}})}),this.defWatcherBlock=!1)},Persistence.prototype.load=function(e,t){var i=this.retreiveData(e);return t&&(i=i?this.mergeDefinition(t,i):t),i},Persistence.prototype.retreiveData=function(e){return!!this.readFunc&&this.readFunc(this.id,e)},Persistence.prototype.mergeDefinition=function(e,t){var i=this,s=[];return t=t||[],t.forEach(function(t,o){var n,r=i._findColumn(e,t);r&&(!0===i.config.columns||void 0==i.config.columns?(n=Object.keys(r),n.push("width")):n=i.config.columns,n.forEach(function(e){void 0!==t[e]&&(r[e]=t[e])}),r.columns&&(r.columns=i.mergeDefinition(r.columns,t.columns)),s.push(r))}),e.forEach(function(e,o){i._findColumn(t,e)||(s.length>o?s.splice(o,0,e):s.push(e))}),s},Persistence.prototype._findColumn=function(e,t){var i=t.columns?"group":t.field?"field":"object";return e.find(function(e){switch(i){case"group":return e.title===t.title&&e.columns.length===t.columns.length;case"field":return e.field===t.field;case"object":return e===t}})},Persistence.prototype.save=function(e){var t={};switch(e){case"columns":t=this.parseColumns(this.table.columnManager.getColumns());break;case"filter":t=this.table.modules.filter.getFilters();break;case"sort":t=this.validateSorters(this.table.modules.sort.getSort());break;case"group":t=this.getGroupConfig();break;case"page":t=this.getPageConfig()}this.writeFunc&&this.writeFunc(this.id,e,t)},Persistence.prototype.validateSorters=function(e){return e.forEach(function(e){e.column=e.field,delete e.field}),e},Persistence.prototype.getGroupConfig=function(){return this.config.group&&((!0===this.config.group||this.config.group.groupBy)&&(data.groupBy=this.table.options.groupBy),(!0===this.config.group||this.config.group.groupStartOpen)&&(data.groupStartOpen=this.table.options.groupStartOpen),(!0===this.config.group||this.config.group.groupHeader)&&(data.groupHeader=this.table.options.groupHeader)),data},Persistence.prototype.getPageConfig=function(){var e={};return this.config.page&&((!0===this.config.page||this.config.page.size)&&(e.paginationSize=this.table.modules.page.getPageSize()),(!0===this.config.page||this.config.page.page)&&(e.paginationInitialPage=this.table.modules.page.getPage())),e},Persistence.prototype.parseColumns=function(e){var t=this,i=[];return e.forEach(function(e){var s,o={},n=e.getDefinition();e.isGroup?(o.title=n.title,o.columns=t.parseColumns(e.getColumns())):(o.field=e.getField(),!0===t.config.columns||void 0==t.config.columns?(s=Object.keys(n),s.push("width")):s=t.config.columns,s.forEach(function(t){switch(t){case"width":o.width=e.getWidth();break;case"visible":o.visible=e.visible;break;default:o[t]=n[t]}})),i.push(o)}),i},Persistence.prototype.readers={local:function(e,t){var i=localStorage.getItem(e+"-"+t);return!!i&&JSON.parse(i)},cookie:function(e,t){var i,s,o=document.cookie,n=e+"-"+t,r=o.indexOf(n+"=");return r>-1&&(o=o.substr(r),i=o.indexOf(";"),i>-1&&(o=o.substr(0,i)),s=o.replace(n+"=","")),!!s&&JSON.parse(s)}},Persistence.prototype.writers={local:function(e,t,i){localStorage.setItem(e+"-"+t,JSON.stringify(i))},cookie:function(e,t,i){var s=new Date;s.setDate(s.getDate()+1e4),document.cookie=e+"-"+t+"="+JSON.stringify(i)+"; expires="+s.toUTCString()}},Tabulator.prototype.registerModule("persistence",Persistence);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Print = function Print(table) {
- this.table = table; //hold Tabulator object
- this.element = false;
- this.manualBlock = false;
-};
-
-Print.prototype.initialize = function () {
- window.addEventListener("beforeprint", this.replaceTable.bind(this));
- window.addEventListener("afterprint", this.cleanup.bind(this));
-};
-
-Print.prototype.replaceTable = function () {
- if (!this.manualBlock) {
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-table");
-
- this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig, this.table.options.printStyled, this.table.options.printRowRange, "print"));
-
- this.table.element.style.display = "none";
-
- this.table.element.parentNode.insertBefore(this.element, this.table.element);
- }
-};
-
-Print.prototype.cleanup = function () {
- document.body.classList.remove("tabulator-print-fullscreen-hide");
-
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- this.table.element.style.display = "";
- }
-};
-
-Print.prototype.printFullscreen = function (visible, style, config) {
- var scrollX = window.scrollX,
- scrollY = window.scrollY,
- headerEl = document.createElement("div"),
- footerEl = document.createElement("div"),
- tableEl = this.table.modules.export.genereateTable(typeof config != "undefined" ? config : this.table.options.printConfig, typeof style != "undefined" ? style : this.table.options.printStyled, visible, "print"),
- headerContent,
- footerContent;
-
- this.manualBlock = true;
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-fullscreen");
-
- if (this.table.options.printHeader) {
- headerEl.classList.add("tabulator-print-header");
-
- headerContent = typeof this.table.options.printHeader == "function" ? this.table.options.printHeader.call(this.table) : this.table.options.printHeader;
-
- if (typeof headerContent == "string") {
- headerEl.innerHTML = headerContent;
- } else {
- headerEl.appendChild(headerContent);
- }
-
- this.element.appendChild(headerEl);
- }
-
- this.element.appendChild(tableEl);
-
- if (this.table.options.printFooter) {
- footerEl.classList.add("tabulator-print-footer");
-
- footerContent = typeof this.table.options.printFooter == "function" ? this.table.options.printFooter.call(this.table) : this.table.options.printFooter;
-
- if (typeof footerContent == "string") {
- footerEl.innerHTML = footerContent;
- } else {
- footerEl.appendChild(footerContent);
- }
-
- this.element.appendChild(footerEl);
- }
-
- document.body.classList.add("tabulator-print-fullscreen-hide");
- document.body.appendChild(this.element);
-
- if (this.table.options.printFormatter) {
- this.table.options.printFormatter(this.element, tableEl);
- }
-
- window.print();
-
- this.cleanup();
-
- window.scrollTo(scrollX, scrollY);
-
- this.manualBlock = false;
-};
-
-Tabulator.prototype.registerModule("print", Print);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var Print=function(t){this.table=t,this.element=!1,this.manualBlock=!1};Print.prototype.initialize=function(){window.addEventListener("beforeprint",this.replaceTable.bind(this)),window.addEventListener("afterprint",this.cleanup.bind(this))},Print.prototype.replaceTable=function(){this.manualBlock||(this.element=document.createElement("div"),this.element.classList.add("tabulator-print-table"),this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig,this.table.options.printStyled,this.table.options.printRowRange,"print")),this.table.element.style.display="none",this.table.element.parentNode.insertBefore(this.element,this.table.element))},Print.prototype.cleanup=function(){document.body.classList.remove("tabulator-print-fullscreen-hide"),this.element&&this.element.parentNode&&(this.element.parentNode.removeChild(this.element),this.table.element.style.display="")},Print.prototype.printFullscreen=function(t,e,i){var n,l,o=window.scrollX,a=window.scrollY,s=document.createElement("div"),r=document.createElement("div"),p=this.table.modules.export.genereateTable(void 0!==i?i:this.table.options.printConfig,void 0!==e?e:this.table.options.printStyled,t,"print");this.manualBlock=!0,this.element=document.createElement("div"),this.element.classList.add("tabulator-print-fullscreen"),this.table.options.printHeader&&(s.classList.add("tabulator-print-header"),n="function"==typeof this.table.options.printHeader?this.table.options.printHeader.call(this.table):this.table.options.printHeader,"string"==typeof n?s.innerHTML=n:s.appendChild(n),this.element.appendChild(s)),this.element.appendChild(p),this.table.options.printFooter&&(r.classList.add("tabulator-print-footer"),l="function"==typeof this.table.options.printFooter?this.table.options.printFooter.call(this.table):this.table.options.printFooter,"string"==typeof l?r.innerHTML=l:r.appendChild(l),this.element.appendChild(r)),document.body.classList.add("tabulator-print-fullscreen-hide"),document.body.appendChild(this.element),this.table.options.printFormatter&&this.table.options.printFormatter(this.element,p),window.print(),this.cleanup(),window.scrollTo(o,a),this.manualBlock=!1},Tabulator.prototype.registerModule("print",Print);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var ReactiveData = function ReactiveData(table) {
- this.table = table; //hold Tabulator object
- this.data = false;
- this.blocked = false; //block reactivity while performing update
- this.origFuncs = {}; // hold original data array functions to allow replacement after data is done with
- this.currentVersion = 0;
-};
-
-ReactiveData.prototype.watchData = function (data) {
- var self = this,
- pushFunc,
- version;
-
- this.currentVersion++;
-
- version = this.currentVersion;
-
- self.unwatchData();
-
- self.data = data;
-
- //override array push function
- self.origFuncs.push = data.push;
-
- Object.defineProperty(self.data, "push", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, false);
- });
- }
-
- return self.origFuncs.push.apply(data, arguments);
- }
- });
-
- //override array unshift function
- self.origFuncs.unshift = data.unshift;
-
- Object.defineProperty(self.data, "unshift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, true);
- });
- }
-
- return self.origFuncs.unshift.apply(data, arguments);
- }
- });
-
- //override array shift function
- self.origFuncs.shift = data.shift;
-
- Object.defineProperty(self.data, "shift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
-
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[0]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
-
- return self.origFuncs.shift.call(data);
- }
- });
-
- //override array pop function
- self.origFuncs.pop = data.pop;
-
- Object.defineProperty(self.data, "pop", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
- return self.origFuncs.pop.call(data);
- }
- });
-
- //override array splice function
- self.origFuncs.splice = data.splice;
-
- Object.defineProperty(self.data, "splice", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments),
- start = args[0] < 0 ? data.length + args[0] : args[0],
- end = args[1],
- newRows = args[2] ? args.slice(2) : false,
- startRow;
-
- if (!self.blocked && version === self.currentVersion) {
-
- //add new rows
- if (newRows) {
- startRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false;
-
- if (startRow) {
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, startRow, true);
- });
- } else {
- newRows = newRows.slice().reverse();
-
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, false, true);
- });
- }
- }
-
- //delete removed rows
- if (end !== 0) {
- var oldRows = data.slice(start, typeof args[1] === "undefined" ? args[1] : start + end);
-
- oldRows.forEach(function (rowData, i) {
- var row = self.table.rowManager.getRowFromDataObject(rowData);
-
- if (row) {
- row.deleteActual(i !== oldRows.length - 1);
- }
- });
- }
-
- if (newRows || end !== 0) {
- self.table.rowManager.reRenderInPosition();
- }
- }
-
- return self.origFuncs.splice.apply(data, arguments);
- }
- });
-};
-
-ReactiveData.prototype.unwatchData = function () {
- if (this.data !== false) {
- for (var key in this.origFuncs) {
- Object.defineProperty(this.data, key, {
- enumerable: true,
- configurable: true,
- writable: true,
- value: this.origFuncs.key
- });
- }
- }
-};
-
-ReactiveData.prototype.watchRow = function (row) {
- var self = this,
- data = row.getData();
-
- this.blocked = true;
-
- for (var key in data) {
- this.watchKey(row, data, key);
- }
-
- this.blocked = false;
-};
-
-ReactiveData.prototype.watchKey = function (row, data, key) {
- var self = this,
- props = Object.getOwnPropertyDescriptor(data, key),
- value = data[key],
- version = this.currentVersion;
-
- Object.defineProperty(data, key, {
- set: function set(newValue) {
- value = newValue;
- if (!self.blocked && version === self.currentVersion) {
- var update = {};
- update[key] = newValue;
- row.updateData(update);
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
-
- if (props.get) {
- props.get();
- }
-
- return value;
- }
- });
-};
-
-ReactiveData.prototype.unwatchRow = function (row) {
- var data = row.getData();
-
- for (var key in data) {
- Object.defineProperty(data, key, {
- value: data[key]
- });
- }
-};
-
-ReactiveData.prototype.block = function () {
- this.blocked = true;
-};
-
-ReactiveData.prototype.unblock = function () {
- this.blocked = false;
-};
-
-Tabulator.prototype.registerModule("reactiveData", ReactiveData);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var ReactiveData=function(e){this.table=e,this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0};ReactiveData.prototype.watchData=function(e){var t,a=this;this.currentVersion++,t=this.currentVersion,a.unwatchData(),a.data=e,a.origFuncs.push=e.push,Object.defineProperty(a.data,"push",{enumerable:!1,configurable:!0,value:function(){var r=Array.from(arguments);return a.blocked||t!==a.currentVersion||r.forEach(function(e){a.table.rowManager.addRowActual(e,!1)}),a.origFuncs.push.apply(e,arguments)}}),a.origFuncs.unshift=e.unshift,Object.defineProperty(a.data,"unshift",{enumerable:!1,configurable:!0,value:function(){var r=Array.from(arguments);return a.blocked||t!==a.currentVersion||r.forEach(function(e){a.table.rowManager.addRowActual(e,!0)}),a.origFuncs.unshift.apply(e,arguments)}}),a.origFuncs.shift=e.shift,Object.defineProperty(a.data,"shift",{enumerable:!1,configurable:!0,value:function(){var r;return a.blocked||t!==a.currentVersion||a.data.length&&(r=a.table.rowManager.getRowFromDataObject(a.data[0]))&&r.deleteActual(),a.origFuncs.shift.call(e)}}),a.origFuncs.pop=e.pop,Object.defineProperty(a.data,"pop",{enumerable:!1,configurable:!0,value:function(){var r;return a.blocked||t!==a.currentVersion||a.data.length&&(r=a.table.rowManager.getRowFromDataObject(a.data[a.data.length-1]))&&r.deleteActual(),a.origFuncs.pop.call(e)}}),a.origFuncs.splice=e.splice,Object.defineProperty(a.data,"splice",{enumerable:!1,configurable:!0,value:function(){var r,o=Array.from(arguments),n=o[0]<0?e.length+o[0]:o[0],c=o[1],i=!!o[2]&&o.slice(2);if(!a.blocked&&t===a.currentVersion){if(i&&(r=!!e[n]&&a.table.rowManager.getRowFromDataObject(e[n]),r?i.forEach(function(e){a.table.rowManager.addRowActual(e,!0,r,!0)}):(i=i.slice().reverse(),i.forEach(function(e){a.table.rowManager.addRowActual(e,!0,!1,!0)}))),0!==c){var u=e.slice(n,void 0===o[1]?o[1]:n+c);u.forEach(function(e,t){var r=a.table.rowManager.getRowFromDataObject(e);r&&r.deleteActual(t!==u.length-1)})}(i||0!==c)&&a.table.rowManager.reRenderInPosition()}return a.origFuncs.splice.apply(e,arguments)}})},ReactiveData.prototype.unwatchData=function(){if(!1!==this.data)for(var e in this.origFuncs)Object.defineProperty(this.data,e,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs.key})},ReactiveData.prototype.watchRow=function(e){var t=e.getData();this.blocked=!0;for(var a in t)this.watchKey(e,t,a);this.blocked=!1},ReactiveData.prototype.watchKey=function(e,t,a){var r=this,o=Object.getOwnPropertyDescriptor(t,a),n=t[a],c=this.currentVersion;Object.defineProperty(t,a,{set:function(t){if(n=t,!r.blocked&&c===r.currentVersion){var i={};i[a]=t,e.updateData(i)}o.set&&o.set(t)},get:function(){return o.get&&o.get(),n}})},ReactiveData.prototype.unwatchRow=function(e){var t=e.getData();for(var a in t)Object.defineProperty(t,a,{value:t[a]})},ReactiveData.prototype.block=function(){this.blocked=!0},ReactiveData.prototype.unblock=function(){this.blocked=!1},Tabulator.prototype.registerModule("reactiveData",ReactiveData);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var ResizeColumns = function ResizeColumns(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startX = false;
- this.startWidth = false;
- this.handle = null;
- this.prevHandle = null;
-};
-
-ResizeColumns.prototype.initializeColumn = function (type, column, element) {
- var self = this,
- variableHeight = false,
- mode = this.table.options.resizableColumns;
-
- //set column resize mode
- if (type === "header") {
- variableHeight = column.definition.formatter == "textarea" || column.definition.variableHeight;
- column.modules.resize = { variableHeight: variableHeight };
- }
-
- if (mode === true || mode == type) {
-
- var handle = document.createElement('div');
- handle.className = "tabulator-col-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-col-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- var nearestColumn = column.getLastColumn();
-
- if (nearestColumn && self._checkResizability(nearestColumn)) {
- self.startColumn = column;
- self._mouseDown(e, nearestColumn, handle);
- }
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- //reszie column on double click
- handle.addEventListener("dblclick", function (e) {
- var col = column.getLastColumn();
-
- if (col && self._checkResizability(col)) {
- e.stopPropagation();
- col.reinitializeWidth(true);
- }
- });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- self.startColumn = column;
- self._mouseDown(e, prevColumn, prevHandle);
- }
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- //resize column on double click
- prevHandle.addEventListener("dblclick", function (e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- e.stopPropagation();
- prevColumn.reinitializeWidth(true);
- }
- }
- });
-
- element.appendChild(handle);
- element.appendChild(prevHandle);
- }
-};
-
-ResizeColumns.prototype._checkResizability = function (column) {
- return typeof column.definition.resizable != "undefined" ? column.definition.resizable : this.table.options.resizableColumns;
-};
-
-ResizeColumns.prototype._mouseDown = function (e, column, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- // self.table.columnManager.tempScrollBlock();
-
- column.setWidth(self.startWidth + ((typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX) - self.startX));
-
- if (!self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
- }
-
- function mouseUp(e) {
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = false;
- }
-
- if (self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
-
- document.body.removeEventListener("mouseup", mouseUp);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.columns) {
- self.table.modules.persistence.save("columns");
- }
-
- self.table.options.columnResized.call(self.table, column.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = true;
- }
-
- self.startX = typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX;
- self.startWidth = column.getWidth();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
-};
-
-Tabulator.prototype.registerModule("resizeColumns", ResizeColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var ResizeColumns=function(e){this.table=e,this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.handle=null,this.prevHandle=null};ResizeColumns.prototype.initializeColumn=function(e,t,n){var o=this,i=!1,s=this.table.options.resizableColumns;if("header"===e&&(i="textarea"==t.definition.formatter||t.definition.variableHeight,t.modules.resize={variableHeight:i}),!0===s||s==e){var a=document.createElement("div");a.className="tabulator-col-resize-handle";var l=document.createElement("div");l.className="tabulator-col-resize-handle prev",a.addEventListener("click",function(e){e.stopPropagation()});var r=function(e){var n=t.getLastColumn();n&&o._checkResizability(n)&&(o.startColumn=t,o._mouseDown(e,n,a))};a.addEventListener("mousedown",r),a.addEventListener("touchstart",r,{passive:!0}),a.addEventListener("dblclick",function(e){var n=t.getLastColumn();n&&o._checkResizability(n)&&(e.stopPropagation(),n.reinitializeWidth(!0))}),l.addEventListener("click",function(e){e.stopPropagation()});var d=function(e){var n,i,s;(n=t.getFirstColumn())&&(i=o.table.columnManager.findColumnIndex(n),(s=i>0&&o.table.columnManager.getColumnByIndex(i-1))&&o._checkResizability(s)&&(o.startColumn=t,o._mouseDown(e,s,l)))};l.addEventListener("mousedown",d),l.addEventListener("touchstart",d,{passive:!0}),l.addEventListener("dblclick",function(e){var n,i,s;(n=t.getFirstColumn())&&(i=o.table.columnManager.findColumnIndex(n),(s=i>0&&o.table.columnManager.getColumnByIndex(i-1))&&o._checkResizability(s)&&(e.stopPropagation(),s.reinitializeWidth(!0)))}),n.appendChild(a),n.appendChild(l)}},ResizeColumns.prototype._checkResizability=function(e){return void 0!==e.definition.resizable?e.definition.resizable:this.table.options.resizableColumns},ResizeColumns.prototype._mouseDown=function(e,t,n){function o(e){t.setWidth(s.startWidth+((void 0===e.screenX?e.touches[0].screenX:e.screenX)-s.startX)),!s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights()}function i(e){s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!1),s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights(),document.body.removeEventListener("mouseup",i),document.body.removeEventListener("mousemove",o),n.removeEventListener("touchmove",o),n.removeEventListener("touchend",i),s.table.element.classList.remove("tabulator-block-select"),s.table.options.persistence&&s.table.modExists("persistence",!0)&&s.table.modules.persistence.config.columns&&s.table.modules.persistence.save("columns"),s.table.options.columnResized.call(s.table,t.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!0),s.startX=void 0===e.screenX?e.touches[0].screenX:e.screenX,s.startWidth=t.getWidth(),document.body.addEventListener("mousemove",o),document.body.addEventListener("mouseup",i),n.addEventListener("touchmove",o,{passive:!0}),n.addEventListener("touchend",i)},Tabulator.prototype.registerModule("resizeColumns",ResizeColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var ResizeRows = function ResizeRows(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startY = false;
- this.startHeight = false;
- this.handle = null;
- this.prevHandle = null;
-};
-
-ResizeRows.prototype.initializeRow = function (row) {
- var self = this,
- rowEl = row.getElement();
-
- var handle = document.createElement('div');
- handle.className = "tabulator-row-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-row-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- self.startRow = row;
- self._mouseDown(e, row, handle);
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var prevRow = self.table.rowManager.prevDisplayRow(row);
-
- if (prevRow) {
- self.startRow = prevRow;
- self._mouseDown(e, prevRow, prevHandle);
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- rowEl.appendChild(handle);
- rowEl.appendChild(prevHandle);
-};
-
-ResizeRows.prototype._mouseDown = function (e, row, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- row.setHeight(self.startHeight + ((typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY) - self.startY));
- }
-
- function mouseUp(e) {
-
- // //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = false;
- // }
-
- document.body.removeEventListener("mouseup", mouseMove);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- self.table.options.rowResized.call(this.table, row.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = true;
- // }
-
- self.startY = typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY;
- self.startHeight = row.getHeight();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
-
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
-};
-
-Tabulator.prototype.registerModule("resizeRows", ResizeRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var ResizeRows=function(e){this.table=e,this.startColumn=!1,this.startY=!1,this.startHeight=!1,this.handle=null,this.prevHandle=null};ResizeRows.prototype.initializeRow=function(e){var t=this,o=e.getElement(),s=document.createElement("div");s.className="tabulator-row-resize-handle";var n=document.createElement("div");n.className="tabulator-row-resize-handle prev",s.addEventListener("click",function(e){e.stopPropagation()});var a=function(o){t.startRow=e,t._mouseDown(o,e,s)};s.addEventListener("mousedown",a),s.addEventListener("touchstart",a,{passive:!0}),n.addEventListener("click",function(e){e.stopPropagation()});var r=function(o){var s=t.table.rowManager.prevDisplayRow(e);s&&(t.startRow=s,t._mouseDown(o,s,n))};n.addEventListener("mousedown",r),n.addEventListener("touchstart",r,{passive:!0}),o.appendChild(s),o.appendChild(n)},ResizeRows.prototype._mouseDown=function(e,t,o){function s(e){t.setHeight(a.startHeight+((void 0===e.screenY?e.touches[0].screenY:e.screenY)-a.startY))}function n(e){document.body.removeEventListener("mouseup",s),document.body.removeEventListener("mousemove",s),o.removeEventListener("touchmove",s),o.removeEventListener("touchend",n),a.table.element.classList.remove("tabulator-block-select"),a.table.options.rowResized.call(this.table,t.getComponent())}var a=this;a.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),a.startY=void 0===e.screenY?e.touches[0].screenY:e.screenY,a.startHeight=t.getHeight(),document.body.addEventListener("mousemove",s),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",s,{passive:!0}),o.addEventListener("touchend",n)},Tabulator.prototype.registerModule("resizeRows",ResizeRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var ResizeTable = function ResizeTable(table) {
- this.table = table; //hold Tabulator object
- this.binding = false;
- this.observer = false;
- this.containerObserver = false;
-
- this.tableHeight = 0;
- this.tableWidth = 0;
- this.containerHeight = 0;
- this.containerWidth = 0;
-
- this.autoResize = false;
-};
-
-ResizeTable.prototype.initialize = function (row) {
- var _this = this;
-
- var table = this.table,
- tableStyle;
-
- this.tableHeight = table.element.clientHeight;
- this.tableWidth = table.element.clientWidth;
-
- if (table.element.parentNode) {
- this.containerHeight = table.element.parentNode.clientHeight;
- this.containerWidth = table.element.parentNode.clientWidth;
- }
-
- if (typeof ResizeObserver !== "undefined" && table.rowManager.getRenderMode() === "virtual") {
-
- this.autoResize = true;
-
- this.observer = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this.tableHeight != nodeHeight || _this.tableWidth != nodeWidth) {
- _this.tableHeight = nodeHeight;
- _this.tableWidth = nodeWidth;
-
- if (table.element.parentNode) {
- _this.containerHeight = table.element.parentNode.clientHeight;
- _this.containerWidth = table.element.parentNode.clientWidth;
- }
-
- table.redraw();
- }
- }
- });
-
- this.observer.observe(table.element);
-
- tableStyle = window.getComputedStyle(table.element);
-
- if (this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue("max-height") || tableStyle.getPropertyValue("min-height"))) {
-
- this.containerObserver = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this.containerHeight != nodeHeight || _this.containerWidth != nodeWidth) {
- _this.containerHeight = nodeHeight;
- _this.containerWidth = nodeWidth;
- _this.tableHeight = table.element.clientHeight;
- _this.tableWidth = table.element.clientWidth;
-
- table.redraw();
- }
-
- table.redraw();
- }
- });
-
- this.containerObserver.observe(this.table.element.parentNode);
- }
- } else {
- this.binding = function () {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
- table.redraw();
- }
- };
-
- window.addEventListener("resize", this.binding);
- }
-};
-
-ResizeTable.prototype.clearBindings = function (row) {
- if (this.binding) {
- window.removeEventListener("resize", this.binding);
- }
-
- if (this.observer) {
- this.observer.unobserve(this.table.element);
- }
-
- if (this.containerObserver) {
- this.containerObserver.unobserve(this.table.element.parentNode);
- }
-};
-
-Tabulator.prototype.registerModule("resizeTable", ResizeTable);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var ResizeTable=function(e){this.table=e,this.binding=!1,this.observer=!1,this.containerObserver=!1,this.tableHeight=0,this.tableWidth=0,this.containerHeight=0,this.containerWidth=0,this.autoResize=!1};ResizeTable.prototype.initialize=function(e){var t,i=this,n=this.table;this.tableHeight=n.element.clientHeight,this.tableWidth=n.element.clientWidth,n.element.parentNode&&(this.containerHeight=n.element.parentNode.clientHeight,this.containerWidth=n.element.parentNode.clientWidth),"undefined"!=typeof ResizeObserver&&"virtual"===n.rowManager.getRenderMode()?(this.autoResize=!0,this.observer=new ResizeObserver(function(e){if(!n.browserMobile||n.browserMobile&&!n.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),r=Math.floor(e[0].contentRect.width);i.tableHeight==t&&i.tableWidth==r||(i.tableHeight=t,i.tableWidth=r,n.element.parentNode&&(i.containerHeight=n.element.parentNode.clientHeight,i.containerWidth=n.element.parentNode.clientWidth),n.redraw())}}),this.observer.observe(n.element),t=window.getComputedStyle(n.element),this.table.element.parentNode&&!this.table.rowManager.fixedHeight&&(t.getPropertyValue("max-height")||t.getPropertyValue("min-height"))&&(this.containerObserver=new ResizeObserver(function(e){if(!n.browserMobile||n.browserMobile&&!n.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),r=Math.floor(e[0].contentRect.width);i.containerHeight==t&&i.containerWidth==r||(i.containerHeight=t,i.containerWidth=r,i.tableHeight=n.element.clientHeight,i.tableWidth=n.element.clientWidth,n.redraw()),n.redraw()}}),this.containerObserver.observe(this.table.element.parentNode))):(this.binding=function(){(!n.browserMobile||n.browserMobile&&!n.modules.edit.currentCell)&&n.redraw()},window.addEventListener("resize",this.binding))},ResizeTable.prototype.clearBindings=function(e){this.binding&&window.removeEventListener("resize",this.binding),this.observer&&this.observer.unobserve(this.table.element),this.containerObserver&&this.containerObserver.unobserve(this.table.element.parentNode)},Tabulator.prototype.registerModule("resizeTable",ResizeTable);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var ResponsiveLayout = function ResponsiveLayout(table) {
- this.table = table; //hold Tabulator object
- this.columns = [];
- this.hiddenColumns = [];
- this.mode = "";
- this.index = 0;
- this.collapseFormatter = [];
- this.collapseStartOpen = true;
- this.collapseHandleColumn = false;
-};
-
-//generate resposive columns list
-ResponsiveLayout.prototype.initialize = function () {
- var self = this,
- columns = [];
-
- this.mode = this.table.options.responsiveLayout;
- this.collapseFormatter = this.table.options.responsiveLayoutCollapseFormatter || this.formatCollapsedData;
- this.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen;
- this.hiddenColumns = [];
-
- //detemine level of responsivity for each column
- this.table.columnManager.columnsByIndex.forEach(function (column, i) {
- if (column.modules.responsive) {
- if (column.modules.responsive.order && column.modules.responsive.visible) {
- column.modules.responsive.index = i;
- columns.push(column);
-
- if (!column.visible && self.mode === "collapse") {
- self.hiddenColumns.push(column);
- }
- }
- }
- });
-
- //sort list by responsivity
- columns = columns.reverse();
- columns = columns.sort(function (a, b) {
- var diff = b.modules.responsive.order - a.modules.responsive.order;
- return diff || b.modules.responsive.index - a.modules.responsive.index;
- });
-
- this.columns = columns;
-
- if (this.mode === "collapse") {
- this.generateCollapsedContent();
- }
-
- //assign collapse column
- for (var _iterator = this.table.columnManager.columnsByIndex, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
- var _ref;
-
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref = _i.value;
- }
-
- var col = _ref;
-
- if (col.definition.formatter == "responsiveCollapse") {
- this.collapseHandleColumn = col;
- break;
- }
- }
-
- if (this.collapseHandleColumn) {
- if (this.hiddenColumns.length) {
- this.collapseHandleColumn.show();
- } else {
- this.collapseHandleColumn.hide();
- }
- }
-};
-
-//define layout information
-ResponsiveLayout.prototype.initializeColumn = function (column) {
- var def = column.getDefinition();
-
- column.modules.responsive = { order: typeof def.responsive === "undefined" ? 1 : def.responsive, visible: def.visible === false ? false : true };
-};
-
-ResponsiveLayout.prototype.initializeRow = function (row) {
- var el;
-
- if (row.type !== "calc") {
- el = document.createElement("div");
- el.classList.add("tabulator-responsive-collapse");
-
- row.modules.responsiveLayout = {
- element: el,
- open: this.collapseStartOpen
- };
-
- if (!this.collapseStartOpen) {
- el.style.display = 'none';
- }
- }
-};
-
-ResponsiveLayout.prototype.layoutRow = function (row) {
- var rowEl = row.getElement();
-
- if (row.modules.responsiveLayout) {
- rowEl.appendChild(row.modules.responsiveLayout.element);
- this.generateCollapsedRowContent(row);
- }
-};
-
-//update column visibility
-ResponsiveLayout.prototype.updateColumnVisibility = function (column, visible) {
- var index;
- if (column.modules.responsive) {
- column.modules.responsive.visible = visible;
- this.initialize();
- }
-};
-
-ResponsiveLayout.prototype.hideColumn = function (column) {
- var colCount = this.hiddenColumns.length;
-
- column.hide(false, true);
-
- if (this.mode === "collapse") {
- this.hiddenColumns.unshift(column);
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !colCount) {
- this.collapseHandleColumn.show();
- }
- }
-};
-
-ResponsiveLayout.prototype.showColumn = function (column) {
- var index;
-
- column.show(false, true);
- //set column width to prevent calculation loops on uninitialized columns
- column.setWidth(column.getWidth());
-
- if (this.mode === "collapse") {
- index = this.hiddenColumns.indexOf(column);
-
- if (index > -1) {
- this.hiddenColumns.splice(index, 1);
- }
-
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !this.hiddenColumns.length) {
- this.collapseHandleColumn.hide();
- }
- }
-};
-
-//redraw columns to fit space
-ResponsiveLayout.prototype.update = function () {
- var self = this,
- working = true;
-
- while (working) {
-
- var width = self.table.modules.layout.getMode() == "fitColumns" ? self.table.columnManager.getFlexBaseWidth() : self.table.columnManager.getWidth();
-
- var diff = (self.table.options.headerVisible ? self.table.columnManager.element.clientWidth : self.table.element.clientWidth) - width;
-
- if (diff < 0) {
- //table is too wide
- var column = self.columns[self.index];
-
- if (column) {
- self.hideColumn(column);
- self.index++;
- } else {
- working = false;
- }
- } else {
-
- //table has spare space
- var _column = self.columns[self.index - 1];
-
- if (_column) {
- if (diff > 0) {
- if (diff >= _column.getWidth()) {
- self.showColumn(_column);
- self.index--;
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- }
-
- if (!self.table.rowManager.activeRowsCount) {
- self.table.rowManager.renderEmptyScroll();
- }
- }
-};
-
-ResponsiveLayout.prototype.generateCollapsedContent = function () {
- var self = this,
- rows = this.table.rowManager.getDisplayRows();
-
- rows.forEach(function (row) {
- self.generateCollapsedRowContent(row);
- });
-};
-
-ResponsiveLayout.prototype.generateCollapsedRowContent = function (row) {
- var el, contents;
-
- if (row.modules.responsiveLayout) {
- el = row.modules.responsiveLayout.element;
-
- while (el.firstChild) {
- el.removeChild(el.firstChild);
- }contents = this.collapseFormatter(this.generateCollapsedRowData(row));
- if (contents) {
- el.appendChild(contents);
- }
- }
-};
-
-ResponsiveLayout.prototype.generateCollapsedRowData = function (row) {
- var self = this,
- data = row.getData(),
- output = [],
- mockCellComponent;
-
- this.hiddenColumns.forEach(function (column) {
- var value = column.getFieldValue(data);
-
- if (column.definition.title && column.field) {
- if (column.modules.format && self.table.options.responsiveLayoutCollapseUseFormatters) {
-
- mockCellComponent = {
- value: false,
- data: {},
- getValue: function getValue() {
- return value;
- },
- getData: function getData() {
- return data;
- },
- getElement: function getElement() {
- return document.createElement("div");
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getColumn: function getColumn() {
- return column.getComponent();
- }
- };
-
- output.push({
- title: column.definition.title,
- value: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params)
- });
- } else {
- output.push({
- title: column.definition.title,
- value: value
- });
- }
- }
- });
-
- return output;
-};
-
-ResponsiveLayout.prototype.formatCollapsedData = function (data) {
- var list = document.createElement("table"),
- listContents = "";
-
- data.forEach(function (item) {
- var div = document.createElement("div");
-
- if (item.value instanceof Node) {
- div.appendChild(item.value);
- item.value = div.innerHTML;
- }
-
- listContents += "<tr><td><strong>" + item.title + "</strong></td><td>" + item.value + "</td></tr>";
- });
-
- list.innerHTML = listContents;
-
- return Object.keys(data).length ? list : "";
-};
-
-Tabulator.prototype.registerModule("responsiveLayout", ResponsiveLayout);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var ResponsiveLayout=function(e){this.table=e,this.columns=[],this.hiddenColumns=[],this.mode="",this.index=0,this.collapseFormatter=[],this.collapseStartOpen=!0,this.collapseHandleColumn=!1};ResponsiveLayout.prototype.initialize=function(){var e=this,t=[];this.mode=this.table.options.responsiveLayout,this.collapseFormatter=this.table.options.responsiveLayoutCollapseFormatter||this.formatCollapsedData,this.collapseStartOpen=this.table.options.responsiveLayoutCollapseStartOpen,this.hiddenColumns=[],this.table.columnManager.columnsByIndex.forEach(function(o,n){o.modules.responsive&&o.modules.responsive.order&&o.modules.responsive.visible&&(o.modules.responsive.index=n,t.push(o),o.visible||"collapse"!==e.mode||e.hiddenColumns.push(o))}),t=t.reverse(),t=t.sort(function(e,t){return t.modules.responsive.order-e.modules.responsive.order||t.modules.responsive.index-e.modules.responsive.index}),this.columns=t,"collapse"===this.mode&&this.generateCollapsedContent();for(var o=this.table.columnManager.columnsByIndex,n=Array.isArray(o),s=0,o=n?o:o[Symbol.iterator]();;){var i;if(n){if(s>=o.length)break;i=o[s++]}else{if(s=o.next(),s.done)break;i=s.value}var l=i;if("responsiveCollapse"==l.definition.formatter){this.collapseHandleColumn=l;break}}this.collapseHandleColumn&&(this.hiddenColumns.length?this.collapseHandleColumn.show():this.collapseHandleColumn.hide())},ResponsiveLayout.prototype.initializeColumn=function(e){var t=e.getDefinition();e.modules.responsive={order:void 0===t.responsive?1:t.responsive,visible:!1!==t.visible}},ResponsiveLayout.prototype.initializeRow=function(e){var t;"calc"!==e.type&&(t=document.createElement("div"),t.classList.add("tabulator-responsive-collapse"),e.modules.responsiveLayout={element:t,open:this.collapseStartOpen},this.collapseStartOpen||(t.style.display="none"))},ResponsiveLayout.prototype.layoutRow=function(e){var t=e.getElement();e.modules.responsiveLayout&&(t.appendChild(e.modules.responsiveLayout.element),this.generateCollapsedRowContent(e))},ResponsiveLayout.prototype.updateColumnVisibility=function(e,t){e.modules.responsive&&(e.modules.responsive.visible=t,this.initialize())},ResponsiveLayout.prototype.hideColumn=function(e){var t=this.hiddenColumns.length;e.hide(!1,!0),"collapse"===this.mode&&(this.hiddenColumns.unshift(e),this.generateCollapsedContent(),this.collapseHandleColumn&&!t&&this.collapseHandleColumn.show())},ResponsiveLayout.prototype.showColumn=function(e){var t;e.show(!1,!0),e.setWidth(e.getWidth()),"collapse"===this.mode&&(t=this.hiddenColumns.indexOf(e),t>-1&&this.hiddenColumns.splice(t,1),this.generateCollapsedContent(),this.collapseHandleColumn&&!this.hiddenColumns.length&&this.collapseHandleColumn.hide())},ResponsiveLayout.prototype.update=function(){for(var e=this,t=!0;t;){var o="fitColumns"==e.table.modules.layout.getMode()?e.table.columnManager.getFlexBaseWidth():e.table.columnManager.getWidth(),n=(e.table.options.headerVisible?e.table.columnManager.element.clientWidth:e.table.element.clientWidth)-o;if(n<0){var s=e.columns[e.index];s?(e.hideColumn(s),e.index++):t=!1}else{var i=e.columns[e.index-1];i&&n>0&&n>=i.getWidth()?(e.showColumn(i),e.index--):t=!1}e.table.rowManager.activeRowsCount||e.table.rowManager.renderEmptyScroll()}},ResponsiveLayout.prototype.generateCollapsedContent=function(){var e=this;this.table.rowManager.getDisplayRows().forEach(function(t){e.generateCollapsedRowContent(t)})},ResponsiveLayout.prototype.generateCollapsedRowContent=function(e){var t,o;if(e.modules.responsiveLayout){for(t=e.modules.responsiveLayout.element;t.firstChild;)t.removeChild(t.firstChild);o=this.collapseFormatter(this.generateCollapsedRowData(e)),o&&t.appendChild(o)}},ResponsiveLayout.prototype.generateCollapsedRowData=function(e){var t,o=this,n=e.getData(),s=[];return this.hiddenColumns.forEach(function(i){var l=i.getFieldValue(n);i.definition.title&&i.field&&(i.modules.format&&o.table.options.responsiveLayoutCollapseUseFormatters?(t={value:!1,data:{},getValue:function(){return l},getData:function(){return n},getElement:function(){return document.createElement("div")},getRow:function(){return e.getComponent()},getColumn:function(){return i.getComponent()}},s.push({title:i.definition.title,value:i.modules.format.formatter.call(o.table.modules.format,t,i.modules.format.params)})):s.push({title:i.definition.title,value:l}))}),s},ResponsiveLayout.prototype.formatCollapsedData=function(e){var t=document.createElement("table"),o="";return e.forEach(function(e){var t=document.createElement("div");e.value instanceof Node&&(t.appendChild(e.value),e.value=t.innerHTML),o+="<tr><td><strong>"+e.title+"</strong></td><td>"+e.value+"</td></tr>"}),t.innerHTML=o,Object.keys(e).length?t:""},Tabulator.prototype.registerModule("responsiveLayout",ResponsiveLayout);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var SelectRow = function SelectRow(table) {
- this.table = table; //hold Tabulator object
- this.selecting = false; //flag selecting in progress
- this.lastClickedRow = false; //last clicked row
- this.selectPrev = []; //hold previously selected element for drag drop selection
- this.selectedRows = []; //hold selected rows
- this.headerCheckboxElement = null; // hold header select element
-};
-
-SelectRow.prototype.clearSelectionData = function (silent) {
- this.selecting = false;
- this.lastClickedRow = false;
- this.selectPrev = [];
- this.selectedRows = [];
-
- if (!silent) {
- this._rowSelectionChanged();
- }
-};
-
-SelectRow.prototype.initializeRow = function (row) {
- var self = this,
- element = row.getElement();
-
- // trigger end of row selection
- var endSelect = function endSelect() {
-
- setTimeout(function () {
- self.selecting = false;
- }, 50);
-
- document.body.removeEventListener("mouseup", endSelect);
- };
-
- row.modules.select = { selected: false };
-
- //set row selection class
- if (self.table.options.selectableCheck.call(this.table, row.getComponent())) {
- element.classList.add("tabulator-selectable");
- element.classList.remove("tabulator-unselectable");
-
- if (self.table.options.selectable && self.table.options.selectable != "highlight") {
- if (self.table.options.selectableRangeMode === "click") {
- element.addEventListener("click", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
- self.lastClickedRow = self.lastClickedRow || row;
-
- var lastClickedRowIdx = self.table.rowManager.getDisplayRowIndex(self.lastClickedRow);
- var rowIdx = self.table.rowManager.getDisplayRowIndex(row);
-
- var fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx;
- var toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx;
-
- var rows = self.table.rowManager.getDisplayRows().slice(0);
- var toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1);
-
- if (e.ctrlKey || e.metaKey) {
- toggledRows.forEach(function (toggledRow) {
- if (toggledRow !== self.lastClickedRow) {
-
- if (self.table.options.selectable !== true && !self.isRowSelected(row)) {
- if (self.selectedRows.length < self.table.options.selectable) {
- self.toggleRow(toggledRow);
- }
- } else {
- self.toggleRow(toggledRow);
- }
- }
- });
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
-
- if (self.table.options.selectable !== true) {
- if (toggledRows.length > self.table.options.selectable) {
- toggledRows = toggledRows.slice(0, self.table.options.selectable);
- }
- }
-
- self.selectRows(toggledRows);
- }
- self.table._clearSelection();
- } else if (e.ctrlKey || e.metaKey) {
- self.toggleRow(row);
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
- self.selectRows(row);
- self.lastClickedRow = row;
- }
- });
- } else {
- element.addEventListener("click", function (e) {
- if (!self.table.modExists("edit") || !self.table.modules.edit.getCurrentCell()) {
- self.table._clearSelection();
- }
-
- if (!self.selecting) {
- self.toggleRow(row);
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
-
- self.selecting = true;
-
- self.selectPrev = [];
-
- document.body.addEventListener("mouseup", endSelect);
- document.body.addEventListener("keyup", endSelect);
-
- self.toggleRow(row);
-
- return false;
- }
- });
-
- element.addEventListener("mouseenter", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.toggleRow(row);
-
- if (self.selectPrev[1] == row) {
- self.toggleRow(self.selectPrev[0]);
- }
- }
- });
-
- element.addEventListener("mouseout", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.selectPrev.unshift(row);
- }
- });
- }
- }
- } else {
- element.classList.add("tabulator-unselectable");
- element.classList.remove("tabulator-selectable");
- }
-};
-
-//toggle row selection
-SelectRow.prototype.toggleRow = function (row) {
- if (this.table.options.selectableCheck.call(this.table, row.getComponent())) {
- if (row.modules.select && row.modules.select.selected) {
- this._deselectRow(row);
- } else {
- this._selectRow(row);
- }
- }
-};
-
-//select a number of rows
-SelectRow.prototype.selectRows = function (rows) {
- var _this = this;
-
- var rowMatch;
-
- switch (typeof rows === "undefined" ? "undefined" : _typeof(rows)) {
- case "undefined":
- this.table.rowManager.rows.forEach(function (row) {
- _this._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- break;
-
- case "string":
-
- rowMatch = this.table.rowManager.findRow(rows);
-
- if (rowMatch) {
- this._selectRow(rowMatch, true, true);
- } else {
- this.table.rowManager.getRows(rows).forEach(function (row) {
- _this._selectRow(row, true, true);
- });
- }
-
- this._rowSelectionChanged();
- break;
-
- default:
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- _this._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- } else {
- this._selectRow(rows, false, true);
- }
- break;
- }
-};
-
-//select an individual row
-SelectRow.prototype._selectRow = function (rowInfo, silent, force) {
- var index;
-
- //handle max row count
- if (!isNaN(this.table.options.selectable) && this.table.options.selectable !== true && !force) {
- if (this.selectedRows.length >= this.table.options.selectable) {
- if (this.table.options.selectableRollingSelection) {
- this._deselectRow(this.selectedRows[0]);
- } else {
- return false;
- }
- }
- }
-
- var row = this.table.rowManager.findRow(rowInfo);
-
- if (row) {
- if (this.selectedRows.indexOf(row) == -1) {
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = true;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = true;
- }
- row.getElement().classList.add("tabulator-selected");
-
- this.selectedRows.push(row);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, true);
- }
-
- if (!silent) {
- this.table.options.rowSelected.call(this.table, row.getComponent());
- }
-
- this._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Selection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
-};
-
-SelectRow.prototype.isRowSelected = function (row) {
- return this.selectedRows.indexOf(row) !== -1;
-};
-
-//deselect a number of rows
-SelectRow.prototype.deselectRows = function (rows, silent) {
- var self = this,
- rowCount;
-
- if (typeof rows == "undefined") {
-
- rowCount = self.selectedRows.length;
-
- for (var i = 0; i < rowCount; i++) {
- self._deselectRow(self.selectedRows[0], true);
- }
-
- self._rowSelectionChanged(silent);
- } else {
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- self._deselectRow(row, true);
- });
-
- self._rowSelectionChanged(silent);
- } else {
- self._deselectRow(rows, silent);
- }
- }
-};
-
-//deselect an individual row
-SelectRow.prototype._deselectRow = function (rowInfo, silent) {
- var self = this,
- row = self.table.rowManager.findRow(rowInfo),
- index;
-
- if (row) {
- index = self.selectedRows.findIndex(function (selectedRow) {
- return selectedRow == row;
- });
-
- if (index > -1) {
-
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = false;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = false;
- }
- row.getElement().classList.remove("tabulator-selected");
- self.selectedRows.splice(index, 1);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, false);
- }
-
- if (!silent) {
- self.table.options.rowDeselected.call(this.table, row.getComponent());
- }
-
- self._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Deselection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
-};
-
-SelectRow.prototype.getSelectedData = function () {
- var data = [];
-
- this.selectedRows.forEach(function (row) {
- data.push(row.getData());
- });
-
- return data;
-};
-
-SelectRow.prototype.getSelectedRows = function () {
-
- var rows = [];
-
- this.selectedRows.forEach(function (row) {
- rows.push(row.getComponent());
- });
-
- return rows;
-};
-
-SelectRow.prototype._rowSelectionChanged = function (silent) {
- if (this.headerCheckboxElement) {
- if (this.selectedRows.length === 0) {
- this.headerCheckboxElement.checked = false;
- this.headerCheckboxElement.indeterminate = false;
- } else if (this.table.rowManager.rows.length === this.selectedRows.length) {
- this.headerCheckboxElement.checked = true;
- this.headerCheckboxElement.indeterminate = false;
- } else {
- this.headerCheckboxElement.indeterminate = true;
- this.headerCheckboxElement.checked = false;
- }
- }
-
- if (!silent) {
- this.table.options.rowSelectionChanged.call(this.table, this.getSelectedData(), this.getSelectedRows());
- }
-};
-
-SelectRow.prototype.registerRowSelectCheckbox = function (row, element) {
- if (!row._row.modules.select) {
- row._row.modules.select = {};
- }
-
- row._row.modules.select.checkboxEl = element;
-};
-
-SelectRow.prototype.registerHeaderSelectCheckbox = function (element) {
- this.headerCheckboxElement = element;
-};
-
-SelectRow.prototype.childRowSelection = function (row, select) {
- var children = this.table.modules.dataTree.getChildren(row);
-
- if (select) {
- for (var _iterator = children, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
- var _ref;
-
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref = _i.value;
- }
-
- var child = _ref;
-
- this._selectRow(child, true);
- }
- } else {
- for (var _iterator2 = children, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
- var _ref2;
-
- if (_isArray2) {
- if (_i2 >= _iterator2.length) break;
- _ref2 = _iterator2[_i2++];
- } else {
- _i2 = _iterator2.next();
- if (_i2.done) break;
- _ref2 = _i2.value;
- }
-
- var _child = _ref2;
-
- this._deselectRow(_child, true);
- }
- }
-};
-
-Tabulator.prototype.registerModule("selectRow", SelectRow);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},SelectRow=function(e){this.table=e,this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],this.headerCheckboxElement=null};SelectRow.prototype.clearSelectionData=function(e){this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],e||this._rowSelectionChanged()},SelectRow.prototype.initializeRow=function(e){var t=this,o=e.getElement(),l=function e(){setTimeout(function(){t.selecting=!1},50),document.body.removeEventListener("mouseup",e)};e.modules.select={selected:!1},t.table.options.selectableCheck.call(this.table,e.getComponent())?(o.classList.add("tabulator-selectable"),o.classList.remove("tabulator-unselectable"),t.table.options.selectable&&"highlight"!=t.table.options.selectable&&("click"===t.table.options.selectableRangeMode?o.addEventListener("click",function(o){if(o.shiftKey){t.table._clearSelection(),t.lastClickedRow=t.lastClickedRow||e;var l=t.table.rowManager.getDisplayRowIndex(t.lastClickedRow),s=t.table.rowManager.getDisplayRowIndex(e),c=l<=s?l:s,i=l>=s?l:s,n=t.table.rowManager.getDisplayRows().slice(0),a=n.splice(c,i-c+1);o.ctrlKey||o.metaKey?(a.forEach(function(o){o!==t.lastClickedRow&&(!0===t.table.options.selectable||t.isRowSelected(e)?t.toggleRow(o):t.selectedRows.length<t.table.options.selectable&&t.toggleRow(o))}),t.lastClickedRow=e):(t.deselectRows(void 0,!0),!0!==t.table.options.selectable&&a.length>t.table.options.selectable&&(a=a.slice(0,t.table.options.selectable)),t.selectRows(a)),t.table._clearSelection()}else o.ctrlKey||o.metaKey?(t.toggleRow(e),t.lastClickedRow=e):(t.deselectRows(void 0,!0),t.selectRows(e),t.lastClickedRow=e)}):(o.addEventListener("click",function(o){t.table.modExists("edit")&&t.table.modules.edit.getCurrentCell()||t.table._clearSelection(),t.selecting||t.toggleRow(e)}),o.addEventListener("mousedown",function(o){if(o.shiftKey)return t.table._clearSelection(),t.selecting=!0,t.selectPrev=[],document.body.addEventListener("mouseup",l),document.body.addEventListener("keyup",l),t.toggleRow(e),!1}),o.addEventListener("mouseenter",function(o){t.selecting&&(t.table._clearSelection(),t.toggleRow(e),t.selectPrev[1]==e&&t.toggleRow(t.selectPrev[0]))}),o.addEventListener("mouseout",function(o){t.selecting&&(t.table._clearSelection(),t.selectPrev.unshift(e))})))):(o.classList.add("tabulator-unselectable"),o.classList.remove("tabulator-selectable"))},SelectRow.prototype.toggleRow=function(e){this.table.options.selectableCheck.call(this.table,e.getComponent())&&(e.modules.select&&e.modules.select.selected?this._deselectRow(e):this._selectRow(e))},SelectRow.prototype.selectRows=function(e){var t,o=this;switch(void 0===e?"undefined":_typeof(e)){case"undefined":this.table.rowManager.rows.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;case"string":t=this.table.rowManager.findRow(e),t?this._selectRow(t,!0,!0):this.table.rowManager.getRows(e).forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;default:Array.isArray(e)?(e.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged()):this._selectRow(e,!1,!0)}},SelectRow.prototype._selectRow=function(e,t,o){if(!isNaN(this.table.options.selectable)&&!0!==this.table.options.selectable&&!o&&this.selectedRows.length>=this.table.options.selectable){if(!this.table.options.selectableRollingSelection)return!1;this._deselectRow(this.selectedRows[0])}var l=this.table.rowManager.findRow(e);l?-1==this.selectedRows.indexOf(l)&&(l.modules.select||(l.modules.select={}),l.modules.select.selected=!0,l.modules.select.checkboxEl&&(l.modules.select.checkboxEl.checked=!0),l.getElement().classList.add("tabulator-selected"),this.selectedRows.push(l),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(l,!0),t||this.table.options.rowSelected.call(this.table,l.getComponent()),this._rowSelectionChanged(t)):t||console.warn("Selection Error - No such row found, ignoring selection:"+e)},SelectRow.prototype.isRowSelected=function(e){return-1!==this.selectedRows.indexOf(e)},SelectRow.prototype.deselectRows=function(e,t){var o,l=this;if(void 0===e){o=l.selectedRows.length;for(var s=0;s<o;s++)l._deselectRow(l.selectedRows[0],!0);l._rowSelectionChanged(t)}else Array.isArray(e)?(e.forEach(function(e){l._deselectRow(e,!0)}),l._rowSelectionChanged(t)):l._deselectRow(e,t)},SelectRow.prototype._deselectRow=function(e,t){var o,l=this,s=l.table.rowManager.findRow(e);s?(o=l.selectedRows.findIndex(function(e){return e==s}))>-1&&(s.modules.select||(s.modules.select={}),s.modules.select.selected=!1,s.modules.select.checkboxEl&&(s.modules.select.checkboxEl.checked=!1),s.getElement().classList.remove("tabulator-selected"),l.selectedRows.splice(o,1),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(s,!1),t||l.table.options.rowDeselected.call(this.table,s.getComponent()),l._rowSelectionChanged(t)):t||console.warn("Deselection Error - No such row found, ignoring selection:"+e)},SelectRow.prototype.getSelectedData=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getData())}),e},SelectRow.prototype.getSelectedRows=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getComponent())}),e},SelectRow.prototype._rowSelectionChanged=function(e){this.headerCheckboxElement&&(0===this.selectedRows.length?(this.headerCheckboxElement.checked=!1,this.headerCheckboxElement.indeterminate=!1):this.table.rowManager.rows.length===this.selectedRows.length?(this.headerCheckboxElement.checked=!0,this.headerCheckboxElement.indeterminate=!1):(this.headerCheckboxElement.indeterminate=!0,this.headerCheckboxElement.checked=!1)),e||this.table.options.rowSelectionChanged.call(this.table,this.getSelectedData(),this.getSelectedRows())},SelectRow.prototype.registerRowSelectCheckbox=function(e,t){e._row.modules.select||(e._row.modules.select={}),e._row.modules.select.checkboxEl=t},SelectRow.prototype.registerHeaderSelectCheckbox=function(e){this.headerCheckboxElement=e},SelectRow.prototype.childRowSelection=function(e,t){var o=this.table.modules.dataTree.getChildren(e);if(t)for(var l=o,s=Array.isArray(l),c=0,l=s?l:l[Symbol.iterator]();;){var i;if(s){if(c>=l.length)break;i=l[c++]}else{if(c=l.next(),c.done)break;i=c.value}var n=i;this._selectRow(n,!0)}else for(var a=o,r=Array.isArray(a),d=0,a=r?a:a[Symbol.iterator]();;){var h;if(r){if(d>=a.length)break;h=a[d++]}else{if(d=a.next(),d.done)break;h=d.value}var w=h;this._deselectRow(w,!0)}},Tabulator.prototype.registerModule("selectRow",SelectRow);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Sort = function Sort(table) {
- this.table = table; //hold Tabulator object
- this.sortList = []; //holder current sort
- this.changed = false; //has the sort changed since last render
-};
-
-//initialize column header for sorting
-Sort.prototype.initializeColumn = function (column, content) {
- var self = this,
- sorter = false,
- colEl,
- arrowEl;
-
- switch (_typeof(column.definition.sorter)) {
- case "string":
- if (self.sorters[column.definition.sorter]) {
- sorter = self.sorters[column.definition.sorter];
- } else {
- console.warn("Sort Error - No such sorter found: ", column.definition.sorter);
- }
- break;
-
- case "function":
- sorter = column.definition.sorter;
- break;
- }
-
- column.modules.sort = {
- sorter: sorter, dir: "none",
- params: column.definition.sorterParams || {},
- startingDir: column.definition.headerSortStartingDir || "asc",
- tristate: typeof column.definition.headerSortTristate !== "undefined" ? column.definition.headerSortTristate : this.table.options.headerSortTristate
- };
-
- if (typeof column.definition.headerSort === "undefined" ? this.table.options.headerSort !== false : column.definition.headerSort !== false) {
-
- colEl = column.getElement();
-
- colEl.classList.add("tabulator-sortable");
-
- arrowEl = document.createElement("div");
- arrowEl.classList.add("tabulator-arrow");
- //create sorter arrow
- content.appendChild(arrowEl);
-
- //sort on click
- colEl.addEventListener("click", function (e) {
- var dir = "",
- sorters = [],
- match = false;
-
- if (column.modules.sort) {
- if (column.modules.sort.tristate) {
- if (column.modules.sort.dir == "none") {
- dir = column.modules.sort.startingDir;
- } else {
- if (column.modules.sort.dir == column.modules.sort.startingDir) {
- dir = column.modules.sort.dir == "asc" ? "desc" : "asc";
- } else {
- dir = "none";
- }
- }
- } else {
- switch (column.modules.sort.dir) {
- case "asc":
- dir = "desc";
- break;
-
- case "desc":
- dir = "asc";
- break;
-
- default:
- dir = column.modules.sort.startingDir;
- }
- }
-
- if (self.table.options.columnHeaderSortMulti && (e.shiftKey || e.ctrlKey)) {
- sorters = self.getSort();
-
- match = sorters.findIndex(function (sorter) {
- return sorter.field === column.getField();
- });
-
- if (match > -1) {
- sorters[match].dir = dir;
-
- if (match != sorters.length - 1) {
- match = sorters.splice(match, 1)[0];
- if (dir != "none") {
- sorters.push(match);
- }
- }
- } else {
- if (dir != "none") {
- sorters.push({ column: column, dir: dir });
- }
- }
-
- //add to existing sort
- self.setSort(sorters);
- } else {
- if (dir == "none") {
- self.clear();
- } else {
- //sort by column only
- self.setSort(column, dir);
- }
- }
-
- self.table.rowManager.sorterRefresh(!self.sortList.length);
- }
- });
- }
-};
-
-//check if the sorters have changed since last use
-Sort.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
-};
-
-//return current sorters
-Sort.prototype.getSort = function () {
- var self = this,
- sorters = [];
-
- self.sortList.forEach(function (item) {
- if (item.column) {
- sorters.push({ column: item.column.getComponent(), field: item.column.getField(), dir: item.dir });
- }
- });
-
- return sorters;
-};
-
-//change sort list and trigger sort
-Sort.prototype.setSort = function (sortList, dir) {
- var self = this,
- newSortList = [];
-
- if (!Array.isArray(sortList)) {
- sortList = [{ column: sortList, dir: dir }];
- }
-
- sortList.forEach(function (item) {
- var column;
-
- column = self.table.columnManager.findColumn(item.column);
-
- if (column) {
- item.column = column;
- newSortList.push(item);
- self.changed = true;
- } else {
- console.warn("Sort Warning - Sort field does not exist and is being ignored: ", item.column);
- }
- });
-
- self.sortList = newSortList;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.sort) {
- this.table.modules.persistence.save("sort");
- }
-};
-
-//clear sorters
-Sort.prototype.clear = function () {
- this.setSort([]);
-};
-
-//find appropriate sorter for column
-Sort.prototype.findSorter = function (column) {
- var row = this.table.rowManager.activeRows[0],
- sorter = "string",
- field,
- value;
-
- if (row) {
- row = row.getData();
- field = column.getField();
-
- if (field) {
-
- value = column.getFieldValue(row);
-
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "undefined":
- sorter = "string";
- break;
-
- case "boolean":
- sorter = "boolean";
- break;
-
- default:
- if (!isNaN(value) && value !== "") {
- sorter = "number";
- } else {
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
- sorter = "alphanum";
- }
- }
- break;
- }
- }
- }
-
- return this.sorters[sorter];
-};
-
-//work through sort list sorting data
-Sort.prototype.sort = function (data) {
- var self = this,
- sortList = this.table.options.sortOrderReverse ? self.sortList.slice().reverse() : self.sortList,
- sortListActual = [],
- lastSort;
-
- if (self.table.options.dataSorting) {
- self.table.options.dataSorting.call(self.table, self.getSort());
- }
-
- self.clearColumnHeaders();
-
- if (!self.table.options.ajaxSorting) {
-
- //build list of valid sorters and trigger column specific callbacks before sort begins
- sortList.forEach(function (item, i) {
- var sortObj = item.column.modules.sort;
-
- if (item.column && sortObj) {
-
- //if no sorter has been defined, take a guess
- if (!sortObj.sorter) {
- sortObj.sorter = self.findSorter(item.column);
- }
-
- item.params = typeof sortObj.params === "function" ? sortObj.params(item.column.getComponent(), item.dir) : sortObj.params;
-
- sortListActual.push(item);
- }
-
- self.setColumnHeader(item.column, item.dir);
- });
-
- //sort data
- if (sortListActual.length) {
- self._sortItems(data, sortListActual);
- }
- } else {
- sortList.forEach(function (item, i) {
- self.setColumnHeader(item.column, item.dir);
- });
- }
-
- if (self.table.options.dataSorted) {
- self.table.options.dataSorted.call(self.table, self.getSort(), self.table.rowManager.getComponents("active"));
- }
-};
-
-//clear sort arrows on columns
-Sort.prototype.clearColumnHeaders = function () {
- this.table.columnManager.getRealColumns().forEach(function (column) {
- if (column.modules.sort) {
- column.modules.sort.dir = "none";
- column.getElement().setAttribute("aria-sort", "none");
- }
- });
-};
-
-//set the column header sort direction
-Sort.prototype.setColumnHeader = function (column, dir) {
- column.modules.sort.dir = dir;
- column.getElement().setAttribute("aria-sort", dir);
-};
-
-//sort each item in sort list
-Sort.prototype._sortItems = function (data, sortList) {
- var _this = this;
-
- var sorterCount = sortList.length - 1;
-
- data.sort(function (a, b) {
- var result;
-
- for (var i = sorterCount; i >= 0; i--) {
- var sortItem = sortList[i];
-
- result = _this._sortRow(a, b, sortItem.column, sortItem.dir, sortItem.params);
-
- if (result !== 0) {
- break;
- }
- }
-
- return result;
- });
-};
-
-//process individual rows for a sort function on active data
-Sort.prototype._sortRow = function (a, b, column, dir, params) {
- var el1Comp, el2Comp, colComp;
-
- //switch elements depending on search direction
- var el1 = dir == "asc" ? a : b;
- var el2 = dir == "asc" ? b : a;
-
- a = column.getFieldValue(el1.getData());
- b = column.getFieldValue(el2.getData());
-
- a = typeof a !== "undefined" ? a : "";
- b = typeof b !== "undefined" ? b : "";
-
- el1Comp = el1.getComponent();
- el2Comp = el2.getComponent();
-
- return column.modules.sort.sorter.call(this, a, b, el1Comp, el2Comp, column.getComponent(), dir, params);
-};
-
-//default data sorters
-Sort.prototype.sorters = {
-
- //sort numbers
- number: function number(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var decimal = params.decimalSeparator || ".";
- var thousand = params.thousandSeparator || ",";
- var emptyAlign = 0;
-
- a = parseFloat(String(a).split(thousand).join("").split(decimal).join("."));
- b = parseFloat(String(b).split(thousand).join("").split(decimal).join("."));
-
- //handle non numeric values
- if (isNaN(a)) {
- emptyAlign = isNaN(b) ? 0 : -1;
- } else if (isNaN(b)) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort strings
- string: function string(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
- var locale;
-
- //handle empty values
- if (!a) {
- emptyAlign = !b ? 0 : -1;
- } else if (!b) {
- emptyAlign = 1;
- } else {
- //compare valid values
- switch (_typeof(params.locale)) {
- case "boolean":
- if (params.locale) {
- locale = this.table.modules.localize.getLocale();
- }
- break;
- case "string":
- locale = params.locale;
- break;
- }
-
- return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort date
- date: function date(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "DD/MM/YYYY";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort hh:mm formatted times
- time: function time(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "hh:mm";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort datetime
- datetime: function datetime(a, b, aRow, bRow, column, dir, params) {
- var format = params.format || "DD/MM/YYYY hh:mm:ss",
- alignEmptyValues = params.alignEmptyValues,
- emptyAlign = 0;
-
- if (typeof moment != "undefined") {
- a = moment(a, format);
- b = moment(b, format);
-
- if (!a.isValid()) {
- emptyAlign = !b.isValid() ? 0 : -1;
- } else if (!b.isValid()) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- } else {
- console.error("Sort Error - 'datetime' sorter is dependant on moment.js");
- }
- },
-
- //sort booleans
- boolean: function boolean(a, b, aRow, bRow, column, dir, params) {
- var el1 = a === true || a === "true" || a === "True" || a === 1 ? 1 : 0;
- var el2 = b === true || b === "true" || b === "True" || b === 1 ? 1 : 0;
-
- return el1 - el2;
- },
-
- //sort if element contains any data
- array: function array(a, b, aRow, bRow, column, dir, params) {
- var el1 = 0;
- var el2 = 0;
- var type = params.type || "length";
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- function calc(value) {
-
- switch (type) {
- case "length":
- return value.length;
- break;
-
- case "sum":
- return value.reduce(function (c, d) {
- return c + d;
- });
- break;
-
- case "max":
- return Math.max.apply(null, value);
- break;
-
- case "min":
- return Math.min.apply(null, value);
- break;
-
- case "avg":
- return value.reduce(function (c, d) {
- return c + d;
- }) / value.length;
- break;
- }
- }
-
- //handle non array values
- if (!Array.isArray(a)) {
- alignEmptyValues = !Array.isArray(b) ? 0 : -1;
- } else if (!Array.isArray(b)) {
- alignEmptyValues = 1;
- } else {
-
- //compare valid values
- el1 = a ? calc(a) : 0;
- el2 = b ? calc(b) : 0;
-
- return el1 - el2;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort if element contains any data
- exists: function exists(a, b, aRow, bRow, column, dir, params) {
- var el1 = typeof a == "undefined" ? 0 : 1;
- var el2 = typeof b == "undefined" ? 0 : 1;
-
- return el1 - el2;
- },
-
- //sort alpha numeric strings
- alphanum: function alphanum(as, bs, aRow, bRow, column, dir, params) {
- var a,
- b,
- a1,
- b1,
- i = 0,
- L,
- rx = /(\d+)|(\D+)/g,
- rd = /\d/;
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- //handle empty values
- if (!as && as !== 0) {
- emptyAlign = !bs && bs !== 0 ? 0 : -1;
- } else if (!bs && bs !== 0) {
- emptyAlign = 1;
- } else {
-
- if (isFinite(as) && isFinite(bs)) return as - bs;
- a = String(as).toLowerCase();
- b = String(bs).toLowerCase();
- if (a === b) return 0;
- if (!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;
- a = a.match(rx);
- b = b.match(rx);
- L = a.length > b.length ? b.length : a.length;
- while (i < L) {
- a1 = a[i];
- b1 = b[i++];
- if (a1 !== b1) {
- if (isFinite(a1) && isFinite(b1)) {
- if (a1.charAt(0) === "0") a1 = "." + a1;
- if (b1.charAt(0) === "0") b1 = "." + b1;
- return a1 - b1;
- } else return a1 > b1 ? 1 : -1;
- }
- }
-
- return a.length > b.length;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- }
-};
-
-Tabulator.prototype.registerModule("sort", Sort);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sort=function(t){this.table=t,this.sortList=[],this.changed=!1};Sort.prototype.initializeColumn=function(t,e){var r,o,n=this,i=!1;switch(_typeof(t.definition.sorter)){case"string":n.sorters[t.definition.sorter]?i=n.sorters[t.definition.sorter]:console.warn("Sort Error - No such sorter found: ",t.definition.sorter);break;case"function":i=t.definition.sorter}t.modules.sort={sorter:i,dir:"none",params:t.definition.sorterParams||{},startingDir:t.definition.headerSortStartingDir||"asc",tristate:void 0!==t.definition.headerSortTristate?t.definition.headerSortTristate:this.table.options.headerSortTristate},(void 0===t.definition.headerSort?!1!==this.table.options.headerSort:!1!==t.definition.headerSort)&&(r=t.getElement(),r.classList.add("tabulator-sortable"),o=document.createElement("div"),o.classList.add("tabulator-arrow"),e.appendChild(o),r.addEventListener("click",function(e){var r="",o=[],i=!1;if(t.modules.sort){if(t.modules.sort.tristate)r="none"==t.modules.sort.dir?t.modules.sort.startingDir:t.modules.sort.dir==t.modules.sort.startingDir?"asc"==t.modules.sort.dir?"desc":"asc":"none";else switch(t.modules.sort.dir){case"asc":r="desc";break;case"desc":r="asc";break;default:r=t.modules.sort.startingDir}n.table.options.columnHeaderSortMulti&&(e.shiftKey||e.ctrlKey)?(o=n.getSort(),i=o.findIndex(function(e){return e.field===t.getField()}),i>-1?(o[i].dir=r,i!=o.length-1&&(i=o.splice(i,1)[0],"none"!=r&&o.push(i))):"none"!=r&&o.push({column:t,dir:r}),n.setSort(o)):"none"==r?n.clear():n.setSort(t,r),n.table.rowManager.sorterRefresh(!n.sortList.length)}}))},Sort.prototype.hasChanged=function(){var t=this.changed;return this.changed=!1,t},Sort.prototype.getSort=function(){var t=this,e=[];return t.sortList.forEach(function(t){t.column&&e.push({column:t.column.getComponent(),field:t.column.getField(),dir:t.dir})}),e},Sort.prototype.setSort=function(t,e){var r=this,o=[];Array.isArray(t)||(t=[{column:t,dir:e}]),t.forEach(function(t){var e;e=r.table.columnManager.findColumn(t.column),e?(t.column=e,o.push(t),r.changed=!0):console.warn("Sort Warning - Sort field does not exist and is being ignored: ",t.column)}),r.sortList=o,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.sort&&this.table.modules.persistence.save("sort")},Sort.prototype.clear=function(){this.setSort([])},Sort.prototype.findSorter=function(t){var e,r=this.table.rowManager.activeRows[0],o="string";if(r&&(r=r.getData(),t.getField()))switch(e=t.getFieldValue(r),void 0===e?"undefined":_typeof(e)){case"undefined":o="string";break;case"boolean":o="boolean";break;default:isNaN(e)||""===e?e.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)&&(o="alphanum"):o="number"}return this.sorters[o]},Sort.prototype.sort=function(t){var e=this,r=this.table.options.sortOrderReverse?e.sortList.slice().reverse():e.sortList,o=[];e.table.options.dataSorting&&e.table.options.dataSorting.call(e.table,e.getSort()),e.clearColumnHeaders(),e.table.options.ajaxSorting?r.forEach(function(t,r){e.setColumnHeader(t.column,t.dir)}):(r.forEach(function(t,r){var n=t.column.modules.sort;t.column&&n&&(n.sorter||(n.sorter=e.findSorter(t.column)),t.params="function"==typeof n.params?n.params(t.column.getComponent(),t.dir):n.params,o.push(t)),e.setColumnHeader(t.column,t.dir)}),o.length&&e._sortItems(t,o)),e.table.options.dataSorted&&e.table.options.dataSorted.call(e.table,e.getSort(),e.table.rowManager.getComponents("active"))},Sort.prototype.clearColumnHeaders=function(){this.table.columnManager.getRealColumns().forEach(function(t){t.modules.sort&&(t.modules.sort.dir="none",t.getElement().setAttribute("aria-sort","none"))})},Sort.prototype.setColumnHeader=function(t,e){t.modules.sort.dir=e,t.getElement().setAttribute("aria-sort",e)},Sort.prototype._sortItems=function(t,e){var r=this,o=e.length-1;t.sort(function(t,n){for(var i,s=o;s>=0;s--){var a=e[s];if(0!==(i=r._sortRow(t,n,a.column,a.dir,a.params)))break}return i})},Sort.prototype._sortRow=function(t,e,r,o,n){var i,s,a="asc"==o?t:e,l="asc"==o?e:t;return t=r.getFieldValue(a.getData()),e=r.getFieldValue(l.getData()),t=void 0!==t?t:"",e=void 0!==e?e:"",i=a.getComponent(),s=l.getComponent(),r.modules.sort.sorter.call(this,t,e,i,s,r.getComponent(),o,n)},Sort.prototype.sorters={number:function(t,e,r,o,n,i,s){var a=s.alignEmptyValues,l=s.decimalSeparator||".",u=s.thousandSeparator||",",c=0;if(t=parseFloat(String(t).split(u).join("").split(l).join(".")),e=parseFloat(String(e).split(u).join("").split(l).join(".")),isNaN(t))c=isNaN(e)?0:-1;else{if(!isNaN(e))return t-e;c=1}return("top"===a&&"desc"===i||"bottom"===a&&"asc"===i)&&(c*=-1),c},string:function(t,e,r,o,n,i,s){var a,l=s.alignEmptyValues,u=0;if(t){if(e){switch(_typeof(s.locale)){case"boolean":s.locale&&(a=this.table.modules.localize.getLocale());break;case"string":a=s.locale}return String(t).toLowerCase().localeCompare(String(e).toLowerCase(),a)}u=1}else u=e?-1:0;return("top"===l&&"desc"===i||"bottom"===l&&"asc"===i)&&(u*=-1),u},date:function(t,e,r,o,n,i,s){return s.format||(s.format="DD/MM/YYYY"),this.sorters.datetime.call(this,t,e,r,o,n,i,s)},time:function(t,e,r,o,n,i,s){return s.format||(s.format="hh:mm"),this.sorters.datetime.call(this,t,e,r,o,n,i,s)},datetime:function(t,e,r,o,n,i,s){var a=s.format||"DD/MM/YYYY hh:mm:ss",l=s.alignEmptyValues,u=0;if("undefined"!=typeof moment){if(t=moment(t,a),e=moment(e,a),t.isValid()){if(e.isValid())return t-e;u=1}else u=e.isValid()?-1:0;return("top"===l&&"desc"===i||"bottom"===l&&"asc"===i)&&(u*=-1),u}console.error("Sort Error - 'datetime' sorter is dependant on moment.js")},boolean:function(t,e,r,o,n,i,s){return(!0===t||"true"===t||"True"===t||1===t?1:0)-(!0===e||"true"===e||"True"===e||1===e?1:0)},array:function(t,e,r,o,n,i,s){function a(t){switch(c){case"length":return t.length;case"sum":return t.reduce(function(t,e){return t+e});case"max":return Math.max.apply(null,t);case"min":return Math.min.apply(null,t);case"avg":return t.reduce(function(t,e){return t+e})/t.length}}var l=0,u=0,c=s.type||"length",d=s.alignEmptyValues,m=0;if(Array.isArray(t)){if(Array.isArray(e))return l=t?a(t):0,u=e?a(e):0,l-u;d=1}else d=Array.isArray(e)?-1:0;return("top"===d&&"desc"===i||"bottom"===d&&"asc"===i)&&(m*=-1),m},exists:function(t,e,r,o,n,i,s){return(void 0===t?0:1)-(void 0===e?0:1)},alphanum:function(t,e,r,o,n,i,s){var a,l,u,c,d,m=0,f=/(\d+)|(\D+)/g,p=/\d/,h=s.alignEmptyValues,g=0;if(t||0===t){if(e||0===e){if(isFinite(t)&&isFinite(e))return t-e;if(a=String(t).toLowerCase(),l=String(e).toLowerCase(),a===l)return 0;if(!p.test(a)||!p.test(l))return a>l?1:-1;for(a=a.match(f),l=l.match(f),d=a.length>l.length?l.length:a.length;m<d;)if(u=a[m],c=l[m++],u!==c)return isFinite(u)&&isFinite(c)?("0"===u.charAt(0)&&(u="."+u),"0"===c.charAt(0)&&(c="."+c),u-c):u>c?1:-1;return a.length>l.length}g=1}else g=e||0===e?-1:0;return("top"===h&&"desc"===i||"bottom"===h&&"asc"===i)&&(g*=-1),g}},Tabulator.prototype.registerModule("sort",Sort);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-var Validate = function Validate(table) {
- this.table = table;
-};
-
-//validate
-Validate.prototype.initializeColumn = function (column) {
- var self = this,
- config = [],
- validator;
-
- if (column.definition.validator) {
-
- if (Array.isArray(column.definition.validator)) {
- column.definition.validator.forEach(function (item) {
- validator = self._extractValidator(item);
-
- if (validator) {
- config.push(validator);
- }
- });
- } else {
- validator = this._extractValidator(column.definition.validator);
-
- if (validator) {
- config.push(validator);
- }
- }
-
- column.modules.validate = config.length ? config : false;
- }
-};
-
-Validate.prototype._extractValidator = function (value) {
- var type, params, pos;
-
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "string":
- pos = value.indexOf(':');
-
- if (pos > -1) {
- type = value.substring(0, pos);
- params = value.substring(pos + 1);
- } else {
- type = value;
- }
-
- return this._buildValidator(type, params);
- break;
-
- case "function":
- return this._buildValidator(value);
- break;
-
- case "object":
- return this._buildValidator(value.type, value.parameters);
- break;
- }
-};
-
-Validate.prototype._buildValidator = function (type, params) {
-
- var func = typeof type == "function" ? type : this.validators[type];
-
- if (!func) {
- console.warn("Validator Setup Error - No matching validator found:", type);
- return false;
- } else {
- return {
- type: typeof type == "function" ? "function" : type,
- func: func,
- params: params
- };
- }
-};
-
-Validate.prototype.validate = function (validators, cell, value) {
- var self = this,
- valid = [];
-
- if (validators) {
- validators.forEach(function (item) {
- if (!item.func.call(self, cell, value, item.params)) {
- valid.push({
- type: item.type,
- parameters: item.params
- });
- }
- });
- }
-
- return valid.length ? valid : true;
-};
-
-Validate.prototype.validators = {
-
- //is integer
- integer: function integer(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
- },
-
- //is float
- float: function float(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && value % 1 !== 0;
- },
-
- //must be a number
- numeric: function numeric(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return !isNaN(value);
- },
-
- //must be a string
- string: function string(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return isNaN(value);
- },
-
- //maximum value
- max: function max(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) <= parameters;
- },
-
- //minimum value
- min: function min(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) >= parameters;
- },
-
- //minimum string length
- minLength: function minLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length >= parameters;
- },
-
- //maximum string length
- maxLength: function maxLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length <= parameters;
- },
-
- //in provided value list
- in: function _in(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- if (typeof parameters == "string") {
- parameters = parameters.split("|");
- }
-
- return value === "" || parameters.indexOf(value) > -1;
- },
-
- //must match provided regex
- regex: function regex(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var reg = new RegExp(parameters);
-
- return reg.test(value);
- },
-
- //value must be unique in this column
- unique: function unique(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var unique = true;
-
- var cellData = cell.getData();
- var column = cell.getColumn()._getSelf();
-
- this.table.rowManager.rows.forEach(function (row) {
- var data = row.getData();
-
- if (data !== cellData) {
- if (value == column.getFieldValue(data)) {
- unique = false;
- }
- }
- });
-
- return unique;
- },
-
- //must have a value
- required: function required(cell, value, parameters) {
- return value !== "" && value !== null && typeof value !== "undefined";
- }
-};
-
-Tabulator.prototype.registerModule("validate", Validate);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Validate=function(t){this.table=t};Validate.prototype.initializeColumn=function(t){var n,i=this,r=[];t.definition.validator&&(Array.isArray(t.definition.validator)?t.definition.validator.forEach(function(t){(n=i._extractValidator(t))&&r.push(n)}):(n=this._extractValidator(t.definition.validator))&&r.push(n),t.modules.validate=!!r.length&&r)},Validate.prototype._extractValidator=function(t){var n,i,r;switch(void 0===t?"undefined":_typeof(t)){case"string":return r=t.indexOf(":"),r>-1?(n=t.substring(0,r),i=t.substring(r+1)):n=t,this._buildValidator(n,i);case"function":return this._buildValidator(t);case"object":return this._buildValidator(t.type,t.parameters)}},Validate.prototype._buildValidator=function(t,n){var i="function"==typeof t?t:this.validators[t];return i?{type:"function"==typeof t?"function":t,func:i,params:n}:(console.warn("Validator Setup Error - No matching validator found:",t),!1)},Validate.prototype.validate=function(t,n,i){var r=this,o=[];return t&&t.forEach(function(t){t.func.call(r,n,i,t.params)||o.push({type:t.type,parameters:t.params})}),!o.length||o},Validate.prototype.validators={integer:function(t,n,i){return""===n||null===n||void 0===n||"number"==typeof(n=Number(n))&&isFinite(n)&&Math.floor(n)===n},float:function(t,n,i){return""===n||null===n||void 0===n||"number"==typeof(n=Number(n))&&isFinite(n)&&n%1!=0},numeric:function(t,n,i){return""===n||null===n||void 0===n||!isNaN(n)},string:function(t,n,i){return""===n||null===n||void 0===n||isNaN(n)},max:function(t,n,i){return""===n||null===n||void 0===n||parseFloat(n)<=i},min:function(t,n,i){return""===n||null===n||void 0===n||parseFloat(n)>=i},minLength:function(t,n,i){return""===n||null===n||void 0===n||String(n).length>=i},maxLength:function(t,n,i){return""===n||null===n||void 0===n||String(n).length<=i},in:function(t,n,i){return""===n||null===n||void 0===n||("string"==typeof i&&(i=i.split("|")),""===n||i.indexOf(n)>-1)},regex:function(t,n,i){return""===n||null===n||void 0===n||new RegExp(i).test(n)},unique:function(t,n,i){if(""===n||null===n||void 0===n)return!0;var r=!0,o=t.getData(),e=t.getColumn()._getSelf();return this.table.rowManager.rows.forEach(function(t){var i=t.getData();i!==o&&n==e.getFieldValue(i)&&(r=!1)}),r},required:function(t,n,i){return""!==n&&null!==n&&void 0!==n}},Tabulator.prototype.registerModule("validate",Validate);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-;(function (global, factory) {
- if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined') {
- module.exports = factory();
- } else if (typeof define === 'function' && define.amd) {
- define(factory);
- } else {
- global.Tabulator = factory();
- }
-})(this, function () {
-
- 'use strict';
-
- // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
-
-
- if (!Array.prototype.findIndex) {
-
- Object.defineProperty(Array.prototype, 'findIndex', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
-
- // b. Let kValue be ? Get(O, Pk).
-
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
-
- // d. If testResult is true, return k.
-
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return k;
- }
-
- // e. Increase k by 1.
-
-
- k++;
- }
-
- // 7. Return -1.
-
-
- return -1;
- }
-
- });
- }
-
- // https://tc39.github.io/ecma262/#sec-array.prototype.find
-
-
- if (!Array.prototype.find) {
-
- Object.defineProperty(Array.prototype, 'find', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
-
- // b. Let kValue be ? Get(O, Pk).
-
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
-
- // d. If testResult is true, return kValue.
-
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return kValue;
- }
-
- // e. Increase k by 1.
-
-
- k++;
- }
-
- // 7. Return undefined.
-
-
- return undefined;
- }
-
- });
- }
-
- var ColumnManager = function ColumnManager(table) {
-
- this.table = table; //hold parent table
-
-
- this.blockHozScrollEvent = false;
-
- this.headersElement = this.createHeadersElement();
-
- this.element = this.createHeaderElement(); //containing element
-
-
- this.rowManager = null; //hold row manager object
-
-
- this.columns = []; // column definition object
-
-
- this.columnsByIndex = []; //columns by index
-
-
- this.columnsByField = {}; //columns by field
-
-
- this.scrollLeft = 0;
-
- this.element.insertBefore(this.headersElement, this.element.firstChild);
- };
-
- ////////////// Setup Functions /////////////////
-
-
- ColumnManager.prototype.createHeadersElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-headers");
-
- return el;
- };
-
- ColumnManager.prototype.createHeaderElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-header");
-
- if (!this.table.options.headerVisible) {
-
- el.classList.add("tabulator-header-hidden");
- }
-
- return el;
- };
-
- ColumnManager.prototype.initialize = function () {
-
- var self = this;
-
- //scroll body along with header
-
-
- // self.element.addEventListener("scroll", function(e){
-
-
- // if(!self.blockHozScrollEvent){
-
-
- // self.table.rowManager.scrollHorizontal(self.element.scrollLeft);
-
-
- // }
-
-
- // });
-
- };
-
- //link to row manager
-
-
- ColumnManager.prototype.setRowManager = function (manager) {
-
- this.rowManager = manager;
- };
-
- //return containing element
-
-
- ColumnManager.prototype.getElement = function () {
-
- return this.element;
- };
-
- //return header containing element
-
-
- ColumnManager.prototype.getHeadersElement = function () {
-
- return this.headersElement;
- };
-
- // ColumnManager.prototype.tempScrollBlock = function(){
-
-
- // clearTimeout(this.blockHozScrollEvent);
-
-
- // this.blockHozScrollEvent = setTimeout(() => {this.blockHozScrollEvent = false;}, 50);
-
-
- // }
-
-
- //scroll horizontally to match table body
-
-
- ColumnManager.prototype.scrollHorizontal = function (left) {
-
- var hozAdjust = 0,
- scrollWidth = this.element.scrollWidth - this.table.element.clientWidth;
-
- // this.tempScrollBlock();
-
-
- this.element.scrollLeft = left;
-
- //adjust for vertical scrollbar moving table when present
-
-
- if (left > scrollWidth) {
-
- hozAdjust = left - scrollWidth;
-
- this.element.style.marginLeft = -hozAdjust + "px";
- } else {
-
- this.element.style.marginLeft = 0;
- }
-
- //keep frozen columns fixed in position
-
-
- //this._calcFrozenColumnsPos(hozAdjust + 3);
-
-
- this.scrollLeft = left;
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.scrollHorizontal();
- }
- };
-
- ///////////// Column Setup Functions /////////////
-
-
- ColumnManager.prototype.generateColumnsFromRowData = function (data) {
-
- var cols = [],
- row,
- sorter;
-
- if (data && data.length) {
-
- row = data[0];
-
- for (var key in row) {
-
- var col = {
-
- field: key,
-
- title: key
-
- };
-
- var value = row[key];
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
-
- case "undefined":
-
- sorter = "string";
-
- break;
-
- case "boolean":
-
- sorter = "boolean";
-
- break;
-
- case "object":
-
- if (Array.isArray(value)) {
-
- sorter = "array";
- } else {
-
- sorter = "string";
- }
-
- break;
-
- default:
-
- if (!isNaN(value) && value !== "") {
-
- sorter = "number";
- } else {
-
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
-
- sorter = "alphanum";
- } else {
-
- sorter = "string";
- }
- }
-
- break;
-
- }
-
- col.sorter = sorter;
-
- cols.push(col);
- }
-
- this.table.options.columns = cols;
-
- this.setColumns(this.table.options.columns);
- }
- };
-
- ColumnManager.prototype.setColumns = function (cols, row) {
-
- var self = this;
-
- while (self.headersElement.firstChild) {
- self.headersElement.removeChild(self.headersElement.firstChild);
- }self.columns = [];
-
- self.columnsByIndex = [];
-
- self.columnsByField = {};
-
- //reset frozen columns
-
-
- if (self.table.modExists("frozenColumns")) {
-
- self.table.modules.frozenColumns.reset();
- }
-
- cols.forEach(function (def, i) {
-
- self._addColumn(def);
- });
-
- self._reIndexColumns();
-
- if (self.table.options.responsiveLayout && self.table.modExists("responsiveLayout", true)) {
-
- self.table.modules.responsiveLayout.initialize();
- }
-
- self.redraw(true);
- };
-
- ColumnManager.prototype._addColumn = function (definition, before, nextToColumn) {
-
- var column = new Column(definition, this),
- colEl = column.getElement(),
- index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
-
- if (nextToColumn && index > -1) {
-
- var parentIndex = this.columns.indexOf(nextToColumn.getTopColumn());
-
- var nextEl = nextToColumn.getElement();
-
- if (before) {
-
- this.columns.splice(parentIndex, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl);
- } else {
-
- this.columns.splice(parentIndex + 1, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl.nextSibling);
- }
- } else {
-
- if (before) {
-
- this.columns.unshift(column);
-
- this.headersElement.insertBefore(column.getElement(), this.headersElement.firstChild);
- } else {
-
- this.columns.push(column);
-
- this.headersElement.appendChild(column.getElement());
- }
-
- column.columnRendered();
- }
-
- return column;
- };
-
- ColumnManager.prototype.registerColumnField = function (col) {
-
- if (col.definition.field) {
-
- this.columnsByField[col.definition.field] = col;
- }
- };
-
- ColumnManager.prototype.registerColumnPosition = function (col) {
-
- this.columnsByIndex.push(col);
- };
-
- ColumnManager.prototype._reIndexColumns = function () {
-
- this.columnsByIndex = [];
-
- this.columns.forEach(function (column) {
-
- column.reRegisterPosition();
- });
- };
-
- //ensure column headers take up the correct amount of space in column groups
-
-
- ColumnManager.prototype._verticalAlignHeaders = function () {
-
- var self = this,
- minHeight = 0;
-
- self.columns.forEach(function (column) {
-
- var height;
-
- column.clearVerticalAlign();
-
- height = column.getHeight();
-
- if (height > minHeight) {
-
- minHeight = height;
- }
- });
-
- self.columns.forEach(function (column) {
-
- column.verticalAlign(self.table.options.columnHeaderVertAlign, minHeight);
- });
-
- self.rowManager.adjustTableSize();
- };
-
- //////////////// Column Details /////////////////
-
-
- ColumnManager.prototype.findColumn = function (subject) {
-
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Column) {
-
- //subject is column element
-
-
- return subject;
- } else if (subject instanceof ColumnComponent) {
-
- //subject is public column component
-
-
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
-
- //subject is a HTML element of the column header
-
-
- var match = self.columns.find(function (column) {
-
- return column.element === subject;
- });
-
- return match || false;
- }
- } else {
-
- //subject should be treated as the field name of the column
-
-
- return this.columnsByField[subject] || false;
- }
-
- //catch all for any other type of input
-
-
- return false;
- };
-
- ColumnManager.prototype.getColumnByField = function (field) {
-
- return this.columnsByField[field];
- };
-
- ColumnManager.prototype.getColumnsByFieldRoot = function (root) {
- var _this = this;
-
- var matches = [];
-
- Object.keys(this.columnsByField).forEach(function (field) {
-
- var fieldRoot = field.split(".")[0];
-
- if (fieldRoot === root) {
-
- matches.push(_this.columnsByField[field]);
- }
- });
-
- return matches;
- };
-
- ColumnManager.prototype.getColumnByIndex = function (index) {
-
- return this.columnsByIndex[index];
- };
-
- ColumnManager.prototype.getFirstVisibileColumn = function (index) {
-
- var index = this.columnsByIndex.findIndex(function (col) {
-
- return col.visible;
- });
-
- return index > -1 ? this.columnsByIndex[index] : false;
- };
-
- ColumnManager.prototype.getColumns = function () {
-
- return this.columns;
- };
-
- ColumnManager.prototype.findColumnIndex = function (column) {
-
- return this.columnsByIndex.findIndex(function (col) {
-
- return column === col;
- });
- };
-
- //return all columns that are not groups
-
-
- ColumnManager.prototype.getRealColumns = function () {
-
- return this.columnsByIndex;
- };
-
- //travers across columns and call action
-
-
- ColumnManager.prototype.traverse = function (callback) {
-
- var self = this;
-
- self.columnsByIndex.forEach(function (column, i) {
-
- callback(column, i);
- });
- };
-
- //get defintions of actual columns
-
-
- ColumnManager.prototype.getDefinitions = function (active) {
-
- var self = this,
- output = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- if (!active || active && column.visible) {
-
- output.push(column.getDefinition());
- }
- });
-
- return output;
- };
-
- //get full nested definition tree
-
-
- ColumnManager.prototype.getDefinitionTree = function () {
-
- var self = this,
- output = [];
-
- self.columns.forEach(function (column) {
-
- output.push(column.getDefinition(true));
- });
-
- return output;
- };
-
- ColumnManager.prototype.getComponents = function (structured) {
-
- var self = this,
- output = [],
- columns = structured ? self.columns : self.columnsByIndex;
-
- columns.forEach(function (column) {
-
- output.push(column.getComponent());
- });
-
- return output;
- };
-
- ColumnManager.prototype.getWidth = function () {
-
- var width = 0;
-
- this.columnsByIndex.forEach(function (column) {
-
- if (column.visible) {
-
- width += column.getWidth();
- }
- });
-
- return width;
- };
-
- ColumnManager.prototype.moveColumn = function (from, to, after) {
-
- this.moveColumnActual(from, to, after);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- to.element.parentNode.insertBefore(from.element, to.element);
-
- if (after) {
-
- to.element.parentNode.insertBefore(to.element, from.element);
- }
-
- this._verticalAlignHeaders();
-
- this.table.rowManager.reinitialize();
- };
-
- ColumnManager.prototype.moveColumnActual = function (from, to, after) {
-
- if (from.parent.isGroup) {
-
- this._moveColumnInArray(from.parent.columns, from, to, after);
- } else {
-
- this._moveColumnInArray(this.columns, from, to, after);
- }
-
- this._moveColumnInArray(this.columnsByIndex, from, to, after, true);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.options.columnMoved) {
-
- this.table.options.columnMoved.call(this.table, from.getComponent(), this.table.columnManager.getComponents());
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
- };
-
- ColumnManager.prototype._moveColumnInArray = function (columns, from, to, after, updateRows) {
-
- var fromIndex = columns.indexOf(from),
- toIndex;
-
- if (fromIndex > -1) {
-
- columns.splice(fromIndex, 1);
-
- toIndex = columns.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
-
- toIndex = toIndex + 1;
- }
- } else {
-
- toIndex = fromIndex;
- }
-
- columns.splice(toIndex, 0, from);
-
- if (updateRows) {
-
- this.table.rowManager.rows.forEach(function (row) {
-
- if (row.cells.length) {
-
- var cell = row.cells.splice(fromIndex, 1)[0];
-
- row.cells.splice(toIndex, 0, cell);
- }
- });
- }
- }
- };
-
- ColumnManager.prototype.scrollToColumn = function (column, position, ifVisible) {
- var _this2 = this;
-
- var left = 0,
- offset = 0,
- adjust = 0,
- colEl = column.getElement();
-
- return new Promise(function (resolve, reject) {
-
- if (typeof position === "undefined") {
-
- position = _this2.table.options.scrollToColumnPosition;
- }
-
- if (typeof ifVisible === "undefined") {
-
- ifVisible = _this2.table.options.scrollToColumnIfVisible;
- }
-
- if (column.visible) {
-
- //align to correct position
-
-
- switch (position) {
-
- case "middle":
-
- case "center":
-
- adjust = -_this2.element.clientWidth / 2;
-
- break;
-
- case "right":
-
- adjust = colEl.clientWidth - _this2.headersElement.clientWidth;
-
- break;
-
- }
-
- //check column visibility
-
-
- if (!ifVisible) {
-
- offset = colEl.offsetLeft;
-
- if (offset > 0 && offset + colEl.offsetWidth < _this2.element.clientWidth) {
-
- return false;
- }
- }
-
- //calculate scroll position
-
-
- left = colEl.offsetLeft + _this2.element.scrollLeft + adjust;
-
- left = Math.max(Math.min(left, _this2.table.rowManager.element.scrollWidth - _this2.table.rowManager.element.clientWidth), 0);
-
- _this2.table.rowManager.scrollHorizontal(left);
-
- _this2.scrollHorizontal(left);
-
- resolve();
- } else {
-
- console.warn("Scroll Error - Column not visible");
-
- reject("Scroll Error - Column not visible");
- }
- });
- };
-
- //////////////// Cell Management /////////////////
-
-
- ColumnManager.prototype.generateCells = function (row) {
-
- var self = this;
-
- var cells = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- cells.push(column.generateCell(row));
- });
-
- return cells;
- };
-
- //////////////// Column Management /////////////////
-
-
- ColumnManager.prototype.getFlexBaseWidth = function () {
-
- var self = this,
- totalWidth = self.table.element.clientWidth,
- //table element width
-
-
- fixedWidth = 0;
-
- //adjust for vertical scrollbar if present
-
-
- if (self.rowManager.element.scrollHeight > self.rowManager.element.clientHeight) {
-
- totalWidth -= self.rowManager.element.offsetWidth - self.rowManager.element.clientWidth;
- }
-
- this.columnsByIndex.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width || 0;
-
- minWidth = typeof column.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(column.minWidth);
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
- }
- });
-
- return fixedWidth;
- };
-
- ColumnManager.prototype.addColumn = function (definition, before, nextToColumn) {
- var _this3 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this3._addColumn(definition, before, nextToColumn);
-
- _this3._reIndexColumns();
-
- if (_this3.table.options.responsiveLayout && _this3.table.modExists("responsiveLayout", true)) {
-
- _this3.table.modules.responsiveLayout.initialize();
- }
-
- if (_this3.table.modExists("columnCalcs")) {
-
- _this3.table.modules.columnCalcs.recalc(_this3.table.rowManager.activeRows);
- }
-
- _this3.redraw();
-
- if (_this3.table.modules.layout.getMode() != "fitColumns") {
-
- column.reinitializeWidth();
- }
-
- _this3._verticalAlignHeaders();
-
- _this3.table.rowManager.reinitialize();
-
- resolve(column);
- });
- };
-
- //remove column from system
-
-
- ColumnManager.prototype.deregisterColumn = function (column) {
-
- var field = column.getField(),
- index;
-
- //remove from field list
-
-
- if (field) {
-
- delete this.columnsByField[field];
- }
-
- //remove from index list
-
-
- index = this.columnsByIndex.indexOf(column);
-
- if (index > -1) {
-
- this.columnsByIndex.splice(index, 1);
- }
-
- //remove from column list
-
-
- index = this.columns.indexOf(column);
-
- if (index > -1) {
-
- this.columns.splice(index, 1);
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- this.redraw();
- };
-
- //redraw columns
-
-
- ColumnManager.prototype.redraw = function (force) {
-
- if (force) {
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
-
- this._verticalAlignHeaders();
- }
-
- this.table.rowManager.resetScroll();
-
- this.table.rowManager.reinitialize();
- }
-
- if (["fitColumns", "fitDataStretch"].indexOf(this.table.modules.layout.getMode()) > -1) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (force) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (force) {
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.redraw();
- }
- }
-
- this.table.footerManager.redraw();
- };
-
- //public column object
-
- var ColumnComponent = function ColumnComponent(column) {
-
- this._column = column;
-
- this.type = "ColumnComponent";
- };
-
- ColumnComponent.prototype.getElement = function () {
-
- return this._column.getElement();
- };
-
- ColumnComponent.prototype.getDefinition = function () {
-
- return this._column.getDefinition();
- };
-
- ColumnComponent.prototype.getField = function () {
-
- return this._column.getField();
- };
-
- ColumnComponent.prototype.getCells = function () {
-
- var cells = [];
-
- this._column.cells.forEach(function (cell) {
-
- cells.push(cell.getComponent());
- });
-
- return cells;
- };
-
- ColumnComponent.prototype.getVisibility = function () {
-
- return this._column.visible;
- };
-
- ColumnComponent.prototype.show = function () {
-
- if (this._column.isGroup) {
-
- this._column.columns.forEach(function (column) {
-
- column.show();
- });
- } else {
-
- this._column.show();
- }
- };
-
- ColumnComponent.prototype.hide = function () {
-
- if (this._column.isGroup) {
-
- this._column.columns.forEach(function (column) {
-
- column.hide();
- });
- } else {
-
- this._column.hide();
- }
- };
-
- ColumnComponent.prototype.toggle = function () {
-
- if (this._column.visible) {
-
- this.hide();
- } else {
-
- this.show();
- }
- };
-
- ColumnComponent.prototype.delete = function () {
-
- return this._column.delete();
- };
-
- ColumnComponent.prototype.getSubColumns = function () {
-
- var output = [];
-
- if (this._column.columns.length) {
-
- this._column.columns.forEach(function (column) {
-
- output.push(column.getComponent());
- });
- }
-
- return output;
- };
-
- ColumnComponent.prototype.getParentColumn = function () {
-
- return this._column.parent instanceof Column ? this._column.parent.getComponent() : false;
- };
-
- ColumnComponent.prototype._getSelf = function () {
-
- return this._column;
- };
-
- ColumnComponent.prototype.scrollTo = function () {
-
- return this._column.table.columnManager.scrollToColumn(this._column);
- };
-
- ColumnComponent.prototype.getTable = function () {
-
- return this._column.table;
- };
-
- ColumnComponent.prototype.headerFilterFocus = function () {
-
- if (this._column.table.modExists("filter", true)) {
-
- this._column.table.modules.filter.setHeaderFilterFocus(this._column);
- }
- };
-
- ColumnComponent.prototype.reloadHeaderFilter = function () {
-
- if (this._column.table.modExists("filter", true)) {
-
- this._column.table.modules.filter.reloadHeaderFilter(this._column);
- }
- };
-
- ColumnComponent.prototype.getHeaderFilterValue = function () {
-
- if (this._column.table.modExists("filter", true)) {
-
- return this._column.table.modules.filter.getHeaderFilterValue(this._column);
- }
- };
-
- ColumnComponent.prototype.setHeaderFilterValue = function (value) {
-
- if (this._column.table.modExists("filter", true)) {
-
- this._column.table.modules.filter.setHeaderFilterValue(this._column, value);
- }
- };
-
- ColumnComponent.prototype.move = function (to, after) {
-
- var toColumn = this._column.table.columnManager.findColumn(to);
-
- if (toColumn) {
-
- this._column.table.columnManager.moveColumn(this._column, toColumn, after);
- } else {
-
- console.warn("Move Error - No matching column found:", toColumn);
- }
- };
-
- ColumnComponent.prototype.getNextColumn = function () {
-
- var nextCol = this._column.nextColumn();
-
- return nextCol ? nextCol.getComponent() : false;
- };
-
- ColumnComponent.prototype.getPrevColumn = function () {
-
- var prevCol = this._column.prevColumn();
-
- return prevCol ? prevCol.getComponent() : false;
- };
-
- ColumnComponent.prototype.updateDefinition = function (updates) {
-
- return this._column.updateDefinition(updates);
- };
-
- var Column = function Column(def, parent) {
-
- var self = this;
-
- this.table = parent.table;
-
- this.definition = def; //column definition
-
- this.parent = parent; //hold parent object
-
- this.type = "column"; //type of element
-
- this.columns = []; //child columns
-
- this.cells = []; //cells bound to this column
-
- this.element = this.createElement(); //column header element
-
- this.contentElement = false;
-
- this.titleElement = false;
-
- this.groupElement = this.createGroupElement(); //column group holder element
-
- this.isGroup = false;
-
- this.tooltip = false; //hold column tooltip
-
- this.hozAlign = ""; //horizontal text alignment
-
- this.vertAlign = ""; //vert text alignment
-
-
- //multi dimensional filed handling
-
- this.field = "";
-
- this.fieldStructure = "";
-
- this.getFieldValue = "";
-
- this.setFieldValue = "";
-
- this.titleFormatterRendered = false;
-
- this.setField(this.definition.field);
-
- if (this.table.options.invalidOptionWarnings) {
-
- this.checkDefinition();
- }
-
- this.modules = {}; //hold module variables;
-
-
- this.cellEvents = {
-
- cellClick: false,
-
- cellDblClick: false,
-
- cellContext: false,
-
- cellTap: false,
-
- cellDblTap: false,
-
- cellTapHold: false,
-
- cellMouseEnter: false,
-
- cellMouseLeave: false,
-
- cellMouseOver: false,
-
- cellMouseOut: false,
-
- cellMouseMove: false
-
- };
-
- this.width = null; //column width
-
- this.widthStyled = ""; //column width prestyled to improve render efficiency
-
- this.minWidth = null; //column minimum width
-
- this.minWidthStyled = ""; //column minimum prestyled to improve render efficiency
-
- this.widthFixed = false; //user has specified a width for this column
-
-
- this.visible = true; //default visible state
-
-
- this._mapDepricatedFunctionality();
-
- //initialize column
-
- if (def.columns) {
-
- this.isGroup = true;
-
- def.columns.forEach(function (def, i) {
-
- var newCol = new Column(def, self);
-
- self.attachColumn(newCol);
- });
-
- self.checkColumnVisibility();
- } else {
-
- parent.registerColumnField(this);
- }
-
- if (def.rowHandle && this.table.options.movableRows !== false && this.table.modExists("moveRow")) {
-
- this.table.modules.moveRow.setHandle(true);
- }
-
- this._buildHeader();
-
- this.bindModuleColumns();
- };
-
- Column.prototype.createElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
-
- el.setAttribute("role", "columnheader");
-
- el.setAttribute("aria-sort", "none");
-
- return el;
- };
-
- Column.prototype.createGroupElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col-group-cols");
-
- return el;
- };
-
- Column.prototype.checkDefinition = function () {
- var _this4 = this;
-
- Object.keys(this.definition).forEach(function (key) {
-
- if (_this4.defaultOptionList.indexOf(key) === -1) {
-
- console.warn("Invalid column definition option in '" + (_this4.field || _this4.definition.title) + "' column:", key);
- }
- });
- };
-
- Column.prototype.setField = function (field) {
-
- this.field = field;
-
- this.fieldStructure = field ? this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator) : [field] : [];
-
- this.getFieldValue = this.fieldStructure.length > 1 ? this._getNestedData : this._getFlatData;
-
- this.setFieldValue = this.fieldStructure.length > 1 ? this._setNestedData : this._setFlatData;
- };
-
- //register column position with column manager
-
- Column.prototype.registerColumnPosition = function (column) {
-
- this.parent.registerColumnPosition(column);
- };
-
- //register column position with column manager
-
- Column.prototype.registerColumnField = function (column) {
-
- this.parent.registerColumnField(column);
- };
-
- //trigger position registration
-
- Column.prototype.reRegisterPosition = function () {
-
- if (this.isGroup) {
-
- this.columns.forEach(function (column) {
-
- column.reRegisterPosition();
- });
- } else {
-
- this.registerColumnPosition(this);
- }
- };
-
- Column.prototype._mapDepricatedFunctionality = function () {
-
- if (typeof this.definition.hideInHtml !== "undefined") {
-
- this.definition.htmlOutput = !this.definition.hideInHtml;
-
- console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput");
- }
-
- if (typeof this.definition.align !== "undefined") {
-
- this.definition.hozAlign = this.definition.align;
-
- console.warn("align column definition property is deprecated, you should now use hozAlign");
- }
- };
-
- Column.prototype.setTooltip = function () {
-
- var self = this,
- def = self.definition;
-
- //set header tooltips
-
- var tooltip = def.headerTooltip || def.tooltip === false ? def.headerTooltip : self.table.options.tooltipsHeader;
-
- if (tooltip) {
-
- if (tooltip === true) {
-
- if (def.field) {
-
- self.table.modules.localize.bind("columns|" + def.field, function (value) {
-
- self.element.setAttribute("title", value || def.title);
- });
- } else {
-
- self.element.setAttribute("title", def.title);
- }
- } else {
-
- if (typeof tooltip == "function") {
-
- tooltip = tooltip(self.getComponent());
-
- if (tooltip === false) {
-
- tooltip = "";
- }
- }
-
- self.element.setAttribute("title", tooltip);
- }
- } else {
-
- self.element.setAttribute("title", "");
- }
- };
-
- //build header element
-
- Column.prototype._buildHeader = function () {
-
- var self = this,
- def = self.definition;
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- }if (def.headerVertical) {
-
- self.element.classList.add("tabulator-col-vertical");
-
- if (def.headerVertical === "flip") {
-
- self.element.classList.add("tabulator-col-vertical-flip");
- }
- }
-
- self.contentElement = self._bindEvents();
-
- self.contentElement = self._buildColumnHeaderContent();
-
- self.element.appendChild(self.contentElement);
-
- if (self.isGroup) {
-
- self._buildGroupHeader();
- } else {
-
- self._buildColumnHeader();
- }
-
- self.setTooltip();
-
- //set resizable handles
-
- if (self.table.options.resizableColumns && self.table.modExists("resizeColumns")) {
-
- self.table.modules.resizeColumns.initializeColumn("header", self, self.element);
- }
-
- //set resizable handles
-
- if (def.headerFilter && self.table.modExists("filter") && self.table.modExists("edit")) {
-
- if (typeof def.headerFilterPlaceholder !== "undefined" && def.field) {
-
- self.table.modules.localize.setHeaderFilterColumnPlaceholder(def.field, def.headerFilterPlaceholder);
- }
-
- self.table.modules.filter.initializeColumn(self);
- }
-
- //set resizable handles
-
- if (self.table.modExists("frozenColumns")) {
-
- self.table.modules.frozenColumns.initializeColumn(self);
- }
-
- //set movable column
-
- if (self.table.options.movableColumns && !self.isGroup && self.table.modExists("moveColumn")) {
-
- self.table.modules.moveColumn.initializeColumn(self);
- }
-
- //set calcs column
-
- if ((def.topCalc || def.bottomCalc) && self.table.modExists("columnCalcs")) {
-
- self.table.modules.columnCalcs.initializeColumn(self);
- }
-
- //handle persistence
-
- if (self.table.modExists("persistence") && self.table.modules.persistence.config.columns) {
-
- self.table.modules.persistence.initializeColumn(self);
- }
-
- //update header tooltip on mouse enter
-
- self.element.addEventListener("mouseenter", function (e) {
-
- self.setTooltip();
- });
- };
-
- Column.prototype._bindEvents = function () {
-
- var self = this,
- def = self.definition,
- dblTap,
- tapHold,
- tap;
-
- //setup header click event bindings
-
- if (typeof def.headerClick == "function") {
-
- self.element.addEventListener("click", function (e) {
- def.headerClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerDblClick == "function") {
-
- self.element.addEventListener("dblclick", function (e) {
- def.headerDblClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerContext == "function") {
-
- self.element.addEventListener("contextmenu", function (e) {
- def.headerContext(e, self.getComponent());
- });
- }
-
- //setup header tap event bindings
-
- if (typeof def.headerTap == "function") {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
-
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- if (tap) {
-
- def.headerTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (typeof def.headerDblTap == "function") {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
-
- clearTimeout(dblTap);
-
- dblTap = null;
-
- def.headerDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
-
- clearTimeout(dblTap);
-
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (typeof def.headerTapHold == "function") {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
-
- clearTimeout(tapHold);
-
- tapHold = null;
-
- tap = false;
-
- def.headerTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = null;
- });
- }
-
- //store column cell click event bindings
-
- if (typeof def.cellClick == "function") {
-
- self.cellEvents.cellClick = def.cellClick;
- }
-
- if (typeof def.cellDblClick == "function") {
-
- self.cellEvents.cellDblClick = def.cellDblClick;
- }
-
- if (typeof def.cellContext == "function") {
-
- self.cellEvents.cellContext = def.cellContext;
- }
-
- //store column mouse event bindings
-
- if (typeof def.cellMouseEnter == "function") {
-
- self.cellEvents.cellMouseEnter = def.cellMouseEnter;
- }
-
- if (typeof def.cellMouseLeave == "function") {
-
- self.cellEvents.cellMouseLeave = def.cellMouseLeave;
- }
-
- if (typeof def.cellMouseOver == "function") {
-
- self.cellEvents.cellMouseOver = def.cellMouseOver;
- }
-
- if (typeof def.cellMouseOut == "function") {
-
- self.cellEvents.cellMouseOut = def.cellMouseOut;
- }
-
- if (typeof def.cellMouseMove == "function") {
-
- self.cellEvents.cellMouseMove = def.cellMouseMove;
- }
-
- //setup column cell tap event bindings
-
- if (typeof def.cellTap == "function") {
-
- self.cellEvents.cellTap = def.cellTap;
- }
-
- if (typeof def.cellDblTap == "function") {
-
- self.cellEvents.cellDblTap = def.cellDblTap;
- }
-
- if (typeof def.cellTapHold == "function") {
-
- self.cellEvents.cellTapHold = def.cellTapHold;
- }
-
- //setup column cell edit callbacks
-
- if (typeof def.cellEdited == "function") {
-
- self.cellEvents.cellEdited = def.cellEdited;
- }
-
- if (typeof def.cellEditing == "function") {
-
- self.cellEvents.cellEditing = def.cellEditing;
- }
-
- if (typeof def.cellEditCancelled == "function") {
-
- self.cellEvents.cellEditCancelled = def.cellEditCancelled;
- }
- };
-
- //build header element for header
-
- Column.prototype._buildColumnHeader = function () {
-
- var self = this,
- def = self.definition,
- table = self.table,
- sortable;
-
- //set column sorter
-
- if (table.modExists("sort")) {
-
- table.modules.sort.initializeColumn(self, self.contentElement);
- }
-
- //set column header context menu
-
- if ((def.headerContextMenu || def.headerMenu) && table.modExists("menu")) {
-
- table.modules.menu.initializeColumnHeader(self);
- }
-
- //set column formatter
-
- if (table.modExists("format")) {
-
- table.modules.format.initializeColumn(self);
- }
-
- //set column editor
-
- if (typeof def.editor != "undefined" && table.modExists("edit")) {
-
- table.modules.edit.initializeColumn(self);
- }
-
- //set colum validator
-
- if (typeof def.validator != "undefined" && table.modExists("validate")) {
-
- table.modules.validate.initializeColumn(self);
- }
-
- //set column mutator
-
- if (table.modExists("mutator")) {
-
- table.modules.mutator.initializeColumn(self);
- }
-
- //set column accessor
-
- if (table.modExists("accessor")) {
-
- table.modules.accessor.initializeColumn(self);
- }
-
- //set respoviveLayout
-
- if (_typeof(table.options.responsiveLayout) && table.modExists("responsiveLayout")) {
-
- table.modules.responsiveLayout.initializeColumn(self);
- }
-
- //set column visibility
-
- if (typeof def.visible != "undefined") {
-
- if (def.visible) {
-
- self.show(true);
- } else {
-
- self.hide(true);
- }
- }
-
- //asign additional css classes to column header
-
- if (def.cssClass) {
-
- var classeNames = def.cssClass.split(" ");
-
- classeNames.forEach(function (className) {
-
- self.element.classList.add(className);
- });
- }
-
- if (def.field) {
-
- this.element.setAttribute("tabulator-field", def.field);
- }
-
- //set min width if present
-
- self.setMinWidth(typeof def.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(def.minWidth));
-
- self.reinitializeWidth();
-
- //set tooltip if present
-
- self.tooltip = self.definition.tooltip || self.definition.tooltip === false ? self.definition.tooltip : self.table.options.tooltips;
-
- //set orizontal text alignment
-
- self.hozAlign = typeof self.definition.hozAlign == "undefined" ? self.table.options.cellHozAlign : self.definition.hozAlign;
-
- self.vertAlign = typeof self.definition.vertAlign == "undefined" ? self.table.options.cellVertAlign : self.definition.vertAlign;
- };
-
- Column.prototype._buildColumnHeaderContent = function () {
-
- var def = this.definition,
- table = this.table;
-
- var contentElement = document.createElement("div");
-
- contentElement.classList.add("tabulator-col-content");
-
- this.titleElement = this._buildColumnHeaderTitle();
-
- contentElement.appendChild(this.titleElement);
-
- return contentElement;
- };
-
- //build title element of column
-
- Column.prototype._buildColumnHeaderTitle = function () {
-
- var self = this,
- def = self.definition,
- table = self.table,
- title;
-
- var titleHolderElement = document.createElement("div");
-
- titleHolderElement.classList.add("tabulator-col-title");
-
- if (def.editableTitle) {
-
- var titleElement = document.createElement("input");
-
- titleElement.classList.add("tabulator-title-editor");
-
- titleElement.addEventListener("click", function (e) {
-
- e.stopPropagation();
-
- titleElement.focus();
- });
-
- titleElement.addEventListener("change", function () {
-
- def.title = titleElement.value;
-
- table.options.columnTitleChanged.call(self.table, self.getComponent());
- });
-
- titleHolderElement.appendChild(titleElement);
-
- if (def.field) {
-
- table.modules.localize.bind("columns|" + def.field, function (text) {
-
- titleElement.value = text || def.title || " ";
- });
- } else {
-
- titleElement.value = def.title || " ";
- }
- } else {
-
- if (def.field) {
-
- table.modules.localize.bind("columns|" + def.field, function (text) {
-
- self._formatColumnHeaderTitle(titleHolderElement, text || def.title || " ");
- });
- } else {
-
- self._formatColumnHeaderTitle(titleHolderElement, def.title || " ");
- }
- }
-
- return titleHolderElement;
- };
-
- Column.prototype._formatColumnHeaderTitle = function (el, title) {
- var _this5 = this;
-
- var formatter, contents, params, mockCell, onRendered;
-
- if (this.definition.titleFormatter && this.table.modExists("format")) {
-
- formatter = this.table.modules.format.getFormatter(this.definition.titleFormatter);
-
- onRendered = function onRendered(callback) {
-
- _this5.titleFormatterRendered = callback;
- };
-
- mockCell = {
-
- getValue: function getValue() {
-
- return title;
- },
-
- getElement: function getElement() {
-
- return el;
- }
-
- };
-
- params = this.definition.titleFormatterParams || {};
-
- params = typeof params === "function" ? params() : params;
-
- contents = formatter.call(this.table.modules.format, mockCell, params, onRendered);
-
- switch (typeof contents === 'undefined' ? 'undefined' : _typeof(contents)) {
-
- case "object":
-
- if (contents instanceof Node) {
-
- el.appendChild(contents);
- } else {
-
- el.innerHTML = "";
-
- console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents);
- }
-
- break;
-
- case "undefined":
-
- case "null":
-
- el.innerHTML = "";
-
- break;
-
- default:
-
- el.innerHTML = contents;
-
- }
- } else {
-
- el.innerHTML = title;
- }
- };
-
- //build header element for column group
-
- Column.prototype._buildGroupHeader = function () {
- var _this6 = this;
-
- this.element.classList.add("tabulator-col-group");
-
- this.element.setAttribute("role", "columngroup");
-
- this.element.setAttribute("aria-title", this.definition.title);
-
- //asign additional css classes to column header
-
- if (this.definition.cssClass) {
-
- var classeNames = this.definition.cssClass.split(" ");
-
- classeNames.forEach(function (className) {
-
- _this6.element.classList.add(className);
- });
- }
-
- this.element.appendChild(this.groupElement);
- };
-
- //flat field lookup
-
- Column.prototype._getFlatData = function (data) {
-
- return data[this.field];
- };
-
- //nested field lookup
-
- Column.prototype._getNestedData = function (data) {
-
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length,
- output;
-
- for (var i = 0; i < length; i++) {
-
- dataObj = dataObj[structure[i]];
-
- output = dataObj;
-
- if (!dataObj) {
-
- break;
- }
- }
-
- return output;
- };
-
- //flat field set
-
- Column.prototype._setFlatData = function (data, value) {
-
- if (this.field) {
-
- data[this.field] = value;
- }
- };
-
- //nested field set
-
- Column.prototype._setNestedData = function (data, value) {
-
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length;
-
- for (var i = 0; i < length; i++) {
-
- if (i == length - 1) {
-
- dataObj[structure[i]] = value;
- } else {
-
- if (!dataObj[structure[i]]) {
-
- if (typeof value !== "undefined") {
-
- dataObj[structure[i]] = {};
- } else {
-
- break;
- }
- }
-
- dataObj = dataObj[structure[i]];
- }
- }
- };
-
- //attach column to this group
-
- Column.prototype.attachColumn = function (column) {
-
- var self = this;
-
- if (self.groupElement) {
-
- self.columns.push(column);
-
- self.groupElement.appendChild(column.getElement());
- } else {
-
- console.warn("Column Warning - Column being attached to another column instead of column group");
- }
- };
-
- //vertically align header in column
-
- Column.prototype.verticalAlign = function (alignment, height) {
-
- //calculate height of column header and group holder element
-
- var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : height || this.parent.getHeadersElement().clientHeight;
-
- // var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : this.parent.getHeadersElement().clientHeight;
-
-
- this.element.style.height = parentHeight + "px";
-
- if (this.isGroup) {
-
- this.groupElement.style.minHeight = parentHeight - this.contentElement.offsetHeight + "px";
- }
-
- //vertically align cell contents
-
- if (!this.isGroup && alignment !== "top") {
-
- if (alignment === "bottom") {
-
- this.element.style.paddingTop = this.element.clientHeight - this.contentElement.offsetHeight + "px";
- } else {
-
- this.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) / 2 + "px";
- }
- }
-
- this.columns.forEach(function (column) {
-
- column.verticalAlign(alignment);
- });
- };
-
- //clear vertical alignmenet
-
- Column.prototype.clearVerticalAlign = function () {
-
- this.element.style.paddingTop = "";
-
- this.element.style.height = "";
-
- this.element.style.minHeight = "";
-
- this.groupElement.style.minHeight = "";
-
- this.columns.forEach(function (column) {
-
- column.clearVerticalAlign();
- });
- };
-
- Column.prototype.bindModuleColumns = function () {
-
- //check if rownum formatter is being used on a column
-
- if (this.definition.formatter == "rownum") {
-
- this.table.rowManager.rowNumColumn = this;
- }
- };
-
- //// Retreive Column Information ////
-
-
- //return column header element
-
- Column.prototype.getElement = function () {
-
- return this.element;
- };
-
- //return colunm group element
-
- Column.prototype.getGroupElement = function () {
-
- return this.groupElement;
- };
-
- //return field name
-
- Column.prototype.getField = function () {
-
- return this.field;
- };
-
- //return the first column in a group
-
- Column.prototype.getFirstColumn = function () {
-
- if (!this.isGroup) {
-
- return this;
- } else {
-
- if (this.columns.length) {
-
- return this.columns[0].getFirstColumn();
- } else {
-
- return false;
- }
- }
- };
-
- //return the last column in a group
-
- Column.prototype.getLastColumn = function () {
-
- if (!this.isGroup) {
-
- return this;
- } else {
-
- if (this.columns.length) {
-
- return this.columns[this.columns.length - 1].getLastColumn();
- } else {
-
- return false;
- }
- }
- };
-
- //return all columns in a group
-
- Column.prototype.getColumns = function () {
-
- return this.columns;
- };
-
- //return all columns in a group
-
- Column.prototype.getCells = function () {
-
- return this.cells;
- };
-
- //retreive the top column in a group of columns
-
- Column.prototype.getTopColumn = function () {
-
- if (this.parent.isGroup) {
-
- return this.parent.getTopColumn();
- } else {
-
- return this;
- }
- };
-
- //return column definition object
-
- Column.prototype.getDefinition = function (updateBranches) {
-
- var colDefs = [];
-
- if (this.isGroup && updateBranches) {
-
- this.columns.forEach(function (column) {
-
- colDefs.push(column.getDefinition(true));
- });
-
- this.definition.columns = colDefs;
- }
-
- return this.definition;
- };
-
- //////////////////// Actions ////////////////////
-
-
- Column.prototype.checkColumnVisibility = function () {
-
- var visible = false;
-
- this.columns.forEach(function (column) {
-
- if (column.visible) {
-
- visible = true;
- }
- });
-
- if (visible) {
-
- this.show();
-
- this.parent.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- } else {
-
- this.hide();
- }
- };
-
- //show column
-
- Column.prototype.show = function (silent, responsiveToggle) {
-
- if (!this.visible) {
-
- this.visible = true;
-
- this.element.style.display = "";
-
- if (this.parent.isGroup) {
-
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
-
- cell.show();
- });
-
- if (!this.isGroup && this.width === null) {
-
- this.reinitializeWidth();
- }
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
-
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), true);
- }
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
- }
- };
-
- //hide column
-
- Column.prototype.hide = function (silent, responsiveToggle) {
-
- if (this.visible) {
-
- this.visible = false;
-
- this.element.style.display = "none";
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.parent.isGroup) {
-
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
-
- cell.hide();
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
-
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- }
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
- }
- };
-
- Column.prototype.matchChildWidths = function () {
-
- var childWidth = 0;
-
- if (this.contentElement && this.columns.length) {
-
- this.columns.forEach(function (column) {
-
- if (column.visible) {
-
- childWidth += column.getWidth();
- }
- });
-
- this.contentElement.style.maxWidth = childWidth - 1 + "px";
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
- }
- };
-
- Column.prototype.setWidth = function (width) {
-
- this.widthFixed = true;
-
- this.setWidthActual(width);
- };
-
- Column.prototype.setWidthActual = function (width) {
-
- if (isNaN(width)) {
-
- width = Math.floor(this.table.element.clientWidth / 100 * parseInt(width));
- }
-
- width = Math.max(this.minWidth, width);
-
- this.width = width;
-
- this.widthStyled = width ? width + "px" : "";
-
- this.element.style.width = this.widthStyled;
-
- if (!this.isGroup) {
-
- this.cells.forEach(function (cell) {
-
- cell.setWidth();
- });
- }
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
-
- //set resizable handles
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
- };
-
- Column.prototype.checkCellHeights = function () {
-
- var rows = [];
-
- this.cells.forEach(function (cell) {
-
- if (cell.row.heightInitialized) {
-
- if (cell.row.getElement().offsetParent !== null) {
-
- rows.push(cell.row);
-
- cell.row.clearCellHeight();
- } else {
-
- cell.row.heightInitialized = false;
- }
- }
- });
-
- rows.forEach(function (row) {
-
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
-
- row.setCellHeight();
- });
- };
-
- Column.prototype.getWidth = function () {
-
- var width = 0;
-
- if (this.isGroup) {
-
- this.columns.forEach(function (column) {
-
- if (column.visible) {
-
- width += column.getWidth();
- }
- });
- } else {
-
- width = this.width;
- }
-
- return width;
- };
-
- Column.prototype.getHeight = function () {
-
- return this.element.offsetHeight;
- };
-
- Column.prototype.setMinWidth = function (minWidth) {
-
- this.minWidth = minWidth;
-
- this.minWidthStyled = minWidth ? minWidth + "px" : "";
-
- this.element.style.minWidth = this.minWidthStyled;
-
- this.cells.forEach(function (cell) {
-
- cell.setMinWidth();
- });
- };
-
- Column.prototype.delete = function () {
- var _this7 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this7.isGroup) {
-
- _this7.columns.forEach(function (column) {
-
- column.delete();
- });
- }
-
- //cancel edit if column is currently being edited
-
- if (_this7.table.modExists("edit")) {
-
- if (_this7.table.modules.edit.currentCell.column === _this7) {
-
- _this7.table.modules.edit.cancelEdit();
- }
- }
-
- var cellCount = _this7.cells.length;
-
- for (var i = 0; i < cellCount; i++) {
-
- _this7.cells[0].delete();
- }
-
- _this7.element.parentNode.removeChild(_this7.element);
-
- _this7.table.columnManager.deregisterColumn(_this7);
-
- resolve();
- });
- };
-
- Column.prototype.columnRendered = function () {
-
- if (this.titleFormatterRendered) {
-
- this.titleFormatterRendered();
- }
- };
-
- //////////////// Cell Management /////////////////
-
-
- //generate cell for this column
-
- Column.prototype.generateCell = function (row) {
-
- var self = this;
-
- var cell = new Cell(self, row);
-
- this.cells.push(cell);
-
- return cell;
- };
-
- Column.prototype.nextColumn = function () {
-
- var index = this.table.columnManager.findColumnIndex(this);
-
- return index > -1 ? this._nextVisibleColumn(index + 1) : false;
- };
-
- Column.prototype._nextVisibleColumn = function (index) {
-
- var column = this.table.columnManager.getColumnByIndex(index);
-
- return !column || column.visible ? column : this._nextVisibleColumn(index + 1);
- };
-
- Column.prototype.prevColumn = function () {
-
- var index = this.table.columnManager.findColumnIndex(this);
-
- return index > -1 ? this._prevVisibleColumn(index - 1) : false;
- };
-
- Column.prototype._prevVisibleColumn = function (index) {
-
- var column = this.table.columnManager.getColumnByIndex(index);
-
- return !column || column.visible ? column : this._prevVisibleColumn(index - 1);
- };
-
- Column.prototype.reinitializeWidth = function (force) {
-
- this.widthFixed = false;
-
- //set width if present
-
- if (typeof this.definition.width !== "undefined" && !force) {
-
- this.setWidth(this.definition.width);
- }
-
- //hide header filters to prevent them altering column width
-
- if (this.table.modExists("filter")) {
-
- this.table.modules.filter.hideHeaderFilterElements();
- }
-
- this.fitToData();
-
- //show header filters again after layout is complete
-
- if (this.table.modExists("filter")) {
-
- this.table.modules.filter.showHeaderFilterElements();
- }
- };
-
- //set column width to maximum cell width
-
- Column.prototype.fitToData = function () {
-
- var self = this;
-
- if (!this.widthFixed) {
-
- this.element.style.width = "";
-
- self.cells.forEach(function (cell) {
-
- cell.clearWidth();
- });
- }
-
- var maxWidth = this.element.offsetWidth;
-
- if (!self.width || !this.widthFixed) {
-
- self.cells.forEach(function (cell) {
-
- var width = cell.getWidth();
-
- if (width > maxWidth) {
-
- maxWidth = width;
- }
- });
-
- if (maxWidth) {
-
- self.setWidthActual(maxWidth + 1);
- }
- }
- };
-
- Column.prototype.updateDefinition = function (updates) {
- var _this8 = this;
-
- return new Promise(function (resolve, reject) {
-
- var definition;
-
- if (!_this8.isGroup) {
-
- definition = Object.assign({}, _this8.getDefinition());
-
- definition = Object.assign(definition, updates);
-
- _this8.table.columnManager.addColumn(definition, false, _this8).then(function (column) {
-
- if (definition.field == _this8.field) {
-
- _this8.field = false; //cleair field name to prevent deletion of duplicate column from arrays
- }
-
- _this8.delete().then(function () {
-
- resolve(column.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups");
-
- reject("Column Update Error - The updateDefintion function is only available on columns, not column groups");
- }
- });
- };
-
- Column.prototype.deleteCell = function (cell) {
-
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
-
- this.cells.splice(index, 1);
- }
- };
-
- Column.prototype.defaultOptionList = ["title", "field", "columns", "visible", "align", "hozAlign", "vertAlign", "width", "minWidth", "widthGrow", "widthShrink", "resizable", "frozen", "responsive", "tooltip", "cssClass", "rowHandle", "hideInHtml", "print", "htmlOutput", "sorter", "sorterParams", "formatter", "formatterParams", "variableHeight", "editable", "editor", "editorParams", "validator", "mutator", "mutatorParams", "mutatorData", "mutatorDataParams", "mutatorEdit", "mutatorEditParams", "mutatorClipboard", "mutatorClipboardParams", "accessor", "accessorParams", "accessorData", "accessorDataParams", "accessorDownload", "accessorDownloadParams", "accessorClipboard", "accessorClipboardParams", "accessorPrint", "accessorPrintParams", "accessorHtmlOutput", "accessorHtmlOutputParams", "clipboard", "download", "downloadTitle", "topCalc", "topCalcParams", "topCalcFormatter", "topCalcFormatterParams", "bottomCalc", "bottomCalcParams", "bottomCalcFormatter", "bottomCalcFormatterParams", "cellClick", "cellDblClick", "cellContext", "cellTap", "cellDblTap", "cellTapHold", "cellMouseEnter", "cellMouseLeave", "cellMouseOver", "cellMouseOut", "cellMouseMove", "cellEditing", "cellEdited", "cellEditCancelled", "headerSort", "headerSortStartingDir", "headerSortTristate", "headerClick", "headerDblClick", "headerContext", "headerTap", "headerDblTap", "headerTapHold", "headerTooltip", "headerVertical", "editableTitle", "titleFormatter", "titleFormatterParams", "headerFilter", "headerFilterPlaceholder", "headerFilterParams", "headerFilterEmptyCheck", "headerFilterFunc", "headerFilterFuncParams", "headerFilterLiveFilter", "print", "headerContextMenu", "headerMenu", "contextMenu", "formatterPrint", "formatterPrintParams", "formatterClipboard", "formatterClipboardParams", "formatterHtmlOutput", "formatterHtmlOutputParams"];
-
- //////////////// Event Bindings /////////////////
-
-
- //////////////// Object Generation /////////////////
-
- Column.prototype.getComponent = function () {
-
- return new ColumnComponent(this);
- };
-
- var RowManager = function RowManager(table) {
-
- this.table = table;
-
- this.element = this.createHolderElement(); //containing element
-
- this.tableElement = this.createTableElement(); //table element
-
- this.heightFixer = this.createTableElement(); //table element
-
- this.columnManager = null; //hold column manager object
-
- this.height = 0; //hold height of table element
-
-
- this.firstRender = false; //handle first render
-
- this.renderMode = "virtual"; //current rendering mode
-
- this.fixedHeight = false; //current rendering mode
-
-
- this.rows = []; //hold row data objects
-
- this.activeRows = []; //rows currently available to on display in the table
-
- this.activeRowsCount = 0; //count of active rows
-
-
- this.displayRows = []; //rows currently on display in the table
-
- this.displayRowsCount = 0; //count of display rows
-
-
- this.scrollTop = 0;
-
- this.scrollLeft = 0;
-
- this.vDomRowHeight = 20; //approximation of row heights for padding
-
-
- this.vDomTop = 0; //hold position for first rendered row in the virtual DOM
-
- this.vDomBottom = 0; //hold possition for last rendered row in the virtual DOM
-
-
- this.vDomScrollPosTop = 0; //last scroll position of the vDom top;
-
- this.vDomScrollPosBottom = 0; //last scroll position of the vDom bottom;
-
-
- this.vDomTopPad = 0; //hold value of padding for top of virtual DOM
-
- this.vDomBottomPad = 0; //hold value of padding for bottom of virtual DOM
-
-
- this.vDomMaxRenderChain = 90; //the maximum number of dom elements that can be rendered in 1 go
-
-
- this.vDomWindowBuffer = 0; //window row buffer before removing elements, to smooth scrolling
-
-
- this.vDomWindowMinTotalRows = 20; //minimum number of rows to be generated in virtual dom (prevent buffering issues on tables with tall rows)
-
- this.vDomWindowMinMarginRows = 5; //minimum number of rows to be generated in virtual dom margin
-
-
- this.vDomTopNewRows = []; //rows to normalize after appending to optimize render speed
-
- this.vDomBottomNewRows = []; //rows to normalize after appending to optimize render speed
-
-
- this.rowNumColumn = false; //hold column component for row number column
-
-
- this.redrawBlock = false; //prevent redraws to allow multiple data manipulations becore continuing
-
- this.redrawBlockRestoreConfig = false; //store latest redraw function calls for when redraw is needed
-
- this.redrawBlockRederInPosition = false; //store latest redraw function calls for when redraw is needed
- };
-
- //////////////// Setup Functions /////////////////
-
-
- RowManager.prototype.createHolderElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-tableHolder");
-
- el.setAttribute("tabindex", 0);
-
- return el;
- };
-
- RowManager.prototype.createTableElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-table");
-
- return el;
- };
-
- //return containing element
-
- RowManager.prototype.getElement = function () {
-
- return this.element;
- };
-
- //return table element
-
- RowManager.prototype.getTableElement = function () {
-
- return this.tableElement;
- };
-
- //return position of row in table
-
- RowManager.prototype.getRowPosition = function (row, active) {
-
- if (active) {
-
- return this.activeRows.indexOf(row);
- } else {
-
- return this.rows.indexOf(row);
- }
- };
-
- //link to column manager
-
- RowManager.prototype.setColumnManager = function (manager) {
-
- this.columnManager = manager;
- };
-
- RowManager.prototype.initialize = function () {
-
- var self = this;
-
- self.setRenderMode();
-
- //initialize manager
-
- self.element.appendChild(self.tableElement);
-
- self.firstRender = true;
-
- //scroll header along with table body
-
- self.element.addEventListener("scroll", function () {
-
- var left = self.element.scrollLeft;
-
- //handle horizontal scrolling
-
- if (self.scrollLeft != left) {
-
- self.columnManager.scrollHorizontal(left);
-
- if (self.table.options.groupBy) {
-
- self.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (self.table.modExists("columnCalcs")) {
-
- self.table.modules.columnCalcs.scrollHorizontal(left);
- }
-
- self.table.options.scrollHorizontal(left);
- }
-
- self.scrollLeft = left;
- });
-
- //handle virtual dom scrolling
-
- if (this.renderMode === "virtual") {
-
- self.element.addEventListener("scroll", function () {
-
- var top = self.element.scrollTop;
-
- var dir = self.scrollTop > top;
-
- //handle verical scrolling
-
- if (self.scrollTop != top) {
-
- self.scrollTop = top;
-
- self.scrollVertical(dir);
-
- if (self.table.options.ajaxProgressiveLoad == "scroll") {
-
- self.table.modules.ajax.nextPage(self.element.scrollHeight - self.element.clientHeight - top);
- }
-
- self.table.options.scrollVertical(top);
- } else {
-
- self.scrollTop = top;
- }
- });
- }
- };
-
- ////////////////// Row Manipulation //////////////////
-
-
- RowManager.prototype.findRow = function (subject) {
-
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Row) {
-
- //subject is row element
-
- return subject;
- } else if (subject instanceof RowComponent) {
-
- //subject is public row component
-
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
-
- //subject is a HTML element of the row
-
- var match = self.rows.find(function (row) {
-
- return row.element === subject;
- });
-
- return match || false;
- }
- } else if (typeof subject == "undefined" || subject === null) {
-
- return false;
- } else {
-
- //subject should be treated as the index of the row
-
- var _match = self.rows.find(function (row) {
-
- return row.data[self.table.options.index] == subject;
- });
-
- return _match || false;
- }
-
- //catch all for any other type of input
-
-
- return false;
- };
-
- RowManager.prototype.getRowFromDataObject = function (data) {
-
- var match = this.rows.find(function (row) {
-
- return row.data === data;
- });
-
- return match || false;
- };
-
- RowManager.prototype.getRowFromPosition = function (position, active) {
-
- if (active) {
-
- return this.activeRows[position];
- } else {
-
- return this.rows[position];
- }
- };
-
- RowManager.prototype.scrollToRow = function (row, position, ifVisible) {
- var _this9 = this;
-
- var rowIndex = this.getDisplayRows().indexOf(row),
- rowEl = row.getElement(),
- rowTop,
- offset = 0;
-
- return new Promise(function (resolve, reject) {
-
- if (rowIndex > -1) {
-
- if (typeof position === "undefined") {
-
- position = _this9.table.options.scrollToRowPosition;
- }
-
- if (typeof ifVisible === "undefined") {
-
- ifVisible = _this9.table.options.scrollToRowIfVisible;
- }
-
- if (position === "nearest") {
-
- switch (_this9.renderMode) {
-
- case "classic":
-
- rowTop = Tabulator.prototype.helpers.elOffset(rowEl).top;
-
- position = Math.abs(_this9.element.scrollTop - rowTop) > Math.abs(_this9.element.scrollTop + _this9.element.clientHeight - rowTop) ? "bottom" : "top";
-
- break;
-
- case "virtual":
-
- position = Math.abs(_this9.vDomTop - rowIndex) > Math.abs(_this9.vDomBottom - rowIndex) ? "bottom" : "top";
-
- break;
-
- }
- }
-
- //check row visibility
-
- if (!ifVisible) {
-
- if (Tabulator.prototype.helpers.elVisible(rowEl)) {
-
- offset = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top;
-
- if (offset > 0 && offset < _this9.element.clientHeight - rowEl.offsetHeight) {
-
- return false;
- }
- }
- }
-
- //scroll to row
-
- switch (_this9.renderMode) {
-
- case "classic":
-
- _this9.element.scrollTop = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top + _this9.element.scrollTop;
-
- break;
-
- case "virtual":
-
- _this9._virtualRenderFill(rowIndex, true);
-
- break;
-
- }
-
- //align to correct position
-
- switch (position) {
-
- case "middle":
-
- case "center":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
-
- _this9.element.scrollTop = _this9.element.scrollTop + (rowEl.offsetTop - _this9.element.scrollTop) - (_this9.element.scrollHeight - rowEl.offsetTop) / 2;
- } else {
-
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight / 2;
- }
-
- break;
-
- case "bottom":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
-
- _this9.element.scrollTop = _this9.element.scrollTop - (_this9.element.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;
- } else {
-
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight + rowEl.offsetHeight;
- }
-
- break;
-
- }
-
- resolve();
- } else {
-
- console.warn("Scroll Error - Row not visible");
-
- reject("Scroll Error - Row not visible");
- }
- });
- };
-
- ////////////////// Data Handling //////////////////
-
-
- RowManager.prototype.setData = function (data, renderInPosition, columnsChanged) {
- var _this10 = this;
-
- var self = this;
-
- return new Promise(function (resolve, reject) {
-
- if (renderInPosition && _this10.getDisplayRows().length) {
-
- if (self.table.options.pagination) {
-
- self._setDataActual(data, true);
- } else {
-
- _this10.reRenderInPosition(function () {
-
- self._setDataActual(data);
- });
- }
- } else {
-
- if (_this10.table.options.autoColumns && columnsChanged) {
-
- _this10.table.columnManager.generateColumnsFromRowData(data);
- }
-
- _this10.resetScroll();
-
- _this10._setDataActual(data);
- }
-
- resolve();
- });
- };
-
- RowManager.prototype._setDataActual = function (data, renderInPosition) {
-
- var self = this;
-
- self.table.options.dataLoading.call(this.table, data);
-
- this._wipeElements();
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.clear();
- }
-
- if (Array.isArray(data)) {
-
- if (this.table.modExists("selectRow")) {
-
- this.table.modules.selectRow.clearSelectionData();
- }
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
-
- this.table.modules.reactiveData.watchData(data);
- }
-
- data.forEach(function (def, i) {
-
- if (def && (typeof def === 'undefined' ? 'undefined' : _typeof(def)) === "object") {
-
- var row = new Row(def, self);
-
- self.rows.push(row);
- } else {
-
- console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:", def);
- }
- });
-
- self.table.options.dataLoaded.call(this.table, data);
-
- self.refreshActiveData(false, false, renderInPosition);
- } else {
-
- console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ", typeof data === 'undefined' ? 'undefined' : _typeof(data), "\nData: ", data);
- }
- };
-
- RowManager.prototype._wipeElements = function () {
-
- this.rows.forEach(function (row) {
-
- row.wipe();
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.wipe();
- }
-
- this.rows = [];
- };
-
- RowManager.prototype.deleteRow = function (row, blockRedraw) {
-
- var allIndex = this.rows.indexOf(row),
- activeIndex = this.activeRows.indexOf(row);
-
- if (activeIndex > -1) {
-
- this.activeRows.splice(activeIndex, 1);
- }
-
- if (allIndex > -1) {
-
- this.rows.splice(allIndex, 1);
- }
-
- this.setActiveRows(this.activeRows);
-
- this.displayRowIterator(function (rows) {
-
- var displayIndex = rows.indexOf(row);
-
- if (displayIndex > -1) {
-
- rows.splice(displayIndex, 1);
- }
- });
-
- if (!blockRedraw) {
-
- this.reRenderInPosition();
- }
-
- this.regenerateRowNumbers();
-
- this.table.options.rowDeleted.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.updateGroupRows(true);
- } else if (this.table.options.pagination && this.table.modExists("page")) {
-
- this.refreshActiveData(false, false, true);
- } else {
-
- if (this.table.options.pagination && this.table.modExists("page")) {
-
- this.refreshActiveData("page");
- }
- }
- };
-
- RowManager.prototype.addRow = function (data, pos, index, blockRedraw) {
-
- var row = this.addRowActual(data, pos, index, blockRedraw);
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.action("rowAdd", row, { data: data, pos: pos, index: index });
- }
-
- return row;
- };
-
- //add multiple rows
-
- RowManager.prototype.addRows = function (data, pos, index) {
- var _this11 = this;
-
- var self = this,
- length = 0,
- rows = [];
-
- return new Promise(function (resolve, reject) {
-
- pos = _this11.findAddRowPos(pos);
-
- if (!Array.isArray(data)) {
-
- data = [data];
- }
-
- length = data.length - 1;
-
- if (typeof index == "undefined" && pos || typeof index !== "undefined" && !pos) {
-
- data.reverse();
- }
-
- data.forEach(function (item, i) {
-
- var row = self.addRow(item, pos, index, true);
-
- rows.push(row);
- });
-
- if (_this11.table.options.groupBy && _this11.table.modExists("groupRows")) {
-
- _this11.table.modules.groupRows.updateGroupRows(true);
- } else if (_this11.table.options.pagination && _this11.table.modExists("page")) {
-
- _this11.refreshActiveData(false, false, true);
- } else {
-
- _this11.reRenderInPosition();
- }
-
- //recalc column calculations if present
-
- if (_this11.table.modExists("columnCalcs")) {
-
- _this11.table.modules.columnCalcs.recalc(_this11.table.rowManager.activeRows);
- }
-
- _this11.regenerateRowNumbers();
-
- resolve(rows);
- });
- };
-
- RowManager.prototype.findAddRowPos = function (pos) {
-
- if (typeof pos === "undefined") {
-
- pos = this.table.options.addRowPos;
- }
-
- if (pos === "pos") {
-
- pos = true;
- }
-
- if (pos === "bottom") {
-
- pos = false;
- }
-
- return pos;
- };
-
- RowManager.prototype.addRowActual = function (data, pos, index, blockRedraw) {
-
- var row = data instanceof Row ? data : new Row(data || {}, this),
- top = this.findAddRowPos(pos),
- allIndex = -1,
- activeIndex,
- dispRows;
-
- if (!index && this.table.options.pagination && this.table.options.paginationAddRow == "page") {
-
- dispRows = this.getDisplayRows();
-
- if (top) {
-
- if (dispRows.length) {
-
- index = dispRows[0];
- } else {
-
- if (this.activeRows.length) {
-
- index = this.activeRows[this.activeRows.length - 1];
-
- top = false;
- }
- }
- } else {
-
- if (dispRows.length) {
-
- index = dispRows[dispRows.length - 1];
-
- top = dispRows.length < this.table.modules.page.getPageSize() ? false : true;
- }
- }
- }
-
- if (typeof index !== "undefined") {
-
- index = this.findRow(index);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.assignRowToGroup(row);
-
- var groupRows = row.getGroup().rows;
-
- if (groupRows.length > 1) {
-
- if (!index || index && groupRows.indexOf(index) == -1) {
-
- if (top) {
-
- if (groupRows[0] !== row) {
-
- index = groupRows[0];
-
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- } else {
-
- if (groupRows[groupRows.length - 1] !== row) {
-
- index = groupRows[groupRows.length - 1];
-
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- } else {
-
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- }
-
- if (index) {
-
- allIndex = this.rows.indexOf(index);
- }
-
- if (index && allIndex > -1) {
-
- activeIndex = this.activeRows.indexOf(index);
-
- this.displayRowIterator(function (rows) {
-
- var displayIndex = rows.indexOf(index);
-
- if (displayIndex > -1) {
-
- rows.splice(top ? displayIndex : displayIndex + 1, 0, row);
- }
- });
-
- if (activeIndex > -1) {
-
- this.activeRows.splice(top ? activeIndex : activeIndex + 1, 0, row);
- }
-
- this.rows.splice(top ? allIndex : allIndex + 1, 0, row);
- } else {
-
- if (top) {
-
- this.displayRowIterator(function (rows) {
-
- rows.unshift(row);
- });
-
- this.activeRows.unshift(row);
-
- this.rows.unshift(row);
- } else {
-
- this.displayRowIterator(function (rows) {
-
- rows.push(row);
- });
-
- this.activeRows.push(row);
-
- this.rows.push(row);
- }
- }
-
- this.setActiveRows(this.activeRows);
-
- this.table.options.rowAdded.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (!blockRedraw) {
-
- this.reRenderInPosition();
- }
-
- return row;
- };
-
- RowManager.prototype.moveRow = function (from, to, after) {
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.action("rowMove", from, { posFrom: this.getRowPosition(from), posTo: this.getRowPosition(to), to: to, after: after });
- }
-
- this.moveRowActual(from, to, after);
-
- this.regenerateRowNumbers();
-
- this.table.options.rowMoved.call(this.table, from.getComponent());
- };
-
- RowManager.prototype.moveRowActual = function (from, to, after) {
- var _this12 = this;
-
- this._moveRowInArray(this.rows, from, to, after);
-
- this._moveRowInArray(this.activeRows, from, to, after);
-
- this.displayRowIterator(function (rows) {
-
- _this12._moveRowInArray(rows, from, to, after);
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (!after && to instanceof Group) {
-
- to = this.table.rowManager.prevDisplayRow(from) || to;
- }
-
- var toGroup = to.getGroup();
-
- var fromGroup = from.getGroup();
-
- if (toGroup === fromGroup) {
-
- this._moveRowInArray(toGroup.rows, from, to, after);
- } else {
-
- if (fromGroup) {
-
- fromGroup.removeRow(from);
- }
-
- toGroup.insertRow(from, to, after);
- }
- }
- };
-
- RowManager.prototype._moveRowInArray = function (rows, from, to, after) {
-
- var fromIndex, toIndex, start, end;
-
- if (from !== to) {
-
- fromIndex = rows.indexOf(from);
-
- if (fromIndex > -1) {
-
- rows.splice(fromIndex, 1);
-
- toIndex = rows.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
-
- rows.splice(toIndex + 1, 0, from);
- } else {
-
- rows.splice(toIndex, 0, from);
- }
- } else {
-
- rows.splice(fromIndex, 0, from);
- }
- }
-
- //restyle rows
-
- if (rows === this.getDisplayRows()) {
-
- start = fromIndex < toIndex ? fromIndex : toIndex;
-
- end = toIndex > fromIndex ? toIndex : fromIndex + 1;
-
- for (var i = start; i <= end; i++) {
-
- if (rows[i]) {
-
- this.styleRow(rows[i], i);
- }
- }
- }
- }
- };
-
- RowManager.prototype.clearData = function () {
-
- this.setData([]);
- };
-
- RowManager.prototype.getRowIndex = function (row) {
-
- return this.findRowIndex(row, this.rows);
- };
-
- RowManager.prototype.getDisplayRowIndex = function (row) {
-
- var index = this.getDisplayRows().indexOf(row);
-
- return index > -1 ? index : false;
- };
-
- RowManager.prototype.nextDisplayRow = function (row, rowOnly) {
-
- var index = this.getDisplayRowIndex(row),
- nextRow = false;
-
- if (index !== false && index < this.displayRowsCount - 1) {
-
- nextRow = this.getDisplayRows()[index + 1];
- }
-
- if (nextRow && (!(nextRow instanceof Row) || nextRow.type != "row")) {
-
- return this.nextDisplayRow(nextRow, rowOnly);
- }
-
- return nextRow;
- };
-
- RowManager.prototype.prevDisplayRow = function (row, rowOnly) {
-
- var index = this.getDisplayRowIndex(row),
- prevRow = false;
-
- if (index) {
-
- prevRow = this.getDisplayRows()[index - 1];
- }
-
- if (rowOnly && prevRow && (!(prevRow instanceof Row) || prevRow.type != "row")) {
-
- return this.prevDisplayRow(prevRow, rowOnly);
- }
-
- return prevRow;
- };
-
- RowManager.prototype.findRowIndex = function (row, list) {
-
- var rowIndex;
-
- row = this.findRow(row);
-
- if (row) {
-
- rowIndex = list.indexOf(row);
-
- if (rowIndex > -1) {
-
- return rowIndex;
- }
- }
-
- return false;
- };
-
- RowManager.prototype.getData = function (active, transform) {
-
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
-
- if (row.type == "row") {
-
- output.push(row.getData(transform || "data"));
- }
- });
-
- return output;
- };
-
- RowManager.prototype.getComponents = function (active) {
-
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
-
- output.push(row.getComponent());
- });
-
- return output;
- };
-
- RowManager.prototype.getDataCount = function (active) {
-
- var rows = this.getRows(active);
-
- return rows.length;
- };
-
- RowManager.prototype._genRemoteRequest = function () {
- var _this13 = this;
-
- var table = this.table,
- options = table.options,
- params = {};
-
- if (table.modExists("page")) {
-
- //set sort data if defined
-
- if (options.ajaxSorting) {
-
- var sorters = this.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
-
- delete item.column;
- });
-
- params[this.table.modules.page.paginationDataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
-
- if (options.ajaxFiltering) {
-
- var filters = this.table.modules.filter.getFilters(true, true);
-
- params[this.table.modules.page.paginationDataSentNames.filters] = filters;
- }
-
- this.table.modules.ajax.setParams(params, true);
- }
-
- table.modules.ajax.sendRequest().then(function (data) {
-
- _this13._setDataActual(data, true);
- }).catch(function (e) {});
- };
-
- //choose the path to refresh data after a filter update
-
- RowManager.prototype.filterRefresh = function () {
-
- var table = this.table,
- options = table.options,
- left = this.scrollLeft;
-
- if (options.ajaxFiltering) {
-
- if (options.pagination == "remote" && table.modExists("page")) {
-
- table.modules.page.reset(true);
-
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
-
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
-
- //assume data is url, make ajax call to url to get data
-
- this._genRemoteRequest();
- }
- } else {
-
- this.refreshActiveData("filter");
- }
-
- this.scrollHorizontal(left);
- };
-
- //choose the path to refresh data after a sorter update
-
- RowManager.prototype.sorterRefresh = function (loadOrignalData) {
-
- var table = this.table,
- options = this.table.options,
- left = this.scrollLeft;
-
- if (options.ajaxSorting) {
-
- if ((options.pagination == "remote" || options.progressiveLoad) && table.modExists("page")) {
-
- table.modules.page.reset(true);
-
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
-
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
-
- //assume data is url, make ajax call to url to get data
-
- this._genRemoteRequest();
- }
- } else {
-
- this.refreshActiveData(loadOrignalData ? "filter" : "sort");
- }
-
- this.scrollHorizontal(left);
- };
-
- RowManager.prototype.scrollHorizontal = function (left) {
-
- this.scrollLeft = left;
-
- this.element.scrollLeft = left;
-
- if (this.table.options.groupBy) {
-
- this.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.scrollHorizontal(left);
- }
- };
-
- //set active data set
-
- RowManager.prototype.refreshActiveData = function (stage, skipStage, renderInPosition) {
-
- var self = this,
- table = this.table,
- cascadeOrder = ["all", "filter", "sort", "display", "freeze", "group", "tree", "page"],
- displayIndex;
-
- if (this.redrawBlock) {
-
- if (!this.redrawBlockRestoreConfig || cascadeOrder.indexOf(stage) < cascadeOrder.indexOf(this.redrawBlockRestoreConfig.stage)) {
-
- this.redrawBlockRestoreConfig = {
-
- stage: stage,
-
- skipStage: skipStage,
-
- renderInPosition: renderInPosition
-
- };
- }
-
- return;
- } else {
-
- if (self.table.modExists("edit")) {
-
- self.table.modules.edit.cancelEdit();
- }
-
- if (!stage) {
-
- stage = "all";
- }
-
- if (table.options.selectable && !table.options.selectablePersistence && table.modExists("selectRow")) {
-
- table.modules.selectRow.deselectRows();
- }
-
- //cascade through data refresh stages
-
- switch (stage) {
-
- case "all":
-
- case "filter":
-
- if (!skipStage) {
-
- if (table.modExists("filter")) {
-
- self.setActiveRows(table.modules.filter.filter(self.rows));
- } else {
-
- self.setActiveRows(self.rows.slice(0));
- }
- } else {
-
- skipStage = false;
- }
-
- case "sort":
-
- if (!skipStage) {
-
- if (table.modExists("sort")) {
-
- table.modules.sort.sort(this.activeRows);
- }
- } else {
-
- skipStage = false;
- }
-
- //regenerate row numbers for row number formatter if in use
-
- this.regenerateRowNumbers();
-
- //generic stage to allow for pipeline trigger after the data manipulation stage
-
- case "display":
-
- this.resetDisplayRows();
-
- case "freeze":
-
- if (!skipStage) {
-
- if (this.table.modExists("frozenRows")) {
-
- if (table.modules.frozenRows.isFrozen()) {
-
- if (!table.modules.frozenRows.getDisplayIndex()) {
-
- table.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.frozenRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.frozenRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.frozenRows.setDisplayIndex(displayIndex);
- }
- }
- }
- } else {
-
- skipStage = false;
- }
-
- case "group":
-
- if (!skipStage) {
-
- if (table.options.groupBy && table.modExists("groupRows")) {
-
- if (!table.modules.groupRows.getDisplayIndex()) {
-
- table.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.groupRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.groupRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.groupRows.setDisplayIndex(displayIndex);
- }
- }
- } else {
-
- skipStage = false;
- }
-
- case "tree":
-
- if (!skipStage) {
-
- if (table.options.dataTree && table.modExists("dataTree")) {
-
- if (!table.modules.dataTree.getDisplayIndex()) {
-
- table.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.dataTree.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.dataTree.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.dataTree.setDisplayIndex(displayIndex);
- }
- }
- } else {
-
- skipStage = false;
- }
-
- if (table.options.pagination && table.modExists("page") && !renderInPosition) {
-
- if (table.modules.page.getMode() == "local") {
-
- table.modules.page.reset();
- }
- }
-
- case "page":
-
- if (!skipStage) {
-
- if (table.options.pagination && table.modExists("page")) {
-
- if (!table.modules.page.getDisplayIndex()) {
-
- table.modules.page.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.page.getDisplayIndex();
-
- if (table.modules.page.getMode() == "local") {
-
- table.modules.page.setMaxRows(this.getDisplayRows(displayIndex - 1).length);
- }
-
- displayIndex = self.setDisplayRows(table.modules.page.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.page.setDisplayIndex(displayIndex);
- }
- }
- } else {
-
- skipStage = false;
- }
-
- }
-
- if (Tabulator.prototype.helpers.elVisible(self.element)) {
-
- if (renderInPosition) {
-
- self.reRenderInPosition();
- } else {
-
- self.renderTable();
-
- if (table.options.layoutColumnsOnNewData) {
-
- self.table.columnManager.redraw(true);
- }
- }
- }
-
- if (table.modExists("columnCalcs")) {
-
- table.modules.columnCalcs.recalc(this.activeRows);
- }
- }
- };
-
- //regenerate row numbers for row number formatter if in use
-
- RowManager.prototype.regenerateRowNumbers = function () {
- var _this14 = this;
-
- if (this.rowNumColumn) {
-
- this.activeRows.forEach(function (row) {
-
- var cell = row.getCell(_this14.rowNumColumn);
-
- if (cell) {
-
- cell._generateContents();
- }
- });
- }
- };
-
- RowManager.prototype.setActiveRows = function (activeRows) {
-
- this.activeRows = activeRows;
-
- this.activeRowsCount = this.activeRows.length;
- };
-
- //reset display rows array
-
- RowManager.prototype.resetDisplayRows = function () {
-
- this.displayRows = [];
-
- this.displayRows.push(this.activeRows.slice(0));
-
- this.displayRowsCount = this.displayRows[0].length;
-
- if (this.table.modExists("frozenRows")) {
-
- this.table.modules.frozenRows.setDisplayIndex(0);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.setDisplayIndex(0);
- }
-
- if (this.table.options.pagination && this.table.modExists("page")) {
-
- this.table.modules.page.setDisplayIndex(0);
- }
- };
-
- RowManager.prototype.getNextDisplayIndex = function () {
-
- return this.displayRows.length;
- };
-
- //set display row pipeline data
-
- RowManager.prototype.setDisplayRows = function (displayRows, index) {
-
- var output = true;
-
- if (index && typeof this.displayRows[index] != "undefined") {
-
- this.displayRows[index] = displayRows;
-
- output = true;
- } else {
-
- this.displayRows.push(displayRows);
-
- output = index = this.displayRows.length - 1;
- }
-
- if (index == this.displayRows.length - 1) {
-
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
- }
-
- return output;
- };
-
- RowManager.prototype.getDisplayRows = function (index) {
-
- if (typeof index == "undefined") {
-
- return this.displayRows.length ? this.displayRows[this.displayRows.length - 1] : [];
- } else {
-
- return this.displayRows[index] || [];
- }
- };
-
- RowManager.prototype.getVisibleRows = function (viewable) {
-
- var topEdge = this.element.scrollTop,
- bottomEdge = this.element.clientHeight + topEdge,
- topFound = false,
- topRow = 0,
- bottomRow = 0,
- rows = this.getDisplayRows();
-
- if (viewable) {
-
- this.getDisplayRows();
-
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
-
- if (rows[i]) {
-
- if (!topFound) {
-
- if (topEdge - rows[i].getElement().offsetTop >= 0) {
-
- topRow = i;
- } else {
-
- topFound = true;
-
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
-
- bottomRow = i;
- } else {
-
- break;
- }
- }
- } else {
-
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
-
- bottomRow = i;
- } else {
-
- break;
- }
- }
- }
- }
- } else {
-
- topRow = this.vDomTop;
-
- bottomRow = this.vDomBottom;
- }
-
- return rows.slice(topRow, bottomRow + 1);
- };
-
- //repeat action accross display rows
-
- RowManager.prototype.displayRowIterator = function (callback) {
-
- this.displayRows.forEach(callback);
-
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
- };
-
- //return only actual rows (not group headers etc)
-
- RowManager.prototype.getRows = function (active) {
-
- var rows;
-
- switch (active) {
-
- case "active":
-
- rows = this.activeRows;
-
- break;
-
- case "display":
-
- rows = this.table.rowManager.getDisplayRows();
-
- break;
-
- case "visible":
-
- rows = this.getVisibleRows(true);
-
- break;
-
- default:
-
- rows = this.rows;
-
- }
-
- return rows;
- };
-
- ///////////////// Table Rendering /////////////////
-
-
- //trigger rerender of table in current position
-
- RowManager.prototype.reRenderInPosition = function (callback) {
-
- if (this.getRenderMode() == "virtual") {
-
- if (this.redrawBlock) {
-
- if (callback) {
-
- callback();
- } else {
-
- this.redrawBlockRederInPosition = true;
- }
- } else {
-
- var scrollTop = this.element.scrollTop;
-
- var topRow = false;
-
- var topOffset = false;
-
- var left = this.scrollLeft;
-
- var rows = this.getDisplayRows();
-
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
-
- if (rows[i]) {
-
- var diff = scrollTop - rows[i].getElement().offsetTop;
-
- if (topOffset === false || Math.abs(diff) < topOffset) {
-
- topOffset = diff;
-
- topRow = i;
- } else {
-
- break;
- }
- }
- }
-
- if (callback) {
-
- callback();
- }
-
- this._virtualRenderFill(topRow === false ? this.displayRowsCount - 1 : topRow, true, topOffset || 0);
-
- this.scrollHorizontal(left);
- }
- } else {
-
- this.renderTable();
-
- if (callback) {
-
- callback();
- }
- }
- };
-
- RowManager.prototype.setRenderMode = function () {
-
- if (this.table.options.virtualDom) {
-
- this.renderMode = "virtual";
-
- if (this.table.element.clientHeight || this.table.options.height) {
-
- this.fixedHeight = true;
- } else {
-
- this.fixedHeight = false;
- }
- } else {
-
- this.renderMode = "classic";
- }
- };
-
- RowManager.prototype.getRenderMode = function () {
-
- return this.renderMode;
- };
-
- RowManager.prototype.renderTable = function () {
-
- this.table.options.renderStarted.call(this.table);
-
- this.element.scrollTop = 0;
-
- switch (this.renderMode) {
-
- case "classic":
-
- this._simpleRender();
-
- break;
-
- case "virtual":
-
- this._virtualRenderFill();
-
- break;
-
- }
-
- if (this.firstRender) {
-
- if (this.displayRowsCount) {
-
- this.firstRender = false;
-
- this.table.modules.layout.layout();
- } else {
-
- this.renderEmptyScroll();
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
-
- if (!this.displayRowsCount) {
-
- if (this.table.options.placeholder) {
-
- this.table.options.placeholder.setAttribute("tabulator-render-mode", this.renderMode);
-
- this.getElement().appendChild(this.table.options.placeholder);
-
- this.table.options.placeholder.style.width = this.table.columnManager.getWidth() + "px";
- }
- }
-
- this.table.options.renderComplete.call(this.table);
- };
-
- //simple render on heightless table
-
- RowManager.prototype._simpleRender = function () {
-
- this._clearVirtualDom();
-
- if (this.displayRowsCount) {
-
- this.checkClassicModeGroupHeaderWidth();
- } else {
-
- this.renderEmptyScroll();
- }
- };
-
- RowManager.prototype.checkClassicModeGroupHeaderWidth = function () {
-
- var self = this,
- element = this.tableElement,
- onlyGroupHeaders = true;
-
- self.getDisplayRows().forEach(function (row, index) {
-
- self.styleRow(row, index);
-
- element.appendChild(row.getElement());
-
- row.initialize(true);
-
- if (row.type !== "group") {
-
- onlyGroupHeaders = false;
- }
- });
-
- if (onlyGroupHeaders) {
-
- element.style.minWidth = self.table.columnManager.getWidth() + "px";
- } else {
-
- element.style.minWidth = "";
- }
- };
-
- //show scrollbars on empty table div
-
- RowManager.prototype.renderEmptyScroll = function () {
-
- if (this.table.options.placeholder) {
-
- this.tableElement.style.display = "none";
- } else {
-
- this.tableElement.style.minWidth = this.table.columnManager.getWidth() + "px";
-
- this.tableElement.style.minHeight = "1px";
-
- this.tableElement.style.visibility = "hidden";
- }
- };
-
- RowManager.prototype._clearVirtualDom = function () {
-
- var element = this.tableElement;
-
- if (this.table.options.placeholder && this.table.options.placeholder.parentNode) {
-
- this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);
- }
-
- // element.children.detach();
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.style.paddingTop = "";
-
- element.style.paddingBottom = "";
-
- element.style.minWidth = "";
-
- element.style.minHeight = "";
-
- element.style.display = "";
-
- element.style.visibility = "";
-
- this.scrollTop = 0;
-
- this.scrollLeft = 0;
-
- this.vDomTop = 0;
-
- this.vDomBottom = 0;
-
- this.vDomTopPad = 0;
-
- this.vDomBottomPad = 0;
- };
-
- RowManager.prototype.styleRow = function (row, index) {
-
- var rowEl = row.getElement();
-
- if (index % 2) {
-
- rowEl.classList.add("tabulator-row-even");
-
- rowEl.classList.remove("tabulator-row-odd");
- } else {
-
- rowEl.classList.add("tabulator-row-odd");
-
- rowEl.classList.remove("tabulator-row-even");
- }
- };
-
- //full virtual render
-
- RowManager.prototype._virtualRenderFill = function (position, forceMove, offset) {
-
- var self = this,
- element = self.tableElement,
- holder = self.element,
- topPad = 0,
- rowsHeight = 0,
- topPadHeight = 0,
- i = 0,
- onlyGroupHeaders = true,
- rows = self.getDisplayRows();
-
- position = position || 0;
-
- offset = offset || 0;
-
- if (!position) {
-
- self._clearVirtualDom();
- } else {
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //check if position is too close to bottom of table
-
- var heightOccupied = (self.displayRowsCount - position + 1) * self.vDomRowHeight;
-
- if (heightOccupied < self.height) {
-
- position -= Math.ceil((self.height - heightOccupied) / self.vDomRowHeight);
-
- if (position < 0) {
-
- position = 0;
- }
- }
-
- //calculate initial pad
-
- topPad = Math.min(Math.max(Math.floor(self.vDomWindowBuffer / self.vDomRowHeight), self.vDomWindowMinMarginRows), position);
-
- position -= topPad;
- }
-
- if (self.displayRowsCount && Tabulator.prototype.helpers.elVisible(self.element)) {
-
- self.vDomTop = position;
-
- self.vDomBottom = position - 1;
-
- while ((rowsHeight <= self.height + self.vDomWindowBuffer || i < self.vDomWindowMinTotalRows) && self.vDomBottom < self.displayRowsCount - 1) {
-
- var index = self.vDomBottom + 1,
- row = rows[index],
- rowHeight = 0;
-
- self.styleRow(row, index);
-
- element.appendChild(row.getElement());
-
- if (!row.initialized) {
-
- row.initialize(true);
- } else {
-
- if (!row.heightInitialized) {
-
- row.normalizeHeight(true);
- }
- }
-
- rowHeight = row.getHeight();
-
- if (i < topPad) {
-
- topPadHeight += rowHeight;
- } else {
-
- rowsHeight += rowHeight;
- }
-
- if (rowHeight > this.vDomWindowBuffer) {
-
- this.vDomWindowBuffer = rowHeight * 2;
- }
-
- if (row.type !== "group") {
-
- onlyGroupHeaders = false;
- }
-
- self.vDomBottom++;
-
- i++;
- }
-
- if (!position) {
-
- this.vDomTopPad = 0;
-
- //adjust rowheight to match average of rendered elements
-
- self.vDomRowHeight = Math.floor((rowsHeight + topPadHeight) / i);
-
- self.vDomBottomPad = self.vDomRowHeight * (self.displayRowsCount - self.vDomBottom - 1);
-
- self.vDomScrollHeight = topPadHeight + rowsHeight + self.vDomBottomPad - self.height;
- } else {
-
- self.vDomTopPad = !forceMove ? self.scrollTop - topPadHeight : self.vDomRowHeight * this.vDomTop + offset;
-
- self.vDomBottomPad = self.vDomBottom == self.displayRowsCount - 1 ? 0 : Math.max(self.vDomScrollHeight - self.vDomTopPad - rowsHeight - topPadHeight, 0);
- }
-
- element.style.paddingTop = self.vDomTopPad + "px";
-
- element.style.paddingBottom = self.vDomBottomPad + "px";
-
- if (forceMove) {
-
- this.scrollTop = self.vDomTopPad + topPadHeight + offset - (this.element.scrollWidth > this.element.clientWidth ? this.element.offsetHeight - this.element.clientHeight : 0);
- }
-
- this.scrollTop = Math.min(this.scrollTop, this.element.scrollHeight - this.height);
-
- //adjust for horizontal scrollbar if present (and not at top of table)
-
- if (this.element.scrollWidth > this.element.offsetWidth && forceMove) {
-
- this.scrollTop += this.element.offsetHeight - this.element.clientHeight;
- }
-
- this.vDomScrollPosTop = this.scrollTop;
-
- this.vDomScrollPosBottom = this.scrollTop;
-
- holder.scrollTop = this.scrollTop;
-
- element.style.minWidth = onlyGroupHeaders ? self.table.columnManager.getWidth() + "px" : "";
-
- if (self.table.options.groupBy) {
-
- if (self.table.modules.layout.getMode() != "fitDataFill" && self.displayRowsCount == self.table.modules.groupRows.countGroups()) {
-
- self.tableElement.style.minWidth = self.table.columnManager.getWidth();
- }
- }
- } else {
-
- this.renderEmptyScroll();
- }
-
- if (!this.fixedHeight) {
-
- this.adjustTableSize();
- }
- };
-
- //handle vertical scrolling
-
- RowManager.prototype.scrollVertical = function (dir) {
-
- var topDiff = this.scrollTop - this.vDomScrollPosTop;
-
- var bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
-
- var margin = this.vDomWindowBuffer * 2;
-
- if (-topDiff > margin || bottomDiff > margin) {
-
- //if big scroll redraw table;
-
- var left = this.scrollLeft;
-
- this._virtualRenderFill(Math.floor(this.element.scrollTop / this.element.scrollHeight * this.displayRowsCount));
-
- this.scrollHorizontal(left);
- } else {
-
- if (dir) {
-
- //scrolling up
-
- if (topDiff < 0) {
-
- this._addTopRow(-topDiff);
- }
-
- if (bottomDiff < 0) {
-
- //hide bottom row if needed
-
- if (this.vDomScrollHeight - this.scrollTop > this.vDomWindowBuffer) {
-
- this._removeBottomRow(-bottomDiff);
- } else {
-
- this.vDomScrollPosBottom = this.scrollTop;
- }
- }
- } else {
-
- //scrolling down
-
- if (topDiff >= 0) {
-
- //hide top row if needed
-
- if (this.scrollTop > this.vDomWindowBuffer) {
-
- this._removeTopRow(topDiff);
- } else {
-
- this.vDomScrollPosTop = this.scrollTop;
- }
- }
-
- if (bottomDiff >= 0) {
-
- this._addBottomRow(bottomDiff);
- }
- }
- }
- };
-
- RowManager.prototype._addTopRow = function (topDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomTop) {
-
- var index = this.vDomTop - 1,
- topRow = rows[index],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- //hide top row if needed
-
- if (topDiff >= topRowHeight) {
-
- this.styleRow(topRow, index);
-
- table.insertBefore(topRow.getElement(), table.firstChild);
-
- if (!topRow.initialized || !topRow.heightInitialized) {
-
- this.vDomTopNewRows.push(topRow);
-
- if (!topRow.heightInitialized) {
-
- topRow.clearCellHeight();
- }
- }
-
- topRow.initialize();
-
- this.vDomTopPad -= topRowHeight;
-
- if (this.vDomTopPad < 0) {
-
- this.vDomTopPad = index * this.vDomRowHeight;
- }
-
- if (!index) {
-
- this.vDomTopPad = 0;
- }
-
- table.style.paddingTop = this.vDomTopPad + "px";
-
- this.vDomScrollPosTop -= topRowHeight;
-
- this.vDomTop--;
- }
-
- topDiff = -(this.scrollTop - this.vDomScrollPosTop);
-
- if (topRow.getHeight() > this.vDomWindowBuffer) {
-
- this.vDomWindowBuffer = topRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomTop && topDiff >= (rows[this.vDomTop - 1].getHeight() || this.vDomRowHeight)) {
-
- this._addTopRow(topDiff, i + 1);
- } else {
-
- this._quickNormalizeRowHeight(this.vDomTopNewRows);
- }
- }
- };
-
- RowManager.prototype._removeTopRow = function (topDiff) {
-
- var table = this.tableElement,
- topRow = this.getDisplayRows()[this.vDomTop],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- if (topDiff >= topRowHeight) {
-
- var rowEl = topRow.getElement();
-
- rowEl.parentNode.removeChild(rowEl);
-
- this.vDomTopPad += topRowHeight;
-
- table.style.paddingTop = this.vDomTopPad + "px";
-
- this.vDomScrollPosTop += this.vDomTop ? topRowHeight : topRowHeight + this.vDomWindowBuffer;
-
- this.vDomTop++;
-
- topDiff = this.scrollTop - this.vDomScrollPosTop;
-
- this._removeTopRow(topDiff);
- }
- };
-
- RowManager.prototype._addBottomRow = function (bottomDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomBottom < this.displayRowsCount - 1) {
-
- var index = this.vDomBottom + 1,
- bottomRow = rows[index],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- //hide bottom row if needed
-
- if (bottomDiff >= bottomRowHeight) {
-
- this.styleRow(bottomRow, index);
-
- table.appendChild(bottomRow.getElement());
-
- if (!bottomRow.initialized || !bottomRow.heightInitialized) {
-
- this.vDomBottomNewRows.push(bottomRow);
-
- if (!bottomRow.heightInitialized) {
-
- bottomRow.clearCellHeight();
- }
- }
-
- bottomRow.initialize();
-
- this.vDomBottomPad -= bottomRowHeight;
-
- if (this.vDomBottomPad < 0 || index == this.displayRowsCount - 1) {
-
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
-
- this.vDomScrollPosBottom += bottomRowHeight;
-
- this.vDomBottom++;
- }
-
- bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
-
- if (bottomRow.getHeight() > this.vDomWindowBuffer) {
-
- this.vDomWindowBuffer = bottomRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomBottom < this.displayRowsCount - 1 && bottomDiff >= (rows[this.vDomBottom + 1].getHeight() || this.vDomRowHeight)) {
-
- this._addBottomRow(bottomDiff, i + 1);
- } else {
-
- this._quickNormalizeRowHeight(this.vDomBottomNewRows);
- }
- }
- };
-
- RowManager.prototype._removeBottomRow = function (bottomDiff) {
-
- var table = this.tableElement,
- bottomRow = this.getDisplayRows()[this.vDomBottom],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- if (bottomDiff >= bottomRowHeight) {
-
- var rowEl = bottomRow.getElement();
-
- if (rowEl.parentNode) {
-
- rowEl.parentNode.removeChild(rowEl);
- }
-
- this.vDomBottomPad += bottomRowHeight;
-
- if (this.vDomBottomPad < 0) {
-
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
-
- this.vDomScrollPosBottom -= bottomRowHeight;
-
- this.vDomBottom--;
-
- bottomDiff = -(this.scrollTop - this.vDomScrollPosBottom);
-
- this._removeBottomRow(bottomDiff);
- }
- };
-
- RowManager.prototype._quickNormalizeRowHeight = function (rows) {
-
- rows.forEach(function (row) {
-
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
-
- row.setCellHeight();
- });
-
- rows.length = 0;
- };
-
- //normalize height of active rows
-
- RowManager.prototype.normalizeHeight = function () {
-
- this.activeRows.forEach(function (row) {
-
- row.normalizeHeight();
- });
- };
-
- //adjust the height of the table holder to fit in the Tabulator element
-
- RowManager.prototype.adjustTableSize = function () {
-
- var initialHeight = this.element.clientHeight,
- modExists;
-
- if (this.renderMode === "virtual") {
-
- var otherHeight = this.columnManager.getElement().offsetHeight + (this.table.footerManager && !this.table.footerManager.external ? this.table.footerManager.getElement().offsetHeight : 0);
-
- if (this.fixedHeight) {
-
- this.element.style.minHeight = "calc(100% - " + otherHeight + "px)";
-
- this.element.style.height = "calc(100% - " + otherHeight + "px)";
-
- this.element.style.maxHeight = "calc(100% - " + otherHeight + "px)";
- } else {
-
- this.element.style.height = "";
-
- this.element.style.height = this.table.element.clientHeight - otherHeight + "px";
-
- this.element.scrollTop = this.scrollTop;
- }
-
- this.height = this.element.clientHeight;
-
- this.vDomWindowBuffer = this.table.options.virtualDomBuffer || this.height;
-
- //check if the table has changed size when dealing with variable height tables
-
- if (!this.fixedHeight && initialHeight != this.element.clientHeight) {
-
- modExists = this.table.modExists("resizeTable");
-
- if (modExists && !this.table.modules.resizeTable.autoResize || !modExists) {
-
- this.redraw();
- }
- }
- }
- };
-
- //renitialize all rows
-
- RowManager.prototype.reinitialize = function () {
-
- this.rows.forEach(function (row) {
-
- row.reinitialize();
- });
- };
-
- //prevent table from being redrawn
-
- RowManager.prototype.blockRedraw = function () {
-
- this.redrawBlock = true;
-
- this.redrawBlockRestoreConfig = false;
- };
-
- //restore table redrawing
-
- RowManager.prototype.restoreRedraw = function () {
-
- this.redrawBlock = false;
-
- if (this.redrawBlockRestoreConfig) {
-
- this.refreshActiveData(this.redrawBlockRestoreConfig.stage, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition);
-
- this.redrawBlockRestoreConfig = false;
- } else {
-
- if (this.redrawBlockRederInPosition) {
-
- this.reRenderInPosition();
- }
- }
-
- this.redrawBlockRederInPosition = false;
- };
-
- //redraw table
-
- RowManager.prototype.redraw = function (force) {
-
- var pos = 0,
- left = this.scrollLeft;
-
- this.adjustTableSize();
-
- this.table.tableWidth = this.table.element.clientWidth;
-
- if (!force) {
-
- if (this.renderMode == "classic") {
-
- if (this.table.options.groupBy) {
-
- this.refreshActiveData("group", false, false);
- } else {
-
- this._simpleRender();
- }
- } else {
-
- this.reRenderInPosition();
-
- this.scrollHorizontal(left);
- }
-
- if (!this.displayRowsCount) {
-
- if (this.table.options.placeholder) {
-
- this.getElement().appendChild(this.table.options.placeholder);
- }
- }
- } else {
-
- this.renderTable();
- }
- };
-
- RowManager.prototype.resetScroll = function () {
-
- this.element.scrollLeft = 0;
-
- this.element.scrollTop = 0;
-
- if (this.table.browser === "ie") {
-
- var event = document.createEvent("Event");
-
- event.initEvent("scroll", false, true);
-
- this.element.dispatchEvent(event);
- } else {
-
- this.element.dispatchEvent(new Event('scroll'));
- }
- };
-
- //public row object
-
- var RowComponent = function RowComponent(row) {
-
- this._row = row;
- };
-
- RowComponent.prototype.getData = function (transform) {
-
- return this._row.getData(transform);
- };
-
- RowComponent.prototype.getElement = function () {
-
- return this._row.getElement();
- };
-
- RowComponent.prototype.getCells = function () {
-
- var cells = [];
-
- this._row.getCells().forEach(function (cell) {
-
- cells.push(cell.getComponent());
- });
-
- return cells;
- };
-
- RowComponent.prototype.getCell = function (column) {
-
- var cell = this._row.getCell(column);
-
- return cell ? cell.getComponent() : false;
- };
-
- RowComponent.prototype.getIndex = function () {
-
- return this._row.getData("data")[this._row.table.options.index];
- };
-
- RowComponent.prototype.getPosition = function (active) {
-
- return this._row.table.rowManager.getRowPosition(this._row, active);
- };
-
- RowComponent.prototype.delete = function () {
-
- return this._row.delete();
- };
-
- RowComponent.prototype.scrollTo = function () {
-
- return this._row.table.rowManager.scrollToRow(this._row);
- };
-
- RowComponent.prototype.pageTo = function () {
-
- if (this._row.table.modExists("page", true)) {
-
- return this._row.table.modules.page.setPageToRow(this._row);
- }
- };
-
- RowComponent.prototype.move = function (to, after) {
-
- this._row.moveToRow(to, after);
- };
-
- RowComponent.prototype.update = function (data) {
-
- return this._row.updateData(data);
- };
-
- RowComponent.prototype.normalizeHeight = function () {
-
- this._row.normalizeHeight(true);
- };
-
- RowComponent.prototype.select = function () {
-
- this._row.table.modules.selectRow.selectRows(this._row);
- };
-
- RowComponent.prototype.deselect = function () {
-
- this._row.table.modules.selectRow.deselectRows(this._row);
- };
-
- RowComponent.prototype.toggleSelect = function () {
-
- this._row.table.modules.selectRow.toggleRow(this._row);
- };
-
- RowComponent.prototype.isSelected = function () {
-
- return this._row.table.modules.selectRow.isRowSelected(this._row);
- };
-
- RowComponent.prototype._getSelf = function () {
-
- return this._row;
- };
-
- RowComponent.prototype.freeze = function () {
-
- if (this._row.table.modExists("frozenRows", true)) {
-
- this._row.table.modules.frozenRows.freezeRow(this._row);
- }
- };
-
- RowComponent.prototype.unfreeze = function () {
-
- if (this._row.table.modExists("frozenRows", true)) {
-
- this._row.table.modules.frozenRows.unfreezeRow(this._row);
- }
- };
-
- RowComponent.prototype.treeCollapse = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- this._row.table.modules.dataTree.collapseRow(this._row);
- }
- };
-
- RowComponent.prototype.treeExpand = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- this._row.table.modules.dataTree.expandRow(this._row);
- }
- };
-
- RowComponent.prototype.treeToggle = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- this._row.table.modules.dataTree.toggleRow(this._row);
- }
- };
-
- RowComponent.prototype.getTreeParent = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- return this._row.table.modules.dataTree.getTreeParent(this._row);
- }
-
- return false;
- };
-
- RowComponent.prototype.getTreeChildren = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- return this._row.table.modules.dataTree.getTreeChildren(this._row);
- }
-
- return false;
- };
-
- RowComponent.prototype.reformat = function () {
-
- return this._row.reinitialize();
- };
-
- RowComponent.prototype.getGroup = function () {
-
- return this._row.getGroup().getComponent();
- };
-
- RowComponent.prototype.getTable = function () {
-
- return this._row.table;
- };
-
- RowComponent.prototype.getNextRow = function () {
-
- var row = this._row.nextRow();
-
- return row ? row.getComponent() : row;
- };
-
- RowComponent.prototype.getPrevRow = function () {
-
- var row = this._row.prevRow();
-
- return row ? row.getComponent() : row;
- };
-
- var Row = function Row(data, parent) {
- var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "row";
-
-
- this.table = parent.table;
-
- this.parent = parent;
-
- this.data = {};
-
- this.type = type; //type of element
-
- this.element = this.createElement();
-
- this.modules = {}; //hold module variables;
-
- this.cells = [];
-
- this.height = 0; //hold element height
-
- this.heightStyled = ""; //hold element height prestyled to improve render efficiency
-
- this.manualHeight = false; //user has manually set row height
-
- this.outerHeight = 0; //holde lements outer height
-
- this.initialized = false; //element has been rendered
-
- this.heightInitialized = false; //element has resized cells to fit
-
-
- this.setData(data);
-
- this.generateElement();
- };
-
- Row.prototype.createElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
-
- el.setAttribute("role", "row");
-
- return el;
- };
-
- Row.prototype.getElement = function () {
-
- return this.element;
- };
-
- Row.prototype.detachElement = function () {
-
- if (this.element && this.element.parentNode) {
-
- this.element.parentNode.removeChild(this.element);
- }
- };
-
- Row.prototype.generateElement = function () {
-
- var self = this,
- dblTap,
- tapHold,
- tap;
-
- //set row selection characteristics
-
- if (self.table.options.selectable !== false && self.table.modExists("selectRow")) {
-
- self.table.modules.selectRow.initializeRow(this);
- }
-
- //setup movable rows
-
- if (self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
-
- self.table.modules.moveRow.initializeRow(this);
- }
-
- //setup data tree
-
- if (self.table.options.dataTree !== false && self.table.modExists("dataTree")) {
-
- self.table.modules.dataTree.initializeRow(this);
- }
-
- //setup column colapse container
-
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
-
- self.table.modules.responsiveLayout.initializeRow(this);
- }
-
- //set column menu
-
- if (self.table.options.rowContextMenu && this.table.modExists("menu")) {
-
- self.table.modules.menu.initializeRow(this);
- }
-
- //handle row click events
-
- if (self.table.options.rowClick) {
-
- self.element.addEventListener("click", function (e) {
-
- self.table.options.rowClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowDblClick) {
-
- self.element.addEventListener("dblclick", function (e) {
-
- self.table.options.rowDblClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowContext) {
-
- self.element.addEventListener("contextmenu", function (e) {
-
- self.table.options.rowContext(e, self.getComponent());
- });
- }
-
- //handle mouse events
-
- if (self.table.options.rowMouseEnter) {
-
- self.element.addEventListener("mouseenter", function (e) {
-
- self.table.options.rowMouseEnter(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseLeave) {
-
- self.element.addEventListener("mouseleave", function (e) {
-
- self.table.options.rowMouseLeave(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOver) {
-
- self.element.addEventListener("mouseover", function (e) {
-
- self.table.options.rowMouseOver(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOut) {
-
- self.element.addEventListener("mouseout", function (e) {
-
- self.table.options.rowMouseOut(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseMove) {
-
- self.element.addEventListener("mousemove", function (e) {
-
- self.table.options.rowMouseMove(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
-
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- if (tap) {
-
- self.table.options.rowTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.table.options.rowDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
-
- clearTimeout(dblTap);
-
- dblTap = null;
-
- self.table.options.rowDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
-
- clearTimeout(dblTap);
-
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.table.options.rowTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
-
- clearTimeout(tapHold);
-
- tapHold = null;
-
- tap = false;
-
- self.table.options.rowTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = null;
- });
- }
- };
-
- Row.prototype.generateCells = function () {
-
- this.cells = this.table.columnManager.generateCells(this);
- };
-
- //functions to setup on first render
-
- Row.prototype.initialize = function (force) {
-
- var self = this;
-
- if (!self.initialized || force) {
-
- self.deleteCells();
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- } //handle frozen cells
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layoutRow(this);
- }
-
- this.generateCells();
-
- self.cells.forEach(function (cell) {
-
- self.element.appendChild(cell.getElement());
-
- cell.cellRendered();
- });
-
- if (force) {
-
- self.normalizeHeight();
- }
-
- //setup movable rows
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
-
- self.table.modules.dataTree.layoutRow(this);
- }
-
- //setup column colapse container
-
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
-
- self.table.modules.responsiveLayout.layoutRow(this);
- }
-
- if (self.table.options.rowFormatter) {
-
- self.table.options.rowFormatter(self.getComponent());
- }
-
- //set resizable handles
-
- if (self.table.options.resizableRows && self.table.modExists("resizeRows")) {
-
- self.table.modules.resizeRows.initializeRow(self);
- }
-
- self.initialized = true;
- }
- };
-
- Row.prototype.reinitializeHeight = function () {
-
- this.heightInitialized = false;
-
- if (this.element.offsetParent !== null) {
-
- this.normalizeHeight(true);
- }
- };
-
- Row.prototype.reinitialize = function () {
-
- this.initialized = false;
-
- this.heightInitialized = false;
-
- if (!this.manualHeight) {
-
- this.height = 0;
-
- this.heightStyled = "";
- }
-
- if (this.element.offsetParent !== null) {
-
- this.initialize(true);
- }
- };
-
- //get heights when doing bulk row style calcs in virtual DOM
-
- Row.prototype.calcHeight = function (force) {
-
- var maxHeight = 0,
- minHeight = this.table.options.resizableRows ? this.element.clientHeight : 0;
-
- this.cells.forEach(function (cell) {
-
- var height = cell.getHeight();
-
- if (height > maxHeight) {
-
- maxHeight = height;
- }
- });
-
- if (force) {
-
- this.height = Math.max(maxHeight, minHeight);
- } else {
-
- this.height = this.manualHeight ? this.height : Math.max(maxHeight, minHeight);
- }
-
- this.heightStyled = this.height ? this.height + "px" : "";
-
- this.outerHeight = this.element.offsetHeight;
- };
-
- //set of cells
-
- Row.prototype.setCellHeight = function () {
-
- this.cells.forEach(function (cell) {
-
- cell.setHeight();
- });
-
- this.heightInitialized = true;
- };
-
- Row.prototype.clearCellHeight = function () {
-
- this.cells.forEach(function (cell) {
-
- cell.clearHeight();
- });
- };
-
- //normalize the height of elements in the row
-
- Row.prototype.normalizeHeight = function (force) {
-
- if (force) {
-
- this.clearCellHeight();
- }
-
- this.calcHeight(force);
-
- this.setCellHeight();
- };
-
- // Row.prototype.setHeight = function(height){
-
- // this.height = height;
-
-
- // this.setCellHeight();
-
- // };
-
-
- //set height of rows
-
- Row.prototype.setHeight = function (height, force) {
-
- if (this.height != height || force) {
-
- this.manualHeight = true;
-
- this.height = height;
-
- this.heightStyled = height ? height + "px" : "";
-
- this.setCellHeight();
-
- // this.outerHeight = this.element.outerHeight();
-
- this.outerHeight = this.element.offsetHeight;
- }
- };
-
- //return rows outer height
-
- Row.prototype.getHeight = function () {
-
- return this.outerHeight;
- };
-
- //return rows outer Width
-
- Row.prototype.getWidth = function () {
-
- return this.element.offsetWidth;
- };
-
- //////////////// Cell Management /////////////////
-
-
- Row.prototype.deleteCell = function (cell) {
-
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
-
- this.cells.splice(index, 1);
- }
- };
-
- //////////////// Data Management /////////////////
-
-
- Row.prototype.setData = function (data) {
-
- if (this.table.modExists("mutator")) {
-
- data = this.table.modules.mutator.transformRow(data, "data");
- }
-
- this.data = data;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
-
- this.table.modules.reactiveData.watchRow(this);
- }
- };
-
- //update the rows data
-
- Row.prototype.updateData = function (updatedData) {
- var _this15 = this;
-
- var visible = Tabulator.prototype.helpers.elVisible(this.element),
- tempData = {},
- newRowData;
-
- return new Promise(function (resolve, reject) {
-
- if (typeof updatedData === "string") {
-
- updatedData = JSON.parse(updatedData);
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
-
- _this15.table.modules.reactiveData.block();
- }
-
- //mutate incomming data if needed
-
- if (_this15.table.modExists("mutator")) {
-
- tempData = Object.assign(tempData, _this15.data);
-
- tempData = Object.assign(tempData, updatedData);
-
- newRowData = _this15.table.modules.mutator.transformRow(tempData, "data", updatedData);
- } else {
-
- newRowData = updatedData;
- }
-
- //set data
-
- for (var attrname in newRowData) {
-
- _this15.data[attrname] = newRowData[attrname];
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
-
- _this15.table.modules.reactiveData.unblock();
- }
-
- //update affected cells only
-
- for (var attrname in updatedData) {
-
- var columns = _this15.table.columnManager.getColumnsByFieldRoot(attrname);
-
- columns.forEach(function (column) {
-
- var cell = _this15.getCell(column.getField());
-
- if (cell) {
-
- var value = column.getFieldValue(newRowData);
-
- if (cell.getValue() != value) {
-
- cell.setValueProcessData(value);
-
- if (visible) {
-
- cell.cellRendered();
- }
- }
- }
- });
- }
-
- //Partial reinitialization if visible
-
- if (visible) {
-
- _this15.normalizeHeight(true);
-
- if (_this15.table.options.rowFormatter) {
-
- _this15.table.options.rowFormatter(_this15.getComponent());
- }
- } else {
-
- _this15.initialized = false;
-
- _this15.height = 0;
-
- _this15.heightStyled = "";
- }
-
- if (_this15.table.options.dataTree !== false && _this15.table.modExists("dataTree") && _this15.table.modules.dataTree.redrawNeeded(updatedData)) {
-
- _this15.table.modules.dataTree.initializeRow(_this15);
-
- _this15.table.modules.dataTree.layoutRow(_this15);
-
- _this15.table.rowManager.refreshActiveData("tree", false, true);
- }
-
- //this.reinitialize();
-
-
- _this15.table.options.rowUpdated.call(_this15.table, _this15.getComponent());
-
- resolve();
- });
- };
-
- Row.prototype.getData = function (transform) {
-
- var self = this;
-
- if (transform) {
-
- if (self.table.modExists("accessor")) {
-
- return self.table.modules.accessor.transformRow(self.data, transform);
- }
- } else {
-
- return this.data;
- }
- };
-
- Row.prototype.getCell = function (column) {
-
- var match = false;
-
- column = this.table.columnManager.findColumn(column);
-
- match = this.cells.find(function (cell) {
-
- return cell.column === column;
- });
-
- return match;
- };
-
- Row.prototype.getCellIndex = function (findCell) {
-
- return this.cells.findIndex(function (cell) {
-
- return cell === findCell;
- });
- };
-
- Row.prototype.findNextEditableCell = function (index) {
-
- var nextCell = false;
-
- if (index < this.cells.length - 1) {
-
- for (var i = index + 1; i < this.cells.length; i++) {
-
- var cell = this.cells[i];
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
-
- var allowEdit = true;
-
- if (typeof cell.column.modules.edit.check == "function") {
-
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
-
- nextCell = cell;
-
- break;
- }
- }
- }
- }
-
- return nextCell;
- };
-
- Row.prototype.findPrevEditableCell = function (index) {
-
- var prevCell = false;
-
- if (index > 0) {
-
- for (var i = index - 1; i >= 0; i--) {
-
- var cell = this.cells[i],
- allowEdit = true;
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
-
- if (typeof cell.column.modules.edit.check == "function") {
-
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
-
- prevCell = cell;
-
- break;
- }
- }
- }
- }
-
- return prevCell;
- };
-
- Row.prototype.getCells = function () {
-
- return this.cells;
- };
-
- Row.prototype.nextRow = function () {
-
- var row = this.table.rowManager.nextDisplayRow(this, true);
-
- return row || false;
- };
-
- Row.prototype.prevRow = function () {
-
- var row = this.table.rowManager.prevDisplayRow(this, true);
-
- return row || false;
- };
-
- Row.prototype.moveToRow = function (to, before) {
-
- var toRow = this.table.rowManager.findRow(to);
-
- if (toRow) {
-
- this.table.rowManager.moveRowActual(this, toRow, !before);
-
- this.table.rowManager.refreshActiveData("display", false, true);
- } else {
-
- console.warn("Move Error - No matching row found:", to);
- }
- };
-
- ///////////////////// Actions /////////////////////
-
-
- Row.prototype.delete = function () {
- var _this16 = this;
-
- return new Promise(function (resolve, reject) {
-
- var index, rows;
-
- if (_this16.table.options.history && _this16.table.modExists("history")) {
-
- if (_this16.table.options.groupBy && _this16.table.modExists("groupRows")) {
-
- rows = _this16.getGroup().rows;
-
- index = rows.indexOf(_this16);
-
- if (index) {
-
- index = rows[index - 1];
- }
- } else {
-
- index = _this16.table.rowManager.getRowIndex(_this16);
-
- if (index) {
-
- index = _this16.table.rowManager.rows[index - 1];
- }
- }
-
- _this16.table.modules.history.action("rowDelete", _this16, { data: _this16.getData(), pos: !index, index: index });
- }
-
- _this16.deleteActual();
-
- resolve();
- });
- };
-
- Row.prototype.deleteActual = function (blockRedraw) {
-
- var index = this.table.rowManager.getRowIndex(this);
-
- //deselect row if it is selected
-
- if (this.table.modExists("selectRow")) {
-
- this.table.modules.selectRow._deselectRow(this, true);
- }
-
- //cancel edit if row is currently being edited
-
- if (this.table.modExists("edit")) {
-
- if (this.table.modules.edit.currentCell.row === this) {
-
- this.table.modules.edit.cancelEdit();
- }
- }
-
- // if(this.table.options.dataTree && this.table.modExists("dataTree")){
-
- // this.table.modules.dataTree.collapseRow(this, true);
-
- // }
-
-
- //remove any reactive data watchers from row object
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {}
-
- // this.table.modules.reactiveData.unwatchRow(this);
-
- //remove from group
-
- if (this.modules.group) {
-
- this.modules.group.removeRow(this);
- }
-
- this.table.rowManager.deleteRow(this, blockRedraw);
-
- this.deleteCells();
-
- this.initialized = false;
-
- this.heightInitialized = false;
-
- //recalc column calculations if present
-
- if (this.table.modExists("columnCalcs")) {
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.columnCalcs.recalcRowGroup(this);
- } else {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
- };
-
- Row.prototype.deleteCells = function () {
-
- var cellCount = this.cells.length;
-
- for (var i = 0; i < cellCount; i++) {
-
- this.cells[0].delete();
- }
- };
-
- Row.prototype.wipe = function () {
-
- this.deleteCells();
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element = false;
-
- this.modules = {};
-
- if (this.element.parentNode) {
-
- this.element.parentNode.removeChild(this.element);
- }
- };
-
- Row.prototype.getGroup = function () {
-
- return this.modules.group || false;
- };
-
- //////////////// Object Generation /////////////////
-
- Row.prototype.getComponent = function () {
-
- return new RowComponent(this);
- };
-
- //public row object
-
- var CellComponent = function CellComponent(cell) {
-
- this._cell = cell;
- };
-
- CellComponent.prototype.getValue = function () {
-
- return this._cell.getValue();
- };
-
- CellComponent.prototype.getOldValue = function () {
-
- return this._cell.getOldValue();
- };
-
- CellComponent.prototype.getElement = function () {
-
- return this._cell.getElement();
- };
-
- CellComponent.prototype.getRow = function () {
-
- return this._cell.row.getComponent();
- };
-
- CellComponent.prototype.getData = function () {
-
- return this._cell.row.getData();
- };
-
- CellComponent.prototype.getField = function () {
-
- return this._cell.column.getField();
- };
-
- CellComponent.prototype.getColumn = function () {
-
- return this._cell.column.getComponent();
- };
-
- CellComponent.prototype.setValue = function (value, mutate) {
-
- if (typeof mutate == "undefined") {
-
- mutate = true;
- }
-
- this._cell.setValue(value, mutate);
- };
-
- CellComponent.prototype.restoreOldValue = function () {
-
- this._cell.setValueActual(this._cell.getOldValue());
- };
-
- CellComponent.prototype.edit = function (force) {
-
- return this._cell.edit(force);
- };
-
- CellComponent.prototype.cancelEdit = function () {
-
- this._cell.cancelEdit();
- };
-
- CellComponent.prototype.nav = function () {
-
- return this._cell.nav();
- };
-
- CellComponent.prototype.checkHeight = function () {
-
- this._cell.checkHeight();
- };
-
- CellComponent.prototype.getTable = function () {
-
- return this._cell.table;
- };
-
- CellComponent.prototype._getSelf = function () {
-
- return this._cell;
- };
-
- var Cell = function Cell(column, row) {
-
- this.table = column.table;
-
- this.column = column;
-
- this.row = row;
-
- this.element = null;
-
- this.value = null;
-
- this.oldValue = null;
-
- this.modules = {};
-
- this.height = null;
-
- this.width = null;
-
- this.minWidth = null;
-
- this.build();
- };
-
- //////////////// Setup Functions /////////////////
-
-
- //generate element
-
- Cell.prototype.build = function () {
-
- this.generateElement();
-
- this.setWidth();
-
- this._configureCell();
-
- this.setValueActual(this.column.getFieldValue(this.row.data));
- };
-
- Cell.prototype.generateElement = function () {
-
- this.element = document.createElement('div');
-
- this.element.className = "tabulator-cell";
-
- this.element.setAttribute("role", "gridcell");
-
- this.element = this.element;
- };
-
- Cell.prototype._configureCell = function () {
-
- var self = this,
- cellEvents = self.column.cellEvents,
- element = self.element,
- field = this.column.getField(),
- vertAligns = {
-
- top: "flex-start",
-
- bottom: "flex-end",
-
- middle: "center"
-
- },
- hozAligns = {
-
- left: "flex-start",
-
- right: "flex-end",
-
- center: "center"
-
- };
-
- //set text alignment
-
- element.style.textAlign = self.column.hozAlign;
-
- if (self.column.vertAlign) {
-
- element.style.display = "inline-flex";
-
- element.style.alignItems = vertAligns[self.column.vertAlign] || "";
-
- if (self.column.hozAlign) {
-
- element.style.justifyContent = hozAligns[self.column.hozAlign] || "";
- }
- }
-
- if (field) {
-
- element.setAttribute("tabulator-field", field);
- }
-
- //add class to cell if needed
-
- if (self.column.definition.cssClass) {
-
- var classNames = self.column.definition.cssClass.split(" ");
-
- classNames.forEach(function (className) {
-
- element.classList.add(className);
- });
- }
-
- //update tooltip on mouse enter
-
- if (this.table.options.tooltipGenerationMode === "hover") {
-
- element.addEventListener("mouseenter", function (e) {
-
- self._generateTooltip();
- });
- }
-
- self._bindClickEvents(cellEvents);
-
- self._bindTouchEvents(cellEvents);
-
- self._bindMouseEvents(cellEvents);
-
- if (self.column.modules.edit) {
-
- self.table.modules.edit.bindEditor(self);
- }
-
- if (self.column.definition.rowHandle && self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
-
- self.table.modules.moveRow.initializeCell(self);
- }
-
- //hide cell if not visible
-
- if (!self.column.visible) {
-
- self.hide();
- }
- };
-
- Cell.prototype._bindClickEvents = function (cellEvents) {
-
- var self = this,
- element = self.element;
-
- //set event bindings
-
- if (cellEvents.cellClick || self.table.options.cellClick) {
-
- element.addEventListener("click", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellClick) {
-
- cellEvents.cellClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellClick) {
-
- self.table.options.cellClick.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellDblClick || this.table.options.cellDblClick) {
-
- element.addEventListener("dblclick", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellDblClick) {
-
- cellEvents.cellDblClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblClick) {
-
- self.table.options.cellDblClick.call(self.table, e, component);
- }
- });
- } else {
-
- element.addEventListener("dblclick", function (e) {
-
- if (self.table.modExists("edit")) {
-
- if (self.table.modules.edit.currentCell === self) {
-
- return; //prevent instant selection of editor content
- }
- }
-
- e.preventDefault();
-
- try {
-
- if (document.selection) {
- // IE
-
- var range = document.body.createTextRange();
-
- range.moveToElementText(self.element);
-
- range.select();
- } else if (window.getSelection) {
-
- var range = document.createRange();
-
- range.selectNode(self.element);
-
- window.getSelection().removeAllRanges();
-
- window.getSelection().addRange(range);
- }
- } catch (e) {}
- });
- }
-
- if (cellEvents.cellContext || this.table.options.cellContext) {
-
- element.addEventListener("contextmenu", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellContext) {
-
- cellEvents.cellContext.call(self.table, e, component);
- }
-
- if (self.table.options.cellContext) {
-
- self.table.options.cellContext.call(self.table, e, component);
- }
- });
- }
- };
-
- Cell.prototype._bindMouseEvents = function (cellEvents) {
-
- var self = this,
- element = self.element;
-
- if (cellEvents.cellMouseEnter || self.table.options.cellMouseEnter) {
-
- element.addEventListener("mouseenter", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseEnter) {
-
- cellEvents.cellMouseEnter.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseEnter) {
-
- self.table.options.cellMouseEnter.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseLeave || self.table.options.cellMouseLeave) {
-
- element.addEventListener("mouseleave", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseLeave) {
-
- cellEvents.cellMouseLeave.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseLeave) {
-
- self.table.options.cellMouseLeave.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOver || self.table.options.cellMouseOver) {
-
- element.addEventListener("mouseover", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOver) {
-
- cellEvents.cellMouseOver.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOver) {
-
- self.table.options.cellMouseOver.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOut || self.table.options.cellMouseOut) {
-
- element.addEventListener("mouseout", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOut) {
-
- cellEvents.cellMouseOut.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOut) {
-
- self.table.options.cellMouseOut.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseMove || self.table.options.cellMouseMove) {
-
- element.addEventListener("mousemove", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseMove) {
-
- cellEvents.cellMouseMove.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseMove) {
-
- self.table.options.cellMouseMove.call(self.table, e, component);
- }
- });
- }
- };
-
- Cell.prototype._bindTouchEvents = function (cellEvents) {
-
- var self = this,
- element = self.element,
- dblTap,
- tapHold,
- tap;
-
- if (cellEvents.cellTap || this.table.options.cellTap) {
-
- tap = false;
-
- element.addEventListener("touchstart", function (e) {
-
- tap = true;
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
-
- if (tap) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellTap) {
-
- cellEvents.cellTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellTap) {
-
- self.table.options.cellTap.call(self.table, e, component);
- }
- }
-
- tap = false;
- });
- }
-
- if (cellEvents.cellDblTap || this.table.options.cellDblTap) {
-
- dblTap = null;
-
- element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
-
- clearTimeout(dblTap);
-
- dblTap = null;
-
- var component = self.getComponent();
-
- if (cellEvents.cellDblTap) {
-
- cellEvents.cellDblTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblTap) {
-
- self.table.options.cellDblTap.call(self.table, e, component);
- }
- } else {
-
- dblTap = setTimeout(function () {
-
- clearTimeout(dblTap);
-
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (cellEvents.cellTapHold || this.table.options.cellTapHold) {
-
- tapHold = null;
-
- element.addEventListener("touchstart", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
-
- clearTimeout(tapHold);
-
- tapHold = null;
-
- tap = false;
-
- var component = self.getComponent();
-
- if (cellEvents.cellTapHold) {
-
- cellEvents.cellTapHold.call(self.table, e, component);
- }
-
- if (self.table.options.cellTapHold) {
-
- self.table.options.cellTapHold.call(self.table, e, component);
- }
- }, 1000);
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = null;
- });
- }
- };
-
- //generate cell contents
-
- Cell.prototype._generateContents = function () {
-
- var val;
-
- if (this.table.modExists("format")) {
-
- val = this.table.modules.format.formatValue(this);
- } else {
-
- val = this.element.innerHTML = this.value;
- }
-
- switch (typeof val === 'undefined' ? 'undefined' : _typeof(val)) {
-
- case "object":
-
- if (val instanceof Node) {
-
- //clear previous cell contents
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element.appendChild(val);
- } else {
-
- this.element.innerHTML = "";
-
- if (val != null) {
-
- console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val);
- }
- }
-
- break;
-
- case "undefined":
-
- case "null":
-
- this.element.innerHTML = "";
-
- break;
-
- default:
-
- this.element.innerHTML = val;
-
- }
- };
-
- Cell.prototype.cellRendered = function () {
-
- if (this.table.modExists("format") && this.table.modules.format.cellRendered) {
-
- this.table.modules.format.cellRendered(this);
- }
- };
-
- //generate tooltip text
-
- Cell.prototype._generateTooltip = function () {
-
- var tooltip = this.column.tooltip;
-
- if (tooltip) {
-
- if (tooltip === true) {
-
- tooltip = this.value;
- } else if (typeof tooltip == "function") {
-
- tooltip = tooltip(this.getComponent());
-
- if (tooltip === false) {
-
- tooltip = "";
- }
- }
-
- if (typeof tooltip === "undefined") {
-
- tooltip = "";
- }
-
- this.element.setAttribute("title", tooltip);
- } else {
-
- this.element.setAttribute("title", "");
- }
- };
-
- //////////////////// Getters ////////////////////
-
- Cell.prototype.getElement = function () {
-
- return this.element;
- };
-
- Cell.prototype.getValue = function () {
-
- return this.value;
- };
-
- Cell.prototype.getOldValue = function () {
-
- return this.oldValue;
- };
-
- //////////////////// Actions ////////////////////
-
-
- Cell.prototype.setValue = function (value, mutate) {
-
- var changed = this.setValueProcessData(value, mutate),
- component;
-
- if (changed) {
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.action("cellEdit", this, { oldValue: this.oldValue, newValue: this.value });
- }
-
- component = this.getComponent();
-
- if (this.column.cellEvents.cellEdited) {
-
- this.column.cellEvents.cellEdited.call(this.table, component);
- }
-
- this.cellRendered();
-
- this.table.options.cellEdited.call(this.table, component);
-
- this.table.options.dataEdited.call(this.table, this.table.rowManager.getData());
- }
- };
-
- Cell.prototype.setValueProcessData = function (value, mutate) {
-
- var changed = false;
-
- if (this.value != value) {
-
- changed = true;
-
- if (mutate) {
-
- if (this.column.modules.mutate) {
-
- value = this.table.modules.mutator.transformCell(this, value);
- }
- }
- }
-
- this.setValueActual(value);
-
- if (changed && this.table.modExists("columnCalcs")) {
-
- if (this.column.definition.topCalc || this.column.definition.bottomCalc) {
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (this.table.options.columnCalcs == "table" || this.table.options.columnCalcs == "both") {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.columnCalcs != "table") {
-
- this.table.modules.columnCalcs.recalcRowGroup(this.row);
- }
- } else {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
- }
-
- return changed;
- };
-
- Cell.prototype.setValueActual = function (value) {
-
- this.oldValue = this.value;
-
- this.value = value;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
-
- this.table.modules.reactiveData.block();
- }
-
- this.column.setFieldValue(this.row.data, value);
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
-
- this.table.modules.reactiveData.unblock();
- }
-
- this._generateContents();
-
- this._generateTooltip();
-
- //set resizable handles
-
- if (this.table.options.resizableColumns && this.table.modExists("resizeColumns")) {
-
- this.table.modules.resizeColumns.initializeColumn("cell", this.column, this.element);
- }
-
- //set column menu
-
- if (this.column.definition.contextMenu && this.table.modExists("menu")) {
-
- this.table.modules.menu.initializeCell(this);
- }
-
- //handle frozen cells
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layoutElement(this.element, this.column);
- }
- };
-
- Cell.prototype.setWidth = function () {
-
- this.width = this.column.width;
-
- this.element.style.width = this.column.widthStyled;
- };
-
- Cell.prototype.clearWidth = function () {
-
- this.width = "";
-
- this.element.style.width = "";
- };
-
- Cell.prototype.getWidth = function () {
-
- return this.width || this.element.offsetWidth;
- };
-
- Cell.prototype.setMinWidth = function () {
-
- this.minWidth = this.column.minWidth;
-
- this.element.style.minWidth = this.column.minWidthStyled;
- };
-
- Cell.prototype.checkHeight = function () {
-
- // var height = this.element.css("height");
-
- this.row.reinitializeHeight();
- };
-
- Cell.prototype.clearHeight = function () {
-
- this.element.style.height = "";
-
- this.height = null;
- };
-
- Cell.prototype.setHeight = function () {
-
- this.height = this.row.height;
-
- this.element.style.height = this.row.heightStyled;
- };
-
- Cell.prototype.getHeight = function () {
-
- return this.height || this.element.offsetHeight;
- };
-
- Cell.prototype.show = function () {
-
- this.element.style.display = "";
- };
-
- Cell.prototype.hide = function () {
-
- this.element.style.display = "none";
- };
-
- Cell.prototype.edit = function (force) {
-
- if (this.table.modExists("edit", true)) {
-
- return this.table.modules.edit.editCell(this, force);
- }
- };
-
- Cell.prototype.cancelEdit = function () {
-
- if (this.table.modExists("edit", true)) {
-
- var editing = this.table.modules.edit.getCurrentCell();
-
- if (editing && editing._getSelf() === this) {
-
- this.table.modules.edit.cancelEdit();
- } else {
-
- console.warn("Cancel Editor Error - This cell is not currently being edited ");
- }
- }
- };
-
- Cell.prototype.delete = function () {
-
- if (!this.table.rowManager.redrawBlock) {
-
- this.element.parentNode.removeChild(this.element);
- }
-
- this.element = false;
-
- this.column.deleteCell(this);
-
- this.row.deleteCell(this);
-
- this.calcs = {};
- };
-
- //////////////// Navigation /////////////////
-
-
- Cell.prototype.nav = function () {
-
- var self = this,
- nextCell = false,
- index = this.row.getCellIndex(this);
-
- return {
-
- next: function next() {
-
- var nextCell = this.right(),
- nextRow;
-
- if (!nextCell) {
-
- nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
-
- nextCell = nextRow.findNextEditableCell(-1);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- }
- }
- } else {
-
- return true;
- }
-
- return false;
- },
-
- prev: function prev() {
-
- var nextCell = this.left(),
- prevRow;
-
- if (!nextCell) {
-
- prevRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (prevRow) {
-
- nextCell = prevRow.findPrevEditableCell(prevRow.cells.length);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- }
- }
- } else {
-
- return true;
- }
-
- return false;
- },
-
- left: function left() {
-
- nextCell = self.row.findPrevEditableCell(index);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- } else {
-
- return false;
- }
- },
-
- right: function right() {
-
- nextCell = self.row.findNextEditableCell(index);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- } else {
-
- return false;
- }
- },
-
- up: function up() {
-
- var nextRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (nextRow) {
-
- nextRow.cells[index].edit();
- }
- },
-
- down: function down() {
-
- var nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
-
- nextRow.cells[index].edit();
- }
- }
-
- };
- };
-
- Cell.prototype.getIndex = function () {
-
- this.row.getCellIndex(this);
- };
-
- //////////////// Object Generation /////////////////
-
- Cell.prototype.getComponent = function () {
-
- return new CellComponent(this);
- };
-
- var FooterManager = function FooterManager(table) {
-
- this.table = table;
-
- this.active = false;
-
- this.element = this.createElement(); //containing element
-
- this.external = false;
-
- this.links = [];
-
- this._initialize();
- };
-
- FooterManager.prototype.createElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-footer");
-
- return el;
- };
-
- FooterManager.prototype._initialize = function (element) {
-
- if (this.table.options.footerElement) {
-
- switch (_typeof(this.table.options.footerElement)) {
-
- case "string":
-
- if (this.table.options.footerElement[0] === "<") {
-
- this.element.innerHTML = this.table.options.footerElement;
- } else {
-
- this.external = true;
-
- this.element = document.querySelector(this.table.options.footerElement);
- }
-
- break;
-
- default:
-
- this.element = this.table.options.footerElement;
-
- break;
-
- }
- }
- };
-
- FooterManager.prototype.getElement = function () {
-
- return this.element;
- };
-
- FooterManager.prototype.append = function (element, parent) {
-
- this.activate(parent);
-
- this.element.appendChild(element);
-
- this.table.rowManager.adjustTableSize();
- };
-
- FooterManager.prototype.prepend = function (element, parent) {
-
- this.activate(parent);
-
- this.element.insertBefore(element, this.element.firstChild);
-
- this.table.rowManager.adjustTableSize();
- };
-
- FooterManager.prototype.remove = function (element) {
-
- element.parentNode.removeChild(element);
-
- this.deactivate();
- };
-
- FooterManager.prototype.deactivate = function (force) {
-
- if (!this.element.firstChild || force) {
-
- if (!this.external) {
-
- this.element.parentNode.removeChild(this.element);
- }
-
- this.active = false;
- }
-
- // this.table.rowManager.adjustTableSize();
- };
-
- FooterManager.prototype.activate = function (parent) {
-
- if (!this.active) {
-
- this.active = true;
-
- if (!this.external) {
-
- this.table.element.appendChild(this.getElement());
-
- this.table.element.style.display = '';
- }
- }
-
- if (parent) {
-
- this.links.push(parent);
- }
- };
-
- FooterManager.prototype.redraw = function () {
-
- this.links.forEach(function (link) {
-
- link.footerRedraw();
- });
- };
-
- var Tabulator = function Tabulator(element, options) {
-
- this.options = {};
-
- this.columnManager = null; // hold Column Manager
-
- this.rowManager = null; //hold Row Manager
-
- this.footerManager = null; //holder Footer Manager
-
- this.browser = ""; //hold current browser type
-
- this.browserSlow = false; //handle reduced functionality for slower browsers
-
- this.browserMobile = false; //check if running on moble, prevent resize cancelling edit on keyboard appearence
-
-
- this.modules = {}; //hold all modules bound to this table
-
-
- this.initializeElement(element);
-
- this.initializeOptions(options || {});
-
- this._create();
-
- Tabulator.prototype.comms.register(this); //register table for inderdevice communication
- };
-
- //default setup options
-
- Tabulator.prototype.defaultOptions = {
-
- height: false, //height of tabulator
-
- minHeight: false, //minimum height of tabulator
-
- maxHeight: false, //maximum height of tabulator
-
-
- layout: "fitData", ///layout type "fitColumns" | "fitData"
-
- layoutColumnsOnNewData: false, //update column widths on setData
-
-
- columnMinWidth: 40, //minimum global width for a column
-
- columnHeaderVertAlign: "top", //vertical alignment of column headers
-
- columnVertAlign: false, // DEPRECATED - Left to allow warning
-
-
- resizableColumns: true, //resizable columns
-
- resizableRows: false, //resizable rows
-
- autoResize: true, //auto resize table
-
-
- columns: [], //store for colum header info
-
-
- cellHozAlign: "", //horizontal align columns
-
- cellVertAlign: "", //certical align columns
-
-
- data: [], //default starting data
-
-
- autoColumns: false, //build columns from data row structure
-
-
- reactiveData: false, //enable data reactivity
-
-
- nestedFieldSeparator: ".", //seperatpr for nested data
-
-
- tooltips: false, //Tool tip value
-
- tooltipsHeader: false, //Tool tip for headers
-
- tooltipGenerationMode: "load", //when to generate tooltips
-
-
- initialSort: false, //initial sorting criteria
-
- initialFilter: false, //initial filtering criteria
-
- initialHeaderFilter: false, //initial header filtering criteria
-
-
- columnHeaderSortMulti: true, //multiple or single column sorting
-
-
- sortOrderReverse: false, //reverse internal sort ordering
-
-
- headerSort: true, //set default global header sort
-
- headerSortTristate: false, //set default tristate header sorting
-
-
- footerElement: false, //hold footer element
-
-
- index: "id", //filed for row index
-
-
- keybindings: [], //array for keybindings
-
-
- tabEndNewRow: false, //create new row when tab to end of table
-
-
- invalidOptionWarnings: true, //allow toggling of invalid option warnings
-
-
- clipboard: false, //enable clipboard
-
- clipboardCopyStyled: true, //formatted table data
-
- clipboardCopyConfig: false, //clipboard config
-
- clipboardCopyFormatter: false, //DEPRICATED - REMOVE in 5.0
-
- clipboardCopyRowRange: "active", //restrict clipboard to visible rows only
-
- clipboardPasteParser: "table", //convert pasted clipboard data to rows
-
- clipboardPasteAction: "insert", //how to insert pasted data into the table
-
-
- clipboardCopied: function clipboardCopied() {}, //data has been copied to the clipboard
-
- clipboardPasted: function clipboardPasted() {}, //data has been pasted into the table
-
- clipboardPasteError: function clipboardPasteError() {}, //data has not successfully been pasted into the table
-
-
- downloadDataFormatter: false, //function to manipulate table data before it is downloaded
-
- downloadReady: function downloadReady(data, blob) {
- return blob;
- }, //function to manipulate download data
-
- downloadComplete: false, //function to manipulate download data
-
- downloadConfig: false, //download config
-
-
- dataTree: false, //enable data tree
-
- dataTreeElementColumn: false,
-
- dataTreeBranchElement: true, //show data tree branch element
-
- dataTreeChildIndent: 9, //data tree child indent in px
-
- dataTreeChildField: "_children", //data tre column field to look for child rows
-
- dataTreeCollapseElement: false, //data tree row collapse element
-
- dataTreeExpandElement: false, //data tree row expand element
-
- dataTreeStartExpanded: false,
-
- dataTreeRowExpanded: function dataTreeRowExpanded() {}, //row has been expanded
-
- dataTreeRowCollapsed: function dataTreeRowCollapsed() {}, //row has been collapsed
-
- dataTreeChildColumnCalcs: false, //include visible data tree rows in column calculations
-
- dataTreeSelectPropagate: false, //seleccting a parent row selects its children
-
-
- printAsHtml: false, //enable print as html
-
- printFormatter: false, //printing page formatter
-
- printHeader: false, //page header contents
-
- printFooter: false, //page footer contents
-
- printCopyStyle: true, //DEPRICATED - REMOVE in 5.0
-
- printStyled: true, //enable print as html styling
-
- printVisibleRows: true, //DEPRICATED - REMOVE in 5.0
-
- printRowRange: "visible", //restrict print to visible rows only
-
- printConfig: {}, //print config options
-
-
- addRowPos: "bottom", //position to insert blank rows, top|bottom
-
-
- selectable: "highlight", //highlight rows on hover
-
- selectableRangeMode: "drag", //highlight rows on hover
-
- selectableRollingSelection: true, //roll selection once maximum number of selectable rows is reached
-
- selectablePersistence: true, // maintain selection when table view is updated
-
- selectableCheck: function selectableCheck(data, row) {
- return true;
- }, //check wheather row is selectable
-
-
- headerFilterLiveFilterDelay: 300, //delay before updating column after user types in header filter
-
- headerFilterPlaceholder: false, //placeholder text to display in header filters
-
-
- headerVisible: true, //hide header
-
-
- history: false, //enable edit history
-
-
- locale: false, //current system language
-
- langs: {},
-
- virtualDom: true, //enable DOM virtualization
-
- virtualDomBuffer: 0, // set virtual DOM buffer size
-
-
- persistentLayout: false, //DEPRICATED - REMOVE in 5.0
-
- persistentSort: false, //DEPRICATED - REMOVE in 5.0
-
- persistentFilter: false, //DEPRICATED - REMOVE in 5.0
-
- persistenceID: "", //key for persistent storage
-
- persistenceMode: true, //mode for storing persistence information
-
- persistenceReaderFunc: false, //function for handling persistence data reading
-
- persistenceWriterFunc: false, //function for handling persistence data writing
-
-
- persistence: false,
-
- responsiveLayout: false, //responsive layout flags
-
- responsiveLayoutCollapseStartOpen: true, //start showing collapsed data
-
- responsiveLayoutCollapseUseFormatters: true, //responsive layout collapse formatter
-
- responsiveLayoutCollapseFormatter: false, //responsive layout collapse formatter
-
-
- pagination: false, //set pagination type
-
- paginationSize: false, //set number of rows to a page
-
- paginationInitialPage: 1, //initail page to show on load
-
- paginationButtonCount: 5, // set count of page button
-
- paginationSizeSelector: false, //add pagination size selector element
-
- paginationElement: false, //element to hold pagination numbers
-
- paginationDataSent: {}, //pagination data sent to the server
-
- paginationDataReceived: {}, //pagination data received from the server
-
- paginationAddRow: "page", //add rows on table or page
-
-
- ajaxURL: false, //url for ajax loading
-
- ajaxURLGenerator: false,
-
- ajaxParams: {}, //params for ajax loading
-
- ajaxConfig: "get", //ajax request type
-
- ajaxContentType: "form", //ajax request type
-
- ajaxRequestFunc: false, //promise function
-
- ajaxLoader: true, //show loader
-
- ajaxLoaderLoading: false, //loader element
-
- ajaxLoaderError: false, //loader element
-
- ajaxFiltering: false,
-
- ajaxSorting: false,
-
- ajaxProgressiveLoad: false, //progressive loading
-
- ajaxProgressiveLoadDelay: 0, //delay between requests
-
- ajaxProgressiveLoadScrollMargin: 0, //margin before scroll begins
-
-
- groupBy: false, //enable table grouping and set field to group by
-
- groupStartOpen: true, //starting state of group
-
- groupValues: false,
-
- groupHeader: false, //header generation function
-
-
- htmlOutputConfig: false, //html outypu config
-
-
- movableColumns: false, //enable movable columns
-
-
- movableRows: false, //enable movable rows
-
- movableRowsConnectedTables: false, //tables for movable rows to be connected to
-
- movableRowsSender: false,
-
- movableRowsReceiver: "insert",
-
- movableRowsSendingStart: function movableRowsSendingStart() {},
-
- movableRowsSent: function movableRowsSent() {},
-
- movableRowsSentFailed: function movableRowsSentFailed() {},
-
- movableRowsSendingStop: function movableRowsSendingStop() {},
-
- movableRowsReceivingStart: function movableRowsReceivingStart() {},
-
- movableRowsReceived: function movableRowsReceived() {},
-
- movableRowsReceivedFailed: function movableRowsReceivedFailed() {},
-
- movableRowsReceivingStop: function movableRowsReceivingStop() {},
-
- scrollToRowPosition: "top",
-
- scrollToRowIfVisible: true,
-
- scrollToColumnPosition: "left",
-
- scrollToColumnIfVisible: true,
-
- rowFormatter: false,
-
- rowFormatterPrint: null,
-
- rowFormatterClipboard: null,
-
- rowFormatterHtmlOutput: null,
-
- placeholder: false,
-
- //table building callbacks
-
- tableBuilding: function tableBuilding() {},
-
- tableBuilt: function tableBuilt() {},
-
- //render callbacks
-
- renderStarted: function renderStarted() {},
-
- renderComplete: function renderComplete() {},
-
- //row callbacks
-
- rowClick: false,
-
- rowDblClick: false,
-
- rowContext: false,
-
- rowTap: false,
-
- rowDblTap: false,
-
- rowTapHold: false,
-
- rowMouseEnter: false,
-
- rowMouseLeave: false,
-
- rowMouseOver: false,
-
- rowMouseOut: false,
-
- rowMouseMove: false,
-
- rowContextMenu: false,
-
- rowAdded: function rowAdded() {},
-
- rowDeleted: function rowDeleted() {},
-
- rowMoved: function rowMoved() {},
-
- rowUpdated: function rowUpdated() {},
-
- rowSelectionChanged: function rowSelectionChanged() {},
-
- rowSelected: function rowSelected() {},
-
- rowDeselected: function rowDeselected() {},
-
- rowResized: function rowResized() {},
-
- //cell callbacks
-
- //row callbacks
-
- cellClick: false,
-
- cellDblClick: false,
-
- cellContext: false,
-
- cellTap: false,
-
- cellDblTap: false,
-
- cellTapHold: false,
-
- cellMouseEnter: false,
-
- cellMouseLeave: false,
-
- cellMouseOver: false,
-
- cellMouseOut: false,
-
- cellMouseMove: false,
-
- cellEditing: function cellEditing() {},
-
- cellEdited: function cellEdited() {},
-
- cellEditCancelled: function cellEditCancelled() {},
-
- //column callbacks
-
- columnMoved: false,
-
- columnResized: function columnResized() {},
-
- columnTitleChanged: function columnTitleChanged() {},
-
- columnVisibilityChanged: function columnVisibilityChanged() {},
-
- //HTML iport callbacks
-
- htmlImporting: function htmlImporting() {},
-
- htmlImported: function htmlImported() {},
-
- //data callbacks
-
- dataLoading: function dataLoading() {},
-
- dataLoaded: function dataLoaded() {},
-
- dataEdited: function dataEdited() {},
-
- //ajax callbacks
-
- ajaxRequesting: function ajaxRequesting() {},
-
- ajaxResponse: false,
-
- ajaxError: function ajaxError() {},
-
- //filtering callbacks
-
- dataFiltering: false,
-
- dataFiltered: false,
-
- //sorting callbacks
-
- dataSorting: function dataSorting() {},
-
- dataSorted: function dataSorted() {},
-
- //grouping callbacks
-
- groupToggleElement: "arrow",
-
- groupClosedShowCalcs: false,
-
- dataGrouping: function dataGrouping() {},
-
- dataGrouped: false,
-
- groupVisibilityChanged: function groupVisibilityChanged() {},
-
- groupClick: false,
-
- groupDblClick: false,
-
- groupContext: false,
-
- groupTap: false,
-
- groupDblTap: false,
-
- groupTapHold: false,
-
- columnCalcs: true,
-
- //pagination callbacks
-
- pageLoaded: function pageLoaded() {},
-
- //localization callbacks
-
- localized: function localized() {},
-
- //validation has failed
-
- validationFailed: function validationFailed() {},
-
- //history callbacks
-
- historyUndo: function historyUndo() {},
-
- historyRedo: function historyRedo() {},
-
- //scroll callbacks
-
- scrollHorizontal: function scrollHorizontal() {},
-
- scrollVertical: function scrollVertical() {}
-
- };
-
- Tabulator.prototype.initializeOptions = function (options) {
-
- //warn user if option is not available
-
- if (options.invalidOptionWarnings !== false) {
-
- for (var key in options) {
-
- if (typeof this.defaultOptions[key] === "undefined") {
-
- console.warn("Invalid table constructor option:", key);
- }
- }
- }
-
- //assign options to table
-
- for (var key in this.defaultOptions) {
-
- if (key in options) {
-
- this.options[key] = options[key];
- } else {
-
- if (Array.isArray(this.defaultOptions[key])) {
-
- this.options[key] = [];
- } else if (_typeof(this.defaultOptions[key]) === "object" && this.defaultOptions[key] !== null) {
-
- this.options[key] = {};
- } else {
-
- this.options[key] = this.defaultOptions[key];
- }
- }
- }
- };
-
- Tabulator.prototype.initializeElement = function (element) {
-
- if (typeof HTMLElement !== "undefined" && element instanceof HTMLElement) {
-
- this.element = element;
-
- return true;
- } else if (typeof element === "string") {
-
- this.element = document.querySelector(element);
-
- if (this.element) {
-
- return true;
- } else {
-
- console.error("Tabulator Creation Error - no element found matching selector: ", element);
-
- return false;
- }
- } else {
-
- console.error("Tabulator Creation Error - Invalid element provided:", element);
-
- return false;
- }
- };
-
- //convert depricated functionality to new functions
-
- Tabulator.prototype._mapDepricatedFunctionality = function () {
-
- //map depricated persistance setup options
-
- if (this.options.persistentLayout || this.options.persistentSort || this.options.persistentFilter) {
-
- if (!this.options.persistence) {
-
- this.options.persistence = {};
- }
- }
-
- if (typeof this.options.clipboardCopyHeader !== "undefined") {
-
- this.options.columnHeaders = this.options.clipboardCopyHeader;
-
- console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option");
- }
-
- if (this.options.printVisibleRows !== true) {
-
- console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option");
-
- this.options.persistence.printRowRange = "active";
- }
-
- if (this.options.printCopyStyle !== true) {
-
- console.warn("printCopyStyle option is deprecated, you should now use the printStyled option");
-
- this.options.persistence.printStyled = this.options.printCopyStyle;
- }
-
- if (this.options.persistentLayout) {
-
- console.warn("persistentLayout option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.columns === "undefined") {
-
- this.options.persistence.columns = true;
- }
- }
-
- if (this.options.persistentSort) {
-
- console.warn("persistentSort option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.sort === "undefined") {
-
- this.options.persistence.sort = true;
- }
- }
-
- if (this.options.persistentFilter) {
-
- console.warn("persistentFilter option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.filter === "undefined") {
-
- this.options.persistence.filter = true;
- }
- }
-
- if (this.options.columnVertAlign) {
-
- console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option");
-
- this.options.columnHeaderVertAlign = this.options.columnVertAlign;
- }
- };
-
- Tabulator.prototype._clearSelection = function () {
-
- this.element.classList.add("tabulator-block-select");
-
- if (window.getSelection) {
-
- if (window.getSelection().empty) {
- // Chrome
-
- window.getSelection().empty();
- } else if (window.getSelection().removeAllRanges) {
- // Firefox
-
- window.getSelection().removeAllRanges();
- }
- } else if (document.selection) {
- // IE?
-
- document.selection.empty();
- }
-
- this.element.classList.remove("tabulator-block-select");
- };
-
- //concreate table
-
- Tabulator.prototype._create = function () {
-
- this._clearObjectPointers();
-
- this._mapDepricatedFunctionality();
-
- this.bindModules();
-
- if (this.element.tagName === "TABLE") {
-
- if (this.modExists("htmlTableImport", true)) {
-
- this.modules.htmlTableImport.parseTable();
- }
- }
-
- this.columnManager = new ColumnManager(this);
-
- this.rowManager = new RowManager(this);
-
- this.footerManager = new FooterManager(this);
-
- this.columnManager.setRowManager(this.rowManager);
-
- this.rowManager.setColumnManager(this.columnManager);
-
- this._buildElement();
-
- this._loadInitialData();
- };
-
- //clear pointers to objects in default config object
-
- Tabulator.prototype._clearObjectPointers = function () {
-
- this.options.columns = this.options.columns.slice(0);
-
- if (!this.options.reactiveData) {
-
- this.options.data = this.options.data.slice(0);
- }
- };
-
- //build tabulator element
-
- Tabulator.prototype._buildElement = function () {
- var _this17 = this;
-
- var element = this.element,
- mod = this.modules,
- options = this.options;
-
- options.tableBuilding.call(this);
-
- element.classList.add("tabulator");
-
- element.setAttribute("role", "grid");
-
- //empty element
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //set table height
-
- if (options.height) {
-
- options.height = isNaN(options.height) ? options.height : options.height + "px";
-
- element.style.height = options.height;
- }
-
- //set table min height
-
- if (options.minHeight !== false) {
-
- options.minHeight = isNaN(options.minHeight) ? options.minHeight : options.minHeight + "px";
-
- element.style.minHeight = options.minHeight;
- }
-
- //set table maxHeight
-
- if (options.maxHeight !== false) {
-
- options.maxHeight = isNaN(options.maxHeight) ? options.maxHeight : options.maxHeight + "px";
-
- element.style.maxHeight = options.maxHeight;
- }
-
- this.columnManager.initialize();
-
- this.rowManager.initialize();
-
- this._detectBrowser();
-
- if (this.modExists("layout", true)) {
-
- mod.layout.initialize(options.layout);
- }
-
- //set localization
-
- if (options.headerFilterPlaceholder !== false) {
-
- mod.localize.setHeaderFilterPlaceholder(options.headerFilterPlaceholder);
- }
-
- for (var locale in options.langs) {
-
- mod.localize.installLang(locale, options.langs[locale]);
- }
-
- mod.localize.setLocale(options.locale);
-
- //configure placeholder element
-
- if (typeof options.placeholder == "string") {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-placeholder");
-
- var span = document.createElement("span");
-
- span.innerHTML = options.placeholder;
-
- el.appendChild(span);
-
- options.placeholder = el;
- }
-
- //build table elements
-
- element.appendChild(this.columnManager.getElement());
-
- element.appendChild(this.rowManager.getElement());
-
- if (options.footerElement) {
-
- this.footerManager.activate();
- }
-
- if (options.persistence && this.modExists("persistence", true)) {
-
- mod.persistence.initialize();
- }
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.columns) {
-
- options.columns = mod.persistence.load("columns", options.columns);
- }
-
- if (options.movableRows && this.modExists("moveRow")) {
-
- mod.moveRow.initialize();
- }
-
- if (options.autoColumns && this.options.data) {
-
- this.columnManager.generateColumnsFromRowData(this.options.data);
- }
-
- if (this.modExists("columnCalcs")) {
-
- mod.columnCalcs.initialize();
- }
-
- this.columnManager.setColumns(options.columns);
-
- if (options.dataTree && this.modExists("dataTree", true)) {
-
- mod.dataTree.initialize();
- }
-
- if (this.modExists("frozenRows")) {
-
- this.modules.frozenRows.initialize();
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort || options.initialSort) && this.modExists("sort", true)) {
-
- var sorters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort) {
-
- sorters = mod.persistence.load("sort");
-
- if (sorters === false && options.initialSort) {
-
- sorters = options.initialSort;
- }
- } else if (options.initialSort) {
-
- sorters = options.initialSort;
- }
-
- mod.sort.setSort(sorters);
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter || options.initialFilter) && this.modExists("filter", true)) {
-
- var filters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter) {
-
- filters = mod.persistence.load("filter");
-
- if (filters === false && options.initialFilter) {
-
- filters = options.initialFilter;
- }
- } else if (options.initialFilter) {
-
- filters = options.initialFilter;
- }
-
- mod.filter.setFilter(filters);
- }
-
- if (options.initialHeaderFilter && this.modExists("filter", true)) {
-
- options.initialHeaderFilter.forEach(function (item) {
-
- var column = _this17.columnManager.findColumn(item.field);
-
- if (column) {
-
- mod.filter.setHeaderFilterValue(column, item.value);
- } else {
-
- console.warn("Column Filter Error - No matching column found:", item.field);
-
- return false;
- }
- });
- }
-
- if (this.modExists("ajax")) {
-
- mod.ajax.initialize();
- }
-
- if (options.pagination && this.modExists("page", true)) {
-
- mod.page.initialize();
- }
-
- if (options.groupBy && this.modExists("groupRows", true)) {
-
- mod.groupRows.initialize();
- }
-
- if (this.modExists("keybindings")) {
-
- mod.keybindings.initialize();
- }
-
- if (this.modExists("selectRow")) {
-
- mod.selectRow.clearSelectionData(true);
- }
-
- if (options.autoResize && this.modExists("resizeTable")) {
-
- mod.resizeTable.initialize();
- }
-
- if (this.modExists("clipboard")) {
-
- mod.clipboard.initialize();
- }
-
- if (options.printAsHtml && this.modExists("print")) {
-
- mod.print.initialize();
- }
-
- options.tableBuilt.call(this);
- };
-
- Tabulator.prototype._loadInitialData = function () {
-
- var self = this;
-
- if (self.options.pagination && self.modExists("page")) {
-
- self.modules.page.reset(true, true);
-
- if (self.options.pagination == "local") {
-
- if (self.options.data.length) {
-
- self.rowManager.setData(self.options.data, false, true);
- } else {
-
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
-
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {
-
- if (self.options.paginationInitialPage) {
-
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- });
-
- return;
- } else {
-
- self.rowManager.setData(self.options.data, false, true);
- }
- }
-
- if (self.options.paginationInitialPage) {
-
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- } else {
-
- if (self.options.ajaxURL) {
-
- self.modules.page.setPage(self.options.paginationInitialPage).then(function () {}).catch(function () {});
- } else {
-
- self.rowManager.setData([], false, true);
- }
- }
- } else {
-
- if (self.options.data.length) {
-
- self.rowManager.setData(self.options.data);
- } else {
-
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
-
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {});
- } else {
-
- self.rowManager.setData(self.options.data, false, true);
- }
- }
- }
- };
-
- //deconstructor
-
- Tabulator.prototype.destroy = function () {
-
- var element = this.element;
-
- Tabulator.prototype.comms.deregister(this); //deregister table from inderdevice communication
-
-
- if (this.options.reactiveData && this.modExists("reactiveData", true)) {
-
- this.modules.reactiveData.unwatchData();
- }
-
- //clear row data
-
- this.rowManager.rows.forEach(function (row) {
-
- row.wipe();
- });
-
- this.rowManager.rows = [];
-
- this.rowManager.activeRows = [];
-
- this.rowManager.displayRows = [];
-
- //clear event bindings
-
- if (this.options.autoResize && this.modExists("resizeTable")) {
-
- this.modules.resizeTable.clearBindings();
- }
-
- if (this.modExists("keybindings")) {
-
- this.modules.keybindings.clearBindings();
- }
-
- //clear DOM
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.classList.remove("tabulator");
- };
-
- Tabulator.prototype._detectBrowser = function () {
-
- var ua = navigator.userAgent || navigator.vendor || window.opera;
-
- if (ua.indexOf("Trident") > -1) {
-
- this.browser = "ie";
-
- this.browserSlow = true;
- } else if (ua.indexOf("Edge") > -1) {
-
- this.browser = "edge";
-
- this.browserSlow = true;
- } else if (ua.indexOf("Firefox") > -1) {
-
- this.browser = "firefox";
-
- this.browserSlow = false;
- } else {
-
- this.browser = "other";
-
- this.browserSlow = false;
- }
-
- this.browserMobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0, 4));
- };
-
- ////////////////// Data Handling //////////////////
-
-
- //block table redrawing
-
- Tabulator.prototype.blockRedraw = function () {
-
- return this.rowManager.blockRedraw();
- };
-
- //restore table redrawing
-
- Tabulator.prototype.restoreRedraw = function () {
-
- return this.rowManager.restoreRedraw();
- };
-
- //local data from local file
-
- Tabulator.prototype.setDataFromLocalFile = function (extensions) {
- var _this18 = this;
-
- return new Promise(function (resolve, reject) {
-
- var input = document.createElement("input");
-
- input.type = "file";
-
- input.accept = extensions || ".json,application/json";
-
- input.addEventListener("change", function (e) {
-
- var file = input.files[0],
- reader = new FileReader(),
- data;
-
- reader.readAsText(file);
-
- reader.onload = function (e) {
-
- try {
-
- data = JSON.parse(reader.result);
- } catch (e) {
-
- console.warn("File Load Error - File contents is invalid JSON", e);
-
- reject(e);
-
- return;
- }
-
- _this18._setData(data).then(function (data) {
-
- resolve(data);
- }).catch(function (err) {
-
- resolve(err);
- });
- };
-
- reader.onerror = function (e) {
-
- console.warn("File Load Error - Unable to read file");
-
- reject();
- };
- });
-
- input.click();
- });
- };
-
- //load data
-
- Tabulator.prototype.setData = function (data, params, config) {
-
- if (this.modExists("ajax")) {
-
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, false, true);
- };
-
- Tabulator.prototype._setData = function (data, params, config, inPosition, columnsChanged) {
-
- var self = this;
-
- if (typeof data === "string") {
-
- if (data.indexOf("{") == 0 || data.indexOf("[") == 0) {
-
- //data is a json encoded string
-
- return self.rowManager.setData(JSON.parse(data), inPosition, columnsChanged);
- } else {
-
- if (self.modExists("ajax", true)) {
-
- if (params) {
-
- self.modules.ajax.setParams(params);
- }
-
- if (config) {
-
- self.modules.ajax.setConfig(config);
- }
-
- self.modules.ajax.setUrl(data);
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
-
- self.modules.page.reset(true, true);
-
- return self.modules.page.setPage(1);
- } else {
-
- //assume data is url, make ajax call to url to get data
-
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- }
- }
- } else {
-
- if (data) {
-
- //asume data is already an object
-
- return self.rowManager.setData(data, inPosition, columnsChanged);
- } else {
-
- //no data provided, check if ajaxURL is present;
-
- if (self.modExists("ajax") && (self.modules.ajax.getUrl || self.options.ajaxURLGenerator)) {
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
-
- self.modules.page.reset(true, true);
-
- return self.modules.page.setPage(1);
- } else {
-
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- } else {
-
- //empty data
-
- return self.rowManager.setData([], inPosition, columnsChanged);
- }
- }
- }
- };
-
- //clear data
-
- Tabulator.prototype.clearData = function () {
-
- if (this.modExists("ajax")) {
-
- this.modules.ajax.blockActiveRequest();
- }
-
- this.rowManager.clearData();
- };
-
- //get table data array
-
- Tabulator.prototype.getData = function (active) {
-
- if (active === true) {
-
- console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'");
-
- active = "active";
- }
-
- return this.rowManager.getData(active);
- };
-
- //get table data array count
-
- Tabulator.prototype.getDataCount = function (active) {
-
- if (active === true) {
-
- console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'");
-
- active = "active";
- }
-
- return this.rowManager.getDataCount(active);
- };
-
- //search for specific row components
-
- Tabulator.prototype.searchRows = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.search("rows", field, type, value);
- }
- };
-
- //search for specific data
-
- Tabulator.prototype.searchData = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.search("data", field, type, value);
- }
- };
-
- //get table html
-
- Tabulator.prototype.getHtml = function (visible, style, config) {
-
- if (this.modExists("export", true)) {
-
- return this.modules.export.getHtml(visible, style, config);
- }
- };
-
- //get print html
-
- Tabulator.prototype.print = function (visible, style, config) {
-
- if (this.modExists("print", true)) {
-
- return this.modules.print.printFullscreen(visible, style, config);
- }
- };
-
- //retrieve Ajax URL
-
- Tabulator.prototype.getAjaxUrl = function () {
-
- if (this.modExists("ajax", true)) {
-
- return this.modules.ajax.getUrl();
- }
- };
-
- //replace data, keeping table in position with same sort
-
- Tabulator.prototype.replaceData = function (data, params, config) {
-
- if (this.modExists("ajax")) {
-
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, true);
- };
-
- //update table data
-
- Tabulator.prototype.updateData = function (data) {
- var _this19 = this;
-
- var self = this;
-
- var responses = 0;
-
- return new Promise(function (resolve, reject) {
-
- if (_this19.modExists("ajax")) {
-
- _this19.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (data) {
-
- data.forEach(function (item) {
-
- var row = self.rowManager.findRow(item[self.options.index]);
-
- if (row) {
-
- responses++;
-
- row.updateData(item).then(function () {
-
- responses--;
-
- if (!responses) {
-
- resolve();
- }
- });
- }
- });
- } else {
-
- console.warn("Update Error - No data provided");
-
- reject("Update Error - No data provided");
- }
- });
- };
-
- Tabulator.prototype.addData = function (data, pos, index) {
- var _this20 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this20.modExists("ajax")) {
-
- _this20.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (data) {
-
- _this20.rowManager.addRows(data, pos, index).then(function (rows) {
-
- var output = [];
-
- rows.forEach(function (row) {
-
- output.push(row.getComponent());
- });
-
- resolve(output);
- });
- } else {
-
- console.warn("Update Error - No data provided");
-
- reject("Update Error - No data provided");
- }
- });
- };
-
- //update table data
-
- Tabulator.prototype.updateOrAddData = function (data) {
- var _this21 = this;
-
- var self = this,
- rows = [],
- responses = 0;
-
- return new Promise(function (resolve, reject) {
-
- if (_this21.modExists("ajax")) {
-
- _this21.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (data) {
-
- data.forEach(function (item) {
-
- var row = self.rowManager.findRow(item[self.options.index]);
-
- responses++;
-
- if (row) {
-
- row.updateData(item).then(function () {
-
- responses--;
-
- rows.push(row.getComponent());
-
- if (!responses) {
-
- resolve(rows);
- }
- });
- } else {
-
- self.rowManager.addRows(item).then(function (newRows) {
-
- responses--;
-
- rows.push(newRows[0].getComponent());
-
- if (!responses) {
-
- resolve(rows);
- }
- });
- }
- });
- } else {
-
- console.warn("Update Error - No data provided");
-
- reject("Update Error - No data provided");
- }
- });
- };
-
- //get row object
-
- Tabulator.prototype.getRow = function (index) {
-
- var row = this.rowManager.findRow(index);
-
- if (row) {
-
- return row.getComponent();
- } else {
-
- console.warn("Find Error - No matching row found:", index);
-
- return false;
- }
- };
-
- //get row object
-
- Tabulator.prototype.getRowFromPosition = function (position, active) {
-
- var row = this.rowManager.getRowFromPosition(position, active);
-
- if (row) {
-
- return row.getComponent();
- } else {
-
- console.warn("Find Error - No matching row found:", position);
-
- return false;
- }
- };
-
- //delete row from table
-
- Tabulator.prototype.deleteRow = function (index) {
- var _this22 = this;
-
- return new Promise(function (resolve, reject) {
-
- var self = _this22,
- count = 0,
- successCount = 0,
- foundRows = [];
-
- function doneCheck() {
-
- count++;
-
- if (count == index.length) {
-
- if (successCount) {
-
- self.rowManager.reRenderInPosition();
-
- resolve();
- }
- }
- }
-
- if (!Array.isArray(index)) {
-
- index = [index];
- }
-
- //find matching rows
-
- index.forEach(function (item) {
-
- var row = _this22.rowManager.findRow(item, true);
-
- if (row) {
-
- foundRows.push(row);
- } else {
-
- console.warn("Delete Error - No matching row found:", item);
-
- reject("Delete Error - No matching row found");
-
- doneCheck();
- }
- });
-
- //sort rows into correct order to ensure smooth delete from table
-
- foundRows.sort(function (a, b) {
-
- return _this22.rowManager.rows.indexOf(a) > _this22.rowManager.rows.indexOf(b) ? 1 : -1;
- });
-
- foundRows.forEach(function (row) {
-
- row.delete().then(function () {
-
- successCount++;
-
- doneCheck();
- }).catch(function (err) {
-
- doneCheck();
-
- reject(err);
- });
- });
- });
- };
-
- //add row to table
-
- Tabulator.prototype.addRow = function (data, pos, index) {
- var _this23 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- _this23.rowManager.addRows(data, pos, index).then(function (rows) {
-
- //recalc column calculations if present
-
- if (_this23.modExists("columnCalcs")) {
-
- _this23.modules.columnCalcs.recalc(_this23.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- });
- });
- };
-
- //update a row if it exitsts otherwise create it
-
- Tabulator.prototype.updateOrAddRow = function (index, data) {
- var _this24 = this;
-
- return new Promise(function (resolve, reject) {
-
- var row = _this24.rowManager.findRow(index);
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (row) {
-
- row.updateData(data).then(function () {
-
- //recalc column calculations if present
-
- if (_this24.modExists("columnCalcs")) {
-
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(row.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- row = _this24.rowManager.addRows(data).then(function (rows) {
-
- //recalc column calculations if present
-
- if (_this24.modExists("columnCalcs")) {
-
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- }
- });
- };
-
- //update row data
-
- Tabulator.prototype.updateRow = function (index, data) {
- var _this25 = this;
-
- return new Promise(function (resolve, reject) {
-
- var row = _this25.rowManager.findRow(index);
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (row) {
-
- row.updateData(data).then(function () {
-
- resolve(row.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Update Error - No matching row found:", index);
-
- reject("Update Error - No matching row found");
- }
- });
- };
-
- //scroll to row in DOM
-
- Tabulator.prototype.scrollToRow = function (index, position, ifVisible) {
- var _this26 = this;
-
- return new Promise(function (resolve, reject) {
-
- var row = _this26.rowManager.findRow(index);
-
- if (row) {
-
- _this26.rowManager.scrollToRow(row, position, ifVisible).then(function () {
-
- resolve();
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Scroll Error - No matching row found:", index);
-
- reject("Scroll Error - No matching row found");
- }
- });
- };
-
- Tabulator.prototype.moveRow = function (from, to, after) {
-
- var fromRow = this.rowManager.findRow(from);
-
- if (fromRow) {
-
- fromRow.moveToRow(to, after);
- } else {
-
- console.warn("Move Error - No matching row found:", from);
- }
- };
-
- Tabulator.prototype.getRows = function (active) {
-
- if (active === true) {
-
- console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'");
-
- active = "active";
- }
-
- return this.rowManager.getComponents(active);
- };
-
- //get position of row in table
-
- Tabulator.prototype.getRowPosition = function (index, active) {
-
- var row = this.rowManager.findRow(index);
-
- if (row) {
-
- return this.rowManager.getRowPosition(row, active);
- } else {
-
- console.warn("Position Error - No matching row found:", index);
-
- return false;
- }
- };
-
- //copy table data to clipboard
-
- Tabulator.prototype.copyToClipboard = function (selector) {
-
- if (this.modExists("clipboard", true)) {
-
- this.modules.clipboard.copy(selector);
- }
- };
-
- /////////////// Column Functions ///////////////
-
-
- Tabulator.prototype.setColumns = function (definition) {
-
- this.columnManager.setColumns(definition);
- };
-
- Tabulator.prototype.getColumns = function (structured) {
-
- return this.columnManager.getComponents(structured);
- };
-
- Tabulator.prototype.getColumn = function (field) {
-
- var col = this.columnManager.findColumn(field);
-
- if (col) {
-
- return col.getComponent();
- } else {
-
- console.warn("Find Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.getColumnDefinitions = function () {
-
- return this.columnManager.getDefinitionTree();
- };
-
- Tabulator.prototype.getColumnLayout = function () {
-
- if (this.modExists("persistence", true)) {
-
- return this.modules.persistence.parseColumns(this.columnManager.getColumns());
- }
- };
-
- Tabulator.prototype.setColumnLayout = function (layout) {
-
- if (this.modExists("persistence", true)) {
-
- this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns, layout));
-
- return true;
- }
-
- return false;
- };
-
- Tabulator.prototype.showColumn = function (field) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- column.show();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
-
- this.modules.responsiveLayout.update();
- }
- } else {
-
- console.warn("Column Show Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.hideColumn = function (field) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- column.hide();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
-
- this.modules.responsiveLayout.update();
- }
- } else {
-
- console.warn("Column Hide Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.toggleColumn = function (field) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- if (column.visible) {
-
- column.hide();
- } else {
-
- column.show();
- }
- } else {
-
- console.warn("Column Visibility Toggle Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.addColumn = function (definition, before, field) {
- var _this27 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this27.columnManager.findColumn(field);
-
- _this27.columnManager.addColumn(definition, before, column).then(function (column) {
-
- resolve(column.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- });
- };
-
- Tabulator.prototype.deleteColumn = function (field) {
- var _this28 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this28.columnManager.findColumn(field);
-
- if (column) {
-
- column.delete().then(function () {
-
- resolve();
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Column Delete Error - No matching column found:", field);
-
- reject();
- }
- });
- };
-
- Tabulator.prototype.updateColumnDefinition = function (field, definition) {
- var _this29 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this29.columnManager.findColumn(field);
-
- if (column) {
-
- column.updateDefinition(definition).then(function (col) {
-
- resolve(col);
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Column Update Error - No matching column found:", field);
-
- reject();
- }
- });
- };
-
- Tabulator.prototype.moveColumn = function (from, to, after) {
-
- var fromColumn = this.columnManager.findColumn(from);
-
- var toColumn = this.columnManager.findColumn(to);
-
- if (fromColumn) {
-
- if (toColumn) {
-
- this.columnManager.moveColumn(fromColumn, toColumn, after);
- } else {
-
- console.warn("Move Error - No matching column found:", toColumn);
- }
- } else {
-
- console.warn("Move Error - No matching column found:", from);
- }
- };
-
- //scroll to column in DOM
-
- Tabulator.prototype.scrollToColumn = function (field, position, ifVisible) {
- var _this30 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this30.columnManager.findColumn(field);
-
- if (column) {
-
- _this30.columnManager.scrollToColumn(column, position, ifVisible).then(function () {
-
- resolve();
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Scroll Error - No matching column found:", field);
-
- reject("Scroll Error - No matching column found");
- }
- });
- };
-
- //////////// Localization Functions ////////////
-
- Tabulator.prototype.setLocale = function (locale) {
-
- this.modules.localize.setLocale(locale);
- };
-
- Tabulator.prototype.getLocale = function () {
-
- return this.modules.localize.getLocale();
- };
-
- Tabulator.prototype.getLang = function (locale) {
-
- return this.modules.localize.getLang(locale);
- };
-
- //////////// General Public Functions ////////////
-
-
- //redraw list without updating data
-
- Tabulator.prototype.redraw = function (force) {
-
- this.columnManager.redraw(force);
-
- this.rowManager.redraw(force);
- };
-
- Tabulator.prototype.setHeight = function (height) {
-
- if (this.rowManager.renderMode !== "classic") {
-
- this.options.height = isNaN(height) ? height : height + "px";
-
- this.element.style.height = this.options.height;
-
- this.rowManager.setRenderMode();
-
- this.rowManager.redraw();
- } else {
-
- console.warn("setHeight function is not available in classic render mode");
- }
- };
-
- ///////////////////// Sorting ////////////////////
-
-
- //trigger sort
-
- Tabulator.prototype.setSort = function (sortList, dir) {
-
- if (this.modExists("sort", true)) {
-
- this.modules.sort.setSort(sortList, dir);
-
- this.rowManager.sorterRefresh();
- }
- };
-
- Tabulator.prototype.getSorters = function () {
-
- if (this.modExists("sort", true)) {
-
- return this.modules.sort.getSort();
- }
- };
-
- Tabulator.prototype.clearSort = function () {
-
- if (this.modExists("sort", true)) {
-
- this.modules.sort.clear();
-
- this.rowManager.sorterRefresh();
- }
- };
-
- ///////////////////// Filtering ////////////////////
-
-
- //set standard filters
-
- Tabulator.prototype.setFilter = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.setFilter(field, type, value);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //add filter to array
-
- Tabulator.prototype.addFilter = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.addFilter(field, type, value);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //get all filters
-
- Tabulator.prototype.getFilters = function (all) {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.getFilters(all);
- }
- };
-
- Tabulator.prototype.setHeaderFilterFocus = function (field) {
-
- if (this.modExists("filter", true)) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- this.modules.filter.setHeaderFilterFocus(column);
- } else {
-
- console.warn("Column Filter Focus Error - No matching column found:", field);
-
- return false;
- }
- }
- };
-
- Tabulator.prototype.getHeaderFilterValue = function (field) {
-
- if (this.modExists("filter", true)) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- return this.modules.filter.getHeaderFilterValue(column);
- } else {
-
- console.warn("Column Filter Error - No matching column found:", field);
- }
- }
- };
-
- Tabulator.prototype.setHeaderFilterValue = function (field, value) {
-
- if (this.modExists("filter", true)) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- this.modules.filter.setHeaderFilterValue(column, value);
- } else {
-
- console.warn("Column Filter Error - No matching column found:", field);
-
- return false;
- }
- }
- };
-
- Tabulator.prototype.getHeaderFilters = function () {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.getHeaderFilters();
- }
- };
-
- //remove filter from array
-
- Tabulator.prototype.removeFilter = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.removeFilter(field, type, value);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //clear filters
-
- Tabulator.prototype.clearFilter = function (all) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.clearFilter(all);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //clear header filters
-
- Tabulator.prototype.clearHeaderFilter = function () {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.clearHeaderFilter();
-
- this.rowManager.filterRefresh();
- }
- };
-
- ///////////////////// Filtering ////////////////////
-
- Tabulator.prototype.selectRow = function (rows) {
-
- if (this.modExists("selectRow", true)) {
-
- if (rows === true) {
-
- console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'");
-
- rows = "active";
- }
-
- this.modules.selectRow.selectRows(rows);
- }
- };
-
- Tabulator.prototype.deselectRow = function (rows) {
-
- if (this.modExists("selectRow", true)) {
-
- this.modules.selectRow.deselectRows(rows);
- }
- };
-
- Tabulator.prototype.toggleSelectRow = function (row) {
-
- if (this.modExists("selectRow", true)) {
-
- this.modules.selectRow.toggleRow(row);
- }
- };
-
- Tabulator.prototype.getSelectedRows = function () {
-
- if (this.modExists("selectRow", true)) {
-
- return this.modules.selectRow.getSelectedRows();
- }
- };
-
- Tabulator.prototype.getSelectedData = function () {
-
- if (this.modExists("selectRow", true)) {
-
- return this.modules.selectRow.getSelectedData();
- }
- };
-
- //////////// Pagination Functions ////////////
-
-
- Tabulator.prototype.setMaxPage = function (max) {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.setMaxPage(max);
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.setPage = function (page) {
-
- if (this.options.pagination && this.modExists("page")) {
-
- return this.modules.page.setPage(page);
- } else {
-
- return new Promise(function (resolve, reject) {
- reject();
- });
- }
- };
-
- Tabulator.prototype.setPageToRow = function (row) {
- var _this31 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this31.options.pagination && _this31.modExists("page")) {
-
- row = _this31.rowManager.findRow(row);
-
- if (row) {
-
- _this31.modules.page.setPageToRow(row).then(function () {
-
- resolve();
- }).catch(function () {
-
- reject();
- });
- } else {
-
- reject();
- }
- } else {
-
- reject();
- }
- });
- };
-
- Tabulator.prototype.setPageSize = function (size) {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.setPageSize(size);
-
- this.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getPageSize = function () {
-
- if (this.options.pagination && this.modExists("page", true)) {
-
- return this.modules.page.getPageSize();
- }
- };
-
- Tabulator.prototype.previousPage = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.previousPage();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.nextPage = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.nextPage();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getPage = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- return this.modules.page.getPage();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getPageMax = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- return this.modules.page.getPageMax();
- } else {
-
- return false;
- }
- };
-
- ///////////////// Grouping Functions ///////////////
-
-
- Tabulator.prototype.setGroupBy = function (groups) {
-
- if (this.modExists("groupRows", true)) {
-
- this.options.groupBy = groups;
-
- this.modules.groupRows.initialize();
-
- this.rowManager.refreshActiveData("display");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
-
- this.modules.persistence.save("group");
- }
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.setGroupStartOpen = function (values) {
-
- if (this.modExists("groupRows", true)) {
-
- this.options.groupStartOpen = values;
-
- this.modules.groupRows.initialize();
-
- if (this.options.groupBy) {
-
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
-
- this.modules.persistence.save("group");
- }
- } else {
-
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.setGroupHeader = function (values) {
-
- if (this.modExists("groupRows", true)) {
-
- this.options.groupHeader = values;
-
- this.modules.groupRows.initialize();
-
- if (this.options.groupBy) {
-
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
-
- this.modules.persistence.save("group");
- }
- } else {
-
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getGroups = function (values) {
-
- if (this.modExists("groupRows", true)) {
-
- return this.modules.groupRows.getGroups(true);
- } else {
-
- return false;
- }
- };
-
- // get grouped table data in the same format as getData()
-
- Tabulator.prototype.getGroupedData = function () {
-
- if (this.modExists("groupRows", true)) {
-
- return this.options.groupBy ? this.modules.groupRows.getGroupedData() : this.getData();
- }
- };
-
- ///////////////// Column Calculation Functions ///////////////
-
- Tabulator.prototype.getCalcResults = function () {
-
- if (this.modExists("columnCalcs", true)) {
-
- return this.modules.columnCalcs.getResults();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.recalc = function () {
-
- if (this.modExists("columnCalcs", true)) {
-
- this.modules.columnCalcs.recalcAll(this.rowManager.activeRows);
- }
- };
-
- /////////////// Navigation Management //////////////
-
-
- Tabulator.prototype.navigatePrev = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- return cell.nav().prev();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateNext = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- return cell.nav().next();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateLeft = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().left();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateRight = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().right();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateUp = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().up();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateDown = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().down();
- }
- }
-
- return false;
- };
-
- /////////////// History Management //////////////
-
- Tabulator.prototype.undo = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.undo();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.redo = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.redo();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getHistoryUndoSize = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.getHistoryUndoSize();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getHistoryRedoSize = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.getHistoryRedoSize();
- } else {
-
- return false;
- }
- };
-
- /////////////// Download Management //////////////
-
-
- Tabulator.prototype.download = function (type, filename, options, active) {
-
- if (this.modExists("download", true)) {
-
- this.modules.download.download(type, filename, options, active);
- }
- };
-
- Tabulator.prototype.downloadToTab = function (type, filename, options, active) {
-
- if (this.modExists("download", true)) {
-
- this.modules.download.download(type, filename, options, active, true);
- }
- };
-
- /////////// Inter Table Communications ///////////
-
-
- Tabulator.prototype.tableComms = function (table, module, action, data) {
-
- this.modules.comms.receive(table, module, action, data);
- };
-
- ////////////// Extension Management //////////////
-
-
- //object to hold module
-
- Tabulator.prototype.moduleBindings = {};
-
- //extend module
-
- Tabulator.prototype.extendModule = function (name, property, values) {
-
- if (Tabulator.prototype.moduleBindings[name]) {
-
- var source = Tabulator.prototype.moduleBindings[name].prototype[property];
-
- if (source) {
-
- if ((typeof values === 'undefined' ? 'undefined' : _typeof(values)) == "object") {
-
- for (var key in values) {
-
- source[key] = values[key];
- }
- } else {
-
- console.warn("Module Error - Invalid value type, it must be an object");
- }
- } else {
-
- console.warn("Module Error - property does not exist:", property);
- }
- } else {
-
- console.warn("Module Error - module does not exist:", name);
- }
- };
-
- //add module to tabulator
-
- Tabulator.prototype.registerModule = function (name, module) {
-
- var self = this;
-
- Tabulator.prototype.moduleBindings[name] = module;
- };
-
- //ensure that module are bound to instantiated function
-
- Tabulator.prototype.bindModules = function () {
-
- this.modules = {};
-
- for (var name in Tabulator.prototype.moduleBindings) {
-
- this.modules[name] = new Tabulator.prototype.moduleBindings[name](this);
- }
- };
-
- //Check for module
-
- Tabulator.prototype.modExists = function (plugin, required) {
-
- if (this.modules[plugin]) {
-
- return true;
- } else {
-
- if (required) {
-
- console.error("Tabulator Module Not Installed: " + plugin);
- }
-
- return false;
- }
- };
-
- Tabulator.prototype.helpers = {
-
- elVisible: function elVisible(el) {
-
- return !(el.offsetWidth <= 0 && el.offsetHeight <= 0);
- },
-
- elOffset: function elOffset(el) {
-
- var box = el.getBoundingClientRect();
-
- return {
-
- top: box.top + window.pageYOffset - document.documentElement.clientTop,
-
- left: box.left + window.pageXOffset - document.documentElement.clientLeft
-
- };
- },
-
- deepClone: function deepClone(obj) {
-
- var clone = Array.isArray(obj) ? [] : {};
-
- for (var i in obj) {
-
- if (obj[i] != null && _typeof(obj[i]) === "object") {
-
- if (obj[i] instanceof Date) {
-
- clone[i] = new Date(obj[i]);
- } else {
-
- clone[i] = this.deepClone(obj[i]);
- }
- } else {
-
- clone[i] = obj[i];
- }
- }
-
- return clone;
- }
-
- };
-
- Tabulator.prototype.comms = {
-
- tables: [],
-
- register: function register(table) {
-
- Tabulator.prototype.comms.tables.push(table);
- },
-
- deregister: function deregister(table) {
-
- var index = Tabulator.prototype.comms.tables.indexOf(table);
-
- if (index > -1) {
-
- Tabulator.prototype.comms.tables.splice(index, 1);
- }
- },
-
- lookupTable: function lookupTable(query, silent) {
-
- var results = [],
- matches,
- match;
-
- if (typeof query === "string") {
-
- matches = document.querySelectorAll(query);
-
- if (matches.length) {
-
- for (var i = 0; i < matches.length; i++) {
-
- match = Tabulator.prototype.comms.matchElement(matches[i]);
-
- if (match) {
-
- results.push(match);
- }
- }
- }
- } else if (typeof HTMLElement !== "undefined" && query instanceof HTMLElement || query instanceof Tabulator) {
-
- match = Tabulator.prototype.comms.matchElement(query);
-
- if (match) {
-
- results.push(match);
- }
- } else if (Array.isArray(query)) {
-
- query.forEach(function (item) {
-
- results = results.concat(Tabulator.prototype.comms.lookupTable(item));
- });
- } else {
-
- if (!silent) {
-
- console.warn("Table Connection Error - Invalid Selector", query);
- }
- }
-
- return results;
- },
-
- matchElement: function matchElement(element) {
-
- return Tabulator.prototype.comms.tables.find(function (table) {
-
- return element instanceof Tabulator ? table === element : table.element === element;
- });
- }
-
- };
-
- Tabulator.prototype.findTable = function (query) {
-
- var results = Tabulator.prototype.comms.lookupTable(query, true);
-
- return Array.isArray(results) && !results.length ? false : results;
- };
-
- var Layout = function Layout(table) {
-
- this.table = table;
-
- this.mode = null;
- };
-
- //initialize layout system
-
-
- Layout.prototype.initialize = function (layout) {
-
- if (this.modes[layout]) {
-
- this.mode = layout;
- } else {
-
- console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : " + layout);
-
- this.mode = 'fitData';
- }
-
- this.table.element.setAttribute("tabulator-layout", this.mode);
- };
-
- Layout.prototype.getMode = function () {
-
- return this.mode;
- };
-
- //trigger table layout
-
-
- Layout.prototype.layout = function () {
-
- this.modes[this.mode].call(this, this.table.columnManager.columnsByIndex);
- };
-
- //layout render functions
-
-
- Layout.prototype.modes = {
-
- //resize columns to fit data the contain
-
-
- "fitData": function fitData(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data the contain and stretch row to fill table
-
-
- "fitDataFill": function fitDataFill(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data the contain and stretch last column to fill table
-
-
- "fitDataStretch": function fitDataStretch(columns) {
- var _this32 = this;
-
- var colsWidth = 0,
- tableWidth = this.table.rowManager.element.clientWidth,
- gap = 0,
- lastCol = false;
-
- columns.forEach(function (column, i) {
-
- if (!column.widthFixed) {
-
- column.reinitializeWidth();
- }
-
- if (_this32.table.options.responsiveLayout ? column.modules.responsive.visible : column.visible) {
-
- lastCol = column;
- }
-
- if (column.visible) {
-
- colsWidth += column.getWidth();
- }
- });
-
- if (lastCol) {
-
- gap = tableWidth - colsWidth + lastCol.getWidth();
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- lastCol.setWidth(0);
-
- this.table.modules.responsiveLayout.update();
- }
-
- if (gap > 0) {
-
- lastCol.setWidth(gap);
- } else {
-
- lastCol.reinitializeWidth();
- }
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- },
-
- //resize columns to fit
-
-
- "fitColumns": function fitColumns(columns) {
-
- var self = this;
-
- var totalWidth = self.table.element.clientWidth; //table element width
-
-
- var fixedWidth = 0; //total width of columns with a defined width
-
-
- var flexWidth = 0; //total width available to flexible columns
-
-
- var flexGrowUnits = 0; //total number of widthGrow blocks accross all columns
-
-
- var flexColWidth = 0; //desired width of flexible columns
-
-
- var flexColumns = []; //array of flexible width columns
-
-
- var fixedShrinkColumns = []; //array of fixed width columns that can shrink
-
-
- var flexShrinkUnits = 0; //total number of widthShrink blocks accross all columns
-
-
- var overflowWidth = 0; //horizontal overflow width
-
-
- var gapFill = 0; //number of pixels to be added to final column to close and half pixel gaps
-
-
- function calcWidth(width) {
-
- var colWidth;
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- return colWidth;
- }
-
- //ensure columns resize to take up the correct amount of space
-
-
- function scaleColumns(columns, freeSpace, colWidth, shrinkCols) {
-
- var oversizeCols = [],
- oversizeSpace = 0,
- remainingSpace = 0,
- nextColWidth = 0,
- gap = 0,
- changeUnits = 0,
- undersizeCols = [];
-
- function calcGrow(col) {
-
- return colWidth * (col.column.definition.widthGrow || 1);
- }
-
- function calcShrink(col) {
-
- return calcWidth(col.width) - colWidth * (col.column.definition.widthShrink || 0);
- }
-
- columns.forEach(function (col, i) {
-
- var width = shrinkCols ? calcShrink(col) : calcGrow(col);
-
- if (col.column.minWidth >= width) {
-
- oversizeCols.push(col);
- } else {
-
- undersizeCols.push(col);
-
- changeUnits += shrinkCols ? col.column.definition.widthShrink || 1 : col.column.definition.widthGrow || 1;
- }
- });
-
- if (oversizeCols.length) {
-
- oversizeCols.forEach(function (col) {
-
- oversizeSpace += shrinkCols ? col.width - col.column.minWidth : col.column.minWidth;
-
- col.width = col.column.minWidth;
- });
-
- remainingSpace = freeSpace - oversizeSpace;
-
- nextColWidth = changeUnits ? Math.floor(remainingSpace / changeUnits) : remainingSpace;
-
- gap = remainingSpace - nextColWidth * changeUnits;
-
- gap += scaleColumns(undersizeCols, remainingSpace, nextColWidth, shrinkCols);
- } else {
-
- gap = changeUnits ? freeSpace - Math.floor(freeSpace / changeUnits) * changeUnits : freeSpace;
-
- undersizeCols.forEach(function (column) {
-
- column.width = shrinkCols ? calcShrink(column) : calcGrow(column);
- });
- }
-
- return gap;
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
-
- //adjust for vertical scrollbar if present
-
-
- if (this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight) {
-
- totalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth;
- }
-
- columns.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width;
-
- minWidth = parseInt(column.minWidth);
-
- if (width) {
-
- colWidth = calcWidth(width);
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
-
- if (column.definition.widthShrink) {
-
- fixedShrinkColumns.push({
-
- column: column,
-
- width: colWidth > minWidth ? colWidth : minWidth
-
- });
-
- flexShrinkUnits += column.definition.widthShrink;
- }
- } else {
-
- flexColumns.push({
-
- column: column,
-
- width: 0
-
- });
-
- flexGrowUnits += column.definition.widthGrow || 1;
- }
- }
- });
-
- //calculate available space
-
-
- flexWidth = totalWidth - fixedWidth;
-
- //calculate correct column size
-
-
- flexColWidth = Math.floor(flexWidth / flexGrowUnits);
-
- //generate column widths
-
-
- var gapFill = scaleColumns(flexColumns, flexWidth, flexColWidth, false);
-
- //increase width of last column to account for rounding errors
-
-
- if (flexColumns.length && gapFill > 0) {
-
- flexColumns[flexColumns.length - 1].width += +gapFill;
- }
-
- //caculate space for columns to be shrunk into
-
-
- flexColumns.forEach(function (col) {
-
- flexWidth -= col.width;
- });
-
- overflowWidth = Math.abs(gapFill) + flexWidth;
-
- //shrink oversize columns if there is no available space
-
-
- if (overflowWidth > 0 && flexShrinkUnits) {
-
- gapFill = scaleColumns(fixedShrinkColumns, overflowWidth, Math.floor(overflowWidth / flexShrinkUnits), true);
- }
-
- //decrease width of last column to account for rounding errors
-
-
- if (fixedShrinkColumns.length) {
-
- fixedShrinkColumns[fixedShrinkColumns.length - 1].width -= gapFill;
- }
-
- flexColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
-
- fixedShrinkColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
- }
-
- };
-
- Tabulator.prototype.registerModule("layout", Layout);
-
- var Localize = function Localize(table) {
-
- this.table = table; //hold Tabulator object
-
- this.locale = "default"; //current locale
-
- this.lang = false; //current language
-
- this.bindings = {}; //update events to call when locale is changed
- };
-
- //set header placehoder
-
- Localize.prototype.setHeaderFilterPlaceholder = function (placeholder) {
-
- this.langs.default.headerFilters.default = placeholder;
- };
-
- //set header filter placeholder by column
-
- Localize.prototype.setHeaderFilterColumnPlaceholder = function (column, placeholder) {
-
- this.langs.default.headerFilters.columns[column] = placeholder;
-
- if (this.lang && !this.lang.headerFilters.columns[column]) {
-
- this.lang.headerFilters.columns[column] = placeholder;
- }
- };
-
- //setup a lang description object
-
- Localize.prototype.installLang = function (locale, lang) {
-
- if (this.langs[locale]) {
-
- this._setLangProp(this.langs[locale], lang);
- } else {
-
- this.langs[locale] = lang;
- }
- };
-
- Localize.prototype._setLangProp = function (lang, values) {
-
- for (var key in values) {
-
- if (lang[key] && _typeof(lang[key]) == "object") {
-
- this._setLangProp(lang[key], values[key]);
- } else {
-
- lang[key] = values[key];
- }
- }
- };
-
- //set current locale
-
- Localize.prototype.setLocale = function (desiredLocale) {
-
- var self = this;
-
- desiredLocale = desiredLocale || "default";
-
- //fill in any matching languge values
-
- function traverseLang(trans, path) {
-
- for (var prop in trans) {
-
- if (_typeof(trans[prop]) == "object") {
-
- if (!path[prop]) {
-
- path[prop] = {};
- }
-
- traverseLang(trans[prop], path[prop]);
- } else {
-
- path[prop] = trans[prop];
- }
- }
- }
-
- //determing correct locale to load
-
- if (desiredLocale === true && navigator.language) {
-
- //get local from system
-
- desiredLocale = navigator.language.toLowerCase();
- }
-
- if (desiredLocale) {
-
- //if locale is not set, check for matching top level locale else use default
-
- if (!self.langs[desiredLocale]) {
-
- var prefix = desiredLocale.split("-")[0];
-
- if (self.langs[prefix]) {
-
- console.warn("Localization Error - Exact matching locale not found, using closest match: ", desiredLocale, prefix);
-
- desiredLocale = prefix;
- } else {
-
- console.warn("Localization Error - Matching locale not found, using default: ", desiredLocale);
-
- desiredLocale = "default";
- }
- }
- }
-
- self.locale = desiredLocale;
-
- //load default lang template
-
- self.lang = Tabulator.prototype.helpers.deepClone(self.langs.default || {});
-
- if (desiredLocale != "default") {
-
- traverseLang(self.langs[desiredLocale], self.lang);
- }
-
- self.table.options.localized.call(self.table, self.locale, self.lang);
-
- self._executeBindings();
- };
-
- //get current locale
-
- Localize.prototype.getLocale = function (locale) {
-
- return self.locale;
- };
-
- //get lang object for given local or current if none provided
-
- Localize.prototype.getLang = function (locale) {
-
- return locale ? this.langs[locale] : this.lang;
- };
-
- //get text for current locale
-
- Localize.prototype.getText = function (path, value) {
-
- var path = value ? path + "|" + value : path,
- pathArray = path.split("|"),
- text = this._getLangElement(pathArray, this.locale);
-
- // if(text === false){
-
- // console.warn("Localization Error - Matching localized text not found for given path: ", path);
-
- // }
-
-
- return text || "";
- };
-
- //traverse langs object and find localized copy
-
- Localize.prototype._getLangElement = function (path, locale) {
-
- var self = this;
-
- var root = self.lang;
-
- path.forEach(function (level) {
-
- var rootPath;
-
- if (root) {
-
- rootPath = root[level];
-
- if (typeof rootPath != "undefined") {
-
- root = rootPath;
- } else {
-
- root = false;
- }
- }
- });
-
- return root;
- };
-
- //set update binding
-
- Localize.prototype.bind = function (path, callback) {
-
- if (!this.bindings[path]) {
-
- this.bindings[path] = [];
- }
-
- this.bindings[path].push(callback);
-
- callback(this.getText(path), this.lang);
- };
-
- //itterate through bindings and trigger updates
-
- Localize.prototype._executeBindings = function () {
-
- var self = this;
-
- var _loop = function _loop(path) {
-
- self.bindings[path].forEach(function (binding) {
-
- binding(self.getText(path), self.lang);
- });
- };
-
- for (var path in self.bindings) {
- _loop(path);
- }
- };
-
- //Localized text listings
-
- Localize.prototype.langs = {
-
- "default": { //hold default locale text
-
- "groups": {
-
- "item": "item",
-
- "items": "items"
-
- },
-
- "columns": {},
-
- "ajax": {
-
- "loading": "Loading",
-
- "error": "Error"
-
- },
-
- "pagination": {
-
- "page_size": "Page Size",
-
- "first": "First",
-
- "first_title": "First Page",
-
- "last": "Last",
-
- "last_title": "Last Page",
-
- "prev": "Prev",
-
- "prev_title": "Prev Page",
-
- "next": "Next",
-
- "next_title": "Next Page"
-
- },
-
- "headerFilters": {
-
- "default": "filter column...",
-
- "columns": {}
-
- }
-
- }
-
- };
-
- Tabulator.prototype.registerModule("localize", Localize);
-
- var Comms = function Comms(table) {
-
- this.table = table;
- };
-
- Comms.prototype.getConnections = function (selectors) {
-
- var self = this,
- connections = [],
- connection;
-
- connection = Tabulator.prototype.comms.lookupTable(selectors);
-
- connection.forEach(function (con) {
-
- if (self.table !== con) {
-
- connections.push(con);
- }
- });
-
- return connections;
- };
-
- Comms.prototype.send = function (selectors, module, action, data) {
-
- var self = this,
- connections = this.getConnections(selectors);
-
- connections.forEach(function (connection) {
-
- connection.tableComms(self.table.element, module, action, data);
- });
-
- if (!connections.length && selectors) {
-
- console.warn("Table Connection Error - No tables matching selector found", selectors);
- }
- };
-
- Comms.prototype.receive = function (table, module, action, data) {
-
- if (this.table.modExists(module)) {
-
- return this.table.modules[module].commsReceived(table, action, data);
- } else {
-
- console.warn("Inter-table Comms Error - no such module:", module);
- }
- };
-
- Tabulator.prototype.registerModule("comms", Comms);
-
- var Accessor = function Accessor(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "download", "clipboard", "print", "htmlOutput"]; //list of accessor types
- };
-
- //initialize column accessor
- Accessor.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1)),
- accessor;
-
- if (column.definition[key]) {
- accessor = self.lookupAccessor(column.definition[key]);
-
- if (accessor) {
- match = true;
-
- config[key] = {
- accessor: accessor,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.accessor = config;
- }
- };
-
- Accessor.prototype.lookupAccessor = function (value) {
- var accessor = false;
-
- //set column accessor
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "string":
- if (this.accessors[value]) {
- accessor = this.accessors[value];
- } else {
- console.warn("Accessor Error - No such accessor found, ignoring: ", value);
- }
- break;
-
- case "function":
- accessor = value;
- break;
- }
-
- return accessor;
- };
-
- //apply accessor to row
- Accessor.prototype.transformRow = function (dataIn, type) {
- var self = this,
- key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1));
-
- //clone data object with deep copy to isolate internal data from returned result
- var data = Tabulator.prototype.helpers.deepClone(dataIn || {});
-
- self.table.columnManager.traverse(function (column) {
- var value, accessor, params, component;
-
- if (column.modules.accessor) {
-
- accessor = column.modules.accessor[key] || column.modules.accessor.accessor || false;
-
- if (accessor) {
- value = column.getFieldValue(data);
-
- if (value != "undefined") {
- component = column.getComponent();
- params = typeof accessor.params === "function" ? accessor.params(value, data, type, component) : accessor.params;
- column.setFieldValue(data, accessor.accessor(value, data, type, params, component));
- }
- }
- }
- });
-
- return data;
- },
-
- //default accessors
- Accessor.prototype.accessors = {};
-
- Tabulator.prototype.registerModule("accessor", Accessor);
- var Ajax = function Ajax(table) {
-
- this.table = table; //hold Tabulator object
- this.config = false; //hold config object for ajax request
- this.url = ""; //request URL
- this.urlGenerator = false;
- this.params = false; //request parameters
-
- this.loaderElement = this.createLoaderElement(); //loader message div
- this.msgElement = this.createMsgElement(); //message element
- this.loadingElement = false;
- this.errorElement = false;
- this.loaderPromise = false;
-
- this.progressiveLoad = false;
- this.loading = false;
-
- this.requestOrder = 0; //prevent requests comming out of sequence if overridden by another load request
- };
-
- //initialize setup options
- Ajax.prototype.initialize = function () {
- var template;
-
- this.loaderElement.appendChild(this.msgElement);
-
- if (this.table.options.ajaxLoaderLoading) {
- if (typeof this.table.options.ajaxLoaderLoading == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderLoading.trim();
- this.loadingElement = template.content.firstChild;
- } else {
- this.loadingElement = this.table.options.ajaxLoaderLoading;
- }
- }
-
- this.loaderPromise = this.table.options.ajaxRequestFunc || this.defaultLoaderPromise;
-
- this.urlGenerator = this.table.options.ajaxURLGenerator || this.defaultURLGenerator;
-
- if (this.table.options.ajaxLoaderError) {
- if (typeof this.table.options.ajaxLoaderError == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderError.trim();
- this.errorElement = template.content.firstChild;
- } else {
- this.errorElement = this.table.options.ajaxLoaderError;
- }
- }
-
- if (this.table.options.ajaxParams) {
- this.setParams(this.table.options.ajaxParams);
- }
-
- if (this.table.options.ajaxConfig) {
- this.setConfig(this.table.options.ajaxConfig);
- }
-
- if (this.table.options.ajaxURL) {
- this.setUrl(this.table.options.ajaxURL);
- }
-
- if (this.table.options.ajaxProgressiveLoad) {
- if (this.table.options.pagination) {
- this.progressiveLoad = false;
- console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time");
- } else {
- if (this.table.modExists("page")) {
- this.progressiveLoad = this.table.options.ajaxProgressiveLoad;
- this.table.modules.page.initializeProgressive(this.progressiveLoad);
- } else {
- console.error("Pagination plugin is required for progressive ajax loading");
- }
- }
- }
- };
-
- Ajax.prototype.createLoaderElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-loader");
- return el;
- };
-
- Ajax.prototype.createMsgElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-loader-msg");
- el.setAttribute("role", "alert");
-
- return el;
- };
-
- //set ajax params
- Ajax.prototype.setParams = function (params, update) {
- if (update) {
- this.params = this.params || {};
-
- for (var key in params) {
- this.params[key] = params[key];
- }
- } else {
- this.params = params;
- }
- };
-
- Ajax.prototype.getParams = function () {
- return this.params || {};
- };
-
- //load config object
- Ajax.prototype.setConfig = function (config) {
- this._loadDefaultConfig();
-
- if (typeof config == "string") {
- this.config.method = config;
- } else {
- for (var key in config) {
- this.config[key] = config[key];
- }
- }
- };
-
- //create config object from default
- Ajax.prototype._loadDefaultConfig = function (force) {
- var self = this;
- if (!self.config || force) {
-
- self.config = {};
-
- //load base config from defaults
- for (var key in self.defaultConfig) {
- self.config[key] = self.defaultConfig[key];
- }
- }
- };
-
- //set request url
- Ajax.prototype.setUrl = function (url) {
- this.url = url;
- };
-
- //get request url
- Ajax.prototype.getUrl = function () {
- return this.url;
- };
-
- //lstandard loading function
- Ajax.prototype.loadData = function (inPosition, columnsChanged) {
- var self = this;
-
- if (this.progressiveLoad) {
- return this._loadDataProgressive();
- } else {
- return this._loadDataStandard(inPosition, columnsChanged);
- }
- };
-
- Ajax.prototype.nextPage = function (diff) {
- var margin;
-
- if (!this.loading) {
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.getElement().clientHeight * 2;
-
- if (diff < margin) {
- this.table.modules.page.nextPage().then(function () {}).catch(function () {});
- }
- }
- };
-
- Ajax.prototype.blockActiveRequest = function () {
- this.requestOrder++;
- };
-
- Ajax.prototype._loadDataProgressive = function () {
- this.table.rowManager.setData([]);
- return this.table.modules.page.setPage(1);
- };
-
- Ajax.prototype._loadDataStandard = function (inPosition, columnsChanged) {
- var _this33 = this;
-
- return new Promise(function (resolve, reject) {
- _this33.sendRequest(inPosition).then(function (data) {
- _this33.table.rowManager.setData(data, inPosition, columnsChanged).then(function () {
- resolve();
- }).catch(function (e) {
- reject(e);
- });
- }).catch(function (e) {
- reject(e);
- });
- });
- };
-
- Ajax.prototype.generateParamsList = function (data, prefix) {
- var self = this,
- output = [];
-
- prefix = prefix || "";
-
- if (Array.isArray(data)) {
- data.forEach(function (item, i) {
- output = output.concat(self.generateParamsList(item, prefix ? prefix + "[" + i + "]" : i));
- });
- } else if ((typeof data === 'undefined' ? 'undefined' : _typeof(data)) === "object") {
- for (var key in data) {
- output = output.concat(self.generateParamsList(data[key], prefix ? prefix + "[" + key + "]" : key));
- }
- } else {
- output.push({ key: prefix, value: data });
- }
-
- return output;
- };
-
- Ajax.prototype.serializeParams = function (params) {
- var output = this.generateParamsList(params),
- encoded = [];
-
- output.forEach(function (item) {
- encoded.push(encodeURIComponent(item.key) + "=" + encodeURIComponent(item.value));
- });
-
- return encoded.join("&");
- };
-
- //send ajax request
- Ajax.prototype.sendRequest = function (silent) {
- var _this34 = this;
-
- var self = this,
- url = self.url,
- requestNo,
- esc,
- query;
-
- self.requestOrder++;
- requestNo = self.requestOrder;
-
- self._loadDefaultConfig();
-
- return new Promise(function (resolve, reject) {
- if (self.table.options.ajaxRequesting.call(_this34.table, self.url, self.params) !== false) {
-
- self.loading = true;
-
- if (!silent) {
- self.showLoader();
- }
-
- _this34.loaderPromise(url, self.config, self.params).then(function (data) {
- if (requestNo === self.requestOrder) {
- if (self.table.options.ajaxResponse) {
- data = self.table.options.ajaxResponse.call(self.table, self.url, self.params, data);
- }
- resolve(data);
-
- self.hideLoader();
- self.loading = false;
- } else {
- console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made");
- }
- }).catch(function (error) {
- console.error("Ajax Load Error: ", error);
- self.table.options.ajaxError.call(self.table, error);
-
- self.showError();
-
- setTimeout(function () {
- self.hideLoader();
- }, 3000);
-
- self.loading = false;
-
- reject();
- });
- } else {
- reject();
- }
- });
- };
-
- Ajax.prototype.showLoader = function () {
- var shouldLoad = typeof this.table.options.ajaxLoader === "function" ? this.table.options.ajaxLoader() : this.table.options.ajaxLoader;
-
- if (shouldLoad) {
-
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-error");
- this.msgElement.classList.add("tabulator-loading");
-
- if (this.loadingElement) {
- this.msgElement.appendChild(this.loadingElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|loading");
- }
-
- this.table.element.appendChild(this.loaderElement);
- }
- };
-
- Ajax.prototype.showError = function () {
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-loading");
- this.msgElement.classList.add("tabulator-error");
-
- if (this.errorElement) {
- this.msgElement.appendChild(this.errorElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|error");
- }
-
- this.table.element.appendChild(this.loaderElement);
- };
-
- Ajax.prototype.hideLoader = function () {
- if (this.loaderElement.parentNode) {
- this.loaderElement.parentNode.removeChild(this.loaderElement);
- }
- };
-
- //default ajax config object
- Ajax.prototype.defaultConfig = {
- method: "GET"
- };
-
- Ajax.prototype.defaultURLGenerator = function (url, config, params) {
-
- if (url) {
- if (params && Object.keys(params).length) {
- if (!config.method || config.method.toLowerCase() == "get") {
- config.method = "get";
-
- url += (url.includes("?") ? "&" : "?") + this.serializeParams(params);
- }
- }
- }
-
- return url;
- };
-
- Ajax.prototype.defaultLoaderPromise = function (url, config, params) {
- var self = this,
- contentType;
-
- return new Promise(function (resolve, reject) {
-
- //set url
- url = self.urlGenerator(url, config, params);
-
- //set body content if not GET request
- if (config.method.toUpperCase() != "GET") {
- contentType = _typeof(self.table.options.ajaxContentType) === "object" ? self.table.options.ajaxContentType : self.contentTypeFormatters[self.table.options.ajaxContentType];
- if (contentType) {
-
- for (var key in contentType.headers) {
- if (!config.headers) {
- config.headers = {};
- }
-
- if (typeof config.headers[key] === "undefined") {
- config.headers[key] = contentType.headers[key];
- }
- }
-
- config.body = contentType.body.call(self, url, config, params);
- } else {
- console.warn("Ajax Error - Invalid ajaxContentType value:", self.table.options.ajaxContentType);
- }
- }
-
- if (url) {
-
- //configure headers
- if (typeof config.headers === "undefined") {
- config.headers = {};
- }
-
- if (typeof config.headers.Accept === "undefined") {
- config.headers.Accept = "application/json";
- }
-
- if (typeof config.headers["X-Requested-With"] === "undefined") {
- config.headers["X-Requested-With"] = "XMLHttpRequest";
- }
-
- if (typeof config.mode === "undefined") {
- config.mode = "cors";
- }
-
- if (config.mode == "cors") {
-
- if (typeof config.headers["Access-Control-Allow-Origin"] === "undefined") {
- config.headers["Access-Control-Allow-Origin"] = window.location.origin;
- }
-
- if (typeof config.credentials === "undefined") {
- config.credentials = 'same-origin';
- }
- } else {
- if (typeof config.credentials === "undefined") {
- config.credentials = 'include';
- }
- }
-
- //send request
- fetch(url, config).then(function (response) {
- if (response.ok) {
- response.json().then(function (data) {
- resolve(data);
- }).catch(function (error) {
- reject(error);
- console.warn("Ajax Load Error - Invalid JSON returned", error);
- });
- } else {
- console.error("Ajax Load Error - Connection Error: " + response.status, response.statusText);
- reject(response);
- }
- }).catch(function (error) {
- console.error("Ajax Load Error - Connection Error: ", error);
- reject(error);
- });
- } else {
- console.warn("Ajax Load Error - No URL Set");
- resolve([]);
- }
- });
- };
-
- Ajax.prototype.contentTypeFormatters = {
- "json": {
- headers: {
- 'Content-Type': 'application/json'
- },
- body: function body(url, config, params) {
- return JSON.stringify(params);
- }
- },
- "form": {
- headers: {},
- body: function body(url, config, params) {
- var output = this.generateParamsList(params),
- form = new FormData();
-
- output.forEach(function (item) {
- form.append(item.key, item.value);
- });
-
- return form;
- }
- }
- };
-
- Tabulator.prototype.registerModule("ajax", Ajax);
-
- var ColumnCalcs = function ColumnCalcs(table) {
- this.table = table; //hold Tabulator object
- this.topCalcs = [];
- this.botCalcs = [];
- this.genColumn = false;
- this.topElement = this.createElement();
- this.botElement = this.createElement();
- this.topRow = false;
- this.botRow = false;
- this.topInitialized = false;
- this.botInitialized = false;
-
- this.initialize();
- };
-
- ColumnCalcs.prototype.createElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-calcs-holder");
- return el;
- };
-
- ColumnCalcs.prototype.initialize = function () {
- this.genColumn = new Column({ field: "value" }, this);
- };
-
- //dummy functions to handle being mock column manager
- ColumnCalcs.prototype.registerColumnField = function () {};
-
- //initialize column calcs
- ColumnCalcs.prototype.initializeColumn = function (column) {
- var def = column.definition;
-
- var config = {
- topCalcParams: def.topCalcParams || {},
- botCalcParams: def.bottomCalcParams || {}
- };
-
- if (def.topCalc) {
-
- switch (_typeof(def.topCalc)) {
- case "string":
- if (this.calculations[def.topCalc]) {
- config.topCalc = this.calculations[def.topCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.topCalc);
- }
- break;
-
- case "function":
- config.topCalc = def.topCalc;
- break;
-
- }
-
- if (config.topCalc) {
- column.modules.columnCalcs = config;
- this.topCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeTopRow();
- }
- }
- }
-
- if (def.bottomCalc) {
- switch (_typeof(def.bottomCalc)) {
- case "string":
- if (this.calculations[def.bottomCalc]) {
- config.botCalc = this.calculations[def.bottomCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.bottomCalc);
- }
- break;
-
- case "function":
- config.botCalc = def.bottomCalc;
- break;
-
- }
-
- if (config.botCalc) {
- column.modules.columnCalcs = config;
- this.botCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeBottomRow();
- }
- }
- }
- };
-
- ColumnCalcs.prototype.removeCalcs = function () {
- var changed = false;
-
- if (this.topInitialized) {
- this.topInitialized = false;
- this.topElement.parentNode.removeChild(this.topElement);
- changed = true;
- }
-
- if (this.botInitialized) {
- this.botInitialized = false;
- this.table.footerManager.remove(this.botElement);
- changed = true;
- }
-
- if (changed) {
- this.table.rowManager.adjustTableSize();
- }
- };
-
- ColumnCalcs.prototype.initializeTopRow = function () {
- if (!this.topInitialized) {
- // this.table.columnManager.headersElement.after(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
- this.topInitialized = true;
- }
- };
-
- ColumnCalcs.prototype.initializeBottomRow = function () {
- if (!this.botInitialized) {
- this.table.footerManager.prepend(this.botElement);
- this.botInitialized = true;
- }
- };
-
- ColumnCalcs.prototype.scrollHorizontal = function (left) {
- var hozAdjust = 0,
- scrollWidth = this.table.columnManager.getElement().scrollWidth - this.table.element.clientWidth;
-
- if (this.botInitialized) {
- this.botRow.getElement().style.marginLeft = -left + "px";
- }
- };
-
- ColumnCalcs.prototype.recalc = function (rows) {
- var data, row;
-
- if (this.topInitialized || this.botInitialized) {
- data = this.rowsToData(rows);
-
- if (this.topInitialized) {
- if (this.topRow) {
- this.topRow.deleteCells();
- }
-
- row = this.generateRow("top", this.rowsToData(rows));
- this.topRow = row;
- while (this.topElement.firstChild) {
- this.topElement.removeChild(this.topElement.firstChild);
- }this.topElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- if (this.botInitialized) {
- if (this.botRow) {
- this.botRow.deleteCells();
- }
-
- row = this.generateRow("bottom", this.rowsToData(rows));
- this.botRow = row;
- while (this.botElement.firstChild) {
- this.botElement.removeChild(this.botElement.firstChild);
- }this.botElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- this.table.rowManager.adjustTableSize();
-
- //set resizable handles
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
- }
- };
-
- ColumnCalcs.prototype.recalcRowGroup = function (row) {
- this.recalcGroup(this.table.modules.groupRows.getRowGroup(row));
- };
-
- ColumnCalcs.prototype.recalcAll = function () {
- var _this35 = this;
-
- if (this.topCalcs.length || this.botCalcs.length) {
- if (this.table.options.columnCalcs !== "group") {
- this.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.groupBy && this.table.options.columnCalcs !== "table") {
-
- var groups = table.modules.groupRows.getChildGroups();
-
- groups.forEach(function (group) {
- _this35.recalcGroup(group);
- });
- }
- }
- };
-
- ColumnCalcs.prototype.recalcGroup = function (group) {
- var data, rowData;
-
- if (group) {
- if (group.calcs) {
- if (group.calcs.bottom) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("bottom", data);
-
- group.calcs.bottom.updateData(rowData);
- group.calcs.bottom.reinitialize();
- }
-
- if (group.calcs.top) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("top", data);
-
- group.calcs.top.updateData(rowData);
- group.calcs.top.reinitialize();
- }
- }
- }
- };
-
- //generate top stats row
- ColumnCalcs.prototype.generateTopRow = function (rows) {
- return this.generateRow("top", this.rowsToData(rows));
- };
- //generate bottom stats row
- ColumnCalcs.prototype.generateBottomRow = function (rows) {
- return this.generateRow("bottom", this.rowsToData(rows));
- };
-
- ColumnCalcs.prototype.rowsToData = function (rows) {
- var _this36 = this;
-
- var data = [];
-
- rows.forEach(function (row) {
- data.push(row.getData());
-
- if (_this36.table.options.dataTree && _this36.table.options.dataTreeChildColumnCalcs) {
- if (row.modules.dataTree.open) {
- var children = _this36.rowsToData(_this36.table.modules.dataTree.getFilteredTreeChildren(row));
- data = data.concat(children);
- }
- }
- });
-
- return data;
- };
-
- //generate stats row
- ColumnCalcs.prototype.generateRow = function (pos, data) {
- var self = this,
- rowData = this.generateRowData(pos, data),
- row;
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.disable();
- }
-
- row = new Row(rowData, this, "calc");
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.enable();
- }
-
- row.getElement().classList.add("tabulator-calcs", "tabulator-calcs-" + pos);
-
- row.generateCells = function () {
-
- var cells = [];
-
- self.table.columnManager.columnsByIndex.forEach(function (column) {
-
- //set field name of mock column
- self.genColumn.setField(column.getField());
- self.genColumn.hozAlign = column.hozAlign;
-
- if (column.definition[pos + "CalcFormatter"] && self.table.modExists("format")) {
-
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter(column.definition[pos + "CalcFormatter"]),
- params: column.definition[pos + "CalcFormatterParams"]
- };
- } else {
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter("plaintext"),
- params: {}
- };
- }
-
- //ensure css class defintion is replicated to calculation cell
- self.genColumn.definition.cssClass = column.definition.cssClass;
-
- //generate cell and assign to correct column
- var cell = new Cell(self.genColumn, row);
- cell.column = column;
- cell.setWidth();
-
- column.cells.push(cell);
- cells.push(cell);
-
- if (!column.visible) {
- cell.hide();
- }
- });
-
- this.cells = cells;
- };
-
- return row;
- };
-
- //generate stats row
- ColumnCalcs.prototype.generateRowData = function (pos, data) {
- var rowData = {},
- calcs = pos == "top" ? this.topCalcs : this.botCalcs,
- type = pos == "top" ? "topCalc" : "botCalc",
- params,
- paramKey;
-
- calcs.forEach(function (column) {
- var values = [];
-
- if (column.modules.columnCalcs && column.modules.columnCalcs[type]) {
- data.forEach(function (item) {
- values.push(column.getFieldValue(item));
- });
-
- paramKey = type + "Params";
- params = typeof column.modules.columnCalcs[paramKey] === "function" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey];
-
- column.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params));
- }
- });
-
- return rowData;
- };
-
- ColumnCalcs.prototype.hasTopCalcs = function () {
- return !!this.topCalcs.length;
- };
-
- ColumnCalcs.prototype.hasBottomCalcs = function () {
- return !!this.botCalcs.length;
- };
-
- //handle table redraw
- ColumnCalcs.prototype.redraw = function () {
- if (this.topRow) {
- this.topRow.normalizeHeight(true);
- }
- if (this.botRow) {
- this.botRow.normalizeHeight(true);
- }
- };
-
- //return the calculated
- ColumnCalcs.prototype.getResults = function () {
- var self = this,
- results = {},
- groups;
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- groups = this.table.modules.groupRows.getGroups(true);
-
- groups.forEach(function (group) {
- results[group.getKey()] = self.getGroupResults(group);
- });
- } else {
- results = {
- top: this.topRow ? this.topRow.getData() : {},
- bottom: this.botRow ? this.botRow.getData() : {}
- };
- }
-
- return results;
- };
-
- //get results from a group
- ColumnCalcs.prototype.getGroupResults = function (group) {
- var self = this,
- groupObj = group._getSelf(),
- subGroups = group.getSubGroups(),
- subGroupResults = {},
- results = {};
-
- subGroups.forEach(function (subgroup) {
- subGroupResults[subgroup.getKey()] = self.getGroupResults(subgroup);
- });
-
- results = {
- top: groupObj.calcs.top ? groupObj.calcs.top.getData() : {},
- bottom: groupObj.calcs.bottom ? groupObj.calcs.bottom.getData() : {},
- groups: subGroupResults
- };
-
- return results;
- };
-
- //default calculations
- ColumnCalcs.prototype.calculations = {
- "avg": function avg(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : 2;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- value = Number(value);
- return sum + value;
- });
-
- output = output / values.length;
-
- output = precision !== false ? output.toFixed(precision) : output;
- }
-
- return parseFloat(output).toString();
- },
- "max": function max(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value > output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "min": function min(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value < output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "sum": function sum(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- if (values.length) {
- values.forEach(function (value) {
- value = Number(value);
-
- output += !isNaN(value) ? Number(value) : 0;
- });
- }
-
- return precision !== false ? output.toFixed(precision) : output;
- },
- "concat": function concat(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- return String(sum) + String(value);
- });
- }
-
- return output;
- },
- "count": function count(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- values.forEach(function (value) {
- if (value) {
- output++;
- }
- });
- }
-
- return output;
- }
- };
-
- Tabulator.prototype.registerModule("columnCalcs", ColumnCalcs);
-
- var Clipboard = function Clipboard(table) {
- this.table = table;
- this.mode = true;
-
- this.pasteParser = function () {};
- this.pasteAction = function () {};
- this.customSelection = false;
- this.rowRange = false;
- this.blocked = true; //block copy actions not originating from this command
- };
-
- Clipboard.prototype.initialize = function () {
- var _this37 = this;
-
- this.mode = this.table.options.clipboard;
-
- this.rowRange = this.table.options.clipboardCopyRowRange;
-
- if (this.mode === true || this.mode === "copy") {
- this.table.element.addEventListener("copy", function (e) {
- var plain, html;
-
- if (!_this37.blocked) {
- e.preventDefault();
-
- if (_this37.customSelection) {
- plain = _this37.customSelection;
-
- if (_this37.table.options.clipboardCopyFormatter) {
- plain = _this37.table.options.clipboardCopyFormatter("plain", plain);
- }
- } else {
- html = _this37.table.modules.export.getHtml(_this37.rowRange, _this37.table.options.clipboardCopyStyled, _this37.table.options.clipboardCopyConfig, "clipboard");
- plain = html ? _this37.generatePlainContent(html) : "";
-
- if (_this37.table.options.clipboardCopyFormatter) {
- plain = _this37.table.options.clipboardCopyFormatter("plain", plain);
- html = _this37.table.options.clipboardCopyFormatter("html", html);
- }
- }
-
- if (window.clipboardData && window.clipboardData.setData) {
- window.clipboardData.setData('Text', plain);
- } else if (e.clipboardData && e.clipboardData.setData) {
- e.clipboardData.setData('text/plain', plain);
- if (html) {
- e.clipboardData.setData('text/html', html);
- }
- } else if (e.originalEvent && e.originalEvent.clipboardData.setData) {
- e.originalEvent.clipboardData.setData('text/plain', plain);
- if (html) {
- e.originalEvent.clipboardData.setData('text/html', html);
- }
- }
-
- _this37.table.options.clipboardCopied.call(_this37.table, plain, html);
-
- _this37.reset();
- }
- });
- }
-
- if (this.mode === true || this.mode === "paste") {
- this.table.element.addEventListener("paste", function (e) {
- _this37.paste(e);
- });
- }
-
- this.setPasteParser(this.table.options.clipboardPasteParser);
- this.setPasteAction(this.table.options.clipboardPasteAction);
- };
-
- Clipboard.prototype.reset = function () {
- this.blocked = false;
- this.originalSelectionText = "";
- };
-
- Clipboard.prototype.generatePlainContent = function (html) {
- var output = [];
-
- var holder = document.createElement("div");
- holder.innerHTML = html;
-
- var table = holder.getElementsByTagName("table")[0];
- var rows = Array.prototype.slice.call(table.getElementsByTagName("tr"));
-
- rows.forEach(function (row) {
- var rowData = [];
-
- var headers = Array.prototype.slice.call(row.getElementsByTagName("th"));
- var cells = Array.prototype.slice.call(row.getElementsByTagName("td"));
-
- cells = cells.concat(headers);
-
- cells.forEach(function (cell) {
- var val = cell.innerHTML;
-
- val = val == " " ? "" : val;
-
- rowData.push(val);
- });
-
- output.push(rowData.join("\t"));
- });
-
- return output.join("\n");
- };
-
- Clipboard.prototype.copy = function (range, internal) {
- var range, sel, textRange;
- this.blocked = false;
- this.customSelection = false;
-
- if (this.mode === true || this.mode === "copy") {
-
- this.rowRange = range || this.table.options.clipboardCopyRowRange;
-
- if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
- range = document.createRange();
- range.selectNodeContents(this.table.element);
- sel = window.getSelection();
-
- if (sel.toString() && internal) {
- this.customSelection = sel.toString();
- }
-
- sel.removeAllRanges();
- sel.addRange(range);
- } else if (typeof document.selection != "undefined" && typeof document.body.createTextRange != "undefined") {
- textRange = document.body.createTextRange();
- textRange.moveToElementText(this.table.element);
- textRange.select();
- }
-
- document.execCommand('copy');
-
- if (sel) {
- sel.removeAllRanges();
- }
- }
- };
-
- //PASTE EVENT HANDLING
-
- Clipboard.prototype.setPasteAction = function (action) {
-
- switch (typeof action === 'undefined' ? 'undefined' : _typeof(action)) {
- case "string":
- this.pasteAction = this.pasteActions[action];
-
- if (!this.pasteAction) {
- console.warn("Clipboard Error - No such paste action found:", action);
- }
- break;
-
- case "function":
- this.pasteAction = action;
- break;
- }
- };
-
- Clipboard.prototype.setPasteParser = function (parser) {
- switch (typeof parser === 'undefined' ? 'undefined' : _typeof(parser)) {
- case "string":
- this.pasteParser = this.pasteParsers[parser];
-
- if (!this.pasteParser) {
- console.warn("Clipboard Error - No such paste parser found:", parser);
- }
- break;
-
- case "function":
- this.pasteParser = parser;
- break;
- }
- };
-
- Clipboard.prototype.paste = function (e) {
- var data, rowData, rows;
-
- if (this.checkPaseOrigin(e)) {
-
- data = this.getPasteData(e);
-
- rowData = this.pasteParser.call(this, data);
-
- if (rowData) {
- e.preventDefault();
-
- if (this.table.modExists("mutator")) {
- rowData = this.mutateData(rowData);
- }
-
- rows = this.pasteAction.call(this, rowData);
- this.table.options.clipboardPasted.call(this.table, data, rowData, rows);
- } else {
- this.table.options.clipboardPasteError.call(this.table, data);
- }
- }
- };
-
- Clipboard.prototype.mutateData = function (data) {
- var self = this,
- output = [];
-
- if (Array.isArray(data)) {
- data.forEach(function (row) {
- output.push(self.table.modules.mutator.transformRow(row, "clipboard"));
- });
- } else {
- output = data;
- }
-
- return output;
- };
-
- Clipboard.prototype.checkPaseOrigin = function (e) {
- var valid = true;
-
- if (e.target.tagName != "DIV" || this.table.modules.edit.currentCell) {
- valid = false;
- }
-
- return valid;
- };
-
- Clipboard.prototype.getPasteData = function (e) {
- var data;
-
- if (window.clipboardData && window.clipboardData.getData) {
- data = window.clipboardData.getData('Text');
- } else if (e.clipboardData && e.clipboardData.getData) {
- data = e.clipboardData.getData('text/plain');
- } else if (e.originalEvent && e.originalEvent.clipboardData.getData) {
- data = e.originalEvent.clipboardData.getData('text/plain');
- }
-
- return data;
- };
-
- Clipboard.prototype.pasteParsers = {
- table: function table(clipboard) {
- var data = [],
- success = false,
- headerFindSuccess = true,
- columns = this.table.columnManager.columns,
- columnMap = [],
- rows = [];
-
- //get data from clipboard into array of columns and rows.
- clipboard = clipboard.split("\n");
-
- clipboard.forEach(function (row) {
- data.push(row.split("\t"));
- });
-
- if (data.length && !(data.length === 1 && data[0].length < 2)) {
- success = true;
-
- //check if headers are present by title
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.definition.title && value.trim() && column.definition.title.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- //check if column headers are present by field
- if (!headerFindSuccess) {
- headerFindSuccess = true;
- columnMap = [];
-
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.field && value.trim() && column.field.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- if (!headerFindSuccess) {
- columnMap = this.table.columnManager.columnsByIndex;
- }
- }
-
- //remove header row if found
- if (headerFindSuccess) {
- data.shift();
- }
-
- data.forEach(function (item) {
- var row = {};
-
- item.forEach(function (value, i) {
- if (columnMap[i]) {
- row[columnMap[i].field] = value;
- }
- });
-
- rows.push(row);
- });
-
- return rows;
- } else {
- return false;
- }
- }
- };
-
- Clipboard.prototype.pasteActions = {
- replace: function replace(rows) {
- return this.table.setData(rows);
- },
- update: function update(rows) {
- return this.table.updateOrAddData(rows);
- },
- insert: function insert(rows) {
- return this.table.addData(rows);
- }
- };
-
- Tabulator.prototype.registerModule("clipboard", Clipboard);
-
- var DataTree = function DataTree(table) {
- this.table = table;
- this.indent = 10;
- this.field = "";
- this.collapseEl = null;
- this.expandEl = null;
- this.branchEl = null;
- this.elementField = false;
-
- this.startOpen = function () {};
-
- this.displayIndex = 0;
- };
-
- DataTree.prototype.initialize = function () {
- var dummyEl = null,
- firstCol = this.table.columnManager.getFirstVisibileColumn(),
- options = this.table.options;
-
- this.field = options.dataTreeChildField;
- this.indent = options.dataTreeChildIndent;
- this.elementField = options.dataTreeElementColumn || (firstCol ? firstCol.field : false);
-
- if (options.dataTreeBranchElement) {
-
- if (options.dataTreeBranchElement === true) {
- this.branchEl = document.createElement("div");
- this.branchEl.classList.add("tabulator-data-tree-branch");
- } else {
- if (typeof options.dataTreeBranchElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeBranchElement;
- this.branchEl = dummyEl.firstChild;
- } else {
- this.branchEl = options.dataTreeBranchElement;
- }
- }
- }
-
- if (options.dataTreeCollapseElement) {
- if (typeof options.dataTreeCollapseElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeCollapseElement;
- this.collapseEl = dummyEl.firstChild;
- } else {
- this.collapseEl = options.dataTreeCollapseElement;
- }
- } else {
- this.collapseEl = document.createElement("div");
- this.collapseEl.classList.add("tabulator-data-tree-control");
- this.collapseEl.tabIndex = 0;
- this.collapseEl.innerHTML = "<div class='tabulator-data-tree-control-collapse'></div>";
- }
-
- if (options.dataTreeExpandElement) {
- if (typeof options.dataTreeExpandElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeExpandElement;
- this.expandEl = dummyEl.firstChild;
- } else {
- this.expandEl = options.dataTreeExpandElement;
- }
- } else {
- this.expandEl = document.createElement("div");
- this.expandEl.classList.add("tabulator-data-tree-control");
- this.expandEl.tabIndex = 0;
- this.expandEl.innerHTML = "<div class='tabulator-data-tree-control-expand'></div>";
- }
-
- switch (_typeof(options.dataTreeStartExpanded)) {
- case "boolean":
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded;
- };
- break;
-
- case "function":
- this.startOpen = options.dataTreeStartExpanded;
- break;
-
- default:
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded[index];
- };
- break;
- }
- };
-
- DataTree.prototype.initializeRow = function (row) {
- var childArray = row.getData()[this.field];
- var isArray = Array.isArray(childArray);
-
- var children = isArray || !isArray && (typeof childArray === 'undefined' ? 'undefined' : _typeof(childArray)) === "object" && childArray !== null;
-
- if (!children && row.modules.dataTree && row.modules.dataTree.branchEl) {
- row.modules.dataTree.branchEl.parentNode.removeChild(row.modules.dataTree.branchEl);
- }
-
- if (!children && row.modules.dataTree && row.modules.dataTree.controlEl) {
- row.modules.dataTree.controlEl.parentNode.removeChild(row.modules.dataTree.controlEl);
- }
-
- row.modules.dataTree = {
- index: row.modules.dataTree ? row.modules.dataTree.index : 0,
- open: children ? row.modules.dataTree ? row.modules.dataTree.open : this.startOpen(row.getComponent(), 0) : false,
- controlEl: row.modules.dataTree && children ? row.modules.dataTree.controlEl : false,
- branchEl: row.modules.dataTree && children ? row.modules.dataTree.branchEl : false,
- parent: row.modules.dataTree ? row.modules.dataTree.parent : false,
- children: children
- };
- };
-
- DataTree.prototype.layoutRow = function (row) {
- var cell = this.elementField ? row.getCell(this.elementField) : row.getCells()[0],
- el = cell.getElement(),
- config = row.modules.dataTree;
-
- if (config.branchEl) {
- if (config.branchEl.parentNode) {
- config.branchEl.parentNode.removeChild(config.branchEl);
- }
- config.branchEl = false;
- }
-
- if (config.controlEl) {
- if (config.controlEl.parentNode) {
- config.controlEl.parentNode.removeChild(config.controlEl);
- }
- config.controlEl = false;
- }
-
- this.generateControlElement(row, el);
-
- row.element.classList.add("tabulator-tree-level-" + config.index);
-
- if (config.index) {
- if (this.branchEl) {
- config.branchEl = this.branchEl.cloneNode(true);
- el.insertBefore(config.branchEl, el.firstChild);
- config.branchEl.style.marginLeft = (config.branchEl.offsetWidth + config.branchEl.style.marginRight) * (config.index - 1) + config.index * this.indent + "px";
- } else {
- el.style.paddingLeft = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-left')) + config.index * this.indent + "px";
- }
- }
- };
-
- DataTree.prototype.generateControlElement = function (row, el) {
- var _this38 = this;
-
- var config = row.modules.dataTree,
- el = el || row.getCells()[0].getElement(),
- oldControl = config.controlEl;
-
- if (config.children !== false) {
-
- if (config.open) {
- config.controlEl = this.collapseEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this38.collapseRow(row);
- });
- } else {
- config.controlEl = this.expandEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this38.expandRow(row);
- });
- }
-
- config.controlEl.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
-
- if (oldControl && oldControl.parentNode === el) {
- oldControl.parentNode.replaceChild(config.controlEl, oldControl);
- } else {
- el.insertBefore(config.controlEl, el.firstChild);
- }
- }
- };
-
- DataTree.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- DataTree.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- DataTree.prototype.getRows = function (rows) {
- var _this39 = this;
-
- var output = [];
-
- rows.forEach(function (row, i) {
- var config, children;
-
- output.push(row);
-
- if (row instanceof Row) {
-
- config = row.modules.dataTree.children;
-
- if (!config.index && config.children !== false) {
- children = _this39.getChildren(row);
-
- children.forEach(function (child) {
- output.push(child);
- });
- }
- }
- });
-
- return output;
- };
-
- DataTree.prototype.getChildren = function (row) {
- var _this40 = this;
-
- var config = row.modules.dataTree,
- children = [],
- output = [];
-
- if (config.children !== false && config.open) {
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- if (this.table.modExists("sort")) {
- this.table.modules.sort.sort(children);
- }
-
- children.forEach(function (child) {
- output.push(child);
-
- var subChildren = _this40.getChildren(child);
-
- subChildren.forEach(function (sub) {
- output.push(sub);
- });
- });
- }
-
- return output;
- };
-
- DataTree.prototype.generateChildren = function (row) {
- var _this41 = this;
-
- var children = [];
-
- var childArray = row.getData()[this.field];
-
- if (!Array.isArray(childArray)) {
- childArray = [childArray];
- }
-
- childArray.forEach(function (childData) {
- var childRow = new Row(childData || {}, _this41.table.rowManager);
- childRow.modules.dataTree.index = row.modules.dataTree.index + 1;
- childRow.modules.dataTree.parent = row;
- if (childRow.modules.dataTree.children) {
- childRow.modules.dataTree.open = _this41.startOpen(childRow.getComponent(), childRow.modules.dataTree.index);
- }
- children.push(childRow);
- });
-
- return children;
- };
-
- DataTree.prototype.expandRow = function (row, silent) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = true;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowExpanded(row.getComponent(), row.modules.dataTree.index);
- }
- };
-
- DataTree.prototype.collapseRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = false;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowCollapsed(row.getComponent(), row.modules.dataTree.index);
- }
- };
-
- DataTree.prototype.toggleRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- if (config.open) {
- this.collapseRow(row);
- } else {
- this.expandRow(row);
- }
- }
- };
-
- DataTree.prototype.getTreeParent = function (row) {
- return row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false;
- };
-
- DataTree.prototype.getFilteredTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [],
- children;
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow);
- }
- });
- }
-
- return output;
- };
-
- DataTree.prototype.getTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [];
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- config.children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow.getComponent());
- }
- });
- }
-
- return output;
- };
-
- DataTree.prototype.checkForRestyle = function (cell) {
- if (!cell.row.cells.indexOf(cell)) {
- cell.row.reinitialize();
- }
- };
-
- DataTree.prototype.getChildField = function () {
- return this.field;
- };
-
- DataTree.prototype.redrawNeeded = function (data) {
- return (this.field ? typeof data[this.field] !== "undefined" : false) || (this.elementField ? typeof data[this.elementField] !== "undefined" : false);
- };
-
- Tabulator.prototype.registerModule("dataTree", DataTree);
-
- var Download = function Download(table) {
- this.table = table; //hold Tabulator object
- this.fields = {}; //hold filed multi dimension arrays
- this.columnsByIndex = []; //hold columns in their order in the table
- this.columnsByField = {}; //hold columns with lookup by field name
- this.config = {};
- this.active = false;
- };
-
- //trigger file download
- Download.prototype.download = function (type, filename, options, active, interceptCallback) {
- var self = this,
- downloadFunc = false;
- this.processConfig();
- this.active = active;
-
- function buildLink(data, mime) {
- if (interceptCallback) {
- if (interceptCallback === true) {
- self.triggerDownload(data, mime, type, filename, true);
- } else {
- interceptCallback(data);
- }
- } else {
- self.triggerDownload(data, mime, type, filename);
- }
- }
-
- if (typeof type == "function") {
- downloadFunc = type;
- } else {
- if (self.downloaders[type]) {
- downloadFunc = self.downloaders[type];
- } else {
- console.warn("Download Error - No such download type found: ", type);
- }
- }
-
- this.processColumns();
-
- if (downloadFunc) {
- downloadFunc.call(this, self.processDefinitions(), self.processData(active || "active"), options || {}, buildLink, this.config);
- }
- };
-
- Download.prototype.processConfig = function () {
- var config = { //download config
- columnGroups: true,
- rowGroups: true,
- columnCalcs: true,
- dataTree: true
- };
-
- if (this.table.options.downloadConfig) {
- for (var key in this.table.options.downloadConfig) {
- config[key] = this.table.options.downloadConfig[key];
- }
- }
-
- this.config.rowGroups = config.rowGroups && this.table.options.groupBy && this.table.modExists("groupRows");
-
- if (config.columnGroups && this.table.columnManager.columns.length != this.table.columnManager.columnsByIndex.length) {
- this.config.columnGroups = true;
- }
-
- if (config.columnCalcs && this.table.modExists("columnCalcs")) {
- this.config.columnCalcs = true;
- }
-
- if (config.dataTree && this.table.options.dataTree && this.table.modExists("dataTree")) {
- this.config.dataTree = true;
- }
- };
-
- Download.prototype.processColumns = function () {
- var self = this;
-
- self.columnsByIndex = [];
- self.columnsByField = {};
-
- self.table.columnManager.columnsByIndex.forEach(function (column) {
-
- if (column.field && column.definition.download !== false && (column.visible || !column.visible && column.definition.download)) {
- self.columnsByIndex.push(column);
- self.columnsByField[column.field] = column;
- }
- });
- };
-
- Download.prototype.processDefinitions = function () {
- var self = this,
- processedDefinitions = [];
-
- if (this.config.columnGroups) {
- self.table.columnManager.columns.forEach(function (column) {
- var colData = self.processColumnGroup(column);
-
- if (colData) {
- processedDefinitions.push(colData);
- }
- });
- } else {
- self.columnsByIndex.forEach(function (column) {
- if (column.download !== false) {
- //isolate definiton from defintion object
- processedDefinitions.push(self.processDefinition(column));
- }
- });
- }
-
- return processedDefinitions;
- };
-
- Download.prototype.processColumnGroup = function (column) {
- var _this42 = this;
-
- var subGroups = column.columns,
- maxDepth = 0;
- var processedColumn = this.processDefinition(column);
- var groupData = {
- type: "group",
- title: processedColumn.title,
- depth: 1
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
- groupData.width = 0;
-
- subGroups.forEach(function (subGroup) {
- var subGroupData = _this42.processColumnGroup(subGroup);
-
- if (subGroupData.depth > maxDepth) {
- maxDepth = subGroupData.depth;
- }
-
- if (subGroupData) {
- groupData.width += subGroupData.width;
- groupData.subGroups.push(subGroupData);
- }
- });
-
- groupData.depth += maxDepth;
-
- if (!groupData.width) {
- return false;
- }
- } else {
- if (column.field && column.definition.download !== false && (column.visible || !column.visible && column.definition.download)) {
- groupData.width = 1;
- groupData.definition = processedColumn;
- } else {
- return false;
- }
- }
-
- return groupData;
- };
-
- Download.prototype.processDefinition = function (column) {
- var def = {};
-
- for (var key in column.definition) {
- def[key] = column.definition[key];
- }
-
- if (typeof column.definition.downloadTitle != "undefined") {
- def.title = column.definition.downloadTitle;
- }
-
- return def;
- };
-
- Download.prototype.processData = function (active) {
- var _this43 = this;
-
- var self = this,
- data = [],
- groups = [],
- rows = false,
- calcs = {};
-
- if (this.config.rowGroups) {
-
- if (active == "visible") {
-
- rows = self.table.rowManager.getRows(active);
-
- rows.forEach(function (row) {
- if (row.type == "row") {
- var group = row.getGroup();
-
- if (groups.indexOf(group) === -1) {
- groups.push(group);
- }
- }
- });
- } else {
- groups = this.table.modules.groupRows.getGroups();
- }
-
- groups.forEach(function (group) {
- data.push(_this43.processGroupData(group, rows));
- });
- } else {
- if (this.config.dataTree) {
- active = active = "active" ? "display" : active;
- }
- data = self.table.rowManager.getData(active, "download");
- }
-
- if (this.config.columnCalcs) {
- calcs = this.table.getCalcResults();
-
- data = {
- calcs: calcs,
- data: data
- };
- }
-
- //bulk data processing
- if (typeof self.table.options.downloadDataFormatter == "function") {
- data = self.table.options.downloadDataFormatter(data);
- }
-
- return data;
- };
-
- Download.prototype.processGroupData = function (group, visRows) {
- var _this44 = this;
-
- var subGroups = group.getSubGroups();
-
- var groupData = {
- type: "group",
- key: group.key
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
-
- subGroups.forEach(function (subGroup) {
- groupData.subGroups.push(_this44.processGroupData(subGroup, visRows));
- });
- } else {
- if (visRows) {
- groupData.rows = [];
-
- group.rows.forEach(function (row) {
- if (visRows.indexOf(row) > -1) {
- groupData.rows.push(row.getData("download"));
- }
- });
- } else {
- groupData.rows = group.getData(true, "download");
- }
- }
-
- return groupData;
- };
-
- Download.prototype.triggerDownload = function (data, mime, type, filename, newTab) {
- var element = document.createElement('a'),
- blob = new Blob([data], { type: mime }),
- filename = filename || "Tabulator." + (typeof type === "function" ? "txt" : type);
-
- blob = this.table.options.downloadReady.call(this.table, data, blob);
-
- if (blob) {
-
- if (newTab) {
- window.open(window.URL.createObjectURL(blob));
- } else {
- if (navigator.msSaveOrOpenBlob) {
- navigator.msSaveOrOpenBlob(blob, filename);
- } else {
- element.setAttribute('href', window.URL.createObjectURL(blob));
-
- //set file title
- element.setAttribute('download', filename);
-
- //trigger download
- element.style.display = 'none';
- document.body.appendChild(element);
- element.click();
-
- //remove temporary link element
- document.body.removeChild(element);
- }
- }
-
- if (this.table.options.downloadComplete) {
- this.table.options.downloadComplete();
- }
- }
- };
-
- //nested field lookup
- Download.prototype.getFieldValue = function (field, data) {
- var column = this.columnsByField[field];
-
- if (column) {
- return column.getFieldValue(data);
- }
-
- return false;
- };
-
- Download.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "intercept":
- this.download(data.type, "", data.options, data.active, data.intercept);
- break;
- }
- };
-
- //downloaders
- Download.prototype.downloaders = {
- csv: function csv(columns, data, options, setFileContents, config) {
- var self = this,
- titles = [],
- fields = [],
- delimiter = options && options.delimiter ? options.delimiter : ",",
- fileContents,
- output;
-
- //build column headers
- function parseSimpleTitles() {
- columns.forEach(function (column) {
- titles.push('"' + String(column.title).split('"').join('""') + '"');
- fields.push(column.field);
- });
- }
-
- function parseColumnGroup(column, level) {
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- } else {
- titles.push('"' + String(column.title).split('"').join('""') + '"');
- fields.push(column.definition.field);
- }
- }
-
- if (config.columnGroups) {
- console.warn("Download Warning - CSV downloader cannot process column groups");
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
- } else {
- parseSimpleTitles();
- }
-
- //generate header row
- fileContents = [titles.join(delimiter)];
-
- function parseRows(data) {
- //generate each row of the table
- data.forEach(function (row) {
- var rowData = [];
-
- fields.forEach(function (field) {
- var value = self.getFieldValue(field, row);
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
-
- //escape quotation marks
- rowData.push('"' + String(value).split('"').join('""') + '"');
- });
-
- fileContents.push(rowData.join(delimiter));
- });
- }
-
- function parseGroup(group) {
- if (group.subGroups) {
- group.subGroups.forEach(function (subGroup) {
- parseGroup(subGroup);
- });
- } else {
- parseRows(group.rows);
- }
- }
-
- if (config.columnCalcs) {
- console.warn("Download Warning - CSV downloader cannot process column calculations");
- data = data.data;
- }
-
- if (config.rowGroups) {
- console.warn("Download Warning - CSV downloader cannot process row groups");
-
- data.forEach(function (group) {
- parseGroup(group);
- });
- } else {
- parseRows(data);
- }
-
- output = fileContents.join("\n");
-
- if (options.bom) {
- output = '\uFEFF' + output;
- }
-
- setFileContents(output, "text/csv");
- },
-
- json: function json(columns, data, options, setFileContents, config) {
- var fileContents;
-
- if (config.columnCalcs) {
- console.warn("Download Warning - CSV downloader cannot process column calculations");
- data = data.data;
- }
-
- fileContents = JSON.stringify(data, null, '\t');
-
- setFileContents(fileContents, "application/json");
- },
-
- pdf: function pdf(columns, data, options, setFileContents, config) {
- var self = this,
- fields = [],
- header = [],
- body = [],
- calcs = {},
- headerDepth = 1,
- table = "",
- autoTableParams = {},
- rowGroupStyles = options.rowGroupStyles || {
- fontStyle: "bold",
- fontSize: 12,
- cellPadding: 6,
- fillColor: 220
- },
- rowCalcStyles = options.rowCalcStyles || {
- fontStyle: "bold",
- fontSize: 10,
- cellPadding: 4,
- fillColor: 232
- },
- jsPDFParams = options.jsPDF || {},
- title = options && options.title ? options.title : "";
-
- if (config.columnCalcs) {
- calcs = data.calcs;
- data = data.data;
- }
-
- if (!jsPDFParams.orientation) {
- jsPDFParams.orientation = options.orientation || "landscape";
- }
-
- if (!jsPDFParams.unit) {
- jsPDFParams.unit = "pt";
- }
-
- //build column headers
- function parseSimpleTitles() {
- columns.forEach(function (column) {
- if (column.field) {
- header.push(column.title || "");
- fields.push(column.field);
- }
- });
-
- header = [header];
- }
-
- function parseColumnGroup(column, level) {
- var colSpan = column.width,
- rowSpan = 1,
- col = {
- content: column.title || ""
- };
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- rowSpan = 1;
- } else {
- fields.push(column.definition.field);
- rowSpan = headerDepth - level;
- }
-
- col.rowSpan = rowSpan;
- // col.colSpan = colSpan;
-
- header[level].push(col);
-
- colSpan--;
-
- if (rowSpan > 1) {
- for (var i = level + 1; i < headerDepth; i++) {
- header[i].push("");
- }
- }
-
- for (var i = 0; i < colSpan; i++) {
- header[level].push("");
- }
- }
-
- if (config.columnGroups) {
- columns.forEach(function (column) {
- if (column.depth > headerDepth) {
- headerDepth = column.depth;
- }
- });
-
- for (var i = 0; i < headerDepth; i++) {
- header.push([]);
- }
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
- } else {
- parseSimpleTitles();
- }
-
- function parseValue(value) {
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
-
- return value;
- }
-
- function parseRows(data) {
- //build table rows
- data.forEach(function (row) {
- body.push(parseRow(row));
- });
- }
-
- function parseRow(row, styles) {
- var rowData = [];
-
- fields.forEach(function (field) {
- var value = self.getFieldValue(field, row);
- value = parseValue(value);
-
- if (styles) {
- rowData.push({
- content: value,
- styles: styles
- });
- } else {
- rowData.push(value);
- }
- });
-
- return rowData;
- }
-
- function parseGroup(group, calcObj) {
- var groupData = [];
-
- groupData.push({ content: parseValue(group.key), colSpan: fields.length, styles: rowGroupStyles });
-
- body.push(groupData);
-
- if (group.subGroups) {
- group.subGroups.forEach(function (subGroup) {
- parseGroup(subGroup, calcObj[group.key] ? calcObj[group.key].groups || {} : {});
- });
- } else {
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "top");
- }
-
- parseRows(group.rows);
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "bottom");
- }
- }
- }
-
- function addCalcRow(calcs, selector, pos) {
- var calcData = calcs[selector];
-
- if (calcData) {
- if (pos) {
- calcData = calcData[pos];
- }
-
- if (Object.keys(calcData).length) {
- body.push(parseRow(calcData, rowCalcStyles));
- }
- }
- }
-
- if (config.rowGroups) {
- data.forEach(function (group) {
- parseGroup(group, calcs);
- });
- } else {
- if (config.columnCalcs) {
- addCalcRow(calcs, "top");
- }
-
- parseRows(data);
-
- if (config.columnCalcs) {
- addCalcRow(calcs, "bottom");
- }
- }
-
- var doc = new jsPDF(jsPDFParams); //set document to landscape, better for most tables
-
- if (options && options.autoTable) {
- if (typeof options.autoTable === "function") {
- autoTableParams = options.autoTable(doc) || {};
- } else {
- autoTableParams = options.autoTable;
- }
- }
-
- if (title) {
- autoTableParams.addPageContent = function (data) {
- doc.text(title, 40, 30);
- };
- }
-
- autoTableParams.head = header;
- autoTableParams.body = body;
-
- doc.autoTable(autoTableParams);
-
- if (options && options.documentProcessing) {
- options.documentProcessing(doc);
- }
-
- setFileContents(doc.output("arraybuffer"), "application/pdf");
- },
-
- xlsx: function xlsx(columns, data, options, setFileContents, config) {
- var self = this,
- sheetName = options.sheetName || "Sheet1",
- workbook = XLSX.utils.book_new(),
- calcs = {},
- groupRowIndexs = [],
- groupColumnIndexs = [],
- calcRowIndexs = [],
- output;
-
- workbook.SheetNames = [];
- workbook.Sheets = {};
-
- if (config.columnCalcs) {
- calcs = data.calcs;
- data = data.data;
- }
-
- function generateSheet() {
- var titles = [],
- fields = [],
- rows = [],
- worksheet;
-
- //convert rows to worksheet
- function rowsToSheet() {
- var sheet = {};
- var range = { s: { c: 0, r: 0 }, e: { c: fields.length, r: rows.length } };
-
- XLSX.utils.sheet_add_aoa(sheet, rows);
-
- sheet['!ref'] = XLSX.utils.encode_range(range);
-
- var merges = generateMerges();
-
- if (merges.length) {
- sheet["!merges"] = merges;
- }
-
- return sheet;
- }
-
- function parseSimpleTitles() {
- //get field lists
- columns.forEach(function (column) {
- titles.push(column.title);
- fields.push(column.field);
- });
-
- rows.push(titles);
- }
-
- function parseColumnGroup(column, level) {
-
- if (typeof titles[level] === "undefined") {
- titles[level] = [];
- }
-
- if (typeof groupColumnIndexs[level] === "undefined") {
- groupColumnIndexs[level] = [];
- }
-
- if (column.width > 1) {
-
- groupColumnIndexs[level].push({
- type: "hoz",
- start: titles[level].length,
- end: titles[level].length + column.width - 1
- });
- }
-
- titles[level].push(column.title);
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- } else {
- fields.push(column.definition.field);
- padColumnTitles(fields.length - 1, level);
-
- groupColumnIndexs[level].push({
- type: "vert",
- start: fields.length - 1
- });
- }
- }
-
- function padColumnTitles() {
- var max = 0;
-
- titles.forEach(function (title) {
- var len = title.length;
- if (len > max) {
- max = len;
- }
- });
-
- titles.forEach(function (title) {
- var len = title.length;
- if (len < max) {
- for (var i = len; i < max; i++) {
- title.push("");
- }
- }
- });
- }
-
- if (config.columnGroups) {
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
-
- titles.forEach(function (title) {
- rows.push(title);
- });
- } else {
- parseSimpleTitles();
- }
-
- function generateMerges() {
- var output = [];
-
- groupRowIndexs.forEach(function (index) {
- output.push({ s: { r: index, c: 0 }, e: { r: index, c: fields.length - 1 } });
- });
-
- groupColumnIndexs.forEach(function (merges, level) {
- merges.forEach(function (merge) {
- if (merge.type === "hoz") {
- output.push({ s: { r: level, c: merge.start }, e: { r: level, c: merge.end } });
- } else {
- if (level != titles.length - 1) {
- output.push({ s: { r: level, c: merge.start }, e: { r: titles.length - 1, c: merge.start } });
- }
- }
- });
- });
-
- return output;
- }
-
- //generate each row of the table
- function parseRows(data) {
- data.forEach(function (row) {
- rows.push(parseRow(row));
- });
- }
-
- function parseRow(row) {
- var rowData = [];
-
- fields.forEach(function (field) {
- var value = self.getFieldValue(field, row);
- rowData.push(!(value instanceof Date) && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object" ? JSON.stringify(value) : value);
- });
-
- return rowData;
- }
-
- function addCalcRow(calcs, selector, pos) {
- var calcData = calcs[selector];
-
- if (calcData) {
- if (pos) {
- calcData = calcData[pos];
- }
-
- if (Object.keys(calcData).length) {
- calcRowIndexs.push(rows.length);
- rows.push(parseRow(calcData));
- }
- }
- }
-
- function parseGroup(group, calcObj) {
- var groupData = [];
-
- groupData.push(group.key);
-
- groupRowIndexs.push(rows.length);
-
- rows.push(groupData);
-
- if (group.subGroups) {
- group.subGroups.forEach(function (subGroup) {
- parseGroup(subGroup, calcObj[group.key] ? calcObj[group.key].groups || {} : {});
- });
- } else {
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "top");
- }
-
- parseRows(group.rows);
-
- if (config.columnCalcs) {
- addCalcRow(calcObj, group.key, "bottom");
- }
- }
- }
-
- if (config.rowGroups) {
- data.forEach(function (group) {
- parseGroup(group, calcs);
- });
- } else {
- if (config.columnCalcs) {
- addCalcRow(calcs, "top");
- }
-
- parseRows(data);
-
- if (config.columnCalcs) {
- addCalcRow(calcs, "bottom");
- }
- }
-
- worksheet = rowsToSheet();
-
- return worksheet;
- }
-
- if (options.sheetOnly) {
- setFileContents(generateSheet());
- return;
- }
-
- if (options.sheets) {
- for (var sheet in options.sheets) {
-
- if (options.sheets[sheet] === true) {
- workbook.SheetNames.push(sheet);
- workbook.Sheets[sheet] = generateSheet();
- } else {
-
- workbook.SheetNames.push(sheet);
-
- this.table.modules.comms.send(options.sheets[sheet], "download", "intercept", {
- type: "xlsx",
- options: { sheetOnly: true },
- active: self.active,
- intercept: function intercept(data) {
- workbook.Sheets[sheet] = data;
- }
- });
- }
- }
- } else {
- workbook.SheetNames.push(sheetName);
- workbook.Sheets[sheetName] = generateSheet();
- }
-
- if (options.documentProcessing) {
- workbook = options.documentProcessing(workbook);
- }
-
- //convert workbook to binary array
- function s2ab(s) {
- var buf = new ArrayBuffer(s.length);
- var view = new Uint8Array(buf);
- for (var i = 0; i != s.length; ++i) {
- view[i] = s.charCodeAt(i) & 0xFF;
- }return buf;
- }
-
- output = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'binary' });
-
- setFileContents(s2ab(output), "application/octet-stream");
- },
-
- html: function html(columns, data, options, setFileContents, config) {
- if (this.table.modExists("export", true)) {
- setFileContents(this.table.modules.export.getHtml(true, options.style, config), "text/html");
- }
- }
-
- };
-
- Tabulator.prototype.registerModule("download", Download);
-
- var Edit = function Edit(table) {
- this.table = table; //hold Tabulator object
- this.currentCell = false; //hold currently editing cell
- this.mouseClick = false; //hold mousedown state to prevent click binding being overriden by editor opening
- this.recursionBlock = false; //prevent focus recursion
- this.invalidEdit = false;
- };
-
- //initialize column editor
- Edit.prototype.initializeColumn = function (column) {
- var self = this,
- config = {
- editor: false,
- blocked: false,
- check: column.definition.editable,
- params: column.definition.editorParams || {}
- };
-
- //set column editor
- switch (_typeof(column.definition.editor)) {
- case "string":
-
- if (column.definition.editor === "tick") {
- column.definition.editor = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.editor]) {
- config.editor = self.editors[column.definition.editor];
- } else {
- console.warn("Editor Error - No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- config.editor = column.definition.editor;
- break;
-
- case "boolean":
-
- if (column.definition.editor === true) {
-
- if (typeof column.definition.formatter !== "function") {
-
- if (column.definition.formatter === "tick") {
- column.definition.formatter = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.formatter]) {
- config.editor = self.editors[column.definition.formatter];
- } else {
- config.editor = self.editors["input"];
- }
- } else {
- console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ", column.definition.formatter);
- }
- }
- break;
- }
-
- if (config.editor) {
- column.modules.edit = config;
- }
- };
-
- Edit.prototype.getCurrentCell = function () {
- return this.currentCell ? this.currentCell.getComponent() : false;
- };
-
- Edit.prototype.clearEditor = function () {
- var cell = this.currentCell,
- cellEl;
-
- this.invalidEdit = false;
-
- if (cell) {
- this.currentCell = false;
-
- cellEl = cell.getElement();
- cellEl.classList.remove("tabulator-validation-fail");
- cellEl.classList.remove("tabulator-editing");
- while (cellEl.firstChild) {
- cellEl.removeChild(cellEl.firstChild);
- }cell.row.getElement().classList.remove("tabulator-row-editing");
- }
- };
-
- Edit.prototype.cancelEdit = function () {
-
- if (this.currentCell) {
- var cell = this.currentCell;
- var component = this.currentCell.getComponent();
-
- this.clearEditor();
- cell.setValueActual(cell.getValue());
- cell.cellRendered();
-
- if (cell.column.cellEvents.cellEditCancelled) {
- cell.column.cellEvents.cellEditCancelled.call(this.table, component);
- }
-
- this.table.options.cellEditCancelled.call(this.table, component);
- }
- };
-
- //return a formatted value for a cell
- Edit.prototype.bindEditor = function (cell) {
- var self = this,
- element = cell.getElement();
-
- element.setAttribute("tabindex", 0);
-
- element.addEventListener("click", function (e) {
- if (!element.classList.contains("tabulator-editing")) {
- element.focus({ preventScroll: true });
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- self.mouseClick = true;
- });
-
- element.addEventListener("focus", function (e) {
- if (!self.recursionBlock) {
- self.edit(cell, e, false);
- }
- });
- };
-
- Edit.prototype.focusCellNoEvent = function (cell, block) {
- this.recursionBlock = true;
- if (!(block && this.table.browser === "ie")) {
- cell.getElement().focus({ preventScroll: true });
- }
- this.recursionBlock = false;
- };
-
- Edit.prototype.editCell = function (cell, forceEdit) {
- this.focusCellNoEvent(cell);
- this.edit(cell, false, forceEdit);
- };
-
- Edit.prototype.focusScrollAdjust = function (cell) {
- if (this.table.rowManager.getRenderMode() == "virtual") {
- var topEdge = this.table.rowManager.element.scrollTop,
- bottomEdge = this.table.rowManager.element.clientHeight + this.table.rowManager.element.scrollTop,
- rowEl = cell.row.getElement(),
- offset = rowEl.offsetTop;
-
- if (rowEl.offsetTop < topEdge) {
- this.table.rowManager.element.scrollTop -= topEdge - rowEl.offsetTop;
- } else {
- if (rowEl.offsetTop + rowEl.offsetHeight > bottomEdge) {
- this.table.rowManager.element.scrollTop += rowEl.offsetTop + rowEl.offsetHeight - bottomEdge;
- }
- }
- }
- };
-
- Edit.prototype.edit = function (cell, e, forceEdit) {
- var self = this,
- allowEdit = true,
- rendered = function rendered() {},
- element = cell.getElement(),
- cellEditor,
- component,
- params;
-
- //prevent editing if another cell is refusing to leave focus (eg. validation fail)
- if (this.currentCell) {
- if (!this.invalidEdit) {
- this.cancelEdit();
- }
- return;
- }
-
- //handle successfull value change
- function success(value) {
- if (self.currentCell === cell) {
- var valid = true;
-
- if (cell.column.modules.validate && self.table.modExists("validate")) {
- valid = self.table.modules.validate.validate(cell.column.modules.validate, cell.getComponent(), value);
- }
-
- if (valid === true) {
- self.clearEditor();
- cell.setValue(value, true);
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
-
- return true;
- } else {
- self.invalidEdit = true;
- element.classList.add("tabulator-validation-fail");
- self.focusCellNoEvent(cell, true);
- rendered();
- self.table.options.validationFailed.call(self.table, cell.getComponent(), value, valid);
-
- return false;
- }
- } else {
- // console.warn("Edit Success Error - cannot call success on a cell that is no longer being edited");
- }
- }
-
- //handle aborted edit
- function cancel() {
- if (self.currentCell === cell) {
- self.cancelEdit();
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
- } else {
- // console.warn("Edit Success Error - cannot call cancel on a cell that is no longer being edited");
- }
- }
-
- function onRendered(callback) {
- rendered = callback;
- }
-
- if (!cell.column.modules.edit.blocked) {
- if (e) {
- e.stopPropagation();
- }
-
- switch (_typeof(cell.column.modules.edit.check)) {
- case "function":
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- break;
-
- case "boolean":
- allowEdit = cell.column.modules.edit.check;
- break;
- }
-
- if (allowEdit || forceEdit) {
-
- self.cancelEdit();
-
- self.currentCell = cell;
-
- this.focusScrollAdjust(cell);
-
- component = cell.getComponent();
-
- if (this.mouseClick) {
- this.mouseClick = false;
-
- if (cell.column.cellEvents.cellClick) {
- cell.column.cellEvents.cellClick.call(this.table, e, component);
- }
- }
-
- if (cell.column.cellEvents.cellEditing) {
- cell.column.cellEvents.cellEditing.call(this.table, component);
- }
-
- self.table.options.cellEditing.call(this.table, component);
-
- params = typeof cell.column.modules.edit.params === "function" ? cell.column.modules.edit.params(component) : cell.column.modules.edit.params;
-
- cellEditor = cell.column.modules.edit.editor.call(self, component, onRendered, success, cancel, params);
-
- //if editor returned, add to DOM, if false, abort edit
- if (cellEditor !== false) {
-
- if (cellEditor instanceof Node) {
- element.classList.add("tabulator-editing");
- cell.row.getElement().classList.add("tabulator-row-editing");
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.appendChild(cellEditor);
-
- //trigger onRendered Callback
- rendered();
-
- //prevent editing from triggering rowClick event
- var children = element.children;
-
- for (var i = 0; i < children.length; i++) {
- children[i].addEventListener("click", function (e) {
- e.stopPropagation();
- });
- }
- } else {
- console.warn("Edit Error - Editor should return an instance of Node, the editor returned:", cellEditor);
- element.blur();
- return false;
- }
- } else {
- element.blur();
- return false;
- }
-
- return true;
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
- };
-
- Edit.prototype.maskInput = function (el, options) {
- var mask = options.mask,
- maskLetter = typeof options.maskLetterChar !== "undefined" ? options.maskLetterChar : "A",
- maskNumber = typeof options.maskNumberChar !== "undefined" ? options.maskNumberChar : "9",
- maskWildcard = typeof options.maskWildcardChar !== "undefined" ? options.maskWildcardChar : "*",
- success = false;
-
- function fillSymbols(index) {
- var symbol = mask[index];
- if (typeof symbol !== "undefined" && symbol !== maskWildcard && symbol !== maskLetter && symbol !== maskNumber) {
- el.value = el.value + "" + symbol;
- fillSymbols(index + 1);
- }
- }
-
- el.addEventListener("keydown", function (e) {
- var index = el.value.length,
- char = e.key;
-
- if (e.keyCode > 46) {
- if (index >= mask.length) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- } else {
- switch (mask[index]) {
- case maskLetter:
- if (char.toUpperCase() == char.toLowerCase()) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskNumber:
- if (isNaN(char)) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskWildcard:
- break;
-
- default:
- if (char !== mask[index]) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- }
- }
-
- success = true;
- }
-
- return;
- });
-
- el.addEventListener("keyup", function (e) {
- if (e.keyCode > 46) {
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
- }
- });
-
- if (!el.placeholder) {
- el.placeholder = mask;
- }
-
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
- };
-
- //default data editors
- Edit.prototype.editors = {
-
- //input element
- input: function input(cell, onRendered, success, cancel, editorParams) {
-
- //create and style input
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", editorParams.search ? "search" : "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof cellValue !== "undefined" ? cellValue : "";
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- // case 9:
- case 13:
- onChange(e);
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //resizable text area element
- textarea: function textarea(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "hybrid",
- value = String(cellValue !== null && typeof cellValue !== "undefined" ? cellValue : ""),
- count = (value.match(/(?:\r\n|\r|\n)/g) || []).length + 1,
- input = document.createElement("textarea"),
- scrollHeight = 0;
-
- //create and style input
- input.style.display = "block";
- input.style.padding = "2px";
- input.style.height = "100%";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.whiteSpace = "pre-wrap";
- input.style.resize = "none";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
-
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
-
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
-
- setTimeout(function () {
- cell.getRow().normalizeHeight();
- }, 300);
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- input.addEventListener("keyup", function () {
-
- input.style.height = "";
-
- var heightNow = input.scrollHeight;
-
- input.style.height = heightNow + "px";
-
- if (heightNow != scrollHeight) {
- scrollHeight = heightNow;
- cell.getRow().normalizeHeight();
- }
- });
-
- input.addEventListener("keydown", function (e) {
-
- switch (e.keyCode) {
- case 27:
- cancel();
- break;
-
- case 38:
- //up arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
-
- break;
-
- case 40:
- //down arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart !== input.value.length) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- number: function number(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- input = document.createElement("input");
-
- input.setAttribute("type", "number");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- var blurFunc = function blurFunc(e) {
- onChange();
- };
-
- onRendered(function () {
- //submit new value on blur
- input.removeEventListener("blur", blurFunc);
-
- input.focus({ preventScroll: true });
- input.style.height = "100%";
-
- //submit new value on blur
- input.addEventListener("blur", blurFunc);
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value !== cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- // case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
-
- case 38: //up arrow
- case 40:
- //down arrow
- if (vertNav == "editor") {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- range: function range(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", "range");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value != cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur
- input.addEventListener("blur", function (e) {
- onChange();
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- return input;
- },
-
- //select
- select: function select(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "",
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- dataItems = [],
- displayItems = [],
- currentItem = {},
- blurable = true;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- if (Array.isArray(editorParams) || !Array.isArray(editorParams) && (typeof editorParams === 'undefined' ? 'undefined' : _typeof(editorParams)) === "object" && !editorParams.values) {
- console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object");
- editorParams = { values: editorParams };
- }
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create select lookup list:", field);
- }
-
- return output;
- }
-
- function parseItems(inputValues, curentValue) {
- var dataList = [];
- var displayList = [];
-
- function processComplexListItem(item) {
- var item = {
- label: editorParams.listItemFormatter ? editorParams.listItemFormatter(item.value, item.label) : item.label,
- value: item.value,
- element: false
- };
-
- if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) {
- setCurrentItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
-
- return item;
- }
-
- if (typeof inputValues == "function") {
- inputValues = inputValues(cell);
- }
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
- var item;
-
- if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object") {
-
- if (value.options) {
- item = {
- label: value.label,
- group: true,
- element: false
- };
-
- displayList.push(item);
-
- value.options.forEach(function (item) {
- processComplexListItem(item);
- });
- } else {
- processComplexListItem(value);
- }
- } else {
-
- item = {
- label: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value,
- value: value,
- element: false
- };
-
- if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) {
- setCurrentItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- });
- } else {
- for (var key in inputValues) {
- var item = {
- label: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
- value: key,
- element: false
- };
-
- if (item.value === curentValue || !isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue)) {
- setCurrentItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- }
-
- dataItems = dataList;
- displayItems = displayList;
-
- fillList();
- }
-
- function fillList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }displayItems.forEach(function (item) {
- var el = item.element;
-
- if (!el) {
-
- if (item.group) {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-group");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
- } else {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
-
- el.addEventListener("click", function () {
- setCurrentItem(item);
- chooseItem();
- });
-
- if (item === currentItem) {
- el.classList.add("active");
- }
- }
-
- el.addEventListener("mousedown", function () {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
- }
-
- listEl.appendChild(el);
- });
- }
-
- function setCurrentItem(item) {
-
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- currentItem = item;
- input.value = item.label === " " ? "" : item.label;
-
- if (item.element) {
- item.element.classList.add("active");
- }
- }
-
- function chooseItem() {
- hideList();
-
- if (initialValue !== currentItem.value) {
- initialValue = currentItem.value;
- success(currentItem.value);
- } else {
- cancel();
- }
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function showList() {
- if (!listEl.parentNode) {
-
- if (editorParams.values === true) {
- parseItems(getUniqueColumnValues(), initialDisplayValue);
- } else if (typeof editorParams.values === "string") {
- parseItems(getUniqueColumnValues(editorParams.values), initialDisplayValue);
- } else {
- parseItems(editorParams.values || [], initialDisplayValue);
- }
-
- var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- document.body.appendChild(listEl);
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //style input
- input.setAttribute("type", "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.cursor = "default";
- input.readOnly = this.currentCell != false;
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof initialValue !== "undefined" || initialValue === null ? initialValue : "";
-
- // if(editorParams.values === true){
- // parseItems(getUniqueColumnValues(), initialValue);
- // }else if(typeof editorParams.values === "string"){
- // parseItems(getUniqueColumnValues(editorParams.values), initialValue);
- // }else{
- // parseItems(editorParams.values || [], initialValue);
- // }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(dataItems[index - 1]);
- }
- }
- break;
-
- case 40:
- //down arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < dataItems.length - 1) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < dataItems.length - 1) {
- if (index == -1) {
- setCurrentItem(dataItems[0]);
- } else {
- setCurrentItem(dataItems[index + 1]);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
- break;
-
- case 13:
- //enter
- chooseItem();
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
- }
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- cancelItem();
- }
- });
-
- input.addEventListener("focus", function (e) {
- showList();
- });
-
- //style list element
- listEl = document.createElement("div");
- listEl.classList.add("tabulator-edit-select-list");
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- return input;
- },
-
- //autocomplete
- autocomplete: function autocomplete(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "",
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- allItems = [],
- displayItems = [],
- values = [],
- currentItem = false,
- blurable = true;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- //style input
- input.setAttribute("type", "search");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style list element
- listEl.classList.add("tabulator-edit-select-list");
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create autocomplete lookup list:", field);
- }
-
- return output;
- }
-
- function filterList(term, intialLoad) {
- var matches = [],
- values,
- items,
- searchEl;
-
- //lookup base values list
- if (editorParams.values === true) {
- values = getUniqueColumnValues();
- } else if (typeof editorParams.values === "string") {
- values = getUniqueColumnValues(editorParams.values);
- } else {
- values = editorParams.values || [];
- }
-
- if (editorParams.searchFunc) {
- matches = editorParams.searchFunc(term, values);
-
- if (matches instanceof Promise) {
-
- addNotice(typeof editorParams.searchingPlaceholder !== "undefined" ? editorParams.searchingPlaceholder : "Searching...");
-
- matches.then(function (result) {
- fillListIfNotEmpty(parseItems(result), intialLoad);
- }).catch(function (err) {
- console.err("error in autocomplete search promise:", err);
- });
- } else {
- fillListIfNotEmpty(parseItems(matches), intialLoad);
- }
- } else {
- items = parseItems(values);
-
- if (term === "") {
- if (editorParams.showListOnEmpty) {
- matches = items;
- }
- } else {
- items.forEach(function (item) {
- if (item.value !== null || typeof item.value !== "undefined") {
- if (String(item.value).toLowerCase().indexOf(String(term).toLowerCase()) > -1 || String(item.title).toLowerCase().indexOf(String(term).toLowerCase()) > -1) {
- matches.push(item);
- }
- }
- });
- }
-
- fillListIfNotEmpty(matches, intialLoad);
- }
- }
-
- function addNotice(notice) {
- var searchEl = document.createElement("div");
-
- clearList();
-
- if (notice !== false) {
- searchEl.classList.add("tabulator-edit-select-list-notice");
- searchEl.tabIndex = 0;
-
- if (notice instanceof Node) {
- searchEl.appendChild(notice);
- } else {
- searchEl.innerHTML = notice;
- }
-
- listEl.appendChild(searchEl);
- }
- }
-
- function parseItems(inputValues) {
- var itemList = [];
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
- var item = {
- title: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value,
- value: value
- };
-
- itemList.push(item);
- });
- } else {
- for (var key in inputValues) {
- var item = {
- title: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
- value: key
- };
-
- itemList.push(item);
- }
- }
-
- return itemList;
- }
-
- function clearList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }
- }
-
- function fillListIfNotEmpty(items, intialLoad) {
- if (items.length) {
- fillList(items, intialLoad);
- } else {
- if (editorParams.emptyPlaceholder) {
- addNotice(editorParams.emptyPlaceholder);
- }
- }
- }
-
- function fillList(items, intialLoad) {
- var current = false;
-
- clearList();
-
- displayItems = items;
-
- displayItems.forEach(function (item) {
- var el = item.element;
-
- if (!el) {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.title;
-
- el.addEventListener("click", function (e) {
- setCurrentItem(item);
- chooseItem();
- });
-
- el.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
-
- if (intialLoad && item.value == initialValue) {
- input.value = item.title;
- item.element.classList.add("active");
- current = true;
- }
-
- if (item === currentItem) {
- item.element.classList.add("active");
- current = true;
- }
- }
-
- listEl.appendChild(el);
- });
-
- if (!current) {
- setCurrentItem(false);
- }
- }
-
- function chooseItem() {
- hideList();
-
- if (currentItem) {
- if (initialValue !== currentItem.value) {
- initialValue = currentItem.value;
- input.value = currentItem.title;
- success(currentItem.value);
- } else {
- cancel();
- }
- } else {
- if (editorParams.freetext) {
- initialValue = input.value;
- success(input.value);
- } else {
- if (editorParams.allowEmpty && input.value === "") {
- initialValue = input.value;
- success(input.value);
- } else {
- cancel();
- }
- }
- }
- }
-
- function showList() {
- if (!listEl.parentNode) {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
- document.body.appendChild(listEl);
- }
- }
-
- function setCurrentItem(item, showInputValue) {
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- currentItem = item;
-
- if (item && item.element) {
- item.element.classList.add("active");
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(displayItems[index - 1]);
- } else {
- setCurrentItem(false);
- }
- }
- break;
-
- case 40:
- //down arrow
-
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < displayItems.length - 1) {
-
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < displayItems.length - 1) {
- if (index == -1) {
- setCurrentItem(displayItems[0]);
- } else {
- setCurrentItem(displayItems[index + 1]);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
- break;
-
- case 13:
- //enter
- chooseItem();
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
-
- case 36: //home
- case 35:
- //end
- //prevent table navigation while using input element
- e.stopImmediatePropagation();
- break;
- }
- });
-
- input.addEventListener("keyup", function (e) {
-
- switch (e.keyCode) {
- case 38: //up arrow
- case 37: //left arrow
- case 39: //up arrow
- case 40: //right arrow
- case 13: //enter
- case 27:
- //escape
- break;
-
- default:
- filterList(input.value);
- }
- });
-
- input.addEventListener("search", function (e) {
- filterList(input.value);
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- chooseItem();
- }
- });
-
- input.addEventListener("focus", function (e) {
- var value = initialDisplayValue;
- showList();
- input.value = value;
- filterList(value, true);
- });
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //start rating
- star: function star(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- element = cell.getElement(),
- value = cell.getValue(),
- maxStars = element.getElementsByTagName("svg").length || 5,
- size = element.getElementsByTagName("svg")[0] ? element.getElementsByTagName("svg")[0].getAttribute("width") : 14,
- stars = [],
- starsHolder = document.createElement("div"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg");
-
- //change star type
- function starChange(val) {
- stars.forEach(function (star, i) {
- if (i < val) {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-active");
- } else {
- star.classList.replace("tabulator-star-inactive", "tabulator-star-active");
- }
-
- star.innerHTML = '<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- } else {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-inactive");
- } else {
- star.classList.replace("tabulator-star-active", "tabulator-star-inactive");
- }
-
- star.innerHTML = '<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- }
- });
- }
-
- //build stars
- function buildStar(i) {
-
- var starHolder = document.createElement("span");
- var nextStar = star.cloneNode(true);
-
- stars.push(nextStar);
-
- starHolder.addEventListener("mouseenter", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- starChange(i);
- });
-
- starHolder.addEventListener("mousemove", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- });
-
- starHolder.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- success(i);
- });
-
- starHolder.appendChild(nextStar);
- starsHolder.appendChild(starHolder);
- }
-
- //handle keyboard navigation value change
- function changeValue(val) {
- value = val;
- starChange(val);
- }
-
- //style cell
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- //style holding element
- starsHolder.style.verticalAlign = "middle";
- starsHolder.style.display = "inline-block";
- starsHolder.style.padding = "4px";
-
- //style star
- star.setAttribute("width", size);
- star.setAttribute("height", size);
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- starsHolder.setAttribute(key, starsHolder.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- starsHolder.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //create correct number of stars
- for (var i = 1; i <= maxStars; i++) {
- buildStar(i);
- }
-
- //ensure value does not exceed number of stars
- value = Math.min(parseInt(value), maxStars);
-
- // set initial styling of stars
- starChange(value);
-
- starsHolder.addEventListener("mousemove", function (e) {
- starChange(0);
- });
-
- starsHolder.addEventListener("click", function (e) {
- success(0);
- });
-
- element.addEventListener("blur", function (e) {
- cancel();
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- changeValue(value + 1);
- break;
-
- case 37:
- //left arrow
- changeValue(value - 1);
- break;
-
- case 13:
- //enter
- success(value);
- break;
-
- case 27:
- //escape
- cancel();
- break;
- }
- });
-
- return starsHolder;
- },
-
- //draggable progress bar
- progress: function progress(cell, onRendered, success, cancel, editorParams) {
- var element = cell.getElement(),
- max = typeof editorParams.max === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("max") || 100 : editorParams.max,
- min = typeof editorParams.min === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("min") || 0 : editorParams.min,
- percent = (max - min) / 100,
- value = cell.getValue() || 0,
- handle = document.createElement("div"),
- bar = document.createElement("div"),
- mouseDrag,
- mouseDragWidth;
-
- //set new value
- function updateValue() {
- var calcVal = percent * Math.round(bar.offsetWidth / (element.clientWidth / 100)) + min;
- success(calcVal);
- element.setAttribute("aria-valuenow", calcVal);
- element.setAttribute("aria-label", value);
- }
-
- //style handle
- handle.style.position = "absolute";
- handle.style.right = "0";
- handle.style.top = "0";
- handle.style.bottom = "0";
- handle.style.width = "5px";
- handle.classList.add("tabulator-progress-handle");
-
- //style bar
- bar.style.display = "inline-block";
- bar.style.position = "relative";
- // bar.style.top = "8px";
- // bar.style.bottom = "8px";
- // bar.style.left = "4px";
- // bar.style.marginRight = "4px";
- bar.style.height = "100%";
- bar.style.backgroundColor = "#488CE9";
- bar.style.maxWidth = "100%";
- bar.style.minWidth = "0%";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- bar.setAttribute(key, bar.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- bar.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style cell
- element.style.padding = "4px 4px";
-
- //make sure value is in range
- value = Math.min(parseFloat(value), max);
- value = Math.max(parseFloat(value), min);
-
- //workout percentage
- value = Math.round((value - min) / percent);
- // bar.style.right = value + "%";
- bar.style.width = value + "%";
-
- element.setAttribute("aria-valuemin", min);
- element.setAttribute("aria-valuemax", max);
-
- bar.appendChild(handle);
-
- handle.addEventListener("mousedown", function (e) {
- mouseDrag = e.screenX;
- mouseDragWidth = bar.offsetWidth;
- });
-
- handle.addEventListener("mouseover", function () {
- handle.style.cursor = "ew-resize";
- });
-
- element.addEventListener("mousemove", function (e) {
- if (mouseDrag) {
- bar.style.width = mouseDragWidth + e.screenX - mouseDrag + "px";
- }
- });
-
- element.addEventListener("mouseup", function (e) {
- if (mouseDrag) {
- e.stopPropagation();
- e.stopImmediatePropagation();
-
- mouseDrag = false;
- mouseDragWidth = false;
-
- updateValue();
- }
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth + element.clientWidth / 100 + "px";
- break;
-
- case 37:
- //left arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth - element.clientWidth / 100 + "px";
- break;
-
- case 9: //tab
- case 13:
- //enter
- updateValue();
- break;
-
- case 27:
- //escape
- cancel();
- break;
-
- }
- });
-
- element.addEventListener("blur", function () {
- cancel();
- });
-
- return bar;
- },
-
- //checkbox
- tickCross: function tickCross(cell, onRendered, success, cancel, editorParams) {
- var value = cell.getValue(),
- input = document.createElement("input"),
- tristate = editorParams.tristate,
- indetermValue = typeof editorParams.indeterminateValue === "undefined" ? null : editorParams.indeterminateValue,
- indetermState = false;
-
- input.setAttribute("type", "checkbox");
- input.style.marginTop = "5px";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- if (tristate && (typeof value === "undefined" || value === indetermValue || value === "")) {
- indetermState = true;
- input.indeterminate = true;
- }
-
- if (this.table.browser != "firefox") {
- //prevent blur issue on mac firefox
- onRendered(function () {
- input.focus({ preventScroll: true });
- });
- }
-
- input.checked = value === true || value === "true" || value === "True" || value === 1;
-
- function setValue(blur) {
- if (tristate) {
- if (!blur) {
- if (input.checked && !indetermState) {
- input.checked = false;
- input.indeterminate = true;
- indetermState = true;
- return indetermValue;
- } else {
- indetermState = false;
- return input.checked;
- }
- } else {
- if (indetermState) {
- return indetermValue;
- } else {
- return input.checked;
- }
- }
- } else {
- return input.checked;
- }
- }
-
- //submit new value on blur
- input.addEventListener("change", function (e) {
- success(setValue());
- });
-
- input.addEventListener("blur", function (e) {
- success(setValue(true));
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- if (e.keyCode == 13) {
- success(setValue());
- }
- if (e.keyCode == 27) {
- cancel();
- }
- });
-
- return input;
- }
- };
-
- Tabulator.prototype.registerModule("edit", Edit);
-
- var Export = function Export(table) {
- this.table = table; //hold Tabulator object
- this.config = {};
- this.cloneTableStyle = true;
- this.colVisProp = "";
- };
-
- Export.prototype.genereateTable = function (config, style, range, colVisProp) {
- this.cloneTableStyle = style;
- this.config = config || {};
- this.colVisProp = colVisProp;
-
- var table = document.createElement("table");
- table.classList.add("tabulator-print-table");
-
- if (this.config.columnHeaders !== false) {
- table.appendChild(this.generateHeaderElements());
- }
-
- table.appendChild(this.generateBodyElements(this.rowLookup(range)));
-
- this.mapElementStyles(this.table.element, table, ["border-top", "border-left", "border-right", "border-bottom"]);
-
- return table;
- };
-
- Export.prototype.rowLookup = function (range) {
- var _this45 = this;
-
- var rows = [];
-
- if (typeof range == "function") {
- range.call(this.table).forEach(function (row) {
- row = _this45.table.rowManager.findRow(row);
-
- if (row) {
- rows.push(row);
- }
- });
- } else {
- switch (range) {
- case true:
- case "visible":
- rows = this.table.rowManager.getVisibleRows(true);
- break;
-
- case "all":
- rows = this.table.rowManager.rows;
- break;
-
- case "selected":
- rows = this.table.modules.selectRow.selectedRows;
- break;
-
- case "active":
- default:
- rows = this.table.rowManager.getDisplayRows();
- }
- }
-
- return Object.assign([], rows);
- };
-
- Export.prototype.generateColumnGroupHeaders = function () {
- var _this46 = this;
-
- var output = [];
-
- var columns = this.config.columnGroups !== false ? this.table.columnManager.columns : this.table.columnManager.columnsByIndex;
-
- columns.forEach(function (column) {
- var colData = _this46.processColumnGroup(column);
-
- if (colData) {
- output.push(colData);
- }
- });
-
- return output;
- };
-
- Export.prototype.processColumnGroup = function (column) {
- var _this47 = this;
-
- var subGroups = column.columns,
- maxDepth = 0;
-
- var groupData = {
- title: column.definition.title,
- column: column,
- depth: 1
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
- groupData.width = 0;
-
- subGroups.forEach(function (subGroup) {
- var subGroupData = _this47.processColumnGroup(subGroup);
-
- if (subGroupData) {
- groupData.width += subGroupData.width;
- groupData.subGroups.push(subGroupData);
-
- if (subGroupData.depth > maxDepth) {
- maxDepth = subGroupData.depth;
- }
- }
- });
-
- groupData.depth += maxDepth;
-
- if (!groupData.width) {
- return false;
- }
- } else {
- if (this.columnVisCheck(column)) {
- groupData.width = 1;
- } else {
- return false;
- }
- }
-
- return groupData;
- };
-
- Export.prototype.groupHeadersToRows = function (columns) {
-
- var headers = [],
- headerDepth = 0;
-
- function parseColumnGroup(column, level) {
-
- var depth = headerDepth - level;
-
- if (typeof headers[level] === "undefined") {
- headers[level] = [];
- }
-
- column.height = column.subGroups ? 1 : depth - column.depth + 1;
-
- headers[level].push(column);
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- }
- }
-
- //calculate maximum header debth
- columns.forEach(function (column) {
- if (column.depth > headerDepth) {
- headerDepth = column.depth;
- }
- });
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
-
- return headers;
- };
-
- Export.prototype.generateHeaderElements = function () {
- var _this48 = this;
-
- var headerEl = document.createElement("thead");
-
- var rows = this.groupHeadersToRows(this.generateColumnGroupHeaders());
-
- rows.forEach(function (row) {
- var rowEl = document.createElement("tr");
-
- _this48.mapElementStyles(_this48.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
-
- row.forEach(function (column) {
- var cellEl = document.createElement("th");
- var classNames = column.column.definition.cssClass ? column.column.definition.cssClass.split(" ") : [];
-
- cellEl.colSpan = column.width;
- cellEl.rowSpan = column.height;
-
- cellEl.innerHTML = column.column.definition.title;
-
- if (_this48.cloneTableStyle) {
- cellEl.style.boxSizing = "border-box";
- }
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- _this48.mapElementStyles(column.column.getElement(), cellEl, ["text-align", "border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
- _this48.mapElementStyles(column.column.contentElement, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
-
- if (column.column.visible) {
- _this48.mapElementStyles(column.column.getElement(), cellEl, ["width"]);
- } else {
- if (column.column.definition.width) {
- cellEl.style.width = column.column.definition.width + "px";
- }
- }
-
- if (column.column.parent) {
- _this48.mapElementStyles(column.column.parent.groupElement, cellEl, ["border-top"]);
- }
-
- rowEl.appendChild(cellEl);
- });
-
- headerEl.appendChild(rowEl);
- });
-
- return headerEl;
- };
-
- Export.prototype.generateBodyElements = function (rows) {};
-
- Export.prototype.generateBodyElements = function (rows) {
- var _this49 = this;
-
- var oddRow, evenRow, calcRow, firstRow, firstCell, firstGroup, lastCell, styleCells, styleRow, treeElementField, rowFormatter;
-
- //assign row formatter
- rowFormatter = this.table.options["rowFormatter" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))];
- rowFormatter = rowFormatter !== null ? rowFormatter : this.table.options.rowFormatter;
-
- //lookup row styles
- if (this.cloneTableStyle && window.getComputedStyle) {
- oddRow = this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)");
- evenRow = this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)");
- calcRow = this.table.element.querySelector(".tabulator-row.tabulator-calcs");
- firstRow = this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)");
- firstGroup = this.table.element.getElementsByClassName("tabulator-group")[0];
-
- if (firstRow) {
- styleCells = firstRow.getElementsByClassName("tabulator-cell");
- firstCell = styleCells[0];
- lastCell = styleCells[styleCells.length - 1];
- }
- }
-
- var bodyEl = document.createElement("tbody");
-
- var columns = [];
-
- if (this.config.columnCalcs !== false && this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized) {
- rows.unshift(this.table.modules.columnCalcs.topRow);
- }
-
- if (this.table.modules.columnCalcs.botInitialized) {
- rows.push(this.table.modules.columnCalcs.botRow);
- }
- }
-
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (_this49.columnVisCheck(column)) {
- columns.push(column);
- }
- });
-
- if (this.table.options.dataTree && this.config.dataTree !== false && this.table.modExists("columnCalcs")) {
- treeElementField = this.table.modules.dataTree.elementField;
- }
-
- rows = rows.filter(function (row) {
- switch (row.type) {
- case "group":
- return _this49.config.rowGroups !== false;
- break;
-
- case "calc":
- return _this49.config.columnCalcs !== false;
- break;
- }
-
- return true;
- });
-
- if (rows.length > 1000) {
- console.warn("It may take a long time to render an HTML table with more than 1000 rows");
- }
-
- rows.forEach(function (row, i) {
- var rowData = row.getData(_this49.colVisProp);
-
- var rowEl = document.createElement("tr");
- rowEl.classList.add("tabulator-print-table-row");
-
- switch (row.type) {
- case "group":
- var cellEl = document.createElement("td");
- cellEl.colSpan = columns.length;
- cellEl.innerHTML = row.key;
-
- rowEl.classList.add("tabulator-print-table-group");
-
- _this49.mapElementStyles(firstGroup, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
- _this49.mapElementStyles(firstGroup, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
- rowEl.appendChild(cellEl);
- break;
-
- case "calc":
- rowEl.classList.add("tabulator-print-table-calcs");
-
- case "row":
-
- if (_this49.table.options.dataTree && _this49.config.dataTree === false && row.modules.dataTree.parent) {
- return;
- }
-
- columns.forEach(function (column, i) {
- var cellEl = document.createElement("td");
-
- var value = column.getFieldValue(rowData);
-
- var cellWrapper = {
- modules: {},
- getValue: function getValue() {
- return value;
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return cellEl;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getData: function getData() {
- return rowData;
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getComponent: function getComponent() {
- return cellWrapper;
- },
- column: column
- };
-
- var classNames = column.definition.cssClass ? column.definition.cssClass.split(" ") : [];
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- if (_this49.table.modExists("format") && _this49.config.formatCells !== false) {
- value = _this49.table.modules.format.formatExportValue(cellWrapper, _this49.colVisProp);
- } else {
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
- }
-
- if (value instanceof Node) {
- cellEl.appendChild(value);
- } else {
- cellEl.innerHTML = value;
- }
-
- if (firstCell) {
- _this49.mapElementStyles(firstCell, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
-
- if (column.definition.align) {
- cellEl.style.textAlign = column.definition.align;
- }
- }
-
- if (_this49.table.options.dataTree && _this49.config.dataTree !== false) {
- if (treeElementField && treeElementField == column.field || !treeElementField && i == 0) {
- if (row.modules.dataTree.controlEl) {
- cellEl.insertBefore(row.modules.dataTree.controlEl.cloneNode(true), cellEl.firstChild);
- }
- if (row.modules.dataTree.branchEl) {
- cellEl.insertBefore(row.modules.dataTree.branchEl.cloneNode(true), cellEl.firstChild);
- }
- }
- }
-
- rowEl.appendChild(cellEl);
-
- if (cellWrapper.modules.format && cellWrapper.modules.format.renderedCallback) {
- cellWrapper.modules.format.renderedCallback();
- }
- });
-
- styleRow = row.type == "calc" ? calcRow : i % 2 && evenRow ? evenRow : oddRow;
-
- _this49.mapElementStyles(styleRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
-
- if (rowFormatter && _this49.config.formatCells !== false) {
- var rowComponent = row.getComponent();
-
- rowComponent.getElement = function () {
- return rowEl;
- };
-
- rowFormatter(rowComponent);
- }
-
- break;
- }
-
- bodyEl.appendChild(rowEl);
- });
-
- return bodyEl;
- };
-
- Export.prototype.columnVisCheck = function (column) {
- return column.definition[this.colVisProp] !== false && (column.visible || !column.visible && column.definition[this.colVisProp]);
- };
-
- Export.prototype.getHtml = function (visible, style, config, colVisProp) {
- var holder = document.createElement("div");
-
- holder.appendChild(this.genereateTable(config || this.table.options.htmlOutputConfig, style, visible, colVisProp || "htmlOutput"));
-
- return holder.innerHTML;
- };
-
- Export.prototype.mapElementStyles = function (from, to, props) {
- if (this.cloneTableStyle && from && to) {
-
- var lookup = {
- "background-color": "backgroundColor",
- "color": "fontColor",
- "width": "width",
- "font-weight": "fontWeight",
- "font-family": "fontFamily",
- "font-size": "fontSize",
- "text-align": "textAlign",
- "border-top": "borderTop",
- "border-left": "borderLeft",
- "border-right": "borderRight",
- "border-bottom": "borderBottom",
- "padding-top": "paddingTop",
- "padding-left": "paddingLeft",
- "padding-right": "paddingRight",
- "padding-bottom": "paddingBottom"
- };
-
- if (window.getComputedStyle) {
- var fromStyle = window.getComputedStyle(from);
-
- props.forEach(function (prop) {
- to.style[lookup[prop]] = fromStyle.getPropertyValue(prop);
- });
- }
- }
- };
-
- Tabulator.prototype.registerModule("export", Export);
-
- var Filter = function Filter(table) {
-
- this.table = table; //hold Tabulator object
-
- this.filterList = []; //hold filter list
- this.headerFilters = {}; //hold column filters
- this.headerFilterColumns = []; //hold columns that use header filters
-
- this.prevHeaderFilterChangeCheck = "";
- this.prevHeaderFilterChangeCheck = "{}";
-
- this.changed = false; //has filtering changed since last render
- };
-
- //initialize column header filter
- Filter.prototype.initializeColumn = function (column, value) {
- var self = this,
- field = column.getField(),
- params;
-
- //handle successfull value change
- function success(value) {
- var filterType = column.modules.filter.tagType == "input" && column.modules.filter.attrType == "text" || column.modules.filter.tagType == "textarea" ? "partial" : "match",
- type = "",
- filterChangeCheck = "",
- filterFunc;
-
- if (typeof column.modules.filter.prevSuccess === "undefined" || column.modules.filter.prevSuccess !== value) {
-
- column.modules.filter.prevSuccess = value;
-
- if (!column.modules.filter.emptyFunc(value)) {
- column.modules.filter.value = value;
-
- switch (_typeof(column.definition.headerFilterFunc)) {
- case "string":
- if (self.filters[column.definition.headerFilterFunc]) {
- type = column.definition.headerFilterFunc;
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return self.filters[column.definition.headerFilterFunc](value, fieldVal, data, params);
- };
- } else {
- console.warn("Header Filter Error - Matching filter function not found: ", column.definition.headerFilterFunc);
- }
- break;
-
- case "function":
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return column.definition.headerFilterFunc(value, fieldVal, data, params);
- };
-
- type = filterFunc;
- break;
- }
-
- if (!filterFunc) {
- switch (filterType) {
- case "partial":
- filterFunc = function filterFunc(data) {
- var colVal = column.getFieldValue(data);
-
- if (typeof colVal !== 'undefined' && colVal !== null) {
- return String(colVal).toLowerCase().indexOf(String(value).toLowerCase()) > -1;
- } else {
- return false;
- }
- };
- type = "like";
- break;
-
- default:
- filterFunc = function filterFunc(data) {
- return column.getFieldValue(data) == value;
- };
- type = "=";
- }
- }
-
- self.headerFilters[field] = { value: value, func: filterFunc, type: type };
- } else {
- delete self.headerFilters[field];
- }
-
- filterChangeCheck = JSON.stringify(self.headerFilters);
-
- if (self.prevHeaderFilterChangeCheck !== filterChangeCheck) {
- self.prevHeaderFilterChangeCheck = filterChangeCheck;
-
- self.changed = true;
- self.table.rowManager.filterRefresh();
- }
- }
-
- return true;
- }
-
- column.modules.filter = {
- success: success,
- attrType: false,
- tagType: false,
- emptyFunc: false
- };
-
- this.generateHeaderFilterElement(column);
- };
-
- Filter.prototype.generateHeaderFilterElement = function (column, initialValue, reinitialize) {
- var _this50 = this;
-
- var self = this,
- success = column.modules.filter.success,
- field = column.getField(),
- filterElement,
- editor,
- editorElement,
- cellWrapper,
- typingTimer,
- searchTrigger,
- params;
-
- //handle aborted edit
- function cancel() {}
-
- if (column.modules.filter.headerElement && column.modules.filter.headerElement.parentNode) {
- column.contentElement.removeChild(column.modules.filter.headerElement.parentNode);
- }
-
- if (field) {
-
- //set empty value function
- column.modules.filter.emptyFunc = column.definition.headerFilterEmptyCheck || function (value) {
- return !value && value !== "0";
- };
-
- filterElement = document.createElement("div");
- filterElement.classList.add("tabulator-header-filter");
-
- //set column editor
- switch (_typeof(column.definition.headerFilter)) {
- case "string":
- if (self.table.modules.edit.editors[column.definition.headerFilter]) {
- editor = self.table.modules.edit.editors[column.definition.headerFilter];
-
- if ((column.definition.headerFilter === "tick" || column.definition.headerFilter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- console.warn("Filter Error - Cannot build header filter, No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- editor = column.definition.headerFilter;
- break;
-
- case "boolean":
- if (column.modules.edit && column.modules.edit.editor) {
- editor = column.modules.edit.editor;
- } else {
- if (column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]) {
- editor = self.table.modules.edit.editors[column.definition.formatter];
-
- if ((column.definition.formatter === "tick" || column.definition.formatter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- editor = self.table.modules.edit.editors["input"];
- }
- }
- break;
- }
-
- if (editor) {
-
- cellWrapper = {
- getValue: function getValue() {
- return typeof initialValue !== "undefined" ? initialValue : "";
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return filterElement;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getRow: function getRow() {
- return {
- normalizeHeight: function normalizeHeight() {}
- };
- }
- };
-
- params = column.definition.headerFilterParams || {};
-
- params = typeof params === "function" ? params.call(self.table) : params;
-
- editorElement = editor.call(this.table.modules.edit, cellWrapper, function () {}, success, cancel, params);
-
- if (!editorElement) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor returned a value of false");
- return;
- }
-
- if (!(editorElement instanceof Node)) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor should return an instance of Node, the editor returned:", editorElement);
- return;
- }
-
- //set Placeholder Text
- if (field) {
- self.table.modules.localize.bind("headerFilters|columns|" + column.definition.field, function (value) {
- editorElement.setAttribute("placeholder", typeof value !== "undefined" && value ? value : self.table.modules.localize.getText("headerFilters|default"));
- });
- } else {
- self.table.modules.localize.bind("headerFilters|default", function (value) {
- editorElement.setAttribute("placeholder", typeof self.column.definition.headerFilterPlaceholder !== "undefined" && self.column.definition.headerFilterPlaceholder ? self.column.definition.headerFilterPlaceholder : value);
- });
- }
-
- //focus on element on click
- editorElement.addEventListener("click", function (e) {
- e.stopPropagation();
- editorElement.focus();
- });
-
- editorElement.addEventListener("focus", function (e) {
- var left = _this50.table.columnManager.element.scrollLeft;
-
- if (left !== _this50.table.rowManager.element.scrollLeft) {
- _this50.table.rowManager.scrollHorizontal(left);
- _this50.table.columnManager.scrollHorizontal(left);
- }
- });
-
- //live update filters as user types
- typingTimer = false;
-
- searchTrigger = function searchTrigger(e) {
- if (typingTimer) {
- clearTimeout(typingTimer);
- }
-
- typingTimer = setTimeout(function () {
- success(editorElement.value);
- }, self.table.options.headerFilterLiveFilterDelay);
- };
-
- column.modules.filter.headerElement = editorElement;
- column.modules.filter.attrType = editorElement.hasAttribute("type") ? editorElement.getAttribute("type").toLowerCase() : "";
- column.modules.filter.tagType = editorElement.tagName.toLowerCase();
-
- if (column.definition.headerFilterLiveFilter !== false) {
-
- if (!(column.definition.headerFilter === 'autocomplete' || column.definition.headerFilter === 'tickCross' || (column.definition.editor === 'autocomplete' || column.definition.editor === 'tickCross') && column.definition.headerFilter === true)) {
- editorElement.addEventListener("keyup", searchTrigger);
- editorElement.addEventListener("search", searchTrigger);
-
- //update number filtered columns on change
- if (column.modules.filter.attrType == "number") {
- editorElement.addEventListener("change", function (e) {
- success(editorElement.value);
- });
- }
-
- //change text inputs to search inputs to allow for clearing of field
- if (column.modules.filter.attrType == "text" && this.table.browser !== "ie") {
- editorElement.setAttribute("type", "search");
- // editorElement.off("change blur"); //prevent blur from triggering filter and preventing selection click
- }
- }
-
- //prevent input and select elements from propegating click to column sorters etc
- if (column.modules.filter.tagType == "input" || column.modules.filter.tagType == "select" || column.modules.filter.tagType == "textarea") {
- editorElement.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
- }
- }
-
- filterElement.appendChild(editorElement);
-
- column.contentElement.appendChild(filterElement);
-
- if (!reinitialize) {
- self.headerFilterColumns.push(column);
- }
- }
- } else {
- console.warn("Filter Error - Cannot add header filter, column has no field set:", column.definition.title);
- }
- };
-
- //hide all header filter elements (used to ensure correct column widths in "fitData" layout mode)
- Filter.prototype.hideHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = 'none';
- }
- });
- };
-
- //show all header filter elements (used to ensure correct column widths in "fitData" layout mode)
- Filter.prototype.showHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = '';
- }
- });
- };
-
- //programatically set focus of header filter
- Filter.prototype.setHeaderFilterFocus = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.focus();
- } else {
- console.warn("Column Filter Focus Error - No header filter set on column:", column.getField());
- }
- };
-
- //programmatically get value of header filter
- Filter.prototype.getHeaderFilterValue = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- return column.modules.filter.headerElement.value;
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- };
-
- //programatically set value of header filter
- Filter.prototype.setHeaderFilterValue = function (column, value) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, value, true);
- column.modules.filter.success(value);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
- };
-
- Filter.prototype.reloadHeaderFilter = function (column) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, column.modules.filter.value, true);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
- };
-
- //check if the filters has changed since last use
- Filter.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
- };
-
- //set standard filters
- Filter.prototype.setFilter = function (field, type, value) {
- var self = this;
-
- self.filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- self.addFilter(field);
- };
-
- //add filter to array
- Filter.prototype.addFilter = function (field, type, value) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
-
- filter = self.findFilter(filter);
-
- if (filter) {
- self.filterList.push(filter);
-
- self.changed = true;
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
- };
-
- Filter.prototype.findFilter = function (filter) {
- var self = this,
- column;
-
- if (Array.isArray(filter)) {
- return this.findSubFilters(filter);
- }
-
- var filterFunc = false;
-
- if (typeof filter.field == "function") {
- filterFunc = function filterFunc(data) {
- return filter.field(data, filter.type || {}); // pass params to custom filter function
- };
- } else {
-
- if (self.filters[filter.type]) {
-
- column = self.table.columnManager.getColumnByField(filter.field);
-
- if (column) {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, column.getFieldValue(data));
- };
- } else {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, data[filter.field]);
- };
- }
- } else {
- console.warn("Filter Error - No such filter type found, ignoring: ", filter.type);
- }
- }
-
- filter.func = filterFunc;
-
- return filter.func ? filter : false;
- };
-
- Filter.prototype.findSubFilters = function (filters) {
- var self = this,
- output = [];
-
- filters.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- output.push(filter);
- }
- });
-
- return output.length ? output : false;
- };
-
- //get all filters
- Filter.prototype.getFilters = function (all, ajax) {
- var output = [];
-
- if (all) {
- output = this.getHeaderFilters();
- }
-
- if (ajax) {
- output.forEach(function (item) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- });
- }
-
- output = output.concat(this.filtersToArray(this.filterList, ajax));
-
- return output;
- };
-
- //filter to Object
- Filter.prototype.filtersToArray = function (filterList, ajax) {
- var _this51 = this;
-
- var output = [];
-
- filterList.forEach(function (filter) {
- var item;
-
- if (Array.isArray(filter)) {
- output.push(_this51.filtersToArray(filter, ajax));
- } else {
- item = { field: filter.field, type: filter.type, value: filter.value };
-
- if (ajax) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- }
-
- output.push(item);
- }
- });
-
- return output;
- };
-
- //get all filters
- Filter.prototype.getHeaderFilters = function () {
- var self = this,
- output = [];
-
- for (var key in this.headerFilters) {
- output.push({ field: key, type: this.headerFilters[key].type, value: this.headerFilters[key].value });
- }
-
- return output;
- };
-
- //remove filter from array
- Filter.prototype.removeFilter = function (field, type, value) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- var index = -1;
-
- if (_typeof(filter.field) == "object") {
- index = self.filterList.findIndex(function (element) {
- return filter === element;
- });
- } else {
- index = self.filterList.findIndex(function (element) {
- return filter.field === element.field && filter.type === element.type && filter.value === element.value;
- });
- }
-
- if (index > -1) {
- self.filterList.splice(index, 1);
- self.changed = true;
- } else {
- console.warn("Filter Error - No matching filter type found, ignoring: ", filter.type);
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
- };
-
- //clear filters
- Filter.prototype.clearFilter = function (all) {
- this.filterList = [];
-
- if (all) {
- this.clearHeaderFilter();
- }
-
- this.changed = true;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
- };
-
- //clear header filters
- Filter.prototype.clearHeaderFilter = function () {
- var self = this;
-
- this.headerFilters = {};
- self.prevHeaderFilterChangeCheck = "{}";
-
- this.headerFilterColumns.forEach(function (column) {
- column.modules.filter.value = null;
- column.modules.filter.prevSuccess = undefined;
- self.reloadHeaderFilter(column);
- });
-
- this.changed = true;
- };
-
- //search data and return matching rows
- Filter.prototype.search = function (searchType, field, type, value) {
- var self = this,
- activeRows = [],
- filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- filterList.push(filter);
- }
- });
-
- this.table.rowManager.rows.forEach(function (row) {
- var match = true;
-
- filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, row.getData())) {
- match = false;
- }
- });
-
- if (match) {
- activeRows.push(searchType === "data" ? row.getData("data") : row.getComponent());
- }
- });
-
- return activeRows;
- };
-
- //filter row array
- Filter.prototype.filter = function (rowList, filters) {
- var self = this,
- activeRows = [],
- activeRowComponents = [];
-
- if (self.table.options.dataFiltering) {
- self.table.options.dataFiltering.call(self.table, self.getFilters());
- }
-
- if (!self.table.options.ajaxFiltering && (self.filterList.length || Object.keys(self.headerFilters).length)) {
-
- rowList.forEach(function (row) {
- if (self.filterRow(row)) {
- activeRows.push(row);
- }
- });
- } else {
- activeRows = rowList.slice(0);
- }
-
- if (self.table.options.dataFiltered) {
-
- activeRows.forEach(function (row) {
- activeRowComponents.push(row.getComponent());
- });
-
- self.table.options.dataFiltered.call(self.table, self.getFilters(), activeRowComponents);
- }
-
- return activeRows;
- };
-
- //filter individual row
- Filter.prototype.filterRow = function (row, filters) {
- var self = this,
- match = true,
- data = row.getData();
-
- self.filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, data)) {
- match = false;
- }
- });
-
- for (var field in self.headerFilters) {
- if (!self.headerFilters[field].func(data)) {
- match = false;
- }
- }
-
- return match;
- };
-
- Filter.prototype.filterRecurse = function (filter, data) {
- var self = this,
- match = false;
-
- if (Array.isArray(filter)) {
- filter.forEach(function (subFilter) {
- if (self.filterRecurse(subFilter, data)) {
- match = true;
- }
- });
- } else {
- match = filter.func(data);
- }
-
- return match;
- };
-
- //list of available filters
- Filter.prototype.filters = {
-
- //equal to
- "=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal == filterVal ? true : false;
- },
-
- //less than
- "<": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal < filterVal ? true : false;
- },
-
- //less than or equal to
- "<=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal <= filterVal ? true : false;
- },
-
- //greater than
- ">": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal > filterVal ? true : false;
- },
-
- //greater than or equal to
- ">=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal >= filterVal ? true : false;
- },
-
- //not equal to
- "!=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal != filterVal ? true : false;
- },
-
- "regex": function regex(filterVal, rowVal, rowData, filterParams) {
-
- if (typeof filterVal == "string") {
- filterVal = new RegExp(filterVal);
- }
-
- return filterVal.test(rowVal);
- },
-
- //contains the string
- "like": function like(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().indexOf(filterVal.toLowerCase()) > -1;
- } else {
- return false;
- }
- }
- },
-
- //in array
- "in": function _in(filterVal, rowVal, rowData, filterParams) {
- if (Array.isArray(filterVal)) {
- return filterVal.indexOf(rowVal) > -1;
- } else {
- console.warn("Filter Error - filter value is not an array:", filterVal);
- return false;
- }
- }
- };
-
- Tabulator.prototype.registerModule("filter", Filter);
-
- var Format = function Format(table) {
- this.table = table; //hold Tabulator object
- };
-
- //initialize column formatter
- Format.prototype.initializeColumn = function (column) {
- column.modules.format = this.lookupFormatter(column, "");
-
- if (typeof column.definition.formatterPrint !== "undefined") {
- column.modules.format.print = this.lookupFormatter(column, "Print");
- }
-
- if (typeof column.definition.formatterClipboard !== "undefined") {
- column.modules.format.clipboard = this.lookupFormatter(column, "Clipboard");
- }
-
- if (typeof column.definition.formatterHtmlOutput !== "undefined") {
- column.modules.format.htmlOutput = this.lookupFormatter(column, "HtmlOutput");
- }
- };
-
- Format.prototype.lookupFormatter = function (column, type) {
- var config = { params: column.definition["formatter" + type + "Params"] || {} },
- formatter = column.definition["formatter" + type];
-
- //set column formatter
- switch (typeof formatter === 'undefined' ? 'undefined' : _typeof(formatter)) {
- case "string":
-
- if (formatter === "tick") {
- formatter = "tickCross";
-
- if (typeof config.params.crossElement == "undefined") {
- config.params.crossElement = false;
- }
-
- console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false");
- }
-
- if (this.formatters[formatter]) {
- config.formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- config.formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- config.formatter = formatter;
- break;
-
- default:
- config.formatter = this.formatters.plaintext;
- break;
- }
-
- return config;
- };
-
- Format.prototype.cellRendered = function (cell) {
- if (cell.modules.format && cell.modules.format.renderedCallback) {
- cell.modules.format.renderedCallback();
- }
- };
-
- //return a formatted value for a cell
- Format.prototype.formatValue = function (cell) {
- var component = cell.getComponent(),
- params = typeof cell.column.modules.format.params === "function" ? cell.column.modules.format.params(component) : cell.column.modules.format.params;
-
- function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- }
-
- return cell.column.modules.format.formatter.call(this, component, params, onRendered);
- };
-
- Format.prototype.formatExportValue = function (cell, type) {
- var formatter = cell.column.modules.format[type],
- params;
-
- if (formatter) {
- var onRendered = function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- };
-
- params = typeof formatter.params === "function" ? formatter.params(component) : formatter.params;
-
- return formatter.formatter.call(this, cell.getComponent(), params, onRendered);
- } else {
- return this.formatValue(cell);
- }
- };
-
- Format.prototype.sanitizeHTML = function (value) {
- if (value) {
- var entityMap = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": ''',
- '/': '/',
- '`': '`',
- '=': '='
- };
-
- return String(value).replace(/[&<>"'`=\/]/g, function (s) {
- return entityMap[s];
- });
- } else {
- return value;
- }
- };
-
- Format.prototype.emptyToSpace = function (value) {
- return value === null || typeof value === "undefined" || value === "" ? " " : value;
- };
-
- //get formatter for cell
- Format.prototype.getFormatter = function (formatter) {
- var formatter;
-
- switch (typeof formatter === 'undefined' ? 'undefined' : _typeof(formatter)) {
- case "string":
- if (this.formatters[formatter]) {
- formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- formatter = formatter;
- break;
-
- default:
- formatter = this.formatters.plaintext;
- break;
- }
-
- return formatter;
- };
-
- //default data formatters
- Format.prototype.formatters = {
- //plain text value
- plaintext: function plaintext(cell, formatterParams, onRendered) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //html text value
- html: function html(cell, formatterParams, onRendered) {
- return cell.getValue();
- },
-
- //multiline text area
- textarea: function textarea(cell, formatterParams, onRendered) {
- cell.getElement().style.whiteSpace = "pre-wrap";
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //currency formatting
- money: function money(cell, formatterParams, onRendered) {
- var floatVal = parseFloat(cell.getValue()),
- number,
- integer,
- decimal,
- rgx;
-
- var decimalSym = formatterParams.decimal || ".";
- var thousandSym = formatterParams.thousand || ",";
- var symbol = formatterParams.symbol || "";
- var after = !!formatterParams.symbolAfter;
- var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
-
- if (isNaN(floatVal)) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- }
-
- number = precision !== false ? floatVal.toFixed(precision) : floatVal;
- number = String(number).split(".");
-
- integer = number[0];
- decimal = number.length > 1 ? decimalSym + number[1] : "";
-
- rgx = /(\d+)(\d{3})/;
-
- while (rgx.test(integer)) {
- integer = integer.replace(rgx, "$1" + thousandSym + "$2");
- }
-
- return after ? integer + decimal + symbol : symbol + integer + decimal;
- },
-
- //clickable anchor tag
- link: function link(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- urlPrefix = formatterParams.urlPrefix || "",
- download = formatterParams.download,
- label = value,
- el = document.createElement("a"),
- data;
-
- if (formatterParams.labelField) {
- data = cell.getData();
- label = data[formatterParams.labelField];
- }
-
- if (formatterParams.label) {
- switch (_typeof(formatterParams.label)) {
- case "string":
- label = formatterParams.label;
- break;
-
- case "function":
- label = formatterParams.label(cell);
- break;
- }
- }
-
- if (label) {
- if (formatterParams.urlField) {
- data = cell.getData();
- value = data[formatterParams.urlField];
- }
-
- if (formatterParams.url) {
- switch (_typeof(formatterParams.url)) {
- case "string":
- value = formatterParams.url;
- break;
-
- case "function":
- value = formatterParams.url(cell);
- break;
- }
- }
-
- el.setAttribute("href", urlPrefix + value);
-
- if (formatterParams.target) {
- el.setAttribute("target", formatterParams.target);
- }
-
- if (formatterParams.download) {
-
- if (typeof download == "function") {
- download = download(cell);
- } else {
- download = download === true ? "" : download;
- }
-
- el.setAttribute("download", download);
- }
-
- el.innerHTML = this.emptyToSpace(this.sanitizeHTML(label));
-
- return el;
- } else {
- return " ";
- }
- },
-
- //image element
- image: function image(cell, formatterParams, onRendered) {
- var el = document.createElement("img");
- el.setAttribute("src", cell.getValue());
-
- switch (_typeof(formatterParams.height)) {
- case "number":
- el.style.height = formatterParams.height + "px";
- break;
-
- case "string":
- el.style.height = formatterParams.height;
- break;
- }
-
- switch (_typeof(formatterParams.width)) {
- case "number":
- el.style.width = formatterParams.width + "px";
- break;
-
- case "string":
- el.style.width = formatterParams.width;
- break;
- }
-
- el.addEventListener("load", function () {
- cell.getRow().normalizeHeight();
- });
-
- return el;
- },
-
- //tick or cross
- tickCross: function tickCross(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- empty = formatterParams.allowEmpty,
- truthy = formatterParams.allowTruthy,
- tick = typeof formatterParams.tickElement !== "undefined" ? formatterParams.tickElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',
- cross = typeof formatterParams.crossElement !== "undefined" ? formatterParams.crossElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
-
- if (truthy && value || value === true || value === "true" || value === "True" || value === 1 || value === "1") {
- element.setAttribute("aria-checked", true);
- return tick || "";
- } else {
- if (empty && (value === "null" || value === "" || value === null || typeof value === "undefined")) {
- element.setAttribute("aria-checked", "mixed");
- return "";
- } else {
- element.setAttribute("aria-checked", false);
- return cross || "";
- }
- }
- },
-
- datetime: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var outputFormat = formatterParams.outputFormat || "DD/MM/YYYY hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- return newDatetime.format(outputFormat);
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- datetimediff: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var suffix = typeof formatterParams.suffix !== "undefined" ? formatterParams.suffix : false;
- var unit = typeof formatterParams.unit !== "undefined" ? formatterParams.unit : undefined;
- var humanize = typeof formatterParams.humanize !== "undefined" ? formatterParams.humanize : false;
- var date = typeof formatterParams.date !== "undefined" ? formatterParams.date : moment();
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- if (humanize) {
- return moment.duration(newDatetime.diff(date)).humanize(suffix);
- } else {
- return newDatetime.diff(date, unit) + (suffix ? " " + suffix : "");
- }
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- //select
- lookup: function lookup(cell, formatterParams, onRendered) {
- var value = cell.getValue();
-
- if (typeof formatterParams[value] === "undefined") {
- console.warn('Missing display value for ' + value);
- return value;
- }
-
- return formatterParams[value];
- },
-
- //star rating
- star: function star(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- maxStars = formatterParams && formatterParams.stars ? formatterParams.stars : 5,
- stars = document.createElement("span"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg"),
- starActive = '<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',
- starInactive = '<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
-
- //style stars holder
- stars.style.verticalAlign = "middle";
-
- //style star
- star.setAttribute("width", "14");
- star.setAttribute("height", "14");
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- value = value && !isNaN(value) ? parseInt(value) : 0;
-
- value = Math.max(0, Math.min(value, maxStars));
-
- for (var i = 1; i <= maxStars; i++) {
- var nextStar = star.cloneNode(true);
- nextStar.innerHTML = i <= value ? starActive : starInactive;
-
- stars.appendChild(nextStar);
- }
-
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- element.setAttribute("aria-label", value);
-
- return stars;
- },
-
- traffic: function traffic(cell, formatterParams, onRendered) {
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- el = document.createElement("span"),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- colors = formatterParams && typeof formatterParams.color !== "undefined" ? formatterParams.color : ["red", "orange", "green"],
- color = "#666666",
- percent,
- percentValue;
-
- if (isNaN(value) || typeof cell.getValue() === "undefined") {
- return;
- }
-
- el.classList.add("tabulator-traffic-light");
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set color
- switch (typeof colors === 'undefined' ? 'undefined' : _typeof(colors)) {
- case "string":
- color = colors;
- break;
- case "function":
- color = colors(value);
- break;
- case "object":
- if (Array.isArray(colors)) {
- var unit = 100 / colors.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, colors.length - 1);
- index = Math.max(index, 0);
- color = colors[index];
- break;
- }
- }
-
- el.style.backgroundColor = color;
-
- return el;
- },
-
- //progress bar
- progress: function progress(cell, formatterParams, onRendered) {
- //progress bar
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- element = cell.getElement(),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- legendAlign = formatterParams && formatterParams.legendAlign ? formatterParams.legendAlign : "center",
- percent,
- percentValue,
- color,
- legend,
- legendColor,
- top,
- left,
- right,
- bottom;
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set bar color
- switch (_typeof(formatterParams.color)) {
- case "string":
- color = formatterParams.color;
- break;
- case "function":
- color = formatterParams.color(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.color)) {
- var unit = 100 / formatterParams.color.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.color.length - 1);
- index = Math.max(index, 0);
- color = formatterParams.color[index];
- break;
- }
- default:
- color = "#2DC214";
- }
-
- //generate legend
- switch (_typeof(formatterParams.legend)) {
- case "string":
- legend = formatterParams.legend;
- break;
- case "function":
- legend = formatterParams.legend(value);
- break;
- case "boolean":
- legend = value;
- break;
- default:
- legend = false;
- }
-
- //set legend color
- switch (_typeof(formatterParams.legendColor)) {
- case "string":
- legendColor = formatterParams.legendColor;
- break;
- case "function":
- legendColor = formatterParams.legendColor(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.legendColor)) {
- var unit = 100 / formatterParams.legendColor.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.legendColor.length - 1);
- index = Math.max(index, 0);
- legendColor = formatterParams.legendColor[index];
- }
- break;
- default:
- legendColor = "#000";
- }
-
- element.style.minWidth = "30px";
- element.style.position = "relative";
-
- element.setAttribute("aria-label", percentValue);
-
- var barEl = document.createElement("div");
- barEl.style.display = "inline-block";
- barEl.style.position = "relative";
- barEl.style.width = percentValue + "%";
- barEl.style.backgroundColor = color;
- barEl.style.height = "100%";
-
- barEl.setAttribute('data-max', max);
- barEl.setAttribute('data-min', min);
-
- if (legend) {
- var legendEl = document.createElement("div");
- legendEl.style.position = "absolute";
- legendEl.style.top = "4px";
- legendEl.style.left = 0;
- legendEl.style.textAlign = legendAlign;
- legendEl.style.width = "100%";
- legendEl.style.color = legendColor;
- legendEl.innerHTML = legend;
- }
-
- onRendered(function () {
-
- //handle custom element needed if formatter is to be included in printed/downloaded output
- if (!(cell instanceof CellComponent)) {
- var holderEl = document.createElement("div");
- holderEl.style.position = "absolute";
- holderEl.style.top = "4px";
- holderEl.style.bottom = "4px";
- holderEl.style.left = "4px";
- holderEl.style.right = "4px";
-
- element.appendChild(holderEl);
-
- element = holderEl;
- }
-
- element.appendChild(barEl);
-
- if (legend) {
- element.appendChild(legendEl);
- }
- });
-
- return "";
- },
-
- //background color
- color: function color(cell, formatterParams, onRendered) {
- cell.getElement().style.backgroundColor = this.sanitizeHTML(cell.getValue());
- return "";
- },
-
- //tick icon
- buttonTick: function buttonTick(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>';
- },
-
- //cross icon
- buttonCross: function buttonCross(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
- },
-
- //current row number
- rownum: function rownum(cell, formatterParams, onRendered) {
- return this.table.rowManager.activeRows.indexOf(cell.getRow()._getSelf()) + 1;
- },
-
- //row handle
- handle: function handle(cell, formatterParams, onRendered) {
- cell.getElement().classList.add("tabulator-row-handle");
- return "<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>";
- },
-
- responsiveCollapse: function responsiveCollapse(cell, formatterParams, onRendered) {
- var self = this,
- open = false,
- el = document.createElement("div"),
- config = cell.getRow()._row.modules.responsiveLayout;
-
- el.classList.add("tabulator-responsive-collapse-toggle");
- el.innerHTML = "<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>";
-
- cell.getElement().classList.add("tabulator-row-handle");
-
- function toggleList(isOpen) {
- var collapseEl = config.element;
-
- config.open = isOpen;
-
- if (collapseEl) {
-
- if (config.open) {
- el.classList.add("open");
- collapseEl.style.display = '';
- } else {
- el.classList.remove("open");
- collapseEl.style.display = 'none';
- }
- }
- }
-
- el.addEventListener("click", function (e) {
- e.stopImmediatePropagation();
- toggleList(!config.open);
- });
-
- toggleList(config.open);
-
- return el;
- },
-
- rowSelection: function rowSelection(cell) {
- var _this52 = this;
-
- var checkbox = document.createElement("input");
-
- checkbox.type = 'checkbox';
-
- if (this.table.modExists("selectRow", true)) {
-
- checkbox.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- if (typeof cell.getRow == 'function') {
- var row = cell.getRow();
-
- checkbox.addEventListener("change", function (e) {
- row.toggleSelect();
- });
-
- checkbox.checked = row.isSelected();
- this.table.modules.selectRow.registerRowSelectCheckbox(row, checkbox);
- } else {
- checkbox.addEventListener("change", function (e) {
- if (_this52.table.modules.selectRow.selectedRows.length) {
- _this52.table.deselectRow();
- } else {
- _this52.table.selectRow();
- }
- });
-
- this.table.modules.selectRow.registerHeaderSelectCheckbox(checkbox);
- }
- }
- return checkbox;
- }
- };
-
- Tabulator.prototype.registerModule("format", Format);
-
- var FrozenColumns = function FrozenColumns(table) {
- this.table = table; //hold Tabulator object
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightPadding = 0;
- this.initializationMode = "left";
- this.active = false;
- this.scrollEndTimer = false;
- };
-
- //reset initial state
- FrozenColumns.prototype.reset = function () {
- this.initializationMode = "left";
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightMargin = 0;
- this.active = false;
-
- this.table.columnManager.headersElement.style.marginLeft = 0;
- this.table.columnManager.element.style.paddingRight = 0;
- };
-
- //initialize specific column
- FrozenColumns.prototype.initializeColumn = function (column) {
- var config = { margin: 0, edge: false };
-
- if (!column.isGroup) {
-
- if (this.frozenCheck(column)) {
-
- config.position = this.initializationMode;
-
- if (this.initializationMode == "left") {
- this.leftColumns.push(column);
- } else {
- this.rightColumns.unshift(column);
- }
-
- this.active = true;
-
- column.modules.frozen = config;
- } else {
- this.initializationMode = "right";
- }
- }
- };
-
- FrozenColumns.prototype.frozenCheck = function (column) {
- var frozen = false;
-
- if (column.parent.isGroup && column.definition.frozen) {
- console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups");
- }
-
- if (column.parent.isGroup) {
- return this.frozenCheck(column.parent);
- } else {
- return column.definition.frozen;
- }
-
- return frozen;
- };
-
- //quick layout to smooth horizontal scrolling
- FrozenColumns.prototype.scrollHorizontal = function () {
- var _this53 = this;
-
- var rows;
-
- if (this.active) {
- clearTimeout(this.scrollEndTimer);
-
- //layout all rows after scroll is complete
- this.scrollEndTimer = setTimeout(function () {
- _this53.layout();
- }, 100);
-
- rows = this.table.rowManager.getVisibleRows();
-
- this.calcMargins();
-
- this.layoutColumnPosition();
-
- this.layoutCalcRows();
-
- rows.forEach(function (row) {
- if (row.type === "row") {
- _this53.layoutRow(row);
- }
- });
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
- };
-
- //calculate margins for rows
- FrozenColumns.prototype.calcMargins = function () {
- this.leftMargin = this._calcSpace(this.leftColumns, this.leftColumns.length) + "px";
- this.table.columnManager.headersElement.style.marginLeft = this.leftMargin;
-
- this.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + "px";
- this.table.columnManager.element.style.paddingRight = this.rightMargin;
-
- //calculate right frozen columns
- this.rightPadding = this.table.rowManager.element.clientWidth + this.table.columnManager.scrollLeft;
- };
-
- //layout calculation rows
- FrozenColumns.prototype.layoutCalcRows = function () {
- if (this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized && this.table.modules.columnCalcs.topRow) {
- this.layoutRow(this.table.modules.columnCalcs.topRow);
- }
- if (this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow) {
- this.layoutRow(this.table.modules.columnCalcs.botRow);
- }
- }
- };
-
- //calculate column positions and layout headers
- FrozenColumns.prototype.layoutColumnPosition = function (allCells) {
- var _this54 = this;
-
- var leftParents = [];
-
- this.leftColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this54._calcSpace(_this54.leftColumns, i) + _this54.table.columnManager.scrollLeft + "px";
-
- if (i == _this54.leftColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- var parentEl = _this54.getColGroupParentElement(column);
- if (!leftParents.includes(parentEl)) {
- _this54.layoutElement(parentEl, column);
- leftParents.push(parentEl);
- }
-
- if (column.modules.frozen.edge) {
- parentEl.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- } else {
- _this54.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this54.layoutElement(cell.getElement(), column);
- });
- }
- });
-
- this.rightColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this54.rightPadding - _this54._calcSpace(_this54.rightColumns, i + 1) + "px";
-
- if (i == _this54.rightColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- _this54.layoutElement(_this54.getColGroupParentElement(column), column);
- } else {
- _this54.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this54.layoutElement(cell.getElement(), column);
- });
- }
- });
- };
-
- FrozenColumns.prototype.getColGroupParentElement = function (column) {
- return column.parent.isGroup ? this.getColGroupParentElement(column.parent) : column.getElement();
- };
-
- //layout columns appropropriatly
- FrozenColumns.prototype.layout = function () {
- var self = this,
- rightMargin = 0;
-
- if (self.active) {
-
- //calculate row padding
- this.calcMargins();
-
- // self.table.rowManager.activeRows.forEach(function(row){
- // self.layoutRow(row);
- // });
-
- // if(self.table.options.dataTree){
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row") {
- self.layoutRow(row);
- }
- });
- // }
-
- this.layoutCalcRows();
-
- //calculate left columns
- this.layoutColumnPosition(true);
-
- // if(tableHolder.scrollHeight > tableHolder.clientHeight){
- // rightMargin -= tableHolder.offsetWidth - tableHolder.clientWidth;
- // }
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
- };
-
- FrozenColumns.prototype.layoutRow = function (row) {
- var _this55 = this;
-
- var rowEl = row.getElement();
-
- rowEl.style.paddingLeft = this.leftMargin;
- // rowEl.style.paddingRight = this.rightMargin + "px";
-
- this.leftColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this55.layoutElement(cell.getElement(), column);
- }
- });
-
- this.rightColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this55.layoutElement(cell.getElement(), column);
- }
- });
- };
-
- FrozenColumns.prototype.layoutElement = function (element, column) {
-
- if (column.modules.frozen) {
- element.style.position = "absolute";
- element.style.left = column.modules.frozen.margin;
-
- element.classList.add("tabulator-frozen");
-
- if (column.modules.frozen.edge) {
- element.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- }
- };
-
- FrozenColumns.prototype._calcSpace = function (columns, index) {
- var width = 0;
-
- for (var i = 0; i < index; i++) {
- if (columns[i].visible) {
- width += columns[i].getWidth();
- }
- }
-
- return width;
- };
-
- Tabulator.prototype.registerModule("frozenColumns", FrozenColumns);
- var FrozenRows = function FrozenRows(table) {
- this.table = table; //hold Tabulator object
- this.topElement = document.createElement("div");
- this.rows = [];
- this.displayIndex = 0; //index in display pipeline
- };
-
- FrozenRows.prototype.initialize = function () {
- this.rows = [];
-
- this.topElement.classList.add("tabulator-frozen-rows-holder");
-
- // this.table.columnManager.element.append(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
- };
-
- FrozenRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- FrozenRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- FrozenRows.prototype.isFrozen = function () {
- return !!this.rows.length;
- };
-
- //filter frozen rows out of display data
- FrozenRows.prototype.getRows = function (rows) {
- var self = this,
- frozen = [],
- output = rows.slice(0);
-
- this.rows.forEach(function (row) {
- var index = output.indexOf(row);
-
- if (index > -1) {
- output.splice(index, 1);
- }
- });
-
- return output;
- };
-
- FrozenRows.prototype.freezeRow = function (row) {
- if (!row.modules.frozen) {
- row.modules.frozen = true;
- this.topElement.appendChild(row.getElement());
- row.initialize();
- row.normalizeHeight();
- this.table.rowManager.adjustTableSize();
-
- this.rows.push(row);
-
- this.table.rowManager.refreshActiveData("display");
-
- this.styleRows();
- } else {
- console.warn("Freeze Error - Row is already frozen");
- }
- };
-
- FrozenRows.prototype.unfreezeRow = function (row) {
- var index = this.rows.indexOf(row);
-
- if (row.modules.frozen) {
-
- row.modules.frozen = false;
-
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
-
- this.table.rowManager.adjustTableSize();
-
- this.rows.splice(index, 1);
-
- this.table.rowManager.refreshActiveData("display");
-
- if (this.rows.length) {
- this.styleRows();
- }
- } else {
- console.warn("Freeze Error - Row is already unfrozen");
- }
- };
-
- FrozenRows.prototype.styleRows = function (row) {
- var self = this;
-
- this.rows.forEach(function (row, i) {
- self.table.rowManager.styleRow(row, i);
- });
- };
-
- Tabulator.prototype.registerModule("frozenRows", FrozenRows);
-
- //public group object
- var GroupComponent = function GroupComponent(group) {
- this._group = group;
- this.type = "GroupComponent";
- };
-
- GroupComponent.prototype.getKey = function () {
- return this._group.key;
- };
-
- GroupComponent.prototype.getField = function () {
- return this._group.field;
- };
-
- GroupComponent.prototype.getElement = function () {
- return this._group.element;
- };
-
- GroupComponent.prototype.getRows = function () {
- return this._group.getRows(true);
- };
-
- GroupComponent.prototype.getSubGroups = function () {
- return this._group.getSubGroups(true);
- };
-
- GroupComponent.prototype.getParentGroup = function () {
- return this._group.parent ? this._group.parent.getComponent() : false;
- };
-
- GroupComponent.prototype.getVisibility = function () {
- return this._group.visible;
- };
-
- GroupComponent.prototype.show = function () {
- this._group.show();
- };
-
- GroupComponent.prototype.hide = function () {
- this._group.hide();
- };
-
- GroupComponent.prototype.toggle = function () {
- this._group.toggleVisibility();
- };
-
- GroupComponent.prototype._getSelf = function () {
- return this._group;
- };
-
- GroupComponent.prototype.getTable = function () {
- return this._group.groupManager.table;
- };
-
- //////////////////////////////////////////////////
- //////////////// Group Functions /////////////////
- //////////////////////////////////////////////////
-
- var Group = function Group(groupManager, parent, level, key, field, generator, oldGroup) {
-
- this.groupManager = groupManager;
- this.parent = parent;
- this.key = key;
- this.level = level;
- this.field = field;
- this.hasSubGroups = level < groupManager.groupIDLookups.length - 1;
- this.addRow = this.hasSubGroups ? this._addRowToGroup : this._addRow;
- this.type = "group"; //type of element
- this.old = oldGroup;
- this.rows = [];
- this.groups = [];
- this.groupList = [];
- this.generator = generator;
- this.elementContents = false;
- this.height = 0;
- this.outerHeight = 0;
- this.initialized = false;
- this.calcs = {};
- this.initialized = false;
- this.modules = {};
- this.arrowElement = false;
-
- this.visible = oldGroup ? oldGroup.visible : typeof groupManager.startOpen[level] !== "undefined" ? groupManager.startOpen[level] : groupManager.startOpen[0];
-
- this.createElements();
- this.addBindings();
-
- this.createValueGroups();
- };
-
- Group.prototype.wipe = function () {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
- } else {
- this.element = false;
- this.arrowElement = false;
- this.elementContents = false;
- }
- };
-
- Group.prototype.createElements = function () {
- var arrow = document.createElement("div");
- arrow.classList.add("tabulator-arrow");
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-row");
- this.element.classList.add("tabulator-group");
- this.element.classList.add("tabulator-group-level-" + this.level);
- this.element.setAttribute("role", "rowgroup");
-
- this.arrowElement = document.createElement("div");
- this.arrowElement.classList.add("tabulator-group-toggle");
- this.arrowElement.appendChild(arrow);
-
- //setup movable rows
- if (this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists("moveRow")) {
- this.groupManager.table.modules.moveRow.initializeGroupHeader(this);
- }
- };
-
- Group.prototype.createValueGroups = function () {
- var _this56 = this;
-
- var level = this.level + 1;
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- this.groupManager.allowedValues[level].forEach(function (value) {
- _this56._createGroup(value, level);
- });
- }
- };
-
- Group.prototype.addBindings = function () {
- var self = this,
- dblTap,
- tapHold,
- tap,
- toggleElement;
-
- //handle group click events
- if (self.groupManager.table.options.groupClick) {
- self.element.addEventListener("click", function (e) {
- self.groupManager.table.options.groupClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupDblClick) {
- self.element.addEventListener("dblclick", function (e) {
- self.groupManager.table.options.groupDblClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupContext) {
- self.element.addEventListener("contextmenu", function (e) {
- self.groupManager.table.options.groupContext.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- self.groupManager.table.options.groupTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.groupManager.table.options.groupDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- self.groupManager.table.options.groupDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.groupManager.table.options.groupTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- self.groupManager.table.options.groupTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-
- if (self.groupManager.table.options.groupToggleElement) {
- toggleElement = self.groupManager.table.options.groupToggleElement == "arrow" ? self.arrowElement : self.element;
-
- toggleElement.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- self.toggleVisibility();
- });
- }
- };
-
- Group.prototype._createGroup = function (groupID, level) {
- var groupKey = level + "_" + groupID;
- var group = new Group(this.groupManager, this, level, groupID, this.groupManager.groupIDLookups[level].field, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupKey] : false);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
- };
-
- Group.prototype._addRowToGroup = function (row) {
-
- var level = this.level + 1;
-
- if (this.hasSubGroups) {
- var groupID = this.groupManager.groupIDLookups[level].func(row.getData()),
- groupKey = level + "_" + groupID;
-
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
- } else {
- if (!this.groups[groupKey]) {
- this._createGroup(groupID, level);
- }
-
- this.groups[groupKey].addRow(row);
- }
- }
- };
-
- Group.prototype._addRow = function (row) {
- this.rows.push(row);
- row.modules.group = this;
- };
-
- Group.prototype.insertRow = function (row, to, after) {
- var data = this.conformRowData({});
-
- row.updateData(data);
-
- var toIndex = this.rows.indexOf(to);
-
- if (toIndex > -1) {
- if (after) {
- this.rows.splice(toIndex + 1, 0, row);
- } else {
- this.rows.splice(toIndex, 0, row);
- }
- } else {
- if (after) {
- this.rows.push(row);
- } else {
- this.rows.unshift(row);
- }
- }
-
- row.modules.group = this;
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
- };
-
- Group.prototype.scrollHeader = function (left) {
- this.arrowElement.style.marginLeft = left;
-
- this.groupList.forEach(function (child) {
- child.scrollHeader(left);
- });
- };
-
- Group.prototype.getRowIndex = function (row) {};
-
- //update row data to match grouping contraints
- Group.prototype.conformRowData = function (data) {
- if (this.field) {
- data[this.field] = this.key;
- } else {
- console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function");
- }
-
- if (this.parent) {
- data = this.parent.conformRowData(data);
- }
-
- return data;
- };
-
- Group.prototype.removeRow = function (row) {
- var index = this.rows.indexOf(row);
- var el = row.getElement();
-
- if (index > -1) {
- this.rows.splice(index, 1);
- }
-
- if (!this.groupManager.table.options.groupValues && !this.rows.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
- } else {
-
- if (el.parentNode) {
- el.parentNode.removeChild(el);
- }
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
- }
- };
-
- Group.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
-
- if (!this.groupList.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
- }
- }
- };
-
- Group.prototype.getHeadersAndRows = function (noCalc) {
- var output = [];
-
- output.push(this);
-
- this._visSet();
-
- if (this.visible) {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows(noCalc));
- });
- } else {
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
-
- output = output.concat(this.rows);
-
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- } else {
- if (!this.groupList.length && this.groupManager.table.options.columnCalcs != "table") {
-
- if (this.groupManager.table.modExists("columnCalcs")) {
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
- }
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- }
- }
- }
-
- return output;
- };
-
- Group.prototype.getData = function (visible, transform) {
- var self = this,
- output = [];
-
- this._visSet();
-
- if (!visible || visible && this.visible) {
- this.rows.forEach(function (row) {
- output.push(row.getData(transform || "data"));
- });
- }
-
- return output;
- };
-
- // Group.prototype.getRows = function(){
- // this._visSet();
-
- // return this.visible ? this.rows : [];
- // };
-
- Group.prototype.getRowCount = function () {
- var count = 0;
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- count += group.getRowCount();
- });
- } else {
- count = this.rows.length;
- }
- return count;
- };
-
- Group.prototype.toggleVisibility = function () {
- if (this.visible) {
- this.hide();
- } else {
- this.show();
- }
- };
-
- Group.prototype.hide = function () {
- this.visible = false;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.remove("tabulator-group-visible");
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
-
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- row.detachElement();
- });
- });
- } else {
- this.rows.forEach(function (row) {
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), false);
- };
-
- Group.prototype.show = function () {
- var self = this;
-
- self.visible = true;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.add("tabulator-group-visible");
-
- var prev = self.getElement();
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- });
- } else {
- self.rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), true);
- };
-
- Group.prototype._visSet = function () {
- var data = [];
-
- if (typeof this.visible == "function") {
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.visible = this.visible(this.key, this.getRowCount(), data, this.getComponent());
- }
- };
-
- Group.prototype.getRowGroup = function (row) {
- var match = false;
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
- } else {
- if (this.rows.find(function (item) {
- return item === row;
- })) {
- match = this;
- }
- }
-
- return match;
- };
-
- Group.prototype.getSubGroups = function (component) {
- var output = [];
-
- this.groupList.forEach(function (child) {
- output.push(component ? child.getComponent() : child);
- });
-
- return output;
- };
-
- Group.prototype.getRows = function (compoment) {
- var output = [];
-
- this.rows.forEach(function (row) {
- output.push(compoment ? row.getComponent() : row);
- });
-
- return output;
- };
-
- Group.prototype.generateGroupHeaderContents = function () {
- var data = [];
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent());
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }if (typeof this.elementContents === "string") {
- this.element.innerHTML = this.elementContents;
- } else {
- this.element.appendChild(this.elementContents);
- }
-
- this.element.insertBefore(this.arrowElement, this.element.firstChild);
- };
-
- ////////////// Standard Row Functions //////////////
-
- Group.prototype.getElement = function () {
- this.addBindingsd = false;
-
- this._visSet();
-
- if (this.visible) {
- this.element.classList.add("tabulator-group-visible");
- } else {
- this.element.classList.remove("tabulator-group-visible");
- }
-
- for (var i = 0; i < this.element.childNodes.length; ++i) {
- this.element.childNodes[i].parentNode.removeChild(this.element.childNodes[i]);
- }
-
- this.generateGroupHeaderContents();
-
- // this.addBindings();
-
- return this.element;
- };
-
- Group.prototype.detachElement = function () {
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
- };
-
- //normalize the height of elements in the row
- Group.prototype.normalizeHeight = function () {
- this.setHeight(this.element.clientHeight);
- };
-
- Group.prototype.initialize = function (force) {
- if (!this.initialized || force) {
- this.normalizeHeight();
- this.initialized = true;
- }
- };
-
- Group.prototype.reinitialize = function () {
- this.initialized = false;
- this.height = 0;
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
- this.initialize(true);
- }
- };
-
- Group.prototype.setHeight = function (height) {
- if (this.height != height) {
- this.height = height;
- this.outerHeight = this.element.offsetHeight;
- }
- };
-
- //return rows outer height
- Group.prototype.getHeight = function () {
- return this.outerHeight;
- };
-
- Group.prototype.getGroup = function () {
- return this;
- };
-
- Group.prototype.reinitializeHeight = function () {};
- Group.prototype.calcHeight = function () {};
- Group.prototype.setCellHeight = function () {};
- Group.prototype.clearCellHeight = function () {};
-
- //////////////// Object Generation /////////////////
- Group.prototype.getComponent = function () {
- return new GroupComponent(this);
- };
-
- //////////////////////////////////////////////////
- ////////////// Group Row Extension ///////////////
- //////////////////////////////////////////////////
-
- var GroupRows = function GroupRows(table) {
-
- this.table = table; //hold Tabulator object
-
- this.groupIDLookups = false; //enable table grouping and set field to group by
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
- this.headerGenerator = [function () {
- return "";
- }];
- this.groupList = []; //ordered list of groups
- this.allowedValues = false;
- this.groups = {}; //hold row groups
- this.displayIndex = 0; //index in display pipeline
- };
-
- //initialize group configuration
- GroupRows.prototype.initialize = function () {
- var self = this,
- groupBy = self.table.options.groupBy,
- startOpen = self.table.options.groupStartOpen,
- groupHeader = self.table.options.groupHeader;
-
- this.allowedValues = self.table.options.groupValues;
-
- if (Array.isArray(groupBy) && Array.isArray(groupHeader) && groupBy.length > groupHeader.length) {
- console.warn("Error creating group headers, groupHeader array is shorter than groupBy array");
- }
-
- self.headerGenerator = [function () {
- return "";
- }];
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
-
- self.table.modules.localize.bind("groups|item", function (langValue, lang) {
- self.headerGenerator[0] = function (value, count, data) {
- //header layout function
- return (typeof value === "undefined" ? "" : value) + "<span>(" + count + " " + (count === 1 ? langValue : lang.groups.items) + ")</span>";
- };
- });
-
- this.groupIDLookups = [];
-
- if (Array.isArray(groupBy) || groupBy) {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "table" && this.table.options.columnCalcs != "both") {
- this.table.modules.columnCalcs.removeCalcs();
- }
- } else {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "group") {
-
- var cols = this.table.columnManager.getRealColumns();
-
- cols.forEach(function (col) {
- if (col.definition.topCalc) {
- self.table.modules.columnCalcs.initializeTopRow();
- }
-
- if (col.definition.bottomCalc) {
- self.table.modules.columnCalcs.initializeBottomRow();
- }
- });
- }
- }
-
- if (!Array.isArray(groupBy)) {
- groupBy = [groupBy];
- }
-
- groupBy.forEach(function (group, i) {
- var lookupFunc, column;
-
- if (typeof group == "function") {
- lookupFunc = group;
- } else {
- column = self.table.columnManager.getColumnByField(group);
-
- if (column) {
- lookupFunc = function lookupFunc(data) {
- return column.getFieldValue(data);
- };
- } else {
- lookupFunc = function lookupFunc(data) {
- return data[group];
- };
- }
- }
-
- self.groupIDLookups.push({
- field: typeof group === "function" ? false : group,
- func: lookupFunc,
- values: self.allowedValues ? self.allowedValues[i] : false
- });
- });
-
- if (startOpen) {
-
- if (!Array.isArray(startOpen)) {
- startOpen = [startOpen];
- }
-
- startOpen.forEach(function (level) {
- level = typeof level == "function" ? level : function () {
- return true;
- };
- });
-
- self.startOpen = startOpen;
- }
-
- if (groupHeader) {
- self.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader];
- }
-
- this.initialized = true;
- };
-
- GroupRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- GroupRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- //return appropriate rows with group headers
- GroupRows.prototype.getRows = function (rows) {
- if (this.groupIDLookups.length) {
-
- this.table.options.dataGrouping.call(this.table);
-
- this.generateGroups(rows);
-
- if (this.table.options.dataGrouped) {
- this.table.options.dataGrouped.call(this.table, this.getGroups(true));
- }
-
- return this.updateGroupRows();
- } else {
- return rows.slice(0);
- }
- };
-
- GroupRows.prototype.getGroups = function (compoment) {
- var groupComponents = [];
-
- this.groupList.forEach(function (group) {
- groupComponents.push(compoment ? group.getComponent() : group);
- });
-
- return groupComponents;
- };
-
- GroupRows.prototype.getChildGroups = function (group) {
- var _this57 = this;
-
- var groupComponents = [];
-
- if (!group) {
- group = this;
- }
-
- group.groupList.forEach(function (child) {
- if (child.groupList.length) {
- groupComponents = groupComponents.concat(_this57.getChildGroups(child));
- } else {
- groupComponents.push(child);
- }
- });
-
- return groupComponents;
- };
-
- GroupRows.prototype.wipe = function () {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
- };
-
- GroupRows.prototype.pullGroupListData = function (groupList) {
- var self = this;
- var groupListData = [];
-
- groupList.forEach(function (group) {
- var groupHeader = {};
- groupHeader.level = 0;
- groupHeader.rowCount = 0;
- groupHeader.headerContent = "";
- var childData = [];
-
- if (group.hasSubGroups) {
- childData = self.pullGroupListData(group.groupList);
-
- groupHeader.level = group.level;
- groupHeader.rowCount = childData.length - group.groupList.length; // data length minus number of sub-headers
- groupHeader.headerContent = group.generator(group.key, groupHeader.rowCount, group.rows, group);
-
- groupListData.push(groupHeader);
- groupListData = groupListData.concat(childData);
- } else {
- groupHeader.level = group.level;
- groupHeader.headerContent = group.generator(group.key, group.rows.length, group.rows, group);
- groupHeader.rowCount = group.getRows().length;
-
- groupListData.push(groupHeader);
-
- group.getRows().forEach(function (row) {
- groupListData.push(row.getData("data"));
- });
- }
- });
-
- return groupListData;
- };
-
- GroupRows.prototype.getGroupedData = function () {
-
- return this.pullGroupListData(this.groupList);
- };
-
- GroupRows.prototype.getRowGroup = function (row) {
- var match = false;
-
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
-
- return match;
- };
-
- GroupRows.prototype.countGroups = function () {
- return this.groupList.length;
- };
-
- GroupRows.prototype.generateGroups = function (rows) {
- var self = this,
- oldGroups = self.groups;
-
- self.groups = {};
- self.groupList = [];
-
- if (this.allowedValues && this.allowedValues[0]) {
- this.allowedValues[0].forEach(function (value) {
- self.createGroup(value, 0, oldGroups);
- });
-
- rows.forEach(function (row) {
- self.assignRowToExistingGroup(row, oldGroups);
- });
- } else {
- rows.forEach(function (row) {
- self.assignRowToGroup(row, oldGroups);
- });
- }
- };
-
- GroupRows.prototype.createGroup = function (groupID, level, oldGroups) {
- var groupKey = level + "_" + groupID,
- group;
-
- oldGroups = oldGroups || [];
-
- group = new Group(this, false, level, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupKey]);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
- };
-
- // GroupRows.prototype.assignRowToGroup = function(row, oldGroups){
- // var groupID = this.groupIDLookups[0].func(row.getData()),
- // groupKey = "0_" + groupID;
-
- // if(!this.groups[groupKey]){
- // this.createGroup(groupID, 0, oldGroups);
- // }
-
- // this.groups[groupKey].addRow(row);
- // };
-
- GroupRows.prototype.assignRowToExistingGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- groupKey = "0_" + groupID;
-
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
- };
-
- GroupRows.prototype.assignRowToGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- newGroupNeeded = !this.groups["0_" + groupID];
-
- if (newGroupNeeded) {
- this.createGroup(groupID, 0, oldGroups);
- }
-
- this.groups["0_" + groupID].addRow(row);
-
- return !newGroupNeeded;
- };
-
- GroupRows.prototype.updateGroupRows = function (force) {
- var self = this,
- output = [],
- oldRowCount;
-
- self.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows());
- });
-
- //force update of table display
- if (force) {
-
- var displayIndex = self.table.rowManager.setDisplayRows(output, this.getDisplayIndex());
-
- if (displayIndex !== true) {
- this.setDisplayIndex(displayIndex);
- }
-
- self.table.rowManager.refreshActiveData("group", true, true);
- }
-
- return output;
- };
-
- GroupRows.prototype.scrollHeaders = function (left) {
- left = left + "px";
-
- this.groupList.forEach(function (group) {
- group.scrollHeader(left);
- });
- };
-
- GroupRows.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
- }
- };
-
- Tabulator.prototype.registerModule("groupRows", GroupRows);
- var History = function History(table) {
- this.table = table; //hold Tabulator object
-
- this.history = [];
- this.index = -1;
- };
-
- History.prototype.clear = function () {
- this.history = [];
- this.index = -1;
- };
-
- History.prototype.action = function (type, component, data) {
-
- this.history = this.history.slice(0, this.index + 1);
-
- this.history.push({
- type: type,
- component: component,
- data: data
- });
-
- this.index++;
- };
-
- History.prototype.getHistoryUndoSize = function () {
- return this.index + 1;
- };
-
- History.prototype.getHistoryRedoSize = function () {
- return this.history.length - (this.index + 1);
- };
-
- History.prototype.undo = function () {
-
- if (this.index > -1) {
- var action = this.history[this.index];
-
- this.undoers[action.type].call(this, action);
-
- this.index--;
-
- this.table.options.historyUndo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Undo Error - No more history to undo");
- return false;
- }
- };
-
- History.prototype.redo = function () {
- if (this.history.length - 1 > this.index) {
-
- this.index++;
-
- var action = this.history[this.index];
-
- this.redoers[action.type].call(this, action);
-
- this.table.options.historyRedo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Redo Error - No more history to redo");
- return false;
- }
- };
-
- History.prototype.undoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.oldValue);
- },
-
- rowAdd: function rowAdd(action) {
- action.component.deleteActual();
- },
-
- rowDelete: function rowDelete(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posFrom], !action.data.after);
- this.table.rowManager.redraw();
- }
- };
-
- History.prototype.redoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.newValue);
- },
-
- rowAdd: function rowAdd(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowDelete: function rowDelete(action) {
- action.component.deleteActual();
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posTo], action.data.after);
- this.table.rowManager.redraw();
- }
- };
-
- //rebind rows to new element after deletion
- History.prototype._rebindRow = function (oldRow, newRow) {
- this.history.forEach(function (action) {
- if (action.component instanceof Row) {
- if (action.component === oldRow) {
- action.component = newRow;
- }
- } else if (action.component instanceof Cell) {
- if (action.component.row === oldRow) {
- var field = action.component.column.getField();
-
- if (field) {
- action.component = newRow.getCell(field);
- }
- }
- }
- });
- };
-
- Tabulator.prototype.registerModule("history", History);
- var HtmlTableImport = function HtmlTableImport(table) {
- this.table = table; //hold Tabulator object
- this.fieldIndex = [];
- this.hasIndex = false;
- };
-
- HtmlTableImport.prototype.parseTable = function () {
- var self = this,
- element = self.table.element,
- options = self.table.options,
- columns = options.columns,
- headers = element.getElementsByTagName("th"),
- rows = element.getElementsByTagName("tbody")[0],
- data = [],
- newTable;
-
- self.hasIndex = false;
-
- self.table.options.htmlImporting.call(this.table);
-
- rows = rows ? rows.getElementsByTagName("tr") : [];
-
- //check for tablator inline options
- self._extractOptions(element, options);
-
- if (headers.length) {
- self._extractHeaders(headers, rows);
- } else {
- self._generateBlankHeaders(headers, rows);
- }
-
- //iterate through table rows and build data set
- for (var index = 0; index < rows.length; index++) {
- var row = rows[index],
- cells = row.getElementsByTagName("td"),
- item = {};
-
- //create index if the dont exist in table
- if (!self.hasIndex) {
- item[options.index] = index;
- }
-
- for (var i = 0; i < cells.length; i++) {
- var cell = cells[i];
- if (typeof this.fieldIndex[i] !== "undefined") {
- item[this.fieldIndex[i]] = cell.innerHTML;
- }
- }
-
- //add row data to item
- data.push(item);
- }
-
- //create new element
- var newElement = document.createElement("div");
-
- //transfer attributes to new element
- var attributes = element.attributes;
-
- // loop through attributes and apply them on div
-
- for (var i in attributes) {
- if (_typeof(attributes[i]) == "object") {
- newElement.setAttribute(attributes[i].name, attributes[i].value);
- }
- }
-
- // replace table with div element
- element.parentNode.replaceChild(newElement, element);
-
- options.data = data;
-
- self.table.options.htmlImported.call(this.table);
-
- // // newElement.tabulator(options);
-
- this.table.element = newElement;
- };
-
- //extract tabulator attribute options
- HtmlTableImport.prototype._extractOptions = function (element, options, defaultOptions) {
- var attributes = element.attributes;
- var optionsArr = defaultOptions ? Object.assign([], defaultOptions) : Object.keys(options);
- var optionsList = {};
-
- optionsArr.forEach(function (item) {
- optionsList[item.toLowerCase()] = item;
- });
-
- for (var index in attributes) {
- var attrib = attributes[index];
- var name;
-
- if (attrib && (typeof attrib === 'undefined' ? 'undefined' : _typeof(attrib)) == "object" && attrib.name && attrib.name.indexOf("tabulator-") === 0) {
- name = attrib.name.replace("tabulator-", "");
-
- if (typeof optionsList[name] !== "undefined") {
- options[optionsList[name]] = this._attribValue(attrib.value);
- }
- }
- }
- };
-
- //get value of attribute
- HtmlTableImport.prototype._attribValue = function (value) {
- if (value === "true") {
- return true;
- }
-
- if (value === "false") {
- return false;
- }
-
- return value;
- };
-
- //find column if it has already been defined
- HtmlTableImport.prototype._findCol = function (title) {
- var match = this.table.options.columns.find(function (column) {
- return column.title === title;
- });
-
- return match || false;
- };
-
- //extract column from headers
- HtmlTableImport.prototype._extractHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- exists = false,
- col = this._findCol(header.textContent),
- width,
- attributes;
-
- if (col) {
- exists = true;
- } else {
- col = { title: header.textContent.trim() };
- }
-
- if (!col.field) {
- col.field = header.textContent.trim().toLowerCase().replace(" ", "_");
- }
-
- width = header.getAttribute("width");
-
- if (width && !col.width) {
- col.width = width;
- }
-
- //check for tablator inline options
- attributes = header.attributes;
-
- // //check for tablator inline options
- this._extractOptions(header, col, Column.prototype.defaultOptionList);
-
- this.fieldIndex[index] = col.field;
-
- if (col.field == this.table.options.index) {
- this.hasIndex = true;
- }
-
- if (!exists) {
- this.table.options.columns.push(col);
- }
- }
- };
-
- //generate blank headers
- HtmlTableImport.prototype._generateBlankHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- col = { title: "", field: "col" + index };
-
- this.fieldIndex[index] = col.field;
-
- var width = header.getAttribute("width");
-
- if (width) {
- col.width = width;
- }
-
- this.table.options.columns.push(col);
- }
- };
-
- Tabulator.prototype.registerModule("htmlTableImport", HtmlTableImport);
- var Keybindings = function Keybindings(table) {
- this.table = table; //hold Tabulator object
- this.watchKeys = null;
- this.pressedKeys = null;
- this.keyupBinding = false;
- this.keydownBinding = false;
- };
-
- Keybindings.prototype.initialize = function () {
- var bindings = this.table.options.keybindings,
- mergedBindings = {};
-
- this.watchKeys = {};
- this.pressedKeys = [];
-
- if (bindings !== false) {
-
- for (var key in this.bindings) {
- mergedBindings[key] = this.bindings[key];
- }
-
- if (Object.keys(bindings).length) {
-
- for (var _key in bindings) {
- mergedBindings[_key] = bindings[_key];
- }
- }
-
- this.mapBindings(mergedBindings);
- this.bindEvents();
- }
- };
-
- Keybindings.prototype.mapBindings = function (bindings) {
- var _this58 = this;
-
- var self = this;
-
- var _loop2 = function _loop2(key) {
-
- if (_this58.actions[key]) {
-
- if (bindings[key]) {
-
- if (_typeof(bindings[key]) !== "object") {
- bindings[key] = [bindings[key]];
- }
-
- bindings[key].forEach(function (binding) {
- self.mapBinding(key, binding);
- });
- }
- } else {
- console.warn("Key Binding Error - no such action:", key);
- }
- };
-
- for (var key in bindings) {
- _loop2(key);
- }
- };
-
- Keybindings.prototype.mapBinding = function (action, symbolsList) {
- var self = this;
-
- var binding = {
- action: this.actions[action],
- keys: [],
- ctrl: false,
- shift: false,
- meta: false
- };
-
- var symbols = symbolsList.toString().toLowerCase().split(" ").join("").split("+");
-
- symbols.forEach(function (symbol) {
- switch (symbol) {
- case "ctrl":
- binding.ctrl = true;
- break;
-
- case "shift":
- binding.shift = true;
- break;
-
- case "meta":
- binding.meta = true;
- break;
-
- default:
- symbol = parseInt(symbol);
- binding.keys.push(symbol);
-
- if (!self.watchKeys[symbol]) {
- self.watchKeys[symbol] = [];
- }
-
- self.watchKeys[symbol].push(binding);
- }
- });
- };
-
- Keybindings.prototype.bindEvents = function () {
- var self = this;
-
- this.keyupBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- self.pressedKeys.push(code);
-
- bindings.forEach(function (binding) {
- self.checkBinding(e, binding);
- });
- }
- };
-
- this.keydownBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- var index = self.pressedKeys.indexOf(code);
-
- if (index > -1) {
- self.pressedKeys.splice(index, 1);
- }
- }
- };
-
- this.table.element.addEventListener("keydown", this.keyupBinding);
-
- this.table.element.addEventListener("keyup", this.keydownBinding);
- };
-
- Keybindings.prototype.clearBindings = function () {
- if (this.keyupBinding) {
- this.table.element.removeEventListener("keydown", this.keyupBinding);
- }
-
- if (this.keydownBinding) {
- this.table.element.removeEventListener("keyup", this.keydownBinding);
- }
- };
-
- Keybindings.prototype.checkBinding = function (e, binding) {
- var self = this,
- match = true;
-
- if (e.ctrlKey == binding.ctrl && e.shiftKey == binding.shift && e.metaKey == binding.meta) {
- binding.keys.forEach(function (key) {
- var index = self.pressedKeys.indexOf(key);
-
- if (index == -1) {
- match = false;
- }
- });
-
- if (match) {
- binding.action.call(self, e);
- }
-
- return true;
- }
-
- return false;
- };
-
- //default bindings
- Keybindings.prototype.bindings = {
- navPrev: "shift + 9",
- navNext: 9,
- navUp: 38,
- navDown: 40,
- scrollPageUp: 33,
- scrollPageDown: 34,
- scrollToStart: 36,
- scrollToEnd: 35,
- undo: "ctrl + 90",
- redo: "ctrl + 89",
- copyToClipboard: "ctrl + 67"
- };
-
- //default actions
- Keybindings.prototype.actions = {
- keyBlock: function keyBlock(e) {
- e.stopPropagation();
- e.preventDefault();
- },
- scrollPageUp: function scrollPageUp(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop - rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos >= 0) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
- }
-
- this.table.element.focus();
- },
- scrollPageDown: function scrollPageDown(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop + rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos <= scrollMax) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
- }
-
- this.table.element.focus();
- },
- scrollToStart: function scrollToStart(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
-
- this.table.element.focus();
- },
- scrollToEnd: function scrollToEnd(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
-
- this.table.element.focus();
- },
- navPrev: function navPrev(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().prev();
- }
- }
- },
-
- navNext: function navNext(e) {
- var cell = false;
- var newRow = this.table.options.tabEndNewRow;
- var nav;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
-
- nav = cell.nav();
-
- if (!nav.next()) {
- if (newRow) {
-
- cell.getElement().firstChild.blur();
-
- if (newRow === true) {
- newRow = this.table.addRow({});
- } else {
- if (typeof newRow == "function") {
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
- } else {
- newRow = this.table.addRow(newRow);
- }
- }
-
- newRow.then(function () {
- setTimeout(function () {
- nav.next();
- });
- });
- }
- }
- }
- }
- },
-
- navLeft: function navLeft(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().left();
- }
- }
- },
-
- navRight: function navRight(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().right();
- }
- }
- },
-
- navUp: function navUp(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().up();
- }
- }
- },
-
- navDown: function navDown(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().down();
- }
- }
- },
-
- undo: function undo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.undo();
- }
- }
- },
-
- redo: function redo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.redo();
- }
- }
- },
-
- copyToClipboard: function copyToClipboard(e) {
- if (!this.table.modules.edit.currentCell) {
- if (this.table.modExists("clipboard", true)) {
- this.table.modules.clipboard.copy(false, true);
- }
- }
- }
- };
-
- Tabulator.prototype.registerModule("keybindings", Keybindings);
- var Menu = function Menu(table) {
- this.table = table; //hold Tabulator object
- this.menuEl = false;
- this.blurEvent = this.hideMenu.bind(this);
- };
-
- Menu.prototype.initializeColumnHeader = function (column) {
- var _this59 = this;
-
- var headerMenuEl;
-
- if (column.definition.headerContextMenu) {
- column.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof column.definition.headerContextMenu == "function" ? column.definition.headerContextMenu(column.getComponent()) : column.definition.headerContextMenu;
-
- e.preventDefault();
-
- _this59.loadMenu(e, column, menu);
- });
- }
-
- if (column.definition.headerMenu) {
-
- headerMenuEl = document.createElement("span");
- headerMenuEl.classList.add("tabulator-header-menu-button");
- headerMenuEl.innerHTML = "⋮";
-
- headerMenuEl.addEventListener("click", function (e) {
- var menu = typeof column.definition.headerMenu == "function" ? column.definition.headerMenu(column.getComponent()) : column.definition.headerMenu;
- e.stopPropagation();
- e.preventDefault();
-
- _this59.loadMenu(e, column, menu);
- });
-
- column.titleElement.insertBefore(headerMenuEl, column.titleElement.firstChild);
- }
- };
-
- Menu.prototype.initializeCell = function (cell) {
- var _this60 = this;
-
- cell.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof cell.column.definition.contextMenu == "function" ? cell.column.definition.contextMenu(cell.getComponent()) : cell.column.definition.contextMenu;
-
- e.preventDefault();
-
- _this60.loadMenu(e, cell, menu);
- });
- };
-
- Menu.prototype.initializeRow = function (row) {
- var _this61 = this;
-
- row.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof _this61.table.options.rowContextMenu == "function" ? _this61.table.options.rowContextMenu(row.getComponent()) : _this61.table.options.rowContextMenu;
-
- e.preventDefault();
-
- _this61.loadMenu(e, row, menu);
- });
- };
-
- Menu.prototype.loadMenu = function (e, component, menu) {
- var _this62 = this;
-
- var docHeight = Math.max(document.body.offsetHeight, window.innerHeight);
-
- //abort if no menu set
- if (!menu || !menu.length) {
- return;
- }
-
- this.hideMenu();
-
- this.menuEl = document.createElement("div");
- this.menuEl.classList.add("tabulator-menu");
-
- menu.forEach(function (item) {
- var itemEl = document.createElement("div");
- var label = item.label;
- var disabled = item.disabled;
-
- if (item.separator) {
- itemEl.classList.add("tabulator-menu-separator");
- } else {
- itemEl.classList.add("tabulator-menu-item");
-
- if (typeof label == "function") {
- label = label(component.getComponent());
- }
-
- if (label instanceof Node) {
- itemEl.appendChild(label);
- } else {
- itemEl.innerHTML = label;
- }
-
- if (typeof disabled == "function") {
- disabled = disabled(component.getComponent());
- }
-
- if (disabled) {
- itemEl.classList.add("tabulator-menu-item-disabled");
- itemEl.addEventListener("click", function (e) {
- e.stopPropagation();
- });
- } else {
- itemEl.addEventListener("click", function (e) {
- _this62.hideMenu();
- item.action(e, component.getComponent());
- });
- }
- }
-
- _this62.menuEl.appendChild(itemEl);
- });
-
- this.menuEl.style.top = e.pageY + "px";
- this.menuEl.style.left = e.pageX + "px";
-
- document.body.addEventListener("click", this.blurEvent);
- this.table.rowManager.element.addEventListener("scroll", this.blurEvent);
-
- setTimeout(function () {
- document.body.addEventListener("contextmenu", _this62.blurEvent);
- }, 100);
-
- document.body.appendChild(this.menuEl);
-
- //move menu to start on right edge if it is too close to the edge of the screen
- if (e.pageX + this.menuEl.offsetWidth >= document.body.offsetWidth) {
- this.menuEl.style.left = "";
- this.menuEl.style.right = document.body.offsetWidth - e.pageX + "px";
- }
-
- //move menu to start on bottom edge if it is too close to the edge of the screen
- if (e.pageY + this.menuEl.offsetHeight >= docHeight) {
- this.menuEl.style.top = "";
- this.menuEl.style.bottom = docHeight - e.pageY + "px";
- }
- };
-
- Menu.prototype.hideMenu = function () {
- if (this.menuEl.parentNode) {
- this.menuEl.parentNode.removeChild(this.menuEl);
- }
-
- if (this.blurEvent) {
- document.body.removeEventListener("click", this.blurEvent);
- document.body.removeEventListener("contextmenu", this.blurEvent);
- this.table.rowManager.element.removeEventListener("scroll", this.blurEvent);
- }
- };
-
- //default accessors
- Menu.prototype.menus = {};
-
- Tabulator.prototype.registerModule("menu", Menu);
- var MoveColumns = function MoveColumns(table) {
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating column header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 250; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving column
- this.toCol = false; //destination column
- this.toColAfter = false; //position of moving column relative to the desitnation column
- this.startX = 0; //starting position within header element
- this.autoScrollMargin = 40; //auto scroll on edge when within margin
- this.autoScrollStep = 5; //auto scroll distance in pixels
- this.autoScrollTimeout = false; //auto scroll timeout
- this.touchMove = false;
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
- };
-
- MoveColumns.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
- el.classList.add("tabulator-col-placeholder");
-
- return el;
- };
-
- MoveColumns.prototype.initializeColumn = function (column) {
- var self = this,
- config = {},
- colEl;
-
- if (!column.modules.frozen) {
-
- colEl = column.getElement();
-
- config.mousemove = function (e) {
- if (column.parent === self.moving.parent) {
- if ((self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(colEl).left + self.table.columnManager.element.scrollLeft > column.getWidth() / 2) {
- if (self.toCol !== column || !self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl.nextSibling);
- self.moveColumn(column, true);
- }
- } else {
- if (self.toCol !== column || self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl);
- self.moveColumn(column, false);
- }
- }
- }
- }.bind(self);
-
- colEl.addEventListener("mousedown", function (e) {
- self.touchMove = false;
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, column);
- }, self.checkPeriod);
- }
- });
-
- colEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- self.bindTouchEvents(column);
- }
-
- column.modules.moveColumn = config;
- };
-
- MoveColumns.prototype.bindTouchEvents = function (column) {
- var self = this,
- colEl = column.getElement(),
- startXMove = false,
- //shifting center position of the cell
- dir = false,
- currentCol,
- nextCol,
- prevCol,
- nextColWidth,
- prevColWidth,
- nextColWidthLast,
- prevColWidthLast;
-
- colEl.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentCol = column;
- nextCol = column.nextColumn();
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = column.prevColumn();
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- nextColWidthLast = 0;
- prevColWidthLast = 0;
- startXMove = false;
-
- self.startMove(e, column);
- }, self.checkPeriod);
- }, { passive: true });
-
- colEl.addEventListener("touchmove", function (e) {
- var halfCol, diff, moveToCol;
-
- if (self.moving) {
- self.moveHover(e);
-
- if (!startXMove) {
- startXMove = e.touches[0].pageX;
- }
-
- diff = e.touches[0].pageX - startXMove;
-
- if (diff > 0) {
- if (nextCol && diff - nextColWidthLast > nextColWidth) {
- moveToCol = nextCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement().nextSibling);
- self.moveColumn(moveToCol, true);
- }
- }
- } else {
- if (prevCol && -diff - prevColWidthLast > prevColWidth) {
- moveToCol = prevCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement());
- self.moveColumn(moveToCol, false);
- }
- }
- }
-
- if (moveToCol) {
- currentCol = moveToCol;
- nextCol = moveToCol.nextColumn();
- nextColWidthLast = nextColWidth;
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = moveToCol.prevColumn();
- prevColWidthLast = prevColWidth;
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- }
- }
- }, { passive: true });
-
- colEl.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- }
- });
- };
-
- MoveColumns.prototype.startMove = function (e, column) {
- var element = column.getElement();
-
- this.moving = column;
- this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(element).left;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = column.getWidth() + "px";
- this.placeholderElement.style.height = column.getHeight() + "px";
-
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- this.table.columnManager.getElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.bottom = "0";
-
- if (!this.touchMove) {
- this._bindMouseMove();
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
- }
-
- this.moveHover(e);
- };
-
- MoveColumns.prototype._bindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().addEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
- };
-
- MoveColumns.prototype._unbindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().removeEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
- };
-
- MoveColumns.prototype.moveColumn = function (column, after) {
- var movingCells = this.moving.getCells();
-
- this.toCol = column;
- this.toColAfter = after;
-
- if (after) {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling);
- });
- } else {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl);
- });
- }
- };
-
- MoveColumns.prototype.endMove = function (e) {
- if (e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toCol) {
- this.table.columnManager.moveColumnActual(this.moving, this.toCol, this.toColAfter);
- }
-
- this.moving = false;
- this.toCol = false;
- this.toColAfter = false;
-
- if (!this.touchMove) {
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
- }
- }
- };
-
- MoveColumns.prototype.moveHover = function (e) {
- var self = this,
- columnHolder = self.table.columnManager.getElement(),
- scrollLeft = columnHolder.scrollLeft,
- xPos = (self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(columnHolder).left + scrollLeft,
- scrollPos;
-
- self.hoverElement.style.left = xPos - self.startX + "px";
-
- if (xPos - scrollLeft < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.max(0, scrollLeft - 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
-
- if (scrollLeft + columnHolder.clientWidth - xPos < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.min(columnHolder.clientWidth, scrollLeft + 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
- };
-
- Tabulator.prototype.registerModule("moveColumn", MoveColumns);
-
- var MoveRows = function MoveRows(table) {
-
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating row header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 150; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving row
- this.toRow = false; //destination row
- this.toRowAfter = false; //position of moving row relative to the desitnation row
- this.hasHandle = false; //row has handle instead of fully movable row
- this.startY = 0; //starting Y position within header element
- this.startX = 0; //starting X position within header element
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
- this.tableRowDropEvent = false;
-
- this.touchMove = false;
-
- this.connection = false;
- this.connections = [];
-
- this.connectedTable = false;
- this.connectedRow = false;
- };
-
- MoveRows.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
- el.classList.add("tabulator-row-placeholder");
-
- return el;
- };
-
- MoveRows.prototype.initialize = function (handle) {
- this.connection = this.table.options.movableRowsConnectedTables;
- };
-
- MoveRows.prototype.setHandle = function (handle) {
- this.hasHandle = handle;
- };
-
- MoveRows.prototype.initializeGroupHeader = function (group) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(group.element).top + self.table.rowManager.element.scrollTop > group.getHeight() / 2) {
- if (self.toRow !== group || !self.toRowAfter) {
- var rowEl = group.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(group, true);
- }
- } else {
- if (self.toRow !== group || self.toRowAfter) {
- var rowEl = group.getElement();
- if (rowEl.previousSibling) {
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(group, false);
- }
- }
- }
- }.bind(self);
-
- group.modules.moveRow = config;
- };
-
- MoveRows.prototype.initializeRow = function (row) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(row.element).top + self.table.rowManager.element.scrollTop > row.getHeight() / 2) {
- if (self.toRow !== row || !self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(row, true);
- }
- } else {
- if (self.toRow !== row || self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(row, false);
- }
- }
- }.bind(self);
-
- if (!this.hasHandle) {
-
- rowEl = row.getElement();
-
- rowEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, row);
- }, self.checkPeriod);
- }
- });
-
- rowEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(row, row.getElement());
- }
-
- row.modules.moveRow = config;
- };
-
- MoveRows.prototype.initializeCell = function (cell) {
- var self = this,
- cellEl = cell.getElement();
-
- cellEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, cell.row);
- }, self.checkPeriod);
- }
- });
-
- cellEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(cell.row, cell.getElement());
- };
-
- MoveRows.prototype.bindTouchEvents = function (row, element) {
- var self = this,
- startYMove = false,
- //shifting center position of the cell
- dir = false,
- currentRow,
- nextRow,
- prevRow,
- nextRowHeight,
- prevRowHeight,
- nextRowHeightLast,
- prevRowHeightLast;
-
- element.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentRow = row;
- nextRow = row.nextRow();
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = row.prevRow();
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- nextRowHeightLast = 0;
- prevRowHeightLast = 0;
- startYMove = false;
-
- self.startMove(e, row);
- }, self.checkPeriod);
- }, { passive: true });
- this.moving, this.toRow, this.toRowAfter;
- element.addEventListener("touchmove", function (e) {
-
- var halfCol, diff, moveToRow;
-
- if (self.moving) {
- e.preventDefault();
-
- self.moveHover(e);
-
- if (!startYMove) {
- startYMove = e.touches[0].pageY;
- }
-
- diff = e.touches[0].pageY - startYMove;
-
- if (diff > 0) {
- if (nextRow && diff - nextRowHeightLast > nextRowHeight) {
- moveToRow = nextRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement().nextSibling);
- self.moveRow(moveToRow, true);
- }
- }
- } else {
- if (prevRow && -diff - prevRowHeightLast > prevRowHeight) {
- moveToRow = prevRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement());
- self.moveRow(moveToRow, false);
- }
- }
- }
-
- if (moveToRow) {
- currentRow = moveToRow;
- nextRow = moveToRow.nextRow();
- nextRowHeightLast = nextRowHeight;
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = moveToRow.prevRow();
- prevRowHeightLast = prevRowHeight;
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- }
- }
- });
-
- element.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- self.touchMove = false;
- }
- });
- };
-
- MoveRows.prototype._bindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().addEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
- };
-
- MoveRows.prototype._unbindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().removeEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
- };
-
- MoveRows.prototype.startMove = function (e, row) {
- var element = row.getElement();
-
- this.setStartPosition(e, row);
-
- this.moving = row;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = row.getWidth() + "px";
- this.placeholderElement.style.height = row.getHeight() + "px";
-
- if (!this.connection) {
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
- } else {
- this.table.element.classList.add("tabulator-movingrow-sending");
- this.connectToTables(row);
- }
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- if (this.connection) {
- document.body.appendChild(this.hoverElement);
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
- this.hoverElement.style.width = this.table.element.clientWidth + "px";
- this.hoverElement.style.whiteSpace = "nowrap";
- this.hoverElement.style.overflow = "hidden";
- this.hoverElement.style.pointerEvents = "none";
- } else {
- this.table.rowManager.getTableElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
-
- this._bindMouseMove();
- }
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
-
- this.moveHover(e);
- };
-
- MoveRows.prototype.setStartPosition = function (e, row) {
- var pageX = this.touchMove ? e.touches[0].pageX : e.pageX,
- pageY = this.touchMove ? e.touches[0].pageY : e.pageY,
- element,
- position;
-
- element = row.getElement();
- if (this.connection) {
- position = element.getBoundingClientRect();
-
- this.startX = position.left - pageX + window.pageXOffset;
- this.startY = position.top - pageY + window.pageYOffset;
- } else {
- this.startY = pageY - element.getBoundingClientRect().top;
- }
- };
-
- MoveRows.prototype.endMove = function (e) {
- if (!e || e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- if (!this.connection) {
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- }
-
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toRow) {
- this.table.rowManager.moveRow(this.moving, this.toRow, this.toRowAfter);
- }
-
- this.moving = false;
- this.toRow = false;
- this.toRowAfter = false;
-
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
-
- if (this.connection) {
- this.table.element.classList.remove("tabulator-movingrow-sending");
- this.disconnectFromTables();
- }
- }
- };
-
- MoveRows.prototype.moveRow = function (row, after) {
- this.toRow = row;
- this.toRowAfter = after;
- };
-
- MoveRows.prototype.moveHover = function (e) {
- if (this.connection) {
- this.moveHoverConnections.call(this, e);
- } else {
- this.moveHoverTable.call(this, e);
- }
- };
-
- MoveRows.prototype.moveHoverTable = function (e) {
- var rowHolder = this.table.rowManager.getElement(),
- scrollTop = rowHolder.scrollTop,
- yPos = (this.touchMove ? e.touches[0].pageY : e.pageY) - rowHolder.getBoundingClientRect().top + scrollTop,
- scrollPos;
-
- this.hoverElement.style.top = yPos - this.startY + "px";
- };
-
- MoveRows.prototype.moveHoverConnections = function (e) {
- this.hoverElement.style.left = this.startX + (this.touchMove ? e.touches[0].pageX : e.pageX) + "px";
- this.hoverElement.style.top = this.startY + (this.touchMove ? e.touches[0].pageY : e.pageY) + "px";
- };
-
- //establish connection with other tables
- MoveRows.prototype.connectToTables = function (row) {
- var self = this,
- connections = this.table.modules.comms.getConnections(this.connection);
-
- this.table.options.movableRowsSendingStart.call(this.table, connections);
-
- this.table.modules.comms.send(this.connection, "moveRow", "connect", {
- row: row
- });
- };
-
- //disconnect from other tables
- MoveRows.prototype.disconnectFromTables = function () {
- var self = this,
- connections = this.table.modules.comms.getConnections(this.connection);
-
- this.table.options.movableRowsSendingStop.call(this.table, connections);
-
- this.table.modules.comms.send(this.connection, "moveRow", "disconnect");
- };
-
- //accept incomming connection
- MoveRows.prototype.connect = function (table, row) {
- var self = this;
- if (!this.connectedTable) {
- this.connectedTable = table;
- this.connectedRow = row;
-
- this.table.element.classList.add("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().addEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.tableRowDropEvent = self.tableRowDrop.bind(self);
-
- self.table.element.addEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStart.call(this.table, row, table);
-
- return true;
- } else {
- console.warn("Move Row Error - Table cannot accept connection, already connected to table:", this.connectedTable);
- return false;
- }
- };
-
- //close incomming connection
- MoveRows.prototype.disconnect = function (table) {
- var self = this;
- if (table === this.connectedTable) {
- this.connectedTable = false;
- this.connectedRow = false;
-
- this.table.element.classList.remove("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().removeEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.table.element.removeEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStop.call(this.table, table);
- } else {
- console.warn("Move Row Error - trying to disconnect from non connected table");
- }
- };
-
- MoveRows.prototype.dropComplete = function (table, row, success) {
- var sender = false;
-
- if (success) {
-
- switch (_typeof(this.table.options.movableRowsSender)) {
- case "string":
- sender = this.senders[this.table.options.movableRowsSender];
- break;
-
- case "function":
- sender = this.table.options.movableRowsSender;
- break;
- }
-
- if (sender) {
- sender.call(this, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- if (this.table.options.movableRowsSender) {
- console.warn("Mover Row Error - no matching sender found:", this.table.options.movableRowsSender);
- }
- }
-
- this.table.options.movableRowsSent.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- this.table.options.movableRowsSentFailed.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- }
-
- this.endMove();
- };
-
- MoveRows.prototype.tableRowDrop = function (e, row) {
- var receiver = false,
- success = false;
-
- e.stopImmediatePropagation();
-
- switch (_typeof(this.table.options.movableRowsReceiver)) {
- case "string":
- receiver = this.receivers[this.table.options.movableRowsReceiver];
- break;
-
- case "function":
- receiver = this.table.options.movableRowsReceiver;
- break;
- }
-
- if (receiver) {
- success = receiver.call(this, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- console.warn("Mover Row Error - no matching receiver found:", this.table.options.movableRowsReceiver);
- }
-
- if (success) {
- this.table.options.movableRowsReceived.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- this.table.options.movableRowsReceivedFailed.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- }
-
- this.table.modules.comms.send(this.connectedTable, "moveRow", "dropcomplete", {
- row: row,
- success: success
- });
- };
-
- MoveRows.prototype.receivers = {
- insert: function insert(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- return true;
- },
-
- add: function add(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData());
- return true;
- },
-
- update: function update(fromRow, toRow, fromTable) {
- if (toRow) {
- toRow.update(fromRow.getData());
- return true;
- }
-
- return false;
- },
-
- replace: function replace(fromRow, toRow, fromTable) {
- if (toRow) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- toRow.delete();
- return true;
- }
-
- return false;
- }
- };
-
- MoveRows.prototype.senders = {
- delete: function _delete(fromRow, toRow, toTable) {
- fromRow.delete();
- }
- };
-
- MoveRows.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "connect":
- return this.connect(table, data.row);
- break;
-
- case "disconnect":
- return this.disconnect(table);
- break;
-
- case "dropcomplete":
- return this.dropComplete(table, data.row, data.success);
- break;
- }
- };
-
- Tabulator.prototype.registerModule("moveRow", MoveRows);
- var Mutator = function Mutator(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "edit", "clipboard"]; //list of muatation types
- this.enabled = true;
- };
-
- //initialize column mutator
- Mutator.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- mutator;
-
- if (column.definition[key]) {
- mutator = self.lookupMutator(column.definition[key]);
-
- if (mutator) {
- match = true;
-
- config[key] = {
- mutator: mutator,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.mutate = config;
- }
- };
-
- Mutator.prototype.lookupMutator = function (value) {
- var mutator = false;
-
- //set column mutator
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "string":
- if (this.mutators[value]) {
- mutator = this.mutators[value];
- } else {
- console.warn("Mutator Error - No such mutator found, ignoring: ", value);
- }
- break;
-
- case "function":
- mutator = value;
- break;
- }
-
- return mutator;
- };
-
- //apply mutator to row
- Mutator.prototype.transformRow = function (data, type, updatedData) {
- var self = this,
- key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- value;
-
- if (this.enabled) {
-
- self.table.columnManager.traverse(function (column) {
- var mutator, params, component;
-
- if (column.modules.mutate) {
- mutator = column.modules.mutate[key] || column.modules.mutate.mutator || false;
-
- if (mutator) {
- value = column.getFieldValue(typeof updatedData !== "undefined" ? updatedData : data);
-
- if (type == "data" || typeof value !== "undefined") {
- component = column.getComponent();
- params = typeof mutator.params === "function" ? mutator.params(value, data, type, component) : mutator.params;
- column.setFieldValue(data, mutator.mutator(value, data, type, params, component));
- }
- }
- }
- });
- }
-
- return data;
- };
-
- //apply mutator to new cell value
- Mutator.prototype.transformCell = function (cell, value) {
- var mutator = cell.column.modules.mutate.mutatorEdit || cell.column.modules.mutate.mutator || false,
- tempData = {};
-
- if (mutator) {
- tempData = Object.assign(tempData, cell.row.getData());
- cell.column.setFieldValue(tempData, value);
- return mutator.mutator(value, tempData, "edit", mutator.params, cell.getComponent());
- } else {
- return value;
- }
- };
-
- Mutator.prototype.enable = function () {
- this.enabled = true;
- };
-
- Mutator.prototype.disable = function () {
- this.enabled = false;
- };
-
- //default mutators
- Mutator.prototype.mutators = {};
-
- Tabulator.prototype.registerModule("mutator", Mutator);
- var Page = function Page(table) {
-
- this.table = table; //hold Tabulator object
-
- this.mode = "local";
- this.progressiveLoad = false;
-
- this.size = 0;
- this.page = 1;
- this.count = 5;
- this.max = 1;
-
- this.displayIndex = 0; //index in display pipeline
-
- this.initialLoad = true;
-
- this.pageSizes = [];
-
- this.dataReceivedNames = {};
- this.dataSentNames = {};
-
- this.createElements();
- };
-
- Page.prototype.createElements = function () {
-
- var button;
-
- this.element = document.createElement("span");
- this.element.classList.add("tabulator-paginator");
-
- this.pagesElement = document.createElement("span");
- this.pagesElement.classList.add("tabulator-pages");
-
- button = document.createElement("button");
- button.classList.add("tabulator-page");
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
- button.setAttribute("aria-label", "");
- button.setAttribute("title", "");
-
- this.firstBut = button.cloneNode(true);
- this.firstBut.setAttribute("data-page", "first");
-
- this.prevBut = button.cloneNode(true);
- this.prevBut.setAttribute("data-page", "prev");
-
- this.nextBut = button.cloneNode(true);
- this.nextBut.setAttribute("data-page", "next");
-
- this.lastBut = button.cloneNode(true);
- this.lastBut.setAttribute("data-page", "last");
-
- if (this.table.options.paginationSizeSelector) {
- this.pageSizeSelect = document.createElement("select");
- this.pageSizeSelect.classList.add("tabulator-page-size");
- }
- };
-
- Page.prototype.generatePageSizeSelectList = function () {
- var _this63 = this;
-
- var pageSizes = [];
-
- if (this.pageSizeSelect) {
-
- if (Array.isArray(this.table.options.paginationSizeSelector)) {
- pageSizes = this.table.options.paginationSizeSelector;
- this.pageSizes = pageSizes;
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes.unshift(this.size);
- }
- } else {
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes = [];
-
- for (var i = 1; i < 5; i++) {
- pageSizes.push(this.size * i);
- }
-
- this.pageSizes = pageSizes;
- } else {
- pageSizes = this.pageSizes;
- }
- }
-
- while (this.pageSizeSelect.firstChild) {
- this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);
- }pageSizes.forEach(function (item) {
- var itemEl = document.createElement("option");
- itemEl.value = item;
- itemEl.innerHTML = item;
-
- _this63.pageSizeSelect.appendChild(itemEl);
- });
-
- this.pageSizeSelect.value = this.size;
- }
- };
-
- //setup pageination
- Page.prototype.initialize = function (hidden) {
- var self = this,
- pageSelectLabel,
- testElRow,
- testElCell;
-
- //update param names
- this.dataSentNames = Object.assign({}, this.paginationDataSentNames);
- this.dataSentNames = Object.assign(this.dataSentNames, this.table.options.paginationDataSent);
-
- this.dataReceivedNames = Object.assign({}, this.paginationDataReceivedNames);
- this.dataReceivedNames = Object.assign(this.dataReceivedNames, this.table.options.paginationDataReceived);
-
- //build pagination element
-
- //bind localizations
- self.table.modules.localize.bind("pagination|first", function (value) {
- self.firstBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|first_title", function (value) {
- self.firstBut.setAttribute("aria-label", value);
- self.firstBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|prev", function (value) {
- self.prevBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|prev_title", function (value) {
- self.prevBut.setAttribute("aria-label", value);
- self.prevBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|next", function (value) {
- self.nextBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|next_title", function (value) {
- self.nextBut.setAttribute("aria-label", value);
- self.nextBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|last", function (value) {
- self.lastBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|last_title", function (value) {
- self.lastBut.setAttribute("aria-label", value);
- self.lastBut.setAttribute("title", value);
- });
-
- //click bindings
- self.firstBut.addEventListener("click", function () {
- self.setPage(1);
- });
-
- self.prevBut.addEventListener("click", function () {
- self.previousPage();
- });
-
- self.nextBut.addEventListener("click", function () {
- self.nextPage().then(function () {}).catch(function () {});
- });
-
- self.lastBut.addEventListener("click", function () {
- self.setPage(self.max);
- });
-
- if (self.table.options.paginationElement) {
- self.element = self.table.options.paginationElement;
- }
-
- if (this.pageSizeSelect) {
- pageSelectLabel = document.createElement("label");
-
- self.table.modules.localize.bind("pagination|page_size", function (value) {
- self.pageSizeSelect.setAttribute("aria-label", value);
- self.pageSizeSelect.setAttribute("title", value);
- pageSelectLabel.innerHTML = value;
- });
-
- self.element.appendChild(pageSelectLabel);
- self.element.appendChild(self.pageSizeSelect);
-
- self.pageSizeSelect.addEventListener("change", function (e) {
- self.setPageSize(self.pageSizeSelect.value);
- self.setPage(1).then(function () {}).catch(function () {});
- });
- }
-
- //append to DOM
- self.element.appendChild(self.firstBut);
- self.element.appendChild(self.prevBut);
- self.element.appendChild(self.pagesElement);
- self.element.appendChild(self.nextBut);
- self.element.appendChild(self.lastBut);
-
- if (!self.table.options.paginationElement && !hidden) {
- self.table.footerManager.append(self.element, self);
- }
-
- //set default values
- self.mode = self.table.options.pagination;
-
- if (self.table.options.paginationSize) {
- self.size = self.table.options.paginationSize;
- } else {
- testElRow = document.createElement("div");
- testElRow.classList.add("tabulator-row");
- testElRow.style.visibility = hidden;
-
- testElCell = document.createElement("div");
- testElCell.classList.add("tabulator-cell");
- testElCell.innerHTML = "Page Row Test";
-
- testElRow.appendChild(testElCell);
-
- self.table.rowManager.getTableElement().appendChild(testElRow);
-
- self.size = Math.floor(self.table.rowManager.getElement().clientHeight / testElRow.offsetHeight);
-
- self.table.rowManager.getTableElement().removeChild(testElRow);
- }
-
- // self.page = self.table.options.paginationInitialPage || 1;
- self.count = self.table.options.paginationButtonCount;
-
- self.generatePageSizeSelectList();
- };
-
- Page.prototype.initializeProgressive = function (mode) {
- this.initialize(true);
- this.mode = "progressive_" + mode;
- this.progressiveLoad = true;
- };
-
- Page.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- Page.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- //calculate maximum page from number of rows
- Page.prototype.setMaxRows = function (rowCount) {
- if (!rowCount) {
- this.max = 1;
- } else {
- this.max = Math.ceil(rowCount / this.size);
- }
-
- if (this.page > this.max) {
- this.page = this.max;
- }
- };
-
- //reset to first page without triggering action
- Page.prototype.reset = function (force, columnsChanged) {
- if (this.mode == "local" || force) {
- this.page = 1;
- }
-
- if (columnsChanged) {
- this.initialLoad = true;
- }
-
- return true;
- };
-
- //set the maxmum page
- Page.prototype.setMaxPage = function (max) {
-
- max = parseInt(max);
-
- this.max = max || 1;
-
- if (this.page > this.max) {
- this.page = this.max;
- this.trigger();
- }
- };
-
- //set current page number
- Page.prototype.setPage = function (page) {
- var _this64 = this;
-
- var self = this;
-
- return new Promise(function (resolve, reject) {
-
- page = parseInt(page);
-
- if (page > 0 && page <= _this64.max) {
- _this64.page = page;
- _this64.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.page) {
- self.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Requested page is out of range of 1 - " + _this64.max + ":", page);
- reject();
- }
- });
- };
-
- Page.prototype.setPageToRow = function (row) {
- var _this65 = this;
-
- return new Promise(function (resolve, reject) {
-
- var rows = _this65.table.rowManager.getDisplayRows(_this65.displayIndex - 1);
- var index = rows.indexOf(row);
-
- if (index > -1) {
- var page = Math.ceil((index + 1) / _this65.size);
-
- _this65.setPage(page).then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- } else {
- console.warn("Pagination Error - Requested row is not visible");
- reject();
- }
- });
- };
-
- Page.prototype.setPageSize = function (size) {
- size = parseInt(size);
-
- if (size > 0) {
- this.size = size;
- }
-
- if (this.pageSizeSelect) {
- // this.pageSizeSelect.value = size;
- this.generatePageSizeSelectList();
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.page) {
- this.table.modules.persistence.save("page");
- }
- };
-
- //setup the pagination buttons
- Page.prototype._setPageButtons = function () {
- var self = this;
-
- var leftSize = Math.floor((this.count - 1) / 2);
- var rightSize = Math.ceil((this.count - 1) / 2);
- var min = this.max - this.page + leftSize + 1 < this.count ? this.max - this.count + 1 : Math.max(this.page - leftSize, 1);
- var max = this.page <= rightSize ? Math.min(this.count, this.max) : Math.min(this.page + rightSize, this.max);
-
- while (self.pagesElement.firstChild) {
- self.pagesElement.removeChild(self.pagesElement.firstChild);
- }if (self.page == 1) {
- self.firstBut.disabled = true;
- self.prevBut.disabled = true;
- } else {
- self.firstBut.disabled = false;
- self.prevBut.disabled = false;
- }
-
- if (self.page == self.max) {
- self.lastBut.disabled = true;
- self.nextBut.disabled = true;
- } else {
- self.lastBut.disabled = false;
- self.nextBut.disabled = false;
- }
-
- for (var i = min; i <= max; i++) {
- if (i > 0 && i <= self.max) {
- self.pagesElement.appendChild(self._generatePageButton(i));
- }
- }
-
- this.footerRedraw();
- };
-
- Page.prototype._generatePageButton = function (page) {
- var self = this,
- button = document.createElement("button");
-
- button.classList.add("tabulator-page");
- if (page == self.page) {
- button.classList.add("active");
- }
-
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
- button.setAttribute("aria-label", "Show Page " + page);
- button.setAttribute("title", "Show Page " + page);
- button.setAttribute("data-page", page);
- button.textContent = page;
-
- button.addEventListener("click", function (e) {
- self.setPage(page);
- });
-
- return button;
- };
-
- //previous page
- Page.prototype.previousPage = function () {
- var _this66 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this66.page > 1) {
- _this66.page--;
- _this66.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this66.table.options.persistence && _this66.table.modExists("persistence", true) && _this66.table.modules.persistence.config.page) {
- _this66.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Previous page would be less than page 1:", 0);
- reject();
- }
- });
- };
-
- //next page
- Page.prototype.nextPage = function () {
- var _this67 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this67.page < _this67.max) {
- _this67.page++;
- _this67.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this67.table.options.persistence && _this67.table.modExists("persistence", true) && _this67.table.modules.persistence.config.page) {
- _this67.table.modules.persistence.save("page");
- }
- } else {
- if (!_this67.progressiveLoad) {
- console.warn("Pagination Error - Next page would be greater than maximum page of " + _this67.max + ":", _this67.max + 1);
- }
- reject();
- }
- });
- };
-
- //return current page number
- Page.prototype.getPage = function () {
- return this.page;
- };
-
- //return max page number
- Page.prototype.getPageMax = function () {
- return this.max;
- };
-
- Page.prototype.getPageSize = function (size) {
- return this.size;
- };
-
- Page.prototype.getMode = function () {
- return this.mode;
- };
-
- //return appropriate rows for current page
- Page.prototype.getRows = function (data) {
- var output, start, end;
-
- if (this.mode == "local") {
- output = [];
- start = this.size * (this.page - 1);
- end = start + parseInt(this.size);
-
- this._setPageButtons();
-
- for (var i = start; i < end; i++) {
- if (data[i]) {
- output.push(data[i]);
- }
- }
-
- return output;
- } else {
-
- this._setPageButtons();
-
- return data.slice(0);
- }
- };
-
- Page.prototype.trigger = function () {
- var _this68 = this;
-
- var left;
-
- return new Promise(function (resolve, reject) {
-
- switch (_this68.mode) {
- case "local":
- left = _this68.table.rowManager.scrollLeft;
-
- _this68.table.rowManager.refreshActiveData("page");
- _this68.table.rowManager.scrollHorizontal(left);
-
- _this68.table.options.pageLoaded.call(_this68.table, _this68.getPage());
- resolve();
- break;
-
- case "remote":
- case "progressive_load":
- case "progressive_scroll":
- _this68.table.modules.ajax.blockActiveRequest();
- _this68._getRemotePage().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- break;
-
- default:
- console.warn("Pagination Error - no such pagination mode:", _this68.mode);
- reject();
- }
- });
- };
-
- Page.prototype._getRemotePage = function () {
- var _this69 = this;
-
- var self = this,
- oldParams,
- pageParams;
-
- return new Promise(function (resolve, reject) {
-
- if (!self.table.modExists("ajax", true)) {
- reject();
- }
-
- //record old params and restore after request has been made
- oldParams = Tabulator.prototype.helpers.deepClone(self.table.modules.ajax.getParams() || {});
- pageParams = self.table.modules.ajax.getParams();
-
- //configure request params
- pageParams[_this69.dataSentNames.page] = self.page;
-
- //set page size if defined
- if (_this69.size) {
- pageParams[_this69.dataSentNames.size] = _this69.size;
- }
-
- //set sort data if defined
- if (_this69.table.options.ajaxSorting && _this69.table.modExists("sort")) {
- var sorters = self.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
- delete item.column;
- });
-
- pageParams[_this69.dataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
- if (_this69.table.options.ajaxFiltering && _this69.table.modExists("filter")) {
- var filters = self.table.modules.filter.getFilters(true, true);
- pageParams[_this69.dataSentNames.filters] = filters;
- }
-
- self.table.modules.ajax.setParams(pageParams);
-
- self.table.modules.ajax.sendRequest(_this69.progressiveLoad).then(function (data) {
- self._parseRemoteData(data);
- resolve();
- }).catch(function (e) {
- reject();
- });
-
- self.table.modules.ajax.setParams(oldParams);
- });
- };
-
- Page.prototype._parseRemoteData = function (data) {
- var self = this,
- left,
- data,
- margin;
-
- if (typeof data[this.dataReceivedNames.last_page] === "undefined") {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.last_page + "' property");
- }
-
- if (data[this.dataReceivedNames.data]) {
- this.max = parseInt(data[this.dataReceivedNames.last_page]) || 1;
-
- if (this.progressiveLoad) {
- switch (this.mode) {
- case "progressive_load":
-
- if (this.page == 1) {
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
- } else {
- this.table.rowManager.addRows(data[this.dataReceivedNames.data]);
- }
-
- if (this.page < this.max) {
- setTimeout(function () {
- self.nextPage().then(function () {}).catch(function () {});
- }, self.table.options.ajaxProgressiveLoadDelay);
- }
- break;
-
- case "progressive_scroll":
- data = this.table.rowManager.getData().concat(data[this.dataReceivedNames.data]);
-
- this.table.rowManager.setData(data, true, this.initialLoad && this.page == 1);
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.element.clientHeight * 2;
-
- if (self.table.rowManager.element.scrollHeight <= self.table.rowManager.element.clientHeight + margin) {
- self.nextPage().then(function () {}).catch(function () {});
- }
- break;
- }
- } else {
- left = this.table.rowManager.scrollLeft;
-
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
-
- this.table.rowManager.scrollHorizontal(left);
-
- this.table.columnManager.scrollHorizontal(left);
-
- this.table.options.pageLoaded.call(this.table, this.getPage());
- }
-
- this.initialLoad = false;
- } else {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.data + "' property");
- }
- };
-
- //handle the footer element being redrawn
- Page.prototype.footerRedraw = function () {
- var footer = this.table.footerManager.element;
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- } else {
- this.pagesElement.style.display = '';
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- }
- }
- };
-
- //set the paramter names for pagination requests
- Page.prototype.paginationDataSentNames = {
- "page": "page",
- "size": "size",
- "sorters": "sorters",
- // "sort_dir":"sort_dir",
- "filters": "filters"
- // "filter_value":"filter_value",
- // "filter_type":"filter_type",
- };
-
- //set the property names for pagination responses
- Page.prototype.paginationDataReceivedNames = {
- "current_page": "current_page",
- "last_page": "last_page",
- "data": "data"
- };
-
- Tabulator.prototype.registerModule("page", Page);
-
- var Persistence = function Persistence(table) {
- this.table = table; //hold Tabulator object
- this.mode = "";
- this.id = "";
- // this.persistProps = ["field", "width", "visible"];
- this.defWatcherBlock = false;
- this.config = {};
- this.readFunc = false;
- this.writeFunc = false;
- };
-
- // Test for whether localStorage is available for use.
- Persistence.prototype.localStorageTest = function () {
- var testKey = "_tabulator_test";
-
- try {
- window.localStorage.setItem(testKey, testKey);
- window.localStorage.removeItem(testKey);
- return true;
- } catch (e) {
- return false;
- }
- };
-
- //setup parameters
- Persistence.prototype.initialize = function () {
- //determine persistent layout storage type
-
- var mode = this.table.options.persistenceMode,
- id = this.table.options.persistenceID,
- retreivedData;
-
- this.mode = mode !== true ? mode : this.localStorageTest() ? "local" : "cookie";
-
- if (this.table.options.persistenceReaderFunc) {
- if (typeof this.table.options.persistenceReaderFunc === "function") {
- this.readFunc = this.table.options.persistenceReaderFunc;
- } else {
- if (this.readers[this.table.options.persistenceReaderFunc]) {
- this.readFunc = this.readers[this.table.options.persistenceReaderFunc];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.table.options.persistenceReaderFunc);
- }
- }
- } else {
- if (this.readers[this.mode]) {
- this.readFunc = this.readers[this.mode];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.mode);
- }
- }
-
- if (this.table.options.persistenceWriterFunc) {
- if (typeof this.table.options.persistenceWriterFunc === "function") {
- this.writeFunc = this.table.options.persistenceWriterFunc;
- } else {
- if (this.readers[this.table.options.persistenceWriterFunc]) {
- this.writeFunc = this.readers[this.table.options.persistenceWriterFunc];
- } else {
- console.warn("Persistence Write Error - invalid reader set", this.table.options.persistenceWriterFunc);
- }
- }
- } else {
- if (this.writers[this.mode]) {
- this.writeFunc = this.writers[this.mode];
- } else {
- console.warn("Persistence Write Error - invalid writer set", this.mode);
- }
- }
-
- //set storage tag
- this.id = "tabulator-" + (id || this.table.element.getAttribute("id") || "");
-
- this.config = {
- sort: this.table.options.persistence === true || this.table.options.persistence.sort,
- filter: this.table.options.persistence === true || this.table.options.persistence.filter,
- group: this.table.options.persistence === true || this.table.options.persistence.group,
- page: this.table.options.persistence === true || this.table.options.persistence.page,
- columns: this.table.options.persistence === true ? ["title", "width", "visible"] : this.table.options.persistence.columns
- };
-
- //load pagination data if needed
- if (this.config.page) {
- retreivedData = this.retreiveData("page");
-
- if (retreivedData) {
- if (typeof retreivedData.paginationSize !== "undefined" && (this.config.page === true || this.config.page.size)) {
- this.table.options.paginationSize = retreivedData.paginationSize;
- }
-
- if (typeof retreivedData.paginationInitialPage !== "undefined" && (this.config.page === true || this.config.page.page)) {
- this.table.options.paginationInitialPage = retreivedData.paginationInitialPage;
- }
- }
- }
-
- //load group data if needed
- if (this.config.group) {
- retreivedData = this.retreiveData("group");
-
- if (retreivedData) {
- if (typeof retreivedData.groupBy !== "undefined" && (this.config.group === true || this.config.group.groupBy)) {
- this.table.options.groupBy = retreivedData.groupBy;
- }
- if (typeof retreivedData.groupStartOpen !== "undefined" && (this.config.group === true || this.config.group.groupStartOpen)) {
- this.table.options.groupStartOpen = retreivedData.groupStartOpen;
- }
- if (typeof retreivedData.groupHeader !== "undefined" && (this.config.group === true || this.config.group.groupHeader)) {
- this.table.options.groupHeader = retreivedData.groupHeader;
- }
- }
- }
- };
-
- Persistence.prototype.initializeColumn = function (column) {
- var self = this,
- def,
- keys;
-
- if (this.config.columns) {
- this.defWatcherBlock = true;
-
- def = column.getDefinition();
-
- keys = this.config.columns === true ? Object.keys(def) : this.config.columns;
-
- keys.forEach(function (key) {
- var props = Object.getOwnPropertyDescriptor(def, key);
- var value = def[key];
- if (props) {
- Object.defineProperty(def, key, {
- set: function set(newValue) {
- value = newValue;
-
- if (!self.defWatcherBlock) {
- self.save("columns");
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
- if (props.get) {
- props.get();
- }
- return value;
- }
- });
- }
- });
-
- this.defWatcherBlock = false;
- }
- };
-
- //load saved definitions
- Persistence.prototype.load = function (type, current) {
- var data = this.retreiveData(type);
-
- if (current) {
- data = data ? this.mergeDefinition(current, data) : current;
- }
-
- return data;
- };
-
- //retreive data from memory
- Persistence.prototype.retreiveData = function (type) {
- return this.readFunc ? this.readFunc(this.id, type) : false;
- };
-
- //merge old and new column definitions
- Persistence.prototype.mergeDefinition = function (oldCols, newCols) {
- var self = this,
- output = [];
-
- // oldCols = oldCols || [];
- newCols = newCols || [];
-
- newCols.forEach(function (column, to) {
-
- var from = self._findColumn(oldCols, column),
- keys;
-
- if (from) {
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(from);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
- if (typeof column[key] !== "undefined") {
- from[key] = column[key];
- }
- });
-
- if (from.columns) {
- from.columns = self.mergeDefinition(from.columns, column.columns);
- }
-
- output.push(from);
- }
- });
-
- oldCols.forEach(function (column, i) {
- var from = self._findColumn(newCols, column);
- if (!from) {
- if (output.length > i) {
- output.splice(i, 0, column);
- } else {
- output.push(column);
- }
- }
- });
-
- return output;
- };
-
- //find matching columns
- Persistence.prototype._findColumn = function (columns, subject) {
- var type = subject.columns ? "group" : subject.field ? "field" : "object";
-
- return columns.find(function (col) {
- switch (type) {
- case "group":
- return col.title === subject.title && col.columns.length === subject.columns.length;
- break;
-
- case "field":
- return col.field === subject.field;
- break;
-
- case "object":
- return col === subject;
- break;
- }
- });
- };
-
- //save data
- Persistence.prototype.save = function (type) {
- var data = {};
-
- switch (type) {
- case "columns":
- data = this.parseColumns(this.table.columnManager.getColumns());
- break;
-
- case "filter":
- data = this.table.modules.filter.getFilters();
- break;
-
- case "sort":
- data = this.validateSorters(this.table.modules.sort.getSort());
- break;
-
- case "group":
- data = this.getGroupConfig();
- break;
-
- case "page":
- data = this.getPageConfig();
- break;
- }
-
- if (this.writeFunc) {
- this.writeFunc(this.id, type, data);
- }
- };
-
- //ensure sorters contain no function data
- Persistence.prototype.validateSorters = function (data) {
- data.forEach(function (item) {
- item.column = item.field;
- delete item.field;
- });
-
- return data;
- };
-
- Persistence.prototype.getGroupConfig = function () {
- if (this.config.group) {
- if (this.config.group === true || this.config.group.groupBy) {
- data.groupBy = this.table.options.groupBy;
- }
-
- if (this.config.group === true || this.config.group.groupStartOpen) {
- data.groupStartOpen = this.table.options.groupStartOpen;
- }
-
- if (this.config.group === true || this.config.group.groupHeader) {
- data.groupHeader = this.table.options.groupHeader;
- }
- }
-
- return data;
- };
-
- Persistence.prototype.getPageConfig = function () {
- var data = {};
-
- if (this.config.page) {
- if (this.config.page === true || this.config.page.size) {
- data.paginationSize = this.table.modules.page.getPageSize();
- }
-
- if (this.config.page === true || this.config.page.page) {
- data.paginationInitialPage = this.table.modules.page.getPage();
- }
- }
-
- return data;
- };
-
- //parse columns for data to store
- Persistence.prototype.parseColumns = function (columns) {
- var self = this,
- definitions = [];
-
- columns.forEach(function (column) {
- var defStore = {},
- colDef = column.getDefinition(),
- keys;
-
- if (column.isGroup) {
- defStore.title = colDef.title;
- defStore.columns = self.parseColumns(column.getColumns());
- } else {
- defStore.field = column.getField();
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(colDef);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
-
- switch (key) {
- case "width":
- defStore.width = column.getWidth();
- break;
- case "visible":
- defStore.visible = column.visible;
- break;
-
- default:
- defStore[key] = colDef[key];
- }
- });
- }
-
- definitions.push(defStore);
- });
-
- return definitions;
- };
-
- // read peristence information from storage
- Persistence.prototype.readers = {
- local: function local(id, type) {
- var data = localStorage.getItem(id + "-" + type);
-
- return data ? JSON.parse(data) : false;
- },
- cookie: function cookie(id, type) {
- var cookie = document.cookie,
- key = id + "-" + type,
- cookiePos = cookie.indexOf(key + "="),
- end,
- data;
-
- //if cookie exists, decode and load column data into tabulator
- if (cookiePos > -1) {
- cookie = cookie.substr(cookiePos);
-
- end = cookie.indexOf(";");
-
- if (end > -1) {
- cookie = cookie.substr(0, end);
- }
-
- data = cookie.replace(key + "=", "");
- }
-
- return data ? JSON.parse(data) : false;
- }
- };
-
- //write persistence information to storage
- Persistence.prototype.writers = {
- local: function local(id, type, data) {
- localStorage.setItem(id + "-" + type, JSON.stringify(data));
- },
- cookie: function cookie(id, type, data) {
- var expireDate = new Date();
-
- expireDate.setDate(expireDate.getDate() + 10000);
-
- document.cookie = id + "-" + type + "=" + JSON.stringify(data) + "; expires=" + expireDate.toUTCString();
- }
- };
-
- Tabulator.prototype.registerModule("persistence", Persistence);
-
- var Print = function Print(table) {
- this.table = table; //hold Tabulator object
- this.element = false;
- this.manualBlock = false;
- };
-
- Print.prototype.initialize = function () {
- window.addEventListener("beforeprint", this.replaceTable.bind(this));
- window.addEventListener("afterprint", this.cleanup.bind(this));
- };
-
- Print.prototype.replaceTable = function () {
- if (!this.manualBlock) {
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-table");
-
- this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig, this.table.options.printStyled, this.table.options.printRowRange, "print"));
-
- this.table.element.style.display = "none";
-
- this.table.element.parentNode.insertBefore(this.element, this.table.element);
- }
- };
-
- Print.prototype.cleanup = function () {
- document.body.classList.remove("tabulator-print-fullscreen-hide");
-
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- this.table.element.style.display = "";
- }
- };
-
- Print.prototype.printFullscreen = function (visible, style, config) {
- var scrollX = window.scrollX,
- scrollY = window.scrollY,
- headerEl = document.createElement("div"),
- footerEl = document.createElement("div"),
- tableEl = this.table.modules.export.genereateTable(typeof config != "undefined" ? config : this.table.options.printConfig, typeof style != "undefined" ? style : this.table.options.printStyled, visible, "print"),
- headerContent,
- footerContent;
-
- this.manualBlock = true;
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-fullscreen");
-
- if (this.table.options.printHeader) {
- headerEl.classList.add("tabulator-print-header");
-
- headerContent = typeof this.table.options.printHeader == "function" ? this.table.options.printHeader.call(this.table) : this.table.options.printHeader;
-
- if (typeof headerContent == "string") {
- headerEl.innerHTML = headerContent;
- } else {
- headerEl.appendChild(headerContent);
- }
-
- this.element.appendChild(headerEl);
- }
-
- this.element.appendChild(tableEl);
-
- if (this.table.options.printFooter) {
- footerEl.classList.add("tabulator-print-footer");
-
- footerContent = typeof this.table.options.printFooter == "function" ? this.table.options.printFooter.call(this.table) : this.table.options.printFooter;
-
- if (typeof footerContent == "string") {
- footerEl.innerHTML = footerContent;
- } else {
- footerEl.appendChild(footerContent);
- }
-
- this.element.appendChild(footerEl);
- }
-
- document.body.classList.add("tabulator-print-fullscreen-hide");
- document.body.appendChild(this.element);
-
- if (this.table.options.printFormatter) {
- this.table.options.printFormatter(this.element, tableEl);
- }
-
- window.print();
-
- this.cleanup();
-
- window.scrollTo(scrollX, scrollY);
-
- this.manualBlock = false;
- };
-
- Tabulator.prototype.registerModule("print", Print);
- var ReactiveData = function ReactiveData(table) {
- this.table = table; //hold Tabulator object
- this.data = false;
- this.blocked = false; //block reactivity while performing update
- this.origFuncs = {}; // hold original data array functions to allow replacement after data is done with
- this.currentVersion = 0;
- };
-
- ReactiveData.prototype.watchData = function (data) {
- var self = this,
- pushFunc,
- version;
-
- this.currentVersion++;
-
- version = this.currentVersion;
-
- self.unwatchData();
-
- self.data = data;
-
- //override array push function
- self.origFuncs.push = data.push;
-
- Object.defineProperty(self.data, "push", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, false);
- });
- }
-
- return self.origFuncs.push.apply(data, arguments);
- }
- });
-
- //override array unshift function
- self.origFuncs.unshift = data.unshift;
-
- Object.defineProperty(self.data, "unshift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, true);
- });
- }
-
- return self.origFuncs.unshift.apply(data, arguments);
- }
- });
-
- //override array shift function
- self.origFuncs.shift = data.shift;
-
- Object.defineProperty(self.data, "shift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
-
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[0]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
-
- return self.origFuncs.shift.call(data);
- }
- });
-
- //override array pop function
- self.origFuncs.pop = data.pop;
-
- Object.defineProperty(self.data, "pop", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
- return self.origFuncs.pop.call(data);
- }
- });
-
- //override array splice function
- self.origFuncs.splice = data.splice;
-
- Object.defineProperty(self.data, "splice", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments),
- start = args[0] < 0 ? data.length + args[0] : args[0],
- end = args[1],
- newRows = args[2] ? args.slice(2) : false,
- startRow;
-
- if (!self.blocked && version === self.currentVersion) {
-
- //add new rows
- if (newRows) {
- startRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false;
-
- if (startRow) {
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, startRow, true);
- });
- } else {
- newRows = newRows.slice().reverse();
-
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, false, true);
- });
- }
- }
-
- //delete removed rows
- if (end !== 0) {
- var oldRows = data.slice(start, typeof args[1] === "undefined" ? args[1] : start + end);
-
- oldRows.forEach(function (rowData, i) {
- var row = self.table.rowManager.getRowFromDataObject(rowData);
-
- if (row) {
- row.deleteActual(i !== oldRows.length - 1);
- }
- });
- }
-
- if (newRows || end !== 0) {
- self.table.rowManager.reRenderInPosition();
- }
- }
-
- return self.origFuncs.splice.apply(data, arguments);
- }
- });
- };
-
- ReactiveData.prototype.unwatchData = function () {
- if (this.data !== false) {
- for (var key in this.origFuncs) {
- Object.defineProperty(this.data, key, {
- enumerable: true,
- configurable: true,
- writable: true,
- value: this.origFuncs.key
- });
- }
- }
- };
-
- ReactiveData.prototype.watchRow = function (row) {
- var self = this,
- data = row.getData();
-
- this.blocked = true;
-
- for (var key in data) {
- this.watchKey(row, data, key);
- }
-
- this.blocked = false;
- };
-
- ReactiveData.prototype.watchKey = function (row, data, key) {
- var self = this,
- props = Object.getOwnPropertyDescriptor(data, key),
- value = data[key],
- version = this.currentVersion;
-
- Object.defineProperty(data, key, {
- set: function set(newValue) {
- value = newValue;
- if (!self.blocked && version === self.currentVersion) {
- var update = {};
- update[key] = newValue;
- row.updateData(update);
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
-
- if (props.get) {
- props.get();
- }
-
- return value;
- }
- });
- };
-
- ReactiveData.prototype.unwatchRow = function (row) {
- var data = row.getData();
-
- for (var key in data) {
- Object.defineProperty(data, key, {
- value: data[key]
- });
- }
- };
-
- ReactiveData.prototype.block = function () {
- this.blocked = true;
- };
-
- ReactiveData.prototype.unblock = function () {
- this.blocked = false;
- };
-
- Tabulator.prototype.registerModule("reactiveData", ReactiveData);
-
- var ResizeColumns = function ResizeColumns(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startX = false;
- this.startWidth = false;
- this.handle = null;
- this.prevHandle = null;
- };
-
- ResizeColumns.prototype.initializeColumn = function (type, column, element) {
- var self = this,
- variableHeight = false,
- mode = this.table.options.resizableColumns;
-
- //set column resize mode
- if (type === "header") {
- variableHeight = column.definition.formatter == "textarea" || column.definition.variableHeight;
- column.modules.resize = { variableHeight: variableHeight };
- }
-
- if (mode === true || mode == type) {
-
- var handle = document.createElement('div');
- handle.className = "tabulator-col-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-col-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- var nearestColumn = column.getLastColumn();
-
- if (nearestColumn && self._checkResizability(nearestColumn)) {
- self.startColumn = column;
- self._mouseDown(e, nearestColumn, handle);
- }
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- //reszie column on double click
- handle.addEventListener("dblclick", function (e) {
- var col = column.getLastColumn();
-
- if (col && self._checkResizability(col)) {
- e.stopPropagation();
- col.reinitializeWidth(true);
- }
- });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- self.startColumn = column;
- self._mouseDown(e, prevColumn, prevHandle);
- }
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- //resize column on double click
- prevHandle.addEventListener("dblclick", function (e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- e.stopPropagation();
- prevColumn.reinitializeWidth(true);
- }
- }
- });
-
- element.appendChild(handle);
- element.appendChild(prevHandle);
- }
- };
-
- ResizeColumns.prototype._checkResizability = function (column) {
- return typeof column.definition.resizable != "undefined" ? column.definition.resizable : this.table.options.resizableColumns;
- };
-
- ResizeColumns.prototype._mouseDown = function (e, column, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- // self.table.columnManager.tempScrollBlock();
-
- column.setWidth(self.startWidth + ((typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX) - self.startX));
-
- if (!self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
- }
-
- function mouseUp(e) {
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = false;
- }
-
- if (self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
-
- document.body.removeEventListener("mouseup", mouseUp);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.columns) {
- self.table.modules.persistence.save("columns");
- }
-
- self.table.options.columnResized.call(self.table, column.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = true;
- }
-
- self.startX = typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX;
- self.startWidth = column.getWidth();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
- };
-
- Tabulator.prototype.registerModule("resizeColumns", ResizeColumns);
- var ResizeRows = function ResizeRows(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startY = false;
- this.startHeight = false;
- this.handle = null;
- this.prevHandle = null;
- };
-
- ResizeRows.prototype.initializeRow = function (row) {
- var self = this,
- rowEl = row.getElement();
-
- var handle = document.createElement('div');
- handle.className = "tabulator-row-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-row-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- self.startRow = row;
- self._mouseDown(e, row, handle);
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var prevRow = self.table.rowManager.prevDisplayRow(row);
-
- if (prevRow) {
- self.startRow = prevRow;
- self._mouseDown(e, prevRow, prevHandle);
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- rowEl.appendChild(handle);
- rowEl.appendChild(prevHandle);
- };
-
- ResizeRows.prototype._mouseDown = function (e, row, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- row.setHeight(self.startHeight + ((typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY) - self.startY));
- }
-
- function mouseUp(e) {
-
- // //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = false;
- // }
-
- document.body.removeEventListener("mouseup", mouseMove);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- self.table.options.rowResized.call(this.table, row.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = true;
- // }
-
- self.startY = typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY;
- self.startHeight = row.getHeight();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
-
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
- };
-
- Tabulator.prototype.registerModule("resizeRows", ResizeRows);
- var ResizeTable = function ResizeTable(table) {
- this.table = table; //hold Tabulator object
- this.binding = false;
- this.observer = false;
- this.containerObserver = false;
-
- this.tableHeight = 0;
- this.tableWidth = 0;
- this.containerHeight = 0;
- this.containerWidth = 0;
-
- this.autoResize = false;
- };
-
- ResizeTable.prototype.initialize = function (row) {
- var _this70 = this;
-
- var table = this.table,
- tableStyle;
-
- this.tableHeight = table.element.clientHeight;
- this.tableWidth = table.element.clientWidth;
-
- if (table.element.parentNode) {
- this.containerHeight = table.element.parentNode.clientHeight;
- this.containerWidth = table.element.parentNode.clientWidth;
- }
-
- if (typeof ResizeObserver !== "undefined" && table.rowManager.getRenderMode() === "virtual") {
-
- this.autoResize = true;
-
- this.observer = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this70.tableHeight != nodeHeight || _this70.tableWidth != nodeWidth) {
- _this70.tableHeight = nodeHeight;
- _this70.tableWidth = nodeWidth;
-
- if (table.element.parentNode) {
- _this70.containerHeight = table.element.parentNode.clientHeight;
- _this70.containerWidth = table.element.parentNode.clientWidth;
- }
-
- table.redraw();
- }
- }
- });
-
- this.observer.observe(table.element);
-
- tableStyle = window.getComputedStyle(table.element);
-
- if (this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue("max-height") || tableStyle.getPropertyValue("min-height"))) {
-
- this.containerObserver = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this70.containerHeight != nodeHeight || _this70.containerWidth != nodeWidth) {
- _this70.containerHeight = nodeHeight;
- _this70.containerWidth = nodeWidth;
- _this70.tableHeight = table.element.clientHeight;
- _this70.tableWidth = table.element.clientWidth;
-
- table.redraw();
- }
-
- table.redraw();
- }
- });
-
- this.containerObserver.observe(this.table.element.parentNode);
- }
- } else {
- this.binding = function () {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
- table.redraw();
- }
- };
-
- window.addEventListener("resize", this.binding);
- }
- };
-
- ResizeTable.prototype.clearBindings = function (row) {
- if (this.binding) {
- window.removeEventListener("resize", this.binding);
- }
-
- if (this.observer) {
- this.observer.unobserve(this.table.element);
- }
-
- if (this.containerObserver) {
- this.containerObserver.unobserve(this.table.element.parentNode);
- }
- };
-
- Tabulator.prototype.registerModule("resizeTable", ResizeTable);
- var ResponsiveLayout = function ResponsiveLayout(table) {
- this.table = table; //hold Tabulator object
- this.columns = [];
- this.hiddenColumns = [];
- this.mode = "";
- this.index = 0;
- this.collapseFormatter = [];
- this.collapseStartOpen = true;
- this.collapseHandleColumn = false;
- };
-
- //generate resposive columns list
- ResponsiveLayout.prototype.initialize = function () {
- var self = this,
- columns = [];
-
- this.mode = this.table.options.responsiveLayout;
- this.collapseFormatter = this.table.options.responsiveLayoutCollapseFormatter || this.formatCollapsedData;
- this.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen;
- this.hiddenColumns = [];
-
- //detemine level of responsivity for each column
- this.table.columnManager.columnsByIndex.forEach(function (column, i) {
- if (column.modules.responsive) {
- if (column.modules.responsive.order && column.modules.responsive.visible) {
- column.modules.responsive.index = i;
- columns.push(column);
-
- if (!column.visible && self.mode === "collapse") {
- self.hiddenColumns.push(column);
- }
- }
- }
- });
-
- //sort list by responsivity
- columns = columns.reverse();
- columns = columns.sort(function (a, b) {
- var diff = b.modules.responsive.order - a.modules.responsive.order;
- return diff || b.modules.responsive.index - a.modules.responsive.index;
- });
-
- this.columns = columns;
-
- if (this.mode === "collapse") {
- this.generateCollapsedContent();
- }
-
- //assign collapse column
- for (var _iterator = this.table.columnManager.columnsByIndex, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
- var _ref;
-
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref = _i.value;
- }
-
- var col = _ref;
-
- if (col.definition.formatter == "responsiveCollapse") {
- this.collapseHandleColumn = col;
- break;
- }
- }
-
- if (this.collapseHandleColumn) {
- if (this.hiddenColumns.length) {
- this.collapseHandleColumn.show();
- } else {
- this.collapseHandleColumn.hide();
- }
- }
- };
-
- //define layout information
- ResponsiveLayout.prototype.initializeColumn = function (column) {
- var def = column.getDefinition();
-
- column.modules.responsive = { order: typeof def.responsive === "undefined" ? 1 : def.responsive, visible: def.visible === false ? false : true };
- };
-
- ResponsiveLayout.prototype.initializeRow = function (row) {
- var el;
-
- if (row.type !== "calc") {
- el = document.createElement("div");
- el.classList.add("tabulator-responsive-collapse");
-
- row.modules.responsiveLayout = {
- element: el,
- open: this.collapseStartOpen
- };
-
- if (!this.collapseStartOpen) {
- el.style.display = 'none';
- }
- }
- };
-
- ResponsiveLayout.prototype.layoutRow = function (row) {
- var rowEl = row.getElement();
-
- if (row.modules.responsiveLayout) {
- rowEl.appendChild(row.modules.responsiveLayout.element);
- this.generateCollapsedRowContent(row);
- }
- };
-
- //update column visibility
- ResponsiveLayout.prototype.updateColumnVisibility = function (column, visible) {
- var index;
- if (column.modules.responsive) {
- column.modules.responsive.visible = visible;
- this.initialize();
- }
- };
-
- ResponsiveLayout.prototype.hideColumn = function (column) {
- var colCount = this.hiddenColumns.length;
-
- column.hide(false, true);
-
- if (this.mode === "collapse") {
- this.hiddenColumns.unshift(column);
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !colCount) {
- this.collapseHandleColumn.show();
- }
- }
- };
-
- ResponsiveLayout.prototype.showColumn = function (column) {
- var index;
-
- column.show(false, true);
- //set column width to prevent calculation loops on uninitialized columns
- column.setWidth(column.getWidth());
-
- if (this.mode === "collapse") {
- index = this.hiddenColumns.indexOf(column);
-
- if (index > -1) {
- this.hiddenColumns.splice(index, 1);
- }
-
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !this.hiddenColumns.length) {
- this.collapseHandleColumn.hide();
- }
- }
- };
-
- //redraw columns to fit space
- ResponsiveLayout.prototype.update = function () {
- var self = this,
- working = true;
-
- while (working) {
-
- var width = self.table.modules.layout.getMode() == "fitColumns" ? self.table.columnManager.getFlexBaseWidth() : self.table.columnManager.getWidth();
-
- var diff = (self.table.options.headerVisible ? self.table.columnManager.element.clientWidth : self.table.element.clientWidth) - width;
-
- if (diff < 0) {
- //table is too wide
- var column = self.columns[self.index];
-
- if (column) {
- self.hideColumn(column);
- self.index++;
- } else {
- working = false;
- }
- } else {
-
- //table has spare space
- var _column = self.columns[self.index - 1];
-
- if (_column) {
- if (diff > 0) {
- if (diff >= _column.getWidth()) {
- self.showColumn(_column);
- self.index--;
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- }
-
- if (!self.table.rowManager.activeRowsCount) {
- self.table.rowManager.renderEmptyScroll();
- }
- }
- };
-
- ResponsiveLayout.prototype.generateCollapsedContent = function () {
- var self = this,
- rows = this.table.rowManager.getDisplayRows();
-
- rows.forEach(function (row) {
- self.generateCollapsedRowContent(row);
- });
- };
-
- ResponsiveLayout.prototype.generateCollapsedRowContent = function (row) {
- var el, contents;
-
- if (row.modules.responsiveLayout) {
- el = row.modules.responsiveLayout.element;
-
- while (el.firstChild) {
- el.removeChild(el.firstChild);
- }contents = this.collapseFormatter(this.generateCollapsedRowData(row));
- if (contents) {
- el.appendChild(contents);
- }
- }
- };
-
- ResponsiveLayout.prototype.generateCollapsedRowData = function (row) {
- var self = this,
- data = row.getData(),
- output = [],
- mockCellComponent;
-
- this.hiddenColumns.forEach(function (column) {
- var value = column.getFieldValue(data);
-
- if (column.definition.title && column.field) {
- if (column.modules.format && self.table.options.responsiveLayoutCollapseUseFormatters) {
-
- mockCellComponent = {
- value: false,
- data: {},
- getValue: function getValue() {
- return value;
- },
- getData: function getData() {
- return data;
- },
- getElement: function getElement() {
- return document.createElement("div");
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getColumn: function getColumn() {
- return column.getComponent();
- }
- };
-
- output.push({
- title: column.definition.title,
- value: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params)
- });
- } else {
- output.push({
- title: column.definition.title,
- value: value
- });
- }
- }
- });
-
- return output;
- };
-
- ResponsiveLayout.prototype.formatCollapsedData = function (data) {
- var list = document.createElement("table"),
- listContents = "";
-
- data.forEach(function (item) {
- var div = document.createElement("div");
-
- if (item.value instanceof Node) {
- div.appendChild(item.value);
- item.value = div.innerHTML;
- }
-
- listContents += "<tr><td><strong>" + item.title + "</strong></td><td>" + item.value + "</td></tr>";
- });
-
- list.innerHTML = listContents;
-
- return Object.keys(data).length ? list : "";
- };
-
- Tabulator.prototype.registerModule("responsiveLayout", ResponsiveLayout);
-
- var SelectRow = function SelectRow(table) {
- this.table = table; //hold Tabulator object
- this.selecting = false; //flag selecting in progress
- this.lastClickedRow = false; //last clicked row
- this.selectPrev = []; //hold previously selected element for drag drop selection
- this.selectedRows = []; //hold selected rows
- this.headerCheckboxElement = null; // hold header select element
- };
-
- SelectRow.prototype.clearSelectionData = function (silent) {
- this.selecting = false;
- this.lastClickedRow = false;
- this.selectPrev = [];
- this.selectedRows = [];
-
- if (!silent) {
- this._rowSelectionChanged();
- }
- };
-
- SelectRow.prototype.initializeRow = function (row) {
- var self = this,
- element = row.getElement();
-
- // trigger end of row selection
- var endSelect = function endSelect() {
-
- setTimeout(function () {
- self.selecting = false;
- }, 50);
-
- document.body.removeEventListener("mouseup", endSelect);
- };
-
- row.modules.select = { selected: false };
-
- //set row selection class
- if (self.table.options.selectableCheck.call(this.table, row.getComponent())) {
- element.classList.add("tabulator-selectable");
- element.classList.remove("tabulator-unselectable");
-
- if (self.table.options.selectable && self.table.options.selectable != "highlight") {
- if (self.table.options.selectableRangeMode === "click") {
- element.addEventListener("click", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
- self.lastClickedRow = self.lastClickedRow || row;
-
- var lastClickedRowIdx = self.table.rowManager.getDisplayRowIndex(self.lastClickedRow);
- var rowIdx = self.table.rowManager.getDisplayRowIndex(row);
-
- var fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx;
- var toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx;
-
- var rows = self.table.rowManager.getDisplayRows().slice(0);
- var toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1);
-
- if (e.ctrlKey || e.metaKey) {
- toggledRows.forEach(function (toggledRow) {
- if (toggledRow !== self.lastClickedRow) {
-
- if (self.table.options.selectable !== true && !self.isRowSelected(row)) {
- if (self.selectedRows.length < self.table.options.selectable) {
- self.toggleRow(toggledRow);
- }
- } else {
- self.toggleRow(toggledRow);
- }
- }
- });
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
-
- if (self.table.options.selectable !== true) {
- if (toggledRows.length > self.table.options.selectable) {
- toggledRows = toggledRows.slice(0, self.table.options.selectable);
- }
- }
-
- self.selectRows(toggledRows);
- }
- self.table._clearSelection();
- } else if (e.ctrlKey || e.metaKey) {
- self.toggleRow(row);
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
- self.selectRows(row);
- self.lastClickedRow = row;
- }
- });
- } else {
- element.addEventListener("click", function (e) {
- if (!self.table.modExists("edit") || !self.table.modules.edit.getCurrentCell()) {
- self.table._clearSelection();
- }
-
- if (!self.selecting) {
- self.toggleRow(row);
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
-
- self.selecting = true;
-
- self.selectPrev = [];
-
- document.body.addEventListener("mouseup", endSelect);
- document.body.addEventListener("keyup", endSelect);
-
- self.toggleRow(row);
-
- return false;
- }
- });
-
- element.addEventListener("mouseenter", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.toggleRow(row);
-
- if (self.selectPrev[1] == row) {
- self.toggleRow(self.selectPrev[0]);
- }
- }
- });
-
- element.addEventListener("mouseout", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.selectPrev.unshift(row);
- }
- });
- }
- }
- } else {
- element.classList.add("tabulator-unselectable");
- element.classList.remove("tabulator-selectable");
- }
- };
-
- //toggle row selection
- SelectRow.prototype.toggleRow = function (row) {
- if (this.table.options.selectableCheck.call(this.table, row.getComponent())) {
- if (row.modules.select && row.modules.select.selected) {
- this._deselectRow(row);
- } else {
- this._selectRow(row);
- }
- }
- };
-
- //select a number of rows
- SelectRow.prototype.selectRows = function (rows) {
- var _this71 = this;
-
- var rowMatch;
-
- switch (typeof rows === 'undefined' ? 'undefined' : _typeof(rows)) {
- case "undefined":
- this.table.rowManager.rows.forEach(function (row) {
- _this71._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- break;
-
- case "string":
-
- rowMatch = this.table.rowManager.findRow(rows);
-
- if (rowMatch) {
- this._selectRow(rowMatch, true, true);
- } else {
- this.table.rowManager.getRows(rows).forEach(function (row) {
- _this71._selectRow(row, true, true);
- });
- }
-
- this._rowSelectionChanged();
- break;
-
- default:
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- _this71._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- } else {
- this._selectRow(rows, false, true);
- }
- break;
- }
- };
-
- //select an individual row
- SelectRow.prototype._selectRow = function (rowInfo, silent, force) {
- var index;
-
- //handle max row count
- if (!isNaN(this.table.options.selectable) && this.table.options.selectable !== true && !force) {
- if (this.selectedRows.length >= this.table.options.selectable) {
- if (this.table.options.selectableRollingSelection) {
- this._deselectRow(this.selectedRows[0]);
- } else {
- return false;
- }
- }
- }
-
- var row = this.table.rowManager.findRow(rowInfo);
-
- if (row) {
- if (this.selectedRows.indexOf(row) == -1) {
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = true;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = true;
- }
- row.getElement().classList.add("tabulator-selected");
-
- this.selectedRows.push(row);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, true);
- }
-
- if (!silent) {
- this.table.options.rowSelected.call(this.table, row.getComponent());
- }
-
- this._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Selection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
- };
-
- SelectRow.prototype.isRowSelected = function (row) {
- return this.selectedRows.indexOf(row) !== -1;
- };
-
- //deselect a number of rows
- SelectRow.prototype.deselectRows = function (rows, silent) {
- var self = this,
- rowCount;
-
- if (typeof rows == "undefined") {
-
- rowCount = self.selectedRows.length;
-
- for (var i = 0; i < rowCount; i++) {
- self._deselectRow(self.selectedRows[0], true);
- }
-
- self._rowSelectionChanged(silent);
- } else {
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- self._deselectRow(row, true);
- });
-
- self._rowSelectionChanged(silent);
- } else {
- self._deselectRow(rows, silent);
- }
- }
- };
-
- //deselect an individual row
- SelectRow.prototype._deselectRow = function (rowInfo, silent) {
- var self = this,
- row = self.table.rowManager.findRow(rowInfo),
- index;
-
- if (row) {
- index = self.selectedRows.findIndex(function (selectedRow) {
- return selectedRow == row;
- });
-
- if (index > -1) {
-
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = false;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = false;
- }
- row.getElement().classList.remove("tabulator-selected");
- self.selectedRows.splice(index, 1);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, false);
- }
-
- if (!silent) {
- self.table.options.rowDeselected.call(this.table, row.getComponent());
- }
-
- self._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Deselection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
- };
-
- SelectRow.prototype.getSelectedData = function () {
- var data = [];
-
- this.selectedRows.forEach(function (row) {
- data.push(row.getData());
- });
-
- return data;
- };
-
- SelectRow.prototype.getSelectedRows = function () {
-
- var rows = [];
-
- this.selectedRows.forEach(function (row) {
- rows.push(row.getComponent());
- });
-
- return rows;
- };
-
- SelectRow.prototype._rowSelectionChanged = function (silent) {
- if (this.headerCheckboxElement) {
- if (this.selectedRows.length === 0) {
- this.headerCheckboxElement.checked = false;
- this.headerCheckboxElement.indeterminate = false;
- } else if (this.table.rowManager.rows.length === this.selectedRows.length) {
- this.headerCheckboxElement.checked = true;
- this.headerCheckboxElement.indeterminate = false;
- } else {
- this.headerCheckboxElement.indeterminate = true;
- this.headerCheckboxElement.checked = false;
- }
- }
-
- if (!silent) {
- this.table.options.rowSelectionChanged.call(this.table, this.getSelectedData(), this.getSelectedRows());
- }
- };
-
- SelectRow.prototype.registerRowSelectCheckbox = function (row, element) {
- if (!row._row.modules.select) {
- row._row.modules.select = {};
- }
-
- row._row.modules.select.checkboxEl = element;
- };
-
- SelectRow.prototype.registerHeaderSelectCheckbox = function (element) {
- this.headerCheckboxElement = element;
- };
-
- SelectRow.prototype.childRowSelection = function (row, select) {
- var children = this.table.modules.dataTree.getChildren(row);
-
- if (select) {
- for (var _iterator2 = children, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
- var _ref2;
-
- if (_isArray2) {
- if (_i2 >= _iterator2.length) break;
- _ref2 = _iterator2[_i2++];
- } else {
- _i2 = _iterator2.next();
- if (_i2.done) break;
- _ref2 = _i2.value;
- }
-
- var child = _ref2;
-
- this._selectRow(child, true);
- }
- } else {
- for (var _iterator3 = children, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
- var _ref3;
-
- if (_isArray3) {
- if (_i3 >= _iterator3.length) break;
- _ref3 = _iterator3[_i3++];
- } else {
- _i3 = _iterator3.next();
- if (_i3.done) break;
- _ref3 = _i3.value;
- }
-
- var _child = _ref3;
-
- this._deselectRow(_child, true);
- }
- }
- };
-
- Tabulator.prototype.registerModule("selectRow", SelectRow);
-
- var Sort = function Sort(table) {
- this.table = table; //hold Tabulator object
- this.sortList = []; //holder current sort
- this.changed = false; //has the sort changed since last render
- };
-
- //initialize column header for sorting
- Sort.prototype.initializeColumn = function (column, content) {
- var self = this,
- sorter = false,
- colEl,
- arrowEl;
-
- switch (_typeof(column.definition.sorter)) {
- case "string":
- if (self.sorters[column.definition.sorter]) {
- sorter = self.sorters[column.definition.sorter];
- } else {
- console.warn("Sort Error - No such sorter found: ", column.definition.sorter);
- }
- break;
-
- case "function":
- sorter = column.definition.sorter;
- break;
- }
-
- column.modules.sort = {
- sorter: sorter, dir: "none",
- params: column.definition.sorterParams || {},
- startingDir: column.definition.headerSortStartingDir || "asc",
- tristate: typeof column.definition.headerSortTristate !== "undefined" ? column.definition.headerSortTristate : this.table.options.headerSortTristate
- };
-
- if (typeof column.definition.headerSort === "undefined" ? this.table.options.headerSort !== false : column.definition.headerSort !== false) {
-
- colEl = column.getElement();
-
- colEl.classList.add("tabulator-sortable");
-
- arrowEl = document.createElement("div");
- arrowEl.classList.add("tabulator-arrow");
- //create sorter arrow
- content.appendChild(arrowEl);
-
- //sort on click
- colEl.addEventListener("click", function (e) {
- var dir = "",
- sorters = [],
- match = false;
-
- if (column.modules.sort) {
- if (column.modules.sort.tristate) {
- if (column.modules.sort.dir == "none") {
- dir = column.modules.sort.startingDir;
- } else {
- if (column.modules.sort.dir == column.modules.sort.startingDir) {
- dir = column.modules.sort.dir == "asc" ? "desc" : "asc";
- } else {
- dir = "none";
- }
- }
- } else {
- switch (column.modules.sort.dir) {
- case "asc":
- dir = "desc";
- break;
-
- case "desc":
- dir = "asc";
- break;
-
- default:
- dir = column.modules.sort.startingDir;
- }
- }
-
- if (self.table.options.columnHeaderSortMulti && (e.shiftKey || e.ctrlKey)) {
- sorters = self.getSort();
-
- match = sorters.findIndex(function (sorter) {
- return sorter.field === column.getField();
- });
-
- if (match > -1) {
- sorters[match].dir = dir;
-
- if (match != sorters.length - 1) {
- match = sorters.splice(match, 1)[0];
- if (dir != "none") {
- sorters.push(match);
- }
- }
- } else {
- if (dir != "none") {
- sorters.push({ column: column, dir: dir });
- }
- }
-
- //add to existing sort
- self.setSort(sorters);
- } else {
- if (dir == "none") {
- self.clear();
- } else {
- //sort by column only
- self.setSort(column, dir);
- }
- }
-
- self.table.rowManager.sorterRefresh(!self.sortList.length);
- }
- });
- }
- };
-
- //check if the sorters have changed since last use
- Sort.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
- };
-
- //return current sorters
- Sort.prototype.getSort = function () {
- var self = this,
- sorters = [];
-
- self.sortList.forEach(function (item) {
- if (item.column) {
- sorters.push({ column: item.column.getComponent(), field: item.column.getField(), dir: item.dir });
- }
- });
-
- return sorters;
- };
-
- //change sort list and trigger sort
- Sort.prototype.setSort = function (sortList, dir) {
- var self = this,
- newSortList = [];
-
- if (!Array.isArray(sortList)) {
- sortList = [{ column: sortList, dir: dir }];
- }
-
- sortList.forEach(function (item) {
- var column;
-
- column = self.table.columnManager.findColumn(item.column);
-
- if (column) {
- item.column = column;
- newSortList.push(item);
- self.changed = true;
- } else {
- console.warn("Sort Warning - Sort field does not exist and is being ignored: ", item.column);
- }
- });
-
- self.sortList = newSortList;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.sort) {
- this.table.modules.persistence.save("sort");
- }
- };
-
- //clear sorters
- Sort.prototype.clear = function () {
- this.setSort([]);
- };
-
- //find appropriate sorter for column
- Sort.prototype.findSorter = function (column) {
- var row = this.table.rowManager.activeRows[0],
- sorter = "string",
- field,
- value;
-
- if (row) {
- row = row.getData();
- field = column.getField();
-
- if (field) {
-
- value = column.getFieldValue(row);
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "undefined":
- sorter = "string";
- break;
-
- case "boolean":
- sorter = "boolean";
- break;
-
- default:
- if (!isNaN(value) && value !== "") {
- sorter = "number";
- } else {
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
- sorter = "alphanum";
- }
- }
- break;
- }
- }
- }
-
- return this.sorters[sorter];
- };
-
- //work through sort list sorting data
- Sort.prototype.sort = function (data) {
- var self = this,
- sortList = this.table.options.sortOrderReverse ? self.sortList.slice().reverse() : self.sortList,
- sortListActual = [],
- lastSort;
-
- if (self.table.options.dataSorting) {
- self.table.options.dataSorting.call(self.table, self.getSort());
- }
-
- self.clearColumnHeaders();
-
- if (!self.table.options.ajaxSorting) {
-
- //build list of valid sorters and trigger column specific callbacks before sort begins
- sortList.forEach(function (item, i) {
- var sortObj = item.column.modules.sort;
-
- if (item.column && sortObj) {
-
- //if no sorter has been defined, take a guess
- if (!sortObj.sorter) {
- sortObj.sorter = self.findSorter(item.column);
- }
-
- item.params = typeof sortObj.params === "function" ? sortObj.params(item.column.getComponent(), item.dir) : sortObj.params;
-
- sortListActual.push(item);
- }
-
- self.setColumnHeader(item.column, item.dir);
- });
-
- //sort data
- if (sortListActual.length) {
- self._sortItems(data, sortListActual);
- }
- } else {
- sortList.forEach(function (item, i) {
- self.setColumnHeader(item.column, item.dir);
- });
- }
-
- if (self.table.options.dataSorted) {
- self.table.options.dataSorted.call(self.table, self.getSort(), self.table.rowManager.getComponents("active"));
- }
- };
-
- //clear sort arrows on columns
- Sort.prototype.clearColumnHeaders = function () {
- this.table.columnManager.getRealColumns().forEach(function (column) {
- if (column.modules.sort) {
- column.modules.sort.dir = "none";
- column.getElement().setAttribute("aria-sort", "none");
- }
- });
- };
-
- //set the column header sort direction
- Sort.prototype.setColumnHeader = function (column, dir) {
- column.modules.sort.dir = dir;
- column.getElement().setAttribute("aria-sort", dir);
- };
-
- //sort each item in sort list
- Sort.prototype._sortItems = function (data, sortList) {
- var _this72 = this;
-
- var sorterCount = sortList.length - 1;
-
- data.sort(function (a, b) {
- var result;
-
- for (var i = sorterCount; i >= 0; i--) {
- var sortItem = sortList[i];
-
- result = _this72._sortRow(a, b, sortItem.column, sortItem.dir, sortItem.params);
-
- if (result !== 0) {
- break;
- }
- }
-
- return result;
- });
- };
-
- //process individual rows for a sort function on active data
- Sort.prototype._sortRow = function (a, b, column, dir, params) {
- var el1Comp, el2Comp, colComp;
-
- //switch elements depending on search direction
- var el1 = dir == "asc" ? a : b;
- var el2 = dir == "asc" ? b : a;
-
- a = column.getFieldValue(el1.getData());
- b = column.getFieldValue(el2.getData());
-
- a = typeof a !== "undefined" ? a : "";
- b = typeof b !== "undefined" ? b : "";
-
- el1Comp = el1.getComponent();
- el2Comp = el2.getComponent();
-
- return column.modules.sort.sorter.call(this, a, b, el1Comp, el2Comp, column.getComponent(), dir, params);
- };
-
- //default data sorters
- Sort.prototype.sorters = {
-
- //sort numbers
- number: function number(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var decimal = params.decimalSeparator || ".";
- var thousand = params.thousandSeparator || ",";
- var emptyAlign = 0;
-
- a = parseFloat(String(a).split(thousand).join("").split(decimal).join("."));
- b = parseFloat(String(b).split(thousand).join("").split(decimal).join("."));
-
- //handle non numeric values
- if (isNaN(a)) {
- emptyAlign = isNaN(b) ? 0 : -1;
- } else if (isNaN(b)) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort strings
- string: function string(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
- var locale;
-
- //handle empty values
- if (!a) {
- emptyAlign = !b ? 0 : -1;
- } else if (!b) {
- emptyAlign = 1;
- } else {
- //compare valid values
- switch (_typeof(params.locale)) {
- case "boolean":
- if (params.locale) {
- locale = this.table.modules.localize.getLocale();
- }
- break;
- case "string":
- locale = params.locale;
- break;
- }
-
- return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort date
- date: function date(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "DD/MM/YYYY";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort hh:mm formatted times
- time: function time(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "hh:mm";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort datetime
- datetime: function datetime(a, b, aRow, bRow, column, dir, params) {
- var format = params.format || "DD/MM/YYYY hh:mm:ss",
- alignEmptyValues = params.alignEmptyValues,
- emptyAlign = 0;
-
- if (typeof moment != "undefined") {
- a = moment(a, format);
- b = moment(b, format);
-
- if (!a.isValid()) {
- emptyAlign = !b.isValid() ? 0 : -1;
- } else if (!b.isValid()) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- } else {
- console.error("Sort Error - 'datetime' sorter is dependant on moment.js");
- }
- },
-
- //sort booleans
- boolean: function boolean(a, b, aRow, bRow, column, dir, params) {
- var el1 = a === true || a === "true" || a === "True" || a === 1 ? 1 : 0;
- var el2 = b === true || b === "true" || b === "True" || b === 1 ? 1 : 0;
-
- return el1 - el2;
- },
-
- //sort if element contains any data
- array: function array(a, b, aRow, bRow, column, dir, params) {
- var el1 = 0;
- var el2 = 0;
- var type = params.type || "length";
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- function calc(value) {
-
- switch (type) {
- case "length":
- return value.length;
- break;
-
- case "sum":
- return value.reduce(function (c, d) {
- return c + d;
- });
- break;
-
- case "max":
- return Math.max.apply(null, value);
- break;
-
- case "min":
- return Math.min.apply(null, value);
- break;
-
- case "avg":
- return value.reduce(function (c, d) {
- return c + d;
- }) / value.length;
- break;
- }
- }
-
- //handle non array values
- if (!Array.isArray(a)) {
- alignEmptyValues = !Array.isArray(b) ? 0 : -1;
- } else if (!Array.isArray(b)) {
- alignEmptyValues = 1;
- } else {
-
- //compare valid values
- el1 = a ? calc(a) : 0;
- el2 = b ? calc(b) : 0;
-
- return el1 - el2;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort if element contains any data
- exists: function exists(a, b, aRow, bRow, column, dir, params) {
- var el1 = typeof a == "undefined" ? 0 : 1;
- var el2 = typeof b == "undefined" ? 0 : 1;
-
- return el1 - el2;
- },
-
- //sort alpha numeric strings
- alphanum: function alphanum(as, bs, aRow, bRow, column, dir, params) {
- var a,
- b,
- a1,
- b1,
- i = 0,
- L,
- rx = /(\d+)|(\D+)/g,
- rd = /\d/;
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- //handle empty values
- if (!as && as !== 0) {
- emptyAlign = !bs && bs !== 0 ? 0 : -1;
- } else if (!bs && bs !== 0) {
- emptyAlign = 1;
- } else {
-
- if (isFinite(as) && isFinite(bs)) return as - bs;
- a = String(as).toLowerCase();
- b = String(bs).toLowerCase();
- if (a === b) return 0;
- if (!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;
- a = a.match(rx);
- b = b.match(rx);
- L = a.length > b.length ? b.length : a.length;
- while (i < L) {
- a1 = a[i];
- b1 = b[i++];
- if (a1 !== b1) {
- if (isFinite(a1) && isFinite(b1)) {
- if (a1.charAt(0) === "0") a1 = "." + a1;
- if (b1.charAt(0) === "0") b1 = "." + b1;
- return a1 - b1;
- } else return a1 > b1 ? 1 : -1;
- }
- }
-
- return a.length > b.length;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- }
- };
-
- Tabulator.prototype.registerModule("sort", Sort);
-
- var Validate = function Validate(table) {
- this.table = table;
- };
-
- //validate
- Validate.prototype.initializeColumn = function (column) {
- var self = this,
- config = [],
- validator;
-
- if (column.definition.validator) {
-
- if (Array.isArray(column.definition.validator)) {
- column.definition.validator.forEach(function (item) {
- validator = self._extractValidator(item);
-
- if (validator) {
- config.push(validator);
- }
- });
- } else {
- validator = this._extractValidator(column.definition.validator);
-
- if (validator) {
- config.push(validator);
- }
- }
-
- column.modules.validate = config.length ? config : false;
- }
- };
-
- Validate.prototype._extractValidator = function (value) {
- var type, params, pos;
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "string":
- pos = value.indexOf(':');
-
- if (pos > -1) {
- type = value.substring(0, pos);
- params = value.substring(pos + 1);
- } else {
- type = value;
- }
-
- return this._buildValidator(type, params);
- break;
-
- case "function":
- return this._buildValidator(value);
- break;
-
- case "object":
- return this._buildValidator(value.type, value.parameters);
- break;
- }
- };
-
- Validate.prototype._buildValidator = function (type, params) {
-
- var func = typeof type == "function" ? type : this.validators[type];
-
- if (!func) {
- console.warn("Validator Setup Error - No matching validator found:", type);
- return false;
- } else {
- return {
- type: typeof type == "function" ? "function" : type,
- func: func,
- params: params
- };
- }
- };
-
- Validate.prototype.validate = function (validators, cell, value) {
- var self = this,
- valid = [];
-
- if (validators) {
- validators.forEach(function (item) {
- if (!item.func.call(self, cell, value, item.params)) {
- valid.push({
- type: item.type,
- parameters: item.params
- });
- }
- });
- }
-
- return valid.length ? valid : true;
- };
-
- Validate.prototype.validators = {
-
- //is integer
- integer: function integer(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
- },
-
- //is float
- float: function float(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && value % 1 !== 0;
- },
-
- //must be a number
- numeric: function numeric(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return !isNaN(value);
- },
-
- //must be a string
- string: function string(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return isNaN(value);
- },
-
- //maximum value
- max: function max(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) <= parameters;
- },
-
- //minimum value
- min: function min(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) >= parameters;
- },
-
- //minimum string length
- minLength: function minLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length >= parameters;
- },
-
- //maximum string length
- maxLength: function maxLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length <= parameters;
- },
-
- //in provided value list
- in: function _in(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- if (typeof parameters == "string") {
- parameters = parameters.split("|");
- }
-
- return value === "" || parameters.indexOf(value) > -1;
- },
-
- //must match provided regex
- regex: function regex(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var reg = new RegExp(parameters);
-
- return reg.test(value);
- },
-
- //value must be unique in this column
- unique: function unique(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var unique = true;
-
- var cellData = cell.getData();
- var column = cell.getColumn()._getSelf();
-
- this.table.rowManager.rows.forEach(function (row) {
- var data = row.getData();
-
- if (data !== cellData) {
- if (value == column.getFieldValue(data)) {
- unique = false;
- }
- }
- });
-
- return unique;
- },
-
- //must have a value
- required: function required(cell, value, parameters) {
- return value !== "" && value !== null && typeof value !== "undefined";
- }
- };
-
- Tabulator.prototype.registerModule("validate", Validate);
-
- return Tabulator;
-});
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(e,t){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Tabulator=t()}(this,function(){"use strict";Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),o=t.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var s=t[n];if(e.call(i,s,n,t))return n;n++}return-1}}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),o=t.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var s=t[n];if(e.call(i,s,n,t))return s;n++}}});var t=function(e){this.table=e,this.blockHozScrollEvent=!1,this.headersElement=this.createHeadersElement(),this.element=this.createHeaderElement(),this.rowManager=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.element.insertBefore(this.headersElement,this.element.firstChild)};t.prototype.createHeadersElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-headers"),e},t.prototype.createHeaderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-header"),this.table.options.headerVisible||e.classList.add("tabulator-header-hidden"),e},t.prototype.initialize=function(){},t.prototype.setRowManager=function(e){this.rowManager=e},t.prototype.getElement=function(){return this.element},t.prototype.getHeadersElement=function(){return this.headersElement},t.prototype.scrollHorizontal=function(e){var t=0,o=this.element.scrollWidth-this.table.element.clientWidth;this.element.scrollLeft=e,e>o?(t=e-o,this.element.style.marginLeft=-t+"px"):this.element.style.marginLeft=0,this.scrollLeft=e,this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.scrollHorizontal()},t.prototype.generateColumnsFromRowData=function(e){var t,o,i=[];if(e&&e.length){t=e[0];for(var n in t){var s={field:n,title:n},r=t[n];switch(void 0===r?"undefined":_typeof(r)){case"undefined":o="string";break;case"boolean":o="boolean";break;case"object":o=Array.isArray(r)?"array":"string";break;default:o=isNaN(r)||""===r?r.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)?"alphanum":"string":"number"}s.sorter=o,i.push(s)}this.table.options.columns=i,this.setColumns(this.table.options.columns)}},t.prototype.setColumns=function(e,t){for(var o=this;o.headersElement.firstChild;)o.headersElement.removeChild(o.headersElement.firstChild);o.columns=[],o.columnsByIndex=[],o.columnsByField={},o.table.modExists("frozenColumns")&&o.table.modules.frozenColumns.reset(),e.forEach(function(e,t){o._addColumn(e)}),o._reIndexColumns(),o.table.options.responsiveLayout&&o.table.modExists("responsiveLayout",!0)&&o.table.modules.responsiveLayout.initialize(),o.redraw(!0)},t.prototype._addColumn=function(e,t,o){var n=new i(e,this),s=n.getElement(),r=o?this.findColumnIndex(o):o;if(o&&r>-1){var a=this.columns.indexOf(o.getTopColumn()),l=o.getElement();t?(this.columns.splice(a,0,n),l.parentNode.insertBefore(s,l)):(this.columns.splice(a+1,0,n),l.parentNode.insertBefore(s,l.nextSibling))}else t?(this.columns.unshift(n),this.headersElement.insertBefore(n.getElement(),this.headersElement.firstChild)):(this.columns.push(n),this.headersElement.appendChild(n.getElement())),n.columnRendered();return n},t.prototype.registerColumnField=function(e){e.definition.field&&(this.columnsByField[e.definition.field]=e)},t.prototype.registerColumnPosition=function(e){this.columnsByIndex.push(e)},t.prototype._reIndexColumns=function(){this.columnsByIndex=[],this.columns.forEach(function(e){e.reRegisterPosition()})},t.prototype._verticalAlignHeaders=function(){var e=this,t=0;e.columns.forEach(function(e){var o;e.clearVerticalAlign(),(o=e.getHeight())>t&&(t=o)}),e.columns.forEach(function(o){o.verticalAlign(e.table.options.columnHeaderVertAlign,t)}),e.rowManager.adjustTableSize()},t.prototype.findColumn=function(e){var t=this;if("object"!=(void 0===e?"undefined":_typeof(e)))return this.columnsByField[e]||!1;if(e instanceof i)return e;if(e instanceof o)return e._getSelf()||!1;if("undefined"!=typeof HTMLElement&&e instanceof HTMLElement){return t.columns.find(function(t){return t.element===e})||!1}return!1},t.prototype.getColumnByField=function(e){return this.columnsByField[e]},t.prototype.getColumnsByFieldRoot=function(e){var t=this,o=[];return Object.keys(this.columnsByField).forEach(function(i){i.split(".")[0]===e&&o.push(t.columnsByField[i])}),o},t.prototype.getColumnByIndex=function(e){return this.columnsByIndex[e]},t.prototype.getFirstVisibileColumn=function(e){var e=this.columnsByIndex.findIndex(function(e){return e.visible});return e>-1&&this.columnsByIndex[e]},t.prototype.getColumns=function(){return this.columns},t.prototype.findColumnIndex=function(e){return this.columnsByIndex.findIndex(function(t){return e===t})},t.prototype.getRealColumns=function(){return this.columnsByIndex},t.prototype.traverse=function(e){this.columnsByIndex.forEach(function(t,o){e(t,o)})},t.prototype.getDefinitions=function(e){var t=this,o=[];return t.columnsByIndex.forEach(function(t){(!e||e&&t.visible)&&o.push(t.getDefinition())}),o},t.prototype.getDefinitionTree=function(){var e=this,t=[];return e.columns.forEach(function(e){t.push(e.getDefinition(!0))}),t},t.prototype.getComponents=function(e){var t=this,o=[];return(e?t.columns:t.columnsByIndex).forEach(function(e){o.push(e.getComponent())}),o},t.prototype.getWidth=function(){var e=0;return this.columnsByIndex.forEach(function(t){t.visible&&(e+=t.getWidth())}),e},t.prototype.moveColumn=function(e,t,o){this.moveColumnActual(e,t,o),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),t.element.parentNode.insertBefore(e.element,t.element),o&&t.element.parentNode.insertBefore(t.element,e.element),this._verticalAlignHeaders(),this.table.rowManager.reinitialize()},t.prototype.moveColumnActual=function(e,t,o){e.parent.isGroup?this._moveColumnInArray(e.parent.columns,e,t,o):this._moveColumnInArray(this.columns,e,t,o),this._moveColumnInArray(this.columnsByIndex,e,t,o,!0),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.options.columnMoved&&this.table.options.columnMoved.call(this.table,e.getComponent(),this.table.columnManager.getComponents()),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns")},t.prototype._moveColumnInArray=function(e,t,o,i,n){var s,r=e.indexOf(t);r>-1&&(e.splice(r,1),s=e.indexOf(o),s>-1?i&&(s+=1):s=r,e.splice(s,0,t),n&&this.table.rowManager.rows.forEach(function(e){if(e.cells.length){var t=e.cells.splice(r,1)[0];e.cells.splice(s,0,t)}}))},t.prototype.scrollToColumn=function(e,t,o){var i=this,n=0,s=0,r=0,a=e.getElement();return new Promise(function(l,c){if(void 0===t&&(t=i.table.options.scrollToColumnPosition),void 0===o&&(o=i.table.options.scrollToColumnIfVisible),e.visible){switch(t){case"middle":case"center":r=-i.element.clientWidth/2;break;case"right":r=a.clientWidth-i.headersElement.clientWidth}if(!o&&(s=a.offsetLeft)>0&&s+a.offsetWidth<i.element.clientWidth)return!1;n=a.offsetLeft+i.element.scrollLeft+r,n=Math.max(Math.min(n,i.table.rowManager.element.scrollWidth-i.table.rowManager.element.clientWidth),0),i.table.rowManager.scrollHorizontal(n),i.scrollHorizontal(n),l()}else console.warn("Scroll Error - Column not visible"),c("Scroll Error - Column not visible")})},t.prototype.generateCells=function(e){var t=this,o=[];return t.columnsByIndex.forEach(function(t){o.push(t.generateCell(e))}),o},t.prototype.getFlexBaseWidth=function(){var e=this,t=e.table.element.clientWidth,o=0;return e.rowManager.element.scrollHeight>e.rowManager.element.clientHeight&&(t-=e.rowManager.element.offsetWidth-e.rowManager.element.clientWidth),this.columnsByIndex.forEach(function(i){var n,s,r;i.visible&&(n=i.definition.width||0,s=void 0===i.minWidth?e.table.options.columnMinWidth:parseInt(i.minWidth),r="string"==typeof n?n.indexOf("%")>-1?t/100*parseInt(n):parseInt(n):n,o+=r>s?r:s)}),o},t.prototype.addColumn=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i._addColumn(e,t,o);i._reIndexColumns(),i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout",!0)&&i.table.modules.responsiveLayout.initialize(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.redraw(),"fitColumns"!=i.table.modules.layout.getMode()&&r.reinitializeWidth(),i._verticalAlignHeaders(),i.table.rowManager.reinitialize(),n(r)})},t.prototype.deregisterColumn=function(e){var t,o=e.getField();o&&delete this.columnsByField[o],t=this.columnsByIndex.indexOf(e),t>-1&&this.columnsByIndex.splice(t,1),t=this.columns.indexOf(e),t>-1&&this.columns.splice(t,1),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.redraw()},t.prototype.redraw=function(e){e&&(u.prototype.helpers.elVisible(this.element)&&this._verticalAlignHeaders(),this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize()),["fitColumns","fitDataStretch"].indexOf(this.table.modules.layout.getMode())>-1?this.table.modules.layout.layout():e?this.table.modules.layout.layout():this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),e&&(this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.redraw()),this.table.footerManager.redraw()};var o=function(e){this._column=e,this.type="ColumnComponent"};o.prototype.getElement=function(){return this._column.getElement()},o.prototype.getDefinition=function(){return this._column.getDefinition()},o.prototype.getField=function(){return this._column.getField()},o.prototype.getCells=function(){var e=[];return this._column.cells.forEach(function(t){e.push(t.getComponent())}),e},o.prototype.getVisibility=function(){return this._column.visible},o.prototype.show=function(){this._column.isGroup?this._column.columns.forEach(function(e){e.show()}):this._column.show()},o.prototype.hide=function(){this._column.isGroup?this._column.columns.forEach(function(e){e.hide()}):this._column.hide()},o.prototype.toggle=function(){this._column.visible?this.hide():this.show()},o.prototype.delete=function(){return this._column.delete()},o.prototype.getSubColumns=function(){var e=[];return this._column.columns.length&&this._column.columns.forEach(function(t){e.push(t.getComponent())}),e},o.prototype.getParentColumn=function(){return this._column.parent instanceof i&&this._column.parent.getComponent()},o.prototype._getSelf=function(){return this._column},o.prototype.scrollTo=function(){return this._column.table.columnManager.scrollToColumn(this._column)},o.prototype.getTable=function(){return this._column.table},o.prototype.headerFilterFocus=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterFocus(this._column)},o.prototype.reloadHeaderFilter=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.reloadHeaderFilter(this._column)},o.prototype.getHeaderFilterValue=function(){if(this._column.table.modExists("filter",!0))return this._column.table.modules.filter.getHeaderFilterValue(this._column)},o.prototype.setHeaderFilterValue=function(e){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterValue(this._column,e)},o.prototype.move=function(e,t){var o=this._column.table.columnManager.findColumn(e);o?this._column.table.columnManager.moveColumn(this._column,o,t):console.warn("Move Error - No matching column found:",o)},o.prototype.getNextColumn=function(){var e=this._column.nextColumn();return!!e&&e.getComponent()},o.prototype.getPrevColumn=function(){var e=this._column.prevColumn();return!!e&&e.getComponent()},o.prototype.updateDefinition=function(e){return this._column.updateDefinition(e)};var i=function e(t,o){var i=this;this.table=o.table,this.definition=t,this.parent=o,this.type="column",this.columns=[],this.cells=[],this.element=this.createElement(),this.contentElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.isGroup=!1,this.tooltip=!1,this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleFormatterRendered=!1,this.setField(this.definition.field),this.table.options.invalidOptionWarnings&&this.checkDefinition(),this.modules={},this.cellEvents={cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1},this.width=null,this.widthStyled="",this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this._mapDepricatedFunctionality(),t.columns?(this.isGroup=!0,t.columns.forEach(function(t,o){var n=new e(t,i);i.attachColumn(n)}),i.checkColumnVisibility()):o.registerColumnField(this),t.rowHandle&&!1!==this.table.options.movableRows&&this.table.modExists("moveRow")&&this.table.modules.moveRow.setHandle(!0),this._buildHeader(),this.bindModuleColumns()};i.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.setAttribute("role","columnheader"),e.setAttribute("aria-sort","none"),e},i.prototype.createGroupElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col-group-cols"),e},i.prototype.checkDefinition=function(){var e=this;Object.keys(this.definition).forEach(function(t){-1===e.defaultOptionList.indexOf(t)&&console.warn("Invalid column definition option in '"+(e.field||e.definition.title)+"' column:",t)})},i.prototype.setField=function(e){this.field=e,this.fieldStructure=e?this.table.options.nestedFieldSeparator?e.split(this.table.options.nestedFieldSeparator):[e]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData},i.prototype.registerColumnPosition=function(e){this.parent.registerColumnPosition(e)},i.prototype.registerColumnField=function(e){this.parent.registerColumnField(e)},i.prototype.reRegisterPosition=function(){this.isGroup?this.columns.forEach(function(e){e.reRegisterPosition()}):this.registerColumnPosition(this)},i.prototype._mapDepricatedFunctionality=function(){void 0!==this.definition.hideInHtml&&(this.definition.htmlOutput=!this.definition.hideInHtml,console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput")),void 0!==this.definition.align&&(this.definition.hozAlign=this.definition.align,console.warn("align column definition property is deprecated, you should now use hozAlign"))},i.prototype.setTooltip=function(){var e=this,t=e.definition,o=t.headerTooltip||!1===t.tooltip?t.headerTooltip:e.table.options.tooltipsHeader;o?!0===o?t.field?e.table.modules.localize.bind("columns|"+t.field,function(o){e.element.setAttribute("title",o||t.title)}):e.element.setAttribute("title",t.title):("function"==typeof o&&!1===(o=o(e.getComponent()))&&(o=""),e.element.setAttribute("title",o)):e.element.setAttribute("title","")},i.prototype._buildHeader=function(){for(var e=this,t=e.definition;e.element.firstChild;)e.element.removeChild(e.element.firstChild);t.headerVertical&&(e.element.classList.add("tabulator-col-vertical"),"flip"===t.headerVertical&&e.element.classList.add("tabulator-col-vertical-flip")),e.contentElement=e._bindEvents(),e.contentElement=e._buildColumnHeaderContent(),e.element.appendChild(e.contentElement),e.isGroup?e._buildGroupHeader():e._buildColumnHeader(),e.setTooltip(),e.table.options.resizableColumns&&e.table.modExists("resizeColumns")&&e.table.modules.resizeColumns.initializeColumn("header",e,e.element),t.headerFilter&&e.table.modExists("filter")&&e.table.modExists("edit")&&(void 0!==t.headerFilterPlaceholder&&t.field&&e.table.modules.localize.setHeaderFilterColumnPlaceholder(t.field,t.headerFilterPlaceholder),e.table.modules.filter.initializeColumn(e)),e.table.modExists("frozenColumns")&&e.table.modules.frozenColumns.initializeColumn(e),e.table.options.movableColumns&&!e.isGroup&&e.table.modExists("moveColumn")&&e.table.modules.moveColumn.initializeColumn(e),(t.topCalc||t.bottomCalc)&&e.table.modExists("columnCalcs")&&e.table.modules.columnCalcs.initializeColumn(e),e.table.modExists("persistence")&&e.table.modules.persistence.config.columns&&e.table.modules.persistence.initializeColumn(e),e.element.addEventListener("mouseenter",function(t){e.setTooltip()})},i.prototype._bindEvents=function(){var e,t,o,i=this,n=i.definition;"function"==typeof n.headerClick&&i.element.addEventListener("click",function(e){n.headerClick(e,i.getComponent())}),"function"==typeof n.headerDblClick&&i.element.addEventListener("dblclick",function(e){n.headerDblClick(e,i.getComponent())}),"function"==typeof n.headerContext&&i.element.addEventListener("contextmenu",function(e){n.headerContext(e,i.getComponent())}),"function"==typeof n.headerTap&&(o=!1,i.element.addEventListener("touchstart",function(e){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(e){o&&n.headerTap(e,i.getComponent()),o=!1})),"function"==typeof n.headerDblTap&&(e=null,i.element.addEventListener("touchend",function(t){e?(clearTimeout(e),e=null,n.headerDblTap(t,i.getComponent())):e=setTimeout(function(){clearTimeout(e),e=null},300)})),"function"==typeof n.headerTapHold&&(t=null,i.element.addEventListener("touchstart",function(e){clearTimeout(t),t=setTimeout(function(){clearTimeout(t),t=null,o=!1,n.headerTapHold(e,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(e){clearTimeout(t),t=null})),"function"==typeof n.cellClick&&(i.cellEvents.cellClick=n.cellClick),"function"==typeof n.cellDblClick&&(i.cellEvents.cellDblClick=n.cellDblClick),"function"==typeof n.cellContext&&(i.cellEvents.cellContext=n.cellContext),"function"==typeof n.cellMouseEnter&&(i.cellEvents.cellMouseEnter=n.cellMouseEnter),"function"==typeof n.cellMouseLeave&&(i.cellEvents.cellMouseLeave=n.cellMouseLeave),"function"==typeof n.cellMouseOver&&(i.cellEvents.cellMouseOver=n.cellMouseOver),"function"==typeof n.cellMouseOut&&(i.cellEvents.cellMouseOut=n.cellMouseOut),"function"==typeof n.cellMouseMove&&(i.cellEvents.cellMouseMove=n.cellMouseMove),"function"==typeof n.cellTap&&(i.cellEvents.cellTap=n.cellTap),"function"==typeof n.cellDblTap&&(i.cellEvents.cellDblTap=n.cellDblTap),"function"==typeof n.cellTapHold&&(i.cellEvents.cellTapHold=n.cellTapHold),"function"==typeof n.cellEdited&&(i.cellEvents.cellEdited=n.cellEdited),"function"==typeof n.cellEditing&&(i.cellEvents.cellEditing=n.cellEditing),"function"==typeof n.cellEditCancelled&&(i.cellEvents.cellEditCancelled=n.cellEditCancelled)},i.prototype._buildColumnHeader=function(){var e=this,t=e.definition,o=e.table;if(o.modExists("sort")&&o.modules.sort.initializeColumn(e,e.contentElement),(t.headerContextMenu||t.headerMenu)&&o.modExists("menu")&&o.modules.menu.initializeColumnHeader(e),o.modExists("format")&&o.modules.format.initializeColumn(e),void 0!==t.editor&&o.modExists("edit")&&o.modules.edit.initializeColumn(e),void 0!==t.validator&&o.modExists("validate")&&o.modules.validate.initializeColumn(e),o.modExists("mutator")&&o.modules.mutator.initializeColumn(e),o.modExists("accessor")&&o.modules.accessor.initializeColumn(e),_typeof(o.options.responsiveLayout)&&o.modExists("responsiveLayout")&&o.modules.responsiveLayout.initializeColumn(e),void 0!==t.visible&&(t.visible?e.show(!0):e.hide(!0)),t.cssClass){t.cssClass.split(" ").forEach(function(t){e.element.classList.add(t)})}t.field&&this.element.setAttribute("tabulator-field",t.field),e.setMinWidth(void 0===t.minWidth?e.table.options.columnMinWidth:parseInt(t.minWidth)),e.reinitializeWidth(),e.tooltip=e.definition.tooltip||!1===e.definition.tooltip?e.definition.tooltip:e.table.options.tooltips,e.hozAlign=void 0===e.definition.hozAlign?e.table.options.cellHozAlign:e.definition.hozAlign,e.vertAlign=void 0===e.definition.vertAlign?e.table.options.cellVertAlign:e.definition.vertAlign},i.prototype._buildColumnHeaderContent=function(){var e=(this.definition,this.table,document.createElement("div"));return e.classList.add("tabulator-col-content"),this.titleElement=this._buildColumnHeaderTitle(),e.appendChild(this.titleElement),e},i.prototype._buildColumnHeaderTitle=function(){var e=this,t=e.definition,o=e.table,i=document.createElement("div");if(i.classList.add("tabulator-col-title"),t.editableTitle){var n=document.createElement("input");n.classList.add("tabulator-title-editor"),n.addEventListener("click",function(e){e.stopPropagation(),n.focus()}),n.addEventListener("change",function(){t.title=n.value,o.options.columnTitleChanged.call(e.table,e.getComponent())}),i.appendChild(n),t.field?o.modules.localize.bind("columns|"+t.field,function(e){n.value=e||t.title||" "}):n.value=t.title||" "}else t.field?o.modules.localize.bind("columns|"+t.field,function(o){e._formatColumnHeaderTitle(i,o||t.title||" ")}):e._formatColumnHeaderTitle(i,t.title||" ");return i},i.prototype._formatColumnHeaderTitle=function(e,t){var o,i,n,s,r,a=this;if(this.definition.titleFormatter&&this.table.modExists("format"))switch(o=this.table.modules.format.getFormatter(this.definition.titleFormatter),r=function(e){a.titleFormatterRendered=e},s={getValue:function(){return t},getElement:function(){return e}},n=this.definition.titleFormatterParams||{},n="function"==typeof n?n():n,i=o.call(this.table.modules.format,s,n,r),void 0===i?"undefined":_typeof(i)){case"object":i instanceof Node?e.appendChild(i):(e.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",i));break;case"undefined":case"null":e.innerHTML="";break;default:e.innerHTML=i}else e.innerHTML=t},i.prototype._buildGroupHeader=function(){var e=this;if(this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass){this.definition.cssClass.split(" ").forEach(function(t){e.element.classList.add(t)})}this.element.appendChild(this.groupElement)},i.prototype._getFlatData=function(e){return e[this.field]},i.prototype._getNestedData=function(e){for(var t,o=e,i=this.fieldStructure,n=i.length,s=0;s<n&&(o=o[i[s]],t=o,o);s++);return t},i.prototype._setFlatData=function(e,t){this.field&&(e[this.field]=t)},i.prototype._setNestedData=function(e,t){for(var o=e,i=this.fieldStructure,n=i.length,s=0;s<n;s++)if(s==n-1)o[i[s]]=t;else{if(!o[i[s]]){if(void 0===t)break;o[i[s]]={}}o=o[i[s]]}},i.prototype.attachColumn=function(e){var t=this;t.groupElement?(t.columns.push(e),t.groupElement.appendChild(e.getElement())):console.warn("Column Warning - Column being attached to another column instead of column group")},i.prototype.verticalAlign=function(e,t){var o=this.parent.isGroup?this.parent.getGroupElement().clientHeight:t||this.parent.getHeadersElement().clientHeight;this.element.style.height=o+"px",this.isGroup&&(this.groupElement.style.minHeight=o-this.contentElement.offsetHeight+"px"),this.isGroup||"top"===e||(this.element.style.paddingTop="bottom"===e?this.element.clientHeight-this.contentElement.offsetHeight+"px":(this.element.clientHeight-this.contentElement.offsetHeight)/2+"px"),this.columns.forEach(function(t){t.verticalAlign(e)})},i.prototype.clearVerticalAlign=function(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(e){e.clearVerticalAlign()})},i.prototype.bindModuleColumns=function(){"rownum"==this.definition.formatter&&(this.table.rowManager.rowNumColumn=this)},i.prototype.getElement=function(){return this.element},i.prototype.getGroupElement=function(){return this.groupElement},i.prototype.getField=function(){return this.field},i.prototype.getFirstColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[0].getFirstColumn():this},i.prototype.getLastColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[this.columns.length-1].getLastColumn():this},i.prototype.getColumns=function(){return this.columns},i.prototype.getCells=function(){return this.cells},i.prototype.getTopColumn=function(){return this.parent.isGroup?this.parent.getTopColumn():this},i.prototype.getDefinition=function(e){var t=[];return this.isGroup&&e&&(this.columns.forEach(function(e){t.push(e.getDefinition(!0))}),this.definition.columns=t),this.definition},i.prototype.checkColumnVisibility=function(){var e=!1;this.columns.forEach(function(t){t.visible&&(e=!0)}),e?(this.show(),this.parent.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1)):this.hide()},i.prototype.show=function(e,t){this.visible||(this.visible=!0,this.element.style.display="",this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(e){e.show()}),this.isGroup||null!==this.width||this.reinitializeWidth(),this.table.columnManager._verticalAlignHeaders(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!t&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),e||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!0),this.parent.isGroup&&this.parent.matchChildWidths())},i.prototype.hide=function(e,t){this.visible&&(this.visible=!1,this.element.style.display="none",this.table.columnManager._verticalAlignHeaders(),this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(e){e.hide()}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!t&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),e||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1),this.parent.isGroup&&this.parent.matchChildWidths())},i.prototype.matchChildWidths=function(){var e=0;this.contentElement&&this.columns.length&&(this.columns.forEach(function(t){t.visible&&(e+=t.getWidth())}),this.contentElement.style.maxWidth=e-1+"px",this.parent.isGroup&&this.parent.matchChildWidths())},i.prototype.setWidth=function(e){this.widthFixed=!0,this.setWidthActual(e)},i.prototype.setWidthActual=function(e){isNaN(e)&&(e=Math.floor(this.table.element.clientWidth/100*parseInt(e))),e=Math.max(this.minWidth,e),this.width=e,this.widthStyled=e?e+"px":"",this.element.style.width=this.widthStyled,this.isGroup||this.cells.forEach(function(e){e.setWidth()}),this.parent.isGroup&&this.parent.matchChildWidths(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()},i.prototype.checkCellHeights=function(){var e=[];this.cells.forEach(function(t){t.row.heightInitialized&&(null!==t.row.getElement().offsetParent?(e.push(t.row),t.row.clearCellHeight()):t.row.heightInitialized=!1)}),e.forEach(function(e){e.calcHeight()}),e.forEach(function(e){e.setCellHeight()})},i.prototype.getWidth=function(){var e=0;return this.isGroup?this.columns.forEach(function(t){t.visible&&(e+=t.getWidth())}):e=this.width,e},i.prototype.getHeight=function(){return this.element.offsetHeight},i.prototype.setMinWidth=function(e){this.minWidth=e,this.minWidthStyled=e?e+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(e){e.setMinWidth()})},i.prototype.delete=function(){var e=this;return new Promise(function(t,o){e.isGroup&&e.columns.forEach(function(e){e.delete()}),e.table.modExists("edit")&&e.table.modules.edit.currentCell.column===e&&e.table.modules.edit.cancelEdit();for(var i=e.cells.length,n=0;n<i;n++)e.cells[0].delete();e.element.parentNode.removeChild(e.element),e.table.columnManager.deregisterColumn(e),t()})},i.prototype.columnRendered=function(){this.titleFormatterRendered&&this.titleFormatterRendered()},i.prototype.generateCell=function(e){var t=this,o=new l(t,e);return this.cells.push(o),o},i.prototype.nextColumn=function(){var e=this.table.columnManager.findColumnIndex(this);return e>-1&&this._nextVisibleColumn(e+1)},i.prototype._nextVisibleColumn=function(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._nextVisibleColumn(e+1)},i.prototype.prevColumn=function(){var e=this.table.columnManager.findColumnIndex(this);return e>-1&&this._prevVisibleColumn(e-1)},i.prototype._prevVisibleColumn=function(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._prevVisibleColumn(e-1)},i.prototype.reinitializeWidth=function(e){this.widthFixed=!1,void 0===this.definition.width||e||this.setWidth(this.definition.width),this.table.modExists("filter")&&this.table.modules.filter.hideHeaderFilterElements(),this.fitToData(),this.table.modExists("filter")&&this.table.modules.filter.showHeaderFilterElements()},i.prototype.fitToData=function(){var e=this;this.widthFixed||(this.element.style.width="",e.cells.forEach(function(e){e.clearWidth()}));var t=this.element.offsetWidth;e.width&&this.widthFixed||(e.cells.forEach(function(e){var o=e.getWidth();o>t&&(t=o)}),t&&e.setWidthActual(t+1))},i.prototype.updateDefinition=function(e){var t=this;return new Promise(function(o,i){var n;t.isGroup?(console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups"),i("Column Update Error - The updateDefintion function is only available on columns, not column groups")):(n=Object.assign({},t.getDefinition()),n=Object.assign(n,e),t.table.columnManager.addColumn(n,!1,t).then(function(e){n.field==t.field&&(t.field=!1),t.delete().then(function(){o(e.getComponent())}).catch(function(e){i(e)})}).catch(function(e){i(e)}))})},i.prototype.deleteCell=function(e){var t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)},
-i.prototype.defaultOptionList=["title","field","columns","visible","align","hozAlign","vertAlign","width","minWidth","widthGrow","widthShrink","resizable","frozen","responsive","tooltip","cssClass","rowHandle","hideInHtml","print","htmlOutput","sorter","sorterParams","formatter","formatterParams","variableHeight","editable","editor","editorParams","validator","mutator","mutatorParams","mutatorData","mutatorDataParams","mutatorEdit","mutatorEditParams","mutatorClipboard","mutatorClipboardParams","accessor","accessorParams","accessorData","accessorDataParams","accessorDownload","accessorDownloadParams","accessorClipboard","accessorClipboardParams","accessorPrint","accessorPrintParams","accessorHtmlOutput","accessorHtmlOutputParams","clipboard","download","downloadTitle","topCalc","topCalcParams","topCalcFormatter","topCalcFormatterParams","bottomCalc","bottomCalcParams","bottomCalcFormatter","bottomCalcFormatterParams","cellClick","cellDblClick","cellContext","cellTap","cellDblTap","cellTapHold","cellMouseEnter","cellMouseLeave","cellMouseOver","cellMouseOut","cellMouseMove","cellEditing","cellEdited","cellEditCancelled","headerSort","headerSortStartingDir","headerSortTristate","headerClick","headerDblClick","headerContext","headerTap","headerDblTap","headerTapHold","headerTooltip","headerVertical","editableTitle","titleFormatter","titleFormatterParams","headerFilter","headerFilterPlaceholder","headerFilterParams","headerFilterEmptyCheck","headerFilterFunc","headerFilterFuncParams","headerFilterLiveFilter","print","headerContextMenu","headerMenu","contextMenu","formatterPrint","formatterPrintParams","formatterClipboard","formatterClipboardParams","formatterHtmlOutput","formatterHtmlOutputParams"],i.prototype.getComponent=function(){return new o(this)};var n=function(e){this.table=e,this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.columnManager=null,this.height=0,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[],this.rowNumColumn=!1,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRederInPosition=!1};n.prototype.createHolderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-tableHolder"),e.setAttribute("tabindex",0),e},n.prototype.createTableElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-table"),e},n.prototype.getElement=function(){return this.element},n.prototype.getTableElement=function(){return this.tableElement},n.prototype.getRowPosition=function(e,t){return t?this.activeRows.indexOf(e):this.rows.indexOf(e)},n.prototype.setColumnManager=function(e){this.columnManager=e},n.prototype.initialize=function(){var e=this;e.setRenderMode(),e.element.appendChild(e.tableElement),e.firstRender=!0,e.element.addEventListener("scroll",function(){var t=e.element.scrollLeft;e.scrollLeft!=t&&(e.columnManager.scrollHorizontal(t),e.table.options.groupBy&&e.table.modules.groupRows.scrollHeaders(t),e.table.modExists("columnCalcs")&&e.table.modules.columnCalcs.scrollHorizontal(t),e.table.options.scrollHorizontal(t)),e.scrollLeft=t}),"virtual"===this.renderMode&&e.element.addEventListener("scroll",function(){var t=e.element.scrollTop,o=e.scrollTop>t;e.scrollTop!=t?(e.scrollTop=t,e.scrollVertical(o),"scroll"==e.table.options.ajaxProgressiveLoad&&e.table.modules.ajax.nextPage(e.element.scrollHeight-e.element.clientHeight-t),e.table.options.scrollVertical(t)):e.scrollTop=t})},n.prototype.findRow=function(e){var t=this;if("object"!=(void 0===e?"undefined":_typeof(e))){if(void 0===e||null===e)return!1;return t.rows.find(function(o){return o.data[t.table.options.index]==e})||!1}if(e instanceof r)return e;if(e instanceof s)return e._getSelf()||!1;if("undefined"!=typeof HTMLElement&&e instanceof HTMLElement){return t.rows.find(function(t){return t.element===e})||!1}return!1},n.prototype.getRowFromDataObject=function(e){return this.rows.find(function(t){return t.data===e})||!1},n.prototype.getRowFromPosition=function(e,t){return t?this.activeRows[e]:this.rows[e]},n.prototype.scrollToRow=function(e,t,o){var i,n=this,s=this.getDisplayRows().indexOf(e),r=e.getElement(),a=0;return new Promise(function(e,l){if(s>-1){if(void 0===t&&(t=n.table.options.scrollToRowPosition),void 0===o&&(o=n.table.options.scrollToRowIfVisible),"nearest"===t)switch(n.renderMode){case"classic":i=u.prototype.helpers.elOffset(r).top,t=Math.abs(n.element.scrollTop-i)>Math.abs(n.element.scrollTop+n.element.clientHeight-i)?"bottom":"top";break;case"virtual":t=Math.abs(n.vDomTop-s)>Math.abs(n.vDomBottom-s)?"bottom":"top"}if(!o&&u.prototype.helpers.elVisible(r)&&(a=u.prototype.helpers.elOffset(r).top-u.prototype.helpers.elOffset(n.element).top)>0&&a<n.element.clientHeight-r.offsetHeight)return!1;switch(n.renderMode){case"classic":n.element.scrollTop=u.prototype.helpers.elOffset(r).top-u.prototype.helpers.elOffset(n.element).top+n.element.scrollTop;break;case"virtual":n._virtualRenderFill(s,!0)}switch(t){case"middle":case"center":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop+(r.offsetTop-n.element.scrollTop)-(n.element.scrollHeight-r.offsetTop)/2:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight/2;break;case"bottom":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop-(n.element.scrollHeight-r.offsetTop)+r.offsetHeight:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight+r.offsetHeight}e()}else console.warn("Scroll Error - Row not visible"),l("Scroll Error - Row not visible")})},n.prototype.setData=function(e,t,o){var i=this,n=this;return new Promise(function(s,r){t&&i.getDisplayRows().length?n.table.options.pagination?n._setDataActual(e,!0):i.reRenderInPosition(function(){n._setDataActual(e)}):(i.table.options.autoColumns&&o&&i.table.columnManager.generateColumnsFromRowData(e),i.resetScroll(),i._setDataActual(e)),s()})},n.prototype._setDataActual=function(e,t){var o=this;o.table.options.dataLoading.call(this.table,e),this._wipeElements(),this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.clear(),Array.isArray(e)?(this.table.modExists("selectRow")&&this.table.modules.selectRow.clearSelectionData(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchData(e),e.forEach(function(e,t){if(e&&"object"===(void 0===e?"undefined":_typeof(e))){var i=new r(e,o);o.rows.push(i)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",e)}),o.table.options.dataLoaded.call(this.table,e),o.refreshActiveData(!1,!1,t)):console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ",void 0===e?"undefined":_typeof(e),"\nData: ",e)},n.prototype._wipeElements=function(){this.rows.forEach(function(e){e.wipe()}),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.wipe(),this.rows=[]},n.prototype.deleteRow=function(e,t){var o=this.rows.indexOf(e),i=this.activeRows.indexOf(e);i>-1&&this.activeRows.splice(i,1),o>-1&&this.rows.splice(o,1),this.setActiveRows(this.activeRows),this.displayRowIterator(function(t){var o=t.indexOf(e);o>-1&&t.splice(o,1)}),t||this.reRenderInPosition(),this.regenerateRowNumbers(),this.table.options.rowDeleted.call(this.table,e.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.groupRows.updateGroupRows(!0):this.table.options.pagination&&this.table.modExists("page")?this.refreshActiveData(!1,!1,!0):this.table.options.pagination&&this.table.modExists("page")&&this.refreshActiveData("page")},n.prototype.addRow=function(e,t,o,i){var n=this.addRowActual(e,t,o,i);return this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowAdd",n,{data:e,pos:t,index:o}),n},n.prototype.addRows=function(e,t,o){var i=this,n=this,s=0,r=[];return new Promise(function(a,l){t=i.findAddRowPos(t),Array.isArray(e)||(e=[e]),s=e.length-1,(void 0===o&&t||void 0!==o&&!t)&&e.reverse(),e.forEach(function(e,i){var s=n.addRow(e,t,o,!0);r.push(s)}),i.table.options.groupBy&&i.table.modExists("groupRows")?i.table.modules.groupRows.updateGroupRows(!0):i.table.options.pagination&&i.table.modExists("page")?i.refreshActiveData(!1,!1,!0):i.reRenderInPosition(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.regenerateRowNumbers(),a(r)})},n.prototype.findAddRowPos=function(e){return void 0===e&&(e=this.table.options.addRowPos),"pos"===e&&(e=!0),"bottom"===e&&(e=!1),e},n.prototype.addRowActual=function(e,t,o,i){var n,s,a=e instanceof r?e:new r(e||{},this),l=this.findAddRowPos(t),c=-1;if(!o&&this.table.options.pagination&&"page"==this.table.options.paginationAddRow&&(s=this.getDisplayRows(),l?s.length?o=s[0]:this.activeRows.length&&(o=this.activeRows[this.activeRows.length-1],l=!1):s.length&&(o=s[s.length-1],l=!(s.length<this.table.modules.page.getPageSize()))),void 0!==o&&(o=this.findRow(o)),this.table.options.groupBy&&this.table.modExists("groupRows")){this.table.modules.groupRows.assignRowToGroup(a);var u=a.getGroup().rows;u.length>1&&(!o||o&&-1==u.indexOf(o)?l?u[0]!==a&&(o=u[0],this._moveRowInArray(a.getGroup().rows,a,o,!l)):u[u.length-1]!==a&&(o=u[u.length-1],this._moveRowInArray(a.getGroup().rows,a,o,!l)):this._moveRowInArray(a.getGroup().rows,a,o,!l))}return o&&(c=this.rows.indexOf(o)),o&&c>-1?(n=this.activeRows.indexOf(o),this.displayRowIterator(function(e){var t=e.indexOf(o);t>-1&&e.splice(l?t:t+1,0,a)}),n>-1&&this.activeRows.splice(l?n:n+1,0,a),this.rows.splice(l?c:c+1,0,a)):l?(this.displayRowIterator(function(e){e.unshift(a)}),this.activeRows.unshift(a),this.rows.unshift(a)):(this.displayRowIterator(function(e){e.push(a)}),this.activeRows.push(a),this.rows.push(a)),this.setActiveRows(this.activeRows),this.table.options.rowAdded.call(this.table,a.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),i||this.reRenderInPosition(),a},n.prototype.moveRow=function(e,t,o){this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowMove",e,{posFrom:this.getRowPosition(e),posTo:this.getRowPosition(t),to:t,after:o}),this.moveRowActual(e,t,o),this.regenerateRowNumbers(),this.table.options.rowMoved.call(this.table,e.getComponent())},n.prototype.moveRowActual=function(e,t,o){var i=this;if(this._moveRowInArray(this.rows,e,t,o),this._moveRowInArray(this.activeRows,e,t,o),this.displayRowIterator(function(n){i._moveRowInArray(n,e,t,o)}),this.table.options.groupBy&&this.table.modExists("groupRows")){!o&&t instanceof T&&(t=this.table.rowManager.prevDisplayRow(e)||t);var n=t.getGroup(),s=e.getGroup();n===s?this._moveRowInArray(n.rows,e,t,o):(s&&s.removeRow(e),n.insertRow(e,t,o))}},n.prototype._moveRowInArray=function(e,t,o,i){var n,s,r,a;if(t!==o&&(n=e.indexOf(t),n>-1&&(e.splice(n,1),s=e.indexOf(o),s>-1?i?e.splice(s+1,0,t):e.splice(s,0,t):e.splice(n,0,t)),e===this.getDisplayRows())){r=n<s?n:s,a=s>n?s:n+1;for(var l=r;l<=a;l++)e[l]&&this.styleRow(e[l],l)}},n.prototype.clearData=function(){this.setData([])},n.prototype.getRowIndex=function(e){return this.findRowIndex(e,this.rows)},n.prototype.getDisplayRowIndex=function(e){var t=this.getDisplayRows().indexOf(e);return t>-1&&t},n.prototype.nextDisplayRow=function(e,t){var o=this.getDisplayRowIndex(e),i=!1;return!1!==o&&o<this.displayRowsCount-1&&(i=this.getDisplayRows()[o+1]),!i||i instanceof r&&"row"==i.type?i:this.nextDisplayRow(i,t)},n.prototype.prevDisplayRow=function(e,t){var o=this.getDisplayRowIndex(e),i=!1;return o&&(i=this.getDisplayRows()[o-1]),!t||!i||i instanceof r&&"row"==i.type?i:this.prevDisplayRow(i,t)},n.prototype.findRowIndex=function(e,t){var o;return!!((e=this.findRow(e))&&(o=t.indexOf(e))>-1)&&o},n.prototype.getData=function(e,t){var o=[];return this.getRows(e).forEach(function(e){"row"==e.type&&o.push(e.getData(t||"data"))}),o},n.prototype.getComponents=function(e){var t=[];return this.getRows(e).forEach(function(e){t.push(e.getComponent())}),t},n.prototype.getDataCount=function(e){return this.getRows(e).length},n.prototype._genRemoteRequest=function(){var e=this,t=this.table,o=t.options,i={};if(t.modExists("page")){if(o.ajaxSorting){var n=this.table.modules.sort.getSort();n.forEach(function(e){delete e.column}),i[this.table.modules.page.paginationDataSentNames.sorters]=n}if(o.ajaxFiltering){var s=this.table.modules.filter.getFilters(!0,!0);i[this.table.modules.page.paginationDataSentNames.filters]=s}this.table.modules.ajax.setParams(i,!0)}t.modules.ajax.sendRequest().then(function(t){e._setDataActual(t,!0)}).catch(function(e){})},n.prototype.filterRefresh=function(){var e=this.table,t=e.options,o=this.scrollLeft;t.ajaxFiltering?"remote"==t.pagination&&e.modExists("page")?(e.modules.page.reset(!0),e.modules.page.setPage(1).then(function(){}).catch(function(){})):t.ajaxProgressiveLoad?e.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData("filter"),this.scrollHorizontal(o)},n.prototype.sorterRefresh=function(e){var t=this.table,o=this.table.options,i=this.scrollLeft;o.ajaxSorting?("remote"==o.pagination||o.progressiveLoad)&&t.modExists("page")?(t.modules.page.reset(!0),t.modules.page.setPage(1).then(function(){}).catch(function(){})):o.ajaxProgressiveLoad?t.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData(e?"filter":"sort"),this.scrollHorizontal(i)},n.prototype.scrollHorizontal=function(e){this.scrollLeft=e,this.element.scrollLeft=e,this.table.options.groupBy&&this.table.modules.groupRows.scrollHeaders(e),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.scrollHorizontal(e)},n.prototype.refreshActiveData=function(e,t,o){var i,n=this,s=this.table,r=["all","filter","sort","display","freeze","group","tree","page"];if(this.redrawBlock)return void((!this.redrawBlockRestoreConfig||r.indexOf(e)<r.indexOf(this.redrawBlockRestoreConfig.stage))&&(this.redrawBlockRestoreConfig={stage:e,skipStage:t,renderInPosition:o}));switch(n.table.modExists("edit")&&n.table.modules.edit.cancelEdit(),e||(e="all"),s.options.selectable&&!s.options.selectablePersistence&&s.modExists("selectRow")&&s.modules.selectRow.deselectRows(),e){case"all":case"filter":t?t=!1:s.modExists("filter")?n.setActiveRows(s.modules.filter.filter(n.rows)):n.setActiveRows(n.rows.slice(0));case"sort":t?t=!1:s.modExists("sort")&&s.modules.sort.sort(this.activeRows),this.regenerateRowNumbers();case"display":this.resetDisplayRows();case"freeze":t?t=!1:this.table.modExists("frozenRows")&&s.modules.frozenRows.isFrozen()&&(s.modules.frozenRows.getDisplayIndex()||s.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.frozenRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.frozenRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.frozenRows.setDisplayIndex(i));case"group":t?t=!1:s.options.groupBy&&s.modExists("groupRows")&&(s.modules.groupRows.getDisplayIndex()||s.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.groupRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.groupRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.groupRows.setDisplayIndex(i));case"tree":t?t=!1:s.options.dataTree&&s.modExists("dataTree")&&(s.modules.dataTree.getDisplayIndex()||s.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.dataTree.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.dataTree.getRows(this.getDisplayRows(i-1)),i))&&s.modules.dataTree.setDisplayIndex(i)),s.options.pagination&&s.modExists("page")&&!o&&"local"==s.modules.page.getMode()&&s.modules.page.reset();case"page":t?t=!1:s.options.pagination&&s.modExists("page")&&(s.modules.page.getDisplayIndex()||s.modules.page.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.page.getDisplayIndex(),"local"==s.modules.page.getMode()&&s.modules.page.setMaxRows(this.getDisplayRows(i-1).length),!0!==(i=n.setDisplayRows(s.modules.page.getRows(this.getDisplayRows(i-1)),i))&&s.modules.page.setDisplayIndex(i))}u.prototype.helpers.elVisible(n.element)&&(o?n.reRenderInPosition():(n.renderTable(),s.options.layoutColumnsOnNewData&&n.table.columnManager.redraw(!0))),s.modExists("columnCalcs")&&s.modules.columnCalcs.recalc(this.activeRows)},n.prototype.regenerateRowNumbers=function(){var e=this;this.rowNumColumn&&this.activeRows.forEach(function(t){var o=t.getCell(e.rowNumColumn);o&&o._generateContents()})},n.prototype.setActiveRows=function(e){this.activeRows=e,this.activeRowsCount=this.activeRows.length},n.prototype.resetDisplayRows=function(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length,this.table.modExists("frozenRows")&&this.table.modules.frozenRows.setDisplayIndex(0),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.setDisplayIndex(0),this.table.options.pagination&&this.table.modExists("page")&&this.table.modules.page.setDisplayIndex(0)},n.prototype.getNextDisplayIndex=function(){return this.displayRows.length},n.prototype.setDisplayRows=function(e,t){var o=!0;return t&&void 0!==this.displayRows[t]?(this.displayRows[t]=e,o=!0):(this.displayRows.push(e),o=t=this.displayRows.length-1),t==this.displayRows.length-1&&(this.displayRowsCount=this.displayRows[this.displayRows.length-1].length),o},n.prototype.getDisplayRows=function(e){return void 0===e?this.displayRows.length?this.displayRows[this.displayRows.length-1]:[]:this.displayRows[e]||[]},n.prototype.getVisibleRows=function(e){var t=this.element.scrollTop,o=this.element.clientHeight+t,i=!1,n=0,s=0,r=this.getDisplayRows();if(e){this.getDisplayRows();for(var a=this.vDomTop;a<=this.vDomBottom;a++)if(r[a])if(i){if(!(o-r[a].getElement().offsetTop>=0))break;s=a}else if(t-r[a].getElement().offsetTop>=0)n=a;else{if(i=!0,!(o-r[a].getElement().offsetTop>=0))break;s=a}}else n=this.vDomTop,s=this.vDomBottom;return r.slice(n,s+1)},n.prototype.displayRowIterator=function(e){this.displayRows.forEach(e),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length},n.prototype.getRows=function(e){var t;switch(e){case"active":t=this.activeRows;break;case"display":t=this.table.rowManager.getDisplayRows();break;case"visible":t=this.getVisibleRows(!0);break;default:t=this.rows}return t},n.prototype.reRenderInPosition=function(e){if("virtual"==this.getRenderMode())if(this.redrawBlock)e?e():this.redrawBlockRederInPosition=!0;else{for(var t=this.element.scrollTop,o=!1,i=!1,n=this.scrollLeft,s=this.getDisplayRows(),r=this.vDomTop;r<=this.vDomBottom;r++)if(s[r]){var a=t-s[r].getElement().offsetTop;if(!(!1===i||Math.abs(a)<i))break;i=a,o=r}e&&e(),this._virtualRenderFill(!1===o?this.displayRowsCount-1:o,!0,i||0),this.scrollHorizontal(n)}else this.renderTable(),e&&e()},n.prototype.setRenderMode=function(){this.table.options.virtualDom?(this.renderMode="virtual",this.table.element.clientHeight||this.table.options.height?this.fixedHeight=!0:this.fixedHeight=!1):this.renderMode="classic"},n.prototype.getRenderMode=function(){return this.renderMode},n.prototype.renderTable=function(){switch(this.table.options.renderStarted.call(this.table),this.element.scrollTop=0,this.renderMode){case"classic":this._simpleRender();break;case"virtual":this._virtualRenderFill()}this.firstRender&&(this.displayRowsCount?(this.firstRender=!1,this.table.modules.layout.layout()):this.renderEmptyScroll()),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.displayRowsCount||this.table.options.placeholder&&(this.table.options.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.table.options.placeholder),this.table.options.placeholder.style.width=this.table.columnManager.getWidth()+"px"),this.table.options.renderComplete.call(this.table)},n.prototype._simpleRender=function(){this._clearVirtualDom(),this.displayRowsCount?this.checkClassicModeGroupHeaderWidth():this.renderEmptyScroll()},n.prototype.checkClassicModeGroupHeaderWidth=function(){var e=this,t=this.tableElement,o=!0;e.getDisplayRows().forEach(function(i,n){e.styleRow(i,n),t.appendChild(i.getElement()),i.initialize(!0),"group"!==i.type&&(o=!1)}),t.style.minWidth=o?e.table.columnManager.getWidth()+"px":""},n.prototype.renderEmptyScroll=function(){this.table.options.placeholder?this.tableElement.style.display="none":(this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px",this.tableElement.style.minHeight="1px",this.tableElement.style.visibility="hidden")},n.prototype._clearVirtualDom=function(){var e=this.tableElement;for(this.table.options.placeholder&&this.table.options.placeholder.parentNode&&this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);e.firstChild;)e.removeChild(e.firstChild);e.style.paddingTop="",e.style.paddingBottom="",e.style.minWidth="",e.style.minHeight="",e.style.display="",e.style.visibility="",this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0},n.prototype.styleRow=function(e,t){var o=e.getElement();t%2?(o.classList.add("tabulator-row-even"),o.classList.remove("tabulator-row-odd")):(o.classList.add("tabulator-row-odd"),o.classList.remove("tabulator-row-even"))},n.prototype._virtualRenderFill=function(e,t,o){var i=this,n=i.tableElement,s=i.element,r=0,a=0,l=0,c=0,d=!0,h=i.getDisplayRows();if(e=e||0,o=o||0,e){for(;n.firstChild;)n.removeChild(n.firstChild);var p=(i.displayRowsCount-e+1)*i.vDomRowHeight;p<i.height&&(e-=Math.ceil((i.height-p)/i.vDomRowHeight))<0&&(e=0),r=Math.min(Math.max(Math.floor(i.vDomWindowBuffer/i.vDomRowHeight),i.vDomWindowMinMarginRows),e),e-=r}else i._clearVirtualDom();if(i.displayRowsCount&&u.prototype.helpers.elVisible(i.element)){for(i.vDomTop=e,i.vDomBottom=e-1;(a<=i.height+i.vDomWindowBuffer||c<i.vDomWindowMinTotalRows)&&i.vDomBottom<i.displayRowsCount-1;){var m=i.vDomBottom+1,f=h[m],g=0;i.styleRow(f,m),n.appendChild(f.getElement()),f.initialized?f.heightInitialized||f.normalizeHeight(!0):f.initialize(!0),g=f.getHeight(),c<r?l+=g:a+=g,g>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*g),"group"!==f.type&&(d=!1),i.vDomBottom++,c++}e?(i.vDomTopPad=t?i.vDomRowHeight*this.vDomTop+o:i.scrollTop-l,i.vDomBottomPad=i.vDomBottom==i.displayRowsCount-1?0:Math.max(i.vDomScrollHeight-i.vDomTopPad-a-l,0)):(this.vDomTopPad=0,i.vDomRowHeight=Math.floor((a+l)/c),i.vDomBottomPad=i.vDomRowHeight*(i.displayRowsCount-i.vDomBottom-1),i.vDomScrollHeight=l+a+i.vDomBottomPad-i.height),n.style.paddingTop=i.vDomTopPad+"px",n.style.paddingBottom=i.vDomBottomPad+"px",t&&(this.scrollTop=i.vDomTopPad+l+o-(this.element.scrollWidth>this.element.clientWidth?this.element.offsetHeight-this.element.clientHeight:0)),this.scrollTop=Math.min(this.scrollTop,this.element.scrollHeight-this.height),this.element.scrollWidth>this.element.offsetWidth&&t&&(this.scrollTop+=this.element.offsetHeight-this.element.clientHeight),this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,s.scrollTop=this.scrollTop,n.style.minWidth=d?i.table.columnManager.getWidth()+"px":"",i.table.options.groupBy&&"fitDataFill"!=i.table.modules.layout.getMode()&&i.displayRowsCount==i.table.modules.groupRows.countGroups()&&(i.tableElement.style.minWidth=i.table.columnManager.getWidth())}else this.renderEmptyScroll();this.fixedHeight||this.adjustTableSize()},n.prototype.scrollVertical=function(e){var t=this.scrollTop-this.vDomScrollPosTop,o=this.scrollTop-this.vDomScrollPosBottom,i=2*this.vDomWindowBuffer;if(-t>i||o>i){var n=this.scrollLeft;this._virtualRenderFill(Math.floor(this.element.scrollTop/this.element.scrollHeight*this.displayRowsCount)),this.scrollHorizontal(n)}else e?(t<0&&this._addTopRow(-t),o<0&&(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer?this._removeBottomRow(-o):this.vDomScrollPosBottom=this.scrollTop)):(t>=0&&(this.scrollTop>this.vDomWindowBuffer?this._removeTopRow(t):this.vDomScrollPosTop=this.scrollTop),o>=0&&this._addBottomRow(o))},n.prototype._addTopRow=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomTop){var n=this.vDomTop-1,s=i[n],r=s.getHeight()||this.vDomRowHeight;e>=r&&(this.styleRow(s,n),o.insertBefore(s.getElement(),o.firstChild),s.initialized&&s.heightInitialized||(this.vDomTopNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomTopPad-=r,this.vDomTopPad<0&&(this.vDomTopPad=n*this.vDomRowHeight),n||(this.vDomTopPad=0),o.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=r,this.vDomTop--),e=-(this.scrollTop-this.vDomScrollPosTop),s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),t<this.vDomMaxRenderChain&&this.vDomTop&&e>=(i[this.vDomTop-1].getHeight()||this.vDomRowHeight)?this._addTopRow(e,t+1):this._quickNormalizeRowHeight(this.vDomTopNewRows)}},n.prototype._removeTopRow=function(e){var t=this.tableElement,o=this.getDisplayRows()[this.vDomTop],i=o.getHeight()||this.vDomRowHeight;if(e>=i){var n=o.getElement();n.parentNode.removeChild(n),this.vDomTopPad+=i,t.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?i:i+this.vDomWindowBuffer,this.vDomTop++,e=this.scrollTop-this.vDomScrollPosTop,this._removeTopRow(e)}},n.prototype._addBottomRow=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomBottom<this.displayRowsCount-1){var n=this.vDomBottom+1,s=i[n],r=s.getHeight()||this.vDomRowHeight;e>=r&&(this.styleRow(s,n),o.appendChild(s.getElement()),s.initialized&&s.heightInitialized||(this.vDomBottomNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomBottomPad-=r,(this.vDomBottomPad<0||n==this.displayRowsCount-1)&&(this.vDomBottomPad=0),o.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=r,this.vDomBottom++),e=this.scrollTop-this.vDomScrollPosBottom,s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),t<this.vDomMaxRenderChain&&this.vDomBottom<this.displayRowsCount-1&&e>=(i[this.vDomBottom+1].getHeight()||this.vDomRowHeight)?this._addBottomRow(e,t+1):this._quickNormalizeRowHeight(this.vDomBottomNewRows)}},n.prototype._removeBottomRow=function(e){var t=this.tableElement,o=this.getDisplayRows()[this.vDomBottom],i=o.getHeight()||this.vDomRowHeight;if(e>=i){var n=o.getElement();n.parentNode&&n.parentNode.removeChild(n),this.vDomBottomPad+=i,this.vDomBottomPad<0&&(this.vDomBottomPad=0),t.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=i,this.vDomBottom--,e=-(this.scrollTop-this.vDomScrollPosBottom),this._removeBottomRow(e)}},n.prototype._quickNormalizeRowHeight=function(e){e.forEach(function(e){e.calcHeight()}),e.forEach(function(e){e.setCellHeight()}),e.length=0},n.prototype.normalizeHeight=function(){this.activeRows.forEach(function(e){e.normalizeHeight()})},n.prototype.adjustTableSize=function(){var e,t=this.element.clientHeight;if("virtual"===this.renderMode){var o=this.columnManager.getElement().offsetHeight+(this.table.footerManager&&!this.table.footerManager.external?this.table.footerManager.getElement().offsetHeight:0);this.fixedHeight?(this.element.style.minHeight="calc(100% - "+o+"px)",this.element.style.height="calc(100% - "+o+"px)",this.element.style.maxHeight="calc(100% - "+o+"px)"):(this.element.style.height="",this.element.style.height=this.table.element.clientHeight-o+"px",this.element.scrollTop=this.scrollTop),this.height=this.element.clientHeight,this.vDomWindowBuffer=this.table.options.virtualDomBuffer||this.height,this.fixedHeight||t==this.element.clientHeight||((e=this.table.modExists("resizeTable"))&&!this.table.modules.resizeTable.autoResize||!e)&&this.redraw()}},n.prototype.reinitialize=function(){this.rows.forEach(function(e){e.reinitialize()})},n.prototype.blockRedraw=function(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1},n.prototype.restoreRedraw=function(){this.redrawBlock=!1,this.redrawBlockRestoreConfig?(this.refreshActiveData(this.redrawBlockRestoreConfig.stage,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1):this.redrawBlockRederInPosition&&this.reRenderInPosition(),this.redrawBlockRederInPosition=!1},n.prototype.redraw=function(e){var t=this.scrollLeft;this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,e?this.renderTable():("classic"==this.renderMode?this.table.options.groupBy?this.refreshActiveData("group",!1,!1):this._simpleRender():(this.reRenderInPosition(),this.scrollHorizontal(t)),this.displayRowsCount||this.table.options.placeholder&&this.getElement().appendChild(this.table.options.placeholder))},n.prototype.resetScroll=function(){if(this.element.scrollLeft=0,this.element.scrollTop=0,"ie"===this.table.browser){var e=document.createEvent("Event");e.initEvent("scroll",!1,!0),this.element.dispatchEvent(e)}else this.element.dispatchEvent(new Event("scroll"))};var s=function(e){this._row=e};s.prototype.getData=function(e){return this._row.getData(e)},s.prototype.getElement=function(){return this._row.getElement()},s.prototype.getCells=function(){var e=[];return this._row.getCells().forEach(function(t){e.push(t.getComponent())}),e},s.prototype.getCell=function(e){var t=this._row.getCell(e);return!!t&&t.getComponent()},s.prototype.getIndex=function(){return this._row.getData("data")[this._row.table.options.index]},s.prototype.getPosition=function(e){return this._row.table.rowManager.getRowPosition(this._row,e)},s.prototype.delete=function(){return this._row.delete()},s.prototype.scrollTo=function(){return this._row.table.rowManager.scrollToRow(this._row)},s.prototype.pageTo=function(){if(this._row.table.modExists("page",!0))return this._row.table.modules.page.setPageToRow(this._row)},s.prototype.move=function(e,t){this._row.moveToRow(e,t)},s.prototype.update=function(e){return this._row.updateData(e)},s.prototype.normalizeHeight=function(){this._row.normalizeHeight(!0)},s.prototype.select=function(){this._row.table.modules.selectRow.selectRows(this._row)},s.prototype.deselect=function(){this._row.table.modules.selectRow.deselectRows(this._row)},s.prototype.toggleSelect=function(){this._row.table.modules.selectRow.toggleRow(this._row)},s.prototype.isSelected=function(){return this._row.table.modules.selectRow.isRowSelected(this._row)},s.prototype._getSelf=function(){return this._row},s.prototype.freeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.freezeRow(this._row)},s.prototype.unfreeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.unfreezeRow(this._row)},s.prototype.treeCollapse=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.collapseRow(this._row)},s.prototype.treeExpand=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.expandRow(this._row)},s.prototype.treeToggle=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.toggleRow(this._row)},s.prototype.getTreeParent=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeParent(this._row)},s.prototype.getTreeChildren=function(){
-return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeChildren(this._row)},s.prototype.reformat=function(){return this._row.reinitialize()},s.prototype.getGroup=function(){return this._row.getGroup().getComponent()},s.prototype.getTable=function(){return this._row.table},s.prototype.getNextRow=function(){var e=this._row.nextRow();return e?e.getComponent():e},s.prototype.getPrevRow=function(){var e=this._row.prevRow();return e?e.getComponent():e};var r=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"row";this.table=t.table,this.parent=t,this.data={},this.type=o,this.element=this.createElement(),this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.setData(e),this.generateElement()};r.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-row"),e.setAttribute("role","row"),e},r.prototype.getElement=function(){return this.element},r.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},r.prototype.generateElement=function(){var e,t,o,i=this;!1!==i.table.options.selectable&&i.table.modExists("selectRow")&&i.table.modules.selectRow.initializeRow(this),!1!==i.table.options.movableRows&&i.table.modExists("moveRow")&&i.table.modules.moveRow.initializeRow(this),!1!==i.table.options.dataTree&&i.table.modExists("dataTree")&&i.table.modules.dataTree.initializeRow(this),"collapse"===i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout")&&i.table.modules.responsiveLayout.initializeRow(this),i.table.options.rowContextMenu&&this.table.modExists("menu")&&i.table.modules.menu.initializeRow(this),i.table.options.rowClick&&i.element.addEventListener("click",function(e){i.table.options.rowClick(e,i.getComponent())}),i.table.options.rowDblClick&&i.element.addEventListener("dblclick",function(e){i.table.options.rowDblClick(e,i.getComponent())}),i.table.options.rowContext&&i.element.addEventListener("contextmenu",function(e){i.table.options.rowContext(e,i.getComponent())}),i.table.options.rowMouseEnter&&i.element.addEventListener("mouseenter",function(e){i.table.options.rowMouseEnter(e,i.getComponent())}),i.table.options.rowMouseLeave&&i.element.addEventListener("mouseleave",function(e){i.table.options.rowMouseLeave(e,i.getComponent())}),i.table.options.rowMouseOver&&i.element.addEventListener("mouseover",function(e){i.table.options.rowMouseOver(e,i.getComponent())}),i.table.options.rowMouseOut&&i.element.addEventListener("mouseout",function(e){i.table.options.rowMouseOut(e,i.getComponent())}),i.table.options.rowMouseMove&&i.element.addEventListener("mousemove",function(e){i.table.options.rowMouseMove(e,i.getComponent())}),i.table.options.rowTap&&(o=!1,i.element.addEventListener("touchstart",function(e){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(e){o&&i.table.options.rowTap(e,i.getComponent()),o=!1})),i.table.options.rowDblTap&&(e=null,i.element.addEventListener("touchend",function(t){e?(clearTimeout(e),e=null,i.table.options.rowDblTap(t,i.getComponent())):e=setTimeout(function(){clearTimeout(e),e=null},300)})),i.table.options.rowTapHold&&(t=null,i.element.addEventListener("touchstart",function(e){clearTimeout(t),t=setTimeout(function(){clearTimeout(t),t=null,o=!1,i.table.options.rowTapHold(e,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(e){clearTimeout(t),t=null}))},r.prototype.generateCells=function(){this.cells=this.table.columnManager.generateCells(this)},r.prototype.initialize=function(e){var t=this;if(!t.initialized||e){for(t.deleteCells();t.element.firstChild;)t.element.removeChild(t.element.firstChild);this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutRow(this),this.generateCells(),t.cells.forEach(function(e){t.element.appendChild(e.getElement()),e.cellRendered()}),e&&t.normalizeHeight(),t.table.options.dataTree&&t.table.modExists("dataTree")&&t.table.modules.dataTree.layoutRow(this),"collapse"===t.table.options.responsiveLayout&&t.table.modExists("responsiveLayout")&&t.table.modules.responsiveLayout.layoutRow(this),t.table.options.rowFormatter&&t.table.options.rowFormatter(t.getComponent()),t.table.options.resizableRows&&t.table.modExists("resizeRows")&&t.table.modules.resizeRows.initializeRow(t),t.initialized=!0}},r.prototype.reinitializeHeight=function(){this.heightInitialized=!1,null!==this.element.offsetParent&&this.normalizeHeight(!0)},r.prototype.reinitialize=function(){this.initialized=!1,this.heightInitialized=!1,this.manualHeight||(this.height=0,this.heightStyled=""),null!==this.element.offsetParent&&this.initialize(!0)},r.prototype.calcHeight=function(e){var t=0,o=this.table.options.resizableRows?this.element.clientHeight:0;this.cells.forEach(function(e){var o=e.getHeight();o>t&&(t=o)}),this.height=e?Math.max(t,o):this.manualHeight?this.height:Math.max(t,o),this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight},r.prototype.setCellHeight=function(){this.cells.forEach(function(e){e.setHeight()}),this.heightInitialized=!0},r.prototype.clearCellHeight=function(){this.cells.forEach(function(e){e.clearHeight()})},r.prototype.normalizeHeight=function(e){e&&this.clearCellHeight(),this.calcHeight(e),this.setCellHeight()},r.prototype.setHeight=function(e,t){(this.height!=e||t)&&(this.manualHeight=!0,this.height=e,this.heightStyled=e?e+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight)},r.prototype.getHeight=function(){return this.outerHeight},r.prototype.getWidth=function(){return this.element.offsetWidth},r.prototype.deleteCell=function(e){var t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)},r.prototype.setData=function(e){this.table.modExists("mutator")&&(e=this.table.modules.mutator.transformRow(e,"data")),this.data=e,this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchRow(this)},r.prototype.updateData=function(e){var t,o=this,i=u.prototype.helpers.elVisible(this.element),n={};return new Promise(function(s,r){"string"==typeof e&&(e=JSON.parse(e)),o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.block(),o.table.modExists("mutator")?(n=Object.assign(n,o.data),n=Object.assign(n,e),t=o.table.modules.mutator.transformRow(n,"data",e)):t=e;for(var a in t)o.data[a]=t[a];o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.unblock();for(var a in e){o.table.columnManager.getColumnsByFieldRoot(a).forEach(function(e){var n=o.getCell(e.getField());if(n){var s=e.getFieldValue(t);n.getValue()!=s&&(n.setValueProcessData(s),i&&n.cellRendered())}})}i?(o.normalizeHeight(!0),o.table.options.rowFormatter&&o.table.options.rowFormatter(o.getComponent())):(o.initialized=!1,o.height=0,o.heightStyled=""),!1!==o.table.options.dataTree&&o.table.modExists("dataTree")&&o.table.modules.dataTree.redrawNeeded(e)&&(o.table.modules.dataTree.initializeRow(o),o.table.modules.dataTree.layoutRow(o),o.table.rowManager.refreshActiveData("tree",!1,!0)),o.table.options.rowUpdated.call(o.table,o.getComponent()),s()})},r.prototype.getData=function(e){var t=this;return e?t.table.modExists("accessor")?t.table.modules.accessor.transformRow(t.data,e):void 0:this.data},r.prototype.getCell=function(e){return e=this.table.columnManager.findColumn(e),this.cells.find(function(t){return t.column===e})},r.prototype.getCellIndex=function(e){return this.cells.findIndex(function(t){return t===e})},r.prototype.findNextEditableCell=function(e){var t=!1;if(e<this.cells.length-1)for(var o=e+1;o<this.cells.length;o++){var i=this.cells[o];if(i.column.modules.edit&&u.prototype.helpers.elVisible(i.getElement())){var n=!0;if("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n){t=i;break}}}return t},r.prototype.findPrevEditableCell=function(e){var t=!1;if(e>0)for(var o=e-1;o>=0;o--){var i=this.cells[o],n=!0;if(i.column.modules.edit&&u.prototype.helpers.elVisible(i.getElement())&&("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n)){t=i;break}}return t},r.prototype.getCells=function(){return this.cells},r.prototype.nextRow=function(){return this.table.rowManager.nextDisplayRow(this,!0)||!1},r.prototype.prevRow=function(){return this.table.rowManager.prevDisplayRow(this,!0)||!1},r.prototype.moveToRow=function(e,t){var o=this.table.rowManager.findRow(e);o?(this.table.rowManager.moveRowActual(this,o,!t),this.table.rowManager.refreshActiveData("display",!1,!0)):console.warn("Move Error - No matching row found:",e)},r.prototype.delete=function(){var e=this;return new Promise(function(t,o){var i,n;e.table.options.history&&e.table.modExists("history")&&(e.table.options.groupBy&&e.table.modExists("groupRows")?(n=e.getGroup().rows,(i=n.indexOf(e))&&(i=n[i-1])):(i=e.table.rowManager.getRowIndex(e))&&(i=e.table.rowManager.rows[i-1]),e.table.modules.history.action("rowDelete",e,{data:e.getData(),pos:!i,index:i})),e.deleteActual(),t()})},r.prototype.deleteActual=function(e){this.table.rowManager.getRowIndex(this);this.table.modExists("selectRow")&&this.table.modules.selectRow._deselectRow(this,!0),this.table.modExists("edit")&&this.table.modules.edit.currentCell.row===this&&this.table.modules.edit.cancelEdit(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0),this.modules.group&&this.modules.group.removeRow(this),this.table.rowManager.deleteRow(this,e),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.table.modExists("columnCalcs")&&(this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.columnCalcs.recalcRowGroup(this):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows))},r.prototype.deleteCells=function(){for(var e=this.cells.length,t=0;t<e;t++)this.cells[0].delete()},r.prototype.wipe=function(){for(this.deleteCells();this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element=!1,this.modules={},this.element.parentNode&&this.element.parentNode.removeChild(this.element)},r.prototype.getGroup=function(){return this.modules.group||!1},r.prototype.getComponent=function(){return new s(this)};var a=function(e){this._cell=e};a.prototype.getValue=function(){return this._cell.getValue()},a.prototype.getOldValue=function(){return this._cell.getOldValue()},a.prototype.getElement=function(){return this._cell.getElement()},a.prototype.getRow=function(){return this._cell.row.getComponent()},a.prototype.getData=function(){return this._cell.row.getData()},a.prototype.getField=function(){return this._cell.column.getField()},a.prototype.getColumn=function(){return this._cell.column.getComponent()},a.prototype.setValue=function(e,t){void 0===t&&(t=!0),this._cell.setValue(e,t)},a.prototype.restoreOldValue=function(){this._cell.setValueActual(this._cell.getOldValue())},a.prototype.edit=function(e){return this._cell.edit(e)},a.prototype.cancelEdit=function(){this._cell.cancelEdit()},a.prototype.nav=function(){return this._cell.nav()},a.prototype.checkHeight=function(){this._cell.checkHeight()},a.prototype.getTable=function(){return this._cell.table},a.prototype._getSelf=function(){return this._cell};var l=function(e,t){this.table=e.table,this.column=e,this.row=t,this.element=null,this.value=null,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.build()};l.prototype.build=function(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data))},l.prototype.generateElement=function(){this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.element=this.element},l.prototype._configureCell=function(){var e=this,t=e.column.cellEvents,o=e.element,i=this.column.getField(),n={top:"flex-start",bottom:"flex-end",middle:"center"},s={left:"flex-start",right:"flex-end",center:"center"};if(o.style.textAlign=e.column.hozAlign,e.column.vertAlign&&(o.style.display="inline-flex",o.style.alignItems=n[e.column.vertAlign]||"",e.column.hozAlign&&(o.style.justifyContent=s[e.column.hozAlign]||"")),i&&o.setAttribute("tabulator-field",i),e.column.definition.cssClass){e.column.definition.cssClass.split(" ").forEach(function(e){o.classList.add(e)})}"hover"===this.table.options.tooltipGenerationMode&&o.addEventListener("mouseenter",function(t){e._generateTooltip()}),e._bindClickEvents(t),e._bindTouchEvents(t),e._bindMouseEvents(t),e.column.modules.edit&&e.table.modules.edit.bindEditor(e),e.column.definition.rowHandle&&!1!==e.table.options.movableRows&&e.table.modExists("moveRow")&&e.table.modules.moveRow.initializeCell(e),e.column.visible||e.hide()},l.prototype._bindClickEvents=function(e){var t=this,o=t.element;(e.cellClick||t.table.options.cellClick)&&o.addEventListener("click",function(o){var i=t.getComponent();e.cellClick&&e.cellClick.call(t.table,o,i),t.table.options.cellClick&&t.table.options.cellClick.call(t.table,o,i)}),e.cellDblClick||this.table.options.cellDblClick?o.addEventListener("dblclick",function(o){var i=t.getComponent();e.cellDblClick&&e.cellDblClick.call(t.table,o,i),t.table.options.cellDblClick&&t.table.options.cellDblClick.call(t.table,o,i)}):o.addEventListener("dblclick",function(e){if(!t.table.modExists("edit")||t.table.modules.edit.currentCell!==t){e.preventDefault();try{if(document.selection){var o=document.body.createTextRange();o.moveToElementText(t.element),o.select()}else if(window.getSelection){var o=document.createRange();o.selectNode(t.element),window.getSelection().removeAllRanges(),window.getSelection().addRange(o)}}catch(e){}}}),(e.cellContext||this.table.options.cellContext)&&o.addEventListener("contextmenu",function(o){var i=t.getComponent();e.cellContext&&e.cellContext.call(t.table,o,i),t.table.options.cellContext&&t.table.options.cellContext.call(t.table,o,i)})},l.prototype._bindMouseEvents=function(e){var t=this,o=t.element;(e.cellMouseEnter||t.table.options.cellMouseEnter)&&o.addEventListener("mouseenter",function(o){var i=t.getComponent();e.cellMouseEnter&&e.cellMouseEnter.call(t.table,o,i),t.table.options.cellMouseEnter&&t.table.options.cellMouseEnter.call(t.table,o,i)}),(e.cellMouseLeave||t.table.options.cellMouseLeave)&&o.addEventListener("mouseleave",function(o){var i=t.getComponent();e.cellMouseLeave&&e.cellMouseLeave.call(t.table,o,i),t.table.options.cellMouseLeave&&t.table.options.cellMouseLeave.call(t.table,o,i)}),(e.cellMouseOver||t.table.options.cellMouseOver)&&o.addEventListener("mouseover",function(o){var i=t.getComponent();e.cellMouseOver&&e.cellMouseOver.call(t.table,o,i),t.table.options.cellMouseOver&&t.table.options.cellMouseOver.call(t.table,o,i)}),(e.cellMouseOut||t.table.options.cellMouseOut)&&o.addEventListener("mouseout",function(o){var i=t.getComponent();e.cellMouseOut&&e.cellMouseOut.call(t.table,o,i),t.table.options.cellMouseOut&&t.table.options.cellMouseOut.call(t.table,o,i)}),(e.cellMouseMove||t.table.options.cellMouseMove)&&o.addEventListener("mousemove",function(o){var i=t.getComponent();e.cellMouseMove&&e.cellMouseMove.call(t.table,o,i),t.table.options.cellMouseMove&&t.table.options.cellMouseMove.call(t.table,o,i)})},l.prototype._bindTouchEvents=function(e){var t,o,i,n=this,s=n.element;(e.cellTap||this.table.options.cellTap)&&(i=!1,s.addEventListener("touchstart",function(e){i=!0},{passive:!0}),s.addEventListener("touchend",function(t){if(i){var o=n.getComponent();e.cellTap&&e.cellTap.call(n.table,t,o),n.table.options.cellTap&&n.table.options.cellTap.call(n.table,t,o)}i=!1})),(e.cellDblTap||this.table.options.cellDblTap)&&(t=null,s.addEventListener("touchend",function(o){if(t){clearTimeout(t),t=null;var i=n.getComponent();e.cellDblTap&&e.cellDblTap.call(n.table,o,i),n.table.options.cellDblTap&&n.table.options.cellDblTap.call(n.table,o,i)}else t=setTimeout(function(){clearTimeout(t),t=null},300)})),(e.cellTapHold||this.table.options.cellTapHold)&&(o=null,s.addEventListener("touchstart",function(t){clearTimeout(o),o=setTimeout(function(){clearTimeout(o),o=null,i=!1;var s=n.getComponent();e.cellTapHold&&e.cellTapHold.call(n.table,t,s),n.table.options.cellTapHold&&n.table.options.cellTapHold.call(n.table,t,s)},1e3)},{passive:!0}),s.addEventListener("touchend",function(e){clearTimeout(o),o=null}))},l.prototype._generateContents=function(){var e;switch(e=this.table.modExists("format")?this.table.modules.format.formatValue(this):this.element.innerHTML=this.value,void 0===e?"undefined":_typeof(e)){case"object":if(e instanceof Node){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.appendChild(e)}else this.element.innerHTML="",null!=e&&console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",e);break;case"undefined":case"null":this.element.innerHTML="";break;default:this.element.innerHTML=e}},l.prototype.cellRendered=function(){this.table.modExists("format")&&this.table.modules.format.cellRendered&&this.table.modules.format.cellRendered(this)},l.prototype._generateTooltip=function(){var e=this.column.tooltip;e?(!0===e?e=this.value:"function"==typeof e&&!1===(e=e(this.getComponent()))&&(e=""),void 0===e&&(e=""),this.element.setAttribute("title",e)):this.element.setAttribute("title","")},l.prototype.getElement=function(){return this.element},l.prototype.getValue=function(){return this.value},l.prototype.getOldValue=function(){return this.oldValue},l.prototype.setValue=function(e,t){var o,i=this.setValueProcessData(e,t);i&&(this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("cellEdit",this,{oldValue:this.oldValue,newValue:this.value}),o=this.getComponent(),this.column.cellEvents.cellEdited&&this.column.cellEvents.cellEdited.call(this.table,o),this.cellRendered(),this.table.options.cellEdited.call(this.table,o),this.table.options.dataEdited.call(this.table,this.table.rowManager.getData()))},l.prototype.setValueProcessData=function(e,t){var o=!1;return this.value!=e&&(o=!0,t&&this.column.modules.mutate&&(e=this.table.modules.mutator.transformCell(this,e))),this.setValueActual(e),o&&this.table.modExists("columnCalcs")&&(this.column.definition.topCalc||this.column.definition.bottomCalc)&&(this.table.options.groupBy&&this.table.modExists("groupRows")?("table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs||this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),"table"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.recalcRowGroup(this.row)):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows)),o},l.prototype.setValueActual=function(e){this.oldValue=this.value,this.value=e,this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.block(),this.column.setFieldValue(this.row.data,e),this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.unblock(),this._generateContents(),this._generateTooltip(),this.table.options.resizableColumns&&this.table.modExists("resizeColumns")&&this.table.modules.resizeColumns.initializeColumn("cell",this.column,this.element),this.column.definition.contextMenu&&this.table.modExists("menu")&&this.table.modules.menu.initializeCell(this),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutElement(this.element,this.column)},l.prototype.setWidth=function(){this.width=this.column.width,this.element.style.width=this.column.widthStyled},l.prototype.clearWidth=function(){this.width="",this.element.style.width=""},l.prototype.getWidth=function(){return this.width||this.element.offsetWidth},l.prototype.setMinWidth=function(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled},l.prototype.checkHeight=function(){this.row.reinitializeHeight()},l.prototype.clearHeight=function(){this.element.style.height="",this.height=null},l.prototype.setHeight=function(){this.height=this.row.height,this.element.style.height=this.row.heightStyled},l.prototype.getHeight=function(){return this.height||this.element.offsetHeight},l.prototype.show=function(){this.element.style.display=""},l.prototype.hide=function(){this.element.style.display="none"},l.prototype.edit=function(e){if(this.table.modExists("edit",!0))return this.table.modules.edit.editCell(this,e)},l.prototype.cancelEdit=function(){if(this.table.modExists("edit",!0)){var e=this.table.modules.edit.getCurrentCell();e&&e._getSelf()===this?this.table.modules.edit.cancelEdit():console.warn("Cancel Editor Error - This cell is not currently being edited ")}},l.prototype.delete=function(){this.table.rowManager.redrawBlock||this.element.parentNode.removeChild(this.element),this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}},l.prototype.nav=function(){var e=this,t=!1,o=this.row.getCellIndex(this);return{next:function(){var t,o=this.right();return!!o||!(!(t=e.table.rowManager.nextDisplayRow(e.row,!0))||!(o=t.findNextEditableCell(-1)))&&(o.edit(),!0)},prev:function(){var t,o=this.left();return!!o||!(!(t=e.table.rowManager.prevDisplayRow(e.row,!0))||!(o=t.findPrevEditableCell(t.cells.length)))&&(o.edit(),!0)},left:function(){return!!(t=e.row.findPrevEditableCell(o))&&(t.edit(),!0)},right:function(){return!!(t=e.row.findNextEditableCell(o))&&(t.edit(),!0)},up:function(){var t=e.table.rowManager.prevDisplayRow(e.row,!0);t&&t.cells[o].edit()},down:function(){var t=e.table.rowManager.nextDisplayRow(e.row,!0);t&&t.cells[o].edit()}}},l.prototype.getIndex=function(){this.row.getCellIndex(this)},l.prototype.getComponent=function(){return new a(this)};var c=function(e){this.table=e,this.active=!1,this.element=this.createElement(),this.external=!1,this.links=[],this._initialize()};c.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-footer"),e},c.prototype._initialize=function(e){if(this.table.options.footerElement)switch(_typeof(this.table.options.footerElement)){case"string":"<"===this.table.options.footerElement[0]?this.element.innerHTML=this.table.options.footerElement:(this.external=!0,this.element=document.querySelector(this.table.options.footerElement));break;default:this.element=this.table.options.footerElement}},c.prototype.getElement=function(){return this.element},c.prototype.append=function(e,t){this.activate(t),this.element.appendChild(e),this.table.rowManager.adjustTableSize()},c.prototype.prepend=function(e,t){this.activate(t),this.element.insertBefore(e,this.element.firstChild),this.table.rowManager.adjustTableSize()},c.prototype.remove=function(e){e.parentNode.removeChild(e),this.deactivate()},c.prototype.deactivate=function(e){this.element.firstChild&&!e||(this.external||this.element.parentNode.removeChild(this.element),this.active=!1)},c.prototype.activate=function(e){this.active||(this.active=!0,this.external||(this.table.element.appendChild(this.getElement()),this.table.element.style.display="")),e&&this.links.push(e)},c.prototype.redraw=function(){this.links.forEach(function(e){e.footerRedraw()})};var u=function e(t,o){this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.modules={},this.initializeElement(t),this.initializeOptions(o||{}),this._create(),e.prototype.comms.register(this)};u.prototype.defaultOptions={height:!1,minHeight:!1,maxHeight:!1,layout:"fitData",layoutColumnsOnNewData:!1,columnMinWidth:40,columnHeaderVertAlign:"top",columnVertAlign:!1,resizableColumns:!0,resizableRows:!1,autoResize:!0,columns:[],cellHozAlign:"",cellVertAlign:"",data:[],autoColumns:!1,reactiveData:!1,nestedFieldSeparator:".",tooltips:!1,tooltipsHeader:!1,tooltipGenerationMode:"load",initialSort:!1,initialFilter:!1,initialHeaderFilter:!1,columnHeaderSortMulti:!0,sortOrderReverse:!1,headerSort:!0,headerSortTristate:!1,footerElement:!1,index:"id",keybindings:[],tabEndNewRow:!1,invalidOptionWarnings:!0,clipboard:!1,clipboardCopyStyled:!0,clipboardCopyConfig:!1,clipboardCopyFormatter:!1,clipboardCopyRowRange:"active",clipboardPasteParser:"table",clipboardPasteAction:"insert",clipboardCopied:function(){},clipboardPasted:function(){},clipboardPasteError:function(){},downloadDataFormatter:!1,downloadReady:function(e,t){return t},downloadComplete:!1,downloadConfig:!1,dataTree:!1,dataTreeElementColumn:!1,dataTreeBranchElement:!0,dataTreeChildIndent:9,dataTreeChildField:"_children",dataTreeCollapseElement:!1,dataTreeExpandElement:!1,dataTreeStartExpanded:!1,dataTreeRowExpanded:function(){},dataTreeRowCollapsed:function(){},dataTreeChildColumnCalcs:!1,dataTreeSelectPropagate:!1,printAsHtml:!1,printFormatter:!1,printHeader:!1,printFooter:!1,printCopyStyle:!0,printStyled:!0,printVisibleRows:!0,printRowRange:"visible",printConfig:{},addRowPos:"bottom",selectable:"highlight",selectableRangeMode:"drag",selectableRollingSelection:!0,selectablePersistence:!0,selectableCheck:function(e,t){return!0},headerFilterLiveFilterDelay:300,headerFilterPlaceholder:!1,headerVisible:!0,history:!1,locale:!1,langs:{},virtualDom:!0,virtualDomBuffer:0,persistentLayout:!1,persistentSort:!1,persistentFilter:!1,persistenceID:"",persistenceMode:!0,persistenceReaderFunc:!1,persistenceWriterFunc:!1,persistence:!1,responsiveLayout:!1,responsiveLayoutCollapseStartOpen:!0,responsiveLayoutCollapseUseFormatters:!0,responsiveLayoutCollapseFormatter:!1,pagination:!1,paginationSize:!1,paginationInitialPage:1,paginationButtonCount:5,paginationSizeSelector:!1,paginationElement:!1,paginationDataSent:{},paginationDataReceived:{},paginationAddRow:"page",ajaxURL:!1,ajaxURLGenerator:!1,ajaxParams:{},ajaxConfig:"get",ajaxContentType:"form",ajaxRequestFunc:!1,ajaxLoader:!0,ajaxLoaderLoading:!1,ajaxLoaderError:!1,ajaxFiltering:!1,ajaxSorting:!1,ajaxProgressiveLoad:!1,ajaxProgressiveLoadDelay:0,ajaxProgressiveLoadScrollMargin:0,groupBy:!1,groupStartOpen:!0,groupValues:!1,groupHeader:!1,htmlOutputConfig:!1,movableColumns:!1,movableRows:!1,movableRowsConnectedTables:!1,movableRowsSender:!1,movableRowsReceiver:"insert",movableRowsSendingStart:function(){},movableRowsSent:function(){},movableRowsSentFailed:function(){},movableRowsSendingStop:function(){},movableRowsReceivingStart:function(){},movableRowsReceived:function(){},movableRowsReceivedFailed:function(){},movableRowsReceivingStop:function(){},scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,placeholder:!1,tableBuilding:function(){},tableBuilt:function(){},renderStarted:function(){},renderComplete:function(){},rowClick:!1,rowDblClick:!1,rowContext:!1,rowTap:!1,rowDblTap:!1,rowTapHold:!1,rowMouseEnter:!1,rowMouseLeave:!1,rowMouseOver:!1,rowMouseOut:!1,rowMouseMove:!1,rowContextMenu:!1,rowAdded:function(){},rowDeleted:function(){},rowMoved:function(){},rowUpdated:function(){},rowSelectionChanged:function(){},rowSelected:function(){},rowDeselected:function(){},rowResized:function(){},cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1,cellEditing:function(){},cellEdited:function(){},cellEditCancelled:function(){},columnMoved:!1,columnResized:function(){},columnTitleChanged:function(){},columnVisibilityChanged:function(){},htmlImporting:function(){},htmlImported:function(){},dataLoading:function(){},dataLoaded:function(){},dataEdited:function(){},ajaxRequesting:function(){},ajaxResponse:!1,ajaxError:function(){},dataFiltering:!1,dataFiltered:!1,dataSorting:function(){},dataSorted:function(){},groupToggleElement:"arrow",groupClosedShowCalcs:!1,dataGrouping:function(){},dataGrouped:!1,groupVisibilityChanged:function(){},groupClick:!1,groupDblClick:!1,groupContext:!1,groupTap:!1,groupDblTap:!1,groupTapHold:!1,columnCalcs:!0,pageLoaded:function(){},localized:function(){},validationFailed:function(){},historyUndo:function(){},historyRedo:function(){},scrollHorizontal:function(){},scrollVertical:function(){}},u.prototype.initializeOptions=function(e){if(!1!==e.invalidOptionWarnings)for(var t in e)void 0===this.defaultOptions[t]&&console.warn("Invalid table constructor option:",t);for(var t in this.defaultOptions)t in e?this.options[t]=e[t]:Array.isArray(this.defaultOptions[t])?this.options[t]=[]:"object"===_typeof(this.defaultOptions[t])&&null!==this.defaultOptions[t]?this.options[t]={}:this.options[t]=this.defaultOptions[t]},u.prototype.initializeElement=function(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement?(this.element=e,!0):"string"==typeof e?(this.element=document.querySelector(e),!!this.element||(console.error("Tabulator Creation Error - no element found matching selector: ",e),!1)):(console.error("Tabulator Creation Error - Invalid element provided:",e),!1)},u.prototype._mapDepricatedFunctionality=function(){(this.options.persistentLayout||this.options.persistentSort||this.options.persistentFilter)&&(this.options.persistence||(this.options.persistence={})),void 0!==this.options.clipboardCopyHeader&&(this.options.columnHeaders=this.options.clipboardCopyHeader,console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option")),!0!==this.options.printVisibleRows&&(console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option"),this.options.persistence.printRowRange="active"),!0!==this.options.printCopyStyle&&(console.warn("printCopyStyle option is deprecated, you should now use the printStyled option"),this.options.persistence.printStyled=this.options.printCopyStyle),this.options.persistentLayout&&(console.warn("persistentLayout option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.columns&&(this.options.persistence.columns=!0)),this.options.persistentSort&&(console.warn("persistentSort option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.sort&&(this.options.persistence.sort=!0)),this.options.persistentFilter&&(console.warn("persistentFilter option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.filter&&(this.options.persistence.filter=!0)),this.options.columnVertAlign&&(console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option"),this.options.columnHeaderVertAlign=this.options.columnVertAlign)},u.prototype._clearSelection=function(){this.element.classList.add("tabulator-block-select"),window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty(),this.element.classList.remove("tabulator-block-select")},u.prototype._create=function(){this._clearObjectPointers(),this._mapDepricatedFunctionality(),this.bindModules(),"TABLE"===this.element.tagName&&this.modExists("htmlTableImport",!0)&&this.modules.htmlTableImport.parseTable(),this.columnManager=new t(this),this.rowManager=new n(this),this.footerManager=new c(this),this.columnManager.setRowManager(this.rowManager),this.rowManager.setColumnManager(this.columnManager),this._buildElement(),this._loadInitialData()},u.prototype._clearObjectPointers=function(){this.options.columns=this.options.columns.slice(0),this.options.reactiveData||(this.options.data=this.options.data.slice(0))},
-u.prototype._buildElement=function(){var e=this,t=this.element,o=this.modules,i=this.options;for(i.tableBuilding.call(this),t.classList.add("tabulator"),t.setAttribute("role","grid");t.firstChild;)t.removeChild(t.firstChild);i.height&&(i.height=isNaN(i.height)?i.height:i.height+"px",t.style.height=i.height),!1!==i.minHeight&&(i.minHeight=isNaN(i.minHeight)?i.minHeight:i.minHeight+"px",t.style.minHeight=i.minHeight),!1!==i.maxHeight&&(i.maxHeight=isNaN(i.maxHeight)?i.maxHeight:i.maxHeight+"px",t.style.maxHeight=i.maxHeight),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modExists("layout",!0)&&o.layout.initialize(i.layout),!1!==i.headerFilterPlaceholder&&o.localize.setHeaderFilterPlaceholder(i.headerFilterPlaceholder);for(var n in i.langs)o.localize.installLang(n,i.langs[n]);if(o.localize.setLocale(i.locale),"string"==typeof i.placeholder){var s=document.createElement("div");s.classList.add("tabulator-placeholder");var r=document.createElement("span");r.innerHTML=i.placeholder,s.appendChild(r),i.placeholder=s}if(t.appendChild(this.columnManager.getElement()),t.appendChild(this.rowManager.getElement()),i.footerElement&&this.footerManager.activate(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.initialize(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.columns&&(i.columns=o.persistence.load("columns",i.columns)),i.movableRows&&this.modExists("moveRow")&&o.moveRow.initialize(),i.autoColumns&&this.options.data&&this.columnManager.generateColumnsFromRowData(this.options.data),this.modExists("columnCalcs")&&o.columnCalcs.initialize(),this.columnManager.setColumns(i.columns),i.dataTree&&this.modExists("dataTree",!0)&&o.dataTree.initialize(),this.modExists("frozenRows")&&this.modules.frozenRows.initialize(),(i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort||i.initialSort)&&this.modExists("sort",!0)){var a=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort?!1===(a=o.persistence.load("sort"))&&i.initialSort&&(a=i.initialSort):i.initialSort&&(a=i.initialSort),o.sort.setSort(a)}if((i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter||i.initialFilter)&&this.modExists("filter",!0)){var l=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter?!1===(l=o.persistence.load("filter"))&&i.initialFilter&&(l=i.initialFilter):i.initialFilter&&(l=i.initialFilter),o.filter.setFilter(l)}i.initialHeaderFilter&&this.modExists("filter",!0)&&i.initialHeaderFilter.forEach(function(t){var i=e.columnManager.findColumn(t.field);if(!i)return console.warn("Column Filter Error - No matching column found:",t.field),!1;o.filter.setHeaderFilterValue(i,t.value)}),this.modExists("ajax")&&o.ajax.initialize(),i.pagination&&this.modExists("page",!0)&&o.page.initialize(),i.groupBy&&this.modExists("groupRows",!0)&&o.groupRows.initialize(),this.modExists("keybindings")&&o.keybindings.initialize(),this.modExists("selectRow")&&o.selectRow.clearSelectionData(!0),i.autoResize&&this.modExists("resizeTable")&&o.resizeTable.initialize(),this.modExists("clipboard")&&o.clipboard.initialize(),i.printAsHtml&&this.modExists("print")&&o.print.initialize(),i.tableBuilt.call(this)},u.prototype._loadInitialData=function(){var e=this;if(e.options.pagination&&e.modExists("page"))if(e.modules.page.reset(!0,!0),"local"==e.options.pagination){if(e.options.data.length)e.rowManager.setData(e.options.data,!1,!0);else{if((e.options.ajaxURL||e.options.ajaxURLGenerator)&&e.modExists("ajax"))return void e.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){e.options.paginationInitialPage&&e.modules.page.setPage(e.options.paginationInitialPage)});e.rowManager.setData(e.options.data,!1,!0)}e.options.paginationInitialPage&&e.modules.page.setPage(e.options.paginationInitialPage)}else e.options.ajaxURL?e.modules.page.setPage(e.options.paginationInitialPage).then(function(){}).catch(function(){}):e.rowManager.setData([],!1,!0);else e.options.data.length?e.rowManager.setData(e.options.data):(e.options.ajaxURL||e.options.ajaxURLGenerator)&&e.modExists("ajax")?e.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){}):e.rowManager.setData(e.options.data,!1,!0)},u.prototype.destroy=function(){var e=this.element;for(u.prototype.comms.deregister(this),this.options.reactiveData&&this.modExists("reactiveData",!0)&&this.modules.reactiveData.unwatchData(),this.rowManager.rows.forEach(function(e){e.wipe()}),this.rowManager.rows=[],this.rowManager.activeRows=[],this.rowManager.displayRows=[],this.options.autoResize&&this.modExists("resizeTable")&&this.modules.resizeTable.clearBindings(),this.modExists("keybindings")&&this.modules.keybindings.clearBindings();e.firstChild;)e.removeChild(e.firstChild);e.classList.remove("tabulator")},u.prototype._detectBrowser=function(){var e=navigator.userAgent||navigator.vendor||window.opera;e.indexOf("Trident")>-1?(this.browser="ie",this.browserSlow=!0):e.indexOf("Edge")>-1?(this.browser="edge",this.browserSlow=!0):e.indexOf("Firefox")>-1?(this.browser="firefox",this.browserSlow=!1):(this.browser="other",this.browserSlow=!1),this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))},u.prototype.blockRedraw=function(){return this.rowManager.blockRedraw()},u.prototype.restoreRedraw=function(){return this.rowManager.restoreRedraw()},u.prototype.setDataFromLocalFile=function(e){var t=this;return new Promise(function(o,i){var n=document.createElement("input");n.type="file",n.accept=e||".json,application/json",n.addEventListener("change",function(e){var s,r=n.files[0],a=new FileReader;a.readAsText(r),a.onload=function(e){try{s=JSON.parse(a.result)}catch(e){return console.warn("File Load Error - File contents is invalid JSON",e),void i(e)}t._setData(s).then(function(e){o(e)}).catch(function(e){o(e)})},a.onerror=function(e){console.warn("File Load Error - Unable to read file"),i()}}),n.click()})},u.prototype.setData=function(e,t,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(e,t,o,!1,!0)},u.prototype._setData=function(e,t,o,i,n){var s=this;return"string"!=typeof e?e?s.rowManager.setData(e,i,n):s.modExists("ajax")&&(s.modules.ajax.getUrl||s.options.ajaxURLGenerator)?"remote"==s.options.pagination&&s.modExists("page",!0)?(s.modules.page.reset(!0,!0),s.modules.page.setPage(1)):s.modules.ajax.loadData(i,n):s.rowManager.setData([],i,n):0==e.indexOf("{")||0==e.indexOf("[")?s.rowManager.setData(JSON.parse(e),i,n):s.modExists("ajax",!0)?(t&&s.modules.ajax.setParams(t),o&&s.modules.ajax.setConfig(o),s.modules.ajax.setUrl(e),"remote"==s.options.pagination&&s.modExists("page",!0)?(s.modules.page.reset(!0,!0),s.modules.page.setPage(1)):s.modules.ajax.loadData(i,n)):void 0},u.prototype.clearData=function(){this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this.rowManager.clearData()},u.prototype.getData=function(e){return!0===e&&(console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'"),e="active"),this.rowManager.getData(e)},u.prototype.getDataCount=function(e){return!0===e&&(console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'"),e="active"),this.rowManager.getDataCount(e)},u.prototype.searchRows=function(e,t,o){if(this.modExists("filter",!0))return this.modules.filter.search("rows",e,t,o)},u.prototype.searchData=function(e,t,o){if(this.modExists("filter",!0))return this.modules.filter.search("data",e,t,o)},u.prototype.getHtml=function(e,t,o){if(this.modExists("export",!0))return this.modules.export.getHtml(e,t,o)},u.prototype.print=function(e,t,o){if(this.modExists("print",!0))return this.modules.print.printFullscreen(e,t,o)},u.prototype.getAjaxUrl=function(){if(this.modExists("ajax",!0))return this.modules.ajax.getUrl()},u.prototype.replaceData=function(e,t,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(e,t,o,!0)},u.prototype.updateData=function(e){var t=this,o=this,i=0;return new Promise(function(n,s){t.modExists("ajax")&&t.modules.ajax.blockActiveRequest(),"string"==typeof e&&(e=JSON.parse(e)),e?e.forEach(function(e){var t=o.rowManager.findRow(e[o.options.index]);t&&(i++,t.updateData(e).then(function(){--i||n()}))}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},u.prototype.addData=function(e,t,o){var i=this;return new Promise(function(n,s){i.modExists("ajax")&&i.modules.ajax.blockActiveRequest(),"string"==typeof e&&(e=JSON.parse(e)),e?i.rowManager.addRows(e,t,o).then(function(e){var t=[];e.forEach(function(e){t.push(e.getComponent())}),n(t)}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},u.prototype.updateOrAddData=function(e){var t=this,o=this,i=[],n=0;return new Promise(function(s,r){t.modExists("ajax")&&t.modules.ajax.blockActiveRequest(),"string"==typeof e&&(e=JSON.parse(e)),e?e.forEach(function(e){var t=o.rowManager.findRow(e[o.options.index]);n++,t?t.updateData(e).then(function(){n--,i.push(t.getComponent()),n||s(i)}):o.rowManager.addRows(e).then(function(e){n--,i.push(e[0].getComponent()),n||s(i)})}):(console.warn("Update Error - No data provided"),r("Update Error - No data provided"))})},u.prototype.getRow=function(e){var t=this.rowManager.findRow(e);return t?t.getComponent():(console.warn("Find Error - No matching row found:",e),!1)},u.prototype.getRowFromPosition=function(e,t){var o=this.rowManager.getRowFromPosition(e,t);return o?o.getComponent():(console.warn("Find Error - No matching row found:",e),!1)},u.prototype.deleteRow=function(e){var t=this;return new Promise(function(o,i){function n(){++r==e.length&&a&&(s.rowManager.reRenderInPosition(),o())}var s=t,r=0,a=0,l=[];Array.isArray(e)||(e=[e]),e.forEach(function(e){var o=t.rowManager.findRow(e,!0);o?l.push(o):(console.warn("Delete Error - No matching row found:",e),i("Delete Error - No matching row found"),n())}),l.sort(function(e,o){return t.rowManager.rows.indexOf(e)>t.rowManager.rows.indexOf(o)?1:-1}),l.forEach(function(e){e.delete().then(function(){a++,n()}).catch(function(e){n(),i(e)})})})},u.prototype.addRow=function(e,t,o){var i=this;return new Promise(function(n,s){"string"==typeof e&&(e=JSON.parse(e)),i.rowManager.addRows(e,t,o).then(function(e){i.modExists("columnCalcs")&&i.modules.columnCalcs.recalc(i.rowManager.activeRows),n(e[0].getComponent())})})},u.prototype.updateOrAddRow=function(e,t){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(e);"string"==typeof t&&(t=JSON.parse(t)),s?s.updateData(t).then(function(){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(s.getComponent())}).catch(function(e){n(e)}):s=o.rowManager.addRows(t).then(function(e){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(e[0].getComponent())}).catch(function(e){n(e)})})},u.prototype.updateRow=function(e,t){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(e);"string"==typeof t&&(t=JSON.parse(t)),s?s.updateData(t).then(function(){i(s.getComponent())}).catch(function(e){n(e)}):(console.warn("Update Error - No matching row found:",e),n("Update Error - No matching row found"))})},u.prototype.scrollToRow=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i.rowManager.findRow(e);r?i.rowManager.scrollToRow(r,t,o).then(function(){n()}).catch(function(e){s(e)}):(console.warn("Scroll Error - No matching row found:",e),s("Scroll Error - No matching row found"))})},u.prototype.moveRow=function(e,t,o){var i=this.rowManager.findRow(e);i?i.moveToRow(t,o):console.warn("Move Error - No matching row found:",e)},u.prototype.getRows=function(e){return!0===e&&(console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'"),e="active"),this.rowManager.getComponents(e)},u.prototype.getRowPosition=function(e,t){var o=this.rowManager.findRow(e);return o?this.rowManager.getRowPosition(o,t):(console.warn("Position Error - No matching row found:",e),!1)},u.prototype.copyToClipboard=function(e){this.modExists("clipboard",!0)&&this.modules.clipboard.copy(e)},u.prototype.setColumns=function(e){this.columnManager.setColumns(e)},u.prototype.getColumns=function(e){return this.columnManager.getComponents(e)},u.prototype.getColumn=function(e){var t=this.columnManager.findColumn(e);return t?t.getComponent():(console.warn("Find Error - No matching column found:",e),!1)},u.prototype.getColumnDefinitions=function(){return this.columnManager.getDefinitionTree()},u.prototype.getColumnLayout=function(){if(this.modExists("persistence",!0))return this.modules.persistence.parseColumns(this.columnManager.getColumns())},u.prototype.setColumnLayout=function(e){return!!this.modExists("persistence",!0)&&(this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns,e)),!0)},u.prototype.showColumn=function(e){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Show Error - No matching column found:",e),!1;t.show(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},u.prototype.hideColumn=function(e){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Hide Error - No matching column found:",e),!1;t.hide(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},u.prototype.toggleColumn=function(e){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Visibility Toggle Error - No matching column found:",e),!1;t.visible?t.hide():t.show()},u.prototype.addColumn=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i.columnManager.findColumn(o);i.columnManager.addColumn(e,t,r).then(function(e){n(e.getComponent())}).catch(function(e){s(e)})})},u.prototype.deleteColumn=function(e){var t=this;return new Promise(function(o,i){var n=t.columnManager.findColumn(e);n?n.delete().then(function(){o()}).catch(function(e){i(e)}):(console.warn("Column Delete Error - No matching column found:",e),i())})},u.prototype.updateColumnDefinition=function(e,t){var o=this;return new Promise(function(i,n){var s=o.columnManager.findColumn(e);s?s.updateDefinition(t).then(function(e){i(e)}).catch(function(e){n(e)}):(console.warn("Column Update Error - No matching column found:",e),n())})},u.prototype.moveColumn=function(e,t,o){var i=this.columnManager.findColumn(e),n=this.columnManager.findColumn(t);i?n?this.columnManager.moveColumn(i,n,o):console.warn("Move Error - No matching column found:",n):console.warn("Move Error - No matching column found:",e)},u.prototype.scrollToColumn=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i.columnManager.findColumn(e);r?i.columnManager.scrollToColumn(r,t,o).then(function(){n()}).catch(function(e){s(e)}):(console.warn("Scroll Error - No matching column found:",e),s("Scroll Error - No matching column found"))})},u.prototype.setLocale=function(e){this.modules.localize.setLocale(e)},u.prototype.getLocale=function(){return this.modules.localize.getLocale()},u.prototype.getLang=function(e){return this.modules.localize.getLang(e)},u.prototype.redraw=function(e){this.columnManager.redraw(e),this.rowManager.redraw(e)},u.prototype.setHeight=function(e){"classic"!==this.rowManager.renderMode?(this.options.height=isNaN(e)?e:e+"px",this.element.style.height=this.options.height,this.rowManager.setRenderMode(),this.rowManager.redraw()):console.warn("setHeight function is not available in classic render mode")},u.prototype.setSort=function(e,t){this.modExists("sort",!0)&&(this.modules.sort.setSort(e,t),this.rowManager.sorterRefresh())},u.prototype.getSorters=function(){if(this.modExists("sort",!0))return this.modules.sort.getSort()},u.prototype.clearSort=function(){this.modExists("sort",!0)&&(this.modules.sort.clear(),this.rowManager.sorterRefresh())},u.prototype.setFilter=function(e,t,o){this.modExists("filter",!0)&&(this.modules.filter.setFilter(e,t,o),this.rowManager.filterRefresh())},u.prototype.addFilter=function(e,t,o){this.modExists("filter",!0)&&(this.modules.filter.addFilter(e,t,o),this.rowManager.filterRefresh())},u.prototype.getFilters=function(e){if(this.modExists("filter",!0))return this.modules.filter.getFilters(e)},u.prototype.setHeaderFilterFocus=function(e){if(this.modExists("filter",!0)){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Filter Focus Error - No matching column found:",e),!1;this.modules.filter.setHeaderFilterFocus(t)}},u.prototype.getHeaderFilterValue=function(e){if(this.modExists("filter",!0)){var t=this.columnManager.findColumn(e);if(t)return this.modules.filter.getHeaderFilterValue(t);console.warn("Column Filter Error - No matching column found:",e)}},u.prototype.setHeaderFilterValue=function(e,t){if(this.modExists("filter",!0)){var o=this.columnManager.findColumn(e);if(!o)return console.warn("Column Filter Error - No matching column found:",e),!1;this.modules.filter.setHeaderFilterValue(o,t)}},u.prototype.getHeaderFilters=function(){if(this.modExists("filter",!0))return this.modules.filter.getHeaderFilters()},u.prototype.removeFilter=function(e,t,o){this.modExists("filter",!0)&&(this.modules.filter.removeFilter(e,t,o),this.rowManager.filterRefresh())},u.prototype.clearFilter=function(e){this.modExists("filter",!0)&&(this.modules.filter.clearFilter(e),this.rowManager.filterRefresh())},u.prototype.clearHeaderFilter=function(){this.modExists("filter",!0)&&(this.modules.filter.clearHeaderFilter(),this.rowManager.filterRefresh())},u.prototype.selectRow=function(e){this.modExists("selectRow",!0)&&(!0===e&&(console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'"),e="active"),this.modules.selectRow.selectRows(e))},u.prototype.deselectRow=function(e){this.modExists("selectRow",!0)&&this.modules.selectRow.deselectRows(e)},u.prototype.toggleSelectRow=function(e){this.modExists("selectRow",!0)&&this.modules.selectRow.toggleRow(e)},u.prototype.getSelectedRows=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedRows()},u.prototype.getSelectedData=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedData()},u.prototype.setMaxPage=function(e){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setMaxPage(e)},u.prototype.setPage=function(e){return this.options.pagination&&this.modExists("page")?this.modules.page.setPage(e):new Promise(function(e,t){t()})},u.prototype.setPageToRow=function(e){var t=this;return new Promise(function(o,i){t.options.pagination&&t.modExists("page")?(e=t.rowManager.findRow(e),e?t.modules.page.setPageToRow(e).then(function(){o()}).catch(function(){i()}):i()):i()})},u.prototype.setPageSize=function(e){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setPageSize(e),this.modules.page.setPage(1).then(function(){}).catch(function(){})},u.prototype.getPageSize=function(){if(this.options.pagination&&this.modExists("page",!0))return this.modules.page.getPageSize()},u.prototype.previousPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.previousPage()},u.prototype.nextPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.nextPage()},u.prototype.getPage=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPage()},u.prototype.getPageMax=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPageMax()},u.prototype.setGroupBy=function(e){if(!this.modExists("groupRows",!0))return!1;this.options.groupBy=e,this.modules.groupRows.initialize(),this.rowManager.refreshActiveData("display"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")},u.prototype.setGroupStartOpen=function(e){if(!this.modExists("groupRows",!0))return!1;this.options.groupStartOpen=e,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},u.prototype.setGroupHeader=function(e){if(!this.modExists("groupRows",!0))return!1;this.options.groupHeader=e,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},u.prototype.getGroups=function(e){return!!this.modExists("groupRows",!0)&&this.modules.groupRows.getGroups(!0)},u.prototype.getGroupedData=function(){if(this.modExists("groupRows",!0))return this.options.groupBy?this.modules.groupRows.getGroupedData():this.getData()},u.prototype.getCalcResults=function(){return!!this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.getResults()},u.prototype.recalc=function(){this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.recalcAll(this.rowManager.activeRows)},u.prototype.navigatePrev=function(){var e=!1;return!(!this.modExists("edit",!0)||!(e=this.modules.edit.currentCell))&&e.nav().prev()},u.prototype.navigateNext=function(){var e=!1;return!(!this.modExists("edit",!0)||!(e=this.modules.edit.currentCell))&&e.nav().next()},u.prototype.navigateLeft=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().left())},u.prototype.navigateRight=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().right())},u.prototype.navigateUp=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().up())},u.prototype.navigateDown=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().down())},u.prototype.undo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.undo()},u.prototype.redo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.redo()},u.prototype.getHistoryUndoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryUndoSize()},u.prototype.getHistoryRedoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryRedoSize()},u.prototype.download=function(e,t,o,i){this.modExists("download",!0)&&this.modules.download.download(e,t,o,i)},u.prototype.downloadToTab=function(e,t,o,i){this.modExists("download",!0)&&this.modules.download.download(e,t,o,i,!0)},u.prototype.tableComms=function(e,t,o,i){this.modules.comms.receive(e,t,o,i)},u.prototype.moduleBindings={},u.prototype.extendModule=function(e,t,o){if(u.prototype.moduleBindings[e]){var i=u.prototype.moduleBindings[e].prototype[t];if(i)if("object"==(void 0===o?"undefined":_typeof(o)))for(var n in o)i[n]=o[n];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",t)}else console.warn("Module Error - module does not exist:",e)},u.prototype.registerModule=function(e,t){u.prototype.moduleBindings[e]=t},u.prototype.bindModules=function(){this.modules={};for(var e in u.prototype.moduleBindings)this.modules[e]=new u.prototype.moduleBindings[e](this)},u.prototype.modExists=function(e,t){return!!this.modules[e]||(t&&console.error("Tabulator Module Not Installed: "+e),!1)},u.prototype.helpers={elVisible:function(e){return!(e.offsetWidth<=0&&e.offsetHeight<=0)},elOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset-document.documentElement.clientTop,left:t.left+window.pageXOffset-document.documentElement.clientLeft}},deepClone:function(e){var t=Array.isArray(e)?[]:{};for(var o in e)null!=e[o]&&"object"===_typeof(e[o])?e[o]instanceof Date?t[o]=new Date(e[o]):t[o]=this.deepClone(e[o]):t[o]=e[o];return t}},u.prototype.comms={tables:[],register:function(e){u.prototype.comms.tables.push(e)},deregister:function(e){var t=u.prototype.comms.tables.indexOf(e);t>-1&&u.prototype.comms.tables.splice(t,1)},lookupTable:function(e,t){var o,i,n=[];if("string"==typeof e){if(o=document.querySelectorAll(e),o.length)for(var s=0;s<o.length;s++)(i=u.prototype.comms.matchElement(o[s]))&&n.push(i)}else"undefined"!=typeof HTMLElement&&e instanceof HTMLElement||e instanceof u?(i=u.prototype.comms.matchElement(e))&&n.push(i):Array.isArray(e)?e.forEach(function(e){n=n.concat(u.prototype.comms.lookupTable(e))}):t||console.warn("Table Connection Error - Invalid Selector",e);return n},matchElement:function(e){return u.prototype.comms.tables.find(function(t){return e instanceof u?t===e:t.element===e})}},u.prototype.findTable=function(e){var t=u.prototype.comms.lookupTable(e,!0);return!(Array.isArray(t)&&!t.length)&&t};var d=function(e){this.table=e,this.mode=null};d.prototype.initialize=function(e){this.modes[e]?this.mode=e:(console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+e),this.mode="fitData"),this.table.element.setAttribute("tabulator-layout",this.mode)},d.prototype.getMode=function(){return this.mode},d.prototype.layout=function(){this.modes[this.mode].call(this,this.table.columnManager.columnsByIndex)},d.prototype.modes={fitData:function(e){e.forEach(function(e){e.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataFill:function(e){e.forEach(function(e){e.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataStretch:function(e){var t=this,o=0,i=this.table.rowManager.element.clientWidth,n=0,s=!1;e.forEach(function(e,i){e.widthFixed||e.reinitializeWidth(),(t.table.options.responsiveLayout?e.modules.responsive.visible:e.visible)&&(s=e),e.visible&&(o+=e.getWidth())}),s?(n=i-o+s.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&(s.setWidth(0),this.table.modules.responsiveLayout.update()),n>0?s.setWidth(n):s.reinitializeWidth()):this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitColumns:function(e){function t(e){return"string"==typeof e?e.indexOf("%")>-1?n/100*parseInt(e):parseInt(e):e}function o(e,i,n,s){function r(e){return n*(e.column.definition.widthGrow||1)}function a(e){return t(e.width)-n*(e.column.definition.widthShrink||0)}var l=[],c=0,u=0,d=0,h=0,p=0,m=[];return e.forEach(function(e,t){var o=s?a(e):r(e);e.column.minWidth>=o?l.push(e):(m.push(e),p+=s?e.column.definition.widthShrink||1:e.column.definition.widthGrow||1)}),l.length?(l.forEach(function(e){c+=s?e.width-e.column.minWidth:e.column.minWidth,e.width=e.column.minWidth}),u=i-c,d=p?Math.floor(u/p):u,h=u-d*p,h+=o(m,u,d,s)):(h=p?i-Math.floor(i/p)*p:i,m.forEach(function(e){e.width=s?a(e):r(e)})),h}var i=this,n=i.table.element.clientWidth,s=0,r=0,a=0,l=0,c=[],u=[],d=0,h=0,p=0;this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(n-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),e.forEach(function(e){var o,i,n;e.visible&&(o=e.definition.width,i=parseInt(e.minWidth),o?(n=t(o),s+=n>i?n:i,e.definition.widthShrink&&(u.push({column:e,width:n>i?n:i}),d+=e.definition.widthShrink)):(c.push({column:e,width:0}),a+=e.definition.widthGrow||1))}),r=n-s,l=Math.floor(r/a);var p=o(c,r,l,!1);c.length&&p>0&&(c[c.length-1].width+=+p),c.forEach(function(e){r-=e.width}),h=Math.abs(p)+r,h>0&&d&&(p=o(u,h,Math.floor(h/d),!0)),u.length&&(u[u.length-1].width-=p),c.forEach(function(e){e.column.setWidth(e.width)}),u.forEach(function(e){e.column.setWidth(e.width)})}},u.prototype.registerModule("layout",d);var h=function(e){this.table=e,this.locale="default",this.lang=!1,this.bindings={}};h.prototype.setHeaderFilterPlaceholder=function(e){this.langs.default.headerFilters.default=e},h.prototype.setHeaderFilterColumnPlaceholder=function(e,t){this.langs.default.headerFilters.columns[e]=t,this.lang&&!this.lang.headerFilters.columns[e]&&(this.lang.headerFilters.columns[e]=t)},h.prototype.installLang=function(e,t){this.langs[e]?this._setLangProp(this.langs[e],t):this.langs[e]=t},h.prototype._setLangProp=function(e,t){for(var o in t)e[o]&&"object"==_typeof(e[o])?this._setLangProp(e[o],t[o]):e[o]=t[o]},h.prototype.setLocale=function(e){function t(e,o){for(var i in e)"object"==_typeof(e[i])?(o[i]||(o[i]={}),t(e[i],o[i])):o[i]=e[i]}var o=this;if(e=e||"default",!0===e&&navigator.language&&(e=navigator.language.toLowerCase()),e&&!o.langs[e]){var i=e.split("-")[0];o.langs[i]?(console.warn("Localization Error - Exact matching locale not found, using closest match: ",e,i),e=i):(console.warn("Localization Error - Matching locale not found, using default: ",e),e="default")}o.locale=e,o.lang=u.prototype.helpers.deepClone(o.langs.default||{}),"default"!=e&&t(o.langs[e],o.lang),o.table.options.localized.call(o.table,o.locale,o.lang),o._executeBindings()},h.prototype.getLocale=function(e){return self.locale},h.prototype.getLang=function(e){return e?this.langs[e]:this.lang},h.prototype.getText=function(e,t){var e=t?e+"|"+t:e,o=e.split("|");return this._getLangElement(o,this.locale)||""},h.prototype._getLangElement=function(e,t){var o=this,i=o.lang;return e.forEach(function(e){var t;i&&(t=i[e],i=void 0!==t&&t)}),i},h.prototype.bind=function(e,t){
-this.bindings[e]||(this.bindings[e]=[]),this.bindings[e].push(t),t(this.getText(e),this.lang)},h.prototype._executeBindings=function(){var e=this;for(var t in e.bindings)!function(t){e.bindings[t].forEach(function(o){o(e.getText(t),e.lang)})}(t)},h.prototype.langs={default:{groups:{item:"item",items:"items"},columns:{},ajax:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page"},headerFilters:{default:"filter column...",columns:{}}}},u.prototype.registerModule("localize",h);var p=function(e){this.table=e};p.prototype.getConnections=function(e){var t,o=this,i=[];return t=u.prototype.comms.lookupTable(e),t.forEach(function(e){o.table!==e&&i.push(e)}),i},p.prototype.send=function(e,t,o,i){var n=this,s=this.getConnections(e);s.forEach(function(e){e.tableComms(n.table.element,t,o,i)}),!s.length&&e&&console.warn("Table Connection Error - No tables matching selector found",e)},p.prototype.receive=function(e,t,o,i){if(this.table.modExists(t))return this.table.modules[t].commsReceived(e,o,i);console.warn("Inter-table Comms Error - no such module:",t)},u.prototype.registerModule("comms",p);var m=function(e){this.table=e,this.allowedTypes=["","data","download","clipboard","print","htmlOutput"]};m.prototype.initializeColumn=function(e){var t=this,o=!1,i={};this.allowedTypes.forEach(function(n){var s,r="accessor"+(n.charAt(0).toUpperCase()+n.slice(1));e.definition[r]&&(s=t.lookupAccessor(e.definition[r]))&&(o=!0,i[r]={accessor:s,params:e.definition[r+"Params"]||{}})}),o&&(e.modules.accessor=i)},m.prototype.lookupAccessor=function(e){var t=!1;switch(void 0===e?"undefined":_typeof(e)){case"string":this.accessors[e]?t=this.accessors[e]:console.warn("Accessor Error - No such accessor found, ignoring: ",e);break;case"function":t=e}return t},m.prototype.transformRow=function(e,t){var o=this,i="accessor"+(t.charAt(0).toUpperCase()+t.slice(1)),n=u.prototype.helpers.deepClone(e||{});return o.table.columnManager.traverse(function(e){var o,s,r,a;e.modules.accessor&&(s=e.modules.accessor[i]||e.modules.accessor.accessor||!1)&&"undefined"!=(o=e.getFieldValue(n))&&(a=e.getComponent(),r="function"==typeof s.params?s.params(o,n,t,a):s.params,e.setFieldValue(n,s.accessor(o,n,t,r,a)))}),n},m.prototype.accessors={},u.prototype.registerModule("accessor",m);var f=function(e){this.table=e,this.config=!1,this.url="",this.urlGenerator=!1,this.params=!1,this.loaderElement=this.createLoaderElement(),this.msgElement=this.createMsgElement(),this.loadingElement=!1,this.errorElement=!1,this.loaderPromise=!1,this.progressiveLoad=!1,this.loading=!1,this.requestOrder=0};f.prototype.initialize=function(){var e;this.loaderElement.appendChild(this.msgElement),this.table.options.ajaxLoaderLoading&&("string"==typeof this.table.options.ajaxLoaderLoading?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderLoading.trim(),this.loadingElement=e.content.firstChild):this.loadingElement=this.table.options.ajaxLoaderLoading),this.loaderPromise=this.table.options.ajaxRequestFunc||this.defaultLoaderPromise,this.urlGenerator=this.table.options.ajaxURLGenerator||this.defaultURLGenerator,this.table.options.ajaxLoaderError&&("string"==typeof this.table.options.ajaxLoaderError?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderError.trim(),this.errorElement=e.content.firstChild):this.errorElement=this.table.options.ajaxLoaderError),this.table.options.ajaxParams&&this.setParams(this.table.options.ajaxParams),this.table.options.ajaxConfig&&this.setConfig(this.table.options.ajaxConfig),this.table.options.ajaxURL&&this.setUrl(this.table.options.ajaxURL),this.table.options.ajaxProgressiveLoad&&(this.table.options.pagination?(this.progressiveLoad=!1,console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time")):this.table.modExists("page")?(this.progressiveLoad=this.table.options.ajaxProgressiveLoad,this.table.modules.page.initializeProgressive(this.progressiveLoad)):console.error("Pagination plugin is required for progressive ajax loading"))},f.prototype.createLoaderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader"),e},f.prototype.createMsgElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader-msg"),e.setAttribute("role","alert"),e},f.prototype.setParams=function(e,t){if(t){this.params=this.params||{};for(var o in e)this.params[o]=e[o]}else this.params=e},f.prototype.getParams=function(){return this.params||{}},f.prototype.setConfig=function(e){if(this._loadDefaultConfig(),"string"==typeof e)this.config.method=e;else for(var t in e)this.config[t]=e[t]},f.prototype._loadDefaultConfig=function(e){var t=this;if(!t.config||e){t.config={};for(var o in t.defaultConfig)t.config[o]=t.defaultConfig[o]}},f.prototype.setUrl=function(e){this.url=e},f.prototype.getUrl=function(){return this.url},f.prototype.loadData=function(e,t){return this.progressiveLoad?this._loadDataProgressive():this._loadDataStandard(e,t)},f.prototype.nextPage=function(e){var t;this.loading||(t=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.getElement().clientHeight,e<t&&this.table.modules.page.nextPage().then(function(){}).catch(function(){}))},f.prototype.blockActiveRequest=function(){this.requestOrder++},f.prototype._loadDataProgressive=function(){return this.table.rowManager.setData([]),this.table.modules.page.setPage(1)},f.prototype._loadDataStandard=function(e,t){var o=this;return new Promise(function(i,n){o.sendRequest(e).then(function(s){o.table.rowManager.setData(s,e,t).then(function(){i()}).catch(function(e){n(e)})}).catch(function(e){n(e)})})},f.prototype.generateParamsList=function(e,t){var o=this,i=[];if(t=t||"",Array.isArray(e))e.forEach(function(e,n){i=i.concat(o.generateParamsList(e,t?t+"["+n+"]":n))});else if("object"===(void 0===e?"undefined":_typeof(e)))for(var n in e)i=i.concat(o.generateParamsList(e[n],t?t+"["+n+"]":n));else i.push({key:t,value:e});return i},f.prototype.serializeParams=function(e){var t=this.generateParamsList(e),o=[];return t.forEach(function(e){o.push(encodeURIComponent(e.key)+"="+encodeURIComponent(e.value))}),o.join("&")},f.prototype.sendRequest=function(e){var t,o=this,i=this,n=i.url;return i.requestOrder++,t=i.requestOrder,i._loadDefaultConfig(),new Promise(function(s,r){!1!==i.table.options.ajaxRequesting.call(o.table,i.url,i.params)?(i.loading=!0,e||i.showLoader(),o.loaderPromise(n,i.config,i.params).then(function(e){t===i.requestOrder?(i.table.options.ajaxResponse&&(e=i.table.options.ajaxResponse.call(i.table,i.url,i.params,e)),s(e),i.hideLoader(),i.loading=!1):console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made")}).catch(function(e){console.error("Ajax Load Error: ",e),i.table.options.ajaxError.call(i.table,e),i.showError(),setTimeout(function(){i.hideLoader()},3e3),i.loading=!1,r()})):r()})},f.prototype.showLoader=function(){if("function"==typeof this.table.options.ajaxLoader?this.table.options.ajaxLoader():this.table.options.ajaxLoader){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-error"),this.msgElement.classList.add("tabulator-loading"),this.loadingElement?this.msgElement.appendChild(this.loadingElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|loading"),this.table.element.appendChild(this.loaderElement)}},f.prototype.showError=function(){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-loading"),this.msgElement.classList.add("tabulator-error"),this.errorElement?this.msgElement.appendChild(this.errorElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|error"),this.table.element.appendChild(this.loaderElement)},f.prototype.hideLoader=function(){this.loaderElement.parentNode&&this.loaderElement.parentNode.removeChild(this.loaderElement)},f.prototype.defaultConfig={method:"GET"},f.prototype.defaultURLGenerator=function(e,t,o){return e&&o&&Object.keys(o).length&&(t.method&&"get"!=t.method.toLowerCase()||(t.method="get",e+=(e.includes("?")?"&":"?")+this.serializeParams(o))),e},f.prototype.defaultLoaderPromise=function(e,t,o){var i,n=this;return new Promise(function(s,r){if(e=n.urlGenerator(e,t,o),"GET"!=t.method.toUpperCase())if(i="object"===_typeof(n.table.options.ajaxContentType)?n.table.options.ajaxContentType:n.contentTypeFormatters[n.table.options.ajaxContentType]){for(var a in i.headers)t.headers||(t.headers={}),void 0===t.headers[a]&&(t.headers[a]=i.headers[a]);t.body=i.body.call(n,e,t,o)}else console.warn("Ajax Error - Invalid ajaxContentType value:",n.table.options.ajaxContentType);e?(void 0===t.headers&&(t.headers={}),void 0===t.headers.Accept&&(t.headers.Accept="application/json"),void 0===t.headers["X-Requested-With"]&&(t.headers["X-Requested-With"]="XMLHttpRequest"),void 0===t.mode&&(t.mode="cors"),"cors"==t.mode?(void 0===t.headers["Access-Control-Allow-Origin"]&&(t.headers["Access-Control-Allow-Origin"]=window.location.origin),void 0===t.credentials&&(t.credentials="same-origin")):void 0===t.credentials&&(t.credentials="include"),fetch(e,t).then(function(e){e.ok?e.json().then(function(e){s(e)}).catch(function(e){r(e),console.warn("Ajax Load Error - Invalid JSON returned",e)}):(console.error("Ajax Load Error - Connection Error: "+e.status,e.statusText),r(e))}).catch(function(e){console.error("Ajax Load Error - Connection Error: ",e),r(e)})):(console.warn("Ajax Load Error - No URL Set"),s([]))})},f.prototype.contentTypeFormatters={json:{headers:{"Content-Type":"application/json"},body:function(e,t,o){return JSON.stringify(o)}},form:{headers:{},body:function(e,t,o){var i=this.generateParamsList(o),n=new FormData;return i.forEach(function(e){n.append(e.key,e.value)}),n}}},u.prototype.registerModule("ajax",f);var g=function(e){this.table=e,this.topCalcs=[],this.botCalcs=[],this.genColumn=!1,this.topElement=this.createElement(),this.botElement=this.createElement(),this.topRow=!1,this.botRow=!1,this.topInitialized=!1,this.botInitialized=!1,this.initialize()};g.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-calcs-holder"),e},g.prototype.initialize=function(){this.genColumn=new i({field:"value"},this)},g.prototype.registerColumnField=function(){},g.prototype.initializeColumn=function(e){var t=e.definition,o={topCalcParams:t.topCalcParams||{},botCalcParams:t.bottomCalcParams||{}};if(t.topCalc){switch(_typeof(t.topCalc)){case"string":this.calculations[t.topCalc]?o.topCalc=this.calculations[t.topCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",t.topCalc);break;case"function":o.topCalc=t.topCalc}o.topCalc&&(e.modules.columnCalcs=o,this.topCalcs.push(e),"group"!=this.table.options.columnCalcs&&this.initializeTopRow())}if(t.bottomCalc){switch(_typeof(t.bottomCalc)){case"string":this.calculations[t.bottomCalc]?o.botCalc=this.calculations[t.bottomCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",t.bottomCalc);break;case"function":o.botCalc=t.bottomCalc}o.botCalc&&(e.modules.columnCalcs=o,this.botCalcs.push(e),"group"!=this.table.options.columnCalcs&&this.initializeBottomRow())}},g.prototype.removeCalcs=function(){var e=!1;this.topInitialized&&(this.topInitialized=!1,this.topElement.parentNode.removeChild(this.topElement),e=!0),this.botInitialized&&(this.botInitialized=!1,this.table.footerManager.remove(this.botElement),e=!0),e&&this.table.rowManager.adjustTableSize()},g.prototype.initializeTopRow=function(){this.topInitialized||(this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling),this.topInitialized=!0)},g.prototype.initializeBottomRow=function(){this.botInitialized||(this.table.footerManager.prepend(this.botElement),this.botInitialized=!0)},g.prototype.scrollHorizontal=function(e){this.table.columnManager.getElement().scrollWidth,this.table.element.clientWidth;this.botInitialized&&(this.botRow.getElement().style.marginLeft=-e+"px")},g.prototype.recalc=function(e){var t;if(this.topInitialized||this.botInitialized){if(this.rowsToData(e),this.topInitialized){for(this.topRow&&this.topRow.deleteCells(),t=this.generateRow("top",this.rowsToData(e)),this.topRow=t;this.topElement.firstChild;)this.topElement.removeChild(this.topElement.firstChild);this.topElement.appendChild(t.getElement()),t.initialize(!0)}if(this.botInitialized){for(this.botRow&&this.botRow.deleteCells(),t=this.generateRow("bottom",this.rowsToData(e)),this.botRow=t;this.botElement.firstChild;)this.botElement.removeChild(this.botElement.firstChild);this.botElement.appendChild(t.getElement()),t.initialize(!0)}this.table.rowManager.adjustTableSize(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()}},g.prototype.recalcRowGroup=function(e){this.recalcGroup(this.table.modules.groupRows.getRowGroup(e))},g.prototype.recalcAll=function(){var e=this;if((this.topCalcs.length||this.botCalcs.length)&&("group"!==this.table.options.columnCalcs&&this.recalc(this.table.rowManager.activeRows),this.table.options.groupBy&&"table"!==this.table.options.columnCalcs)){table.modules.groupRows.getChildGroups().forEach(function(t){e.recalcGroup(t)})}},g.prototype.recalcGroup=function(e){var t,o;e&&e.calcs&&(e.calcs.bottom&&(t=this.rowsToData(e.rows),o=this.generateRowData("bottom",t),e.calcs.bottom.updateData(o),e.calcs.bottom.reinitialize()),e.calcs.top&&(t=this.rowsToData(e.rows),o=this.generateRowData("top",t),e.calcs.top.updateData(o),e.calcs.top.reinitialize()))},g.prototype.generateTopRow=function(e){return this.generateRow("top",this.rowsToData(e))},g.prototype.generateBottomRow=function(e){return this.generateRow("bottom",this.rowsToData(e))},g.prototype.rowsToData=function(e){var t=this,o=[];return e.forEach(function(e){if(o.push(e.getData()),t.table.options.dataTree&&t.table.options.dataTreeChildColumnCalcs&&e.modules.dataTree.open){var i=t.rowsToData(t.table.modules.dataTree.getFilteredTreeChildren(e));o=o.concat(i)}}),o},g.prototype.generateRow=function(e,t){var o,i=this,n=this.generateRowData(e,t);return i.table.modExists("mutator")&&i.table.modules.mutator.disable(),o=new r(n,this,"calc"),i.table.modExists("mutator")&&i.table.modules.mutator.enable(),o.getElement().classList.add("tabulator-calcs","tabulator-calcs-"+e),o.generateCells=function(){var t=[];i.table.columnManager.columnsByIndex.forEach(function(n){i.genColumn.setField(n.getField()),i.genColumn.hozAlign=n.hozAlign,n.definition[e+"CalcFormatter"]&&i.table.modExists("format")?i.genColumn.modules.format={formatter:i.table.modules.format.getFormatter(n.definition[e+"CalcFormatter"]),params:n.definition[e+"CalcFormatterParams"]}:i.genColumn.modules.format={formatter:i.table.modules.format.getFormatter("plaintext"),params:{}},i.genColumn.definition.cssClass=n.definition.cssClass;var s=new l(i.genColumn,o);s.column=n,s.setWidth(),n.cells.push(s),t.push(s),n.visible||s.hide()}),this.cells=t},o},g.prototype.generateRowData=function(e,t){var o,i,n={},s="top"==e?this.topCalcs:this.botCalcs,r="top"==e?"topCalc":"botCalc";return s.forEach(function(e){var s=[];e.modules.columnCalcs&&e.modules.columnCalcs[r]&&(t.forEach(function(t){s.push(e.getFieldValue(t))}),i=r+"Params",o="function"==typeof e.modules.columnCalcs[i]?e.modules.columnCalcs[i](s,t):e.modules.columnCalcs[i],e.setFieldValue(n,e.modules.columnCalcs[r](s,t,o)))}),n},g.prototype.hasTopCalcs=function(){return!!this.topCalcs.length},g.prototype.hasBottomCalcs=function(){return!!this.botCalcs.length},g.prototype.redraw=function(){this.topRow&&this.topRow.normalizeHeight(!0),this.botRow&&this.botRow.normalizeHeight(!0)},g.prototype.getResults=function(){var e,t=this,o={};return this.table.options.groupBy&&this.table.modExists("groupRows")?(e=this.table.modules.groupRows.getGroups(!0),e.forEach(function(e){o[e.getKey()]=t.getGroupResults(e)})):o={top:this.topRow?this.topRow.getData():{},bottom:this.botRow?this.botRow.getData():{}},o},g.prototype.getGroupResults=function(e){var t=this,o=e._getSelf(),i=e.getSubGroups(),n={};return i.forEach(function(e){n[e.getKey()]=t.getGroupResults(e)}),{top:o.calcs.top?o.calcs.top.getData():{},bottom:o.calcs.bottom?o.calcs.bottom.getData():{},groups:n}},g.prototype.calculations={avg:function(e,t,o){var i=0,n=void 0!==o.precision?o.precision:2;return e.length&&(i=e.reduce(function(e,t){return t=Number(t),e+t}),i/=e.length,i=!1!==n?i.toFixed(n):i),parseFloat(i).toString()},max:function(e,t,o){var i=null,n=void 0!==o.precision&&o.precision;return e.forEach(function(e){((e=Number(e))>i||null===i)&&(i=e)}),null!==i?!1!==n?i.toFixed(n):i:""},min:function(e,t,o){var i=null,n=void 0!==o.precision&&o.precision;return e.forEach(function(e){((e=Number(e))<i||null===i)&&(i=e)}),null!==i?!1!==n?i.toFixed(n):i:""},sum:function(e,t,o){var i=0,n=void 0!==o.precision&&o.precision;return e.length&&e.forEach(function(e){e=Number(e),i+=isNaN(e)?0:Number(e)}),!1!==n?i.toFixed(n):i},concat:function(e,t,o){var i=0;return e.length&&(i=e.reduce(function(e,t){return String(e)+String(t)})),i},count:function(e,t,o){var i=0;return e.length&&e.forEach(function(e){e&&i++}),i}},u.prototype.registerModule("columnCalcs",g);var b=function(e){this.table=e,this.mode=!0,this.pasteParser=function(){},this.pasteAction=function(){},this.customSelection=!1,this.rowRange=!1,this.blocked=!0};b.prototype.initialize=function(){var e=this;this.mode=this.table.options.clipboard,this.rowRange=this.table.options.clipboardCopyRowRange,!0!==this.mode&&"copy"!==this.mode||this.table.element.addEventListener("copy",function(t){var o,i;e.blocked||(t.preventDefault(),e.customSelection?(o=e.customSelection,e.table.options.clipboardCopyFormatter&&(o=e.table.options.clipboardCopyFormatter("plain",o))):(i=e.table.modules.export.getHtml(e.rowRange,e.table.options.clipboardCopyStyled,e.table.options.clipboardCopyConfig,"clipboard"),o=i?e.generatePlainContent(i):"",e.table.options.clipboardCopyFormatter&&(o=e.table.options.clipboardCopyFormatter("plain",o),i=e.table.options.clipboardCopyFormatter("html",i))),window.clipboardData&&window.clipboardData.setData?window.clipboardData.setData("Text",o):t.clipboardData&&t.clipboardData.setData?(t.clipboardData.setData("text/plain",o),i&&t.clipboardData.setData("text/html",i)):t.originalEvent&&t.originalEvent.clipboardData.setData&&(t.originalEvent.clipboardData.setData("text/plain",o),i&&t.originalEvent.clipboardData.setData("text/html",i)),e.table.options.clipboardCopied.call(e.table,o,i),e.reset())}),!0!==this.mode&&"paste"!==this.mode||this.table.element.addEventListener("paste",function(t){e.paste(t)}),this.setPasteParser(this.table.options.clipboardPasteParser),this.setPasteAction(this.table.options.clipboardPasteAction)},b.prototype.reset=function(){this.blocked=!1,this.originalSelectionText=""},b.prototype.generatePlainContent=function(e){var t=[],o=document.createElement("div");o.innerHTML=e;var i=o.getElementsByTagName("table")[0];return Array.prototype.slice.call(i.getElementsByTagName("tr")).forEach(function(e){var o=[],i=Array.prototype.slice.call(e.getElementsByTagName("th")),n=Array.prototype.slice.call(e.getElementsByTagName("td"));n=n.concat(i),n.forEach(function(e){var t=e.innerHTML;t=" "==t?"":t,o.push(t)}),t.push(o.join("\t"))}),t.join("\n")},b.prototype.copy=function(e,t){var e,o,i;this.blocked=!1,this.customSelection=!1,!0!==this.mode&&"copy"!==this.mode||(this.rowRange=e||this.table.options.clipboardCopyRowRange,void 0!==window.getSelection&&void 0!==document.createRange?(e=document.createRange(),e.selectNodeContents(this.table.element),o=window.getSelection(),o.toString()&&t&&(this.customSelection=o.toString()),o.removeAllRanges(),o.addRange(e)):void 0!==document.selection&&void 0!==document.body.createTextRange&&(i=document.body.createTextRange(),i.moveToElementText(this.table.element),i.select()),document.execCommand("copy"),o&&o.removeAllRanges())},b.prototype.setPasteAction=function(e){switch(void 0===e?"undefined":_typeof(e)){case"string":this.pasteAction=this.pasteActions[e],this.pasteAction||console.warn("Clipboard Error - No such paste action found:",e);break;case"function":this.pasteAction=e}},b.prototype.setPasteParser=function(e){switch(void 0===e?"undefined":_typeof(e)){case"string":this.pasteParser=this.pasteParsers[e],this.pasteParser||console.warn("Clipboard Error - No such paste parser found:",e);break;case"function":this.pasteParser=e}},b.prototype.paste=function(e){var t,o,i;this.checkPaseOrigin(e)&&(t=this.getPasteData(e),o=this.pasteParser.call(this,t),o?(e.preventDefault(),this.table.modExists("mutator")&&(o=this.mutateData(o)),i=this.pasteAction.call(this,o),this.table.options.clipboardPasted.call(this.table,t,o,i)):this.table.options.clipboardPasteError.call(this.table,t))},b.prototype.mutateData=function(e){var t=this,o=[];return Array.isArray(e)?e.forEach(function(e){o.push(t.table.modules.mutator.transformRow(e,"clipboard"))}):o=e,o},b.prototype.checkPaseOrigin=function(e){var t=!0;return("DIV"!=e.target.tagName||this.table.modules.edit.currentCell)&&(t=!1),t},b.prototype.getPasteData=function(e){var t;return window.clipboardData&&window.clipboardData.getData?t=window.clipboardData.getData("Text"):e.clipboardData&&e.clipboardData.getData?t=e.clipboardData.getData("text/plain"):e.originalEvent&&e.originalEvent.clipboardData.getData&&(t=e.originalEvent.clipboardData.getData("text/plain")),t},b.prototype.pasteParsers={table:function(e){var t=[],o=!0,i=this.table.columnManager.columns,n=[],s=[];return e=e.split("\n"),e.forEach(function(e){t.push(e.split("\t"))}),!(!t.length||1===t.length&&t[0].length<2)&&(!0,t[0].forEach(function(e){var t=i.find(function(t){return e&&t.definition.title&&e.trim()&&t.definition.title.trim()===e.trim()});t?n.push(t):o=!1}),o||(o=!0,n=[],t[0].forEach(function(e){var t=i.find(function(t){return e&&t.field&&e.trim()&&t.field.trim()===e.trim()});t?n.push(t):o=!1}),o||(n=this.table.columnManager.columnsByIndex)),o&&t.shift(),t.forEach(function(e){var t={};e.forEach(function(e,o){n[o]&&(t[n[o].field]=e)}),s.push(t)}),s)}},b.prototype.pasteActions={replace:function(e){return this.table.setData(e)},update:function(e){return this.table.updateOrAddData(e)},insert:function(e){return this.table.addData(e)}},u.prototype.registerModule("clipboard",b);var v=function(e){this.table=e,this.indent=10,this.field="",this.collapseEl=null,this.expandEl=null,this.branchEl=null,this.elementField=!1,this.startOpen=function(){},this.displayIndex=0};v.prototype.initialize=function(){var e=null,t=this.table.columnManager.getFirstVisibileColumn(),o=this.table.options;switch(this.field=o.dataTreeChildField,this.indent=o.dataTreeChildIndent,this.elementField=o.dataTreeElementColumn||!!t&&t.field,o.dataTreeBranchElement&&(!0===o.dataTreeBranchElement?(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch")):"string"==typeof o.dataTreeBranchElement?(e=document.createElement("div"),e.innerHTML=o.dataTreeBranchElement,this.branchEl=e.firstChild):this.branchEl=o.dataTreeBranchElement),o.dataTreeCollapseElement?"string"==typeof o.dataTreeCollapseElement?(e=document.createElement("div"),e.innerHTML=o.dataTreeCollapseElement,this.collapseEl=e.firstChild):this.collapseEl=o.dataTreeCollapseElement:(this.collapseEl=document.createElement("div"),this.collapseEl.classList.add("tabulator-data-tree-control"),this.collapseEl.tabIndex=0,this.collapseEl.innerHTML="<div class='tabulator-data-tree-control-collapse'></div>"),o.dataTreeExpandElement?"string"==typeof o.dataTreeExpandElement?(e=document.createElement("div"),e.innerHTML=o.dataTreeExpandElement,this.expandEl=e.firstChild):this.expandEl=o.dataTreeExpandElement:(this.expandEl=document.createElement("div"),this.expandEl.classList.add("tabulator-data-tree-control"),this.expandEl.tabIndex=0,this.expandEl.innerHTML="<div class='tabulator-data-tree-control-expand'></div>"),_typeof(o.dataTreeStartExpanded)){case"boolean":this.startOpen=function(e,t){return o.dataTreeStartExpanded};break;case"function":this.startOpen=o.dataTreeStartExpanded;break;default:this.startOpen=function(e,t){return o.dataTreeStartExpanded[t]}}},v.prototype.initializeRow=function(e){var t=e.getData()[this.field],o=Array.isArray(t),i=o||!o&&"object"===(void 0===t?"undefined":_typeof(t))&&null!==t;!i&&e.modules.dataTree&&e.modules.dataTree.branchEl&&e.modules.dataTree.branchEl.parentNode.removeChild(e.modules.dataTree.branchEl),!i&&e.modules.dataTree&&e.modules.dataTree.controlEl&&e.modules.dataTree.controlEl.parentNode.removeChild(e.modules.dataTree.controlEl),e.modules.dataTree={index:e.modules.dataTree?e.modules.dataTree.index:0,open:!!i&&(e.modules.dataTree?e.modules.dataTree.open:this.startOpen(e.getComponent(),0)),controlEl:!(!e.modules.dataTree||!i)&&e.modules.dataTree.controlEl,branchEl:!(!e.modules.dataTree||!i)&&e.modules.dataTree.branchEl,parent:!!e.modules.dataTree&&e.modules.dataTree.parent,children:i}},v.prototype.layoutRow=function(e){var t=this.elementField?e.getCell(this.elementField):e.getCells()[0],o=t.getElement(),i=e.modules.dataTree;i.branchEl&&(i.branchEl.parentNode&&i.branchEl.parentNode.removeChild(i.branchEl),i.branchEl=!1),i.controlEl&&(i.controlEl.parentNode&&i.controlEl.parentNode.removeChild(i.controlEl),i.controlEl=!1),this.generateControlElement(e,o),e.element.classList.add("tabulator-tree-level-"+i.index),i.index&&(this.branchEl?(i.branchEl=this.branchEl.cloneNode(!0),o.insertBefore(i.branchEl,o.firstChild),i.branchEl.style.marginLeft=(i.branchEl.offsetWidth+i.branchEl.style.marginRight)*(i.index-1)+i.index*this.indent+"px"):o.style.paddingLeft=parseInt(window.getComputedStyle(o,null).getPropertyValue("padding-left"))+i.index*this.indent+"px")},v.prototype.generateControlElement=function(e,t){var o=this,i=e.modules.dataTree,t=t||e.getCells()[0].getElement(),n=i.controlEl;!1!==i.children&&(i.open?(i.controlEl=this.collapseEl.cloneNode(!0),i.controlEl.addEventListener("click",function(t){t.stopPropagation(),o.collapseRow(e)})):(i.controlEl=this.expandEl.cloneNode(!0),i.controlEl.addEventListener("click",function(t){t.stopPropagation(),o.expandRow(e)})),i.controlEl.addEventListener("mousedown",function(e){e.stopPropagation()}),n&&n.parentNode===t?n.parentNode.replaceChild(i.controlEl,n):t.insertBefore(i.controlEl,t.firstChild))},v.prototype.setDisplayIndex=function(e){this.displayIndex=e},v.prototype.getDisplayIndex=function(){return this.displayIndex},v.prototype.getRows=function(e){var t=this,o=[];return e.forEach(function(e,i){var n,s;o.push(e),e instanceof r&&(n=e.modules.dataTree.children,n.index||!1===n.children||(s=t.getChildren(e),s.forEach(function(e){o.push(e)})))}),o},v.prototype.getChildren=function(e){var t=this,o=e.modules.dataTree,i=[],n=[];return!1!==o.children&&o.open&&(Array.isArray(o.children)||(o.children=this.generateChildren(e)),i=this.table.modExists("filter")?this.table.modules.filter.filter(o.children):o.children,this.table.modExists("sort")&&this.table.modules.sort.sort(i),i.forEach(function(e){n.push(e),t.getChildren(e).forEach(function(e){n.push(e)})})),n},v.prototype.generateChildren=function(e){var t=this,o=[],i=e.getData()[this.field];return Array.isArray(i)||(i=[i]),i.forEach(function(i){var n=new r(i||{},t.table.rowManager);n.modules.dataTree.index=e.modules.dataTree.index+1,n.modules.dataTree.parent=e,n.modules.dataTree.children&&(n.modules.dataTree.open=t.startOpen(n.getComponent(),n.modules.dataTree.index)),o.push(n)}),o},v.prototype.expandRow=function(e,t){var o=e.modules.dataTree;!1!==o.children&&(o.open=!0,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowExpanded(e.getComponent(),e.modules.dataTree.index))},v.prototype.collapseRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open=!1,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowCollapsed(e.getComponent(),e.modules.dataTree.index))},v.prototype.toggleRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open?this.collapseRow(e):this.expandRow(e))},v.prototype.getTreeParent=function(e){return!!e.modules.dataTree.parent&&e.modules.dataTree.parent.getComponent()},v.prototype.getFilteredTreeChildren=function(e){var t,o=e.modules.dataTree,i=[];return o.children&&(Array.isArray(o.children)||(o.children=this.generateChildren(e)),t=this.table.modExists("filter")?this.table.modules.filter.filter(o.children):o.children,t.forEach(function(e){e instanceof r&&i.push(e)})),i},v.prototype.getTreeChildren=function(e){var t=e.modules.dataTree,o=[];return t.children&&(Array.isArray(t.children)||(t.children=this.generateChildren(e)),t.children.forEach(function(e){e instanceof r&&o.push(e.getComponent())})),o},v.prototype.checkForRestyle=function(e){e.row.cells.indexOf(e)||e.row.reinitialize()},v.prototype.getChildField=function(){return this.field},v.prototype.redrawNeeded=function(e){return!!this.field&&void 0!==e[this.field]||!!this.elementField&&void 0!==e[this.elementField]},u.prototype.registerModule("dataTree",v);var y=function(e){this.table=e,this.fields={},this.columnsByIndex=[],this.columnsByField={},this.config={},this.active=!1};y.prototype.download=function(e,t,o,i,n){function s(o,i){n?!0===n?r.triggerDownload(o,i,e,t,!0):n(o):r.triggerDownload(o,i,e,t)}var r=this,a=!1;this.processConfig(),this.active=i,"function"==typeof e?a=e:r.downloaders[e]?a=r.downloaders[e]:console.warn("Download Error - No such download type found: ",e),this.processColumns(),a&&a.call(this,r.processDefinitions(),r.processData(i||"active"),o||{},s,this.config)},y.prototype.processConfig=function(){var e={columnGroups:!0,rowGroups:!0,columnCalcs:!0,dataTree:!0};if(this.table.options.downloadConfig)for(var t in this.table.options.downloadConfig)e[t]=this.table.options.downloadConfig[t];this.config.rowGroups=e.rowGroups&&this.table.options.groupBy&&this.table.modExists("groupRows"),e.columnGroups&&this.table.columnManager.columns.length!=this.table.columnManager.columnsByIndex.length&&(this.config.columnGroups=!0),e.columnCalcs&&this.table.modExists("columnCalcs")&&(this.config.columnCalcs=!0),e.dataTree&&this.table.options.dataTree&&this.table.modExists("dataTree")&&(this.config.dataTree=!0)},y.prototype.processColumns=function(){var e=this;e.columnsByIndex=[],e.columnsByField={},e.table.columnManager.columnsByIndex.forEach(function(t){t.field&&!1!==t.definition.download&&(t.visible||!t.visible&&t.definition.download)&&(e.columnsByIndex.push(t),e.columnsByField[t.field]=t)})},y.prototype.processDefinitions=function(){var e=this,t=[];return this.config.columnGroups?e.table.columnManager.columns.forEach(function(o){var i=e.processColumnGroup(o);i&&t.push(i)}):e.columnsByIndex.forEach(function(o){!1!==o.download&&t.push(e.processDefinition(o))}),t},y.prototype.processColumnGroup=function(e){var t=this,o=e.columns,i=0,n=this.processDefinition(e),s={type:"group",title:n.title,depth:1};if(o.length){if(s.subGroups=[],s.width=0,o.forEach(function(e){var o=t.processColumnGroup(e);o.depth>i&&(i=o.depth),o&&(s.width+=o.width,s.subGroups.push(o))}),s.depth+=i,!s.width)return!1}else{if(!e.field||!1===e.definition.download||!(e.visible||!e.visible&&e.definition.download))return!1;s.width=1,s.definition=n}return s},y.prototype.processDefinition=function(e){var t={};for(var o in e.definition)t[o]=e.definition[o];return void 0!==e.definition.downloadTitle&&(t.title=e.definition.downloadTitle),t},y.prototype.processData=function(e){var t=this,o=this,i=[],n=[],s=!1,r={};return this.config.rowGroups?("visible"==e?(s=o.table.rowManager.getRows(e),s.forEach(function(e){
-if("row"==e.type){var t=e.getGroup();-1===n.indexOf(t)&&n.push(t)}})):n=this.table.modules.groupRows.getGroups(),n.forEach(function(e){i.push(t.processGroupData(e,s))})):(this.config.dataTree&&(e=e="display"),i=o.table.rowManager.getData(e,"download")),this.config.columnCalcs&&(r=this.table.getCalcResults(),i={calcs:r,data:i}),"function"==typeof o.table.options.downloadDataFormatter&&(i=o.table.options.downloadDataFormatter(i)),i},y.prototype.processGroupData=function(e,t){var o=this,i=e.getSubGroups(),n={type:"group",key:e.key};return i.length?(n.subGroups=[],i.forEach(function(e){n.subGroups.push(o.processGroupData(e,t))})):t?(n.rows=[],e.rows.forEach(function(e){t.indexOf(e)>-1&&n.rows.push(e.getData("download"))})):n.rows=e.getData(!0,"download"),n},y.prototype.triggerDownload=function(e,t,o,i,n){var s=document.createElement("a"),r=new Blob([e],{type:t}),i=i||"Tabulator."+("function"==typeof o?"txt":o);(r=this.table.options.downloadReady.call(this.table,e,r))&&(n?window.open(window.URL.createObjectURL(r)):navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(r,i):(s.setAttribute("href",window.URL.createObjectURL(r)),s.setAttribute("download",i),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)),this.table.options.downloadComplete&&this.table.options.downloadComplete())},y.prototype.getFieldValue=function(e,t){var o=this.columnsByField[e];return!!o&&o.getFieldValue(t)},y.prototype.commsReceived=function(e,t,o){switch(t){case"intercept":this.download(o.type,"",o.options,o.active,o.intercept)}},y.prototype.downloaders={csv:function(e,t,o,i,n){function s(e,t){e.subGroups?e.subGroups.forEach(function(e){s(e,t+1)}):(d.push('"'+String(e.title).split('"').join('""')+'"'),h.push(e.definition.field))}function r(e){e.forEach(function(e){var t=[];h.forEach(function(o){var i=u.getFieldValue(o,e);switch(void 0===i?"undefined":_typeof(i)){case"object":i=JSON.stringify(i);break;case"undefined":case"null":i="";break;default:i=i}t.push('"'+String(i).split('"').join('""')+'"')}),l.push(t.join(p))})}function a(e){e.subGroups?e.subGroups.forEach(function(e){a(e)}):r(e.rows)}var l,c,u=this,d=[],h=[],p=o&&o.delimiter?o.delimiter:",";n.columnGroups?(console.warn("Download Warning - CSV downloader cannot process column groups"),e.forEach(function(e){s(e,0)})):function(){e.forEach(function(e){d.push('"'+String(e.title).split('"').join('""')+'"'),h.push(e.field)})}(),l=[d.join(p)],n.columnCalcs&&(console.warn("Download Warning - CSV downloader cannot process column calculations"),t=t.data),n.rowGroups?(console.warn("Download Warning - CSV downloader cannot process row groups"),t.forEach(function(e){a(e)})):r(t),c=l.join("\n"),o.bom&&(c="\ufeff"+c),i(c,"text/csv")},json:function(e,t,o,i,n){var s;n.columnCalcs&&(console.warn("Download Warning - CSV downloader cannot process column calculations"),t=t.data),s=JSON.stringify(t,null,"\t"),i(s,"application/json")},pdf:function(e,t,o,i,n){function s(e,t){var o=e.width,i=1,n={content:e.title||""};if(e.subGroups?(e.subGroups.forEach(function(e){s(e,t+1)}),i=1):(h.push(e.definition.field),i=g-t),n.rowSpan=i,p[t].push(n),o--,i>1)for(var r=t+1;r<g;r++)p[r].push("");for(var r=0;r<o;r++)p[t].push("")}function r(e){switch(void 0===e?"undefined":_typeof(e)){case"object":e=JSON.stringify(e);break;case"undefined":case"null":e="";break;default:e=e}return e}function a(e){e.forEach(function(e){m.push(l(e))})}function l(e,t){var o=[];return h.forEach(function(i){var n=d.getFieldValue(i,e);n=r(n),t?o.push({content:n,styles:t}):o.push(n)}),o}function c(e,t){var o=[];o.push({content:r(e.key),colSpan:h.length,styles:v}),m.push(o),e.subGroups?e.subGroups.forEach(function(o){c(o,t[e.key]?t[e.key].groups||{}:{})}):(n.columnCalcs&&u(t,e.key,"top"),a(e.rows),n.columnCalcs&&u(t,e.key,"bottom"))}function u(e,t,o){var i=e[t];i&&(o&&(i=i[o]),Object.keys(i).length&&m.push(l(i,y)))}var d=this,h=[],p=[],m=[],f={},g=1,b={},v=o.rowGroupStyles||{fontStyle:"bold",fontSize:12,cellPadding:6,fillColor:220},y=o.rowCalcStyles||{fontStyle:"bold",fontSize:10,cellPadding:4,fillColor:232},w=o.jsPDF||{},E=o&&o.title?o.title:"";if(n.columnCalcs&&(f=t.calcs,t=t.data),w.orientation||(w.orientation=o.orientation||"landscape"),w.unit||(w.unit="pt"),n.columnGroups){e.forEach(function(e){e.depth>g&&(g=e.depth)});for(var C=0;C<g;C++)p.push([]);e.forEach(function(e){s(e,0)})}else!function(){e.forEach(function(e){e.field&&(p.push(e.title||""),h.push(e.field))}),p=[p]}();n.rowGroups?t.forEach(function(e){c(e,f)}):(n.columnCalcs&&u(f,"top"),a(t),n.columnCalcs&&u(f,"bottom"));var x=new jsPDF(w);o&&o.autoTable&&(b="function"==typeof o.autoTable?o.autoTable(x)||{}:o.autoTable),E&&(b.addPageContent=function(e){x.text(E,40,30)}),b.head=p,b.body=m,x.autoTable(b),o&&o.documentProcessing&&o.documentProcessing(x),i(x.output("arraybuffer"),"application/pdf")},xlsx:function(e,t,o,i,n){function s(){function o(e,t){void 0===f[t]&&(f[t]=[]),void 0===h[t]&&(h[t]=[]),e.width>1&&h[t].push({type:"hoz",start:f[t].length,end:f[t].length+e.width-1}),f[t].push(e.title),e.subGroups?e.subGroups.forEach(function(e){o(e,t+1)}):(g.push(e.definition.field),i(g.length),h[t].push({type:"vert",start:g.length-1}))}function i(){var e=0;f.forEach(function(t){var o=t.length;o>e&&(e=o)}),f.forEach(function(t){var o=t.length;if(o<e)for(var i=o;i<e;i++)t.push("")})}function s(){var e=[];return d.forEach(function(t){e.push({s:{r:t,c:0},e:{r:t,c:g.length-1}})}),h.forEach(function(t,o){t.forEach(function(t){"hoz"===t.type?e.push({s:{r:o,c:t.start},e:{r:o,c:t.end}}):o!=f.length-1&&e.push({s:{r:o,c:t.start},e:{r:f.length-1,c:t.start}})})}),e}function r(e){e.forEach(function(e){b.push(l(e))})}function l(e){var t=[];return g.forEach(function(o){var i=a.getFieldValue(o,e);t.push(i instanceof Date||"object"!==(void 0===i?"undefined":_typeof(i))?i:JSON.stringify(i))}),t}function c(e,t,o){var i=e[t];i&&(o&&(i=i[o]),Object.keys(i).length&&(p.push(b.length),b.push(l(i))))}function m(e,t){var o=[];o.push(e.key),d.push(b.length),b.push(o),e.subGroups?e.subGroups.forEach(function(o){m(o,t[e.key]?t[e.key].groups||{}:{})}):(n.columnCalcs&&c(t,e.key,"top"),r(e.rows),n.columnCalcs&&c(t,e.key,"bottom"))}var f=[],g=[],b=[];return n.columnGroups?(e.forEach(function(e){o(e,0)}),f.forEach(function(e){b.push(e)})):function(){e.forEach(function(e){f.push(e.title),g.push(e.field)}),b.push(f)}(),n.rowGroups?t.forEach(function(e){m(e,u)}):(n.columnCalcs&&c(u,"top"),r(t),n.columnCalcs&&c(u,"bottom")),function(){var e={},t={s:{c:0,r:0},e:{c:g.length,r:b.length}};XLSX.utils.sheet_add_aoa(e,b),e["!ref"]=XLSX.utils.encode_range(t);var o=s();return o.length&&(e["!merges"]=o),e}()}var r,a=this,l=o.sheetName||"Sheet1",c=XLSX.utils.book_new(),u={},d=[],h=[],p=[];if(c.SheetNames=[],c.Sheets={},n.columnCalcs&&(u=t.calcs,t=t.data),o.sheetOnly)return void i(s());if(o.sheets)for(var m in o.sheets)!0===o.sheets[m]?(c.SheetNames.push(m),c.Sheets[m]=s()):(c.SheetNames.push(m),this.table.modules.comms.send(o.sheets[m],"download","intercept",{type:"xlsx",options:{sheetOnly:!0},active:a.active,intercept:function(e){c.Sheets[m]=e}}));else c.SheetNames.push(l),c.Sheets[l]=s();o.documentProcessing&&(c=o.documentProcessing(c)),r=XLSX.write(c,{bookType:"xlsx",bookSST:!0,type:"binary"}),i(function(e){for(var t=new ArrayBuffer(e.length),o=new Uint8Array(t),i=0;i!=e.length;++i)o[i]=255&e.charCodeAt(i);return t}(r),"application/octet-stream")},html:function(e,t,o,i,n){this.table.modExists("export",!0)&&i(this.table.modules.export.getHtml(!0,o.style,n),"text/html")}},u.prototype.registerModule("download",y);var w=function(e){this.table=e,this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1};w.prototype.initializeColumn=function(e){var t=this,o={editor:!1,blocked:!1,check:e.definition.editable,params:e.definition.editorParams||{}};switch(_typeof(e.definition.editor)){case"string":"tick"===e.definition.editor&&(e.definition.editor="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.editor]?o.editor=t.editors[e.definition.editor]:console.warn("Editor Error - No such editor found: ",e.definition.editor);break;case"function":o.editor=e.definition.editor;break;case"boolean":!0===e.definition.editor&&("function"!=typeof e.definition.formatter?("tick"===e.definition.formatter&&(e.definition.formatter="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.formatter]?o.editor=t.editors[e.definition.formatter]:o.editor=t.editors.input):console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",e.definition.formatter))}o.editor&&(e.modules.edit=o)},w.prototype.getCurrentCell=function(){return!!this.currentCell&&this.currentCell.getComponent()},w.prototype.clearEditor=function(){var e,t=this.currentCell;if(this.invalidEdit=!1,t){for(this.currentCell=!1,e=t.getElement(),e.classList.remove("tabulator-validation-fail"),e.classList.remove("tabulator-editing");e.firstChild;)e.removeChild(e.firstChild);t.row.getElement().classList.remove("tabulator-row-editing")}},w.prototype.cancelEdit=function(){if(this.currentCell){var e=this.currentCell,t=this.currentCell.getComponent();this.clearEditor(),e.setValueActual(e.getValue()),e.cellRendered(),e.column.cellEvents.cellEditCancelled&&e.column.cellEvents.cellEditCancelled.call(this.table,t),this.table.options.cellEditCancelled.call(this.table,t)}},w.prototype.bindEditor=function(e){var t=this,o=e.getElement();o.setAttribute("tabindex",0),o.addEventListener("click",function(e){o.classList.contains("tabulator-editing")||o.focus({preventScroll:!0})}),o.addEventListener("mousedown",function(e){t.mouseClick=!0}),o.addEventListener("focus",function(o){t.recursionBlock||t.edit(e,o,!1)})},w.prototype.focusCellNoEvent=function(e,t){this.recursionBlock=!0,t&&"ie"===this.table.browser||e.getElement().focus({preventScroll:!0}),this.recursionBlock=!1},w.prototype.editCell=function(e,t){this.focusCellNoEvent(e),this.edit(e,!1,t)},w.prototype.focusScrollAdjust=function(e){if("virtual"==this.table.rowManager.getRenderMode()){var t=this.table.rowManager.element.scrollTop,o=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,i=e.row.getElement();i.offsetTop;i.offsetTop<t?this.table.rowManager.element.scrollTop-=t-i.offsetTop:i.offsetTop+i.offsetHeight>o&&(this.table.rowManager.element.scrollTop+=i.offsetTop+i.offsetHeight-o)}},w.prototype.edit=function(e,t,o){function i(t){if(c.currentCell===e){var o=!0;return e.column.modules.validate&&c.table.modExists("validate")&&(o=c.table.modules.validate.validate(e.column.modules.validate,e.getComponent(),t)),!0===o?(c.clearEditor(),e.setValue(t,!0),c.table.options.dataTree&&c.table.modExists("dataTree")&&c.table.modules.dataTree.checkForRestyle(e),!0):(c.invalidEdit=!0,h.classList.add("tabulator-validation-fail"),c.focusCellNoEvent(e,!0),d(),c.table.options.validationFailed.call(c.table,e.getComponent(),t,o),!1)}}function n(){c.currentCell===e&&(c.cancelEdit(),c.table.options.dataTree&&c.table.modExists("dataTree")&&c.table.modules.dataTree.checkForRestyle(e))}function s(e){d=e}var r,a,l,c=this,u=!0,d=function(){},h=e.getElement();if(this.currentCell)return void(this.invalidEdit||this.cancelEdit());if(e.column.modules.edit.blocked)return this.mouseClick=!1,h.blur(),!1;switch(t&&t.stopPropagation(),_typeof(e.column.modules.edit.check)){case"function":u=e.column.modules.edit.check(e.getComponent());break;case"boolean":u=e.column.modules.edit.check}if(u||o){if(c.cancelEdit(),c.currentCell=e,this.focusScrollAdjust(e),a=e.getComponent(),this.mouseClick&&(this.mouseClick=!1,e.column.cellEvents.cellClick&&e.column.cellEvents.cellClick.call(this.table,t,a)),e.column.cellEvents.cellEditing&&e.column.cellEvents.cellEditing.call(this.table,a),c.table.options.cellEditing.call(this.table,a),l="function"==typeof e.column.modules.edit.params?e.column.modules.edit.params(a):e.column.modules.edit.params,!1===(r=e.column.modules.edit.editor.call(c,a,s,i,n,l)))return h.blur(),!1;if(!(r instanceof Node))return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",r),h.blur(),!1;for(h.classList.add("tabulator-editing"),e.row.getElement().classList.add("tabulator-row-editing");h.firstChild;)h.removeChild(h.firstChild);h.appendChild(r),d();for(var p=h.children,m=0;m<p.length;m++)p[m].addEventListener("click",function(e){e.stopPropagation()});return!0}return this.mouseClick=!1,h.blur(),!1},w.prototype.maskInput=function(e,t){function o(t){var a=i[t];void 0!==a&&a!==r&&a!==n&&a!==s&&(e.value=e.value+""+a,o(t+1))}var i=t.mask,n=void 0!==t.maskLetterChar?t.maskLetterChar:"A",s=void 0!==t.maskNumberChar?t.maskNumberChar:"9",r=void 0!==t.maskWildcardChar?t.maskWildcardChar:"*",a=!1;e.addEventListener("keydown",function(t){var o=e.value.length,l=t.key;if(t.keyCode>46){if(o>=i.length)return t.preventDefault(),t.stopPropagation(),a=!1,!1;switch(i[o]){case n:if(l.toUpperCase()==l.toLowerCase())return t.preventDefault(),t.stopPropagation(),a=!1,!1;break;case s:if(isNaN(l))return t.preventDefault(),t.stopPropagation(),a=!1,!1;break;case r:break;default:if(l!==i[o])return t.preventDefault(),t.stopPropagation(),a=!1,!1}a=!0}}),e.addEventListener("keyup",function(i){i.keyCode>46&&t.maskAutoFill&&o(e.value.length)}),e.placeholder||(e.placeholder=i),t.maskAutoFill&&o(e.value.length)},w.prototype.editors={input:function(e,t,o,i,n){function s(e){(null===r||void 0===r)&&""!==a.value||a.value!==r?o(a.value)&&(r=a.value):i()}var r=e.getValue(),a=document.createElement("input");if(a.setAttribute("type",n.search?"search":"text"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var l in n.elementAttributes)"+"==l.charAt(0)?(l=l.slice(1),a.setAttribute(l,a.getAttribute(l)+n.elementAttributes["+"+l])):a.setAttribute(l,n.elementAttributes[l]);return a.value=void 0!==r?r:"",t(function(){a.focus({preventScroll:!0}),a.style.height="100%"}),a.addEventListener("change",s),a.addEventListener("blur",s),a.addEventListener("keydown",function(e){switch(e.keyCode){case 13:s(e);break;case 27:i()}}),n.mask&&this.table.modules.edit.maskInput(a,n),a},textarea:function(e,t,o,i,n){function s(t){(null===r||void 0===r)&&""!==c.value||c.value!==r?(o(c.value)&&(r=c.value),setTimeout(function(){e.getRow().normalizeHeight()},300)):i()}var r=e.getValue(),a=n.verticalNavigation||"hybrid",l=String(null!==r&&void 0!==r?r:""),c=(l.match(/(?:\r\n|\r|\n)/g),document.createElement("textarea")),u=0;if(c.style.display="block",c.style.padding="2px",c.style.height="100%",c.style.width="100%",c.style.boxSizing="border-box",c.style.whiteSpace="pre-wrap",c.style.resize="none",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var d in n.elementAttributes)"+"==d.charAt(0)?(d=d.slice(1),c.setAttribute(d,c.getAttribute(d)+n.elementAttributes["+"+d])):c.setAttribute(d,n.elementAttributes[d]);return c.value=l,t(function(){c.focus({preventScroll:!0}),c.style.height="100%"}),c.addEventListener("change",s),c.addEventListener("blur",s),c.addEventListener("keyup",function(){c.style.height="";var t=c.scrollHeight;c.style.height=t+"px",t!=u&&(u=t,e.getRow().normalizeHeight())}),c.addEventListener("keydown",function(e){switch(e.keyCode){case 27:i();break;case 38:("editor"==a||"hybrid"==a&&c.selectionStart)&&(e.stopImmediatePropagation(),e.stopPropagation());break;case 40:("editor"==a||"hybrid"==a&&c.selectionStart!==c.value.length)&&(e.stopImmediatePropagation(),e.stopPropagation())}}),n.mask&&this.table.modules.edit.maskInput(c,n),c},number:function(e,t,o,i,n){function s(){var e=l.value;isNaN(e)||""===e||(e=Number(e)),e!==r?o(e)&&(r=e):i()}var r=e.getValue(),a=n.verticalNavigation||"editor",l=document.createElement("input");if(l.setAttribute("type","number"),void 0!==n.max&&l.setAttribute("max",n.max),void 0!==n.min&&l.setAttribute("min",n.min),void 0!==n.step&&l.setAttribute("step",n.step),l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var c in n.elementAttributes)"+"==c.charAt(0)?(c=c.slice(1),l.setAttribute(c,l.getAttribute(c)+n.elementAttributes["+"+c])):l.setAttribute(c,n.elementAttributes[c]);l.value=r;var u=function(e){s()};return t(function(){l.removeEventListener("blur",u),l.focus({preventScroll:!0}),l.style.height="100%",l.addEventListener("blur",u)}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 13:s();break;case 27:i();break;case 38:case 40:"editor"==a&&(e.stopImmediatePropagation(),e.stopPropagation())}}),n.mask&&this.table.modules.edit.maskInput(l,n),l},range:function(e,t,o,i,n){function s(){var e=a.value;isNaN(e)||""===e||(e=Number(e)),e!=r?o(e)&&(r=e):i()}var r=e.getValue(),a=document.createElement("input");if(a.setAttribute("type","range"),void 0!==n.max&&a.setAttribute("max",n.max),void 0!==n.min&&a.setAttribute("min",n.min),void 0!==n.step&&a.setAttribute("step",n.step),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var l in n.elementAttributes)"+"==l.charAt(0)?(l=l.slice(1),a.setAttribute(l,a.getAttribute(l)+n.elementAttributes["+"+l])):a.setAttribute(l,n.elementAttributes[l]);return a.value=r,t(function(){a.focus({preventScroll:!0}),a.style.height="100%"}),a.addEventListener("blur",function(e){s()}),a.addEventListener("keydown",function(e){switch(e.keyCode){case 13:case 9:s();break;case 27:i()}}),a},select:function(e,t,o,i,n){function s(t){var o,i={},s=f.table.getData();return o=t?f.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),o?(s.forEach(function(e){var t=o.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(i[t]=!0)}),i=n.sortValuesList?"asc"==n.sortValuesList?Object.keys(i).sort():Object.keys(i).sort().reverse():Object.keys(i)):console.warn("unable to find matching column to create select lookup list:",t),i}function r(t,o){function i(e){var e={label:n.listItemFormatter?n.listItemFormatter(e.value,e.label):e.label,value:e.value,element:!1};return e.value!==o&&(isNaN(parseFloat(e.value))||isNaN(parseFloat(e.value))||parseFloat(e.value)!==parseFloat(o))||l(e),s.push(e),r.push(e),e}var s=[],r=[];if("function"==typeof t&&(t=t(e)),Array.isArray(t))t.forEach(function(e){var t;"object"===(void 0===e?"undefined":_typeof(e))?e.options?(t={label:e.label,group:!0,element:!1},r.push(t),e.options.forEach(function(e){i(e)})):i(e):(t={label:n.listItemFormatter?n.listItemFormatter(e,e):e,value:e,element:!1},t.value!==o&&(isNaN(parseFloat(t.value))||isNaN(parseFloat(t.value))||parseFloat(t.value)!==parseFloat(o))||l(t),s.push(t),r.push(t))});else for(var c in t){var u={label:n.listItemFormatter?n.listItemFormatter(c,t[c]):t[c],value:c,element:!1};u.value!==o&&(isNaN(parseFloat(u.value))||isNaN(parseFloat(u.value))||parseFloat(u.value)!==parseFloat(o))||l(u),s.push(u),r.push(u)}C=s,x=r,a()}function a(){for(;E.firstChild;)E.removeChild(E.firstChild);x.forEach(function(e){var t=e.element;t||(e.group?(t=document.createElement("div"),t.classList.add("tabulator-edit-select-list-group"),t.tabIndex=0,t.innerHTML=""===e.label?" ":e.label):(t=document.createElement("div"),t.classList.add("tabulator-edit-select-list-item"),t.tabIndex=0,t.innerHTML=""===e.label?" ":e.label,t.addEventListener("click",function(){l(e),c()}),e===R&&t.classList.add("active")),t.addEventListener("mousedown",function(){M=!1,setTimeout(function(){M=!0},10)}),e.element=t),E.appendChild(t)})}function l(e){R&&R.element&&R.element.classList.remove("active"),R=e,w.value=" "===e.label?"":e.label,e.element&&e.element.classList.add("active")}function c(){p(),b!==R.value?(b=R.value,o(R.value)):i()}function d(){p(),i()}function h(){if(!E.parentNode){!0===n.values?r(s(),y):"string"==typeof n.values?r(s(n.values),y):r(n.values||[],y);var e=u.prototype.helpers.elOffset(g);E.style.minWidth=g.offsetWidth+"px",E.style.top=e.top+g.offsetHeight+"px",E.style.left=e.left+"px",E.addEventListener("mousedown",function(e){M=!1,setTimeout(function(){M=!0},10)}),document.body.appendChild(E)}}function p(){E.parentNode&&E.parentNode.removeChild(E),m()}function m(){f.table.rowManager.element.removeEventListener("scroll",d)}var f=this,g=e.getElement(),b=e.getValue(),v=n.verticalNavigation||"editor",y=void 0!==b||null===b?b:void 0!==n.defaultValue?n.defaultValue:"",w=document.createElement("input"),E=document.createElement("div"),C=[],x=[],R={},M=!0;if(this.table.rowManager.element.addEventListener("scroll",d),(Array.isArray(n)||!Array.isArray(n)&&"object"===(void 0===n?"undefined":_typeof(n))&&!n.values)&&(console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object"),n={values:n}),w.setAttribute("type","text"),w.style.padding="4px",w.style.width="100%",w.style.boxSizing="border-box",w.style.cursor="default",w.readOnly=0!=this.currentCell,n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var L in n.elementAttributes)"+"==L.charAt(0)?(L=L.slice(1),w.setAttribute(L,w.getAttribute(L)+n.elementAttributes["+"+L])):w.setAttribute(L,n.elementAttributes[L]);return w.value=void 0!==b||null===b?b:"",w.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=C.indexOf(R),("editor"==v||"hybrid"==v&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t>0&&l(C[t-1]));break;case 40:t=C.indexOf(R),("editor"==v||"hybrid"==v&&t<C.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<C.length-1&&l(-1==t?C[0]:C[t+1]));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault();break;case 13:c();break;case 27:d()}}),w.addEventListener("blur",function(e){M&&d()}),w.addEventListener("focus",function(e){h()}),E=document.createElement("div"),E.classList.add("tabulator-edit-select-list"),t(function(){w.style.height="100%",w.focus({preventScroll:!0})}),w},autocomplete:function(e,t,o,i,n){function s(t){var o,i={},s=y.table.getData();return o=t?y.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),o?(s.forEach(function(e){var t=o.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(i[t]=!0)}),i=n.sortValuesList?"asc"==n.sortValuesList?Object.keys(i).sort():Object.keys(i).sort().reverse():Object.keys(i)):console.warn("unable to find matching column to create autocomplete lookup list:",t),i}function r(e,t){var o,i,r=[];o=!0===n.values?s():"string"==typeof n.values?s(n.values):n.values||[],n.searchFunc?(r=n.searchFunc(e,o),r instanceof Promise?(a(void 0!==n.searchingPlaceholder?n.searchingPlaceholder:"Searching..."),r.then(function(e){d(l(e),t)}).catch(function(e){console.err("error in autocomplete search promise:",e)})):d(l(r),t)):(i=l(o),""===e?n.showListOnEmpty&&(r=i):i.forEach(function(t){null===t.value&&void 0===t.value||(String(t.value).toLowerCase().indexOf(String(e).toLowerCase())>-1||String(t.title).toLowerCase().indexOf(String(e).toLowerCase())>-1)&&r.push(t)}),d(r,t))}function a(e){var t=document.createElement("div");c(),!1!==e&&(t.classList.add("tabulator-edit-select-list-notice"),t.tabIndex=0,e instanceof Node?t.appendChild(e):t.innerHTML=e,M.appendChild(t))}function l(e){var t=[];if(Array.isArray(e))e.forEach(function(e){var o={title:n.listItemFormatter?n.listItemFormatter(e,e):e,value:e};t.push(o)});else for(var o in e){var i={title:n.listItemFormatter?n.listItemFormatter(o,e[o]):e[o],value:o};t.push(i)}return t}function c(){for(;M.firstChild;)M.removeChild(M.firstChild)}function d(e,t){e.length?h(e,t):n.emptyPlaceholder&&a(n.emptyPlaceholder)}function h(e,t){var o=!1;c(),L=e,L.forEach(function(e){var i=e.element;i||(i=document.createElement("div"),i.classList.add("tabulator-edit-select-list-item"),i.tabIndex=0,i.innerHTML=e.title,i.addEventListener("click",function(t){f(e),p()}),i.addEventListener("mousedown",function(e){D=!1,setTimeout(function(){D=!0},10)}),e.element=i,t&&e.value==E&&(R.value=e.title,e.element.classList.add("active"),o=!0),e===T&&(e.element.classList.add("active"),o=!0)),M.appendChild(i)}),o||f(!1)}function p(){g(),T?E!==T.value?(E=T.value,R.value=T.title,o(T.value)):i():n.freetext?(E=R.value,o(R.value)):n.allowEmpty&&""===R.value?(E=R.value,o(R.value)):i()}function m(){if(!M.parentNode){for(;M.firstChild;)M.removeChild(M.firstChild);var e=u.prototype.helpers.elOffset(w);M.style.minWidth=w.offsetWidth+"px",M.style.top=e.top+w.offsetHeight+"px",M.style.left=e.left+"px",document.body.appendChild(M)}}function f(e,t){T&&T.element&&T.element.classList.remove("active"),T=e,e&&e.element&&e.element.classList.add("active")}function g(){M.parentNode&&M.parentNode.removeChild(M),v()}function b(){g(),i()}function v(){y.table.rowManager.element.removeEventListener("scroll",b)}var y=this,w=e.getElement(),E=e.getValue(),C=n.verticalNavigation||"editor",x=void 0!==E||null===E?E:void 0!==n.defaultValue?n.defaultValue:"",R=document.createElement("input"),M=document.createElement("div"),L=[],T=!1,D=!0;if(this.table.rowManager.element.addEventListener("scroll",b),R.setAttribute("type","search"),R.style.padding="4px",R.style.width="100%",R.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var k in n.elementAttributes)"+"==k.charAt(0)?(k=k.slice(1),R.setAttribute(k,R.getAttribute(k)+n.elementAttributes["+"+k])):R.setAttribute(k,n.elementAttributes[k]);return M.classList.add("tabulator-edit-select-list"),M.addEventListener("mousedown",function(e){D=!1,setTimeout(function(){D=!0},10)}),R.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=L.indexOf(T),("editor"==C||"hybrid"==C&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),f(t>0?L[t-1]:!1));break;case 40:t=L.indexOf(T),("editor"==C||"hybrid"==C&&t<L.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<L.length-1&&f(-1==t?L[0]:L[t+1]));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault();break;case 13:p();break;case 27:b();break;case 36:case 35:e.stopImmediatePropagation()}}),R.addEventListener("keyup",function(e){switch(e.keyCode){case 38:case 37:case 39:case 40:case 13:case 27:break;default:r(R.value)}}),R.addEventListener("search",function(e){r(R.value)}),R.addEventListener("blur",function(e){D&&p()}),R.addEventListener("focus",function(e){var t=x;m(),R.value=t,r(t,!0)}),t(function(){R.style.height="100%",R.focus({preventScroll:!0})}),n.mask&&this.table.modules.edit.maskInput(R,n),R},star:function(e,t,o,i,n){function s(e){h.forEach(function(t,o){o<e?("ie"==a.table.browser?t.setAttribute("class","tabulator-star-active"):t.classList.replace("tabulator-star-inactive","tabulator-star-active"),t.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'):("ie"==a.table.browser?t.setAttribute("class","tabulator-star-inactive"):t.classList.replace("tabulator-star-active","tabulator-star-inactive"),t.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>')})}function r(e){c=e,s(e)}var a=this,l=e.getElement(),c=e.getValue(),u=l.getElementsByTagName("svg").length||5,d=l.getElementsByTagName("svg")[0]?l.getElementsByTagName("svg")[0].getAttribute("width"):14,h=[],p=document.createElement("div"),m=document.createElementNS("http://www.w3.org/2000/svg","svg");if(l.style.whiteSpace="nowrap",l.style.overflow="hidden",l.style.textOverflow="ellipsis",p.style.verticalAlign="middle",p.style.display="inline-block",p.style.padding="4px",m.setAttribute("width",d),m.setAttribute("height",d),m.setAttribute("viewBox","0 0 512 512"),m.setAttribute("xml:space","preserve"),m.style.padding="0 1px",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var f in n.elementAttributes)"+"==f.charAt(0)?(f=f.slice(1),p.setAttribute(f,p.getAttribute(f)+n.elementAttributes["+"+f])):p.setAttribute(f,n.elementAttributes[f]);for(var g=1;g<=u;g++)!function(e){var t=document.createElement("span"),i=m.cloneNode(!0);h.push(i),t.addEventListener("mouseenter",function(t){t.stopPropagation(),t.stopImmediatePropagation(),s(e)}),t.addEventListener("mousemove",function(e){e.stopPropagation(),e.stopImmediatePropagation()}),t.addEventListener("click",function(t){t.stopPropagation(),t.stopImmediatePropagation(),o(e)}),t.appendChild(i),p.appendChild(t)}(g);return c=Math.min(parseInt(c),u),s(c),p.addEventListener("mousemove",function(e){s(0)}),p.addEventListener("click",function(e){o(0)}),l.addEventListener("blur",function(e){i()}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 39:r(c+1);break;case 37:r(c-1);break;case 13:o(c);break;case 27:i()}}),p},progress:function(e,t,o,i,n){function s(){var e=d*Math.round(m.offsetWidth/(l.clientWidth/100))+u;o(e),l.setAttribute("aria-valuenow",e),l.setAttribute("aria-label",h)}var r,a,l=e.getElement(),c=void 0===n.max?l.getElementsByTagName("div")[0].getAttribute("max")||100:n.max,u=void 0===n.min?l.getElementsByTagName("div")[0].getAttribute("min")||0:n.min,d=(c-u)/100,h=e.getValue()||0,p=document.createElement("div"),m=document.createElement("div");if(p.style.position="absolute",p.style.right="0",p.style.top="0",p.style.bottom="0",p.style.width="5px",p.classList.add("tabulator-progress-handle"),m.style.display="inline-block",m.style.position="relative",m.style.height="100%",m.style.backgroundColor="#488CE9",m.style.maxWidth="100%",m.style.minWidth="0%",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var f in n.elementAttributes)"+"==f.charAt(0)?(f=f.slice(1),m.setAttribute(f,m.getAttribute(f)+n.elementAttributes["+"+f])):m.setAttribute(f,n.elementAttributes[f]);return l.style.padding="4px 4px",h=Math.min(parseFloat(h),c),h=Math.max(parseFloat(h),u),h=Math.round((h-u)/d),m.style.width=h+"%",l.setAttribute("aria-valuemin",u),l.setAttribute("aria-valuemax",c),m.appendChild(p),p.addEventListener("mousedown",function(e){r=e.screenX,a=m.offsetWidth}),p.addEventListener("mouseover",function(){p.style.cursor="ew-resize"}),l.addEventListener("mousemove",function(e){r&&(m.style.width=a+e.screenX-r+"px")}),l.addEventListener("mouseup",function(e){r&&(e.stopPropagation(),e.stopImmediatePropagation(),r=!1,a=!1,s())}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 39:e.preventDefault(),m.style.width=m.clientWidth+l.clientWidth/100+"px";break;case 37:e.preventDefault(),m.style.width=m.clientWidth-l.clientWidth/100+"px";break;case 9:case 13:s();break;case 27:i()}}),l.addEventListener("blur",function(){i()}),m},tickCross:function(e,t,o,i,n){function s(e){return l?e?u?c:a.checked:a.checked&&!u?(a.checked=!1,a.indeterminate=!0,u=!0,c):(u=!1,a.checked):a.checked}var r=e.getValue(),a=document.createElement("input"),l=n.tristate,c=void 0===n.indeterminateValue?null:n.indeterminateValue,u=!1;if(a.setAttribute("type","checkbox"),a.style.marginTop="5px",a.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var d in n.elementAttributes)"+"==d.charAt(0)?(d=d.slice(1),a.setAttribute(d,a.getAttribute(d)+n.elementAttributes["+"+d])):a.setAttribute(d,n.elementAttributes[d]);return a.value=r,!l||void 0!==r&&r!==c&&""!==r||(u=!0,a.indeterminate=!0),"firefox"!=this.table.browser&&t(function(){a.focus({preventScroll:!0})}),a.checked=!0===r||"true"===r||"True"===r||1===r,a.addEventListener("change",function(e){o(s())}),a.addEventListener("blur",function(e){o(s(!0))}),a.addEventListener("keydown",function(e){
-13==e.keyCode&&o(s()),27==e.keyCode&&i()}),a}},u.prototype.registerModule("edit",w);var E=function(e){this.table=e,this.config={},this.cloneTableStyle=!0,this.colVisProp=""};E.prototype.genereateTable=function(e,t,o,i){this.cloneTableStyle=t,this.config=e||{},this.colVisProp=i;var n=document.createElement("table");return n.classList.add("tabulator-print-table"),!1!==this.config.columnHeaders&&n.appendChild(this.generateHeaderElements()),n.appendChild(this.generateBodyElements(this.rowLookup(o))),this.mapElementStyles(this.table.element,n,["border-top","border-left","border-right","border-bottom"]),n},E.prototype.rowLookup=function(e){var t=this,o=[];if("function"==typeof e)e.call(this.table).forEach(function(e){(e=t.table.rowManager.findRow(e))&&o.push(e)});else switch(e){case!0:case"visible":o=this.table.rowManager.getVisibleRows(!0);break;case"all":o=this.table.rowManager.rows;break;case"selected":o=this.table.modules.selectRow.selectedRows;break;case"active":default:o=this.table.rowManager.getDisplayRows()}return Object.assign([],o)},E.prototype.generateColumnGroupHeaders=function(){var e=this,t=[];return(!1!==this.config.columnGroups?this.table.columnManager.columns:this.table.columnManager.columnsByIndex).forEach(function(o){var i=e.processColumnGroup(o);i&&t.push(i)}),t},E.prototype.processColumnGroup=function(e){var t=this,o=e.columns,i=0,n={title:e.definition.title,column:e,depth:1};if(o.length){if(n.subGroups=[],n.width=0,o.forEach(function(e){var o=t.processColumnGroup(e);o&&(n.width+=o.width,n.subGroups.push(o),o.depth>i&&(i=o.depth))}),n.depth+=i,!n.width)return!1}else{if(!this.columnVisCheck(e))return!1;n.width=1}return n},E.prototype.groupHeadersToRows=function(e){function t(e,n){var s=i-n;void 0===o[n]&&(o[n]=[]),e.height=e.subGroups?1:s-e.depth+1,o[n].push(e),e.subGroups&&e.subGroups.forEach(function(e){t(e,n+1)})}var o=[],i=0;return e.forEach(function(e){e.depth>i&&(i=e.depth)}),e.forEach(function(e){t(e,0)}),o},E.prototype.generateHeaderElements=function(){var e=this,t=document.createElement("thead");return this.groupHeadersToRows(this.generateColumnGroupHeaders()).forEach(function(o){var i=document.createElement("tr");e.mapElementStyles(e.table.columnManager.getHeadersElement(),t,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),o.forEach(function(t){var o=document.createElement("th"),n=t.column.definition.cssClass?t.column.definition.cssClass.split(" "):[];o.colSpan=t.width,o.rowSpan=t.height,o.innerHTML=t.column.definition.title,e.cloneTableStyle&&(o.style.boxSizing="border-box"),n.forEach(function(e){o.classList.add(e)}),e.mapElementStyles(t.column.getElement(),o,["text-align","border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),e.mapElementStyles(t.column.contentElement,o,["padding-top","padding-left","padding-right","padding-bottom"]),t.column.visible?e.mapElementStyles(t.column.getElement(),o,["width"]):t.column.definition.width&&(o.style.width=t.column.definition.width+"px"),t.column.parent&&e.mapElementStyles(t.column.parent.groupElement,o,["border-top"]),i.appendChild(o)}),t.appendChild(i)}),t},E.prototype.generateBodyElements=function(e){},E.prototype.generateBodyElements=function(e){var t,o,i,n,s,r,a,l,c,u,d=this;u=this.table.options["rowFormatter"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))],u=null!==u?u:this.table.options.rowFormatter,this.cloneTableStyle&&window.getComputedStyle&&(t=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),o=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),i=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),n=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),r=this.table.element.getElementsByClassName("tabulator-group")[0],n&&(a=n.getElementsByClassName("tabulator-cell"),s=a[0],a[a.length-1]));var h=document.createElement("tbody"),p=[];return!1!==this.config.columnCalcs&&this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&e.unshift(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&e.push(this.table.modules.columnCalcs.botRow)),this.table.columnManager.columnsByIndex.forEach(function(e){d.columnVisCheck(e)&&p.push(e)}),this.table.options.dataTree&&!1!==this.config.dataTree&&this.table.modExists("columnCalcs")&&(c=this.table.modules.dataTree.elementField),e=e.filter(function(e){switch(e.type){case"group":return!1!==d.config.rowGroups;case"calc":return!1!==d.config.columnCalcs}return!0}),e.length>1e3&&console.warn("It may take a long time to render an HTML table with more than 1000 rows"),e.forEach(function(e,n){var a=e.getData(d.colVisProp),m=document.createElement("tr");switch(m.classList.add("tabulator-print-table-row"),e.type){case"group":var f=document.createElement("td");f.colSpan=p.length,f.innerHTML=e.key,m.classList.add("tabulator-print-table-group"),d.mapElementStyles(r,m,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),d.mapElementStyles(r,f,["padding-top","padding-left","padding-right","padding-bottom"]),m.appendChild(f);break;case"calc":m.classList.add("tabulator-print-table-calcs");case"row":if(d.table.options.dataTree&&!1===d.config.dataTree&&e.modules.dataTree.parent)return;if(p.forEach(function(t,o){var i=document.createElement("td"),n=t.getFieldValue(a),r={modules:{},getValue:function(){return n},getField:function(){return t.definition.field},getElement:function(){return i},getColumn:function(){return t.getComponent()},getData:function(){return a},getRow:function(){return e.getComponent()},getComponent:function(){return r},column:t};if((t.definition.cssClass?t.definition.cssClass.split(" "):[]).forEach(function(e){i.classList.add(e)}),d.table.modExists("format")&&!1!==d.config.formatCells)n=d.table.modules.format.formatExportValue(r,d.colVisProp);else switch(void 0===n?"undefined":_typeof(n)){case"object":n=JSON.stringify(n);break;case"undefined":case"null":n="";break;default:n=n}n instanceof Node?i.appendChild(n):i.innerHTML=n,s&&(d.mapElementStyles(s,i,["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size"]),t.definition.align&&(i.style.textAlign=t.definition.align)),d.table.options.dataTree&&!1!==d.config.dataTree&&(c&&c==t.field||!c&&0==o)&&(e.modules.dataTree.controlEl&&i.insertBefore(e.modules.dataTree.controlEl.cloneNode(!0),i.firstChild),e.modules.dataTree.branchEl&&i.insertBefore(e.modules.dataTree.branchEl.cloneNode(!0),i.firstChild)),m.appendChild(i),r.modules.format&&r.modules.format.renderedCallback&&r.modules.format.renderedCallback()}),l="calc"==e.type?i:n%2&&o?o:t,d.mapElementStyles(l,m,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),u&&!1!==d.config.formatCells){var g=e.getComponent();g.getElement=function(){return m},u(g)}}h.appendChild(m)}),h},E.prototype.columnVisCheck=function(e){return!1!==e.definition[this.colVisProp]&&(e.visible||!e.visible&&e.definition[this.colVisProp])},E.prototype.getHtml=function(e,t,o,i){var n=document.createElement("div");return n.appendChild(this.genereateTable(o||this.table.options.htmlOutputConfig,t,e,i||"htmlOutput")),n.innerHTML},E.prototype.mapElementStyles=function(e,t,o){if(this.cloneTableStyle&&e&&t){var i={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var n=window.getComputedStyle(e);o.forEach(function(e){t.style[i[e]]=n.getPropertyValue(e)})}}},u.prototype.registerModule("export",E);var C=function(e){this.table=e,this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1};C.prototype.initializeColumn=function(e,t){function o(t){var o,s="input"==e.modules.filter.tagType&&"text"==e.modules.filter.attrType||"textarea"==e.modules.filter.tagType?"partial":"match",r="",a="";if(void 0===e.modules.filter.prevSuccess||e.modules.filter.prevSuccess!==t){if(e.modules.filter.prevSuccess=t,e.modules.filter.emptyFunc(t))delete i.headerFilters[n];else{switch(e.modules.filter.value=t,_typeof(e.definition.headerFilterFunc)){case"string":i.filters[e.definition.headerFilterFunc]?(r=e.definition.headerFilterFunc,o=function(o){var n=e.definition.headerFilterFuncParams||{},s=e.getFieldValue(o);return n="function"==typeof n?n(t,s,o):n,i.filters[e.definition.headerFilterFunc](t,s,o,n)}):console.warn("Header Filter Error - Matching filter function not found: ",e.definition.headerFilterFunc);break;case"function":o=function(o){var i=e.definition.headerFilterFuncParams||{},n=e.getFieldValue(o);return i="function"==typeof i?i(t,n,o):i,e.definition.headerFilterFunc(t,n,o,i)},r=o}if(!o)switch(s){case"partial":o=function(o){var i=e.getFieldValue(o);return void 0!==i&&null!==i&&String(i).toLowerCase().indexOf(String(t).toLowerCase())>-1},r="like";break;default:o=function(o){return e.getFieldValue(o)==t},r="="}i.headerFilters[n]={value:t,func:o,type:r}}a=JSON.stringify(i.headerFilters),i.prevHeaderFilterChangeCheck!==a&&(i.prevHeaderFilterChangeCheck=a,i.changed=!0,i.table.rowManager.filterRefresh())}return!0}var i=this,n=e.getField();e.modules.filter={success:o,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(e)},C.prototype.generateHeaderFilterElement=function(e,t,o){function i(){}var n,s,r,a,l,c,u,d=this,h=this,p=e.modules.filter.success,m=e.getField();if(e.modules.filter.headerElement&&e.modules.filter.headerElement.parentNode&&e.contentElement.removeChild(e.modules.filter.headerElement.parentNode),m){switch(e.modules.filter.emptyFunc=e.definition.headerFilterEmptyCheck||function(e){return!e&&"0"!==e},n=document.createElement("div"),n.classList.add("tabulator-header-filter"),_typeof(e.definition.headerFilter)){case"string":h.table.modules.edit.editors[e.definition.headerFilter]?(s=h.table.modules.edit.editors[e.definition.headerFilter],"tick"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):console.warn("Filter Error - Cannot build header filter, No such editor found: ",e.definition.editor);break;case"function":s=e.definition.headerFilter;break;case"boolean":e.modules.edit&&e.modules.edit.editor?s=e.modules.edit.editor:e.definition.formatter&&h.table.modules.edit.editors[e.definition.formatter]?(s=h.table.modules.edit.editors[e.definition.formatter],"tick"!==e.definition.formatter&&"tickCross"!==e.definition.formatter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):s=h.table.modules.edit.editors.input}if(s){if(a={getValue:function(){return void 0!==t?t:""},getField:function(){return e.definition.field},getElement:function(){return n},getColumn:function(){return e.getComponent()},getRow:function(){return{normalizeHeight:function(){}}}},u=e.definition.headerFilterParams||{},u="function"==typeof u?u.call(h.table):u,!(r=s.call(this.table.modules.edit,a,function(){},p,i,u)))return void console.warn("Filter Error - Cannot add filter to "+m+" column, editor returned a value of false");if(!(r instanceof Node))return void console.warn("Filter Error - Cannot add filter to "+m+" column, editor should return an instance of Node, the editor returned:",r);m?h.table.modules.localize.bind("headerFilters|columns|"+e.definition.field,function(e){r.setAttribute("placeholder",void 0!==e&&e?e:h.table.modules.localize.getText("headerFilters|default"))}):h.table.modules.localize.bind("headerFilters|default",function(e){r.setAttribute("placeholder",void 0!==h.column.definition.headerFilterPlaceholder&&h.column.definition.headerFilterPlaceholder?h.column.definition.headerFilterPlaceholder:e)}),r.addEventListener("click",function(e){e.stopPropagation(),r.focus()}),r.addEventListener("focus",function(e){var t=d.table.columnManager.element.scrollLeft;t!==d.table.rowManager.element.scrollLeft&&(d.table.rowManager.scrollHorizontal(t),d.table.columnManager.scrollHorizontal(t))}),l=!1,c=function(e){l&&clearTimeout(l),l=setTimeout(function(){p(r.value)},h.table.options.headerFilterLiveFilterDelay)},e.modules.filter.headerElement=r,e.modules.filter.attrType=r.hasAttribute("type")?r.getAttribute("type").toLowerCase():"",e.modules.filter.tagType=r.tagName.toLowerCase(),!1!==e.definition.headerFilterLiveFilter&&("autocomplete"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter&&("autocomplete"!==e.definition.editor&&"tickCross"!==e.definition.editor||!0!==e.definition.headerFilter)&&(r.addEventListener("keyup",c),r.addEventListener("search",c),"number"==e.modules.filter.attrType&&r.addEventListener("change",function(e){p(r.value)}),"text"==e.modules.filter.attrType&&"ie"!==this.table.browser&&r.setAttribute("type","search")),"input"!=e.modules.filter.tagType&&"select"!=e.modules.filter.tagType&&"textarea"!=e.modules.filter.tagType||r.addEventListener("mousedown",function(e){e.stopPropagation()})),n.appendChild(r),e.contentElement.appendChild(n),o||h.headerFilterColumns.push(e)}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",e.definition.title)},C.prototype.hideHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="none")})},C.prototype.showHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="")})},C.prototype.setHeaderFilterFocus=function(e){e.modules.filter&&e.modules.filter.headerElement?e.modules.filter.headerElement.focus():console.warn("Column Filter Focus Error - No header filter set on column:",e.getField())},C.prototype.getHeaderFilterValue=function(e){if(e.modules.filter&&e.modules.filter.headerElement)return e.modules.filter.headerElement.value;console.warn("Column Filter Error - No header filter set on column:",e.getField())},C.prototype.setHeaderFilterValue=function(e,t){e&&(e.modules.filter&&e.modules.filter.headerElement?(this.generateHeaderFilterElement(e,t,!0),e.modules.filter.success(t)):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},C.prototype.reloadHeaderFilter=function(e){e&&(e.modules.filter&&e.modules.filter.headerElement?this.generateHeaderFilterElement(e,e.modules.filter.value,!0):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},C.prototype.hasChanged=function(){var e=this.changed;return this.changed=!1,e},C.prototype.setFilter=function(e,t,o){var i=this;i.filterList=[],Array.isArray(e)||(e=[{field:e,type:t,value:o}]),i.addFilter(e)},C.prototype.addFilter=function(e,t,o){var i=this;Array.isArray(e)||(e=[{field:e,type:t,value:o}]),e.forEach(function(e){(e=i.findFilter(e))&&(i.filterList.push(e),i.changed=!0)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},C.prototype.findFilter=function(e){var t,o=this;if(Array.isArray(e))return this.findSubFilters(e);var i=!1;return"function"==typeof e.field?i=function(t){return e.field(t,e.type||{})}:o.filters[e.type]?(t=o.table.columnManager.getColumnByField(e.field),i=t?function(i){return o.filters[e.type](e.value,t.getFieldValue(i))}:function(t){return o.filters[e.type](e.value,t[e.field])}):console.warn("Filter Error - No such filter type found, ignoring: ",e.type),e.func=i,!!e.func&&e},C.prototype.findSubFilters=function(e){var t=this,o=[];return e.forEach(function(e){(e=t.findFilter(e))&&o.push(e)}),!!o.length&&o},C.prototype.getFilters=function(e,t){var o=[];return e&&(o=this.getHeaderFilters()),t&&o.forEach(function(e){"function"==typeof e.type&&(e.type="function")}),o=o.concat(this.filtersToArray(this.filterList,t))},C.prototype.filtersToArray=function(e,t){var o=this,i=[];return e.forEach(function(e){var n;Array.isArray(e)?i.push(o.filtersToArray(e,t)):(n={field:e.field,type:e.type,value:e.value},t&&"function"==typeof n.type&&(n.type="function"),i.push(n))}),i},C.prototype.getHeaderFilters=function(){var e=[];for(var t in this.headerFilters)e.push({field:t,type:this.headerFilters[t].type,value:this.headerFilters[t].value});return e},C.prototype.removeFilter=function(e,t,o){var i=this;Array.isArray(e)||(e=[{field:e,type:t,value:o}]),e.forEach(function(e){var t=-1;t="object"==_typeof(e.field)?i.filterList.findIndex(function(t){return e===t}):i.filterList.findIndex(function(t){return e.field===t.field&&e.type===t.type&&e.value===t.value}),t>-1?(i.filterList.splice(t,1),i.changed=!0):console.warn("Filter Error - No matching filter type found, ignoring: ",e.type)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},C.prototype.clearFilter=function(e){this.filterList=[],e&&this.clearHeaderFilter(),this.changed=!0,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},C.prototype.clearHeaderFilter=function(){var e=this;this.headerFilters={},e.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach(function(t){t.modules.filter.value=null,t.modules.filter.prevSuccess=void 0,e.reloadHeaderFilter(t)}),this.changed=!0},C.prototype.search=function(e,t,o,i){var n=this,s=[],r=[];return Array.isArray(t)||(t=[{field:t,type:o,value:i}]),t.forEach(function(e){(e=n.findFilter(e))&&r.push(e)}),this.table.rowManager.rows.forEach(function(t){var o=!0;r.forEach(function(e){n.filterRecurse(e,t.getData())||(o=!1)}),o&&s.push("data"===e?t.getData("data"):t.getComponent())}),s},C.prototype.filter=function(e,t){var o=this,i=[],n=[];return o.table.options.dataFiltering&&o.table.options.dataFiltering.call(o.table,o.getFilters()),o.table.options.ajaxFiltering||!o.filterList.length&&!Object.keys(o.headerFilters).length?i=e.slice(0):e.forEach(function(e){o.filterRow(e)&&i.push(e)}),o.table.options.dataFiltered&&(i.forEach(function(e){n.push(e.getComponent())}),o.table.options.dataFiltered.call(o.table,o.getFilters(),n)),i},C.prototype.filterRow=function(e,t){var o=this,i=!0,n=e.getData();o.filterList.forEach(function(e){o.filterRecurse(e,n)||(i=!1)});for(var s in o.headerFilters)o.headerFilters[s].func(n)||(i=!1);return i},C.prototype.filterRecurse=function(e,t){var o=this,i=!1;return Array.isArray(e)?e.forEach(function(e){o.filterRecurse(e,t)&&(i=!0)}):i=e.func(t),i},C.prototype.filters={"=":function(e,t,o,i){return t==e},"<":function(e,t,o,i){return t<e},"<=":function(e,t,o,i){return t<=e},">":function(e,t,o,i){return t>e},">=":function(e,t,o,i){return t>=e},"!=":function(e,t,o,i){return t!=e},regex:function(e,t,o,i){return"string"==typeof e&&(e=new RegExp(e)),e.test(t)},like:function(e,t,o,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().indexOf(e.toLowerCase())>-1},in:function(e,t,o,i){return Array.isArray(e)?e.indexOf(t)>-1:(console.warn("Filter Error - filter value is not an array:",e),!1)}},u.prototype.registerModule("filter",C);var x=function(e){this.table=e};x.prototype.initializeColumn=function(e){e.modules.format=this.lookupFormatter(e,""),void 0!==e.definition.formatterPrint&&(e.modules.format.print=this.lookupFormatter(e,"Print")),void 0!==e.definition.formatterClipboard&&(e.modules.format.clipboard=this.lookupFormatter(e,"Clipboard")),void 0!==e.definition.formatterHtmlOutput&&(e.modules.format.htmlOutput=this.lookupFormatter(e,"HtmlOutput"))},x.prototype.lookupFormatter=function(e,t){var o={params:e.definition["formatter"+t+"Params"]||{}},i=e.definition["formatter"+t];switch(void 0===i?"undefined":_typeof(i)){case"string":"tick"===i&&(i="tickCross",void 0===o.params.crossElement&&(o.params.crossElement=!1),console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false")),this.formatters[i]?o.formatter=this.formatters[i]:(console.warn("Formatter Error - No such formatter found: ",i),o.formatter=this.formatters.plaintext);break;case"function":o.formatter=i;break;default:o.formatter=this.formatters.plaintext}return o},x.prototype.cellRendered=function(e){e.modules.format&&e.modules.format.renderedCallback&&e.modules.format.renderedCallback()},x.prototype.formatValue=function(e){function t(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t}var o=e.getComponent(),i="function"==typeof e.column.modules.format.params?e.column.modules.format.params(o):e.column.modules.format.params;return e.column.modules.format.formatter.call(this,o,i,t)},x.prototype.formatExportValue=function(e,t){var o,i=e.column.modules.format[t];if(i){var n=function(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t};return o="function"==typeof i.params?i.params(component):i.params,i.formatter.call(this,e.getComponent(),o,n)}return this.formatValue(e)},x.prototype.sanitizeHTML=function(e){if(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(e).replace(/[&<>"'`=\/]/g,function(e){return t[e]})}return e},x.prototype.emptyToSpace=function(e){return null===e||void 0===e||""===e?" ":e},x.prototype.getFormatter=function(e){var e;switch(void 0===e?"undefined":_typeof(e)){case"string":this.formatters[e]?e=this.formatters[e]:(console.warn("Formatter Error - No such formatter found: ",e),e=this.formatters.plaintext);break;case"function":e=e;break;default:e=this.formatters.plaintext}return e},x.prototype.formatters={plaintext:function(e,t,o){return this.emptyToSpace(this.sanitizeHTML(e.getValue()))},html:function(e,t,o){return e.getValue()},textarea:function(e,t,o){return e.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(e.getValue()))},money:function(e,t,o){var i,n,s,r,a=parseFloat(e.getValue()),l=t.decimal||".",c=t.thousand||",",u=t.symbol||"",d=!!t.symbolAfter,h=void 0!==t.precision?t.precision:2;if(isNaN(a))return this.emptyToSpace(this.sanitizeHTML(e.getValue()));for(i=!1!==h?a.toFixed(h):a,i=String(i).split("."),n=i[0],s=i.length>1?l+i[1]:"",r=/(\d+)(\d{3})/;r.test(n);)n=n.replace(r,"$1"+c+"$2");return d?n+s+u:u+n+s},link:function(e,t,o){var i,n=e.getValue(),s=t.urlPrefix||"",r=t.download,a=n,l=document.createElement("a");if(t.labelField&&(i=e.getData(),a=i[t.labelField]),t.label)switch(_typeof(t.label)){case"string":a=t.label;break;case"function":a=t.label(e)}if(a){if(t.urlField&&(i=e.getData(),n=i[t.urlField]),t.url)switch(_typeof(t.url)){case"string":n=t.url;break;case"function":n=t.url(e)}return l.setAttribute("href",s+n),t.target&&l.setAttribute("target",t.target),t.download&&(r="function"==typeof r?r(e):!0===r?"":r,l.setAttribute("download",r)),l.innerHTML=this.emptyToSpace(this.sanitizeHTML(a)),l}return" "},image:function(e,t,o){var i=document.createElement("img");switch(i.setAttribute("src",e.getValue()),_typeof(t.height)){case"number":i.style.height=t.height+"px";break;case"string":i.style.height=t.height}switch(_typeof(t.width)){case"number":i.style.width=t.width+"px";break;case"string":i.style.width=t.width}return i.addEventListener("load",function(){e.getRow().normalizeHeight()}),i},tickCross:function(e,t,o){var i=e.getValue(),n=e.getElement(),s=t.allowEmpty,r=t.allowTruthy,a=void 0!==t.tickElement?t.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',l=void 0!==t.crossElement?t.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';return r&&i||!0===i||"true"===i||"True"===i||1===i||"1"===i?(n.setAttribute("aria-checked",!0),a||""):!s||"null"!==i&&""!==i&&null!==i&&void 0!==i?(n.setAttribute("aria-checked",!1),l||""):(n.setAttribute("aria-checked","mixed"),"")},datetime:function(e,t,o){var i=t.inputFormat||"YYYY-MM-DD hh:mm:ss",n=t.outputFormat||"DD/MM/YYYY hh:mm:ss",s=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",r=e.getValue(),a=moment(r,i);return a.isValid()?a.format(n):!0===s?r:"function"==typeof s?s(r):s},datetimediff:function(e,t,o){var i=t.inputFormat||"YYYY-MM-DD hh:mm:ss",n=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",s=void 0!==t.suffix&&t.suffix,r=void 0!==t.unit?t.unit:void 0,a=void 0!==t.humanize&&t.humanize,l=void 0!==t.date?t.date:moment(),c=e.getValue(),u=moment(c,i);return u.isValid()?a?moment.duration(u.diff(l)).humanize(s):u.diff(l,r)+(s?" "+s:""):!0===n?c:"function"==typeof n?n(c):n},lookup:function(e,t,o){var i=e.getValue();return void 0===t[i]?(console.warn("Missing display value for "+i),i):t[i]},star:function(e,t,o){var i=e.getValue(),n=e.getElement(),s=t&&t.stars?t.stars:5,r=document.createElement("span"),a=document.createElementNS("http://www.w3.org/2000/svg","svg");r.style.verticalAlign="middle",a.setAttribute("width","14"),a.setAttribute("height","14"),a.setAttribute("viewBox","0 0 512 512"),a.setAttribute("xml:space","preserve"),a.style.padding="0 1px",i=i&&!isNaN(i)?parseInt(i):0,i=Math.max(0,Math.min(i,s));for(var l=1;l<=s;l++){var c=a.cloneNode(!0);c.innerHTML=l<=i?'<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>':'<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',r.appendChild(c)}return n.style.whiteSpace="nowrap",n.style.overflow="hidden",n.style.textOverflow="ellipsis",n.setAttribute("aria-label",i),r},traffic:function(e,t,o){var i,n,s=this.sanitizeHTML(e.getValue())||0,r=document.createElement("span"),a=t&&t.max?t.max:100,l=t&&t.min?t.min:0,c=t&&void 0!==t.color?t.color:["red","orange","green"],u="#666666";if(!isNaN(s)&&void 0!==e.getValue()){switch(r.classList.add("tabulator-traffic-light"),n=parseFloat(s)<=a?parseFloat(s):a,n=parseFloat(n)>=l?parseFloat(n):l,i=(a-l)/100,n=Math.round((n-l)/i),void 0===c?"undefined":_typeof(c)){case"string":u=c;break;case"function":u=c(s);break;case"object":if(Array.isArray(c)){var d=100/c.length,h=Math.floor(n/d);h=Math.min(h,c.length-1),h=Math.max(h,0),u=c[h];break}}return r.style.backgroundColor=u,r}},progress:function(e,t,o){var i,n,s,r,l,c=this.sanitizeHTML(e.getValue())||0,u=e.getElement(),d=t&&t.max?t.max:100,h=t&&t.min?t.min:0,p=t&&t.legendAlign?t.legendAlign:"center";switch(n=parseFloat(c)<=d?parseFloat(c):d,n=parseFloat(n)>=h?parseFloat(n):h,i=(d-h)/100,n=Math.round((n-h)/i),_typeof(t.color)){case"string":s=t.color;break;case"function":s=t.color(c);break;case"object":if(Array.isArray(t.color)){var m=100/t.color.length,f=Math.floor(n/m);f=Math.min(f,t.color.length-1),f=Math.max(f,0),s=t.color[f];break}default:s="#2DC214"}switch(_typeof(t.legend)){case"string":r=t.legend;break;case"function":r=t.legend(c);break;case"boolean":r=c;break;default:r=!1}switch(_typeof(t.legendColor)){case"string":l=t.legendColor;break;case"function":l=t.legendColor(c);break;case"object":if(Array.isArray(t.legendColor)){var m=100/t.legendColor.length,f=Math.floor(n/m);f=Math.min(f,t.legendColor.length-1),f=Math.max(f,0),l=t.legendColor[f]}break;default:l="#000"}u.style.minWidth="30px",u.style.position="relative",u.setAttribute("aria-label",n);var g=document.createElement("div");if(g.style.display="inline-block",g.style.position="relative",g.style.width=n+"%",g.style.backgroundColor=s,g.style.height="100%",g.setAttribute("data-max",d),g.setAttribute("data-min",h),r){var b=document.createElement("div");b.style.position="absolute",b.style.top="4px",b.style.left=0,b.style.textAlign=p,b.style.width="100%",b.style.color=l,b.innerHTML=r}return o(function(){if(!(e instanceof a)){var t=document.createElement("div");t.style.position="absolute",t.style.top="4px",t.style.bottom="4px",t.style.left="4px",t.style.right="4px",u.appendChild(t),u=t}u.appendChild(g),r&&u.appendChild(b)}),""},color:function(e,t,o){return e.getElement().style.backgroundColor=this.sanitizeHTML(e.getValue()),""},buttonTick:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'},buttonCross:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'},rownum:function(e,t,o){return this.table.rowManager.activeRows.indexOf(e.getRow()._getSelf())+1},handle:function(e,t,o){return e.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"},responsiveCollapse:function(e,t,o){function i(e){var t=s.element;s.open=e,
-t&&(s.open?(n.classList.add("open"),t.style.display=""):(n.classList.remove("open"),t.style.display="none"))}var n=document.createElement("div"),s=e.getRow()._row.modules.responsiveLayout;return n.classList.add("tabulator-responsive-collapse-toggle"),n.innerHTML="<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>",e.getElement().classList.add("tabulator-row-handle"),n.addEventListener("click",function(e){e.stopImmediatePropagation(),i(!s.open)}),i(s.open),n},rowSelection:function(e){var t=this,o=document.createElement("input");if(o.type="checkbox",this.table.modExists("selectRow",!0))if(o.addEventListener("click",function(e){e.stopPropagation()}),"function"==typeof e.getRow){var i=e.getRow();o.addEventListener("change",function(e){i.toggleSelect()}),o.checked=i.isSelected(),this.table.modules.selectRow.registerRowSelectCheckbox(i,o)}else o.addEventListener("change",function(e){t.table.modules.selectRow.selectedRows.length?t.table.deselectRow():t.table.selectRow()}),this.table.modules.selectRow.registerHeaderSelectCheckbox(o);return o}},u.prototype.registerModule("format",x);var R=function(e){this.table=e,this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightPadding=0,this.initializationMode="left",this.active=!1,this.scrollEndTimer=!1};R.prototype.reset=function(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightMargin=0,this.active=!1,this.table.columnManager.headersElement.style.marginLeft=0,this.table.columnManager.element.style.paddingRight=0},R.prototype.initializeColumn=function(e){var t={margin:0,edge:!1};e.isGroup||(this.frozenCheck(e)?(t.position=this.initializationMode,"left"==this.initializationMode?this.leftColumns.push(e):this.rightColumns.unshift(e),this.active=!0,e.modules.frozen=t):this.initializationMode="right")},R.prototype.frozenCheck=function(e){return e.parent.isGroup&&e.definition.frozen&&console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups"),e.parent.isGroup?this.frozenCheck(e.parent):e.definition.frozen},R.prototype.scrollHorizontal=function(){var e,t=this;this.active&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=setTimeout(function(){t.layout()},100),e=this.table.rowManager.getVisibleRows(),this.calcMargins(),this.layoutColumnPosition(),this.layoutCalcRows(),e.forEach(function(e){"row"===e.type&&t.layoutRow(e)}),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},R.prototype.calcMargins=function(){this.leftMargin=this._calcSpace(this.leftColumns,this.leftColumns.length)+"px",this.table.columnManager.headersElement.style.marginLeft=this.leftMargin,this.rightMargin=this._calcSpace(this.rightColumns,this.rightColumns.length)+"px",this.table.columnManager.element.style.paddingRight=this.rightMargin,this.rightPadding=this.table.rowManager.element.clientWidth+this.table.columnManager.scrollLeft},R.prototype.layoutCalcRows=function(){this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow&&this.layoutRow(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow&&this.layoutRow(this.table.modules.columnCalcs.botRow))},R.prototype.layoutColumnPosition=function(e){var t=this,o=[];this.leftColumns.forEach(function(i,n){if(i.modules.frozen.margin=t._calcSpace(t.leftColumns,n)+t.table.columnManager.scrollLeft+"px",n==t.leftColumns.length-1?i.modules.frozen.edge=!0:i.modules.frozen.edge=!1,i.parent.isGroup){var s=t.getColGroupParentElement(i);o.includes(s)||(t.layoutElement(s,i),o.push(s)),i.modules.frozen.edge&&s.classList.add("tabulator-frozen-"+i.modules.frozen.position)}else t.layoutElement(i.getElement(),i);e&&i.cells.forEach(function(e){t.layoutElement(e.getElement(),i)})}),this.rightColumns.forEach(function(o,i){o.modules.frozen.margin=t.rightPadding-t._calcSpace(t.rightColumns,i+1)+"px",i==t.rightColumns.length-1?o.modules.frozen.edge=!0:o.modules.frozen.edge=!1,o.parent.isGroup?t.layoutElement(t.getColGroupParentElement(o),o):t.layoutElement(o.getElement(),o),e&&o.cells.forEach(function(e){t.layoutElement(e.getElement(),o)})})},R.prototype.getColGroupParentElement=function(e){return e.parent.isGroup?this.getColGroupParentElement(e.parent):e.getElement()},R.prototype.layout=function(){var e=this;e.active&&(this.calcMargins(),e.table.rowManager.getDisplayRows().forEach(function(t){"row"===t.type&&e.layoutRow(t)}),this.layoutCalcRows(),this.layoutColumnPosition(!0),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},R.prototype.layoutRow=function(e){var t=this;e.getElement().style.paddingLeft=this.leftMargin,this.leftColumns.forEach(function(o){var i=e.getCell(o);i&&t.layoutElement(i.getElement(),o)}),this.rightColumns.forEach(function(o){var i=e.getCell(o);i&&t.layoutElement(i.getElement(),o)})},R.prototype.layoutElement=function(e,t){t.modules.frozen&&(e.style.position="absolute",e.style.left=t.modules.frozen.margin,e.classList.add("tabulator-frozen"),t.modules.frozen.edge&&e.classList.add("tabulator-frozen-"+t.modules.frozen.position))},R.prototype._calcSpace=function(e,t){for(var o=0,i=0;i<t;i++)e[i].visible&&(o+=e[i].getWidth());return o},u.prototype.registerModule("frozenColumns",R);var M=function(e){this.table=e,this.topElement=document.createElement("div"),this.rows=[],this.displayIndex=0};M.prototype.initialize=function(){this.rows=[],this.topElement.classList.add("tabulator-frozen-rows-holder"),this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling)},M.prototype.setDisplayIndex=function(e){this.displayIndex=e},M.prototype.getDisplayIndex=function(){return this.displayIndex},M.prototype.isFrozen=function(){return!!this.rows.length},M.prototype.getRows=function(e){var t=e.slice(0);return this.rows.forEach(function(e){var o=t.indexOf(e);o>-1&&t.splice(o,1)}),t},M.prototype.freezeRow=function(e){e.modules.frozen?console.warn("Freeze Error - Row is already frozen"):(e.modules.frozen=!0,this.topElement.appendChild(e.getElement()),e.initialize(),e.normalizeHeight(),this.table.rowManager.adjustTableSize(),this.rows.push(e),this.table.rowManager.refreshActiveData("display"),this.styleRows())},M.prototype.unfreezeRow=function(e){var t=this.rows.indexOf(e);if(e.modules.frozen){e.modules.frozen=!1;var o=e.getElement();o.parentNode.removeChild(o),this.table.rowManager.adjustTableSize(),this.rows.splice(t,1),this.table.rowManager.refreshActiveData("display"),this.rows.length&&this.styleRows()}else console.warn("Freeze Error - Row is already unfrozen")},M.prototype.styleRows=function(e){var t=this;this.rows.forEach(function(e,o){t.table.rowManager.styleRow(e,o)})},u.prototype.registerModule("frozenRows",M);var L=function(e){this._group=e,this.type="GroupComponent"};L.prototype.getKey=function(){return this._group.key},L.prototype.getField=function(){return this._group.field},L.prototype.getElement=function(){return this._group.element},L.prototype.getRows=function(){return this._group.getRows(!0)},L.prototype.getSubGroups=function(){return this._group.getSubGroups(!0)},L.prototype.getParentGroup=function(){return!!this._group.parent&&this._group.parent.getComponent()},L.prototype.getVisibility=function(){return this._group.visible},L.prototype.show=function(){this._group.show()},L.prototype.hide=function(){this._group.hide()},L.prototype.toggle=function(){this._group.toggleVisibility()},L.prototype._getSelf=function(){return this._group},L.prototype.getTable=function(){return this._group.groupManager.table};var T=function(e,t,o,i,n,s,r){this.groupManager=e,this.parent=t,this.key=i,this.level=o,this.field=n,this.hasSubGroups=o<e.groupIDLookups.length-1,this.addRow=this.hasSubGroups?this._addRowToGroup:this._addRow,this.type="group",this.old=r,this.rows=[],this.groups=[],this.groupList=[],this.generator=s,this.elementContents=!1,this.height=0,this.outerHeight=0,this.initialized=!1,this.calcs={},this.initialized=!1,this.modules={},this.arrowElement=!1,this.visible=r?r.visible:void 0!==e.startOpen[o]?e.startOpen[o]:e.startOpen[0],this.createElements(),this.addBindings(),this.createValueGroups()};T.prototype.wipe=function(){this.groupList.length?this.groupList.forEach(function(e){e.wipe()}):(this.element=!1,this.arrowElement=!1,this.elementContents=!1)},T.prototype.createElements=function(){var e=document.createElement("div");e.classList.add("tabulator-arrow"),this.element=document.createElement("div"),this.element.classList.add("tabulator-row"),this.element.classList.add("tabulator-group"),this.element.classList.add("tabulator-group-level-"+this.level),this.element.setAttribute("role","rowgroup"),this.arrowElement=document.createElement("div"),this.arrowElement.classList.add("tabulator-group-toggle"),this.arrowElement.appendChild(e),!1!==this.groupManager.table.options.movableRows&&this.groupManager.table.modExists("moveRow")&&this.groupManager.table.modules.moveRow.initializeGroupHeader(this)},T.prototype.createValueGroups=function(){var e=this,t=this.level+1;this.groupManager.allowedValues&&this.groupManager.allowedValues[t]&&this.groupManager.allowedValues[t].forEach(function(o){e._createGroup(o,t)})},T.prototype.addBindings=function(){var e,t,o,i,n=this;n.groupManager.table.options.groupClick&&n.element.addEventListener("click",function(e){n.groupManager.table.options.groupClick.call(n.groupManager.table,e,n.getComponent())}),n.groupManager.table.options.groupDblClick&&n.element.addEventListener("dblclick",function(e){n.groupManager.table.options.groupDblClick.call(n.groupManager.table,e,n.getComponent())}),n.groupManager.table.options.groupContext&&n.element.addEventListener("contextmenu",function(e){n.groupManager.table.options.groupContext.call(n.groupManager.table,e,n.getComponent())}),n.groupManager.table.options.groupTap&&(o=!1,n.element.addEventListener("touchstart",function(e){o=!0},{passive:!0}),n.element.addEventListener("touchend",function(e){o&&n.groupManager.table.options.groupTap(e,n.getComponent()),o=!1})),n.groupManager.table.options.groupDblTap&&(e=null,n.element.addEventListener("touchend",function(t){e?(clearTimeout(e),e=null,n.groupManager.table.options.groupDblTap(t,n.getComponent())):e=setTimeout(function(){clearTimeout(e),e=null},300)})),n.groupManager.table.options.groupTapHold&&(t=null,n.element.addEventListener("touchstart",function(e){clearTimeout(t),t=setTimeout(function(){clearTimeout(t),t=null,o=!1,n.groupManager.table.options.groupTapHold(e,n.getComponent())},1e3)},{passive:!0}),n.element.addEventListener("touchend",function(e){clearTimeout(t),t=null})),n.groupManager.table.options.groupToggleElement&&(i="arrow"==n.groupManager.table.options.groupToggleElement?n.arrowElement:n.element,i.addEventListener("click",function(e){e.stopPropagation(),e.stopImmediatePropagation(),n.toggleVisibility()}))},T.prototype._createGroup=function(e,t){var o=t+"_"+e,i=new T(this.groupManager,this,t,e,this.groupManager.groupIDLookups[t].field,this.groupManager.headerGenerator[t]||this.groupManager.headerGenerator[0],!!this.old&&this.old.groups[o]);this.groups[o]=i,this.groupList.push(i)},T.prototype._addRowToGroup=function(e){var t=this.level+1;if(this.hasSubGroups){var o=this.groupManager.groupIDLookups[t].func(e.getData()),i=t+"_"+o;this.groupManager.allowedValues&&this.groupManager.allowedValues[t]?this.groups[i]&&this.groups[i].addRow(e):(this.groups[i]||this._createGroup(o,t),this.groups[i].addRow(e))}},T.prototype._addRow=function(e){this.rows.push(e),e.modules.group=this},T.prototype.insertRow=function(e,t,o){var i=this.conformRowData({});e.updateData(i);var n=this.rows.indexOf(t);n>-1?o?this.rows.splice(n+1,0,e):this.rows.splice(n,0,e):o?this.rows.push(e):this.rows.unshift(e),e.modules.group=this,this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this),this.groupManager.updateGroupRows(!0)},T.prototype.scrollHeader=function(e){this.arrowElement.style.marginLeft=e,this.groupList.forEach(function(t){t.scrollHeader(e)})},T.prototype.getRowIndex=function(e){},T.prototype.conformRowData=function(e){return this.field?e[this.field]=this.key:console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"),this.parent&&(e=this.parent.conformRowData(e)),e},T.prototype.removeRow=function(e){var t=this.rows.indexOf(e),o=e.getElement();t>-1&&this.rows.splice(t,1),this.groupManager.table.options.groupValues||this.rows.length?(o.parentNode&&o.parentNode.removeChild(o),this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this)):(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this),this.groupManager.updateGroupRows(!0))},T.prototype.removeGroup=function(e){var t,o=e.level+"_"+e.key;this.groups[o]&&(delete this.groups[o],t=this.groupList.indexOf(e),t>-1&&this.groupList.splice(t,1),this.groupList.length||(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this)))},T.prototype.getHeadersAndRows=function(e){var t=[];return t.push(this),this._visSet(),this.visible?this.groupList.length?this.groupList.forEach(function(o){t=t.concat(o.getHeadersAndRows(e))}):(!e&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),t.push(this.calcs.top)),t=t.concat(this.rows),!e&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),t.push(this.calcs.bottom))):this.groupList.length||"table"==this.groupManager.table.options.columnCalcs||this.groupManager.table.modExists("columnCalcs")&&(!e&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),t.push(this.calcs.top))),!e&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),t.push(this.calcs.bottom)))),t},T.prototype.getData=function(e,t){var o=[];return this._visSet(),(!e||e&&this.visible)&&this.rows.forEach(function(e){o.push(e.getData(t||"data"))}),o},T.prototype.getRowCount=function(){var e=0;return this.groupList.length?this.groupList.forEach(function(t){e+=t.getRowCount()}):e=this.rows.length,e},T.prototype.toggleVisibility=function(){this.visible?this.hide():this.show()},T.prototype.hide=function(){this.visible=!1,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination?this.groupManager.updateGroupRows(!0):(this.element.classList.remove("tabulator-group-visible"),this.groupList.length?this.groupList.forEach(function(e){e.getHeadersAndRows().forEach(function(e){e.detachElement()})}):this.rows.forEach(function(e){var t=e.getElement();t.parentNode.removeChild(t)}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()),this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!1)},T.prototype.show=function(){var e=this;if(e.visible=!0,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination)this.groupManager.updateGroupRows(!0);else{this.element.classList.add("tabulator-group-visible");var t=e.getElement();this.groupList.length?this.groupList.forEach(function(e){e.getHeadersAndRows().forEach(function(e){var o=e.getElement();t.parentNode.insertBefore(o,t.nextSibling),e.initialize(),t=o})}):e.rows.forEach(function(e){var o=e.getElement();t.parentNode.insertBefore(o,t.nextSibling),e.initialize(),t=o}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()}this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!0)},T.prototype._visSet=function(){var e=[];"function"==typeof this.visible&&(this.rows.forEach(function(t){e.push(t.getData())}),this.visible=this.visible(this.key,this.getRowCount(),e,this.getComponent()))},T.prototype.getRowGroup=function(e){var t=!1;return this.groupList.length?this.groupList.forEach(function(o){var i=o.getRowGroup(e);i&&(t=i)}):this.rows.find(function(t){return t===e})&&(t=this),t},T.prototype.getSubGroups=function(e){var t=[];return this.groupList.forEach(function(o){t.push(e?o.getComponent():o)}),t},T.prototype.getRows=function(e){var t=[];return this.rows.forEach(function(o){t.push(e?o.getComponent():o)}),t},T.prototype.generateGroupHeaderContents=function(){var e=[];for(this.rows.forEach(function(t){e.push(t.getData())}),this.elementContents=this.generator(this.key,this.getRowCount(),e,this.getComponent());this.element.firstChild;)this.element.removeChild(this.element.firstChild);"string"==typeof this.elementContents?this.element.innerHTML=this.elementContents:this.element.appendChild(this.elementContents),this.element.insertBefore(this.arrowElement,this.element.firstChild)},T.prototype.getElement=function(){this.addBindingsd=!1,this._visSet(),this.visible?this.element.classList.add("tabulator-group-visible"):this.element.classList.remove("tabulator-group-visible");for(var e=0;e<this.element.childNodes.length;++e)this.element.childNodes[e].parentNode.removeChild(this.element.childNodes[e]);return this.generateGroupHeaderContents(),this.element},T.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},T.prototype.normalizeHeight=function(){this.setHeight(this.element.clientHeight)},T.prototype.initialize=function(e){this.initialized&&!e||(this.normalizeHeight(),this.initialized=!0)},T.prototype.reinitialize=function(){this.initialized=!1,this.height=0,u.prototype.helpers.elVisible(this.element)&&this.initialize(!0)},T.prototype.setHeight=function(e){this.height!=e&&(this.height=e,this.outerHeight=this.element.offsetHeight)},T.prototype.getHeight=function(){return this.outerHeight},T.prototype.getGroup=function(){return this},T.prototype.reinitializeHeight=function(){},T.prototype.calcHeight=function(){},T.prototype.setCellHeight=function(){},T.prototype.clearCellHeight=function(){},T.prototype.getComponent=function(){return new L(this)};var D=function(e){this.table=e,this.groupIDLookups=!1,this.startOpen=[function(){return!1}],this.headerGenerator=[function(){return""}],this.groupList=[],this.allowedValues=!1,this.groups={},this.displayIndex=0};D.prototype.initialize=function(){var e=this,t=e.table.options.groupBy,o=e.table.options.groupStartOpen,i=e.table.options.groupHeader;if(this.allowedValues=e.table.options.groupValues,Array.isArray(t)&&Array.isArray(i)&&t.length>i.length&&console.warn("Error creating group headers, groupHeader array is shorter than groupBy array"),e.headerGenerator=[function(){return""}],this.startOpen=[function(){return!1}],e.table.modules.localize.bind("groups|item",function(t,o){e.headerGenerator[0]=function(e,i,n){return(void 0===e?"":e)+"<span>("+i+" "+(1===i?t:o.groups.items)+")</span>"}}),this.groupIDLookups=[],Array.isArray(t)||t)this.table.modExists("columnCalcs")&&"table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.removeCalcs();else if(this.table.modExists("columnCalcs")&&"group"!=this.table.options.columnCalcs){var n=this.table.columnManager.getRealColumns();n.forEach(function(t){t.definition.topCalc&&e.table.modules.columnCalcs.initializeTopRow(),t.definition.bottomCalc&&e.table.modules.columnCalcs.initializeBottomRow()})}Array.isArray(t)||(t=[t]),t.forEach(function(t,o){var i,n;"function"==typeof t?i=t:(n=e.table.columnManager.getColumnByField(t),i=n?function(e){return n.getFieldValue(e)}:function(e){return e[t]}),e.groupIDLookups.push({field:"function"!=typeof t&&t,func:i,values:!!e.allowedValues&&e.allowedValues[o]})}),o&&(Array.isArray(o)||(o=[o]),o.forEach(function(e){e="function"==typeof e?e:function(){return!0}}),e.startOpen=o),i&&(e.headerGenerator=Array.isArray(i)?i:[i]),this.initialized=!0},D.prototype.setDisplayIndex=function(e){this.displayIndex=e},D.prototype.getDisplayIndex=function(){return this.displayIndex},D.prototype.getRows=function(e){return this.groupIDLookups.length?(this.table.options.dataGrouping.call(this.table),this.generateGroups(e),this.table.options.dataGrouped&&this.table.options.dataGrouped.call(this.table,this.getGroups(!0)),this.updateGroupRows()):e.slice(0)},D.prototype.getGroups=function(e){var t=[];return this.groupList.forEach(function(o){t.push(e?o.getComponent():o)}),t},D.prototype.getChildGroups=function(e){var t=this,o=[];return e||(e=this),e.groupList.forEach(function(e){e.groupList.length?o=o.concat(t.getChildGroups(e)):o.push(e)}),o},D.prototype.wipe=function(){this.groupList.forEach(function(e){e.wipe()})},D.prototype.pullGroupListData=function(e){var t=this,o=[];return e.forEach(function(e){var i={};i.level=0,i.rowCount=0,i.headerContent="";var n=[];e.hasSubGroups?(n=t.pullGroupListData(e.groupList),i.level=e.level,i.rowCount=n.length-e.groupList.length,i.headerContent=e.generator(e.key,i.rowCount,e.rows,e),o.push(i),o=o.concat(n)):(i.level=e.level,i.headerContent=e.generator(e.key,e.rows.length,e.rows,e),i.rowCount=e.getRows().length,o.push(i),e.getRows().forEach(function(e){o.push(e.getData("data"))}))}),o},D.prototype.getGroupedData=function(){return this.pullGroupListData(this.groupList)},D.prototype.getRowGroup=function(e){var t=!1;return this.groupList.forEach(function(o){var i=o.getRowGroup(e);i&&(t=i)}),t},D.prototype.countGroups=function(){return this.groupList.length},D.prototype.generateGroups=function(e){var t=this,o=t.groups;t.groups={},t.groupList=[],this.allowedValues&&this.allowedValues[0]?(this.allowedValues[0].forEach(function(e){t.createGroup(e,0,o)}),e.forEach(function(e){t.assignRowToExistingGroup(e,o)})):e.forEach(function(e){t.assignRowToGroup(e,o)})},D.prototype.createGroup=function(e,t,o){var i,n=t+"_"+e;o=o||[],i=new T(this,!1,t,e,this.groupIDLookups[0].field,this.headerGenerator[0],o[n]),this.groups[n]=i,this.groupList.push(i)},D.prototype.assignRowToExistingGroup=function(e,t){var o=this.groupIDLookups[0].func(e.getData()),i="0_"+o;this.groups[i]&&this.groups[i].addRow(e)},D.prototype.assignRowToGroup=function(e,t){var o=this.groupIDLookups[0].func(e.getData()),i=!this.groups["0_"+o];return i&&this.createGroup(o,0,t),this.groups["0_"+o].addRow(e),!i},D.prototype.updateGroupRows=function(e){var t=this,o=[];if(t.groupList.forEach(function(e){o=o.concat(e.getHeadersAndRows())}),e){var i=t.table.rowManager.setDisplayRows(o,this.getDisplayIndex());!0!==i&&this.setDisplayIndex(i),t.table.rowManager.refreshActiveData("group",!0,!0)}return o},D.prototype.scrollHeaders=function(e){e+="px",this.groupList.forEach(function(t){t.scrollHeader(e)})},D.prototype.removeGroup=function(e){var t,o=e.level+"_"+e.key;this.groups[o]&&(delete this.groups[o],(t=this.groupList.indexOf(e))>-1&&this.groupList.splice(t,1))},u.prototype.registerModule("groupRows",D);var k=function(e){this.table=e,this.history=[],this.index=-1};k.prototype.clear=function(){this.history=[],this.index=-1},k.prototype.action=function(e,t,o){this.history=this.history.slice(0,this.index+1),this.history.push({type:e,component:t,data:o}),this.index++},k.prototype.getHistoryUndoSize=function(){return this.index+1},k.prototype.getHistoryRedoSize=function(){return this.history.length-(this.index+1)},k.prototype.undo=function(){if(this.index>-1){var e=this.history[this.index];return this.undoers[e.type].call(this,e),this.index--,this.table.options.historyUndo.call(this.table,e.type,e.component.getComponent(),e.data),!0}return console.warn("History Undo Error - No more history to undo"),!1},k.prototype.redo=function(){if(this.history.length-1>this.index){this.index++;var e=this.history[this.index];return this.redoers[e.type].call(this,e),this.table.options.historyRedo.call(this.table,e.type,e.component.getComponent(),e.data),!0}return console.warn("History Redo Error - No more history to redo"),!1},k.prototype.undoers={cellEdit:function(e){e.component.setValueProcessData(e.data.oldValue)},rowAdd:function(e){e.component.deleteActual()},rowDelete:function(e){var t=this.table.rowManager.addRowActual(e.data.data,e.data.pos,e.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(e.component,t)},rowMove:function(e){this.table.rowManager.moveRowActual(e.component,this.table.rowManager.rows[e.data.posFrom],!e.data.after),this.table.rowManager.redraw()}},k.prototype.redoers={cellEdit:function(e){e.component.setValueProcessData(e.data.newValue)},rowAdd:function(e){var t=this.table.rowManager.addRowActual(e.data.data,e.data.pos,e.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(e.component,t)},rowDelete:function(e){e.component.deleteActual()},rowMove:function(e){this.table.rowManager.moveRowActual(e.component,this.table.rowManager.rows[e.data.posTo],e.data.after),this.table.rowManager.redraw()}},k.prototype._rebindRow=function(e,t){this.history.forEach(function(o){if(o.component instanceof r)o.component===e&&(o.component=t);else if(o.component instanceof l&&o.component.row===e){var i=o.component.column.getField();i&&(o.component=t.getCell(i))}})},u.prototype.registerModule("history",k);var S=function(e){this.table=e,this.fieldIndex=[],this.hasIndex=!1};S.prototype.parseTable=function(){var e=this,t=e.table.element,o=e.table.options,i=(o.columns,t.getElementsByTagName("th")),n=t.getElementsByTagName("tbody")[0],s=[];e.hasIndex=!1,e.table.options.htmlImporting.call(this.table),n=n?n.getElementsByTagName("tr"):[],e._extractOptions(t,o),i.length?e._extractHeaders(i,n):e._generateBlankHeaders(i,n);for(var r=0;r<n.length;r++){var a=n[r],l=a.getElementsByTagName("td"),c={};e.hasIndex||(c[o.index]=r);for(var u=0;u<l.length;u++){var d=l[u];void 0!==this.fieldIndex[u]&&(c[this.fieldIndex[u]]=d.innerHTML)}s.push(c)}var h=document.createElement("div"),p=t.attributes;for(var u in p)"object"==_typeof(p[u])&&h.setAttribute(p[u].name,p[u].value);t.parentNode.replaceChild(h,t),o.data=s,e.table.options.htmlImported.call(this.table),this.table.element=h},S.prototype._extractOptions=function(e,t,o){var i=e.attributes,n=o?Object.assign([],o):Object.keys(t),s={};n.forEach(function(e){s[e.toLowerCase()]=e});for(var r in i){var a,l=i[r];l&&"object"==(void 0===l?"undefined":_typeof(l))&&l.name&&0===l.name.indexOf("tabulator-")&&(a=l.name.replace("tabulator-",""),void 0!==s[a]&&(t[s[a]]=this._attribValue(l.value)))}},S.prototype._attribValue=function(e){return"true"===e||"false"!==e&&e},S.prototype._findCol=function(e){return this.table.options.columns.find(function(t){return t.title===e})||!1},S.prototype._extractHeaders=function(e,t){for(var o=0;o<e.length;o++){var n,s=e[o],r=!1,a=this._findCol(s.textContent);a?r=!0:a={title:s.textContent.trim()},a.field||(a.field=s.textContent.trim().toLowerCase().replace(" ","_")),n=s.getAttribute("width"),n&&!a.width&&(a.width=n),s.attributes,this._extractOptions(s,a,i.prototype.defaultOptionList),this.fieldIndex[o]=a.field,a.field==this.table.options.index&&(this.hasIndex=!0),r||this.table.options.columns.push(a)}},S.prototype._generateBlankHeaders=function(e,t){for(var o=0;o<e.length;o++){var i=e[o],n={title:"",field:"col"+o};this.fieldIndex[o]=n.field;var s=i.getAttribute("width");s&&(n.width=s),this.table.options.columns.push(n)}},u.prototype.registerModule("htmlTableImport",S);var z=function(e){this.table=e,this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1};z.prototype.initialize=function(){var e=this.table.options.keybindings,t={};if(this.watchKeys={},this.pressedKeys=[],!1!==e){for(var o in this.bindings)t[o]=this.bindings[o];if(Object.keys(e).length)for(var i in e)t[i]=e[i];this.mapBindings(t),this.bindEvents()}},z.prototype.mapBindings=function(e){var t=this,o=this;for(var i in e)!function(i){t.actions[i]?e[i]&&("object"!==_typeof(e[i])&&(e[i]=[e[i]]),e[i].forEach(function(e){o.mapBinding(i,e)})):console.warn("Key Binding Error - no such action:",i)}(i)},z.prototype.mapBinding=function(e,t){var o=this,i={action:this.actions[e],keys:[],ctrl:!1,shift:!1,meta:!1};t.toString().toLowerCase().split(" ").join("").split("+").forEach(function(e){switch(e){case"ctrl":i.ctrl=!0;break;case"shift":i.shift=!0;break;case"meta":i.meta=!0;break;default:e=parseInt(e),i.keys.push(e),o.watchKeys[e]||(o.watchKeys[e]=[]),o.watchKeys[e].push(i)}})},z.prototype.bindEvents=function(){var e=this;this.keyupBinding=function(t){var o=t.keyCode,i=e.watchKeys[o];i&&(e.pressedKeys.push(o),i.forEach(function(o){e.checkBinding(t,o)}))},this.keydownBinding=function(t){var o=t.keyCode;if(e.watchKeys[o]){var i=e.pressedKeys.indexOf(o);i>-1&&e.pressedKeys.splice(i,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)},z.prototype.clearBindings=function(){this.keyupBinding&&this.table.element.removeEventListener("keydown",this.keyupBinding),this.keydownBinding&&this.table.element.removeEventListener("keyup",this.keydownBinding)},z.prototype.checkBinding=function(e,t){var o=this,i=!0;return e.ctrlKey==t.ctrl&&e.shiftKey==t.shift&&e.metaKey==t.meta&&(t.keys.forEach(function(e){-1==o.pressedKeys.indexOf(e)&&(i=!1)}),i&&t.action.call(o,e),!0)},z.prototype.bindings={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35,undo:"ctrl + 90",redo:"ctrl + 89",copyToClipboard:"ctrl + 67"},z.prototype.actions={keyBlock:function(e){e.stopPropagation(),e.preventDefault()},scrollPageUp:function(e){var t=this.table.rowManager,o=t.scrollTop-t.height;t.element.scrollHeight;e.preventDefault(),t.displayRowsCount&&(o>=0?t.element.scrollTop=o:t.scrollToRow(t.getDisplayRows()[0])),this.table.element.focus()},scrollPageDown:function(e){var t=this.table.rowManager,o=t.scrollTop+t.height,i=t.element.scrollHeight;e.preventDefault(),t.displayRowsCount&&(o<=i?t.element.scrollTop=o:t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1])),this.table.element.focus()},scrollToStart:function(e){var t=this.table.rowManager;e.preventDefault(),t.displayRowsCount&&t.scrollToRow(t.getDisplayRows()[0]),this.table.element.focus()},scrollToEnd:function(e){var t=this.table.rowManager;e.preventDefault(),t.displayRowsCount&&t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1]),this.table.element.focus()},navPrev:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().prev())},navNext:function(e){var t,o=!1,i=this.table.options.tabEndNewRow
-;this.table.modExists("edit")&&(o=this.table.modules.edit.currentCell)&&(e.preventDefault(),t=o.nav(),t.next()||i&&(o.getElement().firstChild.blur(),i=!0===i?this.table.addRow({}):"function"==typeof i?this.table.addRow(i(o.row.getComponent())):this.table.addRow(i),i.then(function(){setTimeout(function(){t.next()})})))},navLeft:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().left())},navRight:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().right())},navUp:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().up())},navDown:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().down())},undo:function(e){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(e.preventDefault(),this.table.modules.history.undo()))},redo:function(e){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(e.preventDefault(),this.table.modules.history.redo()))},copyToClipboard:function(e){this.table.modules.edit.currentCell||this.table.modExists("clipboard",!0)&&this.table.modules.clipboard.copy(!1,!0)}},u.prototype.registerModule("keybindings",z);var H=function(e){this.table=e,this.menuEl=!1,this.blurEvent=this.hideMenu.bind(this)};H.prototype.initializeColumnHeader=function(e){var t,o=this;e.definition.headerContextMenu&&e.getElement().addEventListener("contextmenu",function(t){var i="function"==typeof e.definition.headerContextMenu?e.definition.headerContextMenu(e.getComponent()):e.definition.headerContextMenu;t.preventDefault(),o.loadMenu(t,e,i)}),e.definition.headerMenu&&(t=document.createElement("span"),t.classList.add("tabulator-header-menu-button"),t.innerHTML="⋮",t.addEventListener("click",function(t){var i="function"==typeof e.definition.headerMenu?e.definition.headerMenu(e.getComponent()):e.definition.headerMenu;t.stopPropagation(),t.preventDefault(),o.loadMenu(t,e,i)}),e.titleElement.insertBefore(t,e.titleElement.firstChild))},H.prototype.initializeCell=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(o){var i="function"==typeof e.column.definition.contextMenu?e.column.definition.contextMenu(e.getComponent()):e.column.definition.contextMenu;o.preventDefault(),t.loadMenu(o,e,i)})},H.prototype.initializeRow=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(o){var i="function"==typeof t.table.options.rowContextMenu?t.table.options.rowContextMenu(e.getComponent()):t.table.options.rowContextMenu;o.preventDefault(),t.loadMenu(o,e,i)})},H.prototype.loadMenu=function(e,t,o){var i=this,n=Math.max(document.body.offsetHeight,window.innerHeight);o&&o.length&&(this.hideMenu(),this.menuEl=document.createElement("div"),this.menuEl.classList.add("tabulator-menu"),o.forEach(function(e){var o=document.createElement("div"),n=e.label,s=e.disabled;e.separator?o.classList.add("tabulator-menu-separator"):(o.classList.add("tabulator-menu-item"),"function"==typeof n&&(n=n(t.getComponent())),n instanceof Node?o.appendChild(n):o.innerHTML=n,"function"==typeof s&&(s=s(t.getComponent())),s?(o.classList.add("tabulator-menu-item-disabled"),o.addEventListener("click",function(e){e.stopPropagation()})):o.addEventListener("click",function(o){i.hideMenu(),e.action(o,t.getComponent())})),i.menuEl.appendChild(o)}),this.menuEl.style.top=e.pageY+"px",this.menuEl.style.left=e.pageX+"px",document.body.addEventListener("click",this.blurEvent),this.table.rowManager.element.addEventListener("scroll",this.blurEvent),setTimeout(function(){document.body.addEventListener("contextmenu",i.blurEvent)},100),document.body.appendChild(this.menuEl),e.pageX+this.menuEl.offsetWidth>=document.body.offsetWidth&&(this.menuEl.style.left="",this.menuEl.style.right=document.body.offsetWidth-e.pageX+"px"),e.pageY+this.menuEl.offsetHeight>=n&&(this.menuEl.style.top="",this.menuEl.style.bottom=n-e.pageY+"px"))},H.prototype.hideMenu=function(){this.menuEl.parentNode&&this.menuEl.parentNode.removeChild(this.menuEl),this.blurEvent&&(document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent))},H.prototype.menus={},u.prototype.registerModule("menu",H);var F=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this)};F.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.classList.add("tabulator-col-placeholder"),e},F.prototype.initializeColumn=function(e){var t,o=this,i={};e.modules.frozen||(t=e.getElement(),i.mousemove=function(i){e.parent===o.moving.parent&&((o.touchMove?i.touches[0].pageX:i.pageX)-u.prototype.helpers.elOffset(t).left+o.table.columnManager.element.scrollLeft>e.getWidth()/2?o.toCol===e&&o.toColAfter||(t.parentNode.insertBefore(o.placeholderElement,t.nextSibling),o.moveColumn(e,!0)):(o.toCol!==e||o.toColAfter)&&(t.parentNode.insertBefore(o.placeholderElement,t),o.moveColumn(e,!1)))}.bind(o),t.addEventListener("mousedown",function(t){o.touchMove=!1,1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),o.bindTouchEvents(e)),e.modules.moveColumn=i},F.prototype.bindTouchEvents=function(e){var t,o,i,n,s,r,a,l=this,c=e.getElement(),u=!1;c.addEventListener("touchstart",function(c){l.checkTimeout=setTimeout(function(){l.touchMove=!0,t=e,o=e.nextColumn(),n=o?o.getWidth()/2:0,i=e.prevColumn(),s=i?i.getWidth()/2:0,r=0,a=0,u=!1,l.startMove(c,e)},l.checkPeriod)},{passive:!0}),c.addEventListener("touchmove",function(c){var d,h;l.moving&&(l.moveHover(c),u||(u=c.touches[0].pageX),d=c.touches[0].pageX-u,d>0?o&&d-r>n&&(h=o)!==e&&(u=c.touches[0].pageX,h.getElement().parentNode.insertBefore(l.placeholderElement,h.getElement().nextSibling),l.moveColumn(h,!0)):i&&-d-a>s&&(h=i)!==e&&(u=c.touches[0].pageX,h.getElement().parentNode.insertBefore(l.placeholderElement,h.getElement()),l.moveColumn(h,!1)),h&&(t=h,o=h.nextColumn(),r=n,n=o?o.getWidth()/2:0,i=h.prevColumn(),a=s,s=i?i.getWidth()/2:0))},{passive:!0}),c.addEventListener("touchend",function(e){l.checkTimeout&&clearTimeout(l.checkTimeout),l.moving&&l.endMove(e)})},F.prototype.startMove=function(e,t){var o=t.getElement();this.moving=t,this.startX=(this.touchMove?e.touches[0].pageX:e.pageX)-u.prototype.helpers.elOffset(o).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.table.columnManager.getElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom="0",this.touchMove||(this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove)),this.moveHover(e)},F.prototype._bindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().addEventListener("mousemove",e.modules.moveColumn.mousemove)})},F.prototype._unbindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().removeEventListener("mousemove",e.modules.moveColumn.mousemove)})},F.prototype.moveColumn=function(e,t){var o=this.moving.getCells();this.toCol=e,this.toColAfter=t,t?e.getCells().forEach(function(e,t){var i=e.getElement();i.parentNode.insertBefore(o[t].getElement(),i.nextSibling)}):e.getCells().forEach(function(e,t){var i=e.getElement();i.parentNode.insertBefore(o[t].getElement(),i)})},F.prototype.endMove=function(e){(1===e.which||this.touchMove)&&(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol&&this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter),this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.touchMove||(document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)))},F.prototype.moveHover=function(e){var t,o=this,i=o.table.columnManager.getElement(),n=i.scrollLeft,s=(o.touchMove?e.touches[0].pageX:e.pageX)-u.prototype.helpers.elOffset(i).left+n;o.hoverElement.style.left=s-o.startX+"px",s-n<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.max(0,n-5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1))),n+i.clientWidth-s<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.min(i.clientWidth,n+5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1)))},u.prototype.registerModule("moveColumn",F);var A=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=150,this.moving=!1,this.toRow=!1,this.toRowAfter=!1,this.hasHandle=!1,this.startY=0,this.startX=0,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.tableRowDropEvent=!1,this.touchMove=!1,this.connection=!1,this.connections=[],this.connectedTable=!1,this.connectedRow=!1};A.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-row"),e.classList.add("tabulator-row-placeholder"),e},A.prototype.initialize=function(e){this.connection=this.table.options.movableRowsConnectedTables},A.prototype.setHandle=function(e){this.hasHandle=e},A.prototype.initializeGroupHeader=function(e){var t=this,o={};o.mouseup=function(e){t.tableRowDrop(e,row)}.bind(t),o.mousemove=function(o){if(o.pageY-u.prototype.helpers.elOffset(e.element).top+t.table.rowManager.element.scrollTop>e.getHeight()/2){if(t.toRow!==e||!t.toRowAfter){var i=e.getElement();i.parentNode.insertBefore(t.placeholderElement,i.nextSibling),t.moveRow(e,!0)}}else if(t.toRow!==e||t.toRowAfter){var i=e.getElement();i.previousSibling&&(i.parentNode.insertBefore(t.placeholderElement,i),t.moveRow(e,!1))}}.bind(t),e.modules.moveRow=o},A.prototype.initializeRow=function(e){var t,o=this,i={};i.mouseup=function(t){o.tableRowDrop(t,e)}.bind(o),i.mousemove=function(t){if(t.pageY-u.prototype.helpers.elOffset(e.element).top+o.table.rowManager.element.scrollTop>e.getHeight()/2){if(o.toRow!==e||!o.toRowAfter){var i=e.getElement();i.parentNode.insertBefore(o.placeholderElement,i.nextSibling),o.moveRow(e,!0)}}else if(o.toRow!==e||o.toRowAfter){var i=e.getElement();i.parentNode.insertBefore(o.placeholderElement,i),o.moveRow(e,!1)}}.bind(o),this.hasHandle||(t=e.getElement(),t.addEventListener("mousedown",function(t){1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),this.bindTouchEvents(e,e.getElement())),e.modules.moveRow=i},A.prototype.initializeCell=function(e){var t=this,o=e.getElement();o.addEventListener("mousedown",function(o){1===o.which&&(t.checkTimeout=setTimeout(function(){t.startMove(o,e.row)},t.checkPeriod))}),o.addEventListener("mouseup",function(e){1===e.which&&t.checkTimeout&&clearTimeout(t.checkTimeout)}),this.bindTouchEvents(e.row,e.getElement())},A.prototype.bindTouchEvents=function(e,t){var o,i,n,s,r,a,l,c=this,u=!1;t.addEventListener("touchstart",function(t){c.checkTimeout=setTimeout(function(){c.touchMove=!0,o=e,i=e.nextRow(),s=i?i.getHeight()/2:0,n=e.prevRow(),r=n?n.getHeight()/2:0,a=0,l=0,u=!1,c.startMove(t,e)},c.checkPeriod)},{passive:!0}),this.moving,this.toRow,this.toRowAfter,t.addEventListener("touchmove",function(t){var d,h;c.moving&&(t.preventDefault(),c.moveHover(t),u||(u=t.touches[0].pageY),d=t.touches[0].pageY-u,d>0?i&&d-a>s&&(h=i)!==e&&(u=t.touches[0].pageY,h.getElement().parentNode.insertBefore(c.placeholderElement,h.getElement().nextSibling),c.moveRow(h,!0)):n&&-d-l>r&&(h=n)!==e&&(u=t.touches[0].pageY,h.getElement().parentNode.insertBefore(c.placeholderElement,h.getElement()),c.moveRow(h,!1)),h&&(o=h,i=h.nextRow(),a=s,s=i?i.getHeight()/2:0,n=h.prevRow(),l=r,r=n?n.getHeight()/2:0))}),t.addEventListener("touchend",function(e){c.checkTimeout&&clearTimeout(c.checkTimeout),c.moving&&(c.endMove(e),c.touchMove=!1)})},A.prototype._bindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().addEventListener("mousemove",e.modules.moveRow.mousemove)})},A.prototype._unbindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().removeEventListener("mousemove",e.modules.moveRow.mousemove)})},A.prototype.startMove=function(e,t){var o=t.getElement();this.setStartPosition(e,t),this.moving=t,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",this.connection?(this.table.element.classList.add("tabulator-movingrow-sending"),this.connectToTables(t)):(o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o)),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.connection?(document.body.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this.hoverElement.style.width=this.table.element.clientWidth+"px",this.hoverElement.style.whiteSpace="nowrap",this.hoverElement.style.overflow="hidden",this.hoverElement.style.pointerEvents="none"):(this.table.rowManager.getTableElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this._bindMouseMove()),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove),this.moveHover(e)},A.prototype.setStartPosition=function(e,t){var o,i,n=this.touchMove?e.touches[0].pageX:e.pageX,s=this.touchMove?e.touches[0].pageY:e.pageY;o=t.getElement(),this.connection?(i=o.getBoundingClientRect(),this.startX=i.left-n+window.pageXOffset,this.startY=i.top-s+window.pageYOffset):this.startY=s-o.getBoundingClientRect().top},A.prototype.endMove=function(e){e&&1!==e.which&&!this.touchMove||(this._unbindMouseMove(),this.connection||(this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement)),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toRow&&this.table.rowManager.moveRow(this.moving,this.toRow,this.toRowAfter),this.moving=!1,this.toRow=!1,this.toRowAfter=!1,document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove),this.connection&&(this.table.element.classList.remove("tabulator-movingrow-sending"),this.disconnectFromTables()))},A.prototype.moveRow=function(e,t){this.toRow=e,this.toRowAfter=t},A.prototype.moveHover=function(e){this.connection?this.moveHoverConnections.call(this,e):this.moveHoverTable.call(this,e)},A.prototype.moveHoverTable=function(e){var t=this.table.rowManager.getElement(),o=t.scrollTop,i=(this.touchMove?e.touches[0].pageY:e.pageY)-t.getBoundingClientRect().top+o;this.hoverElement.style.top=i-this.startY+"px"},A.prototype.moveHoverConnections=function(e){this.hoverElement.style.left=this.startX+(this.touchMove?e.touches[0].pageX:e.pageX)+"px",this.hoverElement.style.top=this.startY+(this.touchMove?e.touches[0].pageY:e.pageY)+"px"},A.prototype.connectToTables=function(e){var t=this.table.modules.comms.getConnections(this.connection);this.table.options.movableRowsSendingStart.call(this.table,t),this.table.modules.comms.send(this.connection,"moveRow","connect",{row:e})},A.prototype.disconnectFromTables=function(){var e=this.table.modules.comms.getConnections(this.connection);this.table.options.movableRowsSendingStop.call(this.table,e),this.table.modules.comms.send(this.connection,"moveRow","disconnect")},A.prototype.connect=function(e,t){var o=this;return this.connectedTable?(console.warn("Move Row Error - Table cannot accept connection, already connected to table:",this.connectedTable),!1):(this.connectedTable=e,this.connectedRow=t,this.table.element.classList.add("tabulator-movingrow-receiving"),o.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().addEventListener("mouseup",e.modules.moveRow.mouseup)}),o.tableRowDropEvent=o.tableRowDrop.bind(o),o.table.element.addEventListener("mouseup",o.tableRowDropEvent),this.table.options.movableRowsReceivingStart.call(this.table,t,e),!0)},A.prototype.disconnect=function(e){var t=this;e===this.connectedTable?(this.connectedTable=!1,this.connectedRow=!1,this.table.element.classList.remove("tabulator-movingrow-receiving"),t.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().removeEventListener("mouseup",e.modules.moveRow.mouseup)}),t.table.element.removeEventListener("mouseup",t.tableRowDropEvent),this.table.options.movableRowsReceivingStop.call(this.table,e)):console.warn("Move Row Error - trying to disconnect from non connected table")},A.prototype.dropComplete=function(e,t,o){var i=!1;if(o){switch(_typeof(this.table.options.movableRowsSender)){case"string":i=this.senders[this.table.options.movableRowsSender];break;case"function":i=this.table.options.movableRowsSender}i?i.call(this,this.moving.getComponent(),t?t.getComponent():void 0,e):this.table.options.movableRowsSender&&console.warn("Mover Row Error - no matching sender found:",this.table.options.movableRowsSender),this.table.options.movableRowsSent.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e)}else this.table.options.movableRowsSentFailed.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e);this.endMove()},A.prototype.tableRowDrop=function(e,t){var o=!1,i=!1;switch(e.stopImmediatePropagation(),_typeof(this.table.options.movableRowsReceiver)){case"string":o=this.receivers[this.table.options.movableRowsReceiver];break;case"function":o=this.table.options.movableRowsReceiver}o?i=o.call(this,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):console.warn("Mover Row Error - no matching receiver found:",this.table.options.movableRowsReceiver),i?this.table.options.movableRowsReceived.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):this.table.options.movableRowsReceivedFailed.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable),this.table.modules.comms.send(this.connectedTable,"moveRow","dropcomplete",{row:t,success:i})},A.prototype.receivers={insert:function(e,t,o){return this.table.addRow(e.getData(),void 0,t),!0},add:function(e,t,o){return this.table.addRow(e.getData()),!0},update:function(e,t,o){return!!t&&(t.update(e.getData()),!0)},replace:function(e,t,o){return!!t&&(this.table.addRow(e.getData(),void 0,t),t.delete(),!0)}},A.prototype.senders={delete:function(e,t,o){e.delete()}},A.prototype.commsReceived=function(e,t,o){switch(t){case"connect":return this.connect(e,o.row);case"disconnect":return this.disconnect(e);case"dropcomplete":return this.dropComplete(e,o.row,o.success)}},u.prototype.registerModule("moveRow",A);var P=function(e){this.table=e,this.allowedTypes=["","data","edit","clipboard"],this.enabled=!0};P.prototype.initializeColumn=function(e){var t=this,o=!1,i={};this.allowedTypes.forEach(function(n){var s,r="mutator"+(n.charAt(0).toUpperCase()+n.slice(1));e.definition[r]&&(s=t.lookupMutator(e.definition[r]))&&(o=!0,i[r]={mutator:s,params:e.definition[r+"Params"]||{}})}),o&&(e.modules.mutate=i)},P.prototype.lookupMutator=function(e){var t=!1;switch(void 0===e?"undefined":_typeof(e)){case"string":this.mutators[e]?t=this.mutators[e]:console.warn("Mutator Error - No such mutator found, ignoring: ",e);break;case"function":t=e}return t},P.prototype.transformRow=function(e,t,o){var i,n=this,s="mutator"+(t.charAt(0).toUpperCase()+t.slice(1));return this.enabled&&n.table.columnManager.traverse(function(n){var r,a,l;n.modules.mutate&&(r=n.modules.mutate[s]||n.modules.mutate.mutator||!1)&&(i=n.getFieldValue(void 0!==o?o:e),"data"!=t&&void 0===i||(l=n.getComponent(),a="function"==typeof r.params?r.params(i,e,t,l):r.params,n.setFieldValue(e,r.mutator(i,e,t,a,l))))}),e},P.prototype.transformCell=function(e,t){var o=e.column.modules.mutate.mutatorEdit||e.column.modules.mutate.mutator||!1,i={};return o?(i=Object.assign(i,e.row.getData()),e.column.setFieldValue(i,t),o.mutator(t,i,"edit",o.params,e.getComponent())):t},P.prototype.enable=function(){this.enabled=!0},P.prototype.disable=function(){this.enabled=!1},P.prototype.mutators={},u.prototype.registerModule("mutator",P);var _=function(e){this.table=e,this.mode="local",this.progressiveLoad=!1,this.size=0,this.page=1,this.count=5,this.max=1,this.displayIndex=0,this.initialLoad=!0,this.pageSizes=[],this.dataReceivedNames={},this.dataSentNames={},this.createElements()};_.prototype.createElements=function(){var e;this.element=document.createElement("span"),this.element.classList.add("tabulator-paginator"),this.pagesElement=document.createElement("span"),this.pagesElement.classList.add("tabulator-pages"),e=document.createElement("button"),e.classList.add("tabulator-page"),e.setAttribute("type","button"),e.setAttribute("role","button"),e.setAttribute("aria-label",""),e.setAttribute("title",""),this.firstBut=e.cloneNode(!0),this.firstBut.setAttribute("data-page","first"),this.prevBut=e.cloneNode(!0),this.prevBut.setAttribute("data-page","prev"),this.nextBut=e.cloneNode(!0),this.nextBut.setAttribute("data-page","next"),this.lastBut=e.cloneNode(!0),this.lastBut.setAttribute("data-page","last"),this.table.options.paginationSizeSelector&&(this.pageSizeSelect=document.createElement("select"),this.pageSizeSelect.classList.add("tabulator-page-size"))},_.prototype.generatePageSizeSelectList=function(){var e=this,t=[];if(this.pageSizeSelect){if(Array.isArray(this.table.options.paginationSizeSelector))t=this.table.options.paginationSizeSelector,this.pageSizes=t,-1==this.pageSizes.indexOf(this.size)&&t.unshift(this.size);else if(-1==this.pageSizes.indexOf(this.size)){t=[];for(var o=1;o<5;o++)t.push(this.size*o);this.pageSizes=t}else t=this.pageSizes;for(;this.pageSizeSelect.firstChild;)this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);t.forEach(function(t){var o=document.createElement("option");o.value=t,o.innerHTML=t,e.pageSizeSelect.appendChild(o)}),this.pageSizeSelect.value=this.size}},_.prototype.initialize=function(e){var t,o,i,n=this;this.dataSentNames=Object.assign({},this.paginationDataSentNames),this.dataSentNames=Object.assign(this.dataSentNames,this.table.options.paginationDataSent),this.dataReceivedNames=Object.assign({},this.paginationDataReceivedNames),this.dataReceivedNames=Object.assign(this.dataReceivedNames,this.table.options.paginationDataReceived),n.table.modules.localize.bind("pagination|first",function(e){n.firstBut.innerHTML=e}),n.table.modules.localize.bind("pagination|first_title",function(e){n.firstBut.setAttribute("aria-label",e),n.firstBut.setAttribute("title",e)}),n.table.modules.localize.bind("pagination|prev",function(e){n.prevBut.innerHTML=e}),n.table.modules.localize.bind("pagination|prev_title",function(e){n.prevBut.setAttribute("aria-label",e),n.prevBut.setAttribute("title",e)}),n.table.modules.localize.bind("pagination|next",function(e){n.nextBut.innerHTML=e}),n.table.modules.localize.bind("pagination|next_title",function(e){n.nextBut.setAttribute("aria-label",e),n.nextBut.setAttribute("title",e)}),n.table.modules.localize.bind("pagination|last",function(e){n.lastBut.innerHTML=e}),n.table.modules.localize.bind("pagination|last_title",function(e){n.lastBut.setAttribute("aria-label",e),n.lastBut.setAttribute("title",e)}),n.firstBut.addEventListener("click",function(){n.setPage(1)}),n.prevBut.addEventListener("click",function(){n.previousPage()}),n.nextBut.addEventListener("click",function(){n.nextPage().then(function(){}).catch(function(){})}),n.lastBut.addEventListener("click",function(){n.setPage(n.max)}),n.table.options.paginationElement&&(n.element=n.table.options.paginationElement),this.pageSizeSelect&&(t=document.createElement("label"),n.table.modules.localize.bind("pagination|page_size",function(e){n.pageSizeSelect.setAttribute("aria-label",e),n.pageSizeSelect.setAttribute("title",e),t.innerHTML=e}),n.element.appendChild(t),n.element.appendChild(n.pageSizeSelect),n.pageSizeSelect.addEventListener("change",function(e){n.setPageSize(n.pageSizeSelect.value),n.setPage(1).then(function(){}).catch(function(){})})),n.element.appendChild(n.firstBut),n.element.appendChild(n.prevBut),n.element.appendChild(n.pagesElement),n.element.appendChild(n.nextBut),n.element.appendChild(n.lastBut),n.table.options.paginationElement||e||n.table.footerManager.append(n.element,n),n.mode=n.table.options.pagination,n.table.options.paginationSize?n.size=n.table.options.paginationSize:(o=document.createElement("div"),o.classList.add("tabulator-row"),o.style.visibility=e,i=document.createElement("div"),i.classList.add("tabulator-cell"),i.innerHTML="Page Row Test",o.appendChild(i),n.table.rowManager.getTableElement().appendChild(o),n.size=Math.floor(n.table.rowManager.getElement().clientHeight/o.offsetHeight),n.table.rowManager.getTableElement().removeChild(o)),n.count=n.table.options.paginationButtonCount,n.generatePageSizeSelectList()},_.prototype.initializeProgressive=function(e){this.initialize(!0),this.mode="progressive_"+e,this.progressiveLoad=!0},_.prototype.setDisplayIndex=function(e){this.displayIndex=e},_.prototype.getDisplayIndex=function(){return this.displayIndex},_.prototype.setMaxRows=function(e){this.max=e?Math.ceil(e/this.size):1,this.page>this.max&&(this.page=this.max)},_.prototype.reset=function(e,t){return("local"==this.mode||e)&&(this.page=1),t&&(this.initialLoad=!0),!0},_.prototype.setMaxPage=function(e){e=parseInt(e),this.max=e||1,this.page>this.max&&(this.page=this.max,this.trigger())},_.prototype.setPage=function(e){var t=this,o=this;return new Promise(function(i,n){e=parseInt(e),e>0&&e<=t.max?(t.page=e,t.trigger().then(function(){i()}).catch(function(){n()}),o.table.options.persistence&&o.table.modExists("persistence",!0)&&o.table.modules.persistence.config.page&&o.table.modules.persistence.save("page")):(console.warn("Pagination Error - Requested page is out of range of 1 - "+t.max+":",e),n())})},_.prototype.setPageToRow=function(e){var t=this;return new Promise(function(o,i){var n=t.table.rowManager.getDisplayRows(t.displayIndex-1),s=n.indexOf(e);if(s>-1){var r=Math.ceil((s+1)/t.size);t.setPage(r).then(function(){o()}).catch(function(){i()})}else console.warn("Pagination Error - Requested row is not visible"),i()})},_.prototype.setPageSize=function(e){e=parseInt(e),e>0&&(this.size=e),this.pageSizeSelect&&this.generatePageSizeSelectList(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.page&&this.table.modules.persistence.save("page")},_.prototype._setPageButtons=function(){for(var e=this,t=Math.floor((this.count-1)/2),o=Math.ceil((this.count-1)/2),i=this.max-this.page+t+1<this.count?this.max-this.count+1:Math.max(this.page-t,1),n=this.page<=o?Math.min(this.count,this.max):Math.min(this.page+o,this.max);e.pagesElement.firstChild;)e.pagesElement.removeChild(e.pagesElement.firstChild);1==e.page?(e.firstBut.disabled=!0,e.prevBut.disabled=!0):(e.firstBut.disabled=!1,e.prevBut.disabled=!1),e.page==e.max?(e.lastBut.disabled=!0,e.nextBut.disabled=!0):(e.lastBut.disabled=!1,e.nextBut.disabled=!1);for(var s=i;s<=n;s++)s>0&&s<=e.max&&e.pagesElement.appendChild(e._generatePageButton(s));this.footerRedraw()},_.prototype._generatePageButton=function(e){var t=this,o=document.createElement("button");return o.classList.add("tabulator-page"),e==t.page&&o.classList.add("active"),o.setAttribute("type","button"),o.setAttribute("role","button"),o.setAttribute("aria-label","Show Page "+e),o.setAttribute("title","Show Page "+e),o.setAttribute("data-page",e),o.textContent=e,o.addEventListener("click",function(o){t.setPage(e)}),o},_.prototype.previousPage=function(){var e=this;return new Promise(function(t,o){e.page>1?(e.page--,e.trigger().then(function(){t()}).catch(function(){o()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(console.warn("Pagination Error - Previous page would be less than page 1:",0),o())})},_.prototype.nextPage=function(){var e=this;return new Promise(function(t,o){e.page<e.max?(e.page++,e.trigger().then(function(){t()}).catch(function(){o()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(e.progressiveLoad||console.warn("Pagination Error - Next page would be greater than maximum page of "+e.max+":",e.max+1),o())})},_.prototype.getPage=function(){return this.page},_.prototype.getPageMax=function(){return this.max},_.prototype.getPageSize=function(e){return this.size},_.prototype.getMode=function(){return this.mode},_.prototype.getRows=function(e){var t,o,i;if("local"==this.mode){t=[],o=this.size*(this.page-1),i=o+parseInt(this.size),this._setPageButtons();for(var n=o;n<i;n++)e[n]&&t.push(e[n]);return t}return this._setPageButtons(),e.slice(0)},_.prototype.trigger=function(){var e,t=this;return new Promise(function(o,i){switch(t.mode){case"local":e=t.table.rowManager.scrollLeft,t.table.rowManager.refreshActiveData("page"),t.table.rowManager.scrollHorizontal(e),t.table.options.pageLoaded.call(t.table,t.getPage()),o();break;case"remote":case"progressive_load":case"progressive_scroll":t.table.modules.ajax.blockActiveRequest(),t._getRemotePage().then(function(){o()}).catch(function(){i()});break;default:console.warn("Pagination Error - no such pagination mode:",t.mode),i()}})},_.prototype._getRemotePage=function(){var e,t,o=this,i=this;return new Promise(function(n,s){if(i.table.modExists("ajax",!0)||s(),e=u.prototype.helpers.deepClone(i.table.modules.ajax.getParams()||{}),t=i.table.modules.ajax.getParams(),t[o.dataSentNames.page]=i.page,o.size&&(t[o.dataSentNames.size]=o.size),o.table.options.ajaxSorting&&o.table.modExists("sort")){var r=i.table.modules.sort.getSort();r.forEach(function(e){delete e.column}),t[o.dataSentNames.sorters]=r}if(o.table.options.ajaxFiltering&&o.table.modExists("filter")){var a=i.table.modules.filter.getFilters(!0,!0);t[o.dataSentNames.filters]=a}i.table.modules.ajax.setParams(t),i.table.modules.ajax.sendRequest(o.progressiveLoad).then(function(e){i._parseRemoteData(e),n()}).catch(function(e){s()}),
-i.table.modules.ajax.setParams(e)})},_.prototype._parseRemoteData=function(e){var t,e,o,i=this;if(void 0===e[this.dataReceivedNames.last_page]&&console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.last_page+"' property"),e[this.dataReceivedNames.data]){if(this.max=parseInt(e[this.dataReceivedNames.last_page])||1,this.progressiveLoad)switch(this.mode){case"progressive_load":1==this.page?this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page):this.table.rowManager.addRows(e[this.dataReceivedNames.data]),this.page<this.max&&setTimeout(function(){i.nextPage().then(function(){}).catch(function(){})},i.table.options.ajaxProgressiveLoadDelay);break;case"progressive_scroll":e=this.table.rowManager.getData().concat(e[this.dataReceivedNames.data]),this.table.rowManager.setData(e,!0,this.initialLoad&&1==this.page),o=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.element.clientHeight,i.table.rowManager.element.scrollHeight<=i.table.rowManager.element.clientHeight+o&&i.nextPage().then(function(){}).catch(function(){})}else t=this.table.rowManager.scrollLeft,this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page),this.table.rowManager.scrollHorizontal(t),this.table.columnManager.scrollHorizontal(t),this.table.options.pageLoaded.call(this.table,this.getPage());this.initialLoad=!1}else console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.data+"' property")},_.prototype.footerRedraw=function(){var e=this.table.footerManager.element;Math.ceil(e.clientWidth)-e.scrollWidth<0?this.pagesElement.style.display="none":(this.pagesElement.style.display="",Math.ceil(e.clientWidth)-e.scrollWidth<0&&(this.pagesElement.style.display="none"))},_.prototype.paginationDataSentNames={page:"page",size:"size",sorters:"sorters",filters:"filters"},_.prototype.paginationDataReceivedNames={current_page:"current_page",last_page:"last_page",data:"data"},u.prototype.registerModule("page",_);var N=function(e){this.table=e,this.mode="",this.id="",this.defWatcherBlock=!1,this.config={},this.readFunc=!1,this.writeFunc=!1};N.prototype.localStorageTest=function(){var e="_tabulator_test";try{return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}},N.prototype.initialize=function(){var e,t=this.table.options.persistenceMode,o=this.table.options.persistenceID;this.mode=!0!==t?t:this.localStorageTest()?"local":"cookie",this.table.options.persistenceReaderFunc?"function"==typeof this.table.options.persistenceReaderFunc?this.readFunc=this.table.options.persistenceReaderFunc:this.readers[this.table.options.persistenceReaderFunc]?this.readFunc=this.readers[this.table.options.persistenceReaderFunc]:console.warn("Persistence Read Error - invalid reader set",this.table.options.persistenceReaderFunc):this.readers[this.mode]?this.readFunc=this.readers[this.mode]:console.warn("Persistence Read Error - invalid reader set",this.mode),this.table.options.persistenceWriterFunc?"function"==typeof this.table.options.persistenceWriterFunc?this.writeFunc=this.table.options.persistenceWriterFunc:this.readers[this.table.options.persistenceWriterFunc]?this.writeFunc=this.readers[this.table.options.persistenceWriterFunc]:console.warn("Persistence Write Error - invalid reader set",this.table.options.persistenceWriterFunc):this.writers[this.mode]?this.writeFunc=this.writers[this.mode]:console.warn("Persistence Write Error - invalid writer set",this.mode),this.id="tabulator-"+(o||this.table.element.getAttribute("id")||""),this.config={sort:!0===this.table.options.persistence||this.table.options.persistence.sort,filter:!0===this.table.options.persistence||this.table.options.persistence.filter,group:!0===this.table.options.persistence||this.table.options.persistence.group,page:!0===this.table.options.persistence||this.table.options.persistence.page,columns:!0===this.table.options.persistence?["title","width","visible"]:this.table.options.persistence.columns},this.config.page&&(e=this.retreiveData("page"))&&(void 0===e.paginationSize||!0!==this.config.page&&!this.config.page.size||(this.table.options.paginationSize=e.paginationSize),void 0===e.paginationInitialPage||!0!==this.config.page&&!this.config.page.page||(this.table.options.paginationInitialPage=e.paginationInitialPage)),this.config.group&&(e=this.retreiveData("group"))&&(void 0===e.groupBy||!0!==this.config.group&&!this.config.group.groupBy||(this.table.options.groupBy=e.groupBy),void 0===e.groupStartOpen||!0!==this.config.group&&!this.config.group.groupStartOpen||(this.table.options.groupStartOpen=e.groupStartOpen),void 0===e.groupHeader||!0!==this.config.group&&!this.config.group.groupHeader||(this.table.options.groupHeader=e.groupHeader))},N.prototype.initializeColumn=function(e){var t,o,i=this;this.config.columns&&(this.defWatcherBlock=!0,t=e.getDefinition(),o=!0===this.config.columns?Object.keys(t):this.config.columns,o.forEach(function(e){var o=Object.getOwnPropertyDescriptor(t,e),n=t[e];o&&Object.defineProperty(t,e,{set:function(e){n=e,i.defWatcherBlock||i.save("columns"),o.set&&o.set(e)},get:function(){return o.get&&o.get(),n}})}),this.defWatcherBlock=!1)},N.prototype.load=function(e,t){var o=this.retreiveData(e);return t&&(o=o?this.mergeDefinition(t,o):t),o},N.prototype.retreiveData=function(e){return!!this.readFunc&&this.readFunc(this.id,e)},N.prototype.mergeDefinition=function(e,t){var o=this,i=[];return t=t||[],t.forEach(function(t,n){var s,r=o._findColumn(e,t);r&&(!0===o.config.columns||void 0==o.config.columns?(s=Object.keys(r),s.push("width")):s=o.config.columns,s.forEach(function(e){void 0!==t[e]&&(r[e]=t[e])}),r.columns&&(r.columns=o.mergeDefinition(r.columns,t.columns)),i.push(r))}),e.forEach(function(e,n){o._findColumn(t,e)||(i.length>n?i.splice(n,0,e):i.push(e))}),i},N.prototype._findColumn=function(e,t){var o=t.columns?"group":t.field?"field":"object";return e.find(function(e){switch(o){case"group":return e.title===t.title&&e.columns.length===t.columns.length;case"field":return e.field===t.field;case"object":return e===t}})},N.prototype.save=function(e){var t={};switch(e){case"columns":t=this.parseColumns(this.table.columnManager.getColumns());break;case"filter":t=this.table.modules.filter.getFilters();break;case"sort":t=this.validateSorters(this.table.modules.sort.getSort());break;case"group":t=this.getGroupConfig();break;case"page":t=this.getPageConfig()}this.writeFunc&&this.writeFunc(this.id,e,t)},N.prototype.validateSorters=function(e){return e.forEach(function(e){e.column=e.field,delete e.field}),e},N.prototype.getGroupConfig=function(){return this.config.group&&((!0===this.config.group||this.config.group.groupBy)&&(data.groupBy=this.table.options.groupBy),(!0===this.config.group||this.config.group.groupStartOpen)&&(data.groupStartOpen=this.table.options.groupStartOpen),(!0===this.config.group||this.config.group.groupHeader)&&(data.groupHeader=this.table.options.groupHeader)),data},N.prototype.getPageConfig=function(){var e={};return this.config.page&&((!0===this.config.page||this.config.page.size)&&(e.paginationSize=this.table.modules.page.getPageSize()),(!0===this.config.page||this.config.page.page)&&(e.paginationInitialPage=this.table.modules.page.getPage())),e},N.prototype.parseColumns=function(e){var t=this,o=[];return e.forEach(function(e){var i,n={},s=e.getDefinition();e.isGroup?(n.title=s.title,n.columns=t.parseColumns(e.getColumns())):(n.field=e.getField(),!0===t.config.columns||void 0==t.config.columns?(i=Object.keys(s),i.push("width")):i=t.config.columns,i.forEach(function(t){switch(t){case"width":n.width=e.getWidth();break;case"visible":n.visible=e.visible;break;default:n[t]=s[t]}})),o.push(n)}),o},N.prototype.readers={local:function(e,t){var o=localStorage.getItem(e+"-"+t);return!!o&&JSON.parse(o)},cookie:function(e,t){var o,i,n=document.cookie,s=e+"-"+t,r=n.indexOf(s+"=");return r>-1&&(n=n.substr(r),o=n.indexOf(";"),o>-1&&(n=n.substr(0,o)),i=n.replace(s+"=","")),!!i&&JSON.parse(i)}},N.prototype.writers={local:function(e,t,o){localStorage.setItem(e+"-"+t,JSON.stringify(o))},cookie:function(e,t,o){var i=new Date;i.setDate(i.getDate()+1e4),document.cookie=e+"-"+t+"="+JSON.stringify(o)+"; expires="+i.toUTCString()}},u.prototype.registerModule("persistence",N);var B=function(e){this.table=e,this.element=!1,this.manualBlock=!1};B.prototype.initialize=function(){window.addEventListener("beforeprint",this.replaceTable.bind(this)),window.addEventListener("afterprint",this.cleanup.bind(this))},B.prototype.replaceTable=function(){this.manualBlock||(this.element=document.createElement("div"),this.element.classList.add("tabulator-print-table"),this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig,this.table.options.printStyled,this.table.options.printRowRange,"print")),this.table.element.style.display="none",this.table.element.parentNode.insertBefore(this.element,this.table.element))},B.prototype.cleanup=function(){document.body.classList.remove("tabulator-print-fullscreen-hide"),this.element&&this.element.parentNode&&(this.element.parentNode.removeChild(this.element),this.table.element.style.display="")},B.prototype.printFullscreen=function(e,t,o){var i,n,s=window.scrollX,r=window.scrollY,a=document.createElement("div"),l=document.createElement("div"),c=this.table.modules.export.genereateTable(void 0!==o?o:this.table.options.printConfig,void 0!==t?t:this.table.options.printStyled,e,"print");this.manualBlock=!0,this.element=document.createElement("div"),this.element.classList.add("tabulator-print-fullscreen"),this.table.options.printHeader&&(a.classList.add("tabulator-print-header"),i="function"==typeof this.table.options.printHeader?this.table.options.printHeader.call(this.table):this.table.options.printHeader,"string"==typeof i?a.innerHTML=i:a.appendChild(i),this.element.appendChild(a)),this.element.appendChild(c),this.table.options.printFooter&&(l.classList.add("tabulator-print-footer"),n="function"==typeof this.table.options.printFooter?this.table.options.printFooter.call(this.table):this.table.options.printFooter,"string"==typeof n?l.innerHTML=n:l.appendChild(n),this.element.appendChild(l)),document.body.classList.add("tabulator-print-fullscreen-hide"),document.body.appendChild(this.element),this.table.options.printFormatter&&this.table.options.printFormatter(this.element,c),window.print(),this.cleanup(),window.scrollTo(s,r),this.manualBlock=!1},u.prototype.registerModule("print",B);var I=function(e){this.table=e,this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0};I.prototype.watchData=function(e){var t,o=this;this.currentVersion++,t=this.currentVersion,o.unwatchData(),o.data=e,o.origFuncs.push=e.push,Object.defineProperty(o.data,"push",{enumerable:!1,configurable:!0,value:function(){var i=Array.from(arguments);return o.blocked||t!==o.currentVersion||i.forEach(function(e){o.table.rowManager.addRowActual(e,!1)}),o.origFuncs.push.apply(e,arguments)}}),o.origFuncs.unshift=e.unshift,Object.defineProperty(o.data,"unshift",{enumerable:!1,configurable:!0,value:function(){var i=Array.from(arguments);return o.blocked||t!==o.currentVersion||i.forEach(function(e){o.table.rowManager.addRowActual(e,!0)}),o.origFuncs.unshift.apply(e,arguments)}}),o.origFuncs.shift=e.shift,Object.defineProperty(o.data,"shift",{enumerable:!1,configurable:!0,value:function(){var i;return o.blocked||t!==o.currentVersion||o.data.length&&(i=o.table.rowManager.getRowFromDataObject(o.data[0]))&&i.deleteActual(),o.origFuncs.shift.call(e)}}),o.origFuncs.pop=e.pop,Object.defineProperty(o.data,"pop",{enumerable:!1,configurable:!0,value:function(){var i;return o.blocked||t!==o.currentVersion||o.data.length&&(i=o.table.rowManager.getRowFromDataObject(o.data[o.data.length-1]))&&i.deleteActual(),o.origFuncs.pop.call(e)}}),o.origFuncs.splice=e.splice,Object.defineProperty(o.data,"splice",{enumerable:!1,configurable:!0,value:function(){var i,n=Array.from(arguments),s=n[0]<0?e.length+n[0]:n[0],r=n[1],a=!!n[2]&&n.slice(2);if(!o.blocked&&t===o.currentVersion){if(a&&(i=!!e[s]&&o.table.rowManager.getRowFromDataObject(e[s]),i?a.forEach(function(e){o.table.rowManager.addRowActual(e,!0,i,!0)}):(a=a.slice().reverse(),a.forEach(function(e){o.table.rowManager.addRowActual(e,!0,!1,!0)}))),0!==r){var l=e.slice(s,void 0===n[1]?n[1]:s+r);l.forEach(function(e,t){var i=o.table.rowManager.getRowFromDataObject(e);i&&i.deleteActual(t!==l.length-1)})}(a||0!==r)&&o.table.rowManager.reRenderInPosition()}return o.origFuncs.splice.apply(e,arguments)}})},I.prototype.unwatchData=function(){if(!1!==this.data)for(var e in this.origFuncs)Object.defineProperty(this.data,e,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs.key})},I.prototype.watchRow=function(e){var t=e.getData();this.blocked=!0;for(var o in t)this.watchKey(e,t,o);this.blocked=!1},I.prototype.watchKey=function(e,t,o){var i=this,n=Object.getOwnPropertyDescriptor(t,o),s=t[o],r=this.currentVersion;Object.defineProperty(t,o,{set:function(t){if(s=t,!i.blocked&&r===i.currentVersion){var a={};a[o]=t,e.updateData(a)}n.set&&n.set(t)},get:function(){return n.get&&n.get(),s}})},I.prototype.unwatchRow=function(e){var t=e.getData();for(var o in t)Object.defineProperty(t,o,{value:t[o]})},I.prototype.block=function(){this.blocked=!0},I.prototype.unblock=function(){this.blocked=!1},u.prototype.registerModule("reactiveData",I);var O=function(e){this.table=e,this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.handle=null,this.prevHandle=null};O.prototype.initializeColumn=function(e,t,o){var i=this,n=!1,s=this.table.options.resizableColumns;if("header"===e&&(n="textarea"==t.definition.formatter||t.definition.variableHeight,t.modules.resize={variableHeight:n}),!0===s||s==e){var r=document.createElement("div");r.className="tabulator-col-resize-handle";var a=document.createElement("div");a.className="tabulator-col-resize-handle prev",r.addEventListener("click",function(e){e.stopPropagation()});var l=function(e){var o=t.getLastColumn();o&&i._checkResizability(o)&&(i.startColumn=t,i._mouseDown(e,o,r))};r.addEventListener("mousedown",l),r.addEventListener("touchstart",l,{passive:!0}),r.addEventListener("dblclick",function(e){var o=t.getLastColumn();o&&i._checkResizability(o)&&(e.stopPropagation(),o.reinitializeWidth(!0))}),a.addEventListener("click",function(e){e.stopPropagation()});var c=function(e){var o,n,s;(o=t.getFirstColumn())&&(n=i.table.columnManager.findColumnIndex(o),(s=n>0&&i.table.columnManager.getColumnByIndex(n-1))&&i._checkResizability(s)&&(i.startColumn=t,i._mouseDown(e,s,a)))};a.addEventListener("mousedown",c),a.addEventListener("touchstart",c,{passive:!0}),a.addEventListener("dblclick",function(e){var o,n,s;(o=t.getFirstColumn())&&(n=i.table.columnManager.findColumnIndex(o),(s=n>0&&i.table.columnManager.getColumnByIndex(n-1))&&i._checkResizability(s)&&(e.stopPropagation(),s.reinitializeWidth(!0)))}),o.appendChild(r),o.appendChild(a)}},O.prototype._checkResizability=function(e){return void 0!==e.definition.resizable?e.definition.resizable:this.table.options.resizableColumns},O.prototype._mouseDown=function(e,t,o){function i(e){t.setWidth(s.startWidth+((void 0===e.screenX?e.touches[0].screenX:e.screenX)-s.startX)),!s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights()}function n(e){s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!1),s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights(),document.body.removeEventListener("mouseup",n),document.body.removeEventListener("mousemove",i),o.removeEventListener("touchmove",i),o.removeEventListener("touchend",n),s.table.element.classList.remove("tabulator-block-select"),s.table.options.persistence&&s.table.modExists("persistence",!0)&&s.table.modules.persistence.config.columns&&s.table.modules.persistence.save("columns"),s.table.options.columnResized.call(s.table,t.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!0),s.startX=void 0===e.screenX?e.touches[0].screenX:e.screenX,s.startWidth=t.getWidth(),document.body.addEventListener("mousemove",i),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",i,{passive:!0}),o.addEventListener("touchend",n)},u.prototype.registerModule("resizeColumns",O);var j=function(e){this.table=e,this.startColumn=!1,this.startY=!1,this.startHeight=!1,this.handle=null,this.prevHandle=null};j.prototype.initializeRow=function(e){var t=this,o=e.getElement(),i=document.createElement("div");i.className="tabulator-row-resize-handle";var n=document.createElement("div");n.className="tabulator-row-resize-handle prev",i.addEventListener("click",function(e){e.stopPropagation()});var s=function(o){t.startRow=e,t._mouseDown(o,e,i)};i.addEventListener("mousedown",s),i.addEventListener("touchstart",s,{passive:!0}),n.addEventListener("click",function(e){e.stopPropagation()});var r=function(o){var i=t.table.rowManager.prevDisplayRow(e);i&&(t.startRow=i,t._mouseDown(o,i,n))};n.addEventListener("mousedown",r),n.addEventListener("touchstart",r,{passive:!0}),o.appendChild(i),o.appendChild(n)},j.prototype._mouseDown=function(e,t,o){function i(e){t.setHeight(s.startHeight+((void 0===e.screenY?e.touches[0].screenY:e.screenY)-s.startY))}function n(e){document.body.removeEventListener("mouseup",i),document.body.removeEventListener("mousemove",i),o.removeEventListener("touchmove",i),o.removeEventListener("touchend",n),s.table.element.classList.remove("tabulator-block-select"),s.table.options.rowResized.call(this.table,t.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),s.startY=void 0===e.screenY?e.touches[0].screenY:e.screenY,s.startHeight=t.getHeight(),document.body.addEventListener("mousemove",i),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",i,{passive:!0}),o.addEventListener("touchend",n)},u.prototype.registerModule("resizeRows",j);var V=function(e){this.table=e,this.binding=!1,this.observer=!1,this.containerObserver=!1,this.tableHeight=0,this.tableWidth=0,this.containerHeight=0,this.containerWidth=0,this.autoResize=!1};V.prototype.initialize=function(e){var t,o=this,i=this.table;this.tableHeight=i.element.clientHeight,this.tableWidth=i.element.clientWidth,i.element.parentNode&&(this.containerHeight=i.element.parentNode.clientHeight,this.containerWidth=i.element.parentNode.clientWidth),"undefined"!=typeof ResizeObserver&&"virtual"===i.rowManager.getRenderMode()?(this.autoResize=!0,this.observer=new ResizeObserver(function(e){if(!i.browserMobile||i.browserMobile&&!i.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),n=Math.floor(e[0].contentRect.width);o.tableHeight==t&&o.tableWidth==n||(o.tableHeight=t,o.tableWidth=n,i.element.parentNode&&(o.containerHeight=i.element.parentNode.clientHeight,o.containerWidth=i.element.parentNode.clientWidth),i.redraw())}}),this.observer.observe(i.element),t=window.getComputedStyle(i.element),this.table.element.parentNode&&!this.table.rowManager.fixedHeight&&(t.getPropertyValue("max-height")||t.getPropertyValue("min-height"))&&(this.containerObserver=new ResizeObserver(function(e){if(!i.browserMobile||i.browserMobile&&!i.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),n=Math.floor(e[0].contentRect.width);o.containerHeight==t&&o.containerWidth==n||(o.containerHeight=t,o.containerWidth=n,o.tableHeight=i.element.clientHeight,o.tableWidth=i.element.clientWidth,i.redraw()),i.redraw()}}),this.containerObserver.observe(this.table.element.parentNode))):(this.binding=function(){(!i.browserMobile||i.browserMobile&&!i.modules.edit.currentCell)&&i.redraw()},window.addEventListener("resize",this.binding))},V.prototype.clearBindings=function(e){this.binding&&window.removeEventListener("resize",this.binding),this.observer&&this.observer.unobserve(this.table.element),this.containerObserver&&this.containerObserver.unobserve(this.table.element.parentNode)},u.prototype.registerModule("resizeTable",V);var G=function(e){this.table=e,this.columns=[],this.hiddenColumns=[],this.mode="",this.index=0,this.collapseFormatter=[],this.collapseStartOpen=!0,this.collapseHandleColumn=!1};G.prototype.initialize=function(){var e=this,t=[];this.mode=this.table.options.responsiveLayout,this.collapseFormatter=this.table.options.responsiveLayoutCollapseFormatter||this.formatCollapsedData,this.collapseStartOpen=this.table.options.responsiveLayoutCollapseStartOpen,this.hiddenColumns=[],this.table.columnManager.columnsByIndex.forEach(function(o,i){o.modules.responsive&&o.modules.responsive.order&&o.modules.responsive.visible&&(o.modules.responsive.index=i,t.push(o),o.visible||"collapse"!==e.mode||e.hiddenColumns.push(o))}),t=t.reverse(),t=t.sort(function(e,t){return t.modules.responsive.order-e.modules.responsive.order||t.modules.responsive.index-e.modules.responsive.index}),this.columns=t,"collapse"===this.mode&&this.generateCollapsedContent();for(var o=this.table.columnManager.columnsByIndex,i=Array.isArray(o),n=0,o=i?o:o[Symbol.iterator]();;){var s;if(i){if(n>=o.length)break;s=o[n++]}else{if(n=o.next(),n.done)break;s=n.value}var r=s;if("responsiveCollapse"==r.definition.formatter){this.collapseHandleColumn=r;break}}this.collapseHandleColumn&&(this.hiddenColumns.length?this.collapseHandleColumn.show():this.collapseHandleColumn.hide())},G.prototype.initializeColumn=function(e){var t=e.getDefinition();e.modules.responsive={order:void 0===t.responsive?1:t.responsive,visible:!1!==t.visible}},G.prototype.initializeRow=function(e){var t;"calc"!==e.type&&(t=document.createElement("div"),t.classList.add("tabulator-responsive-collapse"),e.modules.responsiveLayout={element:t,open:this.collapseStartOpen},this.collapseStartOpen||(t.style.display="none"))},G.prototype.layoutRow=function(e){var t=e.getElement();e.modules.responsiveLayout&&(t.appendChild(e.modules.responsiveLayout.element),this.generateCollapsedRowContent(e))},G.prototype.updateColumnVisibility=function(e,t){e.modules.responsive&&(e.modules.responsive.visible=t,this.initialize())},G.prototype.hideColumn=function(e){var t=this.hiddenColumns.length;e.hide(!1,!0),"collapse"===this.mode&&(this.hiddenColumns.unshift(e),this.generateCollapsedContent(),this.collapseHandleColumn&&!t&&this.collapseHandleColumn.show())},G.prototype.showColumn=function(e){var t;e.show(!1,!0),e.setWidth(e.getWidth()),"collapse"===this.mode&&(t=this.hiddenColumns.indexOf(e),t>-1&&this.hiddenColumns.splice(t,1),this.generateCollapsedContent(),this.collapseHandleColumn&&!this.hiddenColumns.length&&this.collapseHandleColumn.hide())},G.prototype.update=function(){for(var e=this,t=!0;t;){var o="fitColumns"==e.table.modules.layout.getMode()?e.table.columnManager.getFlexBaseWidth():e.table.columnManager.getWidth(),i=(e.table.options.headerVisible?e.table.columnManager.element.clientWidth:e.table.element.clientWidth)-o;if(i<0){var n=e.columns[e.index];n?(e.hideColumn(n),e.index++):t=!1}else{var s=e.columns[e.index-1];s&&i>0&&i>=s.getWidth()?(e.showColumn(s),e.index--):t=!1}e.table.rowManager.activeRowsCount||e.table.rowManager.renderEmptyScroll()}},G.prototype.generateCollapsedContent=function(){var e=this;this.table.rowManager.getDisplayRows().forEach(function(t){e.generateCollapsedRowContent(t)})},G.prototype.generateCollapsedRowContent=function(e){var t,o;if(e.modules.responsiveLayout){for(t=e.modules.responsiveLayout.element;t.firstChild;)t.removeChild(t.firstChild);o=this.collapseFormatter(this.generateCollapsedRowData(e)),o&&t.appendChild(o)}},G.prototype.generateCollapsedRowData=function(e){var t,o=this,i=e.getData(),n=[];return this.hiddenColumns.forEach(function(s){var r=s.getFieldValue(i);s.definition.title&&s.field&&(s.modules.format&&o.table.options.responsiveLayoutCollapseUseFormatters?(t={value:!1,data:{},getValue:function(){return r},getData:function(){return i},getElement:function(){return document.createElement("div")},getRow:function(){return e.getComponent()},getColumn:function(){return s.getComponent()}},n.push({title:s.definition.title,value:s.modules.format.formatter.call(o.table.modules.format,t,s.modules.format.params)})):n.push({title:s.definition.title,value:r}))}),n},G.prototype.formatCollapsedData=function(e){var t=document.createElement("table"),o="";return e.forEach(function(e){var t=document.createElement("div");e.value instanceof Node&&(t.appendChild(e.value),e.value=t.innerHTML),o+="<tr><td><strong>"+e.title+"</strong></td><td>"+e.value+"</td></tr>"}),t.innerHTML=o,Object.keys(e).length?t:""},u.prototype.registerModule("responsiveLayout",G);var W=function(e){this.table=e,this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],this.headerCheckboxElement=null};W.prototype.clearSelectionData=function(e){this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],e||this._rowSelectionChanged()},W.prototype.initializeRow=function(e){var t=this,o=e.getElement(),i=function e(){setTimeout(function(){t.selecting=!1},50),document.body.removeEventListener("mouseup",e)};e.modules.select={selected:!1},t.table.options.selectableCheck.call(this.table,e.getComponent())?(o.classList.add("tabulator-selectable"),o.classList.remove("tabulator-unselectable"),t.table.options.selectable&&"highlight"!=t.table.options.selectable&&("click"===t.table.options.selectableRangeMode?o.addEventListener("click",function(o){if(o.shiftKey){t.table._clearSelection(),t.lastClickedRow=t.lastClickedRow||e;var i=t.table.rowManager.getDisplayRowIndex(t.lastClickedRow),n=t.table.rowManager.getDisplayRowIndex(e),s=i<=n?i:n,r=i>=n?i:n,a=t.table.rowManager.getDisplayRows().slice(0),l=a.splice(s,r-s+1);o.ctrlKey||o.metaKey?(l.forEach(function(o){o!==t.lastClickedRow&&(!0===t.table.options.selectable||t.isRowSelected(e)?t.toggleRow(o):t.selectedRows.length<t.table.options.selectable&&t.toggleRow(o))}),t.lastClickedRow=e):(t.deselectRows(void 0,!0),!0!==t.table.options.selectable&&l.length>t.table.options.selectable&&(l=l.slice(0,t.table.options.selectable)),t.selectRows(l)),t.table._clearSelection()}else o.ctrlKey||o.metaKey?(t.toggleRow(e),t.lastClickedRow=e):(t.deselectRows(void 0,!0),t.selectRows(e),t.lastClickedRow=e)}):(o.addEventListener("click",function(o){t.table.modExists("edit")&&t.table.modules.edit.getCurrentCell()||t.table._clearSelection(),t.selecting||t.toggleRow(e)}),o.addEventListener("mousedown",function(o){if(o.shiftKey)return t.table._clearSelection(),t.selecting=!0,t.selectPrev=[],document.body.addEventListener("mouseup",i),document.body.addEventListener("keyup",i),t.toggleRow(e),!1}),o.addEventListener("mouseenter",function(o){t.selecting&&(t.table._clearSelection(),t.toggleRow(e),t.selectPrev[1]==e&&t.toggleRow(t.selectPrev[0]))}),o.addEventListener("mouseout",function(o){t.selecting&&(t.table._clearSelection(),t.selectPrev.unshift(e))})))):(o.classList.add("tabulator-unselectable"),o.classList.remove("tabulator-selectable"))},W.prototype.toggleRow=function(e){this.table.options.selectableCheck.call(this.table,e.getComponent())&&(e.modules.select&&e.modules.select.selected?this._deselectRow(e):this._selectRow(e))},W.prototype.selectRows=function(e){var t,o=this;switch(void 0===e?"undefined":_typeof(e)){case"undefined":this.table.rowManager.rows.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;case"string":t=this.table.rowManager.findRow(e),t?this._selectRow(t,!0,!0):this.table.rowManager.getRows(e).forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;default:Array.isArray(e)?(e.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged()):this._selectRow(e,!1,!0)}},W.prototype._selectRow=function(e,t,o){if(!isNaN(this.table.options.selectable)&&!0!==this.table.options.selectable&&!o&&this.selectedRows.length>=this.table.options.selectable){if(!this.table.options.selectableRollingSelection)return!1;this._deselectRow(this.selectedRows[0])}var i=this.table.rowManager.findRow(e);i?-1==this.selectedRows.indexOf(i)&&(i.modules.select||(i.modules.select={}),i.modules.select.selected=!0,i.modules.select.checkboxEl&&(i.modules.select.checkboxEl.checked=!0),i.getElement().classList.add("tabulator-selected"),this.selectedRows.push(i),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(i,!0),t||this.table.options.rowSelected.call(this.table,i.getComponent()),this._rowSelectionChanged(t)):t||console.warn("Selection Error - No such row found, ignoring selection:"+e)},W.prototype.isRowSelected=function(e){return-1!==this.selectedRows.indexOf(e)},W.prototype.deselectRows=function(e,t){var o,i=this;if(void 0===e){o=i.selectedRows.length;for(var n=0;n<o;n++)i._deselectRow(i.selectedRows[0],!0);i._rowSelectionChanged(t)}else Array.isArray(e)?(e.forEach(function(e){i._deselectRow(e,!0)}),i._rowSelectionChanged(t)):i._deselectRow(e,t)},W.prototype._deselectRow=function(e,t){var o,i=this,n=i.table.rowManager.findRow(e);n?(o=i.selectedRows.findIndex(function(e){return e==n}))>-1&&(n.modules.select||(n.modules.select={}),n.modules.select.selected=!1,n.modules.select.checkboxEl&&(n.modules.select.checkboxEl.checked=!1),n.getElement().classList.remove("tabulator-selected"),i.selectedRows.splice(o,1),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(n,!1),t||i.table.options.rowDeselected.call(this.table,n.getComponent()),i._rowSelectionChanged(t)):t||console.warn("Deselection Error - No such row found, ignoring selection:"+e)},W.prototype.getSelectedData=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getData())}),e},W.prototype.getSelectedRows=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getComponent())}),e},W.prototype._rowSelectionChanged=function(e){this.headerCheckboxElement&&(0===this.selectedRows.length?(this.headerCheckboxElement.checked=!1,this.headerCheckboxElement.indeterminate=!1):this.table.rowManager.rows.length===this.selectedRows.length?(this.headerCheckboxElement.checked=!0,this.headerCheckboxElement.indeterminate=!1):(this.headerCheckboxElement.indeterminate=!0,this.headerCheckboxElement.checked=!1)),e||this.table.options.rowSelectionChanged.call(this.table,this.getSelectedData(),this.getSelectedRows())},W.prototype.registerRowSelectCheckbox=function(e,t){e._row.modules.select||(e._row.modules.select={}),e._row.modules.select.checkboxEl=t},W.prototype.registerHeaderSelectCheckbox=function(e){this.headerCheckboxElement=e},W.prototype.childRowSelection=function(e,t){var o=this.table.modules.dataTree.getChildren(e);if(t)for(var i=o,n=Array.isArray(i),s=0,i=n?i:i[Symbol.iterator]();;){var r;if(n){if(s>=i.length)break;r=i[s++]}else{if(s=i.next(),s.done)break;r=s.value}var a=r;this._selectRow(a,!0)}else for(var l=o,c=Array.isArray(l),u=0,l=c?l:l[Symbol.iterator]();;){var d;if(c){if(u>=l.length)break;d=l[u++]}else{if(u=l.next(),u.done)break;d=u.value}var h=d;this._deselectRow(h,!0)}},u.prototype.registerModule("selectRow",W);var U=function(e){this.table=e,this.sortList=[],this.changed=!1};U.prototype.initializeColumn=function(e,t){var o,i,n=this,s=!1;switch(_typeof(e.definition.sorter)){case"string":n.sorters[e.definition.sorter]?s=n.sorters[e.definition.sorter]:console.warn("Sort Error - No such sorter found: ",e.definition.sorter);break;case"function":s=e.definition.sorter}e.modules.sort={sorter:s,dir:"none",params:e.definition.sorterParams||{},startingDir:e.definition.headerSortStartingDir||"asc",tristate:void 0!==e.definition.headerSortTristate?e.definition.headerSortTristate:this.table.options.headerSortTristate},(void 0===e.definition.headerSort?!1!==this.table.options.headerSort:!1!==e.definition.headerSort)&&(o=e.getElement(),o.classList.add("tabulator-sortable"),i=document.createElement("div"),i.classList.add("tabulator-arrow"),t.appendChild(i),o.addEventListener("click",function(t){var o="",i=[],s=!1
-;if(e.modules.sort){if(e.modules.sort.tristate)o="none"==e.modules.sort.dir?e.modules.sort.startingDir:e.modules.sort.dir==e.modules.sort.startingDir?"asc"==e.modules.sort.dir?"desc":"asc":"none";else switch(e.modules.sort.dir){case"asc":o="desc";break;case"desc":o="asc";break;default:o=e.modules.sort.startingDir}n.table.options.columnHeaderSortMulti&&(t.shiftKey||t.ctrlKey)?(i=n.getSort(),s=i.findIndex(function(t){return t.field===e.getField()}),s>-1?(i[s].dir=o,s!=i.length-1&&(s=i.splice(s,1)[0],"none"!=o&&i.push(s))):"none"!=o&&i.push({column:e,dir:o}),n.setSort(i)):"none"==o?n.clear():n.setSort(e,o),n.table.rowManager.sorterRefresh(!n.sortList.length)}}))},U.prototype.hasChanged=function(){var e=this.changed;return this.changed=!1,e},U.prototype.getSort=function(){var e=this,t=[];return e.sortList.forEach(function(e){e.column&&t.push({column:e.column.getComponent(),field:e.column.getField(),dir:e.dir})}),t},U.prototype.setSort=function(e,t){var o=this,i=[];Array.isArray(e)||(e=[{column:e,dir:t}]),e.forEach(function(e){var t;t=o.table.columnManager.findColumn(e.column),t?(e.column=t,i.push(e),o.changed=!0):console.warn("Sort Warning - Sort field does not exist and is being ignored: ",e.column)}),o.sortList=i,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.sort&&this.table.modules.persistence.save("sort")},U.prototype.clear=function(){this.setSort([])},U.prototype.findSorter=function(e){var t,o=this.table.rowManager.activeRows[0],i="string";if(o&&(o=o.getData(),e.getField()))switch(t=e.getFieldValue(o),void 0===t?"undefined":_typeof(t)){case"undefined":i="string";break;case"boolean":i="boolean";break;default:isNaN(t)||""===t?t.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)&&(i="alphanum"):i="number"}return this.sorters[i]},U.prototype.sort=function(e){var t=this,o=this.table.options.sortOrderReverse?t.sortList.slice().reverse():t.sortList,i=[];t.table.options.dataSorting&&t.table.options.dataSorting.call(t.table,t.getSort()),t.clearColumnHeaders(),t.table.options.ajaxSorting?o.forEach(function(e,o){t.setColumnHeader(e.column,e.dir)}):(o.forEach(function(e,o){var n=e.column.modules.sort;e.column&&n&&(n.sorter||(n.sorter=t.findSorter(e.column)),e.params="function"==typeof n.params?n.params(e.column.getComponent(),e.dir):n.params,i.push(e)),t.setColumnHeader(e.column,e.dir)}),i.length&&t._sortItems(e,i)),t.table.options.dataSorted&&t.table.options.dataSorted.call(t.table,t.getSort(),t.table.rowManager.getComponents("active"))},U.prototype.clearColumnHeaders=function(){this.table.columnManager.getRealColumns().forEach(function(e){e.modules.sort&&(e.modules.sort.dir="none",e.getElement().setAttribute("aria-sort","none"))})},U.prototype.setColumnHeader=function(e,t){e.modules.sort.dir=t,e.getElement().setAttribute("aria-sort",t)},U.prototype._sortItems=function(e,t){var o=this,i=t.length-1;e.sort(function(e,n){for(var s,r=i;r>=0;r--){var a=t[r];if(0!==(s=o._sortRow(e,n,a.column,a.dir,a.params)))break}return s})},U.prototype._sortRow=function(e,t,o,i,n){var s,r,a="asc"==i?e:t,l="asc"==i?t:e;return e=o.getFieldValue(a.getData()),t=o.getFieldValue(l.getData()),e=void 0!==e?e:"",t=void 0!==t?t:"",s=a.getComponent(),r=l.getComponent(),o.modules.sort.sorter.call(this,e,t,s,r,o.getComponent(),i,n)},U.prototype.sorters={number:function(e,t,o,i,n,s,r){var a=r.alignEmptyValues,l=r.decimalSeparator||".",c=r.thousandSeparator||",",u=0;if(e=parseFloat(String(e).split(c).join("").split(l).join(".")),t=parseFloat(String(t).split(c).join("").split(l).join(".")),isNaN(e))u=isNaN(t)?0:-1;else{if(!isNaN(t))return e-t;u=1}return("top"===a&&"desc"===s||"bottom"===a&&"asc"===s)&&(u*=-1),u},string:function(e,t,o,i,n,s,r){var a,l=r.alignEmptyValues,c=0;if(e){if(t){switch(_typeof(r.locale)){case"boolean":r.locale&&(a=this.table.modules.localize.getLocale());break;case"string":a=r.locale}return String(e).toLowerCase().localeCompare(String(t).toLowerCase(),a)}c=1}else c=t?-1:0;return("top"===l&&"desc"===s||"bottom"===l&&"asc"===s)&&(c*=-1),c},date:function(e,t,o,i,n,s,r){return r.format||(r.format="DD/MM/YYYY"),this.sorters.datetime.call(this,e,t,o,i,n,s,r)},time:function(e,t,o,i,n,s,r){return r.format||(r.format="hh:mm"),this.sorters.datetime.call(this,e,t,o,i,n,s,r)},datetime:function(e,t,o,i,n,s,r){var a=r.format||"DD/MM/YYYY hh:mm:ss",l=r.alignEmptyValues,c=0;if("undefined"!=typeof moment){if(e=moment(e,a),t=moment(t,a),e.isValid()){if(t.isValid())return e-t;c=1}else c=t.isValid()?-1:0;return("top"===l&&"desc"===s||"bottom"===l&&"asc"===s)&&(c*=-1),c}console.error("Sort Error - 'datetime' sorter is dependant on moment.js")},boolean:function(e,t,o,i,n,s,r){return(!0===e||"true"===e||"True"===e||1===e?1:0)-(!0===t||"true"===t||"True"===t||1===t?1:0)},array:function(e,t,o,i,n,s,r){function a(e){switch(u){case"length":return e.length;case"sum":return e.reduce(function(e,t){return e+t});case"max":return Math.max.apply(null,e);case"min":return Math.min.apply(null,e);case"avg":return e.reduce(function(e,t){return e+t})/e.length}}var l=0,c=0,u=r.type||"length",d=r.alignEmptyValues,h=0;if(Array.isArray(e)){if(Array.isArray(t))return l=e?a(e):0,c=t?a(t):0,l-c;d=1}else d=Array.isArray(t)?-1:0;return("top"===d&&"desc"===s||"bottom"===d&&"asc"===s)&&(h*=-1),h},exists:function(e,t,o,i,n,s,r){return(void 0===e?0:1)-(void 0===t?0:1)},alphanum:function(e,t,o,i,n,s,r){var a,l,c,u,d,h=0,p=/(\d+)|(\D+)/g,m=/\d/,f=r.alignEmptyValues,g=0;if(e||0===e){if(t||0===t){if(isFinite(e)&&isFinite(t))return e-t;if(a=String(e).toLowerCase(),l=String(t).toLowerCase(),a===l)return 0;if(!m.test(a)||!m.test(l))return a>l?1:-1;for(a=a.match(p),l=l.match(p),d=a.length>l.length?l.length:a.length;h<d;)if(c=a[h],u=l[h++],c!==u)return isFinite(c)&&isFinite(u)?("0"===c.charAt(0)&&(c="."+c),"0"===u.charAt(0)&&(u="."+u),c-u):c>u?1:-1;return a.length>l.length}g=1}else g=t||0===t?-1:0;return("top"===f&&"desc"===s||"bottom"===f&&"asc"===s)&&(g*=-1),g}},u.prototype.registerModule("sort",U);var Y=function(e){this.table=e};return Y.prototype.initializeColumn=function(e){var t,o=this,i=[];e.definition.validator&&(Array.isArray(e.definition.validator)?e.definition.validator.forEach(function(e){(t=o._extractValidator(e))&&i.push(t)}):(t=this._extractValidator(e.definition.validator))&&i.push(t),e.modules.validate=!!i.length&&i)},Y.prototype._extractValidator=function(e){var t,o,i;switch(void 0===e?"undefined":_typeof(e)){case"string":return i=e.indexOf(":"),i>-1?(t=e.substring(0,i),o=e.substring(i+1)):t=e,this._buildValidator(t,o);case"function":return this._buildValidator(e);case"object":return this._buildValidator(e.type,e.parameters)}},Y.prototype._buildValidator=function(e,t){var o="function"==typeof e?e:this.validators[e];return o?{type:"function"==typeof e?"function":e,func:o,params:t}:(console.warn("Validator Setup Error - No matching validator found:",e),!1)},Y.prototype.validate=function(e,t,o){var i=this,n=[];return e&&e.forEach(function(e){e.func.call(i,t,o,e.params)||n.push({type:e.type,parameters:e.params})}),!n.length||n},Y.prototype.validators={integer:function(e,t,o){return""===t||null===t||void 0===t||"number"==typeof(t=Number(t))&&isFinite(t)&&Math.floor(t)===t},float:function(e,t,o){return""===t||null===t||void 0===t||"number"==typeof(t=Number(t))&&isFinite(t)&&t%1!=0},numeric:function(e,t,o){return""===t||null===t||void 0===t||!isNaN(t)},string:function(e,t,o){return""===t||null===t||void 0===t||isNaN(t)},max:function(e,t,o){return""===t||null===t||void 0===t||parseFloat(t)<=o},min:function(e,t,o){return""===t||null===t||void 0===t||parseFloat(t)>=o},minLength:function(e,t,o){return""===t||null===t||void 0===t||String(t).length>=o},maxLength:function(e,t,o){return""===t||null===t||void 0===t||String(t).length<=o},in:function(e,t,o){return""===t||null===t||void 0===t||("string"==typeof o&&(o=o.split("|")),""===t||o.indexOf(t)>-1)},regex:function(e,t,o){return""===t||null===t||void 0===t||new RegExp(o).test(t)},unique:function(e,t,o){if(""===t||null===t||void 0===t)return!0;var i=!0,n=e.getData(),s=e.getColumn()._getSelf();return this.table.rowManager.rows.forEach(function(e){var o=e.getData();o!==n&&t==s.getFieldValue(o)&&(i=!1)}),i},required:function(e,t,o){return""!==t&&null!==t&&void 0!==t}},u.prototype.registerModule("validate",Y),u});
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-
-'use strict';
-
-// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-if (!Array.prototype.findIndex) {
-
- Object.defineProperty(Array.prototype, 'findIndex', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
- // b. Let kValue be ? Get(O, Pk).
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
- // d. If testResult is true, return k.
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return k;
- }
-
- // e. Increase k by 1.
-
- k++;
- }
-
- // 7. Return -1.
-
- return -1;
- }
-
- });
-}
-
-// https://tc39.github.io/ecma262/#sec-array.prototype.find
-
-if (!Array.prototype.find) {
-
- Object.defineProperty(Array.prototype, 'find', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
- // b. Let kValue be ? Get(O, Pk).
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
- // d. If testResult is true, return kValue.
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return kValue;
- }
-
- // e. Increase k by 1.
-
- k++;
- }
-
- // 7. Return undefined.
-
- return undefined;
- }
-
- });
-}
-
-var ColumnManager = function ColumnManager(table) {
-
- this.table = table; //hold parent table
-
- this.blockHozScrollEvent = false;
-
- this.headersElement = this.createHeadersElement();
-
- this.element = this.createHeaderElement(); //containing element
-
- this.rowManager = null; //hold row manager object
-
- this.columns = []; // column definition object
-
- this.columnsByIndex = []; //columns by index
-
- this.columnsByField = {}; //columns by field
-
- this.scrollLeft = 0;
-
- this.element.insertBefore(this.headersElement, this.element.firstChild);
-};
-
-////////////// Setup Functions /////////////////
-
-
-ColumnManager.prototype.createHeadersElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-headers");
-
- return el;
-};
-
-ColumnManager.prototype.createHeaderElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-header");
-
- if (!this.table.options.headerVisible) {
-
- el.classList.add("tabulator-header-hidden");
- }
-
- return el;
-};
-
-ColumnManager.prototype.initialize = function () {
-
- var self = this;
-
- //scroll body along with header
-
- // self.element.addEventListener("scroll", function(e){
-
- // if(!self.blockHozScrollEvent){
-
- // self.table.rowManager.scrollHorizontal(self.element.scrollLeft);
-
- // }
-
- // });
-};
-
-//link to row manager
-
-ColumnManager.prototype.setRowManager = function (manager) {
-
- this.rowManager = manager;
-};
-
-//return containing element
-
-ColumnManager.prototype.getElement = function () {
-
- return this.element;
-};
-
-//return header containing element
-
-ColumnManager.prototype.getHeadersElement = function () {
-
- return this.headersElement;
-};
-
-// ColumnManager.prototype.tempScrollBlock = function(){
-
-// clearTimeout(this.blockHozScrollEvent);
-
-// this.blockHozScrollEvent = setTimeout(() => {this.blockHozScrollEvent = false;}, 50);
-
-// }
-
-
-//scroll horizontally to match table body
-
-ColumnManager.prototype.scrollHorizontal = function (left) {
-
- var hozAdjust = 0,
- scrollWidth = this.element.scrollWidth - this.table.element.clientWidth;
-
- // this.tempScrollBlock();
-
- this.element.scrollLeft = left;
-
- //adjust for vertical scrollbar moving table when present
-
- if (left > scrollWidth) {
-
- hozAdjust = left - scrollWidth;
-
- this.element.style.marginLeft = -hozAdjust + "px";
- } else {
-
- this.element.style.marginLeft = 0;
- }
-
- //keep frozen columns fixed in position
-
- //this._calcFrozenColumnsPos(hozAdjust + 3);
-
-
- this.scrollLeft = left;
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.scrollHorizontal();
- }
-};
-
-///////////// Column Setup Functions /////////////
-
-
-ColumnManager.prototype.generateColumnsFromRowData = function (data) {
-
- var cols = [],
- row,
- sorter;
-
- if (data && data.length) {
-
- row = data[0];
-
- for (var key in row) {
-
- var col = {
-
- field: key,
-
- title: key
-
- };
-
- var value = row[key];
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
-
- case "undefined":
-
- sorter = "string";
-
- break;
-
- case "boolean":
-
- sorter = "boolean";
-
- break;
-
- case "object":
-
- if (Array.isArray(value)) {
-
- sorter = "array";
- } else {
-
- sorter = "string";
- }
-
- break;
-
- default:
-
- if (!isNaN(value) && value !== "") {
-
- sorter = "number";
- } else {
-
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
-
- sorter = "alphanum";
- } else {
-
- sorter = "string";
- }
- }
-
- break;
-
- }
-
- col.sorter = sorter;
-
- cols.push(col);
- }
-
- this.table.options.columns = cols;
-
- this.setColumns(this.table.options.columns);
- }
-};
-
-ColumnManager.prototype.setColumns = function (cols, row) {
-
- var self = this;
-
- while (self.headersElement.firstChild) {
- self.headersElement.removeChild(self.headersElement.firstChild);
- }self.columns = [];
-
- self.columnsByIndex = [];
-
- self.columnsByField = {};
-
- //reset frozen columns
-
- if (self.table.modExists("frozenColumns")) {
-
- self.table.modules.frozenColumns.reset();
- }
-
- cols.forEach(function (def, i) {
-
- self._addColumn(def);
- });
-
- self._reIndexColumns();
-
- if (self.table.options.responsiveLayout && self.table.modExists("responsiveLayout", true)) {
-
- self.table.modules.responsiveLayout.initialize();
- }
-
- self.redraw(true);
-};
-
-ColumnManager.prototype._addColumn = function (definition, before, nextToColumn) {
-
- var column = new Column(definition, this),
- colEl = column.getElement(),
- index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
-
- if (nextToColumn && index > -1) {
-
- var parentIndex = this.columns.indexOf(nextToColumn.getTopColumn());
-
- var nextEl = nextToColumn.getElement();
-
- if (before) {
-
- this.columns.splice(parentIndex, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl);
- } else {
-
- this.columns.splice(parentIndex + 1, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl.nextSibling);
- }
- } else {
-
- if (before) {
-
- this.columns.unshift(column);
-
- this.headersElement.insertBefore(column.getElement(), this.headersElement.firstChild);
- } else {
-
- this.columns.push(column);
-
- this.headersElement.appendChild(column.getElement());
- }
-
- column.columnRendered();
- }
-
- return column;
-};
-
-ColumnManager.prototype.registerColumnField = function (col) {
-
- if (col.definition.field) {
-
- this.columnsByField[col.definition.field] = col;
- }
-};
-
-ColumnManager.prototype.registerColumnPosition = function (col) {
-
- this.columnsByIndex.push(col);
-};
-
-ColumnManager.prototype._reIndexColumns = function () {
-
- this.columnsByIndex = [];
-
- this.columns.forEach(function (column) {
-
- column.reRegisterPosition();
- });
-};
-
-//ensure column headers take up the correct amount of space in column groups
-
-ColumnManager.prototype._verticalAlignHeaders = function () {
-
- var self = this,
- minHeight = 0;
-
- self.columns.forEach(function (column) {
-
- var height;
-
- column.clearVerticalAlign();
-
- height = column.getHeight();
-
- if (height > minHeight) {
-
- minHeight = height;
- }
- });
-
- self.columns.forEach(function (column) {
-
- column.verticalAlign(self.table.options.columnHeaderVertAlign, minHeight);
- });
-
- self.rowManager.adjustTableSize();
-};
-
-//////////////// Column Details /////////////////
-
-
-ColumnManager.prototype.findColumn = function (subject) {
-
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Column) {
-
- //subject is column element
-
- return subject;
- } else if (subject instanceof ColumnComponent) {
-
- //subject is public column component
-
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
-
- //subject is a HTML element of the column header
-
- var match = self.columns.find(function (column) {
-
- return column.element === subject;
- });
-
- return match || false;
- }
- } else {
-
- //subject should be treated as the field name of the column
-
- return this.columnsByField[subject] || false;
- }
-
- //catch all for any other type of input
-
-
- return false;
-};
-
-ColumnManager.prototype.getColumnByField = function (field) {
-
- return this.columnsByField[field];
-};
-
-ColumnManager.prototype.getColumnsByFieldRoot = function (root) {
- var _this = this;
-
- var matches = [];
-
- Object.keys(this.columnsByField).forEach(function (field) {
-
- var fieldRoot = field.split(".")[0];
-
- if (fieldRoot === root) {
-
- matches.push(_this.columnsByField[field]);
- }
- });
-
- return matches;
-};
-
-ColumnManager.prototype.getColumnByIndex = function (index) {
-
- return this.columnsByIndex[index];
-};
-
-ColumnManager.prototype.getFirstVisibileColumn = function (index) {
-
- var index = this.columnsByIndex.findIndex(function (col) {
-
- return col.visible;
- });
-
- return index > -1 ? this.columnsByIndex[index] : false;
-};
-
-ColumnManager.prototype.getColumns = function () {
-
- return this.columns;
-};
-
-ColumnManager.prototype.findColumnIndex = function (column) {
-
- return this.columnsByIndex.findIndex(function (col) {
-
- return column === col;
- });
-};
-
-//return all columns that are not groups
-
-ColumnManager.prototype.getRealColumns = function () {
-
- return this.columnsByIndex;
-};
-
-//travers across columns and call action
-
-ColumnManager.prototype.traverse = function (callback) {
-
- var self = this;
-
- self.columnsByIndex.forEach(function (column, i) {
-
- callback(column, i);
- });
-};
-
-//get defintions of actual columns
-
-ColumnManager.prototype.getDefinitions = function (active) {
-
- var self = this,
- output = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- if (!active || active && column.visible) {
-
- output.push(column.getDefinition());
- }
- });
-
- return output;
-};
-
-//get full nested definition tree
-
-ColumnManager.prototype.getDefinitionTree = function () {
-
- var self = this,
- output = [];
-
- self.columns.forEach(function (column) {
-
- output.push(column.getDefinition(true));
- });
-
- return output;
-};
-
-ColumnManager.prototype.getComponents = function (structured) {
-
- var self = this,
- output = [],
- columns = structured ? self.columns : self.columnsByIndex;
-
- columns.forEach(function (column) {
-
- output.push(column.getComponent());
- });
-
- return output;
-};
-
-ColumnManager.prototype.getWidth = function () {
-
- var width = 0;
-
- this.columnsByIndex.forEach(function (column) {
-
- if (column.visible) {
-
- width += column.getWidth();
- }
- });
-
- return width;
-};
-
-ColumnManager.prototype.moveColumn = function (from, to, after) {
-
- this.moveColumnActual(from, to, after);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- to.element.parentNode.insertBefore(from.element, to.element);
-
- if (after) {
-
- to.element.parentNode.insertBefore(to.element, from.element);
- }
-
- this._verticalAlignHeaders();
-
- this.table.rowManager.reinitialize();
-};
-
-ColumnManager.prototype.moveColumnActual = function (from, to, after) {
-
- if (from.parent.isGroup) {
-
- this._moveColumnInArray(from.parent.columns, from, to, after);
- } else {
-
- this._moveColumnInArray(this.columns, from, to, after);
- }
-
- this._moveColumnInArray(this.columnsByIndex, from, to, after, true);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.options.columnMoved) {
-
- this.table.options.columnMoved.call(this.table, from.getComponent(), this.table.columnManager.getComponents());
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-};
-
-ColumnManager.prototype._moveColumnInArray = function (columns, from, to, after, updateRows) {
-
- var fromIndex = columns.indexOf(from),
- toIndex;
-
- if (fromIndex > -1) {
-
- columns.splice(fromIndex, 1);
-
- toIndex = columns.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
-
- toIndex = toIndex + 1;
- }
- } else {
-
- toIndex = fromIndex;
- }
-
- columns.splice(toIndex, 0, from);
-
- if (updateRows) {
-
- this.table.rowManager.rows.forEach(function (row) {
-
- if (row.cells.length) {
-
- var cell = row.cells.splice(fromIndex, 1)[0];
-
- row.cells.splice(toIndex, 0, cell);
- }
- });
- }
- }
-};
-
-ColumnManager.prototype.scrollToColumn = function (column, position, ifVisible) {
- var _this2 = this;
-
- var left = 0,
- offset = 0,
- adjust = 0,
- colEl = column.getElement();
-
- return new Promise(function (resolve, reject) {
-
- if (typeof position === "undefined") {
-
- position = _this2.table.options.scrollToColumnPosition;
- }
-
- if (typeof ifVisible === "undefined") {
-
- ifVisible = _this2.table.options.scrollToColumnIfVisible;
- }
-
- if (column.visible) {
-
- //align to correct position
-
- switch (position) {
-
- case "middle":
-
- case "center":
-
- adjust = -_this2.element.clientWidth / 2;
-
- break;
-
- case "right":
-
- adjust = colEl.clientWidth - _this2.headersElement.clientWidth;
-
- break;
-
- }
-
- //check column visibility
-
- if (!ifVisible) {
-
- offset = colEl.offsetLeft;
-
- if (offset > 0 && offset + colEl.offsetWidth < _this2.element.clientWidth) {
-
- return false;
- }
- }
-
- //calculate scroll position
-
- left = colEl.offsetLeft + _this2.element.scrollLeft + adjust;
-
- left = Math.max(Math.min(left, _this2.table.rowManager.element.scrollWidth - _this2.table.rowManager.element.clientWidth), 0);
-
- _this2.table.rowManager.scrollHorizontal(left);
-
- _this2.scrollHorizontal(left);
-
- resolve();
- } else {
-
- console.warn("Scroll Error - Column not visible");
-
- reject("Scroll Error - Column not visible");
- }
- });
-};
-
-//////////////// Cell Management /////////////////
-
-
-ColumnManager.prototype.generateCells = function (row) {
-
- var self = this;
-
- var cells = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- cells.push(column.generateCell(row));
- });
-
- return cells;
-};
-
-//////////////// Column Management /////////////////
-
-
-ColumnManager.prototype.getFlexBaseWidth = function () {
-
- var self = this,
- totalWidth = self.table.element.clientWidth,
- //table element width
-
- fixedWidth = 0;
-
- //adjust for vertical scrollbar if present
-
- if (self.rowManager.element.scrollHeight > self.rowManager.element.clientHeight) {
-
- totalWidth -= self.rowManager.element.offsetWidth - self.rowManager.element.clientWidth;
- }
-
- this.columnsByIndex.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width || 0;
-
- minWidth = typeof column.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(column.minWidth);
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
- }
- });
-
- return fixedWidth;
-};
-
-ColumnManager.prototype.addColumn = function (definition, before, nextToColumn) {
- var _this3 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this3._addColumn(definition, before, nextToColumn);
-
- _this3._reIndexColumns();
-
- if (_this3.table.options.responsiveLayout && _this3.table.modExists("responsiveLayout", true)) {
-
- _this3.table.modules.responsiveLayout.initialize();
- }
-
- if (_this3.table.modExists("columnCalcs")) {
-
- _this3.table.modules.columnCalcs.recalc(_this3.table.rowManager.activeRows);
- }
-
- _this3.redraw();
-
- if (_this3.table.modules.layout.getMode() != "fitColumns") {
-
- column.reinitializeWidth();
- }
-
- _this3._verticalAlignHeaders();
-
- _this3.table.rowManager.reinitialize();
-
- resolve(column);
- });
-};
-
-//remove column from system
-
-ColumnManager.prototype.deregisterColumn = function (column) {
-
- var field = column.getField(),
- index;
-
- //remove from field list
-
- if (field) {
-
- delete this.columnsByField[field];
- }
-
- //remove from index list
-
- index = this.columnsByIndex.indexOf(column);
-
- if (index > -1) {
-
- this.columnsByIndex.splice(index, 1);
- }
-
- //remove from column list
-
- index = this.columns.indexOf(column);
-
- if (index > -1) {
-
- this.columns.splice(index, 1);
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- this.redraw();
-};
-
-//redraw columns
-
-ColumnManager.prototype.redraw = function (force) {
-
- if (force) {
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
-
- this._verticalAlignHeaders();
- }
-
- this.table.rowManager.resetScroll();
-
- this.table.rowManager.reinitialize();
- }
-
- if (["fitColumns", "fitDataStretch"].indexOf(this.table.modules.layout.getMode()) > -1) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (force) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (force) {
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.redraw();
- }
- }
-
- this.table.footerManager.redraw();
-};
-
-//public column object
-var ColumnComponent = function ColumnComponent(column) {
- this._column = column;
- this.type = "ColumnComponent";
-};
-
-ColumnComponent.prototype.getElement = function () {
- return this._column.getElement();
-};
-
-ColumnComponent.prototype.getDefinition = function () {
- return this._column.getDefinition();
-};
-
-ColumnComponent.prototype.getField = function () {
- return this._column.getField();
-};
-
-ColumnComponent.prototype.getCells = function () {
- var cells = [];
-
- this._column.cells.forEach(function (cell) {
- cells.push(cell.getComponent());
- });
-
- return cells;
-};
-
-ColumnComponent.prototype.getVisibility = function () {
- return this._column.visible;
-};
-
-ColumnComponent.prototype.show = function () {
- if (this._column.isGroup) {
- this._column.columns.forEach(function (column) {
- column.show();
- });
- } else {
- this._column.show();
- }
-};
-
-ColumnComponent.prototype.hide = function () {
- if (this._column.isGroup) {
- this._column.columns.forEach(function (column) {
- column.hide();
- });
- } else {
- this._column.hide();
- }
-};
-
-ColumnComponent.prototype.toggle = function () {
- if (this._column.visible) {
- this.hide();
- } else {
- this.show();
- }
-};
-
-ColumnComponent.prototype.delete = function () {
- return this._column.delete();
-};
-
-ColumnComponent.prototype.getSubColumns = function () {
- var output = [];
-
- if (this._column.columns.length) {
- this._column.columns.forEach(function (column) {
- output.push(column.getComponent());
- });
- }
-
- return output;
-};
-
-ColumnComponent.prototype.getParentColumn = function () {
- return this._column.parent instanceof Column ? this._column.parent.getComponent() : false;
-};
-
-ColumnComponent.prototype._getSelf = function () {
- return this._column;
-};
-
-ColumnComponent.prototype.scrollTo = function () {
- return this._column.table.columnManager.scrollToColumn(this._column);
-};
-
-ColumnComponent.prototype.getTable = function () {
- return this._column.table;
-};
-
-ColumnComponent.prototype.headerFilterFocus = function () {
- if (this._column.table.modExists("filter", true)) {
- this._column.table.modules.filter.setHeaderFilterFocus(this._column);
- }
-};
-
-ColumnComponent.prototype.reloadHeaderFilter = function () {
- if (this._column.table.modExists("filter", true)) {
- this._column.table.modules.filter.reloadHeaderFilter(this._column);
- }
-};
-
-ColumnComponent.prototype.getHeaderFilterValue = function () {
- if (this._column.table.modExists("filter", true)) {
- return this._column.table.modules.filter.getHeaderFilterValue(this._column);
- }
-};
-
-ColumnComponent.prototype.setHeaderFilterValue = function (value) {
- if (this._column.table.modExists("filter", true)) {
- this._column.table.modules.filter.setHeaderFilterValue(this._column, value);
- }
-};
-
-ColumnComponent.prototype.move = function (to, after) {
- var toColumn = this._column.table.columnManager.findColumn(to);
-
- if (toColumn) {
- this._column.table.columnManager.moveColumn(this._column, toColumn, after);
- } else {
- console.warn("Move Error - No matching column found:", toColumn);
- }
-};
-
-ColumnComponent.prototype.getNextColumn = function () {
- var nextCol = this._column.nextColumn();
-
- return nextCol ? nextCol.getComponent() : false;
-};
-
-ColumnComponent.prototype.getPrevColumn = function () {
- var prevCol = this._column.prevColumn();
-
- return prevCol ? prevCol.getComponent() : false;
-};
-
-ColumnComponent.prototype.updateDefinition = function (updates) {
- return this._column.updateDefinition(updates);
-};
-
-var Column = function Column(def, parent) {
- var self = this;
-
- this.table = parent.table;
- this.definition = def; //column definition
- this.parent = parent; //hold parent object
- this.type = "column"; //type of element
- this.columns = []; //child columns
- this.cells = []; //cells bound to this column
- this.element = this.createElement(); //column header element
- this.contentElement = false;
- this.titleElement = false;
- this.groupElement = this.createGroupElement(); //column group holder element
- this.isGroup = false;
- this.tooltip = false; //hold column tooltip
- this.hozAlign = ""; //horizontal text alignment
- this.vertAlign = ""; //vert text alignment
-
- //multi dimensional filed handling
- this.field = "";
- this.fieldStructure = "";
- this.getFieldValue = "";
- this.setFieldValue = "";
-
- this.titleFormatterRendered = false;
-
- this.setField(this.definition.field);
-
- if (this.table.options.invalidOptionWarnings) {
- this.checkDefinition();
- }
-
- this.modules = {}; //hold module variables;
-
- this.cellEvents = {
- cellClick: false,
- cellDblClick: false,
- cellContext: false,
- cellTap: false,
- cellDblTap: false,
- cellTapHold: false,
- cellMouseEnter: false,
- cellMouseLeave: false,
- cellMouseOver: false,
- cellMouseOut: false,
- cellMouseMove: false
- };
-
- this.width = null; //column width
- this.widthStyled = ""; //column width prestyled to improve render efficiency
- this.minWidth = null; //column minimum width
- this.minWidthStyled = ""; //column minimum prestyled to improve render efficiency
- this.widthFixed = false; //user has specified a width for this column
-
- this.visible = true; //default visible state
-
- this._mapDepricatedFunctionality();
-
- //initialize column
- if (def.columns) {
-
- this.isGroup = true;
-
- def.columns.forEach(function (def, i) {
- var newCol = new Column(def, self);
- self.attachColumn(newCol);
- });
-
- self.checkColumnVisibility();
- } else {
- parent.registerColumnField(this);
- }
-
- if (def.rowHandle && this.table.options.movableRows !== false && this.table.modExists("moveRow")) {
- this.table.modules.moveRow.setHandle(true);
- }
-
- this._buildHeader();
-
- this.bindModuleColumns();
-};
-
-Column.prototype.createElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
- el.setAttribute("role", "columnheader");
- el.setAttribute("aria-sort", "none");
-
- return el;
-};
-
-Column.prototype.createGroupElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col-group-cols");
-
- return el;
-};
-
-Column.prototype.checkDefinition = function () {
- var _this4 = this;
-
- Object.keys(this.definition).forEach(function (key) {
- if (_this4.defaultOptionList.indexOf(key) === -1) {
- console.warn("Invalid column definition option in '" + (_this4.field || _this4.definition.title) + "' column:", key);
- }
- });
-};
-
-Column.prototype.setField = function (field) {
- this.field = field;
- this.fieldStructure = field ? this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator) : [field] : [];
- this.getFieldValue = this.fieldStructure.length > 1 ? this._getNestedData : this._getFlatData;
- this.setFieldValue = this.fieldStructure.length > 1 ? this._setNestedData : this._setFlatData;
-};
-
-//register column position with column manager
-Column.prototype.registerColumnPosition = function (column) {
- this.parent.registerColumnPosition(column);
-};
-
-//register column position with column manager
-Column.prototype.registerColumnField = function (column) {
- this.parent.registerColumnField(column);
-};
-
-//trigger position registration
-Column.prototype.reRegisterPosition = function () {
- if (this.isGroup) {
- this.columns.forEach(function (column) {
- column.reRegisterPosition();
- });
- } else {
- this.registerColumnPosition(this);
- }
-};
-
-Column.prototype._mapDepricatedFunctionality = function () {
- if (typeof this.definition.hideInHtml !== "undefined") {
- this.definition.htmlOutput = !this.definition.hideInHtml;
- console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput");
- }
-
- if (typeof this.definition.align !== "undefined") {
- this.definition.hozAlign = this.definition.align;
- console.warn("align column definition property is deprecated, you should now use hozAlign");
- }
-};
-
-Column.prototype.setTooltip = function () {
- var self = this,
- def = self.definition;
-
- //set header tooltips
- var tooltip = def.headerTooltip || def.tooltip === false ? def.headerTooltip : self.table.options.tooltipsHeader;
-
- if (tooltip) {
- if (tooltip === true) {
- if (def.field) {
- self.table.modules.localize.bind("columns|" + def.field, function (value) {
- self.element.setAttribute("title", value || def.title);
- });
- } else {
- self.element.setAttribute("title", def.title);
- }
- } else {
- if (typeof tooltip == "function") {
- tooltip = tooltip(self.getComponent());
-
- if (tooltip === false) {
- tooltip = "";
- }
- }
-
- self.element.setAttribute("title", tooltip);
- }
- } else {
- self.element.setAttribute("title", "");
- }
-};
-
-//build header element
-Column.prototype._buildHeader = function () {
- var self = this,
- def = self.definition;
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- }if (def.headerVertical) {
- self.element.classList.add("tabulator-col-vertical");
-
- if (def.headerVertical === "flip") {
- self.element.classList.add("tabulator-col-vertical-flip");
- }
- }
-
- self.contentElement = self._bindEvents();
-
- self.contentElement = self._buildColumnHeaderContent();
-
- self.element.appendChild(self.contentElement);
-
- if (self.isGroup) {
- self._buildGroupHeader();
- } else {
- self._buildColumnHeader();
- }
-
- self.setTooltip();
-
- //set resizable handles
- if (self.table.options.resizableColumns && self.table.modExists("resizeColumns")) {
- self.table.modules.resizeColumns.initializeColumn("header", self, self.element);
- }
-
- //set resizable handles
- if (def.headerFilter && self.table.modExists("filter") && self.table.modExists("edit")) {
- if (typeof def.headerFilterPlaceholder !== "undefined" && def.field) {
- self.table.modules.localize.setHeaderFilterColumnPlaceholder(def.field, def.headerFilterPlaceholder);
- }
-
- self.table.modules.filter.initializeColumn(self);
- }
-
- //set resizable handles
- if (self.table.modExists("frozenColumns")) {
- self.table.modules.frozenColumns.initializeColumn(self);
- }
-
- //set movable column
- if (self.table.options.movableColumns && !self.isGroup && self.table.modExists("moveColumn")) {
- self.table.modules.moveColumn.initializeColumn(self);
- }
-
- //set calcs column
- if ((def.topCalc || def.bottomCalc) && self.table.modExists("columnCalcs")) {
- self.table.modules.columnCalcs.initializeColumn(self);
- }
-
- //handle persistence
- if (self.table.modExists("persistence") && self.table.modules.persistence.config.columns) {
- self.table.modules.persistence.initializeColumn(self);
- }
-
- //update header tooltip on mouse enter
- self.element.addEventListener("mouseenter", function (e) {
- self.setTooltip();
- });
-};
-
-Column.prototype._bindEvents = function () {
-
- var self = this,
- def = self.definition,
- dblTap,
- tapHold,
- tap;
-
- //setup header click event bindings
- if (typeof def.headerClick == "function") {
- self.element.addEventListener("click", function (e) {
- def.headerClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerDblClick == "function") {
- self.element.addEventListener("dblclick", function (e) {
- def.headerDblClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerContext == "function") {
- self.element.addEventListener("contextmenu", function (e) {
- def.headerContext(e, self.getComponent());
- });
- }
-
- //setup header tap event bindings
- if (typeof def.headerTap == "function") {
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- def.headerTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (typeof def.headerDblTap == "function") {
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- def.headerDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (typeof def.headerTapHold == "function") {
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- def.headerTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-
- //store column cell click event bindings
- if (typeof def.cellClick == "function") {
- self.cellEvents.cellClick = def.cellClick;
- }
-
- if (typeof def.cellDblClick == "function") {
- self.cellEvents.cellDblClick = def.cellDblClick;
- }
-
- if (typeof def.cellContext == "function") {
- self.cellEvents.cellContext = def.cellContext;
- }
-
- //store column mouse event bindings
- if (typeof def.cellMouseEnter == "function") {
- self.cellEvents.cellMouseEnter = def.cellMouseEnter;
- }
-
- if (typeof def.cellMouseLeave == "function") {
- self.cellEvents.cellMouseLeave = def.cellMouseLeave;
- }
-
- if (typeof def.cellMouseOver == "function") {
- self.cellEvents.cellMouseOver = def.cellMouseOver;
- }
-
- if (typeof def.cellMouseOut == "function") {
- self.cellEvents.cellMouseOut = def.cellMouseOut;
- }
-
- if (typeof def.cellMouseMove == "function") {
- self.cellEvents.cellMouseMove = def.cellMouseMove;
- }
-
- //setup column cell tap event bindings
- if (typeof def.cellTap == "function") {
- self.cellEvents.cellTap = def.cellTap;
- }
-
- if (typeof def.cellDblTap == "function") {
- self.cellEvents.cellDblTap = def.cellDblTap;
- }
-
- if (typeof def.cellTapHold == "function") {
- self.cellEvents.cellTapHold = def.cellTapHold;
- }
-
- //setup column cell edit callbacks
- if (typeof def.cellEdited == "function") {
- self.cellEvents.cellEdited = def.cellEdited;
- }
-
- if (typeof def.cellEditing == "function") {
- self.cellEvents.cellEditing = def.cellEditing;
- }
-
- if (typeof def.cellEditCancelled == "function") {
- self.cellEvents.cellEditCancelled = def.cellEditCancelled;
- }
-};
-
-//build header element for header
-Column.prototype._buildColumnHeader = function () {
- var self = this,
- def = self.definition,
- table = self.table,
- sortable;
-
- //set column sorter
- if (table.modExists("sort")) {
- table.modules.sort.initializeColumn(self, self.contentElement);
- }
-
- //set column header context menu
- if ((def.headerContextMenu || def.headerMenu) && table.modExists("menu")) {
- table.modules.menu.initializeColumnHeader(self);
- }
-
- //set column formatter
- if (table.modExists("format")) {
- table.modules.format.initializeColumn(self);
- }
-
- //set column editor
- if (typeof def.editor != "undefined" && table.modExists("edit")) {
- table.modules.edit.initializeColumn(self);
- }
-
- //set colum validator
- if (typeof def.validator != "undefined" && table.modExists("validate")) {
- table.modules.validate.initializeColumn(self);
- }
-
- //set column mutator
- if (table.modExists("mutator")) {
- table.modules.mutator.initializeColumn(self);
- }
-
- //set column accessor
- if (table.modExists("accessor")) {
- table.modules.accessor.initializeColumn(self);
- }
-
- //set respoviveLayout
- if (_typeof(table.options.responsiveLayout) && table.modExists("responsiveLayout")) {
- table.modules.responsiveLayout.initializeColumn(self);
- }
-
- //set column visibility
- if (typeof def.visible != "undefined") {
- if (def.visible) {
- self.show(true);
- } else {
- self.hide(true);
- }
- }
-
- //asign additional css classes to column header
- if (def.cssClass) {
- var classeNames = def.cssClass.split(" ");
- classeNames.forEach(function (className) {
- self.element.classList.add(className);
- });
- }
-
- if (def.field) {
- this.element.setAttribute("tabulator-field", def.field);
- }
-
- //set min width if present
- self.setMinWidth(typeof def.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(def.minWidth));
-
- self.reinitializeWidth();
-
- //set tooltip if present
- self.tooltip = self.definition.tooltip || self.definition.tooltip === false ? self.definition.tooltip : self.table.options.tooltips;
-
- //set orizontal text alignment
- self.hozAlign = typeof self.definition.hozAlign == "undefined" ? self.table.options.cellHozAlign : self.definition.hozAlign;
- self.vertAlign = typeof self.definition.vertAlign == "undefined" ? self.table.options.cellVertAlign : self.definition.vertAlign;
-};
-
-Column.prototype._buildColumnHeaderContent = function () {
- var def = this.definition,
- table = this.table;
-
- var contentElement = document.createElement("div");
- contentElement.classList.add("tabulator-col-content");
-
- this.titleElement = this._buildColumnHeaderTitle();
-
- contentElement.appendChild(this.titleElement);
-
- return contentElement;
-};
-
-//build title element of column
-Column.prototype._buildColumnHeaderTitle = function () {
- var self = this,
- def = self.definition,
- table = self.table,
- title;
-
- var titleHolderElement = document.createElement("div");
- titleHolderElement.classList.add("tabulator-col-title");
-
- if (def.editableTitle) {
- var titleElement = document.createElement("input");
- titleElement.classList.add("tabulator-title-editor");
-
- titleElement.addEventListener("click", function (e) {
- e.stopPropagation();
- titleElement.focus();
- });
-
- titleElement.addEventListener("change", function () {
- def.title = titleElement.value;
- table.options.columnTitleChanged.call(self.table, self.getComponent());
- });
-
- titleHolderElement.appendChild(titleElement);
-
- if (def.field) {
- table.modules.localize.bind("columns|" + def.field, function (text) {
- titleElement.value = text || def.title || " ";
- });
- } else {
- titleElement.value = def.title || " ";
- }
- } else {
- if (def.field) {
- table.modules.localize.bind("columns|" + def.field, function (text) {
- self._formatColumnHeaderTitle(titleHolderElement, text || def.title || " ");
- });
- } else {
- self._formatColumnHeaderTitle(titleHolderElement, def.title || " ");
- }
- }
-
- return titleHolderElement;
-};
-
-Column.prototype._formatColumnHeaderTitle = function (el, title) {
- var _this5 = this;
-
- var formatter, contents, params, mockCell, onRendered;
-
- if (this.definition.titleFormatter && this.table.modExists("format")) {
-
- formatter = this.table.modules.format.getFormatter(this.definition.titleFormatter);
-
- onRendered = function onRendered(callback) {
- _this5.titleFormatterRendered = callback;
- };
-
- mockCell = {
- getValue: function getValue() {
- return title;
- },
- getElement: function getElement() {
- return el;
- }
- };
-
- params = this.definition.titleFormatterParams || {};
-
- params = typeof params === "function" ? params() : params;
-
- contents = formatter.call(this.table.modules.format, mockCell, params, onRendered);
-
- switch (typeof contents === 'undefined' ? 'undefined' : _typeof(contents)) {
- case "object":
- if (contents instanceof Node) {
- el.appendChild(contents);
- } else {
- el.innerHTML = "";
- console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents);
- }
- break;
- case "undefined":
- case "null":
- el.innerHTML = "";
- break;
- default:
- el.innerHTML = contents;
- }
- } else {
- el.innerHTML = title;
- }
-};
-
-//build header element for column group
-Column.prototype._buildGroupHeader = function () {
- var _this6 = this;
-
- this.element.classList.add("tabulator-col-group");
- this.element.setAttribute("role", "columngroup");
- this.element.setAttribute("aria-title", this.definition.title);
-
- //asign additional css classes to column header
- if (this.definition.cssClass) {
- var classeNames = this.definition.cssClass.split(" ");
- classeNames.forEach(function (className) {
- _this6.element.classList.add(className);
- });
- }
-
- this.element.appendChild(this.groupElement);
-};
-
-//flat field lookup
-Column.prototype._getFlatData = function (data) {
- return data[this.field];
-};
-
-//nested field lookup
-Column.prototype._getNestedData = function (data) {
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length,
- output;
-
- for (var i = 0; i < length; i++) {
-
- dataObj = dataObj[structure[i]];
-
- output = dataObj;
-
- if (!dataObj) {
- break;
- }
- }
-
- return output;
-};
-
-//flat field set
-Column.prototype._setFlatData = function (data, value) {
- if (this.field) {
- data[this.field] = value;
- }
-};
-
-//nested field set
-Column.prototype._setNestedData = function (data, value) {
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length;
-
- for (var i = 0; i < length; i++) {
-
- if (i == length - 1) {
- dataObj[structure[i]] = value;
- } else {
- if (!dataObj[structure[i]]) {
- if (typeof value !== "undefined") {
- dataObj[structure[i]] = {};
- } else {
- break;
- }
- }
-
- dataObj = dataObj[structure[i]];
- }
- }
-};
-
-//attach column to this group
-Column.prototype.attachColumn = function (column) {
- var self = this;
-
- if (self.groupElement) {
- self.columns.push(column);
- self.groupElement.appendChild(column.getElement());
- } else {
- console.warn("Column Warning - Column being attached to another column instead of column group");
- }
-};
-
-//vertically align header in column
-Column.prototype.verticalAlign = function (alignment, height) {
-
- //calculate height of column header and group holder element
- var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : height || this.parent.getHeadersElement().clientHeight;
- // var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : this.parent.getHeadersElement().clientHeight;
-
- this.element.style.height = parentHeight + "px";
-
- if (this.isGroup) {
- this.groupElement.style.minHeight = parentHeight - this.contentElement.offsetHeight + "px";
- }
-
- //vertically align cell contents
- if (!this.isGroup && alignment !== "top") {
- if (alignment === "bottom") {
- this.element.style.paddingTop = this.element.clientHeight - this.contentElement.offsetHeight + "px";
- } else {
- this.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) / 2 + "px";
- }
- }
-
- this.columns.forEach(function (column) {
- column.verticalAlign(alignment);
- });
-};
-
-//clear vertical alignmenet
-Column.prototype.clearVerticalAlign = function () {
- this.element.style.paddingTop = "";
- this.element.style.height = "";
- this.element.style.minHeight = "";
- this.groupElement.style.minHeight = "";
-
- this.columns.forEach(function (column) {
- column.clearVerticalAlign();
- });
-};
-
-Column.prototype.bindModuleColumns = function () {
- //check if rownum formatter is being used on a column
- if (this.definition.formatter == "rownum") {
- this.table.rowManager.rowNumColumn = this;
- }
-};
-
-//// Retreive Column Information ////
-
-//return column header element
-Column.prototype.getElement = function () {
- return this.element;
-};
-
-//return colunm group element
-Column.prototype.getGroupElement = function () {
- return this.groupElement;
-};
-
-//return field name
-Column.prototype.getField = function () {
- return this.field;
-};
-
-//return the first column in a group
-Column.prototype.getFirstColumn = function () {
- if (!this.isGroup) {
- return this;
- } else {
- if (this.columns.length) {
- return this.columns[0].getFirstColumn();
- } else {
- return false;
- }
- }
-};
-
-//return the last column in a group
-Column.prototype.getLastColumn = function () {
- if (!this.isGroup) {
- return this;
- } else {
- if (this.columns.length) {
- return this.columns[this.columns.length - 1].getLastColumn();
- } else {
- return false;
- }
- }
-};
-
-//return all columns in a group
-Column.prototype.getColumns = function () {
- return this.columns;
-};
-
-//return all columns in a group
-Column.prototype.getCells = function () {
- return this.cells;
-};
-
-//retreive the top column in a group of columns
-Column.prototype.getTopColumn = function () {
- if (this.parent.isGroup) {
- return this.parent.getTopColumn();
- } else {
- return this;
- }
-};
-
-//return column definition object
-Column.prototype.getDefinition = function (updateBranches) {
- var colDefs = [];
-
- if (this.isGroup && updateBranches) {
- this.columns.forEach(function (column) {
- colDefs.push(column.getDefinition(true));
- });
-
- this.definition.columns = colDefs;
- }
-
- return this.definition;
-};
-
-//////////////////// Actions ////////////////////
-
-Column.prototype.checkColumnVisibility = function () {
- var visible = false;
-
- this.columns.forEach(function (column) {
- if (column.visible) {
- visible = true;
- }
- });
-
- if (visible) {
- this.show();
- this.parent.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- } else {
- this.hide();
- }
-};
-
-//show column
-Column.prototype.show = function (silent, responsiveToggle) {
- if (!this.visible) {
- this.visible = true;
-
- this.element.style.display = "";
-
- if (this.parent.isGroup) {
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
- cell.show();
- });
-
- if (!this.isGroup && this.width === null) {
- this.reinitializeWidth();
- }
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), true);
- }
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
- }
-};
-
-//hide column
-Column.prototype.hide = function (silent, responsiveToggle) {
- if (this.visible) {
- this.visible = false;
-
- this.element.style.display = "none";
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.parent.isGroup) {
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
- cell.hide();
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- }
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
- }
-};
-
-Column.prototype.matchChildWidths = function () {
- var childWidth = 0;
-
- if (this.contentElement && this.columns.length) {
- this.columns.forEach(function (column) {
- if (column.visible) {
- childWidth += column.getWidth();
- }
- });
-
- this.contentElement.style.maxWidth = childWidth - 1 + "px";
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
- }
-};
-
-Column.prototype.setWidth = function (width) {
- this.widthFixed = true;
- this.setWidthActual(width);
-};
-
-Column.prototype.setWidthActual = function (width) {
- if (isNaN(width)) {
- width = Math.floor(this.table.element.clientWidth / 100 * parseInt(width));
- }
-
- width = Math.max(this.minWidth, width);
-
- this.width = width;
- this.widthStyled = width ? width + "px" : "";
-
- this.element.style.width = this.widthStyled;
-
- if (!this.isGroup) {
- this.cells.forEach(function (cell) {
- cell.setWidth();
- });
- }
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
-
- //set resizable handles
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
-};
-
-Column.prototype.checkCellHeights = function () {
- var rows = [];
-
- this.cells.forEach(function (cell) {
- if (cell.row.heightInitialized) {
- if (cell.row.getElement().offsetParent !== null) {
- rows.push(cell.row);
- cell.row.clearCellHeight();
- } else {
- cell.row.heightInitialized = false;
- }
- }
- });
-
- rows.forEach(function (row) {
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
- row.setCellHeight();
- });
-};
-
-Column.prototype.getWidth = function () {
- var width = 0;
-
- if (this.isGroup) {
- this.columns.forEach(function (column) {
- if (column.visible) {
- width += column.getWidth();
- }
- });
- } else {
- width = this.width;
- }
-
- return width;
-};
-
-Column.prototype.getHeight = function () {
- return this.element.offsetHeight;
-};
-
-Column.prototype.setMinWidth = function (minWidth) {
- this.minWidth = minWidth;
- this.minWidthStyled = minWidth ? minWidth + "px" : "";
-
- this.element.style.minWidth = this.minWidthStyled;
-
- this.cells.forEach(function (cell) {
- cell.setMinWidth();
- });
-};
-
-Column.prototype.delete = function () {
- var _this7 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this7.isGroup) {
- _this7.columns.forEach(function (column) {
- column.delete();
- });
- }
-
- //cancel edit if column is currently being edited
- if (_this7.table.modExists("edit")) {
- if (_this7.table.modules.edit.currentCell.column === _this7) {
- _this7.table.modules.edit.cancelEdit();
- }
- }
-
- var cellCount = _this7.cells.length;
-
- for (var i = 0; i < cellCount; i++) {
- _this7.cells[0].delete();
- }
-
- _this7.element.parentNode.removeChild(_this7.element);
-
- _this7.table.columnManager.deregisterColumn(_this7);
-
- resolve();
- });
-};
-
-Column.prototype.columnRendered = function () {
- if (this.titleFormatterRendered) {
- this.titleFormatterRendered();
- }
-};
-
-//////////////// Cell Management /////////////////
-
-//generate cell for this column
-Column.prototype.generateCell = function (row) {
- var self = this;
-
- var cell = new Cell(self, row);
-
- this.cells.push(cell);
-
- return cell;
-};
-
-Column.prototype.nextColumn = function () {
- var index = this.table.columnManager.findColumnIndex(this);
- return index > -1 ? this._nextVisibleColumn(index + 1) : false;
-};
-
-Column.prototype._nextVisibleColumn = function (index) {
- var column = this.table.columnManager.getColumnByIndex(index);
- return !column || column.visible ? column : this._nextVisibleColumn(index + 1);
-};
-
-Column.prototype.prevColumn = function () {
- var index = this.table.columnManager.findColumnIndex(this);
- return index > -1 ? this._prevVisibleColumn(index - 1) : false;
-};
-
-Column.prototype._prevVisibleColumn = function (index) {
- var column = this.table.columnManager.getColumnByIndex(index);
- return !column || column.visible ? column : this._prevVisibleColumn(index - 1);
-};
-
-Column.prototype.reinitializeWidth = function (force) {
- this.widthFixed = false;
-
- //set width if present
- if (typeof this.definition.width !== "undefined" && !force) {
- this.setWidth(this.definition.width);
- }
-
- //hide header filters to prevent them altering column width
- if (this.table.modExists("filter")) {
- this.table.modules.filter.hideHeaderFilterElements();
- }
-
- this.fitToData();
-
- //show header filters again after layout is complete
- if (this.table.modExists("filter")) {
- this.table.modules.filter.showHeaderFilterElements();
- }
-};
-
-//set column width to maximum cell width
-Column.prototype.fitToData = function () {
- var self = this;
-
- if (!this.widthFixed) {
- this.element.style.width = "";
-
- self.cells.forEach(function (cell) {
- cell.clearWidth();
- });
- }
-
- var maxWidth = this.element.offsetWidth;
-
- if (!self.width || !this.widthFixed) {
- self.cells.forEach(function (cell) {
- var width = cell.getWidth();
-
- if (width > maxWidth) {
- maxWidth = width;
- }
- });
-
- if (maxWidth) {
- self.setWidthActual(maxWidth + 1);
- }
- }
-};
-
-Column.prototype.updateDefinition = function (updates) {
- var _this8 = this;
-
- return new Promise(function (resolve, reject) {
- var definition;
-
- if (!_this8.isGroup) {
- definition = Object.assign({}, _this8.getDefinition());
- definition = Object.assign(definition, updates);
-
- _this8.table.columnManager.addColumn(definition, false, _this8).then(function (column) {
-
- if (definition.field == _this8.field) {
- _this8.field = false; //cleair field name to prevent deletion of duplicate column from arrays
- }
-
- _this8.delete().then(function () {
- resolve(column.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups");
- reject("Column Update Error - The updateDefintion function is only available on columns, not column groups");
- }
- });
-};
-
-Column.prototype.deleteCell = function (cell) {
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
- this.cells.splice(index, 1);
- }
-};
-
-Column.prototype.defaultOptionList = ["title", "field", "columns", "visible", "align", "hozAlign", "vertAlign", "width", "minWidth", "widthGrow", "widthShrink", "resizable", "frozen", "responsive", "tooltip", "cssClass", "rowHandle", "hideInHtml", "print", "htmlOutput", "sorter", "sorterParams", "formatter", "formatterParams", "variableHeight", "editable", "editor", "editorParams", "validator", "mutator", "mutatorParams", "mutatorData", "mutatorDataParams", "mutatorEdit", "mutatorEditParams", "mutatorClipboard", "mutatorClipboardParams", "accessor", "accessorParams", "accessorData", "accessorDataParams", "accessorDownload", "accessorDownloadParams", "accessorClipboard", "accessorClipboardParams", "accessorPrint", "accessorPrintParams", "accessorHtmlOutput", "accessorHtmlOutputParams", "clipboard", "download", "downloadTitle", "topCalc", "topCalcParams", "topCalcFormatter", "topCalcFormatterParams", "bottomCalc", "bottomCalcParams", "bottomCalcFormatter", "bottomCalcFormatterParams", "cellClick", "cellDblClick", "cellContext", "cellTap", "cellDblTap", "cellTapHold", "cellMouseEnter", "cellMouseLeave", "cellMouseOver", "cellMouseOut", "cellMouseMove", "cellEditing", "cellEdited", "cellEditCancelled", "headerSort", "headerSortStartingDir", "headerSortTristate", "headerClick", "headerDblClick", "headerContext", "headerTap", "headerDblTap", "headerTapHold", "headerTooltip", "headerVertical", "editableTitle", "titleFormatter", "titleFormatterParams", "headerFilter", "headerFilterPlaceholder", "headerFilterParams", "headerFilterEmptyCheck", "headerFilterFunc", "headerFilterFuncParams", "headerFilterLiveFilter", "print", "headerContextMenu", "headerMenu", "contextMenu", "formatterPrint", "formatterPrintParams", "formatterClipboard", "formatterClipboardParams", "formatterHtmlOutput", "formatterHtmlOutputParams"];
-
-//////////////// Event Bindings /////////////////
-
-//////////////// Object Generation /////////////////
-Column.prototype.getComponent = function () {
- return new ColumnComponent(this);
-};
-
-var RowManager = function RowManager(table) {
-
- this.table = table;
- this.element = this.createHolderElement(); //containing element
- this.tableElement = this.createTableElement(); //table element
- this.heightFixer = this.createTableElement(); //table element
- this.columnManager = null; //hold column manager object
- this.height = 0; //hold height of table element
-
- this.firstRender = false; //handle first render
- this.renderMode = "virtual"; //current rendering mode
- this.fixedHeight = false; //current rendering mode
-
- this.rows = []; //hold row data objects
- this.activeRows = []; //rows currently available to on display in the table
- this.activeRowsCount = 0; //count of active rows
-
- this.displayRows = []; //rows currently on display in the table
- this.displayRowsCount = 0; //count of display rows
-
- this.scrollTop = 0;
- this.scrollLeft = 0;
-
- this.vDomRowHeight = 20; //approximation of row heights for padding
-
- this.vDomTop = 0; //hold position for first rendered row in the virtual DOM
- this.vDomBottom = 0; //hold possition for last rendered row in the virtual DOM
-
- this.vDomScrollPosTop = 0; //last scroll position of the vDom top;
- this.vDomScrollPosBottom = 0; //last scroll position of the vDom bottom;
-
- this.vDomTopPad = 0; //hold value of padding for top of virtual DOM
- this.vDomBottomPad = 0; //hold value of padding for bottom of virtual DOM
-
- this.vDomMaxRenderChain = 90; //the maximum number of dom elements that can be rendered in 1 go
-
- this.vDomWindowBuffer = 0; //window row buffer before removing elements, to smooth scrolling
-
- this.vDomWindowMinTotalRows = 20; //minimum number of rows to be generated in virtual dom (prevent buffering issues on tables with tall rows)
- this.vDomWindowMinMarginRows = 5; //minimum number of rows to be generated in virtual dom margin
-
- this.vDomTopNewRows = []; //rows to normalize after appending to optimize render speed
- this.vDomBottomNewRows = []; //rows to normalize after appending to optimize render speed
-
- this.rowNumColumn = false; //hold column component for row number column
-
- this.redrawBlock = false; //prevent redraws to allow multiple data manipulations becore continuing
- this.redrawBlockRestoreConfig = false; //store latest redraw function calls for when redraw is needed
- this.redrawBlockRederInPosition = false; //store latest redraw function calls for when redraw is needed
-};
-
-//////////////// Setup Functions /////////////////
-
-RowManager.prototype.createHolderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-tableHolder");
- el.setAttribute("tabindex", 0);
-
- return el;
-};
-
-RowManager.prototype.createTableElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-table");
-
- return el;
-};
-
-//return containing element
-RowManager.prototype.getElement = function () {
- return this.element;
-};
-
-//return table element
-RowManager.prototype.getTableElement = function () {
- return this.tableElement;
-};
-
-//return position of row in table
-RowManager.prototype.getRowPosition = function (row, active) {
- if (active) {
- return this.activeRows.indexOf(row);
- } else {
- return this.rows.indexOf(row);
- }
-};
-
-//link to column manager
-RowManager.prototype.setColumnManager = function (manager) {
- this.columnManager = manager;
-};
-
-RowManager.prototype.initialize = function () {
- var self = this;
-
- self.setRenderMode();
-
- //initialize manager
- self.element.appendChild(self.tableElement);
-
- self.firstRender = true;
-
- //scroll header along with table body
- self.element.addEventListener("scroll", function () {
- var left = self.element.scrollLeft;
-
- //handle horizontal scrolling
- if (self.scrollLeft != left) {
- self.columnManager.scrollHorizontal(left);
-
- if (self.table.options.groupBy) {
- self.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (self.table.modExists("columnCalcs")) {
- self.table.modules.columnCalcs.scrollHorizontal(left);
- }
-
- self.table.options.scrollHorizontal(left);
- }
-
- self.scrollLeft = left;
- });
-
- //handle virtual dom scrolling
- if (this.renderMode === "virtual") {
-
- self.element.addEventListener("scroll", function () {
- var top = self.element.scrollTop;
- var dir = self.scrollTop > top;
-
- //handle verical scrolling
- if (self.scrollTop != top) {
- self.scrollTop = top;
- self.scrollVertical(dir);
-
- if (self.table.options.ajaxProgressiveLoad == "scroll") {
- self.table.modules.ajax.nextPage(self.element.scrollHeight - self.element.clientHeight - top);
- }
-
- self.table.options.scrollVertical(top);
- } else {
- self.scrollTop = top;
- }
- });
- }
-};
-
-////////////////// Row Manipulation //////////////////
-
-RowManager.prototype.findRow = function (subject) {
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Row) {
- //subject is row element
- return subject;
- } else if (subject instanceof RowComponent) {
- //subject is public row component
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
- //subject is a HTML element of the row
- var match = self.rows.find(function (row) {
- return row.element === subject;
- });
-
- return match || false;
- }
- } else if (typeof subject == "undefined" || subject === null) {
- return false;
- } else {
- //subject should be treated as the index of the row
- var _match = self.rows.find(function (row) {
- return row.data[self.table.options.index] == subject;
- });
-
- return _match || false;
- }
-
- //catch all for any other type of input
-
- return false;
-};
-
-RowManager.prototype.getRowFromDataObject = function (data) {
- var match = this.rows.find(function (row) {
- return row.data === data;
- });
-
- return match || false;
-};
-
-RowManager.prototype.getRowFromPosition = function (position, active) {
- if (active) {
- return this.activeRows[position];
- } else {
- return this.rows[position];
- }
-};
-
-RowManager.prototype.scrollToRow = function (row, position, ifVisible) {
- var _this9 = this;
-
- var rowIndex = this.getDisplayRows().indexOf(row),
- rowEl = row.getElement(),
- rowTop,
- offset = 0;
-
- return new Promise(function (resolve, reject) {
- if (rowIndex > -1) {
-
- if (typeof position === "undefined") {
- position = _this9.table.options.scrollToRowPosition;
- }
-
- if (typeof ifVisible === "undefined") {
- ifVisible = _this9.table.options.scrollToRowIfVisible;
- }
-
- if (position === "nearest") {
- switch (_this9.renderMode) {
- case "classic":
- rowTop = Tabulator.prototype.helpers.elOffset(rowEl).top;
- position = Math.abs(_this9.element.scrollTop - rowTop) > Math.abs(_this9.element.scrollTop + _this9.element.clientHeight - rowTop) ? "bottom" : "top";
- break;
- case "virtual":
- position = Math.abs(_this9.vDomTop - rowIndex) > Math.abs(_this9.vDomBottom - rowIndex) ? "bottom" : "top";
- break;
- }
- }
-
- //check row visibility
- if (!ifVisible) {
- if (Tabulator.prototype.helpers.elVisible(rowEl)) {
- offset = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top;
-
- if (offset > 0 && offset < _this9.element.clientHeight - rowEl.offsetHeight) {
- return false;
- }
- }
- }
-
- //scroll to row
- switch (_this9.renderMode) {
- case "classic":
- _this9.element.scrollTop = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top + _this9.element.scrollTop;
- break;
- case "virtual":
- _this9._virtualRenderFill(rowIndex, true);
- break;
- }
-
- //align to correct position
- switch (position) {
- case "middle":
- case "center":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
- _this9.element.scrollTop = _this9.element.scrollTop + (rowEl.offsetTop - _this9.element.scrollTop) - (_this9.element.scrollHeight - rowEl.offsetTop) / 2;
- } else {
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight / 2;
- }
-
- break;
-
- case "bottom":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
- _this9.element.scrollTop = _this9.element.scrollTop - (_this9.element.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;
- } else {
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight + rowEl.offsetHeight;
- }
-
- break;
- }
-
- resolve();
- } else {
- console.warn("Scroll Error - Row not visible");
- reject("Scroll Error - Row not visible");
- }
- });
-};
-
-////////////////// Data Handling //////////////////
-
-RowManager.prototype.setData = function (data, renderInPosition, columnsChanged) {
- var _this10 = this;
-
- var self = this;
-
- return new Promise(function (resolve, reject) {
- if (renderInPosition && _this10.getDisplayRows().length) {
- if (self.table.options.pagination) {
- self._setDataActual(data, true);
- } else {
- _this10.reRenderInPosition(function () {
- self._setDataActual(data);
- });
- }
- } else {
- if (_this10.table.options.autoColumns && columnsChanged) {
- _this10.table.columnManager.generateColumnsFromRowData(data);
- }
- _this10.resetScroll();
- _this10._setDataActual(data);
- }
-
- resolve();
- });
-};
-
-RowManager.prototype._setDataActual = function (data, renderInPosition) {
- var self = this;
-
- self.table.options.dataLoading.call(this.table, data);
-
- this._wipeElements();
-
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.clear();
- }
-
- if (Array.isArray(data)) {
-
- if (this.table.modExists("selectRow")) {
- this.table.modules.selectRow.clearSelectionData();
- }
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
- this.table.modules.reactiveData.watchData(data);
- }
-
- data.forEach(function (def, i) {
- if (def && (typeof def === 'undefined' ? 'undefined' : _typeof(def)) === "object") {
- var row = new Row(def, self);
- self.rows.push(row);
- } else {
- console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:", def);
- }
- });
-
- self.table.options.dataLoaded.call(this.table, data);
-
- self.refreshActiveData(false, false, renderInPosition);
- } else {
- console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ", typeof data === 'undefined' ? 'undefined' : _typeof(data), "\nData: ", data);
- }
-};
-
-RowManager.prototype._wipeElements = function () {
- this.rows.forEach(function (row) {
- row.wipe();
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.wipe();
- }
-
- this.rows = [];
-};
-
-RowManager.prototype.deleteRow = function (row, blockRedraw) {
- var allIndex = this.rows.indexOf(row),
- activeIndex = this.activeRows.indexOf(row);
-
- if (activeIndex > -1) {
- this.activeRows.splice(activeIndex, 1);
- }
-
- if (allIndex > -1) {
- this.rows.splice(allIndex, 1);
- }
-
- this.setActiveRows(this.activeRows);
-
- this.displayRowIterator(function (rows) {
- var displayIndex = rows.indexOf(row);
-
- if (displayIndex > -1) {
- rows.splice(displayIndex, 1);
- }
- });
-
- if (!blockRedraw) {
- this.reRenderInPosition();
- }
-
- this.regenerateRowNumbers();
-
- this.table.options.rowDeleted.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- } else if (this.table.options.pagination && this.table.modExists("page")) {
- this.refreshActiveData(false, false, true);
- } else {
- if (this.table.options.pagination && this.table.modExists("page")) {
- this.refreshActiveData("page");
- }
- }
-};
-
-RowManager.prototype.addRow = function (data, pos, index, blockRedraw) {
-
- var row = this.addRowActual(data, pos, index, blockRedraw);
-
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.action("rowAdd", row, { data: data, pos: pos, index: index });
- }
-
- return row;
-};
-
-//add multiple rows
-RowManager.prototype.addRows = function (data, pos, index) {
- var _this11 = this;
-
- var self = this,
- length = 0,
- rows = [];
-
- return new Promise(function (resolve, reject) {
- pos = _this11.findAddRowPos(pos);
-
- if (!Array.isArray(data)) {
- data = [data];
- }
-
- length = data.length - 1;
-
- if (typeof index == "undefined" && pos || typeof index !== "undefined" && !pos) {
- data.reverse();
- }
-
- data.forEach(function (item, i) {
- var row = self.addRow(item, pos, index, true);
- rows.push(row);
- });
-
- if (_this11.table.options.groupBy && _this11.table.modExists("groupRows")) {
- _this11.table.modules.groupRows.updateGroupRows(true);
- } else if (_this11.table.options.pagination && _this11.table.modExists("page")) {
- _this11.refreshActiveData(false, false, true);
- } else {
- _this11.reRenderInPosition();
- }
-
- //recalc column calculations if present
- if (_this11.table.modExists("columnCalcs")) {
- _this11.table.modules.columnCalcs.recalc(_this11.table.rowManager.activeRows);
- }
-
- _this11.regenerateRowNumbers();
- resolve(rows);
- });
-};
-
-RowManager.prototype.findAddRowPos = function (pos) {
- if (typeof pos === "undefined") {
- pos = this.table.options.addRowPos;
- }
-
- if (pos === "pos") {
- pos = true;
- }
-
- if (pos === "bottom") {
- pos = false;
- }
-
- return pos;
-};
-
-RowManager.prototype.addRowActual = function (data, pos, index, blockRedraw) {
- var row = data instanceof Row ? data : new Row(data || {}, this),
- top = this.findAddRowPos(pos),
- allIndex = -1,
- activeIndex,
- dispRows;
-
- if (!index && this.table.options.pagination && this.table.options.paginationAddRow == "page") {
- dispRows = this.getDisplayRows();
-
- if (top) {
- if (dispRows.length) {
- index = dispRows[0];
- } else {
- if (this.activeRows.length) {
- index = this.activeRows[this.activeRows.length - 1];
- top = false;
- }
- }
- } else {
- if (dispRows.length) {
- index = dispRows[dispRows.length - 1];
- top = dispRows.length < this.table.modules.page.getPageSize() ? false : true;
- }
- }
- }
-
- if (typeof index !== "undefined") {
- index = this.findRow(index);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.assignRowToGroup(row);
-
- var groupRows = row.getGroup().rows;
-
- if (groupRows.length > 1) {
-
- if (!index || index && groupRows.indexOf(index) == -1) {
- if (top) {
- if (groupRows[0] !== row) {
- index = groupRows[0];
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- } else {
- if (groupRows[groupRows.length - 1] !== row) {
- index = groupRows[groupRows.length - 1];
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- } else {
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- }
-
- if (index) {
- allIndex = this.rows.indexOf(index);
- }
-
- if (index && allIndex > -1) {
- activeIndex = this.activeRows.indexOf(index);
-
- this.displayRowIterator(function (rows) {
- var displayIndex = rows.indexOf(index);
-
- if (displayIndex > -1) {
- rows.splice(top ? displayIndex : displayIndex + 1, 0, row);
- }
- });
-
- if (activeIndex > -1) {
- this.activeRows.splice(top ? activeIndex : activeIndex + 1, 0, row);
- }
-
- this.rows.splice(top ? allIndex : allIndex + 1, 0, row);
- } else {
-
- if (top) {
-
- this.displayRowIterator(function (rows) {
- rows.unshift(row);
- });
-
- this.activeRows.unshift(row);
- this.rows.unshift(row);
- } else {
- this.displayRowIterator(function (rows) {
- rows.push(row);
- });
-
- this.activeRows.push(row);
- this.rows.push(row);
- }
- }
-
- this.setActiveRows(this.activeRows);
-
- this.table.options.rowAdded.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (!blockRedraw) {
- this.reRenderInPosition();
- }
-
- return row;
-};
-
-RowManager.prototype.moveRow = function (from, to, after) {
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.action("rowMove", from, { posFrom: this.getRowPosition(from), posTo: this.getRowPosition(to), to: to, after: after });
- }
-
- this.moveRowActual(from, to, after);
-
- this.regenerateRowNumbers();
-
- this.table.options.rowMoved.call(this.table, from.getComponent());
-};
-
-RowManager.prototype.moveRowActual = function (from, to, after) {
- var _this12 = this;
-
- this._moveRowInArray(this.rows, from, to, after);
- this._moveRowInArray(this.activeRows, from, to, after);
-
- this.displayRowIterator(function (rows) {
- _this12._moveRowInArray(rows, from, to, after);
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (!after && to instanceof Group) {
- to = this.table.rowManager.prevDisplayRow(from) || to;
- }
-
- var toGroup = to.getGroup();
- var fromGroup = from.getGroup();
-
- if (toGroup === fromGroup) {
- this._moveRowInArray(toGroup.rows, from, to, after);
- } else {
- if (fromGroup) {
- fromGroup.removeRow(from);
- }
-
- toGroup.insertRow(from, to, after);
- }
- }
-};
-
-RowManager.prototype._moveRowInArray = function (rows, from, to, after) {
- var fromIndex, toIndex, start, end;
-
- if (from !== to) {
-
- fromIndex = rows.indexOf(from);
-
- if (fromIndex > -1) {
-
- rows.splice(fromIndex, 1);
-
- toIndex = rows.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
- rows.splice(toIndex + 1, 0, from);
- } else {
- rows.splice(toIndex, 0, from);
- }
- } else {
- rows.splice(fromIndex, 0, from);
- }
- }
-
- //restyle rows
- if (rows === this.getDisplayRows()) {
-
- start = fromIndex < toIndex ? fromIndex : toIndex;
- end = toIndex > fromIndex ? toIndex : fromIndex + 1;
-
- for (var i = start; i <= end; i++) {
- if (rows[i]) {
- this.styleRow(rows[i], i);
- }
- }
- }
- }
-};
-
-RowManager.prototype.clearData = function () {
- this.setData([]);
-};
-
-RowManager.prototype.getRowIndex = function (row) {
- return this.findRowIndex(row, this.rows);
-};
-
-RowManager.prototype.getDisplayRowIndex = function (row) {
- var index = this.getDisplayRows().indexOf(row);
- return index > -1 ? index : false;
-};
-
-RowManager.prototype.nextDisplayRow = function (row, rowOnly) {
- var index = this.getDisplayRowIndex(row),
- nextRow = false;
-
- if (index !== false && index < this.displayRowsCount - 1) {
- nextRow = this.getDisplayRows()[index + 1];
- }
-
- if (nextRow && (!(nextRow instanceof Row) || nextRow.type != "row")) {
- return this.nextDisplayRow(nextRow, rowOnly);
- }
-
- return nextRow;
-};
-
-RowManager.prototype.prevDisplayRow = function (row, rowOnly) {
- var index = this.getDisplayRowIndex(row),
- prevRow = false;
-
- if (index) {
- prevRow = this.getDisplayRows()[index - 1];
- }
-
- if (rowOnly && prevRow && (!(prevRow instanceof Row) || prevRow.type != "row")) {
- return this.prevDisplayRow(prevRow, rowOnly);
- }
-
- return prevRow;
-};
-
-RowManager.prototype.findRowIndex = function (row, list) {
- var rowIndex;
-
- row = this.findRow(row);
-
- if (row) {
- rowIndex = list.indexOf(row);
-
- if (rowIndex > -1) {
- return rowIndex;
- }
- }
-
- return false;
-};
-
-RowManager.prototype.getData = function (active, transform) {
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
- if (row.type == "row") {
- output.push(row.getData(transform || "data"));
- }
- });
-
- return output;
-};
-
-RowManager.prototype.getComponents = function (active) {
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
- output.push(row.getComponent());
- });
-
- return output;
-};
-
-RowManager.prototype.getDataCount = function (active) {
- var rows = this.getRows(active);
-
- return rows.length;
-};
-
-RowManager.prototype._genRemoteRequest = function () {
- var _this13 = this;
-
- var table = this.table,
- options = table.options,
- params = {};
-
- if (table.modExists("page")) {
- //set sort data if defined
- if (options.ajaxSorting) {
- var sorters = this.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
- delete item.column;
- });
-
- params[this.table.modules.page.paginationDataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
- if (options.ajaxFiltering) {
- var filters = this.table.modules.filter.getFilters(true, true);
-
- params[this.table.modules.page.paginationDataSentNames.filters] = filters;
- }
-
- this.table.modules.ajax.setParams(params, true);
- }
-
- table.modules.ajax.sendRequest().then(function (data) {
- _this13._setDataActual(data, true);
- }).catch(function (e) {});
-};
-
-//choose the path to refresh data after a filter update
-RowManager.prototype.filterRefresh = function () {
- var table = this.table,
- options = table.options,
- left = this.scrollLeft;
-
- if (options.ajaxFiltering) {
- if (options.pagination == "remote" && table.modExists("page")) {
- table.modules.page.reset(true);
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
- //assume data is url, make ajax call to url to get data
- this._genRemoteRequest();
- }
- } else {
- this.refreshActiveData("filter");
- }
-
- this.scrollHorizontal(left);
-};
-
-//choose the path to refresh data after a sorter update
-RowManager.prototype.sorterRefresh = function (loadOrignalData) {
- var table = this.table,
- options = this.table.options,
- left = this.scrollLeft;
-
- if (options.ajaxSorting) {
- if ((options.pagination == "remote" || options.progressiveLoad) && table.modExists("page")) {
- table.modules.page.reset(true);
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
- //assume data is url, make ajax call to url to get data
- this._genRemoteRequest();
- }
- } else {
- this.refreshActiveData(loadOrignalData ? "filter" : "sort");
- }
-
- this.scrollHorizontal(left);
-};
-
-RowManager.prototype.scrollHorizontal = function (left) {
- this.scrollLeft = left;
- this.element.scrollLeft = left;
-
- if (this.table.options.groupBy) {
- this.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (this.table.modExists("columnCalcs")) {
- this.table.modules.columnCalcs.scrollHorizontal(left);
- }
-};
-
-//set active data set
-RowManager.prototype.refreshActiveData = function (stage, skipStage, renderInPosition) {
- var self = this,
- table = this.table,
- cascadeOrder = ["all", "filter", "sort", "display", "freeze", "group", "tree", "page"],
- displayIndex;
-
- if (this.redrawBlock) {
-
- if (!this.redrawBlockRestoreConfig || cascadeOrder.indexOf(stage) < cascadeOrder.indexOf(this.redrawBlockRestoreConfig.stage)) {
- this.redrawBlockRestoreConfig = {
- stage: stage,
- skipStage: skipStage,
- renderInPosition: renderInPosition
- };
- }
-
- return;
- } else {
-
- if (self.table.modExists("edit")) {
- self.table.modules.edit.cancelEdit();
- }
-
- if (!stage) {
- stage = "all";
- }
-
- if (table.options.selectable && !table.options.selectablePersistence && table.modExists("selectRow")) {
- table.modules.selectRow.deselectRows();
- }
-
- //cascade through data refresh stages
- switch (stage) {
- case "all":
-
- case "filter":
- if (!skipStage) {
- if (table.modExists("filter")) {
- self.setActiveRows(table.modules.filter.filter(self.rows));
- } else {
- self.setActiveRows(self.rows.slice(0));
- }
- } else {
- skipStage = false;
- }
-
- case "sort":
- if (!skipStage) {
- if (table.modExists("sort")) {
- table.modules.sort.sort(this.activeRows);
- }
- } else {
- skipStage = false;
- }
-
- //regenerate row numbers for row number formatter if in use
- this.regenerateRowNumbers();
-
- //generic stage to allow for pipeline trigger after the data manipulation stage
- case "display":
- this.resetDisplayRows();
-
- case "freeze":
- if (!skipStage) {
- if (this.table.modExists("frozenRows")) {
- if (table.modules.frozenRows.isFrozen()) {
- if (!table.modules.frozenRows.getDisplayIndex()) {
- table.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.frozenRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.frozenRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.frozenRows.setDisplayIndex(displayIndex);
- }
- }
- }
- } else {
- skipStage = false;
- }
-
- case "group":
- if (!skipStage) {
- if (table.options.groupBy && table.modExists("groupRows")) {
-
- if (!table.modules.groupRows.getDisplayIndex()) {
- table.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.groupRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.groupRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.groupRows.setDisplayIndex(displayIndex);
- }
- }
- } else {
- skipStage = false;
- }
-
- case "tree":
-
- if (!skipStage) {
- if (table.options.dataTree && table.modExists("dataTree")) {
- if (!table.modules.dataTree.getDisplayIndex()) {
- table.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.dataTree.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.dataTree.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.dataTree.setDisplayIndex(displayIndex);
- }
- }
- } else {
- skipStage = false;
- }
-
- if (table.options.pagination && table.modExists("page") && !renderInPosition) {
- if (table.modules.page.getMode() == "local") {
- table.modules.page.reset();
- }
- }
-
- case "page":
- if (!skipStage) {
- if (table.options.pagination && table.modExists("page")) {
-
- if (!table.modules.page.getDisplayIndex()) {
- table.modules.page.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.page.getDisplayIndex();
-
- if (table.modules.page.getMode() == "local") {
- table.modules.page.setMaxRows(this.getDisplayRows(displayIndex - 1).length);
- }
-
- displayIndex = self.setDisplayRows(table.modules.page.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.page.setDisplayIndex(displayIndex);
- }
- }
- } else {
- skipStage = false;
- }
- }
-
- if (Tabulator.prototype.helpers.elVisible(self.element)) {
- if (renderInPosition) {
- self.reRenderInPosition();
- } else {
- self.renderTable();
- if (table.options.layoutColumnsOnNewData) {
- self.table.columnManager.redraw(true);
- }
- }
- }
-
- if (table.modExists("columnCalcs")) {
- table.modules.columnCalcs.recalc(this.activeRows);
- }
- }
-};
-
-//regenerate row numbers for row number formatter if in use
-RowManager.prototype.regenerateRowNumbers = function () {
- var _this14 = this;
-
- if (this.rowNumColumn) {
- this.activeRows.forEach(function (row) {
- var cell = row.getCell(_this14.rowNumColumn);
-
- if (cell) {
- cell._generateContents();
- }
- });
- }
-};
-
-RowManager.prototype.setActiveRows = function (activeRows) {
- this.activeRows = activeRows;
- this.activeRowsCount = this.activeRows.length;
-};
-
-//reset display rows array
-RowManager.prototype.resetDisplayRows = function () {
- this.displayRows = [];
-
- this.displayRows.push(this.activeRows.slice(0));
-
- this.displayRowsCount = this.displayRows[0].length;
-
- if (this.table.modExists("frozenRows")) {
- this.table.modules.frozenRows.setDisplayIndex(0);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.setDisplayIndex(0);
- }
-
- if (this.table.options.pagination && this.table.modExists("page")) {
- this.table.modules.page.setDisplayIndex(0);
- }
-};
-
-RowManager.prototype.getNextDisplayIndex = function () {
- return this.displayRows.length;
-};
-
-//set display row pipeline data
-RowManager.prototype.setDisplayRows = function (displayRows, index) {
-
- var output = true;
-
- if (index && typeof this.displayRows[index] != "undefined") {
- this.displayRows[index] = displayRows;
- output = true;
- } else {
- this.displayRows.push(displayRows);
- output = index = this.displayRows.length - 1;
- }
-
- if (index == this.displayRows.length - 1) {
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
- }
-
- return output;
-};
-
-RowManager.prototype.getDisplayRows = function (index) {
- if (typeof index == "undefined") {
- return this.displayRows.length ? this.displayRows[this.displayRows.length - 1] : [];
- } else {
- return this.displayRows[index] || [];
- }
-};
-
-RowManager.prototype.getVisibleRows = function (viewable) {
- var topEdge = this.element.scrollTop,
- bottomEdge = this.element.clientHeight + topEdge,
- topFound = false,
- topRow = 0,
- bottomRow = 0,
- rows = this.getDisplayRows();
-
- if (viewable) {
-
- this.getDisplayRows();
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
- if (rows[i]) {
- if (!topFound) {
- if (topEdge - rows[i].getElement().offsetTop >= 0) {
- topRow = i;
- } else {
- topFound = true;
-
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
- bottomRow = i;
- } else {
- break;
- }
- }
- } else {
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
- bottomRow = i;
- } else {
- break;
- }
- }
- }
- }
- } else {
- topRow = this.vDomTop;
- bottomRow = this.vDomBottom;
- }
-
- return rows.slice(topRow, bottomRow + 1);
-};
-
-//repeat action accross display rows
-RowManager.prototype.displayRowIterator = function (callback) {
- this.displayRows.forEach(callback);
-
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
-};
-
-//return only actual rows (not group headers etc)
-RowManager.prototype.getRows = function (active) {
- var rows;
-
- switch (active) {
- case "active":
- rows = this.activeRows;
- break;
-
- case "display":
- rows = this.table.rowManager.getDisplayRows();
- break;
-
- case "visible":
- rows = this.getVisibleRows(true);
- break;
-
- default:
- rows = this.rows;
- }
-
- return rows;
-};
-
-///////////////// Table Rendering /////////////////
-
-//trigger rerender of table in current position
-RowManager.prototype.reRenderInPosition = function (callback) {
- if (this.getRenderMode() == "virtual") {
-
- if (this.redrawBlock) {
- if (callback) {
- callback();
- } else {
- this.redrawBlockRederInPosition = true;
- }
- } else {
- var scrollTop = this.element.scrollTop;
- var topRow = false;
- var topOffset = false;
-
- var left = this.scrollLeft;
-
- var rows = this.getDisplayRows();
-
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
-
- if (rows[i]) {
- var diff = scrollTop - rows[i].getElement().offsetTop;
-
- if (topOffset === false || Math.abs(diff) < topOffset) {
- topOffset = diff;
- topRow = i;
- } else {
- break;
- }
- }
- }
-
- if (callback) {
- callback();
- }
-
- this._virtualRenderFill(topRow === false ? this.displayRowsCount - 1 : topRow, true, topOffset || 0);
-
- this.scrollHorizontal(left);
- }
- } else {
- this.renderTable();
-
- if (callback) {
- callback();
- }
- }
-};
-
-RowManager.prototype.setRenderMode = function () {
-
- if (this.table.options.virtualDom) {
-
- this.renderMode = "virtual";
-
- if (this.table.element.clientHeight || this.table.options.height) {
- this.fixedHeight = true;
- } else {
- this.fixedHeight = false;
- }
- } else {
- this.renderMode = "classic";
- }
-};
-
-RowManager.prototype.getRenderMode = function () {
- return this.renderMode;
-};
-
-RowManager.prototype.renderTable = function () {
-
- this.table.options.renderStarted.call(this.table);
-
- this.element.scrollTop = 0;
-
- switch (this.renderMode) {
- case "classic":
- this._simpleRender();
- break;
-
- case "virtual":
- this._virtualRenderFill();
- break;
- }
-
- if (this.firstRender) {
- if (this.displayRowsCount) {
- this.firstRender = false;
- this.table.modules.layout.layout();
- } else {
- this.renderEmptyScroll();
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
-
- if (!this.displayRowsCount) {
- if (this.table.options.placeholder) {
-
- this.table.options.placeholder.setAttribute("tabulator-render-mode", this.renderMode);
-
- this.getElement().appendChild(this.table.options.placeholder);
- this.table.options.placeholder.style.width = this.table.columnManager.getWidth() + "px";
- }
- }
-
- this.table.options.renderComplete.call(this.table);
-};
-
-//simple render on heightless table
-RowManager.prototype._simpleRender = function () {
- this._clearVirtualDom();
-
- if (this.displayRowsCount) {
- this.checkClassicModeGroupHeaderWidth();
- } else {
- this.renderEmptyScroll();
- }
-};
-
-RowManager.prototype.checkClassicModeGroupHeaderWidth = function () {
- var self = this,
- element = this.tableElement,
- onlyGroupHeaders = true;
-
- self.getDisplayRows().forEach(function (row, index) {
- self.styleRow(row, index);
- element.appendChild(row.getElement());
- row.initialize(true);
-
- if (row.type !== "group") {
- onlyGroupHeaders = false;
- }
- });
-
- if (onlyGroupHeaders) {
- element.style.minWidth = self.table.columnManager.getWidth() + "px";
- } else {
- element.style.minWidth = "";
- }
-};
-
-//show scrollbars on empty table div
-RowManager.prototype.renderEmptyScroll = function () {
- if (this.table.options.placeholder) {
- this.tableElement.style.display = "none";
- } else {
- this.tableElement.style.minWidth = this.table.columnManager.getWidth() + "px";
- this.tableElement.style.minHeight = "1px";
- this.tableElement.style.visibility = "hidden";
- }
-};
-
-RowManager.prototype._clearVirtualDom = function () {
- var element = this.tableElement;
-
- if (this.table.options.placeholder && this.table.options.placeholder.parentNode) {
- this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);
- }
-
- // element.children.detach();
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.style.paddingTop = "";
- element.style.paddingBottom = "";
- element.style.minWidth = "";
- element.style.minHeight = "";
- element.style.display = "";
- element.style.visibility = "";
-
- this.scrollTop = 0;
- this.scrollLeft = 0;
- this.vDomTop = 0;
- this.vDomBottom = 0;
- this.vDomTopPad = 0;
- this.vDomBottomPad = 0;
-};
-
-RowManager.prototype.styleRow = function (row, index) {
- var rowEl = row.getElement();
-
- if (index % 2) {
- rowEl.classList.add("tabulator-row-even");
- rowEl.classList.remove("tabulator-row-odd");
- } else {
- rowEl.classList.add("tabulator-row-odd");
- rowEl.classList.remove("tabulator-row-even");
- }
-};
-
-//full virtual render
-RowManager.prototype._virtualRenderFill = function (position, forceMove, offset) {
- var self = this,
- element = self.tableElement,
- holder = self.element,
- topPad = 0,
- rowsHeight = 0,
- topPadHeight = 0,
- i = 0,
- onlyGroupHeaders = true,
- rows = self.getDisplayRows();
-
- position = position || 0;
-
- offset = offset || 0;
-
- if (!position) {
- self._clearVirtualDom();
- } else {
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //check if position is too close to bottom of table
- var heightOccupied = (self.displayRowsCount - position + 1) * self.vDomRowHeight;
-
- if (heightOccupied < self.height) {
- position -= Math.ceil((self.height - heightOccupied) / self.vDomRowHeight);
-
- if (position < 0) {
- position = 0;
- }
- }
-
- //calculate initial pad
- topPad = Math.min(Math.max(Math.floor(self.vDomWindowBuffer / self.vDomRowHeight), self.vDomWindowMinMarginRows), position);
- position -= topPad;
- }
-
- if (self.displayRowsCount && Tabulator.prototype.helpers.elVisible(self.element)) {
-
- self.vDomTop = position;
-
- self.vDomBottom = position - 1;
-
- while ((rowsHeight <= self.height + self.vDomWindowBuffer || i < self.vDomWindowMinTotalRows) && self.vDomBottom < self.displayRowsCount - 1) {
- var index = self.vDomBottom + 1,
- row = rows[index],
- rowHeight = 0;
-
- self.styleRow(row, index);
-
- element.appendChild(row.getElement());
- if (!row.initialized) {
- row.initialize(true);
- } else {
- if (!row.heightInitialized) {
- row.normalizeHeight(true);
- }
- }
-
- rowHeight = row.getHeight();
-
- if (i < topPad) {
- topPadHeight += rowHeight;
- } else {
- rowsHeight += rowHeight;
- }
-
- if (rowHeight > this.vDomWindowBuffer) {
- this.vDomWindowBuffer = rowHeight * 2;
- }
-
- if (row.type !== "group") {
- onlyGroupHeaders = false;
- }
-
- self.vDomBottom++;
- i++;
- }
-
- if (!position) {
- this.vDomTopPad = 0;
- //adjust rowheight to match average of rendered elements
- self.vDomRowHeight = Math.floor((rowsHeight + topPadHeight) / i);
- self.vDomBottomPad = self.vDomRowHeight * (self.displayRowsCount - self.vDomBottom - 1);
-
- self.vDomScrollHeight = topPadHeight + rowsHeight + self.vDomBottomPad - self.height;
- } else {
- self.vDomTopPad = !forceMove ? self.scrollTop - topPadHeight : self.vDomRowHeight * this.vDomTop + offset;
- self.vDomBottomPad = self.vDomBottom == self.displayRowsCount - 1 ? 0 : Math.max(self.vDomScrollHeight - self.vDomTopPad - rowsHeight - topPadHeight, 0);
- }
-
- element.style.paddingTop = self.vDomTopPad + "px";
- element.style.paddingBottom = self.vDomBottomPad + "px";
-
- if (forceMove) {
- this.scrollTop = self.vDomTopPad + topPadHeight + offset - (this.element.scrollWidth > this.element.clientWidth ? this.element.offsetHeight - this.element.clientHeight : 0);
- }
-
- this.scrollTop = Math.min(this.scrollTop, this.element.scrollHeight - this.height);
-
- //adjust for horizontal scrollbar if present (and not at top of table)
- if (this.element.scrollWidth > this.element.offsetWidth && forceMove) {
- this.scrollTop += this.element.offsetHeight - this.element.clientHeight;
- }
-
- this.vDomScrollPosTop = this.scrollTop;
- this.vDomScrollPosBottom = this.scrollTop;
-
- holder.scrollTop = this.scrollTop;
-
- element.style.minWidth = onlyGroupHeaders ? self.table.columnManager.getWidth() + "px" : "";
-
- if (self.table.options.groupBy) {
- if (self.table.modules.layout.getMode() != "fitDataFill" && self.displayRowsCount == self.table.modules.groupRows.countGroups()) {
- self.tableElement.style.minWidth = self.table.columnManager.getWidth();
- }
- }
- } else {
- this.renderEmptyScroll();
- }
-
- if (!this.fixedHeight) {
- this.adjustTableSize();
- }
-};
-
-//handle vertical scrolling
-RowManager.prototype.scrollVertical = function (dir) {
- var topDiff = this.scrollTop - this.vDomScrollPosTop;
- var bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
- var margin = this.vDomWindowBuffer * 2;
-
- if (-topDiff > margin || bottomDiff > margin) {
- //if big scroll redraw table;
- var left = this.scrollLeft;
- this._virtualRenderFill(Math.floor(this.element.scrollTop / this.element.scrollHeight * this.displayRowsCount));
- this.scrollHorizontal(left);
- } else {
-
- if (dir) {
- //scrolling up
- if (topDiff < 0) {
-
- this._addTopRow(-topDiff);
- }
-
- if (bottomDiff < 0) {
-
- //hide bottom row if needed
- if (this.vDomScrollHeight - this.scrollTop > this.vDomWindowBuffer) {
- this._removeBottomRow(-bottomDiff);
- } else {
- this.vDomScrollPosBottom = this.scrollTop;
- }
- }
- } else {
- //scrolling down
- if (topDiff >= 0) {
-
- //hide top row if needed
- if (this.scrollTop > this.vDomWindowBuffer) {
-
- this._removeTopRow(topDiff);
- } else {
- this.vDomScrollPosTop = this.scrollTop;
- }
- }
-
- if (bottomDiff >= 0) {
-
- this._addBottomRow(bottomDiff);
- }
- }
- }
-};
-
-RowManager.prototype._addTopRow = function (topDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomTop) {
- var index = this.vDomTop - 1,
- topRow = rows[index],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- //hide top row if needed
- if (topDiff >= topRowHeight) {
- this.styleRow(topRow, index);
- table.insertBefore(topRow.getElement(), table.firstChild);
- if (!topRow.initialized || !topRow.heightInitialized) {
- this.vDomTopNewRows.push(topRow);
-
- if (!topRow.heightInitialized) {
- topRow.clearCellHeight();
- }
- }
- topRow.initialize();
-
- this.vDomTopPad -= topRowHeight;
-
- if (this.vDomTopPad < 0) {
- this.vDomTopPad = index * this.vDomRowHeight;
- }
-
- if (!index) {
- this.vDomTopPad = 0;
- }
-
- table.style.paddingTop = this.vDomTopPad + "px";
- this.vDomScrollPosTop -= topRowHeight;
- this.vDomTop--;
- }
-
- topDiff = -(this.scrollTop - this.vDomScrollPosTop);
-
- if (topRow.getHeight() > this.vDomWindowBuffer) {
- this.vDomWindowBuffer = topRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomTop && topDiff >= (rows[this.vDomTop - 1].getHeight() || this.vDomRowHeight)) {
- this._addTopRow(topDiff, i + 1);
- } else {
- this._quickNormalizeRowHeight(this.vDomTopNewRows);
- }
- }
-};
-
-RowManager.prototype._removeTopRow = function (topDiff) {
- var table = this.tableElement,
- topRow = this.getDisplayRows()[this.vDomTop],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- if (topDiff >= topRowHeight) {
-
- var rowEl = topRow.getElement();
- rowEl.parentNode.removeChild(rowEl);
-
- this.vDomTopPad += topRowHeight;
- table.style.paddingTop = this.vDomTopPad + "px";
- this.vDomScrollPosTop += this.vDomTop ? topRowHeight : topRowHeight + this.vDomWindowBuffer;
- this.vDomTop++;
-
- topDiff = this.scrollTop - this.vDomScrollPosTop;
-
- this._removeTopRow(topDiff);
- }
-};
-
-RowManager.prototype._addBottomRow = function (bottomDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomBottom < this.displayRowsCount - 1) {
- var index = this.vDomBottom + 1,
- bottomRow = rows[index],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- //hide bottom row if needed
- if (bottomDiff >= bottomRowHeight) {
- this.styleRow(bottomRow, index);
- table.appendChild(bottomRow.getElement());
-
- if (!bottomRow.initialized || !bottomRow.heightInitialized) {
- this.vDomBottomNewRows.push(bottomRow);
-
- if (!bottomRow.heightInitialized) {
- bottomRow.clearCellHeight();
- }
- }
-
- bottomRow.initialize();
-
- this.vDomBottomPad -= bottomRowHeight;
-
- if (this.vDomBottomPad < 0 || index == this.displayRowsCount - 1) {
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
- this.vDomScrollPosBottom += bottomRowHeight;
- this.vDomBottom++;
- }
-
- bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
-
- if (bottomRow.getHeight() > this.vDomWindowBuffer) {
- this.vDomWindowBuffer = bottomRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomBottom < this.displayRowsCount - 1 && bottomDiff >= (rows[this.vDomBottom + 1].getHeight() || this.vDomRowHeight)) {
- this._addBottomRow(bottomDiff, i + 1);
- } else {
- this._quickNormalizeRowHeight(this.vDomBottomNewRows);
- }
- }
-};
-
-RowManager.prototype._removeBottomRow = function (bottomDiff) {
- var table = this.tableElement,
- bottomRow = this.getDisplayRows()[this.vDomBottom],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- if (bottomDiff >= bottomRowHeight) {
-
- var rowEl = bottomRow.getElement();
-
- if (rowEl.parentNode) {
- rowEl.parentNode.removeChild(rowEl);
- }
-
- this.vDomBottomPad += bottomRowHeight;
-
- if (this.vDomBottomPad < 0) {
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
- this.vDomScrollPosBottom -= bottomRowHeight;
- this.vDomBottom--;
-
- bottomDiff = -(this.scrollTop - this.vDomScrollPosBottom);
-
- this._removeBottomRow(bottomDiff);
- }
-};
-
-RowManager.prototype._quickNormalizeRowHeight = function (rows) {
- rows.forEach(function (row) {
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
- row.setCellHeight();
- });
-
- rows.length = 0;
-};
-
-//normalize height of active rows
-RowManager.prototype.normalizeHeight = function () {
- this.activeRows.forEach(function (row) {
- row.normalizeHeight();
- });
-};
-
-//adjust the height of the table holder to fit in the Tabulator element
-RowManager.prototype.adjustTableSize = function () {
- var initialHeight = this.element.clientHeight,
- modExists;
-
- if (this.renderMode === "virtual") {
- var otherHeight = this.columnManager.getElement().offsetHeight + (this.table.footerManager && !this.table.footerManager.external ? this.table.footerManager.getElement().offsetHeight : 0);
-
- if (this.fixedHeight) {
- this.element.style.minHeight = "calc(100% - " + otherHeight + "px)";
- this.element.style.height = "calc(100% - " + otherHeight + "px)";
- this.element.style.maxHeight = "calc(100% - " + otherHeight + "px)";
- } else {
- this.element.style.height = "";
- this.element.style.height = this.table.element.clientHeight - otherHeight + "px";
- this.element.scrollTop = this.scrollTop;
- }
-
- this.height = this.element.clientHeight;
- this.vDomWindowBuffer = this.table.options.virtualDomBuffer || this.height;
-
- //check if the table has changed size when dealing with variable height tables
- if (!this.fixedHeight && initialHeight != this.element.clientHeight) {
- modExists = this.table.modExists("resizeTable");
-
- if (modExists && !this.table.modules.resizeTable.autoResize || !modExists) {
- this.redraw();
- }
- }
- }
-};
-
-//renitialize all rows
-RowManager.prototype.reinitialize = function () {
- this.rows.forEach(function (row) {
- row.reinitialize();
- });
-};
-
-//prevent table from being redrawn
-RowManager.prototype.blockRedraw = function () {
- this.redrawBlock = true;
- this.redrawBlockRestoreConfig = false;
-};
-
-//restore table redrawing
-RowManager.prototype.restoreRedraw = function () {
- this.redrawBlock = false;
-
- if (this.redrawBlockRestoreConfig) {
- this.refreshActiveData(this.redrawBlockRestoreConfig.stage, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition);
-
- this.redrawBlockRestoreConfig = false;
- } else {
- if (this.redrawBlockRederInPosition) {
- this.reRenderInPosition();
- }
- }
-
- this.redrawBlockRederInPosition = false;
-};
-
-//redraw table
-RowManager.prototype.redraw = function (force) {
- var pos = 0,
- left = this.scrollLeft;
-
- this.adjustTableSize();
-
- this.table.tableWidth = this.table.element.clientWidth;
-
- if (!force) {
- if (this.renderMode == "classic") {
-
- if (this.table.options.groupBy) {
- this.refreshActiveData("group", false, false);
- } else {
- this._simpleRender();
- }
- } else {
- this.reRenderInPosition();
- this.scrollHorizontal(left);
- }
-
- if (!this.displayRowsCount) {
- if (this.table.options.placeholder) {
- this.getElement().appendChild(this.table.options.placeholder);
- }
- }
- } else {
- this.renderTable();
- }
-};
-
-RowManager.prototype.resetScroll = function () {
- this.element.scrollLeft = 0;
- this.element.scrollTop = 0;
-
- if (this.table.browser === "ie") {
- var event = document.createEvent("Event");
- event.initEvent("scroll", false, true);
- this.element.dispatchEvent(event);
- } else {
- this.element.dispatchEvent(new Event('scroll'));
- }
-};
-
-//public row object
-var RowComponent = function RowComponent(row) {
- this._row = row;
-};
-
-RowComponent.prototype.getData = function (transform) {
- return this._row.getData(transform);
-};
-
-RowComponent.prototype.getElement = function () {
- return this._row.getElement();
-};
-
-RowComponent.prototype.getCells = function () {
- var cells = [];
-
- this._row.getCells().forEach(function (cell) {
- cells.push(cell.getComponent());
- });
-
- return cells;
-};
-
-RowComponent.prototype.getCell = function (column) {
- var cell = this._row.getCell(column);
- return cell ? cell.getComponent() : false;
-};
-
-RowComponent.prototype.getIndex = function () {
- return this._row.getData("data")[this._row.table.options.index];
-};
-
-RowComponent.prototype.getPosition = function (active) {
- return this._row.table.rowManager.getRowPosition(this._row, active);
-};
-
-RowComponent.prototype.delete = function () {
- return this._row.delete();
-};
-
-RowComponent.prototype.scrollTo = function () {
- return this._row.table.rowManager.scrollToRow(this._row);
-};
-
-RowComponent.prototype.pageTo = function () {
- if (this._row.table.modExists("page", true)) {
- return this._row.table.modules.page.setPageToRow(this._row);
- }
-};
-
-RowComponent.prototype.move = function (to, after) {
- this._row.moveToRow(to, after);
-};
-
-RowComponent.prototype.update = function (data) {
- return this._row.updateData(data);
-};
-
-RowComponent.prototype.normalizeHeight = function () {
- this._row.normalizeHeight(true);
-};
-
-RowComponent.prototype.select = function () {
- this._row.table.modules.selectRow.selectRows(this._row);
-};
-
-RowComponent.prototype.deselect = function () {
- this._row.table.modules.selectRow.deselectRows(this._row);
-};
-
-RowComponent.prototype.toggleSelect = function () {
- this._row.table.modules.selectRow.toggleRow(this._row);
-};
-
-RowComponent.prototype.isSelected = function () {
- return this._row.table.modules.selectRow.isRowSelected(this._row);
-};
-
-RowComponent.prototype._getSelf = function () {
- return this._row;
-};
-
-RowComponent.prototype.freeze = function () {
- if (this._row.table.modExists("frozenRows", true)) {
- this._row.table.modules.frozenRows.freezeRow(this._row);
- }
-};
-
-RowComponent.prototype.unfreeze = function () {
- if (this._row.table.modExists("frozenRows", true)) {
- this._row.table.modules.frozenRows.unfreezeRow(this._row);
- }
-};
-
-RowComponent.prototype.treeCollapse = function () {
- if (this._row.table.modExists("dataTree", true)) {
- this._row.table.modules.dataTree.collapseRow(this._row);
- }
-};
-
-RowComponent.prototype.treeExpand = function () {
- if (this._row.table.modExists("dataTree", true)) {
- this._row.table.modules.dataTree.expandRow(this._row);
- }
-};
-
-RowComponent.prototype.treeToggle = function () {
- if (this._row.table.modExists("dataTree", true)) {
- this._row.table.modules.dataTree.toggleRow(this._row);
- }
-};
-
-RowComponent.prototype.getTreeParent = function () {
- if (this._row.table.modExists("dataTree", true)) {
- return this._row.table.modules.dataTree.getTreeParent(this._row);
- }
-
- return false;
-};
-
-RowComponent.prototype.getTreeChildren = function () {
- if (this._row.table.modExists("dataTree", true)) {
- return this._row.table.modules.dataTree.getTreeChildren(this._row);
- }
-
- return false;
-};
-
-RowComponent.prototype.reformat = function () {
- return this._row.reinitialize();
-};
-
-RowComponent.prototype.getGroup = function () {
- return this._row.getGroup().getComponent();
-};
-
-RowComponent.prototype.getTable = function () {
- return this._row.table;
-};
-
-RowComponent.prototype.getNextRow = function () {
- var row = this._row.nextRow();
- return row ? row.getComponent() : row;
-};
-
-RowComponent.prototype.getPrevRow = function () {
- var row = this._row.prevRow();
- return row ? row.getComponent() : row;
-};
-
-var Row = function Row(data, parent) {
- var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "row";
-
- this.table = parent.table;
- this.parent = parent;
- this.data = {};
- this.type = type; //type of element
- this.element = this.createElement();
- this.modules = {}; //hold module variables;
- this.cells = [];
- this.height = 0; //hold element height
- this.heightStyled = ""; //hold element height prestyled to improve render efficiency
- this.manualHeight = false; //user has manually set row height
- this.outerHeight = 0; //holde lements outer height
- this.initialized = false; //element has been rendered
- this.heightInitialized = false; //element has resized cells to fit
-
- this.setData(data);
- this.generateElement();
-};
-
-Row.prototype.createElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
- el.setAttribute("role", "row");
-
- return el;
-};
-
-Row.prototype.getElement = function () {
- return this.element;
-};
-
-Row.prototype.detachElement = function () {
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
-};
-
-Row.prototype.generateElement = function () {
- var self = this,
- dblTap,
- tapHold,
- tap;
-
- //set row selection characteristics
- if (self.table.options.selectable !== false && self.table.modExists("selectRow")) {
- self.table.modules.selectRow.initializeRow(this);
- }
-
- //setup movable rows
- if (self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
- self.table.modules.moveRow.initializeRow(this);
- }
-
- //setup data tree
- if (self.table.options.dataTree !== false && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.initializeRow(this);
- }
-
- //setup column colapse container
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
- self.table.modules.responsiveLayout.initializeRow(this);
- }
-
- //set column menu
- if (self.table.options.rowContextMenu && this.table.modExists("menu")) {
- self.table.modules.menu.initializeRow(this);
- }
-
- //handle row click events
- if (self.table.options.rowClick) {
- self.element.addEventListener("click", function (e) {
- self.table.options.rowClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowDblClick) {
- self.element.addEventListener("dblclick", function (e) {
- self.table.options.rowDblClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowContext) {
- self.element.addEventListener("contextmenu", function (e) {
- self.table.options.rowContext(e, self.getComponent());
- });
- }
-
- //handle mouse events
- if (self.table.options.rowMouseEnter) {
- self.element.addEventListener("mouseenter", function (e) {
- self.table.options.rowMouseEnter(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseLeave) {
- self.element.addEventListener("mouseleave", function (e) {
- self.table.options.rowMouseLeave(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOver) {
- self.element.addEventListener("mouseover", function (e) {
- self.table.options.rowMouseOver(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOut) {
- self.element.addEventListener("mouseout", function (e) {
- self.table.options.rowMouseOut(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseMove) {
- self.element.addEventListener("mousemove", function (e) {
- self.table.options.rowMouseMove(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- self.table.options.rowTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.table.options.rowDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- self.table.options.rowDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.table.options.rowTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- self.table.options.rowTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-};
-
-Row.prototype.generateCells = function () {
- this.cells = this.table.columnManager.generateCells(this);
-};
-
-//functions to setup on first render
-Row.prototype.initialize = function (force) {
- var self = this;
-
- if (!self.initialized || force) {
-
- self.deleteCells();
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- } //handle frozen cells
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layoutRow(this);
- }
-
- this.generateCells();
-
- self.cells.forEach(function (cell) {
- self.element.appendChild(cell.getElement());
- cell.cellRendered();
- });
-
- if (force) {
- self.normalizeHeight();
- }
-
- //setup movable rows
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.layoutRow(this);
- }
-
- //setup column colapse container
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
- self.table.modules.responsiveLayout.layoutRow(this);
- }
-
- if (self.table.options.rowFormatter) {
- self.table.options.rowFormatter(self.getComponent());
- }
-
- //set resizable handles
- if (self.table.options.resizableRows && self.table.modExists("resizeRows")) {
- self.table.modules.resizeRows.initializeRow(self);
- }
-
- self.initialized = true;
- }
-};
-
-Row.prototype.reinitializeHeight = function () {
- this.heightInitialized = false;
-
- if (this.element.offsetParent !== null) {
- this.normalizeHeight(true);
- }
-};
-
-Row.prototype.reinitialize = function () {
- this.initialized = false;
- this.heightInitialized = false;
-
- if (!this.manualHeight) {
- this.height = 0;
- this.heightStyled = "";
- }
-
- if (this.element.offsetParent !== null) {
- this.initialize(true);
- }
-};
-
-//get heights when doing bulk row style calcs in virtual DOM
-Row.prototype.calcHeight = function (force) {
-
- var maxHeight = 0,
- minHeight = this.table.options.resizableRows ? this.element.clientHeight : 0;
-
- this.cells.forEach(function (cell) {
- var height = cell.getHeight();
- if (height > maxHeight) {
- maxHeight = height;
- }
- });
-
- if (force) {
- this.height = Math.max(maxHeight, minHeight);
- } else {
- this.height = this.manualHeight ? this.height : Math.max(maxHeight, minHeight);
- }
-
- this.heightStyled = this.height ? this.height + "px" : "";
- this.outerHeight = this.element.offsetHeight;
-};
-
-//set of cells
-Row.prototype.setCellHeight = function () {
- this.cells.forEach(function (cell) {
- cell.setHeight();
- });
-
- this.heightInitialized = true;
-};
-
-Row.prototype.clearCellHeight = function () {
- this.cells.forEach(function (cell) {
- cell.clearHeight();
- });
-};
-
-//normalize the height of elements in the row
-Row.prototype.normalizeHeight = function (force) {
-
- if (force) {
- this.clearCellHeight();
- }
-
- this.calcHeight(force);
-
- this.setCellHeight();
-};
-
-// Row.prototype.setHeight = function(height){
-// this.height = height;
-
-// this.setCellHeight();
-// };
-
-//set height of rows
-Row.prototype.setHeight = function (height, force) {
- if (this.height != height || force) {
-
- this.manualHeight = true;
-
- this.height = height;
- this.heightStyled = height ? height + "px" : "";
-
- this.setCellHeight();
-
- // this.outerHeight = this.element.outerHeight();
- this.outerHeight = this.element.offsetHeight;
- }
-};
-
-//return rows outer height
-Row.prototype.getHeight = function () {
- return this.outerHeight;
-};
-
-//return rows outer Width
-Row.prototype.getWidth = function () {
- return this.element.offsetWidth;
-};
-
-//////////////// Cell Management /////////////////
-
-Row.prototype.deleteCell = function (cell) {
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
- this.cells.splice(index, 1);
- }
-};
-
-//////////////// Data Management /////////////////
-
-Row.prototype.setData = function (data) {
- if (this.table.modExists("mutator")) {
- data = this.table.modules.mutator.transformRow(data, "data");
- }
-
- this.data = data;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
- this.table.modules.reactiveData.watchRow(this);
- }
-};
-
-//update the rows data
-Row.prototype.updateData = function (updatedData) {
- var _this15 = this;
-
- var visible = Tabulator.prototype.helpers.elVisible(this.element),
- tempData = {},
- newRowData;
-
- return new Promise(function (resolve, reject) {
-
- if (typeof updatedData === "string") {
- updatedData = JSON.parse(updatedData);
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
- _this15.table.modules.reactiveData.block();
- }
-
- //mutate incomming data if needed
- if (_this15.table.modExists("mutator")) {
-
- tempData = Object.assign(tempData, _this15.data);
- tempData = Object.assign(tempData, updatedData);
-
- newRowData = _this15.table.modules.mutator.transformRow(tempData, "data", updatedData);
- } else {
- newRowData = updatedData;
- }
-
- //set data
- for (var attrname in newRowData) {
- _this15.data[attrname] = newRowData[attrname];
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
- _this15.table.modules.reactiveData.unblock();
- }
-
- //update affected cells only
- for (var attrname in updatedData) {
-
- var columns = _this15.table.columnManager.getColumnsByFieldRoot(attrname);
-
- columns.forEach(function (column) {
- var cell = _this15.getCell(column.getField());
-
- if (cell) {
- var value = column.getFieldValue(newRowData);
- if (cell.getValue() != value) {
- cell.setValueProcessData(value);
-
- if (visible) {
- cell.cellRendered();
- }
- }
- }
- });
- }
-
- //Partial reinitialization if visible
- if (visible) {
- _this15.normalizeHeight(true);
-
- if (_this15.table.options.rowFormatter) {
- _this15.table.options.rowFormatter(_this15.getComponent());
- }
- } else {
- _this15.initialized = false;
- _this15.height = 0;
- _this15.heightStyled = "";
- }
-
- if (_this15.table.options.dataTree !== false && _this15.table.modExists("dataTree") && _this15.table.modules.dataTree.redrawNeeded(updatedData)) {
- _this15.table.modules.dataTree.initializeRow(_this15);
- _this15.table.modules.dataTree.layoutRow(_this15);
- _this15.table.rowManager.refreshActiveData("tree", false, true);
- }
-
- //this.reinitialize();
-
- _this15.table.options.rowUpdated.call(_this15.table, _this15.getComponent());
-
- resolve();
- });
-};
-
-Row.prototype.getData = function (transform) {
- var self = this;
-
- if (transform) {
- if (self.table.modExists("accessor")) {
- return self.table.modules.accessor.transformRow(self.data, transform);
- }
- } else {
- return this.data;
- }
-};
-
-Row.prototype.getCell = function (column) {
- var match = false;
-
- column = this.table.columnManager.findColumn(column);
-
- match = this.cells.find(function (cell) {
- return cell.column === column;
- });
-
- return match;
-};
-
-Row.prototype.getCellIndex = function (findCell) {
- return this.cells.findIndex(function (cell) {
- return cell === findCell;
- });
-};
-
-Row.prototype.findNextEditableCell = function (index) {
- var nextCell = false;
-
- if (index < this.cells.length - 1) {
- for (var i = index + 1; i < this.cells.length; i++) {
- var cell = this.cells[i];
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
- var allowEdit = true;
-
- if (typeof cell.column.modules.edit.check == "function") {
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
- nextCell = cell;
- break;
- }
- }
- }
- }
-
- return nextCell;
-};
-
-Row.prototype.findPrevEditableCell = function (index) {
- var prevCell = false;
-
- if (index > 0) {
- for (var i = index - 1; i >= 0; i--) {
- var cell = this.cells[i],
- allowEdit = true;
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
- if (typeof cell.column.modules.edit.check == "function") {
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
- prevCell = cell;
- break;
- }
- }
- }
- }
-
- return prevCell;
-};
-
-Row.prototype.getCells = function () {
- return this.cells;
-};
-
-Row.prototype.nextRow = function () {
- var row = this.table.rowManager.nextDisplayRow(this, true);
- return row || false;
-};
-
-Row.prototype.prevRow = function () {
- var row = this.table.rowManager.prevDisplayRow(this, true);
- return row || false;
-};
-
-Row.prototype.moveToRow = function (to, before) {
- var toRow = this.table.rowManager.findRow(to);
-
- if (toRow) {
- this.table.rowManager.moveRowActual(this, toRow, !before);
- this.table.rowManager.refreshActiveData("display", false, true);
- } else {
- console.warn("Move Error - No matching row found:", to);
- }
-};
-
-///////////////////// Actions /////////////////////
-
-Row.prototype.delete = function () {
- var _this16 = this;
-
- return new Promise(function (resolve, reject) {
- var index, rows;
-
- if (_this16.table.options.history && _this16.table.modExists("history")) {
-
- if (_this16.table.options.groupBy && _this16.table.modExists("groupRows")) {
- rows = _this16.getGroup().rows;
- index = rows.indexOf(_this16);
-
- if (index) {
- index = rows[index - 1];
- }
- } else {
- index = _this16.table.rowManager.getRowIndex(_this16);
-
- if (index) {
- index = _this16.table.rowManager.rows[index - 1];
- }
- }
-
- _this16.table.modules.history.action("rowDelete", _this16, { data: _this16.getData(), pos: !index, index: index });
- }
-
- _this16.deleteActual();
-
- resolve();
- });
-};
-
-Row.prototype.deleteActual = function (blockRedraw) {
- var index = this.table.rowManager.getRowIndex(this);
-
- //deselect row if it is selected
- if (this.table.modExists("selectRow")) {
- this.table.modules.selectRow._deselectRow(this, true);
- }
-
- //cancel edit if row is currently being edited
- if (this.table.modExists("edit")) {
- if (this.table.modules.edit.currentCell.row === this) {
- this.table.modules.edit.cancelEdit();
- }
- }
-
- // if(this.table.options.dataTree && this.table.modExists("dataTree")){
- // this.table.modules.dataTree.collapseRow(this, true);
- // }
-
- //remove any reactive data watchers from row object
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {}
- // this.table.modules.reactiveData.unwatchRow(this);
-
-
- //remove from group
- if (this.modules.group) {
- this.modules.group.removeRow(this);
- }
-
- this.table.rowManager.deleteRow(this, blockRedraw);
-
- this.deleteCells();
-
- this.initialized = false;
- this.heightInitialized = false;
-
- //recalc column calculations if present
- if (this.table.modExists("columnCalcs")) {
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.columnCalcs.recalcRowGroup(this);
- } else {
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
-};
-
-Row.prototype.deleteCells = function () {
- var cellCount = this.cells.length;
-
- for (var i = 0; i < cellCount; i++) {
- this.cells[0].delete();
- }
-};
-
-Row.prototype.wipe = function () {
- this.deleteCells();
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element = false;
- this.modules = {};
-
- if (this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
-};
-
-Row.prototype.getGroup = function () {
- return this.modules.group || false;
-};
-
-//////////////// Object Generation /////////////////
-Row.prototype.getComponent = function () {
- return new RowComponent(this);
-};
-
-//public row object
-var CellComponent = function CellComponent(cell) {
- this._cell = cell;
-};
-
-CellComponent.prototype.getValue = function () {
- return this._cell.getValue();
-};
-
-CellComponent.prototype.getOldValue = function () {
- return this._cell.getOldValue();
-};
-
-CellComponent.prototype.getElement = function () {
- return this._cell.getElement();
-};
-
-CellComponent.prototype.getRow = function () {
- return this._cell.row.getComponent();
-};
-
-CellComponent.prototype.getData = function () {
- return this._cell.row.getData();
-};
-
-CellComponent.prototype.getField = function () {
- return this._cell.column.getField();
-};
-
-CellComponent.prototype.getColumn = function () {
- return this._cell.column.getComponent();
-};
-
-CellComponent.prototype.setValue = function (value, mutate) {
- if (typeof mutate == "undefined") {
- mutate = true;
- }
-
- this._cell.setValue(value, mutate);
-};
-
-CellComponent.prototype.restoreOldValue = function () {
- this._cell.setValueActual(this._cell.getOldValue());
-};
-
-CellComponent.prototype.edit = function (force) {
- return this._cell.edit(force);
-};
-
-CellComponent.prototype.cancelEdit = function () {
- this._cell.cancelEdit();
-};
-
-CellComponent.prototype.nav = function () {
- return this._cell.nav();
-};
-
-CellComponent.prototype.checkHeight = function () {
- this._cell.checkHeight();
-};
-
-CellComponent.prototype.getTable = function () {
- return this._cell.table;
-};
-
-CellComponent.prototype._getSelf = function () {
- return this._cell;
-};
-
-var Cell = function Cell(column, row) {
-
- this.table = column.table;
- this.column = column;
- this.row = row;
- this.element = null;
- this.value = null;
- this.oldValue = null;
- this.modules = {};
-
- this.height = null;
- this.width = null;
- this.minWidth = null;
-
- this.build();
-};
-
-//////////////// Setup Functions /////////////////
-
-//generate element
-Cell.prototype.build = function () {
- this.generateElement();
-
- this.setWidth();
-
- this._configureCell();
-
- this.setValueActual(this.column.getFieldValue(this.row.data));
-};
-
-Cell.prototype.generateElement = function () {
- this.element = document.createElement('div');
- this.element.className = "tabulator-cell";
- this.element.setAttribute("role", "gridcell");
- this.element = this.element;
-};
-
-Cell.prototype._configureCell = function () {
- var self = this,
- cellEvents = self.column.cellEvents,
- element = self.element,
- field = this.column.getField(),
- vertAligns = {
- top: "flex-start",
- bottom: "flex-end",
- middle: "center"
- },
- hozAligns = {
- left: "flex-start",
- right: "flex-end",
- center: "center"
- };
-
- //set text alignment
- element.style.textAlign = self.column.hozAlign;
-
- if (self.column.vertAlign) {
- element.style.display = "inline-flex";
-
- element.style.alignItems = vertAligns[self.column.vertAlign] || "";
-
- if (self.column.hozAlign) {
- element.style.justifyContent = hozAligns[self.column.hozAlign] || "";
- }
- }
-
- if (field) {
- element.setAttribute("tabulator-field", field);
- }
-
- //add class to cell if needed
- if (self.column.definition.cssClass) {
- var classNames = self.column.definition.cssClass.split(" ");
- classNames.forEach(function (className) {
- element.classList.add(className);
- });
- }
-
- //update tooltip on mouse enter
- if (this.table.options.tooltipGenerationMode === "hover") {
- element.addEventListener("mouseenter", function (e) {
- self._generateTooltip();
- });
- }
-
- self._bindClickEvents(cellEvents);
-
- self._bindTouchEvents(cellEvents);
-
- self._bindMouseEvents(cellEvents);
-
- if (self.column.modules.edit) {
- self.table.modules.edit.bindEditor(self);
- }
-
- if (self.column.definition.rowHandle && self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
- self.table.modules.moveRow.initializeCell(self);
- }
-
- //hide cell if not visible
- if (!self.column.visible) {
- self.hide();
- }
-};
-
-Cell.prototype._bindClickEvents = function (cellEvents) {
- var self = this,
- element = self.element;
-
- //set event bindings
- if (cellEvents.cellClick || self.table.options.cellClick) {
- element.addEventListener("click", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellClick) {
- cellEvents.cellClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellClick) {
- self.table.options.cellClick.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellDblClick || this.table.options.cellDblClick) {
- element.addEventListener("dblclick", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellDblClick) {
- cellEvents.cellDblClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblClick) {
- self.table.options.cellDblClick.call(self.table, e, component);
- }
- });
- } else {
- element.addEventListener("dblclick", function (e) {
-
- if (self.table.modExists("edit")) {
- if (self.table.modules.edit.currentCell === self) {
- return; //prevent instant selection of editor content
- }
- }
-
- e.preventDefault();
-
- try {
- if (document.selection) {
- // IE
- var range = document.body.createTextRange();
- range.moveToElementText(self.element);
- range.select();
- } else if (window.getSelection) {
- var range = document.createRange();
- range.selectNode(self.element);
- window.getSelection().removeAllRanges();
- window.getSelection().addRange(range);
- }
- } catch (e) {}
- });
- }
-
- if (cellEvents.cellContext || this.table.options.cellContext) {
- element.addEventListener("contextmenu", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellContext) {
- cellEvents.cellContext.call(self.table, e, component);
- }
-
- if (self.table.options.cellContext) {
- self.table.options.cellContext.call(self.table, e, component);
- }
- });
- }
-};
-
-Cell.prototype._bindMouseEvents = function (cellEvents) {
- var self = this,
- element = self.element;
-
- if (cellEvents.cellMouseEnter || self.table.options.cellMouseEnter) {
- element.addEventListener("mouseenter", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseEnter) {
- cellEvents.cellMouseEnter.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseEnter) {
- self.table.options.cellMouseEnter.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseLeave || self.table.options.cellMouseLeave) {
- element.addEventListener("mouseleave", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseLeave) {
- cellEvents.cellMouseLeave.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseLeave) {
- self.table.options.cellMouseLeave.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOver || self.table.options.cellMouseOver) {
- element.addEventListener("mouseover", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOver) {
- cellEvents.cellMouseOver.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOver) {
- self.table.options.cellMouseOver.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOut || self.table.options.cellMouseOut) {
- element.addEventListener("mouseout", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOut) {
- cellEvents.cellMouseOut.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOut) {
- self.table.options.cellMouseOut.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseMove || self.table.options.cellMouseMove) {
- element.addEventListener("mousemove", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseMove) {
- cellEvents.cellMouseMove.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseMove) {
- self.table.options.cellMouseMove.call(self.table, e, component);
- }
- });
- }
-};
-
-Cell.prototype._bindTouchEvents = function (cellEvents) {
- var self = this,
- element = self.element,
- dblTap,
- tapHold,
- tap;
-
- if (cellEvents.cellTap || this.table.options.cellTap) {
- tap = false;
-
- element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
- if (tap) {
- var component = self.getComponent();
-
- if (cellEvents.cellTap) {
- cellEvents.cellTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellTap) {
- self.table.options.cellTap.call(self.table, e, component);
- }
- }
-
- tap = false;
- });
- }
-
- if (cellEvents.cellDblTap || this.table.options.cellDblTap) {
- dblTap = null;
-
- element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- var component = self.getComponent();
-
- if (cellEvents.cellDblTap) {
- cellEvents.cellDblTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblTap) {
- self.table.options.cellDblTap.call(self.table, e, component);
- }
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (cellEvents.cellTapHold || this.table.options.cellTapHold) {
- tapHold = null;
-
- element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- var component = self.getComponent();
-
- if (cellEvents.cellTapHold) {
- cellEvents.cellTapHold.call(self.table, e, component);
- }
-
- if (self.table.options.cellTapHold) {
- self.table.options.cellTapHold.call(self.table, e, component);
- }
- }, 1000);
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-};
-
-//generate cell contents
-Cell.prototype._generateContents = function () {
- var val;
-
- if (this.table.modExists("format")) {
- val = this.table.modules.format.formatValue(this);
- } else {
- val = this.element.innerHTML = this.value;
- }
-
- switch (typeof val === 'undefined' ? 'undefined' : _typeof(val)) {
- case "object":
- if (val instanceof Node) {
-
- //clear previous cell contents
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element.appendChild(val);
- } else {
- this.element.innerHTML = "";
-
- if (val != null) {
- console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val);
- }
- }
- break;
- case "undefined":
- case "null":
- this.element.innerHTML = "";
- break;
- default:
- this.element.innerHTML = val;
- }
-};
-
-Cell.prototype.cellRendered = function () {
- if (this.table.modExists("format") && this.table.modules.format.cellRendered) {
- this.table.modules.format.cellRendered(this);
- }
-};
-
-//generate tooltip text
-Cell.prototype._generateTooltip = function () {
- var tooltip = this.column.tooltip;
-
- if (tooltip) {
- if (tooltip === true) {
- tooltip = this.value;
- } else if (typeof tooltip == "function") {
- tooltip = tooltip(this.getComponent());
-
- if (tooltip === false) {
- tooltip = "";
- }
- }
-
- if (typeof tooltip === "undefined") {
- tooltip = "";
- }
-
- this.element.setAttribute("title", tooltip);
- } else {
- this.element.setAttribute("title", "");
- }
-};
-
-//////////////////// Getters ////////////////////
-Cell.prototype.getElement = function () {
- return this.element;
-};
-
-Cell.prototype.getValue = function () {
- return this.value;
-};
-
-Cell.prototype.getOldValue = function () {
- return this.oldValue;
-};
-
-//////////////////// Actions ////////////////////
-
-Cell.prototype.setValue = function (value, mutate) {
-
- var changed = this.setValueProcessData(value, mutate),
- component;
-
- if (changed) {
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.action("cellEdit", this, { oldValue: this.oldValue, newValue: this.value });
- }
-
- component = this.getComponent();
-
- if (this.column.cellEvents.cellEdited) {
- this.column.cellEvents.cellEdited.call(this.table, component);
- }
-
- this.cellRendered();
-
- this.table.options.cellEdited.call(this.table, component);
-
- this.table.options.dataEdited.call(this.table, this.table.rowManager.getData());
- }
-};
-
-Cell.prototype.setValueProcessData = function (value, mutate) {
- var changed = false;
-
- if (this.value != value) {
-
- changed = true;
-
- if (mutate) {
- if (this.column.modules.mutate) {
- value = this.table.modules.mutator.transformCell(this, value);
- }
- }
- }
-
- this.setValueActual(value);
-
- if (changed && this.table.modExists("columnCalcs")) {
- if (this.column.definition.topCalc || this.column.definition.bottomCalc) {
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (this.table.options.columnCalcs == "table" || this.table.options.columnCalcs == "both") {
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.columnCalcs != "table") {
- this.table.modules.columnCalcs.recalcRowGroup(this.row);
- }
- } else {
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
- }
-
- return changed;
-};
-
-Cell.prototype.setValueActual = function (value) {
- this.oldValue = this.value;
-
- this.value = value;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
- this.table.modules.reactiveData.block();
- }
-
- this.column.setFieldValue(this.row.data, value);
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
- this.table.modules.reactiveData.unblock();
- }
-
- this._generateContents();
- this._generateTooltip();
-
- //set resizable handles
- if (this.table.options.resizableColumns && this.table.modExists("resizeColumns")) {
- this.table.modules.resizeColumns.initializeColumn("cell", this.column, this.element);
- }
-
- //set column menu
- if (this.column.definition.contextMenu && this.table.modExists("menu")) {
- this.table.modules.menu.initializeCell(this);
- }
-
- //handle frozen cells
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layoutElement(this.element, this.column);
- }
-};
-
-Cell.prototype.setWidth = function () {
- this.width = this.column.width;
- this.element.style.width = this.column.widthStyled;
-};
-
-Cell.prototype.clearWidth = function () {
- this.width = "";
- this.element.style.width = "";
-};
-
-Cell.prototype.getWidth = function () {
- return this.width || this.element.offsetWidth;
-};
-
-Cell.prototype.setMinWidth = function () {
- this.minWidth = this.column.minWidth;
- this.element.style.minWidth = this.column.minWidthStyled;
-};
-
-Cell.prototype.checkHeight = function () {
- // var height = this.element.css("height");
- this.row.reinitializeHeight();
-};
-
-Cell.prototype.clearHeight = function () {
- this.element.style.height = "";
- this.height = null;
-};
-
-Cell.prototype.setHeight = function () {
- this.height = this.row.height;
- this.element.style.height = this.row.heightStyled;
-};
-
-Cell.prototype.getHeight = function () {
- return this.height || this.element.offsetHeight;
-};
-
-Cell.prototype.show = function () {
- this.element.style.display = "";
-};
-
-Cell.prototype.hide = function () {
- this.element.style.display = "none";
-};
-
-Cell.prototype.edit = function (force) {
- if (this.table.modExists("edit", true)) {
- return this.table.modules.edit.editCell(this, force);
- }
-};
-
-Cell.prototype.cancelEdit = function () {
- if (this.table.modExists("edit", true)) {
- var editing = this.table.modules.edit.getCurrentCell();
-
- if (editing && editing._getSelf() === this) {
- this.table.modules.edit.cancelEdit();
- } else {
- console.warn("Cancel Editor Error - This cell is not currently being edited ");
- }
- }
-};
-
-Cell.prototype.delete = function () {
- if (!this.table.rowManager.redrawBlock) {
- this.element.parentNode.removeChild(this.element);
- }
- this.element = false;
- this.column.deleteCell(this);
- this.row.deleteCell(this);
- this.calcs = {};
-};
-
-//////////////// Navigation /////////////////
-
-Cell.prototype.nav = function () {
-
- var self = this,
- nextCell = false,
- index = this.row.getCellIndex(this);
-
- return {
- next: function next() {
- var nextCell = this.right(),
- nextRow;
-
- if (!nextCell) {
- nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
- nextCell = nextRow.findNextEditableCell(-1);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- }
- }
- } else {
- return true;
- }
-
- return false;
- },
- prev: function prev() {
- var nextCell = this.left(),
- prevRow;
-
- if (!nextCell) {
- prevRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (prevRow) {
- nextCell = prevRow.findPrevEditableCell(prevRow.cells.length);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- }
- }
- } else {
- return true;
- }
-
- return false;
- },
- left: function left() {
-
- nextCell = self.row.findPrevEditableCell(index);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- } else {
- return false;
- }
- },
- right: function right() {
- nextCell = self.row.findNextEditableCell(index);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- } else {
- return false;
- }
- },
- up: function up() {
- var nextRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (nextRow) {
- nextRow.cells[index].edit();
- }
- },
- down: function down() {
- var nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
- nextRow.cells[index].edit();
- }
- }
-
- };
-};
-
-Cell.prototype.getIndex = function () {
- this.row.getCellIndex(this);
-};
-
-//////////////// Object Generation /////////////////
-Cell.prototype.getComponent = function () {
- return new CellComponent(this);
-};
-var FooterManager = function FooterManager(table) {
- this.table = table;
- this.active = false;
- this.element = this.createElement(); //containing element
- this.external = false;
- this.links = [];
-
- this._initialize();
-};
-
-FooterManager.prototype.createElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-footer");
-
- return el;
-};
-
-FooterManager.prototype._initialize = function (element) {
- if (this.table.options.footerElement) {
-
- switch (_typeof(this.table.options.footerElement)) {
- case "string":
-
- if (this.table.options.footerElement[0] === "<") {
- this.element.innerHTML = this.table.options.footerElement;
- } else {
- this.external = true;
- this.element = document.querySelector(this.table.options.footerElement);
- }
- break;
- default:
- this.element = this.table.options.footerElement;
- break;
- }
- }
-};
-
-FooterManager.prototype.getElement = function () {
- return this.element;
-};
-
-FooterManager.prototype.append = function (element, parent) {
- this.activate(parent);
-
- this.element.appendChild(element);
- this.table.rowManager.adjustTableSize();
-};
-
-FooterManager.prototype.prepend = function (element, parent) {
- this.activate(parent);
-
- this.element.insertBefore(element, this.element.firstChild);
- this.table.rowManager.adjustTableSize();
-};
-
-FooterManager.prototype.remove = function (element) {
- element.parentNode.removeChild(element);
- this.deactivate();
-};
-
-FooterManager.prototype.deactivate = function (force) {
- if (!this.element.firstChild || force) {
- if (!this.external) {
- this.element.parentNode.removeChild(this.element);
- }
- this.active = false;
- }
-
- // this.table.rowManager.adjustTableSize();
-};
-
-FooterManager.prototype.activate = function (parent) {
- if (!this.active) {
- this.active = true;
- if (!this.external) {
- this.table.element.appendChild(this.getElement());
- this.table.element.style.display = '';
- }
- }
-
- if (parent) {
- this.links.push(parent);
- }
-};
-
-FooterManager.prototype.redraw = function () {
- this.links.forEach(function (link) {
- link.footerRedraw();
- });
-};
-
-var Tabulator = function Tabulator(element, options) {
-
- this.options = {};
-
- this.columnManager = null; // hold Column Manager
- this.rowManager = null; //hold Row Manager
- this.footerManager = null; //holder Footer Manager
- this.browser = ""; //hold current browser type
- this.browserSlow = false; //handle reduced functionality for slower browsers
- this.browserMobile = false; //check if running on moble, prevent resize cancelling edit on keyboard appearence
-
- this.modules = {}; //hold all modules bound to this table
-
- this.initializeElement(element);
- this.initializeOptions(options || {});
- this._create();
-
- Tabulator.prototype.comms.register(this); //register table for inderdevice communication
-};
-
-//default setup options
-Tabulator.prototype.defaultOptions = {
-
- height: false, //height of tabulator
- minHeight: false, //minimum height of tabulator
- maxHeight: false, //maximum height of tabulator
-
- layout: "fitData", ///layout type "fitColumns" | "fitData"
- layoutColumnsOnNewData: false, //update column widths on setData
-
- columnMinWidth: 40, //minimum global width for a column
- columnHeaderVertAlign: "top", //vertical alignment of column headers
- columnVertAlign: false, // DEPRECATED - Left to allow warning
-
- resizableColumns: true, //resizable columns
- resizableRows: false, //resizable rows
- autoResize: true, //auto resize table
-
- columns: [], //store for colum header info
-
- cellHozAlign: "", //horizontal align columns
- cellVertAlign: "", //certical align columns
-
-
- data: [], //default starting data
-
- autoColumns: false, //build columns from data row structure
-
- reactiveData: false, //enable data reactivity
-
- nestedFieldSeparator: ".", //seperatpr for nested data
-
- tooltips: false, //Tool tip value
- tooltipsHeader: false, //Tool tip for headers
- tooltipGenerationMode: "load", //when to generate tooltips
-
- initialSort: false, //initial sorting criteria
- initialFilter: false, //initial filtering criteria
- initialHeaderFilter: false, //initial header filtering criteria
-
- columnHeaderSortMulti: true, //multiple or single column sorting
-
- sortOrderReverse: false, //reverse internal sort ordering
-
- headerSort: true, //set default global header sort
- headerSortTristate: false, //set default tristate header sorting
-
- footerElement: false, //hold footer element
-
- index: "id", //filed for row index
-
- keybindings: [], //array for keybindings
-
- tabEndNewRow: false, //create new row when tab to end of table
-
- invalidOptionWarnings: true, //allow toggling of invalid option warnings
-
- clipboard: false, //enable clipboard
- clipboardCopyStyled: true, //formatted table data
- clipboardCopyConfig: false, //clipboard config
- clipboardCopyFormatter: false, //DEPRICATED - REMOVE in 5.0
- clipboardCopyRowRange: "active", //restrict clipboard to visible rows only
- clipboardPasteParser: "table", //convert pasted clipboard data to rows
- clipboardPasteAction: "insert", //how to insert pasted data into the table
-
- clipboardCopied: function clipboardCopied() {}, //data has been copied to the clipboard
- clipboardPasted: function clipboardPasted() {}, //data has been pasted into the table
- clipboardPasteError: function clipboardPasteError() {}, //data has not successfully been pasted into the table
-
- downloadDataFormatter: false, //function to manipulate table data before it is downloaded
- downloadReady: function downloadReady(data, blob) {
- return blob;
- }, //function to manipulate download data
- downloadComplete: false, //function to manipulate download data
- downloadConfig: false, //download config
-
- dataTree: false, //enable data tree
- dataTreeElementColumn: false,
- dataTreeBranchElement: true, //show data tree branch element
- dataTreeChildIndent: 9, //data tree child indent in px
- dataTreeChildField: "_children", //data tre column field to look for child rows
- dataTreeCollapseElement: false, //data tree row collapse element
- dataTreeExpandElement: false, //data tree row expand element
- dataTreeStartExpanded: false,
- dataTreeRowExpanded: function dataTreeRowExpanded() {}, //row has been expanded
- dataTreeRowCollapsed: function dataTreeRowCollapsed() {}, //row has been collapsed
- dataTreeChildColumnCalcs: false, //include visible data tree rows in column calculations
- dataTreeSelectPropagate: false, //seleccting a parent row selects its children
-
- printAsHtml: false, //enable print as html
- printFormatter: false, //printing page formatter
- printHeader: false, //page header contents
- printFooter: false, //page footer contents
- printCopyStyle: true, //DEPRICATED - REMOVE in 5.0
- printStyled: true, //enable print as html styling
- printVisibleRows: true, //DEPRICATED - REMOVE in 5.0
- printRowRange: "visible", //restrict print to visible rows only
- printConfig: {}, //print config options
-
- addRowPos: "bottom", //position to insert blank rows, top|bottom
-
- selectable: "highlight", //highlight rows on hover
- selectableRangeMode: "drag", //highlight rows on hover
- selectableRollingSelection: true, //roll selection once maximum number of selectable rows is reached
- selectablePersistence: true, // maintain selection when table view is updated
- selectableCheck: function selectableCheck(data, row) {
- return true;
- }, //check wheather row is selectable
-
- headerFilterLiveFilterDelay: 300, //delay before updating column after user types in header filter
- headerFilterPlaceholder: false, //placeholder text to display in header filters
-
- headerVisible: true, //hide header
-
- history: false, //enable edit history
-
- locale: false, //current system language
- langs: {},
-
- virtualDom: true, //enable DOM virtualization
- virtualDomBuffer: 0, // set virtual DOM buffer size
-
- persistentLayout: false, //DEPRICATED - REMOVE in 5.0
- persistentSort: false, //DEPRICATED - REMOVE in 5.0
- persistentFilter: false, //DEPRICATED - REMOVE in 5.0
- persistenceID: "", //key for persistent storage
- persistenceMode: true, //mode for storing persistence information
- persistenceReaderFunc: false, //function for handling persistence data reading
- persistenceWriterFunc: false, //function for handling persistence data writing
-
- persistence: false,
-
- responsiveLayout: false, //responsive layout flags
- responsiveLayoutCollapseStartOpen: true, //start showing collapsed data
- responsiveLayoutCollapseUseFormatters: true, //responsive layout collapse formatter
- responsiveLayoutCollapseFormatter: false, //responsive layout collapse formatter
-
- pagination: false, //set pagination type
- paginationSize: false, //set number of rows to a page
- paginationInitialPage: 1, //initail page to show on load
- paginationButtonCount: 5, // set count of page button
- paginationSizeSelector: false, //add pagination size selector element
- paginationElement: false, //element to hold pagination numbers
- paginationDataSent: {}, //pagination data sent to the server
- paginationDataReceived: {}, //pagination data received from the server
- paginationAddRow: "page", //add rows on table or page
-
- ajaxURL: false, //url for ajax loading
- ajaxURLGenerator: false,
- ajaxParams: {}, //params for ajax loading
- ajaxConfig: "get", //ajax request type
- ajaxContentType: "form", //ajax request type
- ajaxRequestFunc: false, //promise function
- ajaxLoader: true, //show loader
- ajaxLoaderLoading: false, //loader element
- ajaxLoaderError: false, //loader element
- ajaxFiltering: false,
- ajaxSorting: false,
- ajaxProgressiveLoad: false, //progressive loading
- ajaxProgressiveLoadDelay: 0, //delay between requests
- ajaxProgressiveLoadScrollMargin: 0, //margin before scroll begins
-
- groupBy: false, //enable table grouping and set field to group by
- groupStartOpen: true, //starting state of group
- groupValues: false,
-
- groupHeader: false, //header generation function
-
- htmlOutputConfig: false, //html outypu config
-
- movableColumns: false, //enable movable columns
-
- movableRows: false, //enable movable rows
- movableRowsConnectedTables: false, //tables for movable rows to be connected to
- movableRowsSender: false,
- movableRowsReceiver: "insert",
- movableRowsSendingStart: function movableRowsSendingStart() {},
- movableRowsSent: function movableRowsSent() {},
- movableRowsSentFailed: function movableRowsSentFailed() {},
- movableRowsSendingStop: function movableRowsSendingStop() {},
- movableRowsReceivingStart: function movableRowsReceivingStart() {},
- movableRowsReceived: function movableRowsReceived() {},
- movableRowsReceivedFailed: function movableRowsReceivedFailed() {},
- movableRowsReceivingStop: function movableRowsReceivingStop() {},
-
- scrollToRowPosition: "top",
- scrollToRowIfVisible: true,
-
- scrollToColumnPosition: "left",
- scrollToColumnIfVisible: true,
-
- rowFormatter: false,
- rowFormatterPrint: null,
- rowFormatterClipboard: null,
- rowFormatterHtmlOutput: null,
-
- placeholder: false,
-
- //table building callbacks
- tableBuilding: function tableBuilding() {},
- tableBuilt: function tableBuilt() {},
-
- //render callbacks
- renderStarted: function renderStarted() {},
- renderComplete: function renderComplete() {},
-
- //row callbacks
- rowClick: false,
- rowDblClick: false,
- rowContext: false,
- rowTap: false,
- rowDblTap: false,
- rowTapHold: false,
- rowMouseEnter: false,
- rowMouseLeave: false,
- rowMouseOver: false,
- rowMouseOut: false,
- rowMouseMove: false,
- rowContextMenu: false,
- rowAdded: function rowAdded() {},
- rowDeleted: function rowDeleted() {},
- rowMoved: function rowMoved() {},
- rowUpdated: function rowUpdated() {},
- rowSelectionChanged: function rowSelectionChanged() {},
- rowSelected: function rowSelected() {},
- rowDeselected: function rowDeselected() {},
- rowResized: function rowResized() {},
-
- //cell callbacks
- //row callbacks
- cellClick: false,
- cellDblClick: false,
- cellContext: false,
- cellTap: false,
- cellDblTap: false,
- cellTapHold: false,
- cellMouseEnter: false,
- cellMouseLeave: false,
- cellMouseOver: false,
- cellMouseOut: false,
- cellMouseMove: false,
- cellEditing: function cellEditing() {},
- cellEdited: function cellEdited() {},
- cellEditCancelled: function cellEditCancelled() {},
-
- //column callbacks
- columnMoved: false,
- columnResized: function columnResized() {},
- columnTitleChanged: function columnTitleChanged() {},
- columnVisibilityChanged: function columnVisibilityChanged() {},
-
- //HTML iport callbacks
- htmlImporting: function htmlImporting() {},
- htmlImported: function htmlImported() {},
-
- //data callbacks
- dataLoading: function dataLoading() {},
- dataLoaded: function dataLoaded() {},
- dataEdited: function dataEdited() {},
-
- //ajax callbacks
- ajaxRequesting: function ajaxRequesting() {},
- ajaxResponse: false,
- ajaxError: function ajaxError() {},
-
- //filtering callbacks
- dataFiltering: false,
- dataFiltered: false,
-
- //sorting callbacks
- dataSorting: function dataSorting() {},
- dataSorted: function dataSorted() {},
-
- //grouping callbacks
- groupToggleElement: "arrow",
- groupClosedShowCalcs: false,
- dataGrouping: function dataGrouping() {},
- dataGrouped: false,
- groupVisibilityChanged: function groupVisibilityChanged() {},
- groupClick: false,
- groupDblClick: false,
- groupContext: false,
- groupTap: false,
- groupDblTap: false,
- groupTapHold: false,
-
- columnCalcs: true,
-
- //pagination callbacks
- pageLoaded: function pageLoaded() {},
-
- //localization callbacks
- localized: function localized() {},
-
- //validation has failed
- validationFailed: function validationFailed() {},
-
- //history callbacks
- historyUndo: function historyUndo() {},
- historyRedo: function historyRedo() {},
-
- //scroll callbacks
- scrollHorizontal: function scrollHorizontal() {},
- scrollVertical: function scrollVertical() {}
-
-};
-
-Tabulator.prototype.initializeOptions = function (options) {
-
- //warn user if option is not available
- if (options.invalidOptionWarnings !== false) {
- for (var key in options) {
- if (typeof this.defaultOptions[key] === "undefined") {
- console.warn("Invalid table constructor option:", key);
- }
- }
- }
-
- //assign options to table
- for (var key in this.defaultOptions) {
- if (key in options) {
- this.options[key] = options[key];
- } else {
- if (Array.isArray(this.defaultOptions[key])) {
- this.options[key] = [];
- } else if (_typeof(this.defaultOptions[key]) === "object" && this.defaultOptions[key] !== null) {
- this.options[key] = {};
- } else {
- this.options[key] = this.defaultOptions[key];
- }
- }
- }
-};
-
-Tabulator.prototype.initializeElement = function (element) {
-
- if (typeof HTMLElement !== "undefined" && element instanceof HTMLElement) {
- this.element = element;
- return true;
- } else if (typeof element === "string") {
- this.element = document.querySelector(element);
-
- if (this.element) {
- return true;
- } else {
- console.error("Tabulator Creation Error - no element found matching selector: ", element);
- return false;
- }
- } else {
- console.error("Tabulator Creation Error - Invalid element provided:", element);
- return false;
- }
-};
-
-//convert depricated functionality to new functions
-Tabulator.prototype._mapDepricatedFunctionality = function () {
-
- //map depricated persistance setup options
- if (this.options.persistentLayout || this.options.persistentSort || this.options.persistentFilter) {
- if (!this.options.persistence) {
- this.options.persistence = {};
- }
- }
-
- if (typeof this.options.clipboardCopyHeader !== "undefined") {
- this.options.columnHeaders = this.options.clipboardCopyHeader;
- console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option");
- }
-
- if (this.options.printVisibleRows !== true) {
- console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option");
-
- this.options.persistence.printRowRange = "active";
- }
-
- if (this.options.printCopyStyle !== true) {
- console.warn("printCopyStyle option is deprecated, you should now use the printStyled option");
-
- this.options.persistence.printStyled = this.options.printCopyStyle;
- }
-
- if (this.options.persistentLayout) {
- console.warn("persistentLayout option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.columns === "undefined") {
- this.options.persistence.columns = true;
- }
- }
-
- if (this.options.persistentSort) {
- console.warn("persistentSort option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.sort === "undefined") {
- this.options.persistence.sort = true;
- }
- }
-
- if (this.options.persistentFilter) {
- console.warn("persistentFilter option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.filter === "undefined") {
- this.options.persistence.filter = true;
- }
- }
-
- if (this.options.columnVertAlign) {
- console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option");
-
- this.options.columnHeaderVertAlign = this.options.columnVertAlign;
- }
-};
-
-Tabulator.prototype._clearSelection = function () {
-
- this.element.classList.add("tabulator-block-select");
-
- if (window.getSelection) {
- if (window.getSelection().empty) {
- // Chrome
- window.getSelection().empty();
- } else if (window.getSelection().removeAllRanges) {
- // Firefox
- window.getSelection().removeAllRanges();
- }
- } else if (document.selection) {
- // IE?
- document.selection.empty();
- }
-
- this.element.classList.remove("tabulator-block-select");
-};
-
-//concreate table
-Tabulator.prototype._create = function () {
- this._clearObjectPointers();
-
- this._mapDepricatedFunctionality();
-
- this.bindModules();
-
- if (this.element.tagName === "TABLE") {
- if (this.modExists("htmlTableImport", true)) {
- this.modules.htmlTableImport.parseTable();
- }
- }
-
- this.columnManager = new ColumnManager(this);
- this.rowManager = new RowManager(this);
- this.footerManager = new FooterManager(this);
-
- this.columnManager.setRowManager(this.rowManager);
- this.rowManager.setColumnManager(this.columnManager);
-
- this._buildElement();
-
- this._loadInitialData();
-};
-
-//clear pointers to objects in default config object
-Tabulator.prototype._clearObjectPointers = function () {
- this.options.columns = this.options.columns.slice(0);
-
- if (!this.options.reactiveData) {
- this.options.data = this.options.data.slice(0);
- }
-};
-
-//build tabulator element
-Tabulator.prototype._buildElement = function () {
- var _this17 = this;
-
- var element = this.element,
- mod = this.modules,
- options = this.options;
-
- options.tableBuilding.call(this);
-
- element.classList.add("tabulator");
- element.setAttribute("role", "grid");
-
- //empty element
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //set table height
- if (options.height) {
- options.height = isNaN(options.height) ? options.height : options.height + "px";
- element.style.height = options.height;
- }
-
- //set table min height
- if (options.minHeight !== false) {
- options.minHeight = isNaN(options.minHeight) ? options.minHeight : options.minHeight + "px";
- element.style.minHeight = options.minHeight;
- }
-
- //set table maxHeight
- if (options.maxHeight !== false) {
- options.maxHeight = isNaN(options.maxHeight) ? options.maxHeight : options.maxHeight + "px";
- element.style.maxHeight = options.maxHeight;
- }
-
- this.columnManager.initialize();
- this.rowManager.initialize();
-
- this._detectBrowser();
-
- if (this.modExists("layout", true)) {
- mod.layout.initialize(options.layout);
- }
-
- //set localization
- if (options.headerFilterPlaceholder !== false) {
- mod.localize.setHeaderFilterPlaceholder(options.headerFilterPlaceholder);
- }
-
- for (var locale in options.langs) {
- mod.localize.installLang(locale, options.langs[locale]);
- }
-
- mod.localize.setLocale(options.locale);
-
- //configure placeholder element
- if (typeof options.placeholder == "string") {
-
- var el = document.createElement("div");
- el.classList.add("tabulator-placeholder");
-
- var span = document.createElement("span");
- span.innerHTML = options.placeholder;
-
- el.appendChild(span);
-
- options.placeholder = el;
- }
-
- //build table elements
- element.appendChild(this.columnManager.getElement());
- element.appendChild(this.rowManager.getElement());
-
- if (options.footerElement) {
- this.footerManager.activate();
- }
-
- if (options.persistence && this.modExists("persistence", true)) {
- mod.persistence.initialize();
- }
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.columns) {
- options.columns = mod.persistence.load("columns", options.columns);
- }
-
- if (options.movableRows && this.modExists("moveRow")) {
- mod.moveRow.initialize();
- }
-
- if (options.autoColumns && this.options.data) {
- this.columnManager.generateColumnsFromRowData(this.options.data);
- }
-
- if (this.modExists("columnCalcs")) {
- mod.columnCalcs.initialize();
- }
-
- this.columnManager.setColumns(options.columns);
-
- if (options.dataTree && this.modExists("dataTree", true)) {
- mod.dataTree.initialize();
- }
-
- if (this.modExists("frozenRows")) {
- this.modules.frozenRows.initialize();
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort || options.initialSort) && this.modExists("sort", true)) {
- var sorters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort) {
- sorters = mod.persistence.load("sort");
-
- if (sorters === false && options.initialSort) {
- sorters = options.initialSort;
- }
- } else if (options.initialSort) {
- sorters = options.initialSort;
- }
-
- mod.sort.setSort(sorters);
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter || options.initialFilter) && this.modExists("filter", true)) {
- var filters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter) {
- filters = mod.persistence.load("filter");
-
- if (filters === false && options.initialFilter) {
- filters = options.initialFilter;
- }
- } else if (options.initialFilter) {
- filters = options.initialFilter;
- }
-
- mod.filter.setFilter(filters);
- }
-
- if (options.initialHeaderFilter && this.modExists("filter", true)) {
- options.initialHeaderFilter.forEach(function (item) {
-
- var column = _this17.columnManager.findColumn(item.field);
-
- if (column) {
- mod.filter.setHeaderFilterValue(column, item.value);
- } else {
- console.warn("Column Filter Error - No matching column found:", item.field);
- return false;
- }
- });
- }
-
- if (this.modExists("ajax")) {
- mod.ajax.initialize();
- }
-
- if (options.pagination && this.modExists("page", true)) {
- mod.page.initialize();
- }
-
- if (options.groupBy && this.modExists("groupRows", true)) {
- mod.groupRows.initialize();
- }
-
- if (this.modExists("keybindings")) {
- mod.keybindings.initialize();
- }
-
- if (this.modExists("selectRow")) {
- mod.selectRow.clearSelectionData(true);
- }
-
- if (options.autoResize && this.modExists("resizeTable")) {
- mod.resizeTable.initialize();
- }
-
- if (this.modExists("clipboard")) {
- mod.clipboard.initialize();
- }
-
- if (options.printAsHtml && this.modExists("print")) {
- mod.print.initialize();
- }
-
- options.tableBuilt.call(this);
-};
-
-Tabulator.prototype._loadInitialData = function () {
- var self = this;
-
- if (self.options.pagination && self.modExists("page")) {
- self.modules.page.reset(true, true);
-
- if (self.options.pagination == "local") {
- if (self.options.data.length) {
- self.rowManager.setData(self.options.data, false, true);
- } else {
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {
- if (self.options.paginationInitialPage) {
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- });
-
- return;
- } else {
- self.rowManager.setData(self.options.data, false, true);
- }
- }
-
- if (self.options.paginationInitialPage) {
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- } else {
- if (self.options.ajaxURL) {
- self.modules.page.setPage(self.options.paginationInitialPage).then(function () {}).catch(function () {});
- } else {
- self.rowManager.setData([], false, true);
- }
- }
- } else {
- if (self.options.data.length) {
- self.rowManager.setData(self.options.data);
- } else {
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {});
- } else {
- self.rowManager.setData(self.options.data, false, true);
- }
- }
- }
-};
-
-//deconstructor
-Tabulator.prototype.destroy = function () {
- var element = this.element;
-
- Tabulator.prototype.comms.deregister(this); //deregister table from inderdevice communication
-
- if (this.options.reactiveData && this.modExists("reactiveData", true)) {
- this.modules.reactiveData.unwatchData();
- }
-
- //clear row data
- this.rowManager.rows.forEach(function (row) {
- row.wipe();
- });
-
- this.rowManager.rows = [];
- this.rowManager.activeRows = [];
- this.rowManager.displayRows = [];
-
- //clear event bindings
- if (this.options.autoResize && this.modExists("resizeTable")) {
- this.modules.resizeTable.clearBindings();
- }
-
- if (this.modExists("keybindings")) {
- this.modules.keybindings.clearBindings();
- }
-
- //clear DOM
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.classList.remove("tabulator");
-};
-
-Tabulator.prototype._detectBrowser = function () {
- var ua = navigator.userAgent || navigator.vendor || window.opera;
-
- if (ua.indexOf("Trident") > -1) {
- this.browser = "ie";
- this.browserSlow = true;
- } else if (ua.indexOf("Edge") > -1) {
- this.browser = "edge";
- this.browserSlow = true;
- } else if (ua.indexOf("Firefox") > -1) {
- this.browser = "firefox";
- this.browserSlow = false;
- } else {
- this.browser = "other";
- this.browserSlow = false;
- }
-
- this.browserMobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0, 4));
-};
-
-////////////////// Data Handling //////////////////
-
-//block table redrawing
-Tabulator.prototype.blockRedraw = function () {
- return this.rowManager.blockRedraw();
-};
-
-//restore table redrawing
-Tabulator.prototype.restoreRedraw = function () {
- return this.rowManager.restoreRedraw();
-};
-
-//local data from local file
-Tabulator.prototype.setDataFromLocalFile = function (extensions) {
- var _this18 = this;
-
- return new Promise(function (resolve, reject) {
- var input = document.createElement("input");
- input.type = "file";
- input.accept = extensions || ".json,application/json";
-
- input.addEventListener("change", function (e) {
- var file = input.files[0],
- reader = new FileReader(),
- data;
-
- reader.readAsText(file);
-
- reader.onload = function (e) {
-
- try {
- data = JSON.parse(reader.result);
- } catch (e) {
- console.warn("File Load Error - File contents is invalid JSON", e);
- reject(e);
- return;
- }
-
- _this18._setData(data).then(function (data) {
- resolve(data);
- }).catch(function (err) {
- resolve(err);
- });
- };
-
- reader.onerror = function (e) {
- console.warn("File Load Error - Unable to read file");
- reject();
- };
- });
-
- input.click();
- });
-};
-
-//load data
-Tabulator.prototype.setData = function (data, params, config) {
- if (this.modExists("ajax")) {
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, false, true);
-};
-
-Tabulator.prototype._setData = function (data, params, config, inPosition, columnsChanged) {
- var self = this;
-
- if (typeof data === "string") {
- if (data.indexOf("{") == 0 || data.indexOf("[") == 0) {
- //data is a json encoded string
- return self.rowManager.setData(JSON.parse(data), inPosition, columnsChanged);
- } else {
-
- if (self.modExists("ajax", true)) {
- if (params) {
- self.modules.ajax.setParams(params);
- }
-
- if (config) {
- self.modules.ajax.setConfig(config);
- }
-
- self.modules.ajax.setUrl(data);
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
- self.modules.page.reset(true, true);
- return self.modules.page.setPage(1);
- } else {
- //assume data is url, make ajax call to url to get data
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- }
- }
- } else {
- if (data) {
- //asume data is already an object
- return self.rowManager.setData(data, inPosition, columnsChanged);
- } else {
-
- //no data provided, check if ajaxURL is present;
- if (self.modExists("ajax") && (self.modules.ajax.getUrl || self.options.ajaxURLGenerator)) {
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
- self.modules.page.reset(true, true);
- return self.modules.page.setPage(1);
- } else {
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- } else {
- //empty data
- return self.rowManager.setData([], inPosition, columnsChanged);
- }
- }
- }
-};
-
-//clear data
-Tabulator.prototype.clearData = function () {
- if (this.modExists("ajax")) {
- this.modules.ajax.blockActiveRequest();
- }
-
- this.rowManager.clearData();
-};
-
-//get table data array
-Tabulator.prototype.getData = function (active) {
-
- if (active === true) {
- console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'");
- active = "active";
- }
-
- return this.rowManager.getData(active);
-};
-
-//get table data array count
-Tabulator.prototype.getDataCount = function (active) {
-
- if (active === true) {
- console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'");
- active = "active";
- }
-
- return this.rowManager.getDataCount(active);
-};
-
-//search for specific row components
-Tabulator.prototype.searchRows = function (field, type, value) {
- if (this.modExists("filter", true)) {
- return this.modules.filter.search("rows", field, type, value);
- }
-};
-
-//search for specific data
-Tabulator.prototype.searchData = function (field, type, value) {
- if (this.modExists("filter", true)) {
- return this.modules.filter.search("data", field, type, value);
- }
-};
-
-//get table html
-Tabulator.prototype.getHtml = function (visible, style, config) {
- if (this.modExists("export", true)) {
- return this.modules.export.getHtml(visible, style, config);
- }
-};
-
-//get print html
-Tabulator.prototype.print = function (visible, style, config) {
- if (this.modExists("print", true)) {
- return this.modules.print.printFullscreen(visible, style, config);
- }
-};
-
-//retrieve Ajax URL
-Tabulator.prototype.getAjaxUrl = function () {
- if (this.modExists("ajax", true)) {
- return this.modules.ajax.getUrl();
- }
-};
-
-//replace data, keeping table in position with same sort
-Tabulator.prototype.replaceData = function (data, params, config) {
- if (this.modExists("ajax")) {
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, true);
-};
-
-//update table data
-Tabulator.prototype.updateData = function (data) {
- var _this19 = this;
-
- var self = this;
- var responses = 0;
-
- return new Promise(function (resolve, reject) {
- if (_this19.modExists("ajax")) {
- _this19.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (data) {
- data.forEach(function (item) {
- var row = self.rowManager.findRow(item[self.options.index]);
-
- if (row) {
- responses++;
-
- row.updateData(item).then(function () {
- responses--;
-
- if (!responses) {
- resolve();
- }
- });
- }
- });
- } else {
- console.warn("Update Error - No data provided");
- reject("Update Error - No data provided");
- }
- });
-};
-
-Tabulator.prototype.addData = function (data, pos, index) {
- var _this20 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this20.modExists("ajax")) {
- _this20.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (data) {
- _this20.rowManager.addRows(data, pos, index).then(function (rows) {
- var output = [];
-
- rows.forEach(function (row) {
- output.push(row.getComponent());
- });
-
- resolve(output);
- });
- } else {
- console.warn("Update Error - No data provided");
- reject("Update Error - No data provided");
- }
- });
-};
-
-//update table data
-Tabulator.prototype.updateOrAddData = function (data) {
- var _this21 = this;
-
- var self = this,
- rows = [],
- responses = 0;
-
- return new Promise(function (resolve, reject) {
- if (_this21.modExists("ajax")) {
- _this21.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (data) {
- data.forEach(function (item) {
- var row = self.rowManager.findRow(item[self.options.index]);
-
- responses++;
-
- if (row) {
- row.updateData(item).then(function () {
- responses--;
- rows.push(row.getComponent());
-
- if (!responses) {
- resolve(rows);
- }
- });
- } else {
- self.rowManager.addRows(item).then(function (newRows) {
- responses--;
- rows.push(newRows[0].getComponent());
-
- if (!responses) {
- resolve(rows);
- }
- });
- }
- });
- } else {
- console.warn("Update Error - No data provided");
- reject("Update Error - No data provided");
- }
- });
-};
-
-//get row object
-Tabulator.prototype.getRow = function (index) {
- var row = this.rowManager.findRow(index);
-
- if (row) {
- return row.getComponent();
- } else {
- console.warn("Find Error - No matching row found:", index);
- return false;
- }
-};
-
-//get row object
-Tabulator.prototype.getRowFromPosition = function (position, active) {
- var row = this.rowManager.getRowFromPosition(position, active);
-
- if (row) {
- return row.getComponent();
- } else {
- console.warn("Find Error - No matching row found:", position);
- return false;
- }
-};
-
-//delete row from table
-Tabulator.prototype.deleteRow = function (index) {
- var _this22 = this;
-
- return new Promise(function (resolve, reject) {
- var self = _this22,
- count = 0,
- successCount = 0,
- foundRows = [];
-
- function doneCheck() {
- count++;
-
- if (count == index.length) {
- if (successCount) {
- self.rowManager.reRenderInPosition();
- resolve();
- }
- }
- }
-
- if (!Array.isArray(index)) {
- index = [index];
- }
-
- //find matching rows
- index.forEach(function (item) {
- var row = _this22.rowManager.findRow(item, true);
-
- if (row) {
- foundRows.push(row);
- } else {
- console.warn("Delete Error - No matching row found:", item);
- reject("Delete Error - No matching row found");
- doneCheck();
- }
- });
-
- //sort rows into correct order to ensure smooth delete from table
- foundRows.sort(function (a, b) {
- return _this22.rowManager.rows.indexOf(a) > _this22.rowManager.rows.indexOf(b) ? 1 : -1;
- });
-
- foundRows.forEach(function (row) {
- row.delete().then(function () {
- successCount++;
- doneCheck();
- }).catch(function (err) {
- doneCheck();
- reject(err);
- });
- });
- });
-};
-
-//add row to table
-Tabulator.prototype.addRow = function (data, pos, index) {
- var _this23 = this;
-
- return new Promise(function (resolve, reject) {
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- _this23.rowManager.addRows(data, pos, index).then(function (rows) {
- //recalc column calculations if present
- if (_this23.modExists("columnCalcs")) {
- _this23.modules.columnCalcs.recalc(_this23.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- });
- });
-};
-
-//update a row if it exitsts otherwise create it
-Tabulator.prototype.updateOrAddRow = function (index, data) {
- var _this24 = this;
-
- return new Promise(function (resolve, reject) {
- var row = _this24.rowManager.findRow(index);
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (row) {
- row.updateData(data).then(function () {
- //recalc column calculations if present
- if (_this24.modExists("columnCalcs")) {
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(row.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- } else {
- row = _this24.rowManager.addRows(data).then(function (rows) {
- //recalc column calculations if present
- if (_this24.modExists("columnCalcs")) {
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- }).catch(function (err) {
- reject(err);
- });
- }
- });
-};
-
-//update row data
-Tabulator.prototype.updateRow = function (index, data) {
- var _this25 = this;
-
- return new Promise(function (resolve, reject) {
- var row = _this25.rowManager.findRow(index);
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (row) {
- row.updateData(data).then(function () {
- resolve(row.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Update Error - No matching row found:", index);
- reject("Update Error - No matching row found");
- }
- });
-};
-
-//scroll to row in DOM
-Tabulator.prototype.scrollToRow = function (index, position, ifVisible) {
- var _this26 = this;
-
- return new Promise(function (resolve, reject) {
- var row = _this26.rowManager.findRow(index);
-
- if (row) {
- _this26.rowManager.scrollToRow(row, position, ifVisible).then(function () {
- resolve();
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Scroll Error - No matching row found:", index);
- reject("Scroll Error - No matching row found");
- }
- });
-};
-
-Tabulator.prototype.moveRow = function (from, to, after) {
- var fromRow = this.rowManager.findRow(from);
-
- if (fromRow) {
- fromRow.moveToRow(to, after);
- } else {
- console.warn("Move Error - No matching row found:", from);
- }
-};
-
-Tabulator.prototype.getRows = function (active) {
-
- if (active === true) {
- console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'");
- active = "active";
- }
-
- return this.rowManager.getComponents(active);
-};
-
-//get position of row in table
-Tabulator.prototype.getRowPosition = function (index, active) {
- var row = this.rowManager.findRow(index);
-
- if (row) {
- return this.rowManager.getRowPosition(row, active);
- } else {
- console.warn("Position Error - No matching row found:", index);
- return false;
- }
-};
-
-//copy table data to clipboard
-Tabulator.prototype.copyToClipboard = function (selector) {
- if (this.modExists("clipboard", true)) {
- this.modules.clipboard.copy(selector);
- }
-};
-
-/////////////// Column Functions ///////////////
-
-Tabulator.prototype.setColumns = function (definition) {
- this.columnManager.setColumns(definition);
-};
-
-Tabulator.prototype.getColumns = function (structured) {
- return this.columnManager.getComponents(structured);
-};
-
-Tabulator.prototype.getColumn = function (field) {
- var col = this.columnManager.findColumn(field);
-
- if (col) {
- return col.getComponent();
- } else {
- console.warn("Find Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.getColumnDefinitions = function () {
- return this.columnManager.getDefinitionTree();
-};
-
-Tabulator.prototype.getColumnLayout = function () {
- if (this.modExists("persistence", true)) {
- return this.modules.persistence.parseColumns(this.columnManager.getColumns());
- }
-};
-
-Tabulator.prototype.setColumnLayout = function (layout) {
- if (this.modExists("persistence", true)) {
- this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns, layout));
- return true;
- }
- return false;
-};
-
-Tabulator.prototype.showColumn = function (field) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- column.show();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
- this.modules.responsiveLayout.update();
- }
- } else {
- console.warn("Column Show Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.hideColumn = function (field) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- column.hide();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
- this.modules.responsiveLayout.update();
- }
- } else {
- console.warn("Column Hide Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.toggleColumn = function (field) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- if (column.visible) {
- column.hide();
- } else {
- column.show();
- }
- } else {
- console.warn("Column Visibility Toggle Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.addColumn = function (definition, before, field) {
- var _this27 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this27.columnManager.findColumn(field);
-
- _this27.columnManager.addColumn(definition, before, column).then(function (column) {
- resolve(column.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- });
-};
-
-Tabulator.prototype.deleteColumn = function (field) {
- var _this28 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this28.columnManager.findColumn(field);
-
- if (column) {
- column.delete().then(function () {
- resolve();
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Column Delete Error - No matching column found:", field);
- reject();
- }
- });
-};
-
-Tabulator.prototype.updateColumnDefinition = function (field, definition) {
- var _this29 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this29.columnManager.findColumn(field);
-
- if (column) {
- column.updateDefinition(definition).then(function (col) {
- resolve(col);
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Column Update Error - No matching column found:", field);
- reject();
- }
- });
-};
-
-Tabulator.prototype.moveColumn = function (from, to, after) {
- var fromColumn = this.columnManager.findColumn(from);
- var toColumn = this.columnManager.findColumn(to);
-
- if (fromColumn) {
- if (toColumn) {
- this.columnManager.moveColumn(fromColumn, toColumn, after);
- } else {
- console.warn("Move Error - No matching column found:", toColumn);
- }
- } else {
- console.warn("Move Error - No matching column found:", from);
- }
-};
-
-//scroll to column in DOM
-Tabulator.prototype.scrollToColumn = function (field, position, ifVisible) {
- var _this30 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this30.columnManager.findColumn(field);
-
- if (column) {
- _this30.columnManager.scrollToColumn(column, position, ifVisible).then(function () {
- resolve();
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Scroll Error - No matching column found:", field);
- reject("Scroll Error - No matching column found");
- }
- });
-};
-
-//////////// Localization Functions ////////////
-Tabulator.prototype.setLocale = function (locale) {
- this.modules.localize.setLocale(locale);
-};
-
-Tabulator.prototype.getLocale = function () {
- return this.modules.localize.getLocale();
-};
-
-Tabulator.prototype.getLang = function (locale) {
- return this.modules.localize.getLang(locale);
-};
-
-//////////// General Public Functions ////////////
-
-//redraw list without updating data
-Tabulator.prototype.redraw = function (force) {
- this.columnManager.redraw(force);
- this.rowManager.redraw(force);
-};
-
-Tabulator.prototype.setHeight = function (height) {
-
- if (this.rowManager.renderMode !== "classic") {
- this.options.height = isNaN(height) ? height : height + "px";
- this.element.style.height = this.options.height;
- this.rowManager.setRenderMode();
- this.rowManager.redraw();
- } else {
- console.warn("setHeight function is not available in classic render mode");
- }
-};
-
-///////////////////// Sorting ////////////////////
-
-//trigger sort
-Tabulator.prototype.setSort = function (sortList, dir) {
- if (this.modExists("sort", true)) {
- this.modules.sort.setSort(sortList, dir);
- this.rowManager.sorterRefresh();
- }
-};
-
-Tabulator.prototype.getSorters = function () {
- if (this.modExists("sort", true)) {
- return this.modules.sort.getSort();
- }
-};
-
-Tabulator.prototype.clearSort = function () {
- if (this.modExists("sort", true)) {
- this.modules.sort.clear();
- this.rowManager.sorterRefresh();
- }
-};
-
-///////////////////// Filtering ////////////////////
-
-//set standard filters
-Tabulator.prototype.setFilter = function (field, type, value) {
- if (this.modExists("filter", true)) {
- this.modules.filter.setFilter(field, type, value);
- this.rowManager.filterRefresh();
- }
-};
-
-//add filter to array
-Tabulator.prototype.addFilter = function (field, type, value) {
- if (this.modExists("filter", true)) {
- this.modules.filter.addFilter(field, type, value);
- this.rowManager.filterRefresh();
- }
-};
-
-//get all filters
-Tabulator.prototype.getFilters = function (all) {
- if (this.modExists("filter", true)) {
- return this.modules.filter.getFilters(all);
- }
-};
-
-Tabulator.prototype.setHeaderFilterFocus = function (field) {
- if (this.modExists("filter", true)) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- this.modules.filter.setHeaderFilterFocus(column);
- } else {
- console.warn("Column Filter Focus Error - No matching column found:", field);
- return false;
- }
- }
-};
-
-Tabulator.prototype.getHeaderFilterValue = function (field) {
- if (this.modExists("filter", true)) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- return this.modules.filter.getHeaderFilterValue(column);
- } else {
- console.warn("Column Filter Error - No matching column found:", field);
- }
- }
-};
-
-Tabulator.prototype.setHeaderFilterValue = function (field, value) {
- if (this.modExists("filter", true)) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- this.modules.filter.setHeaderFilterValue(column, value);
- } else {
- console.warn("Column Filter Error - No matching column found:", field);
- return false;
- }
- }
-};
-
-Tabulator.prototype.getHeaderFilters = function () {
- if (this.modExists("filter", true)) {
- return this.modules.filter.getHeaderFilters();
- }
-};
-
-//remove filter from array
-Tabulator.prototype.removeFilter = function (field, type, value) {
- if (this.modExists("filter", true)) {
- this.modules.filter.removeFilter(field, type, value);
- this.rowManager.filterRefresh();
- }
-};
-
-//clear filters
-Tabulator.prototype.clearFilter = function (all) {
- if (this.modExists("filter", true)) {
- this.modules.filter.clearFilter(all);
- this.rowManager.filterRefresh();
- }
-};
-
-//clear header filters
-Tabulator.prototype.clearHeaderFilter = function () {
- if (this.modExists("filter", true)) {
- this.modules.filter.clearHeaderFilter();
- this.rowManager.filterRefresh();
- }
-};
-
-///////////////////// Filtering ////////////////////
-Tabulator.prototype.selectRow = function (rows) {
- if (this.modExists("selectRow", true)) {
- if (rows === true) {
- console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'");
- rows = "active";
- }
- this.modules.selectRow.selectRows(rows);
- }
-};
-
-Tabulator.prototype.deselectRow = function (rows) {
- if (this.modExists("selectRow", true)) {
- this.modules.selectRow.deselectRows(rows);
- }
-};
-
-Tabulator.prototype.toggleSelectRow = function (row) {
- if (this.modExists("selectRow", true)) {
- this.modules.selectRow.toggleRow(row);
- }
-};
-
-Tabulator.prototype.getSelectedRows = function () {
- if (this.modExists("selectRow", true)) {
- return this.modules.selectRow.getSelectedRows();
- }
-};
-
-Tabulator.prototype.getSelectedData = function () {
- if (this.modExists("selectRow", true)) {
- return this.modules.selectRow.getSelectedData();
- }
-};
-
-//////////// Pagination Functions ////////////
-
-Tabulator.prototype.setMaxPage = function (max) {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.setMaxPage(max);
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.setPage = function (page) {
- if (this.options.pagination && this.modExists("page")) {
- return this.modules.page.setPage(page);
- } else {
- return new Promise(function (resolve, reject) {
- reject();
- });
- }
-};
-
-Tabulator.prototype.setPageToRow = function (row) {
- var _this31 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this31.options.pagination && _this31.modExists("page")) {
- row = _this31.rowManager.findRow(row);
-
- if (row) {
- _this31.modules.page.setPageToRow(row).then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- } else {
- reject();
- }
- } else {
- reject();
- }
- });
-};
-
-Tabulator.prototype.setPageSize = function (size) {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.setPageSize(size);
- this.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getPageSize = function () {
- if (this.options.pagination && this.modExists("page", true)) {
- return this.modules.page.getPageSize();
- }
-};
-
-Tabulator.prototype.previousPage = function () {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.previousPage();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.nextPage = function () {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.nextPage();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getPage = function () {
- if (this.options.pagination && this.modExists("page")) {
- return this.modules.page.getPage();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getPageMax = function () {
- if (this.options.pagination && this.modExists("page")) {
- return this.modules.page.getPageMax();
- } else {
- return false;
- }
-};
-
-///////////////// Grouping Functions ///////////////
-
-Tabulator.prototype.setGroupBy = function (groups) {
- if (this.modExists("groupRows", true)) {
- this.options.groupBy = groups;
- this.modules.groupRows.initialize();
- this.rowManager.refreshActiveData("display");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
- this.modules.persistence.save("group");
- }
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.setGroupStartOpen = function (values) {
- if (this.modExists("groupRows", true)) {
- this.options.groupStartOpen = values;
- this.modules.groupRows.initialize();
- if (this.options.groupBy) {
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
- this.modules.persistence.save("group");
- }
- } else {
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.setGroupHeader = function (values) {
- if (this.modExists("groupRows", true)) {
- this.options.groupHeader = values;
- this.modules.groupRows.initialize();
- if (this.options.groupBy) {
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
- this.modules.persistence.save("group");
- }
- } else {
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getGroups = function (values) {
- if (this.modExists("groupRows", true)) {
- return this.modules.groupRows.getGroups(true);
- } else {
- return false;
- }
-};
-
-// get grouped table data in the same format as getData()
-Tabulator.prototype.getGroupedData = function () {
- if (this.modExists("groupRows", true)) {
- return this.options.groupBy ? this.modules.groupRows.getGroupedData() : this.getData();
- }
-};
-
-///////////////// Column Calculation Functions ///////////////
-Tabulator.prototype.getCalcResults = function () {
- if (this.modExists("columnCalcs", true)) {
- return this.modules.columnCalcs.getResults();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.recalc = function () {
- if (this.modExists("columnCalcs", true)) {
- this.modules.columnCalcs.recalcAll(this.rowManager.activeRows);
- }
-};
-
-/////////////// Navigation Management //////////////
-
-Tabulator.prototype.navigatePrev = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- return cell.nav().prev();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateNext = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- return cell.nav().next();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateLeft = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().left();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateRight = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().right();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateUp = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().up();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateDown = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().down();
- }
- }
-
- return false;
-};
-
-/////////////// History Management //////////////
-Tabulator.prototype.undo = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.undo();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.redo = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.redo();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getHistoryUndoSize = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.getHistoryUndoSize();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getHistoryRedoSize = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.getHistoryRedoSize();
- } else {
- return false;
- }
-};
-
-/////////////// Download Management //////////////
-
-Tabulator.prototype.download = function (type, filename, options, active) {
- if (this.modExists("download", true)) {
- this.modules.download.download(type, filename, options, active);
- }
-};
-
-Tabulator.prototype.downloadToTab = function (type, filename, options, active) {
- if (this.modExists("download", true)) {
- this.modules.download.download(type, filename, options, active, true);
- }
-};
-
-/////////// Inter Table Communications ///////////
-
-Tabulator.prototype.tableComms = function (table, module, action, data) {
- this.modules.comms.receive(table, module, action, data);
-};
-
-////////////// Extension Management //////////////
-
-//object to hold module
-Tabulator.prototype.moduleBindings = {};
-
-//extend module
-Tabulator.prototype.extendModule = function (name, property, values) {
-
- if (Tabulator.prototype.moduleBindings[name]) {
- var source = Tabulator.prototype.moduleBindings[name].prototype[property];
-
- if (source) {
- if ((typeof values === 'undefined' ? 'undefined' : _typeof(values)) == "object") {
- for (var key in values) {
- source[key] = values[key];
- }
- } else {
- console.warn("Module Error - Invalid value type, it must be an object");
- }
- } else {
- console.warn("Module Error - property does not exist:", property);
- }
- } else {
- console.warn("Module Error - module does not exist:", name);
- }
-};
-
-//add module to tabulator
-Tabulator.prototype.registerModule = function (name, module) {
- var self = this;
- Tabulator.prototype.moduleBindings[name] = module;
-};
-
-//ensure that module are bound to instantiated function
-Tabulator.prototype.bindModules = function () {
- this.modules = {};
-
- for (var name in Tabulator.prototype.moduleBindings) {
- this.modules[name] = new Tabulator.prototype.moduleBindings[name](this);
- }
-};
-
-//Check for module
-Tabulator.prototype.modExists = function (plugin, required) {
- if (this.modules[plugin]) {
- return true;
- } else {
- if (required) {
- console.error("Tabulator Module Not Installed: " + plugin);
- }
- return false;
- }
-};
-
-Tabulator.prototype.helpers = {
-
- elVisible: function elVisible(el) {
- return !(el.offsetWidth <= 0 && el.offsetHeight <= 0);
- },
-
- elOffset: function elOffset(el) {
- var box = el.getBoundingClientRect();
-
- return {
- top: box.top + window.pageYOffset - document.documentElement.clientTop,
- left: box.left + window.pageXOffset - document.documentElement.clientLeft
- };
- },
-
- deepClone: function deepClone(obj) {
- var clone = Array.isArray(obj) ? [] : {};
-
- for (var i in obj) {
- if (obj[i] != null && _typeof(obj[i]) === "object") {
- if (obj[i] instanceof Date) {
- clone[i] = new Date(obj[i]);
- } else {
- clone[i] = this.deepClone(obj[i]);
- }
- } else {
- clone[i] = obj[i];
- }
- }
- return clone;
- }
-};
-
-Tabulator.prototype.comms = {
- tables: [],
- register: function register(table) {
- Tabulator.prototype.comms.tables.push(table);
- },
- deregister: function deregister(table) {
- var index = Tabulator.prototype.comms.tables.indexOf(table);
-
- if (index > -1) {
- Tabulator.prototype.comms.tables.splice(index, 1);
- }
- },
- lookupTable: function lookupTable(query, silent) {
- var results = [],
- matches,
- match;
-
- if (typeof query === "string") {
- matches = document.querySelectorAll(query);
-
- if (matches.length) {
- for (var i = 0; i < matches.length; i++) {
- match = Tabulator.prototype.comms.matchElement(matches[i]);
-
- if (match) {
- results.push(match);
- }
- }
- }
- } else if (typeof HTMLElement !== "undefined" && query instanceof HTMLElement || query instanceof Tabulator) {
- match = Tabulator.prototype.comms.matchElement(query);
-
- if (match) {
- results.push(match);
- }
- } else if (Array.isArray(query)) {
- query.forEach(function (item) {
- results = results.concat(Tabulator.prototype.comms.lookupTable(item));
- });
- } else {
- if (!silent) {
- console.warn("Table Connection Error - Invalid Selector", query);
- }
- }
-
- return results;
- },
- matchElement: function matchElement(element) {
- return Tabulator.prototype.comms.tables.find(function (table) {
- return element instanceof Tabulator ? table === element : table.element === element;
- });
- }
-};
-
-Tabulator.prototype.findTable = function (query) {
- var results = Tabulator.prototype.comms.lookupTable(query, true);
- return Array.isArray(results) && !results.length ? false : results;
-};
-
-var Layout = function Layout(table) {
-
- this.table = table;
-
- this.mode = null;
-};
-
-//initialize layout system
-
-Layout.prototype.initialize = function (layout) {
-
- if (this.modes[layout]) {
-
- this.mode = layout;
- } else {
-
- console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : " + layout);
-
- this.mode = 'fitData';
- }
-
- this.table.element.setAttribute("tabulator-layout", this.mode);
-};
-
-Layout.prototype.getMode = function () {
-
- return this.mode;
-};
-
-//trigger table layout
-
-Layout.prototype.layout = function () {
-
- this.modes[this.mode].call(this, this.table.columnManager.columnsByIndex);
-};
-
-//layout render functions
-
-Layout.prototype.modes = {
-
- //resize columns to fit data the contain
-
- "fitData": function fitData(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data the contain and stretch row to fill table
-
- "fitDataFill": function fitDataFill(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data the contain and stretch last column to fill table
-
- "fitDataStretch": function fitDataStretch(columns) {
- var _this32 = this;
-
- var colsWidth = 0,
- tableWidth = this.table.rowManager.element.clientWidth,
- gap = 0,
- lastCol = false;
-
- columns.forEach(function (column, i) {
-
- if (!column.widthFixed) {
-
- column.reinitializeWidth();
- }
-
- if (_this32.table.options.responsiveLayout ? column.modules.responsive.visible : column.visible) {
-
- lastCol = column;
- }
-
- if (column.visible) {
-
- colsWidth += column.getWidth();
- }
- });
-
- if (lastCol) {
-
- gap = tableWidth - colsWidth + lastCol.getWidth();
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- lastCol.setWidth(0);
-
- this.table.modules.responsiveLayout.update();
- }
-
- if (gap > 0) {
-
- lastCol.setWidth(gap);
- } else {
-
- lastCol.reinitializeWidth();
- }
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- },
-
- //resize columns to fit
-
- "fitColumns": function fitColumns(columns) {
-
- var self = this;
-
- var totalWidth = self.table.element.clientWidth; //table element width
-
- var fixedWidth = 0; //total width of columns with a defined width
-
- var flexWidth = 0; //total width available to flexible columns
-
- var flexGrowUnits = 0; //total number of widthGrow blocks accross all columns
-
- var flexColWidth = 0; //desired width of flexible columns
-
- var flexColumns = []; //array of flexible width columns
-
- var fixedShrinkColumns = []; //array of fixed width columns that can shrink
-
- var flexShrinkUnits = 0; //total number of widthShrink blocks accross all columns
-
- var overflowWidth = 0; //horizontal overflow width
-
- var gapFill = 0; //number of pixels to be added to final column to close and half pixel gaps
-
-
- function calcWidth(width) {
-
- var colWidth;
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- return colWidth;
- }
-
- //ensure columns resize to take up the correct amount of space
-
- function scaleColumns(columns, freeSpace, colWidth, shrinkCols) {
-
- var oversizeCols = [],
- oversizeSpace = 0,
- remainingSpace = 0,
- nextColWidth = 0,
- gap = 0,
- changeUnits = 0,
- undersizeCols = [];
-
- function calcGrow(col) {
-
- return colWidth * (col.column.definition.widthGrow || 1);
- }
-
- function calcShrink(col) {
-
- return calcWidth(col.width) - colWidth * (col.column.definition.widthShrink || 0);
- }
-
- columns.forEach(function (col, i) {
-
- var width = shrinkCols ? calcShrink(col) : calcGrow(col);
-
- if (col.column.minWidth >= width) {
-
- oversizeCols.push(col);
- } else {
-
- undersizeCols.push(col);
-
- changeUnits += shrinkCols ? col.column.definition.widthShrink || 1 : col.column.definition.widthGrow || 1;
- }
- });
-
- if (oversizeCols.length) {
-
- oversizeCols.forEach(function (col) {
-
- oversizeSpace += shrinkCols ? col.width - col.column.minWidth : col.column.minWidth;
-
- col.width = col.column.minWidth;
- });
-
- remainingSpace = freeSpace - oversizeSpace;
-
- nextColWidth = changeUnits ? Math.floor(remainingSpace / changeUnits) : remainingSpace;
-
- gap = remainingSpace - nextColWidth * changeUnits;
-
- gap += scaleColumns(undersizeCols, remainingSpace, nextColWidth, shrinkCols);
- } else {
-
- gap = changeUnits ? freeSpace - Math.floor(freeSpace / changeUnits) * changeUnits : freeSpace;
-
- undersizeCols.forEach(function (column) {
-
- column.width = shrinkCols ? calcShrink(column) : calcGrow(column);
- });
- }
-
- return gap;
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
-
- //adjust for vertical scrollbar if present
-
- if (this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight) {
-
- totalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth;
- }
-
- columns.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width;
-
- minWidth = parseInt(column.minWidth);
-
- if (width) {
-
- colWidth = calcWidth(width);
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
-
- if (column.definition.widthShrink) {
-
- fixedShrinkColumns.push({
-
- column: column,
-
- width: colWidth > minWidth ? colWidth : minWidth
-
- });
-
- flexShrinkUnits += column.definition.widthShrink;
- }
- } else {
-
- flexColumns.push({
-
- column: column,
-
- width: 0
-
- });
-
- flexGrowUnits += column.definition.widthGrow || 1;
- }
- }
- });
-
- //calculate available space
-
- flexWidth = totalWidth - fixedWidth;
-
- //calculate correct column size
-
- flexColWidth = Math.floor(flexWidth / flexGrowUnits);
-
- //generate column widths
-
- var gapFill = scaleColumns(flexColumns, flexWidth, flexColWidth, false);
-
- //increase width of last column to account for rounding errors
-
- if (flexColumns.length && gapFill > 0) {
-
- flexColumns[flexColumns.length - 1].width += +gapFill;
- }
-
- //caculate space for columns to be shrunk into
-
- flexColumns.forEach(function (col) {
-
- flexWidth -= col.width;
- });
-
- overflowWidth = Math.abs(gapFill) + flexWidth;
-
- //shrink oversize columns if there is no available space
-
- if (overflowWidth > 0 && flexShrinkUnits) {
-
- gapFill = scaleColumns(fixedShrinkColumns, overflowWidth, Math.floor(overflowWidth / flexShrinkUnits), true);
- }
-
- //decrease width of last column to account for rounding errors
-
- if (fixedShrinkColumns.length) {
-
- fixedShrinkColumns[fixedShrinkColumns.length - 1].width -= gapFill;
- }
-
- flexColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
-
- fixedShrinkColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
- }
-
-};
-
-Tabulator.prototype.registerModule("layout", Layout);
-var Localize = function Localize(table) {
- this.table = table; //hold Tabulator object
- this.locale = "default"; //current locale
- this.lang = false; //current language
- this.bindings = {}; //update events to call when locale is changed
-};
-
-//set header placehoder
-Localize.prototype.setHeaderFilterPlaceholder = function (placeholder) {
- this.langs.default.headerFilters.default = placeholder;
-};
-
-//set header filter placeholder by column
-Localize.prototype.setHeaderFilterColumnPlaceholder = function (column, placeholder) {
- this.langs.default.headerFilters.columns[column] = placeholder;
-
- if (this.lang && !this.lang.headerFilters.columns[column]) {
- this.lang.headerFilters.columns[column] = placeholder;
- }
-};
-
-//setup a lang description object
-Localize.prototype.installLang = function (locale, lang) {
- if (this.langs[locale]) {
- this._setLangProp(this.langs[locale], lang);
- } else {
- this.langs[locale] = lang;
- }
-};
-
-Localize.prototype._setLangProp = function (lang, values) {
- for (var key in values) {
- if (lang[key] && _typeof(lang[key]) == "object") {
- this._setLangProp(lang[key], values[key]);
- } else {
- lang[key] = values[key];
- }
- }
-};
-
-//set current locale
-Localize.prototype.setLocale = function (desiredLocale) {
- var self = this;
-
- desiredLocale = desiredLocale || "default";
-
- //fill in any matching languge values
- function traverseLang(trans, path) {
- for (var prop in trans) {
-
- if (_typeof(trans[prop]) == "object") {
- if (!path[prop]) {
- path[prop] = {};
- }
- traverseLang(trans[prop], path[prop]);
- } else {
- path[prop] = trans[prop];
- }
- }
- }
-
- //determing correct locale to load
- if (desiredLocale === true && navigator.language) {
- //get local from system
- desiredLocale = navigator.language.toLowerCase();
- }
-
- if (desiredLocale) {
-
- //if locale is not set, check for matching top level locale else use default
- if (!self.langs[desiredLocale]) {
- var prefix = desiredLocale.split("-")[0];
-
- if (self.langs[prefix]) {
- console.warn("Localization Error - Exact matching locale not found, using closest match: ", desiredLocale, prefix);
- desiredLocale = prefix;
- } else {
- console.warn("Localization Error - Matching locale not found, using default: ", desiredLocale);
- desiredLocale = "default";
- }
- }
- }
-
- self.locale = desiredLocale;
-
- //load default lang template
- self.lang = Tabulator.prototype.helpers.deepClone(self.langs.default || {});
-
- if (desiredLocale != "default") {
- traverseLang(self.langs[desiredLocale], self.lang);
- }
-
- self.table.options.localized.call(self.table, self.locale, self.lang);
-
- self._executeBindings();
-};
-
-//get current locale
-Localize.prototype.getLocale = function (locale) {
- return self.locale;
-};
-
-//get lang object for given local or current if none provided
-Localize.prototype.getLang = function (locale) {
- return locale ? this.langs[locale] : this.lang;
-};
-
-//get text for current locale
-Localize.prototype.getText = function (path, value) {
- var path = value ? path + "|" + value : path,
- pathArray = path.split("|"),
- text = this._getLangElement(pathArray, this.locale);
-
- // if(text === false){
- // console.warn("Localization Error - Matching localized text not found for given path: ", path);
- // }
-
- return text || "";
-};
-
-//traverse langs object and find localized copy
-Localize.prototype._getLangElement = function (path, locale) {
- var self = this;
- var root = self.lang;
-
- path.forEach(function (level) {
- var rootPath;
-
- if (root) {
- rootPath = root[level];
-
- if (typeof rootPath != "undefined") {
- root = rootPath;
- } else {
- root = false;
- }
- }
- });
-
- return root;
-};
-
-//set update binding
-Localize.prototype.bind = function (path, callback) {
- if (!this.bindings[path]) {
- this.bindings[path] = [];
- }
-
- this.bindings[path].push(callback);
-
- callback(this.getText(path), this.lang);
-};
-
-//itterate through bindings and trigger updates
-Localize.prototype._executeBindings = function () {
- var self = this;
-
- var _loop = function _loop(path) {
- self.bindings[path].forEach(function (binding) {
- binding(self.getText(path), self.lang);
- });
- };
-
- for (var path in self.bindings) {
- _loop(path);
- }
-};
-
-//Localized text listings
-Localize.prototype.langs = {
- "default": { //hold default locale text
- "groups": {
- "item": "item",
- "items": "items"
- },
- "columns": {},
- "ajax": {
- "loading": "Loading",
- "error": "Error"
- },
- "pagination": {
- "page_size": "Page Size",
- "first": "First",
- "first_title": "First Page",
- "last": "Last",
- "last_title": "Last Page",
- "prev": "Prev",
- "prev_title": "Prev Page",
- "next": "Next",
- "next_title": "Next Page"
- },
- "headerFilters": {
- "default": "filter column...",
- "columns": {}
- }
- }
-};
-
-Tabulator.prototype.registerModule("localize", Localize);
-var Comms = function Comms(table) {
- this.table = table;
-};
-
-Comms.prototype.getConnections = function (selectors) {
- var self = this,
- connections = [],
- connection;
-
- connection = Tabulator.prototype.comms.lookupTable(selectors);
-
- connection.forEach(function (con) {
- if (self.table !== con) {
- connections.push(con);
- }
- });
-
- return connections;
-};
-
-Comms.prototype.send = function (selectors, module, action, data) {
- var self = this,
- connections = this.getConnections(selectors);
-
- connections.forEach(function (connection) {
- connection.tableComms(self.table.element, module, action, data);
- });
-
- if (!connections.length && selectors) {
- console.warn("Table Connection Error - No tables matching selector found", selectors);
- }
-};
-
-Comms.prototype.receive = function (table, module, action, data) {
- if (this.table.modExists(module)) {
- return this.table.modules[module].commsReceived(table, action, data);
- } else {
- console.warn("Inter-table Comms Error - no such module:", module);
- }
-};
-
-Tabulator.prototype.registerModule("comms", Comms);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.6.3 (c) Oliver Folkerd */
-"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),o=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var s=e[n];if(t.call(i,s,n,e))return n;n++}return-1}}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),o=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var s=e[n];if(t.call(i,s,n,e))return s;n++}}});var ColumnManager=function(t){this.table=t,this.blockHozScrollEvent=!1,this.headersElement=this.createHeadersElement(),this.element=this.createHeaderElement(),this.rowManager=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.element.insertBefore(this.headersElement,this.element.firstChild)};ColumnManager.prototype.createHeadersElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-headers"),t},ColumnManager.prototype.createHeaderElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-header"),this.table.options.headerVisible||t.classList.add("tabulator-header-hidden"),t},ColumnManager.prototype.initialize=function(){},ColumnManager.prototype.setRowManager=function(t){this.rowManager=t},ColumnManager.prototype.getElement=function(){return this.element},ColumnManager.prototype.getHeadersElement=function(){return this.headersElement},ColumnManager.prototype.scrollHorizontal=function(t){var e=0,o=this.element.scrollWidth-this.table.element.clientWidth;this.element.scrollLeft=t,t>o?(e=t-o,this.element.style.marginLeft=-e+"px"):this.element.style.marginLeft=0,this.scrollLeft=t,this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.scrollHorizontal()},ColumnManager.prototype.generateColumnsFromRowData=function(t){var e,o,i=[];if(t&&t.length){e=t[0];for(var n in e){var s={field:n,title:n},l=e[n];switch(void 0===l?"undefined":_typeof(l)){case"undefined":o="string";break;case"boolean":o="boolean";break;case"object":o=Array.isArray(l)?"array":"string";break;default:o=isNaN(l)||""===l?l.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)?"alphanum":"string":"number"}s.sorter=o,i.push(s)}this.table.options.columns=i,this.setColumns(this.table.options.columns)}},ColumnManager.prototype.setColumns=function(t,e){for(var o=this;o.headersElement.firstChild;)o.headersElement.removeChild(o.headersElement.firstChild);o.columns=[],o.columnsByIndex=[],o.columnsByField={},o.table.modExists("frozenColumns")&&o.table.modules.frozenColumns.reset(),t.forEach(function(t,e){o._addColumn(t)}),o._reIndexColumns(),o.table.options.responsiveLayout&&o.table.modExists("responsiveLayout",!0)&&o.table.modules.responsiveLayout.initialize(),o.redraw(!0)},ColumnManager.prototype._addColumn=function(t,e,o){var i=new Column(t,this),n=i.getElement(),s=o?this.findColumnIndex(o):o;if(o&&s>-1){var l=this.columns.indexOf(o.getTopColumn()),a=o.getElement();e?(this.columns.splice(l,0,i),a.parentNode.insertBefore(n,a)):(this.columns.splice(l+1,0,i),a.parentNode.insertBefore(n,a.nextSibling))}else e?(this.columns.unshift(i),this.headersElement.insertBefore(i.getElement(),this.headersElement.firstChild)):(this.columns.push(i),this.headersElement.appendChild(i.getElement())),i.columnRendered();return i},ColumnManager.prototype.registerColumnField=function(t){t.definition.field&&(this.columnsByField[t.definition.field]=t)},ColumnManager.prototype.registerColumnPosition=function(t){this.columnsByIndex.push(t)},ColumnManager.prototype._reIndexColumns=function(){this.columnsByIndex=[],this.columns.forEach(function(t){t.reRegisterPosition()})},ColumnManager.prototype._verticalAlignHeaders=function(){var t=this,e=0;t.columns.forEach(function(t){var o;t.clearVerticalAlign(),(o=t.getHeight())>e&&(e=o)}),t.columns.forEach(function(o){o.verticalAlign(t.table.options.columnHeaderVertAlign,e)}),t.rowManager.adjustTableSize()},ColumnManager.prototype.findColumn=function(t){var e=this;if("object"!=(void 0===t?"undefined":_typeof(t)))return this.columnsByField[t]||!1;if(t instanceof Column)return t;if(t instanceof ColumnComponent)return t._getSelf()||!1;if("undefined"!=typeof HTMLElement&&t instanceof HTMLElement){return e.columns.find(function(e){return e.element===t})||!1}return!1},ColumnManager.prototype.getColumnByField=function(t){return this.columnsByField[t]},ColumnManager.prototype.getColumnsByFieldRoot=function(t){var e=this,o=[];return Object.keys(this.columnsByField).forEach(function(i){i.split(".")[0]===t&&o.push(e.columnsByField[i])}),o},ColumnManager.prototype.getColumnByIndex=function(t){return this.columnsByIndex[t]},ColumnManager.prototype.getFirstVisibileColumn=function(t){var t=this.columnsByIndex.findIndex(function(t){return t.visible});return t>-1&&this.columnsByIndex[t]},ColumnManager.prototype.getColumns=function(){return this.columns},ColumnManager.prototype.findColumnIndex=function(t){return this.columnsByIndex.findIndex(function(e){return t===e})},ColumnManager.prototype.getRealColumns=function(){return this.columnsByIndex},ColumnManager.prototype.traverse=function(t){this.columnsByIndex.forEach(function(e,o){t(e,o)})},ColumnManager.prototype.getDefinitions=function(t){var e=this,o=[];return e.columnsByIndex.forEach(function(e){(!t||t&&e.visible)&&o.push(e.getDefinition())}),o},ColumnManager.prototype.getDefinitionTree=function(){var t=this,e=[];return t.columns.forEach(function(t){e.push(t.getDefinition(!0))}),e},ColumnManager.prototype.getComponents=function(t){var e=this,o=[];return(t?e.columns:e.columnsByIndex).forEach(function(t){o.push(t.getComponent())}),o},ColumnManager.prototype.getWidth=function(){var t=0;return this.columnsByIndex.forEach(function(e){e.visible&&(t+=e.getWidth())}),t},ColumnManager.prototype.moveColumn=function(t,e,o){this.moveColumnActual(t,e,o),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),e.element.parentNode.insertBefore(t.element,e.element),o&&e.element.parentNode.insertBefore(e.element,t.element),this._verticalAlignHeaders(),this.table.rowManager.reinitialize()},ColumnManager.prototype.moveColumnActual=function(t,e,o){t.parent.isGroup?this._moveColumnInArray(t.parent.columns,t,e,o):this._moveColumnInArray(this.columns,t,e,o),this._moveColumnInArray(this.columnsByIndex,t,e,o,!0),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.options.columnMoved&&this.table.options.columnMoved.call(this.table,t.getComponent(),this.table.columnManager.getComponents()),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns")},ColumnManager.prototype._moveColumnInArray=function(t,e,o,i,n){var s,l=t.indexOf(e);l>-1&&(t.splice(l,1),s=t.indexOf(o),s>-1?i&&(s+=1):s=l,t.splice(s,0,e),n&&this.table.rowManager.rows.forEach(function(t){if(t.cells.length){var e=t.cells.splice(l,1)[0];t.cells.splice(s,0,e)}}))},ColumnManager.prototype.scrollToColumn=function(t,e,o){var i=this,n=0,s=0,l=0,a=t.getElement();return new Promise(function(r,u){if(void 0===e&&(e=i.table.options.scrollToColumnPosition),void 0===o&&(o=i.table.options.scrollToColumnIfVisible),t.visible){switch(e){case"middle":case"center":l=-i.element.clientWidth/2;break;case"right":l=a.clientWidth-i.headersElement.clientWidth}if(!o&&(s=a.offsetLeft)>0&&s+a.offsetWidth<i.element.clientWidth)return!1;n=a.offsetLeft+i.element.scrollLeft+l,n=Math.max(Math.min(n,i.table.rowManager.element.scrollWidth-i.table.rowManager.element.clientWidth),0),i.table.rowManager.scrollHorizontal(n),i.scrollHorizontal(n),r()}else console.warn("Scroll Error - Column not visible"),u("Scroll Error - Column not visible")})},ColumnManager.prototype.generateCells=function(t){var e=this,o=[];return e.columnsByIndex.forEach(function(e){o.push(e.generateCell(t))}),o},ColumnManager.prototype.getFlexBaseWidth=function(){var t=this,e=t.table.element.clientWidth,o=0;return t.rowManager.element.scrollHeight>t.rowManager.element.clientHeight&&(e-=t.rowManager.element.offsetWidth-t.rowManager.element.clientWidth),this.columnsByIndex.forEach(function(i){var n,s,l;i.visible&&(n=i.definition.width||0,s=void 0===i.minWidth?t.table.options.columnMinWidth:parseInt(i.minWidth),l="string"==typeof n?n.indexOf("%")>-1?e/100*parseInt(n):parseInt(n):n,o+=l>s?l:s)}),o},ColumnManager.prototype.addColumn=function(t,e,o){var i=this;return new Promise(function(n,s){var l=i._addColumn(t,e,o);i._reIndexColumns(),i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout",!0)&&i.table.modules.responsiveLayout.initialize(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.redraw(),"fitColumns"!=i.table.modules.layout.getMode()&&l.reinitializeWidth(),i._verticalAlignHeaders(),i.table.rowManager.reinitialize(),n(l)})},ColumnManager.prototype.deregisterColumn=function(t){var e,o=t.getField();o&&delete this.columnsByField[o],e=this.columnsByIndex.indexOf(t),e>-1&&this.columnsByIndex.splice(e,1),e=this.columns.indexOf(t),e>-1&&this.columns.splice(e,1),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.redraw()},ColumnManager.prototype.redraw=function(t){t&&(Tabulator.prototype.helpers.elVisible(this.element)&&this._verticalAlignHeaders(),this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize()),["fitColumns","fitDataStretch"].indexOf(this.table.modules.layout.getMode())>-1?this.table.modules.layout.layout():t?this.table.modules.layout.layout():this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),t&&(this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.redraw()),this.table.footerManager.redraw()};var ColumnComponent=function(t){this._column=t,this.type="ColumnComponent"};ColumnComponent.prototype.getElement=function(){return this._column.getElement()},ColumnComponent.prototype.getDefinition=function(){return this._column.getDefinition()},ColumnComponent.prototype.getField=function(){return this._column.getField()},ColumnComponent.prototype.getCells=function(){var t=[];return this._column.cells.forEach(function(e){t.push(e.getComponent())}),t},ColumnComponent.prototype.getVisibility=function(){return this._column.visible},ColumnComponent.prototype.show=function(){this._column.isGroup?this._column.columns.forEach(function(t){t.show()}):this._column.show()},ColumnComponent.prototype.hide=function(){this._column.isGroup?this._column.columns.forEach(function(t){t.hide()}):this._column.hide()},ColumnComponent.prototype.toggle=function(){this._column.visible?this.hide():this.show()},ColumnComponent.prototype.delete=function(){return this._column.delete()},ColumnComponent.prototype.getSubColumns=function(){var t=[];return this._column.columns.length&&this._column.columns.forEach(function(e){t.push(e.getComponent())}),t},ColumnComponent.prototype.getParentColumn=function(){return this._column.parent instanceof Column&&this._column.parent.getComponent()},ColumnComponent.prototype._getSelf=function(){return this._column},ColumnComponent.prototype.scrollTo=function(){return this._column.table.columnManager.scrollToColumn(this._column)},ColumnComponent.prototype.getTable=function(){return this._column.table},ColumnComponent.prototype.headerFilterFocus=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterFocus(this._column)},ColumnComponent.prototype.reloadHeaderFilter=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.reloadHeaderFilter(this._column)},ColumnComponent.prototype.getHeaderFilterValue=function(){if(this._column.table.modExists("filter",!0))return this._column.table.modules.filter.getHeaderFilterValue(this._column)},ColumnComponent.prototype.setHeaderFilterValue=function(t){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterValue(this._column,t)},ColumnComponent.prototype.move=function(t,e){var o=this._column.table.columnManager.findColumn(t);o?this._column.table.columnManager.moveColumn(this._column,o,e):console.warn("Move Error - No matching column found:",o)},ColumnComponent.prototype.getNextColumn=function(){var t=this._column.nextColumn();return!!t&&t.getComponent()},ColumnComponent.prototype.getPrevColumn=function(){var t=this._column.prevColumn();return!!t&&t.getComponent()},ColumnComponent.prototype.updateDefinition=function(t){return this._column.updateDefinition(t)};var Column=function t(e,o){var i=this;this.table=o.table,this.definition=e,this.parent=o,this.type="column",this.columns=[],this.cells=[],this.element=this.createElement(),this.contentElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.isGroup=!1,this.tooltip=!1,this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleFormatterRendered=!1,this.setField(this.definition.field),this.table.options.invalidOptionWarnings&&this.checkDefinition(),this.modules={},this.cellEvents={cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1},this.width=null,this.widthStyled="",this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this._mapDepricatedFunctionality(),e.columns?(this.isGroup=!0,e.columns.forEach(function(e,o){var n=new t(e,i);i.attachColumn(n)}),i.checkColumnVisibility()):o.registerColumnField(this),e.rowHandle&&!1!==this.table.options.movableRows&&this.table.modExists("moveRow")&&this.table.modules.moveRow.setHandle(!0),this._buildHeader(),this.bindModuleColumns()};Column.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-col"),t.setAttribute("role","columnheader"),t.setAttribute("aria-sort","none"),t},Column.prototype.createGroupElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-col-group-cols"),t},Column.prototype.checkDefinition=function(){var t=this;Object.keys(this.definition).forEach(function(e){-1===t.defaultOptionList.indexOf(e)&&console.warn("Invalid column definition option in '"+(t.field||t.definition.title)+"' column:",e)})},Column.prototype.setField=function(t){this.field=t,this.fieldStructure=t?this.table.options.nestedFieldSeparator?t.split(this.table.options.nestedFieldSeparator):[t]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData},Column.prototype.registerColumnPosition=function(t){this.parent.registerColumnPosition(t)},Column.prototype.registerColumnField=function(t){this.parent.registerColumnField(t)},Column.prototype.reRegisterPosition=function(){this.isGroup?this.columns.forEach(function(t){t.reRegisterPosition()}):this.registerColumnPosition(this)},Column.prototype._mapDepricatedFunctionality=function(){void 0!==this.definition.hideInHtml&&(this.definition.htmlOutput=!this.definition.hideInHtml,console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput")),void 0!==this.definition.align&&(this.definition.hozAlign=this.definition.align,console.warn("align column definition property is deprecated, you should now use hozAlign"))},Column.prototype.setTooltip=function(){var t=this,e=t.definition,o=e.headerTooltip||!1===e.tooltip?e.headerTooltip:t.table.options.tooltipsHeader;o?!0===o?e.field?t.table.modules.localize.bind("columns|"+e.field,function(o){t.element.setAttribute("title",o||e.title)}):t.element.setAttribute("title",e.title):("function"==typeof o&&!1===(o=o(t.getComponent()))&&(o=""),t.element.setAttribute("title",o)):t.element.setAttribute("title","")},Column.prototype._buildHeader=function(){for(var t=this,e=t.definition;t.element.firstChild;)t.element.removeChild(t.element.firstChild);e.headerVertical&&(t.element.classList.add("tabulator-col-vertical"),"flip"===e.headerVertical&&t.element.classList.add("tabulator-col-vertical-flip")),t.contentElement=t._bindEvents(),t.contentElement=t._buildColumnHeaderContent(),t.element.appendChild(t.contentElement),t.isGroup?t._buildGroupHeader():t._buildColumnHeader(),t.setTooltip(),t.table.options.resizableColumns&&t.table.modExists("resizeColumns")&&t.table.modules.resizeColumns.initializeColumn("header",t,t.element),e.headerFilter&&t.table.modExists("filter")&&t.table.modExists("edit")&&(void 0!==e.headerFilterPlaceholder&&e.field&&t.table.modules.localize.setHeaderFilterColumnPlaceholder(e.field,e.headerFilterPlaceholder),t.table.modules.filter.initializeColumn(t)),t.table.modExists("frozenColumns")&&t.table.modules.frozenColumns.initializeColumn(t),t.table.options.movableColumns&&!t.isGroup&&t.table.modExists("moveColumn")&&t.table.modules.moveColumn.initializeColumn(t),(e.topCalc||e.bottomCalc)&&t.table.modExists("columnCalcs")&&t.table.modules.columnCalcs.initializeColumn(t),t.table.modExists("persistence")&&t.table.modules.persistence.config.columns&&t.table.modules.persistence.initializeColumn(t),t.element.addEventListener("mouseenter",function(e){t.setTooltip()})},Column.prototype._bindEvents=function(){var t,e,o,i=this,n=i.definition;"function"==typeof n.headerClick&&i.element.addEventListener("click",function(t){n.headerClick(t,i.getComponent())}),"function"==typeof n.headerDblClick&&i.element.addEventListener("dblclick",function(t){n.headerDblClick(t,i.getComponent())}),"function"==typeof n.headerContext&&i.element.addEventListener("contextmenu",function(t){n.headerContext(t,i.getComponent())}),"function"==typeof n.headerTap&&(o=!1,i.element.addEventListener("touchstart",function(t){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(t){o&&n.headerTap(t,i.getComponent()),o=!1})),"function"==typeof n.headerDblTap&&(t=null,i.element.addEventListener("touchend",function(e){t?(clearTimeout(t),t=null,n.headerDblTap(e,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),"function"==typeof n.headerTapHold&&(e=null,i.element.addEventListener("touchstart",function(t){clearTimeout(e),e=setTimeout(function(){clearTimeout(e),e=null,o=!1,n.headerTapHold(t,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(t){clearTimeout(e),e=null})),"function"==typeof n.cellClick&&(i.cellEvents.cellClick=n.cellClick),"function"==typeof n.cellDblClick&&(i.cellEvents.cellDblClick=n.cellDblClick),"function"==typeof n.cellContext&&(i.cellEvents.cellContext=n.cellContext),"function"==typeof n.cellMouseEnter&&(i.cellEvents.cellMouseEnter=n.cellMouseEnter),"function"==typeof n.cellMouseLeave&&(i.cellEvents.cellMouseLeave=n.cellMouseLeave),"function"==typeof n.cellMouseOver&&(i.cellEvents.cellMouseOver=n.cellMouseOver),"function"==typeof n.cellMouseOut&&(i.cellEvents.cellMouseOut=n.cellMouseOut),"function"==typeof n.cellMouseMove&&(i.cellEvents.cellMouseMove=n.cellMouseMove),"function"==typeof n.cellTap&&(i.cellEvents.cellTap=n.cellTap),"function"==typeof n.cellDblTap&&(i.cellEvents.cellDblTap=n.cellDblTap),"function"==typeof n.cellTapHold&&(i.cellEvents.cellTapHold=n.cellTapHold),"function"==typeof n.cellEdited&&(i.cellEvents.cellEdited=n.cellEdited),"function"==typeof n.cellEditing&&(i.cellEvents.cellEditing=n.cellEditing),"function"==typeof n.cellEditCancelled&&(i.cellEvents.cellEditCancelled=n.cellEditCancelled)},Column.prototype._buildColumnHeader=function(){var t=this,e=t.definition,o=t.table;if(o.modExists("sort")&&o.modules.sort.initializeColumn(t,t.contentElement),(e.headerContextMenu||e.headerMenu)&&o.modExists("menu")&&o.modules.menu.initializeColumnHeader(t),o.modExists("format")&&o.modules.format.initializeColumn(t),void 0!==e.editor&&o.modExists("edit")&&o.modules.edit.initializeColumn(t),void 0!==e.validator&&o.modExists("validate")&&o.modules.validate.initializeColumn(t),o.modExists("mutator")&&o.modules.mutator.initializeColumn(t),o.modExists("accessor")&&o.modules.accessor.initializeColumn(t),_typeof(o.options.responsiveLayout)&&o.modExists("responsiveLayout")&&o.modules.responsiveLayout.initializeColumn(t),void 0!==e.visible&&(e.visible?t.show(!0):t.hide(!0)),e.cssClass){e.cssClass.split(" ").forEach(function(e){t.element.classList.add(e)})}e.field&&this.element.setAttribute("tabulator-field",e.field),t.setMinWidth(void 0===e.minWidth?t.table.options.columnMinWidth:parseInt(e.minWidth)),t.reinitializeWidth(),t.tooltip=t.definition.tooltip||!1===t.definition.tooltip?t.definition.tooltip:t.table.options.tooltips,t.hozAlign=void 0===t.definition.hozAlign?t.table.options.cellHozAlign:t.definition.hozAlign,t.vertAlign=void 0===t.definition.vertAlign?t.table.options.cellVertAlign:t.definition.vertAlign},Column.prototype._buildColumnHeaderContent=function(){var t=(this.definition,this.table,document.createElement("div"));return t.classList.add("tabulator-col-content"),this.titleElement=this._buildColumnHeaderTitle(),t.appendChild(this.titleElement),t},Column.prototype._buildColumnHeaderTitle=function(){var t=this,e=t.definition,o=t.table,i=document.createElement("div");if(i.classList.add("tabulator-col-title"),e.editableTitle){var n=document.createElement("input");n.classList.add("tabulator-title-editor"),n.addEventListener("click",function(t){t.stopPropagation(),n.focus()}),n.addEventListener("change",function(){e.title=n.value,o.options.columnTitleChanged.call(t.table,t.getComponent())}),i.appendChild(n),e.field?o.modules.localize.bind("columns|"+e.field,function(t){n.value=t||e.title||" "}):n.value=e.title||" "}else e.field?o.modules.localize.bind("columns|"+e.field,function(o){t._formatColumnHeaderTitle(i,o||e.title||" ")}):t._formatColumnHeaderTitle(i,e.title||" ");return i},Column.prototype._formatColumnHeaderTitle=function(t,e){var o,i,n,s,l,a=this;if(this.definition.titleFormatter&&this.table.modExists("format"))switch(o=this.table.modules.format.getFormatter(this.definition.titleFormatter),l=function(t){a.titleFormatterRendered=t},s={getValue:function(){return e},getElement:function(){return t}},n=this.definition.titleFormatterParams||{},n="function"==typeof n?n():n,i=o.call(this.table.modules.format,s,n,l),void 0===i?"undefined":_typeof(i)){case"object":i instanceof Node?t.appendChild(i):(t.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",i));break;case"undefined":case"null":t.innerHTML="";break;default:t.innerHTML=i}else t.innerHTML=e},Column.prototype._buildGroupHeader=function(){var t=this;if(this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass){this.definition.cssClass.split(" ").forEach(function(e){t.element.classList.add(e)})}this.element.appendChild(this.groupElement)},Column.prototype._getFlatData=function(t){return t[this.field]},Column.prototype._getNestedData=function(t){for(var e,o=t,i=this.fieldStructure,n=i.length,s=0;s<n&&(o=o[i[s]],e=o,o);s++);return e},Column.prototype._setFlatData=function(t,e){this.field&&(t[this.field]=e)},Column.prototype._setNestedData=function(t,e){for(var o=t,i=this.fieldStructure,n=i.length,s=0;s<n;s++)if(s==n-1)o[i[s]]=e;else{if(!o[i[s]]){if(void 0===e)break;o[i[s]]={}}o=o[i[s]]}},Column.prototype.attachColumn=function(t){var e=this;e.groupElement?(e.columns.push(t),e.groupElement.appendChild(t.getElement())):console.warn("Column Warning - Column being attached to another column instead of column group")},Column.prototype.verticalAlign=function(t,e){var o=this.parent.isGroup?this.parent.getGroupElement().clientHeight:e||this.parent.getHeadersElement().clientHeight;this.element.style.height=o+"px",this.isGroup&&(this.groupElement.style.minHeight=o-this.contentElement.offsetHeight+"px"),this.isGroup||"top"===t||(this.element.style.paddingTop="bottom"===t?this.element.clientHeight-this.contentElement.offsetHeight+"px":(this.element.clientHeight-this.contentElement.offsetHeight)/2+"px"),this.columns.forEach(function(e){e.verticalAlign(t)})},Column.prototype.clearVerticalAlign=function(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(t){t.clearVerticalAlign()})},Column.prototype.bindModuleColumns=function(){"rownum"==this.definition.formatter&&(this.table.rowManager.rowNumColumn=this)},Column.prototype.getElement=function(){return this.element},Column.prototype.getGroupElement=function(){return this.groupElement},Column.prototype.getField=function(){return this.field},Column.prototype.getFirstColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[0].getFirstColumn():this},Column.prototype.getLastColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[this.columns.length-1].getLastColumn():this},Column.prototype.getColumns=function(){return this.columns},Column.prototype.getCells=function(){return this.cells},Column.prototype.getTopColumn=function(){return this.parent.isGroup?this.parent.getTopColumn():this},Column.prototype.getDefinition=function(t){var e=[];return this.isGroup&&t&&(this.columns.forEach(function(t){e.push(t.getDefinition(!0))}),this.definition.columns=e),this.definition},Column.prototype.checkColumnVisibility=function(){var t=!1;this.columns.forEach(function(e){e.visible&&(t=!0)}),t?(this.show(),this.parent.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1)):this.hide()},Column.prototype.show=function(t,e){this.visible||(this.visible=!0,this.element.style.display="",this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(t){t.show()}),this.isGroup||null!==this.width||this.reinitializeWidth(),this.table.columnManager._verticalAlignHeaders(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!e&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),t||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!0),this.parent.isGroup&&this.parent.matchChildWidths())},Column.prototype.hide=function(t,e){this.visible&&(this.visible=!1,this.element.style.display="none",this.table.columnManager._verticalAlignHeaders(),this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(t){t.hide()}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!e&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),t||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1),this.parent.isGroup&&this.parent.matchChildWidths())},Column.prototype.matchChildWidths=function(){var t=0;this.contentElement&&this.columns.length&&(this.columns.forEach(function(e){e.visible&&(t+=e.getWidth())}),this.contentElement.style.maxWidth=t-1+"px",this.parent.isGroup&&this.parent.matchChildWidths())},Column.prototype.setWidth=function(t){this.widthFixed=!0,this.setWidthActual(t)},Column.prototype.setWidthActual=function(t){isNaN(t)&&(t=Math.floor(this.table.element.clientWidth/100*parseInt(t))),t=Math.max(this.minWidth,t),this.width=t,this.widthStyled=t?t+"px":"",this.element.style.width=this.widthStyled,this.isGroup||this.cells.forEach(function(t){t.setWidth()}),this.parent.isGroup&&this.parent.matchChildWidths(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()},Column.prototype.checkCellHeights=function(){var t=[];this.cells.forEach(function(e){e.row.heightInitialized&&(null!==e.row.getElement().offsetParent?(t.push(e.row),e.row.clearCellHeight()):e.row.heightInitialized=!1)}),t.forEach(function(t){t.calcHeight()}),t.forEach(function(t){t.setCellHeight()})},Column.prototype.getWidth=function(){var t=0;return this.isGroup?this.columns.forEach(function(e){e.visible&&(t+=e.getWidth())}):t=this.width,t},Column.prototype.getHeight=function(){return this.element.offsetHeight},Column.prototype.setMinWidth=function(t){this.minWidth=t,this.minWidthStyled=t?t+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(t){t.setMinWidth()})},Column.prototype.delete=function(){var t=this;return new Promise(function(e,o){t.isGroup&&t.columns.forEach(function(t){t.delete()}),t.table.modExists("edit")&&t.table.modules.edit.currentCell.column===t&&t.table.modules.edit.cancelEdit();for(var i=t.cells.length,n=0;n<i;n++)t.cells[0].delete();t.element.parentNode.removeChild(t.element),t.table.columnManager.deregisterColumn(t),e()})},Column.prototype.columnRendered=function(){this.titleFormatterRendered&&this.titleFormatterRendered()},Column.prototype.generateCell=function(t){var e=this,o=new Cell(e,t);return this.cells.push(o),o},Column.prototype.nextColumn=function(){var t=this.table.columnManager.findColumnIndex(this);return t>-1&&this._nextVisibleColumn(t+1)},Column.prototype._nextVisibleColumn=function(t){var e=this.table.columnManager.getColumnByIndex(t);return!e||e.visible?e:this._nextVisibleColumn(t+1)},Column.prototype.prevColumn=function(){var t=this.table.columnManager.findColumnIndex(this);return t>-1&&this._prevVisibleColumn(t-1)},Column.prototype._prevVisibleColumn=function(t){var e=this.table.columnManager.getColumnByIndex(t);return!e||e.visible?e:this._prevVisibleColumn(t-1)},Column.prototype.reinitializeWidth=function(t){this.widthFixed=!1,void 0===this.definition.width||t||this.setWidth(this.definition.width),this.table.modExists("filter")&&this.table.modules.filter.hideHeaderFilterElements(),this.fitToData(),this.table.modExists("filter")&&this.table.modules.filter.showHeaderFilterElements()},Column.prototype.fitToData=function(){var t=this;this.widthFixed||(this.element.style.width="",t.cells.forEach(function(t){t.clearWidth()}));var e=this.element.offsetWidth;t.width&&this.widthFixed||(t.cells.forEach(function(t){var o=t.getWidth();o>e&&(e=o)}),e&&t.setWidthActual(e+1))},Column.prototype.updateDefinition=function(t){var e=this;return new Promise(function(o,i){var n;e.isGroup?(console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups"),i("Column Update Error - The updateDefintion function is only available on columns, not column groups")):(n=Object.assign({},e.getDefinition()),n=Object.assign(n,t),e.table.columnManager.addColumn(n,!1,e).then(function(t){n.field==e.field&&(e.field=!1),
-e.delete().then(function(){o(t.getComponent())}).catch(function(t){i(t)})}).catch(function(t){i(t)}))})},Column.prototype.deleteCell=function(t){var e=this.cells.indexOf(t);e>-1&&this.cells.splice(e,1)},Column.prototype.defaultOptionList=["title","field","columns","visible","align","hozAlign","vertAlign","width","minWidth","widthGrow","widthShrink","resizable","frozen","responsive","tooltip","cssClass","rowHandle","hideInHtml","print","htmlOutput","sorter","sorterParams","formatter","formatterParams","variableHeight","editable","editor","editorParams","validator","mutator","mutatorParams","mutatorData","mutatorDataParams","mutatorEdit","mutatorEditParams","mutatorClipboard","mutatorClipboardParams","accessor","accessorParams","accessorData","accessorDataParams","accessorDownload","accessorDownloadParams","accessorClipboard","accessorClipboardParams","accessorPrint","accessorPrintParams","accessorHtmlOutput","accessorHtmlOutputParams","clipboard","download","downloadTitle","topCalc","topCalcParams","topCalcFormatter","topCalcFormatterParams","bottomCalc","bottomCalcParams","bottomCalcFormatter","bottomCalcFormatterParams","cellClick","cellDblClick","cellContext","cellTap","cellDblTap","cellTapHold","cellMouseEnter","cellMouseLeave","cellMouseOver","cellMouseOut","cellMouseMove","cellEditing","cellEdited","cellEditCancelled","headerSort","headerSortStartingDir","headerSortTristate","headerClick","headerDblClick","headerContext","headerTap","headerDblTap","headerTapHold","headerTooltip","headerVertical","editableTitle","titleFormatter","titleFormatterParams","headerFilter","headerFilterPlaceholder","headerFilterParams","headerFilterEmptyCheck","headerFilterFunc","headerFilterFuncParams","headerFilterLiveFilter","print","headerContextMenu","headerMenu","contextMenu","formatterPrint","formatterPrintParams","formatterClipboard","formatterClipboardParams","formatterHtmlOutput","formatterHtmlOutputParams"],Column.prototype.getComponent=function(){return new ColumnComponent(this)};var RowManager=function(t){this.table=t,this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.columnManager=null,this.height=0,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[],this.rowNumColumn=!1,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRederInPosition=!1};RowManager.prototype.createHolderElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-tableHolder"),t.setAttribute("tabindex",0),t},RowManager.prototype.createTableElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-table"),t},RowManager.prototype.getElement=function(){return this.element},RowManager.prototype.getTableElement=function(){return this.tableElement},RowManager.prototype.getRowPosition=function(t,e){return e?this.activeRows.indexOf(t):this.rows.indexOf(t)},RowManager.prototype.setColumnManager=function(t){this.columnManager=t},RowManager.prototype.initialize=function(){var t=this;t.setRenderMode(),t.element.appendChild(t.tableElement),t.firstRender=!0,t.element.addEventListener("scroll",function(){var e=t.element.scrollLeft;t.scrollLeft!=e&&(t.columnManager.scrollHorizontal(e),t.table.options.groupBy&&t.table.modules.groupRows.scrollHeaders(e),t.table.modExists("columnCalcs")&&t.table.modules.columnCalcs.scrollHorizontal(e),t.table.options.scrollHorizontal(e)),t.scrollLeft=e}),"virtual"===this.renderMode&&t.element.addEventListener("scroll",function(){var e=t.element.scrollTop,o=t.scrollTop>e;t.scrollTop!=e?(t.scrollTop=e,t.scrollVertical(o),"scroll"==t.table.options.ajaxProgressiveLoad&&t.table.modules.ajax.nextPage(t.element.scrollHeight-t.element.clientHeight-e),t.table.options.scrollVertical(e)):t.scrollTop=e})},RowManager.prototype.findRow=function(t){var e=this;if("object"!=(void 0===t?"undefined":_typeof(t))){if(void 0===t||null===t)return!1;return e.rows.find(function(o){return o.data[e.table.options.index]==t})||!1}if(t instanceof Row)return t;if(t instanceof RowComponent)return t._getSelf()||!1;if("undefined"!=typeof HTMLElement&&t instanceof HTMLElement){return e.rows.find(function(e){return e.element===t})||!1}return!1},RowManager.prototype.getRowFromDataObject=function(t){return this.rows.find(function(e){return e.data===t})||!1},RowManager.prototype.getRowFromPosition=function(t,e){return e?this.activeRows[t]:this.rows[t]},RowManager.prototype.scrollToRow=function(t,e,o){var i,n=this,s=this.getDisplayRows().indexOf(t),l=t.getElement(),a=0;return new Promise(function(t,r){if(s>-1){if(void 0===e&&(e=n.table.options.scrollToRowPosition),void 0===o&&(o=n.table.options.scrollToRowIfVisible),"nearest"===e)switch(n.renderMode){case"classic":i=Tabulator.prototype.helpers.elOffset(l).top,e=Math.abs(n.element.scrollTop-i)>Math.abs(n.element.scrollTop+n.element.clientHeight-i)?"bottom":"top";break;case"virtual":e=Math.abs(n.vDomTop-s)>Math.abs(n.vDomBottom-s)?"bottom":"top"}if(!o&&Tabulator.prototype.helpers.elVisible(l)&&(a=Tabulator.prototype.helpers.elOffset(l).top-Tabulator.prototype.helpers.elOffset(n.element).top)>0&&a<n.element.clientHeight-l.offsetHeight)return!1;switch(n.renderMode){case"classic":n.element.scrollTop=Tabulator.prototype.helpers.elOffset(l).top-Tabulator.prototype.helpers.elOffset(n.element).top+n.element.scrollTop;break;case"virtual":n._virtualRenderFill(s,!0)}switch(e){case"middle":case"center":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop+(l.offsetTop-n.element.scrollTop)-(n.element.scrollHeight-l.offsetTop)/2:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight/2;break;case"bottom":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop-(n.element.scrollHeight-l.offsetTop)+l.offsetHeight:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight+l.offsetHeight}t()}else console.warn("Scroll Error - Row not visible"),r("Scroll Error - Row not visible")})},RowManager.prototype.setData=function(t,e,o){var i=this,n=this;return new Promise(function(s,l){e&&i.getDisplayRows().length?n.table.options.pagination?n._setDataActual(t,!0):i.reRenderInPosition(function(){n._setDataActual(t)}):(i.table.options.autoColumns&&o&&i.table.columnManager.generateColumnsFromRowData(t),i.resetScroll(),i._setDataActual(t)),s()})},RowManager.prototype._setDataActual=function(t,e){var o=this;o.table.options.dataLoading.call(this.table,t),this._wipeElements(),this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.clear(),Array.isArray(t)?(this.table.modExists("selectRow")&&this.table.modules.selectRow.clearSelectionData(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchData(t),t.forEach(function(t,e){if(t&&"object"===(void 0===t?"undefined":_typeof(t))){var i=new Row(t,o);o.rows.push(i)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",t)}),o.table.options.dataLoaded.call(this.table,t),o.refreshActiveData(!1,!1,e)):console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ",void 0===t?"undefined":_typeof(t),"\nData: ",t)},RowManager.prototype._wipeElements=function(){this.rows.forEach(function(t){t.wipe()}),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.wipe(),this.rows=[]},RowManager.prototype.deleteRow=function(t,e){var o=this.rows.indexOf(t),i=this.activeRows.indexOf(t);i>-1&&this.activeRows.splice(i,1),o>-1&&this.rows.splice(o,1),this.setActiveRows(this.activeRows),this.displayRowIterator(function(e){var o=e.indexOf(t);o>-1&&e.splice(o,1)}),e||this.reRenderInPosition(),this.regenerateRowNumbers(),this.table.options.rowDeleted.call(this.table,t.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.groupRows.updateGroupRows(!0):this.table.options.pagination&&this.table.modExists("page")?this.refreshActiveData(!1,!1,!0):this.table.options.pagination&&this.table.modExists("page")&&this.refreshActiveData("page")},RowManager.prototype.addRow=function(t,e,o,i){var n=this.addRowActual(t,e,o,i);return this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowAdd",n,{data:t,pos:e,index:o}),n},RowManager.prototype.addRows=function(t,e,o){var i=this,n=this,s=0,l=[];return new Promise(function(a,r){e=i.findAddRowPos(e),Array.isArray(t)||(t=[t]),s=t.length-1,(void 0===o&&e||void 0!==o&&!e)&&t.reverse(),t.forEach(function(t,i){var s=n.addRow(t,e,o,!0);l.push(s)}),i.table.options.groupBy&&i.table.modExists("groupRows")?i.table.modules.groupRows.updateGroupRows(!0):i.table.options.pagination&&i.table.modExists("page")?i.refreshActiveData(!1,!1,!0):i.reRenderInPosition(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.regenerateRowNumbers(),a(l)})},RowManager.prototype.findAddRowPos=function(t){return void 0===t&&(t=this.table.options.addRowPos),"pos"===t&&(t=!0),"bottom"===t&&(t=!1),t},RowManager.prototype.addRowActual=function(t,e,o,i){var n,s,l=t instanceof Row?t:new Row(t||{},this),a=this.findAddRowPos(e),r=-1;if(!o&&this.table.options.pagination&&"page"==this.table.options.paginationAddRow&&(s=this.getDisplayRows(),a?s.length?o=s[0]:this.activeRows.length&&(o=this.activeRows[this.activeRows.length-1],a=!1):s.length&&(o=s[s.length-1],a=!(s.length<this.table.modules.page.getPageSize()))),void 0!==o&&(o=this.findRow(o)),this.table.options.groupBy&&this.table.modExists("groupRows")){this.table.modules.groupRows.assignRowToGroup(l);var u=l.getGroup().rows;u.length>1&&(!o||o&&-1==u.indexOf(o)?a?u[0]!==l&&(o=u[0],this._moveRowInArray(l.getGroup().rows,l,o,!a)):u[u.length-1]!==l&&(o=u[u.length-1],this._moveRowInArray(l.getGroup().rows,l,o,!a)):this._moveRowInArray(l.getGroup().rows,l,o,!a))}return o&&(r=this.rows.indexOf(o)),o&&r>-1?(n=this.activeRows.indexOf(o),this.displayRowIterator(function(t){var e=t.indexOf(o);e>-1&&t.splice(a?e:e+1,0,l)}),n>-1&&this.activeRows.splice(a?n:n+1,0,l),this.rows.splice(a?r:r+1,0,l)):a?(this.displayRowIterator(function(t){t.unshift(l)}),this.activeRows.unshift(l),this.rows.unshift(l)):(this.displayRowIterator(function(t){t.push(l)}),this.activeRows.push(l),this.rows.push(l)),this.setActiveRows(this.activeRows),this.table.options.rowAdded.call(this.table,l.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),i||this.reRenderInPosition(),l},RowManager.prototype.moveRow=function(t,e,o){this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowMove",t,{posFrom:this.getRowPosition(t),posTo:this.getRowPosition(e),to:e,after:o}),this.moveRowActual(t,e,o),this.regenerateRowNumbers(),this.table.options.rowMoved.call(this.table,t.getComponent())},RowManager.prototype.moveRowActual=function(t,e,o){var i=this;if(this._moveRowInArray(this.rows,t,e,o),this._moveRowInArray(this.activeRows,t,e,o),this.displayRowIterator(function(n){i._moveRowInArray(n,t,e,o)}),this.table.options.groupBy&&this.table.modExists("groupRows")){!o&&e instanceof Group&&(e=this.table.rowManager.prevDisplayRow(t)||e);var n=e.getGroup(),s=t.getGroup();n===s?this._moveRowInArray(n.rows,t,e,o):(s&&s.removeRow(t),n.insertRow(t,e,o))}},RowManager.prototype._moveRowInArray=function(t,e,o,i){var n,s,l,a;if(e!==o&&(n=t.indexOf(e),n>-1&&(t.splice(n,1),s=t.indexOf(o),s>-1?i?t.splice(s+1,0,e):t.splice(s,0,e):t.splice(n,0,e)),t===this.getDisplayRows())){l=n<s?n:s,a=s>n?s:n+1;for(var r=l;r<=a;r++)t[r]&&this.styleRow(t[r],r)}},RowManager.prototype.clearData=function(){this.setData([])},RowManager.prototype.getRowIndex=function(t){return this.findRowIndex(t,this.rows)},RowManager.prototype.getDisplayRowIndex=function(t){var e=this.getDisplayRows().indexOf(t);return e>-1&&e},RowManager.prototype.nextDisplayRow=function(t,e){var o=this.getDisplayRowIndex(t),i=!1;return!1!==o&&o<this.displayRowsCount-1&&(i=this.getDisplayRows()[o+1]),!i||i instanceof Row&&"row"==i.type?i:this.nextDisplayRow(i,e)},RowManager.prototype.prevDisplayRow=function(t,e){var o=this.getDisplayRowIndex(t),i=!1;return o&&(i=this.getDisplayRows()[o-1]),!e||!i||i instanceof Row&&"row"==i.type?i:this.prevDisplayRow(i,e)},RowManager.prototype.findRowIndex=function(t,e){var o;return!!((t=this.findRow(t))&&(o=e.indexOf(t))>-1)&&o},RowManager.prototype.getData=function(t,e){var o=[];return this.getRows(t).forEach(function(t){"row"==t.type&&o.push(t.getData(e||"data"))}),o},RowManager.prototype.getComponents=function(t){var e=[];return this.getRows(t).forEach(function(t){e.push(t.getComponent())}),e},RowManager.prototype.getDataCount=function(t){return this.getRows(t).length},RowManager.prototype._genRemoteRequest=function(){var t=this,e=this.table,o=e.options,i={};if(e.modExists("page")){if(o.ajaxSorting){var n=this.table.modules.sort.getSort();n.forEach(function(t){delete t.column}),i[this.table.modules.page.paginationDataSentNames.sorters]=n}if(o.ajaxFiltering){var s=this.table.modules.filter.getFilters(!0,!0);i[this.table.modules.page.paginationDataSentNames.filters]=s}this.table.modules.ajax.setParams(i,!0)}e.modules.ajax.sendRequest().then(function(e){t._setDataActual(e,!0)}).catch(function(t){})},RowManager.prototype.filterRefresh=function(){var t=this.table,e=t.options,o=this.scrollLeft;e.ajaxFiltering?"remote"==e.pagination&&t.modExists("page")?(t.modules.page.reset(!0),t.modules.page.setPage(1).then(function(){}).catch(function(){})):e.ajaxProgressiveLoad?t.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData("filter"),this.scrollHorizontal(o)},RowManager.prototype.sorterRefresh=function(t){var e=this.table,o=this.table.options,i=this.scrollLeft;o.ajaxSorting?("remote"==o.pagination||o.progressiveLoad)&&e.modExists("page")?(e.modules.page.reset(!0),e.modules.page.setPage(1).then(function(){}).catch(function(){})):o.ajaxProgressiveLoad?e.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData(t?"filter":"sort"),this.scrollHorizontal(i)},RowManager.prototype.scrollHorizontal=function(t){this.scrollLeft=t,this.element.scrollLeft=t,this.table.options.groupBy&&this.table.modules.groupRows.scrollHeaders(t),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.scrollHorizontal(t)},RowManager.prototype.refreshActiveData=function(t,e,o){var i,n=this,s=this.table,l=["all","filter","sort","display","freeze","group","tree","page"];if(this.redrawBlock)return void((!this.redrawBlockRestoreConfig||l.indexOf(t)<l.indexOf(this.redrawBlockRestoreConfig.stage))&&(this.redrawBlockRestoreConfig={stage:t,skipStage:e,renderInPosition:o}));switch(n.table.modExists("edit")&&n.table.modules.edit.cancelEdit(),t||(t="all"),s.options.selectable&&!s.options.selectablePersistence&&s.modExists("selectRow")&&s.modules.selectRow.deselectRows(),t){case"all":case"filter":e?e=!1:s.modExists("filter")?n.setActiveRows(s.modules.filter.filter(n.rows)):n.setActiveRows(n.rows.slice(0));case"sort":e?e=!1:s.modExists("sort")&&s.modules.sort.sort(this.activeRows),this.regenerateRowNumbers();case"display":this.resetDisplayRows();case"freeze":e?e=!1:this.table.modExists("frozenRows")&&s.modules.frozenRows.isFrozen()&&(s.modules.frozenRows.getDisplayIndex()||s.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.frozenRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.frozenRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.frozenRows.setDisplayIndex(i));case"group":e?e=!1:s.options.groupBy&&s.modExists("groupRows")&&(s.modules.groupRows.getDisplayIndex()||s.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.groupRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.groupRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.groupRows.setDisplayIndex(i));case"tree":e?e=!1:s.options.dataTree&&s.modExists("dataTree")&&(s.modules.dataTree.getDisplayIndex()||s.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.dataTree.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.dataTree.getRows(this.getDisplayRows(i-1)),i))&&s.modules.dataTree.setDisplayIndex(i)),s.options.pagination&&s.modExists("page")&&!o&&"local"==s.modules.page.getMode()&&s.modules.page.reset();case"page":e?e=!1:s.options.pagination&&s.modExists("page")&&(s.modules.page.getDisplayIndex()||s.modules.page.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.page.getDisplayIndex(),"local"==s.modules.page.getMode()&&s.modules.page.setMaxRows(this.getDisplayRows(i-1).length),!0!==(i=n.setDisplayRows(s.modules.page.getRows(this.getDisplayRows(i-1)),i))&&s.modules.page.setDisplayIndex(i))}Tabulator.prototype.helpers.elVisible(n.element)&&(o?n.reRenderInPosition():(n.renderTable(),s.options.layoutColumnsOnNewData&&n.table.columnManager.redraw(!0))),s.modExists("columnCalcs")&&s.modules.columnCalcs.recalc(this.activeRows)},RowManager.prototype.regenerateRowNumbers=function(){var t=this;this.rowNumColumn&&this.activeRows.forEach(function(e){var o=e.getCell(t.rowNumColumn);o&&o._generateContents()})},RowManager.prototype.setActiveRows=function(t){this.activeRows=t,this.activeRowsCount=this.activeRows.length},RowManager.prototype.resetDisplayRows=function(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length,this.table.modExists("frozenRows")&&this.table.modules.frozenRows.setDisplayIndex(0),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.setDisplayIndex(0),this.table.options.pagination&&this.table.modExists("page")&&this.table.modules.page.setDisplayIndex(0)},RowManager.prototype.getNextDisplayIndex=function(){return this.displayRows.length},RowManager.prototype.setDisplayRows=function(t,e){var o=!0;return e&&void 0!==this.displayRows[e]?(this.displayRows[e]=t,o=!0):(this.displayRows.push(t),o=e=this.displayRows.length-1),e==this.displayRows.length-1&&(this.displayRowsCount=this.displayRows[this.displayRows.length-1].length),o},RowManager.prototype.getDisplayRows=function(t){return void 0===t?this.displayRows.length?this.displayRows[this.displayRows.length-1]:[]:this.displayRows[t]||[]},RowManager.prototype.getVisibleRows=function(t){var e=this.element.scrollTop,o=this.element.clientHeight+e,i=!1,n=0,s=0,l=this.getDisplayRows();if(t){this.getDisplayRows();for(var a=this.vDomTop;a<=this.vDomBottom;a++)if(l[a])if(i){if(!(o-l[a].getElement().offsetTop>=0))break;s=a}else if(e-l[a].getElement().offsetTop>=0)n=a;else{if(i=!0,!(o-l[a].getElement().offsetTop>=0))break;s=a}}else n=this.vDomTop,s=this.vDomBottom;return l.slice(n,s+1)},RowManager.prototype.displayRowIterator=function(t){this.displayRows.forEach(t),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length},RowManager.prototype.getRows=function(t){var e;switch(t){case"active":e=this.activeRows;break;case"display":e=this.table.rowManager.getDisplayRows();break;case"visible":e=this.getVisibleRows(!0);break;default:e=this.rows}return e},RowManager.prototype.reRenderInPosition=function(t){if("virtual"==this.getRenderMode())if(this.redrawBlock)t?t():this.redrawBlockRederInPosition=!0;else{for(var e=this.element.scrollTop,o=!1,i=!1,n=this.scrollLeft,s=this.getDisplayRows(),l=this.vDomTop;l<=this.vDomBottom;l++)if(s[l]){var a=e-s[l].getElement().offsetTop;if(!(!1===i||Math.abs(a)<i))break;i=a,o=l}t&&t(),this._virtualRenderFill(!1===o?this.displayRowsCount-1:o,!0,i||0),this.scrollHorizontal(n)}else this.renderTable(),t&&t()},RowManager.prototype.setRenderMode=function(){this.table.options.virtualDom?(this.renderMode="virtual",this.table.element.clientHeight||this.table.options.height?this.fixedHeight=!0:this.fixedHeight=!1):this.renderMode="classic"},RowManager.prototype.getRenderMode=function(){return this.renderMode},RowManager.prototype.renderTable=function(){switch(this.table.options.renderStarted.call(this.table),this.element.scrollTop=0,this.renderMode){case"classic":this._simpleRender();break;case"virtual":this._virtualRenderFill()}this.firstRender&&(this.displayRowsCount?(this.firstRender=!1,this.table.modules.layout.layout()):this.renderEmptyScroll()),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.displayRowsCount||this.table.options.placeholder&&(this.table.options.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.table.options.placeholder),this.table.options.placeholder.style.width=this.table.columnManager.getWidth()+"px"),this.table.options.renderComplete.call(this.table)},RowManager.prototype._simpleRender=function(){this._clearVirtualDom(),this.displayRowsCount?this.checkClassicModeGroupHeaderWidth():this.renderEmptyScroll()},RowManager.prototype.checkClassicModeGroupHeaderWidth=function(){var t=this,e=this.tableElement,o=!0;t.getDisplayRows().forEach(function(i,n){t.styleRow(i,n),e.appendChild(i.getElement()),i.initialize(!0),"group"!==i.type&&(o=!1)}),e.style.minWidth=o?t.table.columnManager.getWidth()+"px":""},RowManager.prototype.renderEmptyScroll=function(){this.table.options.placeholder?this.tableElement.style.display="none":(this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px",this.tableElement.style.minHeight="1px",this.tableElement.style.visibility="hidden")},RowManager.prototype._clearVirtualDom=function(){var t=this.tableElement;for(this.table.options.placeholder&&this.table.options.placeholder.parentNode&&this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);t.firstChild;)t.removeChild(t.firstChild);t.style.paddingTop="",t.style.paddingBottom="",t.style.minWidth="",t.style.minHeight="",t.style.display="",t.style.visibility="",this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0},RowManager.prototype.styleRow=function(t,e){var o=t.getElement();e%2?(o.classList.add("tabulator-row-even"),o.classList.remove("tabulator-row-odd")):(o.classList.add("tabulator-row-odd"),o.classList.remove("tabulator-row-even"))},RowManager.prototype._virtualRenderFill=function(t,e,o){var i=this,n=i.tableElement,s=i.element,l=0,a=0,r=0,u=0,c=!0,h=i.getDisplayRows();if(t=t||0,o=o||0,t){for(;n.firstChild;)n.removeChild(n.firstChild);var p=(i.displayRowsCount-t+1)*i.vDomRowHeight;p<i.height&&(t-=Math.ceil((i.height-p)/i.vDomRowHeight))<0&&(t=0),l=Math.min(Math.max(Math.floor(i.vDomWindowBuffer/i.vDomRowHeight),i.vDomWindowMinMarginRows),t),t-=l}else i._clearVirtualDom();if(i.displayRowsCount&&Tabulator.prototype.helpers.elVisible(i.element)){for(i.vDomTop=t,i.vDomBottom=t-1;(a<=i.height+i.vDomWindowBuffer||u<i.vDomWindowMinTotalRows)&&i.vDomBottom<i.displayRowsCount-1;){var d=i.vDomBottom+1,m=h[d],f=0;i.styleRow(m,d),n.appendChild(m.getElement()),m.initialized?m.heightInitialized||m.normalizeHeight(!0):m.initialize(!0),f=m.getHeight(),u<l?r+=f:a+=f,f>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*f),"group"!==m.type&&(c=!1),i.vDomBottom++,u++}t?(i.vDomTopPad=e?i.vDomRowHeight*this.vDomTop+o:i.scrollTop-r,i.vDomBottomPad=i.vDomBottom==i.displayRowsCount-1?0:Math.max(i.vDomScrollHeight-i.vDomTopPad-a-r,0)):(this.vDomTopPad=0,i.vDomRowHeight=Math.floor((a+r)/u),i.vDomBottomPad=i.vDomRowHeight*(i.displayRowsCount-i.vDomBottom-1),i.vDomScrollHeight=r+a+i.vDomBottomPad-i.height),n.style.paddingTop=i.vDomTopPad+"px",n.style.paddingBottom=i.vDomBottomPad+"px",e&&(this.scrollTop=i.vDomTopPad+r+o-(this.element.scrollWidth>this.element.clientWidth?this.element.offsetHeight-this.element.clientHeight:0)),this.scrollTop=Math.min(this.scrollTop,this.element.scrollHeight-this.height),this.element.scrollWidth>this.element.offsetWidth&&e&&(this.scrollTop+=this.element.offsetHeight-this.element.clientHeight),this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,s.scrollTop=this.scrollTop,n.style.minWidth=c?i.table.columnManager.getWidth()+"px":"",i.table.options.groupBy&&"fitDataFill"!=i.table.modules.layout.getMode()&&i.displayRowsCount==i.table.modules.groupRows.countGroups()&&(i.tableElement.style.minWidth=i.table.columnManager.getWidth())}else this.renderEmptyScroll();this.fixedHeight||this.adjustTableSize()},RowManager.prototype.scrollVertical=function(t){var e=this.scrollTop-this.vDomScrollPosTop,o=this.scrollTop-this.vDomScrollPosBottom,i=2*this.vDomWindowBuffer;if(-e>i||o>i){var n=this.scrollLeft;this._virtualRenderFill(Math.floor(this.element.scrollTop/this.element.scrollHeight*this.displayRowsCount)),this.scrollHorizontal(n)}else t?(e<0&&this._addTopRow(-e),o<0&&(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer?this._removeBottomRow(-o):this.vDomScrollPosBottom=this.scrollTop)):(e>=0&&(this.scrollTop>this.vDomWindowBuffer?this._removeTopRow(e):this.vDomScrollPosTop=this.scrollTop),o>=0&&this._addBottomRow(o))},RowManager.prototype._addTopRow=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomTop){var n=this.vDomTop-1,s=i[n],l=s.getHeight()||this.vDomRowHeight;t>=l&&(this.styleRow(s,n),o.insertBefore(s.getElement(),o.firstChild),s.initialized&&s.heightInitialized||(this.vDomTopNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomTopPad-=l,this.vDomTopPad<0&&(this.vDomTopPad=n*this.vDomRowHeight),n||(this.vDomTopPad=0),o.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=l,this.vDomTop--),t=-(this.scrollTop-this.vDomScrollPosTop),s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),e<this.vDomMaxRenderChain&&this.vDomTop&&t>=(i[this.vDomTop-1].getHeight()||this.vDomRowHeight)?this._addTopRow(t,e+1):this._quickNormalizeRowHeight(this.vDomTopNewRows)}},RowManager.prototype._removeTopRow=function(t){var e=this.tableElement,o=this.getDisplayRows()[this.vDomTop],i=o.getHeight()||this.vDomRowHeight;if(t>=i){var n=o.getElement();n.parentNode.removeChild(n),this.vDomTopPad+=i,e.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?i:i+this.vDomWindowBuffer,this.vDomTop++,t=this.scrollTop-this.vDomScrollPosTop,this._removeTopRow(t)}},RowManager.prototype._addBottomRow=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomBottom<this.displayRowsCount-1){var n=this.vDomBottom+1,s=i[n],l=s.getHeight()||this.vDomRowHeight;t>=l&&(this.styleRow(s,n),o.appendChild(s.getElement()),s.initialized&&s.heightInitialized||(this.vDomBottomNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomBottomPad-=l,(this.vDomBottomPad<0||n==this.displayRowsCount-1)&&(this.vDomBottomPad=0),o.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=l,this.vDomBottom++),t=this.scrollTop-this.vDomScrollPosBottom,s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),e<this.vDomMaxRenderChain&&this.vDomBottom<this.displayRowsCount-1&&t>=(i[this.vDomBottom+1].getHeight()||this.vDomRowHeight)?this._addBottomRow(t,e+1):this._quickNormalizeRowHeight(this.vDomBottomNewRows)}},RowManager.prototype._removeBottomRow=function(t){var e=this.tableElement,o=this.getDisplayRows()[this.vDomBottom],i=o.getHeight()||this.vDomRowHeight;if(t>=i){var n=o.getElement();n.parentNode&&n.parentNode.removeChild(n),this.vDomBottomPad+=i,this.vDomBottomPad<0&&(this.vDomBottomPad=0),e.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=i,this.vDomBottom--,t=-(this.scrollTop-this.vDomScrollPosBottom),this._removeBottomRow(t)}},RowManager.prototype._quickNormalizeRowHeight=function(t){t.forEach(function(t){t.calcHeight()}),t.forEach(function(t){t.setCellHeight()}),t.length=0},RowManager.prototype.normalizeHeight=function(){this.activeRows.forEach(function(t){t.normalizeHeight()})},RowManager.prototype.adjustTableSize=function(){var t,e=this.element.clientHeight;if("virtual"===this.renderMode){var o=this.columnManager.getElement().offsetHeight+(this.table.footerManager&&!this.table.footerManager.external?this.table.footerManager.getElement().offsetHeight:0);this.fixedHeight?(this.element.style.minHeight="calc(100% - "+o+"px)",this.element.style.height="calc(100% - "+o+"px)",this.element.style.maxHeight="calc(100% - "+o+"px)"):(this.element.style.height="",this.element.style.height=this.table.element.clientHeight-o+"px",this.element.scrollTop=this.scrollTop),this.height=this.element.clientHeight,this.vDomWindowBuffer=this.table.options.virtualDomBuffer||this.height,this.fixedHeight||e==this.element.clientHeight||((t=this.table.modExists("resizeTable"))&&!this.table.modules.resizeTable.autoResize||!t)&&this.redraw()}},RowManager.prototype.reinitialize=function(){this.rows.forEach(function(t){t.reinitialize()})},RowManager.prototype.blockRedraw=function(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1},RowManager.prototype.restoreRedraw=function(){this.redrawBlock=!1,this.redrawBlockRestoreConfig?(this.refreshActiveData(this.redrawBlockRestoreConfig.stage,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1):this.redrawBlockRederInPosition&&this.reRenderInPosition(),this.redrawBlockRederInPosition=!1},RowManager.prototype.redraw=function(t){var e=this.scrollLeft;this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,t?this.renderTable():("classic"==this.renderMode?this.table.options.groupBy?this.refreshActiveData("group",!1,!1):this._simpleRender():(this.reRenderInPosition(),this.scrollHorizontal(e)),this.displayRowsCount||this.table.options.placeholder&&this.getElement().appendChild(this.table.options.placeholder))},RowManager.prototype.resetScroll=function(){if(this.element.scrollLeft=0,this.element.scrollTop=0,"ie"===this.table.browser){var t=document.createEvent("Event");t.initEvent("scroll",!1,!0),this.element.dispatchEvent(t)}else this.element.dispatchEvent(new Event("scroll"))};var RowComponent=function(t){this._row=t};RowComponent.prototype.getData=function(t){return this._row.getData(t)},RowComponent.prototype.getElement=function(){return this._row.getElement()},RowComponent.prototype.getCells=function(){var t=[];return this._row.getCells().forEach(function(e){t.push(e.getComponent())}),t},RowComponent.prototype.getCell=function(t){var e=this._row.getCell(t);return!!e&&e.getComponent()},RowComponent.prototype.getIndex=function(){return this._row.getData("data")[this._row.table.options.index]},RowComponent.prototype.getPosition=function(t){return this._row.table.rowManager.getRowPosition(this._row,t)},RowComponent.prototype.delete=function(){return this._row.delete()},RowComponent.prototype.scrollTo=function(){return this._row.table.rowManager.scrollToRow(this._row)},RowComponent.prototype.pageTo=function(){if(this._row.table.modExists("page",!0))return this._row.table.modules.page.setPageToRow(this._row)},RowComponent.prototype.move=function(t,e){this._row.moveToRow(t,e)},RowComponent.prototype.update=function(t){return this._row.updateData(t)},RowComponent.prototype.normalizeHeight=function(){this._row.normalizeHeight(!0)},RowComponent.prototype.select=function(){this._row.table.modules.selectRow.selectRows(this._row)},RowComponent.prototype.deselect=function(){
-this._row.table.modules.selectRow.deselectRows(this._row)},RowComponent.prototype.toggleSelect=function(){this._row.table.modules.selectRow.toggleRow(this._row)},RowComponent.prototype.isSelected=function(){return this._row.table.modules.selectRow.isRowSelected(this._row)},RowComponent.prototype._getSelf=function(){return this._row},RowComponent.prototype.freeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.freezeRow(this._row)},RowComponent.prototype.unfreeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.unfreezeRow(this._row)},RowComponent.prototype.treeCollapse=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.collapseRow(this._row)},RowComponent.prototype.treeExpand=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.expandRow(this._row)},RowComponent.prototype.treeToggle=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.toggleRow(this._row)},RowComponent.prototype.getTreeParent=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeParent(this._row)},RowComponent.prototype.getTreeChildren=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeChildren(this._row)},RowComponent.prototype.reformat=function(){return this._row.reinitialize()},RowComponent.prototype.getGroup=function(){return this._row.getGroup().getComponent()},RowComponent.prototype.getTable=function(){return this._row.table},RowComponent.prototype.getNextRow=function(){var t=this._row.nextRow();return t?t.getComponent():t},RowComponent.prototype.getPrevRow=function(){var t=this._row.prevRow();return t?t.getComponent():t};var Row=function(t,e){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"row";this.table=e.table,this.parent=e,this.data={},this.type=o,this.element=this.createElement(),this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.setData(t),this.generateElement()};Row.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-row"),t.setAttribute("role","row"),t},Row.prototype.getElement=function(){return this.element},Row.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},Row.prototype.generateElement=function(){var t,e,o,i=this;!1!==i.table.options.selectable&&i.table.modExists("selectRow")&&i.table.modules.selectRow.initializeRow(this),!1!==i.table.options.movableRows&&i.table.modExists("moveRow")&&i.table.modules.moveRow.initializeRow(this),!1!==i.table.options.dataTree&&i.table.modExists("dataTree")&&i.table.modules.dataTree.initializeRow(this),"collapse"===i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout")&&i.table.modules.responsiveLayout.initializeRow(this),i.table.options.rowContextMenu&&this.table.modExists("menu")&&i.table.modules.menu.initializeRow(this),i.table.options.rowClick&&i.element.addEventListener("click",function(t){i.table.options.rowClick(t,i.getComponent())}),i.table.options.rowDblClick&&i.element.addEventListener("dblclick",function(t){i.table.options.rowDblClick(t,i.getComponent())}),i.table.options.rowContext&&i.element.addEventListener("contextmenu",function(t){i.table.options.rowContext(t,i.getComponent())}),i.table.options.rowMouseEnter&&i.element.addEventListener("mouseenter",function(t){i.table.options.rowMouseEnter(t,i.getComponent())}),i.table.options.rowMouseLeave&&i.element.addEventListener("mouseleave",function(t){i.table.options.rowMouseLeave(t,i.getComponent())}),i.table.options.rowMouseOver&&i.element.addEventListener("mouseover",function(t){i.table.options.rowMouseOver(t,i.getComponent())}),i.table.options.rowMouseOut&&i.element.addEventListener("mouseout",function(t){i.table.options.rowMouseOut(t,i.getComponent())}),i.table.options.rowMouseMove&&i.element.addEventListener("mousemove",function(t){i.table.options.rowMouseMove(t,i.getComponent())}),i.table.options.rowTap&&(o=!1,i.element.addEventListener("touchstart",function(t){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(t){o&&i.table.options.rowTap(t,i.getComponent()),o=!1})),i.table.options.rowDblTap&&(t=null,i.element.addEventListener("touchend",function(e){t?(clearTimeout(t),t=null,i.table.options.rowDblTap(e,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),i.table.options.rowTapHold&&(e=null,i.element.addEventListener("touchstart",function(t){clearTimeout(e),e=setTimeout(function(){clearTimeout(e),e=null,o=!1,i.table.options.rowTapHold(t,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(t){clearTimeout(e),e=null}))},Row.prototype.generateCells=function(){this.cells=this.table.columnManager.generateCells(this)},Row.prototype.initialize=function(t){var e=this;if(!e.initialized||t){for(e.deleteCells();e.element.firstChild;)e.element.removeChild(e.element.firstChild);this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutRow(this),this.generateCells(),e.cells.forEach(function(t){e.element.appendChild(t.getElement()),t.cellRendered()}),t&&e.normalizeHeight(),e.table.options.dataTree&&e.table.modExists("dataTree")&&e.table.modules.dataTree.layoutRow(this),"collapse"===e.table.options.responsiveLayout&&e.table.modExists("responsiveLayout")&&e.table.modules.responsiveLayout.layoutRow(this),e.table.options.rowFormatter&&e.table.options.rowFormatter(e.getComponent()),e.table.options.resizableRows&&e.table.modExists("resizeRows")&&e.table.modules.resizeRows.initializeRow(e),e.initialized=!0}},Row.prototype.reinitializeHeight=function(){this.heightInitialized=!1,null!==this.element.offsetParent&&this.normalizeHeight(!0)},Row.prototype.reinitialize=function(){this.initialized=!1,this.heightInitialized=!1,this.manualHeight||(this.height=0,this.heightStyled=""),null!==this.element.offsetParent&&this.initialize(!0)},Row.prototype.calcHeight=function(t){var e=0,o=this.table.options.resizableRows?this.element.clientHeight:0;this.cells.forEach(function(t){var o=t.getHeight();o>e&&(e=o)}),this.height=t?Math.max(e,o):this.manualHeight?this.height:Math.max(e,o),this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight},Row.prototype.setCellHeight=function(){this.cells.forEach(function(t){t.setHeight()}),this.heightInitialized=!0},Row.prototype.clearCellHeight=function(){this.cells.forEach(function(t){t.clearHeight()})},Row.prototype.normalizeHeight=function(t){t&&this.clearCellHeight(),this.calcHeight(t),this.setCellHeight()},Row.prototype.setHeight=function(t,e){(this.height!=t||e)&&(this.manualHeight=!0,this.height=t,this.heightStyled=t?t+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight)},Row.prototype.getHeight=function(){return this.outerHeight},Row.prototype.getWidth=function(){return this.element.offsetWidth},Row.prototype.deleteCell=function(t){var e=this.cells.indexOf(t);e>-1&&this.cells.splice(e,1)},Row.prototype.setData=function(t){this.table.modExists("mutator")&&(t=this.table.modules.mutator.transformRow(t,"data")),this.data=t,this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchRow(this)},Row.prototype.updateData=function(t){var e,o=this,i=Tabulator.prototype.helpers.elVisible(this.element),n={};return new Promise(function(s,l){"string"==typeof t&&(t=JSON.parse(t)),o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.block(),o.table.modExists("mutator")?(n=Object.assign(n,o.data),n=Object.assign(n,t),e=o.table.modules.mutator.transformRow(n,"data",t)):e=t;for(var a in e)o.data[a]=e[a];o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.unblock();for(var a in t){o.table.columnManager.getColumnsByFieldRoot(a).forEach(function(t){var n=o.getCell(t.getField());if(n){var s=t.getFieldValue(e);n.getValue()!=s&&(n.setValueProcessData(s),i&&n.cellRendered())}})}i?(o.normalizeHeight(!0),o.table.options.rowFormatter&&o.table.options.rowFormatter(o.getComponent())):(o.initialized=!1,o.height=0,o.heightStyled=""),!1!==o.table.options.dataTree&&o.table.modExists("dataTree")&&o.table.modules.dataTree.redrawNeeded(t)&&(o.table.modules.dataTree.initializeRow(o),o.table.modules.dataTree.layoutRow(o),o.table.rowManager.refreshActiveData("tree",!1,!0)),o.table.options.rowUpdated.call(o.table,o.getComponent()),s()})},Row.prototype.getData=function(t){var e=this;return t?e.table.modExists("accessor")?e.table.modules.accessor.transformRow(e.data,t):void 0:this.data},Row.prototype.getCell=function(t){return t=this.table.columnManager.findColumn(t),this.cells.find(function(e){return e.column===t})},Row.prototype.getCellIndex=function(t){return this.cells.findIndex(function(e){return e===t})},Row.prototype.findNextEditableCell=function(t){var e=!1;if(t<this.cells.length-1)for(var o=t+1;o<this.cells.length;o++){var i=this.cells[o];if(i.column.modules.edit&&Tabulator.prototype.helpers.elVisible(i.getElement())){var n=!0;if("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n){e=i;break}}}return e},Row.prototype.findPrevEditableCell=function(t){var e=!1;if(t>0)for(var o=t-1;o>=0;o--){var i=this.cells[o],n=!0;if(i.column.modules.edit&&Tabulator.prototype.helpers.elVisible(i.getElement())&&("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n)){e=i;break}}return e},Row.prototype.getCells=function(){return this.cells},Row.prototype.nextRow=function(){return this.table.rowManager.nextDisplayRow(this,!0)||!1},Row.prototype.prevRow=function(){return this.table.rowManager.prevDisplayRow(this,!0)||!1},Row.prototype.moveToRow=function(t,e){var o=this.table.rowManager.findRow(t);o?(this.table.rowManager.moveRowActual(this,o,!e),this.table.rowManager.refreshActiveData("display",!1,!0)):console.warn("Move Error - No matching row found:",t)},Row.prototype.delete=function(){var t=this;return new Promise(function(e,o){var i,n;t.table.options.history&&t.table.modExists("history")&&(t.table.options.groupBy&&t.table.modExists("groupRows")?(n=t.getGroup().rows,(i=n.indexOf(t))&&(i=n[i-1])):(i=t.table.rowManager.getRowIndex(t))&&(i=t.table.rowManager.rows[i-1]),t.table.modules.history.action("rowDelete",t,{data:t.getData(),pos:!i,index:i})),t.deleteActual(),e()})},Row.prototype.deleteActual=function(t){this.table.rowManager.getRowIndex(this);this.table.modExists("selectRow")&&this.table.modules.selectRow._deselectRow(this,!0),this.table.modExists("edit")&&this.table.modules.edit.currentCell.row===this&&this.table.modules.edit.cancelEdit(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0),this.modules.group&&this.modules.group.removeRow(this),this.table.rowManager.deleteRow(this,t),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.table.modExists("columnCalcs")&&(this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.columnCalcs.recalcRowGroup(this):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows))},Row.prototype.deleteCells=function(){for(var t=this.cells.length,e=0;e<t;e++)this.cells[0].delete()},Row.prototype.wipe=function(){for(this.deleteCells();this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element=!1,this.modules={},this.element.parentNode&&this.element.parentNode.removeChild(this.element)},Row.prototype.getGroup=function(){return this.modules.group||!1},Row.prototype.getComponent=function(){return new RowComponent(this)};var CellComponent=function(t){this._cell=t};CellComponent.prototype.getValue=function(){return this._cell.getValue()},CellComponent.prototype.getOldValue=function(){return this._cell.getOldValue()},CellComponent.prototype.getElement=function(){return this._cell.getElement()},CellComponent.prototype.getRow=function(){return this._cell.row.getComponent()},CellComponent.prototype.getData=function(){return this._cell.row.getData()},CellComponent.prototype.getField=function(){return this._cell.column.getField()},CellComponent.prototype.getColumn=function(){return this._cell.column.getComponent()},CellComponent.prototype.setValue=function(t,e){void 0===e&&(e=!0),this._cell.setValue(t,e)},CellComponent.prototype.restoreOldValue=function(){this._cell.setValueActual(this._cell.getOldValue())},CellComponent.prototype.edit=function(t){return this._cell.edit(t)},CellComponent.prototype.cancelEdit=function(){this._cell.cancelEdit()},CellComponent.prototype.nav=function(){return this._cell.nav()},CellComponent.prototype.checkHeight=function(){this._cell.checkHeight()},CellComponent.prototype.getTable=function(){return this._cell.table},CellComponent.prototype._getSelf=function(){return this._cell};var Cell=function(t,e){this.table=t.table,this.column=t,this.row=e,this.element=null,this.value=null,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.build()};Cell.prototype.build=function(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data))},Cell.prototype.generateElement=function(){this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.element=this.element},Cell.prototype._configureCell=function(){var t=this,e=t.column.cellEvents,o=t.element,i=this.column.getField(),n={top:"flex-start",bottom:"flex-end",middle:"center"},s={left:"flex-start",right:"flex-end",center:"center"};if(o.style.textAlign=t.column.hozAlign,t.column.vertAlign&&(o.style.display="inline-flex",o.style.alignItems=n[t.column.vertAlign]||"",t.column.hozAlign&&(o.style.justifyContent=s[t.column.hozAlign]||"")),i&&o.setAttribute("tabulator-field",i),t.column.definition.cssClass){t.column.definition.cssClass.split(" ").forEach(function(t){o.classList.add(t)})}"hover"===this.table.options.tooltipGenerationMode&&o.addEventListener("mouseenter",function(e){t._generateTooltip()}),t._bindClickEvents(e),t._bindTouchEvents(e),t._bindMouseEvents(e),t.column.modules.edit&&t.table.modules.edit.bindEditor(t),t.column.definition.rowHandle&&!1!==t.table.options.movableRows&&t.table.modExists("moveRow")&&t.table.modules.moveRow.initializeCell(t),t.column.visible||t.hide()},Cell.prototype._bindClickEvents=function(t){var e=this,o=e.element;(t.cellClick||e.table.options.cellClick)&&o.addEventListener("click",function(o){var i=e.getComponent();t.cellClick&&t.cellClick.call(e.table,o,i),e.table.options.cellClick&&e.table.options.cellClick.call(e.table,o,i)}),t.cellDblClick||this.table.options.cellDblClick?o.addEventListener("dblclick",function(o){var i=e.getComponent();t.cellDblClick&&t.cellDblClick.call(e.table,o,i),e.table.options.cellDblClick&&e.table.options.cellDblClick.call(e.table,o,i)}):o.addEventListener("dblclick",function(t){if(!e.table.modExists("edit")||e.table.modules.edit.currentCell!==e){t.preventDefault();try{if(document.selection){var o=document.body.createTextRange();o.moveToElementText(e.element),o.select()}else if(window.getSelection){var o=document.createRange();o.selectNode(e.element),window.getSelection().removeAllRanges(),window.getSelection().addRange(o)}}catch(t){}}}),(t.cellContext||this.table.options.cellContext)&&o.addEventListener("contextmenu",function(o){var i=e.getComponent();t.cellContext&&t.cellContext.call(e.table,o,i),e.table.options.cellContext&&e.table.options.cellContext.call(e.table,o,i)})},Cell.prototype._bindMouseEvents=function(t){var e=this,o=e.element;(t.cellMouseEnter||e.table.options.cellMouseEnter)&&o.addEventListener("mouseenter",function(o){var i=e.getComponent();t.cellMouseEnter&&t.cellMouseEnter.call(e.table,o,i),e.table.options.cellMouseEnter&&e.table.options.cellMouseEnter.call(e.table,o,i)}),(t.cellMouseLeave||e.table.options.cellMouseLeave)&&o.addEventListener("mouseleave",function(o){var i=e.getComponent();t.cellMouseLeave&&t.cellMouseLeave.call(e.table,o,i),e.table.options.cellMouseLeave&&e.table.options.cellMouseLeave.call(e.table,o,i)}),(t.cellMouseOver||e.table.options.cellMouseOver)&&o.addEventListener("mouseover",function(o){var i=e.getComponent();t.cellMouseOver&&t.cellMouseOver.call(e.table,o,i),e.table.options.cellMouseOver&&e.table.options.cellMouseOver.call(e.table,o,i)}),(t.cellMouseOut||e.table.options.cellMouseOut)&&o.addEventListener("mouseout",function(o){var i=e.getComponent();t.cellMouseOut&&t.cellMouseOut.call(e.table,o,i),e.table.options.cellMouseOut&&e.table.options.cellMouseOut.call(e.table,o,i)}),(t.cellMouseMove||e.table.options.cellMouseMove)&&o.addEventListener("mousemove",function(o){var i=e.getComponent();t.cellMouseMove&&t.cellMouseMove.call(e.table,o,i),e.table.options.cellMouseMove&&e.table.options.cellMouseMove.call(e.table,o,i)})},Cell.prototype._bindTouchEvents=function(t){var e,o,i,n=this,s=n.element;(t.cellTap||this.table.options.cellTap)&&(i=!1,s.addEventListener("touchstart",function(t){i=!0},{passive:!0}),s.addEventListener("touchend",function(e){if(i){var o=n.getComponent();t.cellTap&&t.cellTap.call(n.table,e,o),n.table.options.cellTap&&n.table.options.cellTap.call(n.table,e,o)}i=!1})),(t.cellDblTap||this.table.options.cellDblTap)&&(e=null,s.addEventListener("touchend",function(o){if(e){clearTimeout(e),e=null;var i=n.getComponent();t.cellDblTap&&t.cellDblTap.call(n.table,o,i),n.table.options.cellDblTap&&n.table.options.cellDblTap.call(n.table,o,i)}else e=setTimeout(function(){clearTimeout(e),e=null},300)})),(t.cellTapHold||this.table.options.cellTapHold)&&(o=null,s.addEventListener("touchstart",function(e){clearTimeout(o),o=setTimeout(function(){clearTimeout(o),o=null,i=!1;var s=n.getComponent();t.cellTapHold&&t.cellTapHold.call(n.table,e,s),n.table.options.cellTapHold&&n.table.options.cellTapHold.call(n.table,e,s)},1e3)},{passive:!0}),s.addEventListener("touchend",function(t){clearTimeout(o),o=null}))},Cell.prototype._generateContents=function(){var t;switch(t=this.table.modExists("format")?this.table.modules.format.formatValue(this):this.element.innerHTML=this.value,void 0===t?"undefined":_typeof(t)){case"object":if(t instanceof Node){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.appendChild(t)}else this.element.innerHTML="",null!=t&&console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",t);break;case"undefined":case"null":this.element.innerHTML="";break;default:this.element.innerHTML=t}},Cell.prototype.cellRendered=function(){this.table.modExists("format")&&this.table.modules.format.cellRendered&&this.table.modules.format.cellRendered(this)},Cell.prototype._generateTooltip=function(){var t=this.column.tooltip;t?(!0===t?t=this.value:"function"==typeof t&&!1===(t=t(this.getComponent()))&&(t=""),void 0===t&&(t=""),this.element.setAttribute("title",t)):this.element.setAttribute("title","")},Cell.prototype.getElement=function(){return this.element},Cell.prototype.getValue=function(){return this.value},Cell.prototype.getOldValue=function(){return this.oldValue},Cell.prototype.setValue=function(t,e){var o,i=this.setValueProcessData(t,e);i&&(this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("cellEdit",this,{oldValue:this.oldValue,newValue:this.value}),o=this.getComponent(),this.column.cellEvents.cellEdited&&this.column.cellEvents.cellEdited.call(this.table,o),this.cellRendered(),this.table.options.cellEdited.call(this.table,o),this.table.options.dataEdited.call(this.table,this.table.rowManager.getData()))},Cell.prototype.setValueProcessData=function(t,e){var o=!1;return this.value!=t&&(o=!0,e&&this.column.modules.mutate&&(t=this.table.modules.mutator.transformCell(this,t))),this.setValueActual(t),o&&this.table.modExists("columnCalcs")&&(this.column.definition.topCalc||this.column.definition.bottomCalc)&&(this.table.options.groupBy&&this.table.modExists("groupRows")?("table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs||this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),"table"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.recalcRowGroup(this.row)):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows)),o},Cell.prototype.setValueActual=function(t){this.oldValue=this.value,this.value=t,this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.block(),this.column.setFieldValue(this.row.data,t),this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.unblock(),this._generateContents(),this._generateTooltip(),this.table.options.resizableColumns&&this.table.modExists("resizeColumns")&&this.table.modules.resizeColumns.initializeColumn("cell",this.column,this.element),this.column.definition.contextMenu&&this.table.modExists("menu")&&this.table.modules.menu.initializeCell(this),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutElement(this.element,this.column)},Cell.prototype.setWidth=function(){this.width=this.column.width,this.element.style.width=this.column.widthStyled},Cell.prototype.clearWidth=function(){this.width="",this.element.style.width=""},Cell.prototype.getWidth=function(){return this.width||this.element.offsetWidth},Cell.prototype.setMinWidth=function(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled},Cell.prototype.checkHeight=function(){this.row.reinitializeHeight()},Cell.prototype.clearHeight=function(){this.element.style.height="",this.height=null},Cell.prototype.setHeight=function(){this.height=this.row.height,this.element.style.height=this.row.heightStyled},Cell.prototype.getHeight=function(){return this.height||this.element.offsetHeight},Cell.prototype.show=function(){this.element.style.display=""},Cell.prototype.hide=function(){this.element.style.display="none"},Cell.prototype.edit=function(t){if(this.table.modExists("edit",!0))return this.table.modules.edit.editCell(this,t)},Cell.prototype.cancelEdit=function(){if(this.table.modExists("edit",!0)){var t=this.table.modules.edit.getCurrentCell();t&&t._getSelf()===this?this.table.modules.edit.cancelEdit():console.warn("Cancel Editor Error - This cell is not currently being edited ")}},Cell.prototype.delete=function(){this.table.rowManager.redrawBlock||this.element.parentNode.removeChild(this.element),this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}},Cell.prototype.nav=function(){var t=this,e=!1,o=this.row.getCellIndex(this);return{next:function(){var e,o=this.right();return!!o||!(!(e=t.table.rowManager.nextDisplayRow(t.row,!0))||!(o=e.findNextEditableCell(-1)))&&(o.edit(),!0)},prev:function(){var e,o=this.left();return!!o||!(!(e=t.table.rowManager.prevDisplayRow(t.row,!0))||!(o=e.findPrevEditableCell(e.cells.length)))&&(o.edit(),!0)},left:function(){return!!(e=t.row.findPrevEditableCell(o))&&(e.edit(),!0)},right:function(){return!!(e=t.row.findNextEditableCell(o))&&(e.edit(),!0)},up:function(){var e=t.table.rowManager.prevDisplayRow(t.row,!0);e&&e.cells[o].edit()},down:function(){var e=t.table.rowManager.nextDisplayRow(t.row,!0);e&&e.cells[o].edit()}}},Cell.prototype.getIndex=function(){this.row.getCellIndex(this)},Cell.prototype.getComponent=function(){return new CellComponent(this)};var FooterManager=function(t){this.table=t,this.active=!1,this.element=this.createElement(),this.external=!1,this.links=[],this._initialize()};FooterManager.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-footer"),t},FooterManager.prototype._initialize=function(t){if(this.table.options.footerElement)switch(_typeof(this.table.options.footerElement)){case"string":"<"===this.table.options.footerElement[0]?this.element.innerHTML=this.table.options.footerElement:(this.external=!0,this.element=document.querySelector(this.table.options.footerElement));break;default:this.element=this.table.options.footerElement}},FooterManager.prototype.getElement=function(){return this.element},FooterManager.prototype.append=function(t,e){this.activate(e),this.element.appendChild(t),this.table.rowManager.adjustTableSize()},FooterManager.prototype.prepend=function(t,e){this.activate(e),this.element.insertBefore(t,this.element.firstChild),this.table.rowManager.adjustTableSize()},FooterManager.prototype.remove=function(t){t.parentNode.removeChild(t),this.deactivate()},FooterManager.prototype.deactivate=function(t){this.element.firstChild&&!t||(this.external||this.element.parentNode.removeChild(this.element),this.active=!1)},FooterManager.prototype.activate=function(t){this.active||(this.active=!0,this.external||(this.table.element.appendChild(this.getElement()),this.table.element.style.display="")),t&&this.links.push(t)},FooterManager.prototype.redraw=function(){this.links.forEach(function(t){t.footerRedraw()})};var Tabulator=function t(e,o){this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.modules={},this.initializeElement(e),this.initializeOptions(o||{}),this._create(),t.prototype.comms.register(this)};Tabulator.prototype.defaultOptions={height:!1,minHeight:!1,maxHeight:!1,layout:"fitData",layoutColumnsOnNewData:!1,columnMinWidth:40,columnHeaderVertAlign:"top",columnVertAlign:!1,resizableColumns:!0,resizableRows:!1,autoResize:!0,columns:[],cellHozAlign:"",cellVertAlign:"",data:[],autoColumns:!1,reactiveData:!1,nestedFieldSeparator:".",tooltips:!1,tooltipsHeader:!1,tooltipGenerationMode:"load",initialSort:!1,initialFilter:!1,initialHeaderFilter:!1,columnHeaderSortMulti:!0,sortOrderReverse:!1,headerSort:!0,headerSortTristate:!1,footerElement:!1,index:"id",keybindings:[],tabEndNewRow:!1,invalidOptionWarnings:!0,clipboard:!1,clipboardCopyStyled:!0,clipboardCopyConfig:!1,clipboardCopyFormatter:!1,clipboardCopyRowRange:"active",clipboardPasteParser:"table",clipboardPasteAction:"insert",clipboardCopied:function(){},clipboardPasted:function(){},clipboardPasteError:function(){},downloadDataFormatter:!1,downloadReady:function(t,e){return e},downloadComplete:!1,downloadConfig:!1,dataTree:!1,dataTreeElementColumn:!1,dataTreeBranchElement:!0,dataTreeChildIndent:9,dataTreeChildField:"_children",dataTreeCollapseElement:!1,dataTreeExpandElement:!1,dataTreeStartExpanded:!1,dataTreeRowExpanded:function(){},dataTreeRowCollapsed:function(){},dataTreeChildColumnCalcs:!1,dataTreeSelectPropagate:!1,printAsHtml:!1,printFormatter:!1,printHeader:!1,printFooter:!1,printCopyStyle:!0,printStyled:!0,printVisibleRows:!0,printRowRange:"visible",printConfig:{},addRowPos:"bottom",selectable:"highlight",selectableRangeMode:"drag",selectableRollingSelection:!0,selectablePersistence:!0,selectableCheck:function(t,e){return!0},headerFilterLiveFilterDelay:300,headerFilterPlaceholder:!1,headerVisible:!0,history:!1,locale:!1,langs:{},virtualDom:!0,virtualDomBuffer:0,persistentLayout:!1,persistentSort:!1,persistentFilter:!1,persistenceID:"",persistenceMode:!0,persistenceReaderFunc:!1,persistenceWriterFunc:!1,persistence:!1,responsiveLayout:!1,responsiveLayoutCollapseStartOpen:!0,responsiveLayoutCollapseUseFormatters:!0,responsiveLayoutCollapseFormatter:!1,pagination:!1,paginationSize:!1,paginationInitialPage:1,paginationButtonCount:5,paginationSizeSelector:!1,paginationElement:!1,paginationDataSent:{},paginationDataReceived:{},paginationAddRow:"page",ajaxURL:!1,ajaxURLGenerator:!1,ajaxParams:{},ajaxConfig:"get",ajaxContentType:"form",ajaxRequestFunc:!1,ajaxLoader:!0,ajaxLoaderLoading:!1,ajaxLoaderError:!1,ajaxFiltering:!1,ajaxSorting:!1,ajaxProgressiveLoad:!1,ajaxProgressiveLoadDelay:0,ajaxProgressiveLoadScrollMargin:0,groupBy:!1,groupStartOpen:!0,groupValues:!1,groupHeader:!1,htmlOutputConfig:!1,movableColumns:!1,movableRows:!1,movableRowsConnectedTables:!1,movableRowsSender:!1,movableRowsReceiver:"insert",movableRowsSendingStart:function(){},movableRowsSent:function(){},movableRowsSentFailed:function(){},movableRowsSendingStop:function(){},movableRowsReceivingStart:function(){},movableRowsReceived:function(){},movableRowsReceivedFailed:function(){},movableRowsReceivingStop:function(){},scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,placeholder:!1,tableBuilding:function(){},tableBuilt:function(){},renderStarted:function(){},renderComplete:function(){},rowClick:!1,rowDblClick:!1,rowContext:!1,rowTap:!1,rowDblTap:!1,rowTapHold:!1,rowMouseEnter:!1,rowMouseLeave:!1,rowMouseOver:!1,rowMouseOut:!1,rowMouseMove:!1,rowContextMenu:!1,rowAdded:function(){},rowDeleted:function(){},rowMoved:function(){},rowUpdated:function(){},rowSelectionChanged:function(){},rowSelected:function(){},rowDeselected:function(){},rowResized:function(){},cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1,cellEditing:function(){},cellEdited:function(){},cellEditCancelled:function(){},columnMoved:!1,columnResized:function(){},columnTitleChanged:function(){},columnVisibilityChanged:function(){},htmlImporting:function(){},htmlImported:function(){},dataLoading:function(){},dataLoaded:function(){},dataEdited:function(){},ajaxRequesting:function(){},ajaxResponse:!1,ajaxError:function(){},dataFiltering:!1,dataFiltered:!1,dataSorting:function(){},dataSorted:function(){},groupToggleElement:"arrow",groupClosedShowCalcs:!1,dataGrouping:function(){},dataGrouped:!1,groupVisibilityChanged:function(){},groupClick:!1,groupDblClick:!1,groupContext:!1,groupTap:!1,groupDblTap:!1,groupTapHold:!1,columnCalcs:!0,pageLoaded:function(){},localized:function(){},validationFailed:function(){},historyUndo:function(){},historyRedo:function(){},scrollHorizontal:function(){},scrollVertical:function(){}},Tabulator.prototype.initializeOptions=function(t){if(!1!==t.invalidOptionWarnings)for(var e in t)void 0===this.defaultOptions[e]&&console.warn("Invalid table constructor option:",e);for(var e in this.defaultOptions)e in t?this.options[e]=t[e]:Array.isArray(this.defaultOptions[e])?this.options[e]=[]:"object"===_typeof(this.defaultOptions[e])&&null!==this.defaultOptions[e]?this.options[e]={}:this.options[e]=this.defaultOptions[e]},Tabulator.prototype.initializeElement=function(t){return"undefined"!=typeof HTMLElement&&t instanceof HTMLElement?(this.element=t,!0):"string"==typeof t?(this.element=document.querySelector(t),!!this.element||(console.error("Tabulator Creation Error - no element found matching selector: ",t),!1)):(console.error("Tabulator Creation Error - Invalid element provided:",t),!1)},Tabulator.prototype._mapDepricatedFunctionality=function(){(this.options.persistentLayout||this.options.persistentSort||this.options.persistentFilter)&&(this.options.persistence||(this.options.persistence={})),void 0!==this.options.clipboardCopyHeader&&(this.options.columnHeaders=this.options.clipboardCopyHeader,console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option")),!0!==this.options.printVisibleRows&&(console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option"),this.options.persistence.printRowRange="active"),!0!==this.options.printCopyStyle&&(console.warn("printCopyStyle option is deprecated, you should now use the printStyled option"),this.options.persistence.printStyled=this.options.printCopyStyle),
-this.options.persistentLayout&&(console.warn("persistentLayout option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.columns&&(this.options.persistence.columns=!0)),this.options.persistentSort&&(console.warn("persistentSort option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.sort&&(this.options.persistence.sort=!0)),this.options.persistentFilter&&(console.warn("persistentFilter option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.filter&&(this.options.persistence.filter=!0)),this.options.columnVertAlign&&(console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option"),this.options.columnHeaderVertAlign=this.options.columnVertAlign)},Tabulator.prototype._clearSelection=function(){this.element.classList.add("tabulator-block-select"),window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty(),this.element.classList.remove("tabulator-block-select")},Tabulator.prototype._create=function(){this._clearObjectPointers(),this._mapDepricatedFunctionality(),this.bindModules(),"TABLE"===this.element.tagName&&this.modExists("htmlTableImport",!0)&&this.modules.htmlTableImport.parseTable(),this.columnManager=new ColumnManager(this),this.rowManager=new RowManager(this),this.footerManager=new FooterManager(this),this.columnManager.setRowManager(this.rowManager),this.rowManager.setColumnManager(this.columnManager),this._buildElement(),this._loadInitialData()},Tabulator.prototype._clearObjectPointers=function(){this.options.columns=this.options.columns.slice(0),this.options.reactiveData||(this.options.data=this.options.data.slice(0))},Tabulator.prototype._buildElement=function(){var t=this,e=this.element,o=this.modules,i=this.options;for(i.tableBuilding.call(this),e.classList.add("tabulator"),e.setAttribute("role","grid");e.firstChild;)e.removeChild(e.firstChild);i.height&&(i.height=isNaN(i.height)?i.height:i.height+"px",e.style.height=i.height),!1!==i.minHeight&&(i.minHeight=isNaN(i.minHeight)?i.minHeight:i.minHeight+"px",e.style.minHeight=i.minHeight),!1!==i.maxHeight&&(i.maxHeight=isNaN(i.maxHeight)?i.maxHeight:i.maxHeight+"px",e.style.maxHeight=i.maxHeight),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modExists("layout",!0)&&o.layout.initialize(i.layout),!1!==i.headerFilterPlaceholder&&o.localize.setHeaderFilterPlaceholder(i.headerFilterPlaceholder);for(var n in i.langs)o.localize.installLang(n,i.langs[n]);if(o.localize.setLocale(i.locale),"string"==typeof i.placeholder){var s=document.createElement("div");s.classList.add("tabulator-placeholder");var l=document.createElement("span");l.innerHTML=i.placeholder,s.appendChild(l),i.placeholder=s}if(e.appendChild(this.columnManager.getElement()),e.appendChild(this.rowManager.getElement()),i.footerElement&&this.footerManager.activate(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.initialize(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.columns&&(i.columns=o.persistence.load("columns",i.columns)),i.movableRows&&this.modExists("moveRow")&&o.moveRow.initialize(),i.autoColumns&&this.options.data&&this.columnManager.generateColumnsFromRowData(this.options.data),this.modExists("columnCalcs")&&o.columnCalcs.initialize(),this.columnManager.setColumns(i.columns),i.dataTree&&this.modExists("dataTree",!0)&&o.dataTree.initialize(),this.modExists("frozenRows")&&this.modules.frozenRows.initialize(),(i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort||i.initialSort)&&this.modExists("sort",!0)){var a=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort?!1===(a=o.persistence.load("sort"))&&i.initialSort&&(a=i.initialSort):i.initialSort&&(a=i.initialSort),o.sort.setSort(a)}if((i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter||i.initialFilter)&&this.modExists("filter",!0)){var r=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter?!1===(r=o.persistence.load("filter"))&&i.initialFilter&&(r=i.initialFilter):i.initialFilter&&(r=i.initialFilter),o.filter.setFilter(r)}i.initialHeaderFilter&&this.modExists("filter",!0)&&i.initialHeaderFilter.forEach(function(e){var i=t.columnManager.findColumn(e.field);if(!i)return console.warn("Column Filter Error - No matching column found:",e.field),!1;o.filter.setHeaderFilterValue(i,e.value)}),this.modExists("ajax")&&o.ajax.initialize(),i.pagination&&this.modExists("page",!0)&&o.page.initialize(),i.groupBy&&this.modExists("groupRows",!0)&&o.groupRows.initialize(),this.modExists("keybindings")&&o.keybindings.initialize(),this.modExists("selectRow")&&o.selectRow.clearSelectionData(!0),i.autoResize&&this.modExists("resizeTable")&&o.resizeTable.initialize(),this.modExists("clipboard")&&o.clipboard.initialize(),i.printAsHtml&&this.modExists("print")&&o.print.initialize(),i.tableBuilt.call(this)},Tabulator.prototype._loadInitialData=function(){var t=this;if(t.options.pagination&&t.modExists("page"))if(t.modules.page.reset(!0,!0),"local"==t.options.pagination){if(t.options.data.length)t.rowManager.setData(t.options.data,!1,!0);else{if((t.options.ajaxURL||t.options.ajaxURLGenerator)&&t.modExists("ajax"))return void t.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){t.options.paginationInitialPage&&t.modules.page.setPage(t.options.paginationInitialPage)});t.rowManager.setData(t.options.data,!1,!0)}t.options.paginationInitialPage&&t.modules.page.setPage(t.options.paginationInitialPage)}else t.options.ajaxURL?t.modules.page.setPage(t.options.paginationInitialPage).then(function(){}).catch(function(){}):t.rowManager.setData([],!1,!0);else t.options.data.length?t.rowManager.setData(t.options.data):(t.options.ajaxURL||t.options.ajaxURLGenerator)&&t.modExists("ajax")?t.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){}):t.rowManager.setData(t.options.data,!1,!0)},Tabulator.prototype.destroy=function(){var t=this.element;for(Tabulator.prototype.comms.deregister(this),this.options.reactiveData&&this.modExists("reactiveData",!0)&&this.modules.reactiveData.unwatchData(),this.rowManager.rows.forEach(function(t){t.wipe()}),this.rowManager.rows=[],this.rowManager.activeRows=[],this.rowManager.displayRows=[],this.options.autoResize&&this.modExists("resizeTable")&&this.modules.resizeTable.clearBindings(),this.modExists("keybindings")&&this.modules.keybindings.clearBindings();t.firstChild;)t.removeChild(t.firstChild);t.classList.remove("tabulator")},Tabulator.prototype._detectBrowser=function(){var t=navigator.userAgent||navigator.vendor||window.opera;t.indexOf("Trident")>-1?(this.browser="ie",this.browserSlow=!0):t.indexOf("Edge")>-1?(this.browser="edge",this.browserSlow=!0):t.indexOf("Firefox")>-1?(this.browser="firefox",this.browserSlow=!1):(this.browser="other",this.browserSlow=!1),this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))},Tabulator.prototype.blockRedraw=function(){return this.rowManager.blockRedraw()},Tabulator.prototype.restoreRedraw=function(){return this.rowManager.restoreRedraw()},Tabulator.prototype.setDataFromLocalFile=function(t){var e=this;return new Promise(function(o,i){var n=document.createElement("input");n.type="file",n.accept=t||".json,application/json",n.addEventListener("change",function(t){var s,l=n.files[0],a=new FileReader;a.readAsText(l),a.onload=function(t){try{s=JSON.parse(a.result)}catch(t){return console.warn("File Load Error - File contents is invalid JSON",t),void i(t)}e._setData(s).then(function(t){o(t)}).catch(function(t){o(t)})},a.onerror=function(t){console.warn("File Load Error - Unable to read file"),i()}}),n.click()})},Tabulator.prototype.setData=function(t,e,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(t,e,o,!1,!0)},Tabulator.prototype._setData=function(t,e,o,i,n){var s=this;return"string"!=typeof t?t?s.rowManager.setData(t,i,n):s.modExists("ajax")&&(s.modules.ajax.getUrl||s.options.ajaxURLGenerator)?"remote"==s.options.pagination&&s.modExists("page",!0)?(s.modules.page.reset(!0,!0),s.modules.page.setPage(1)):s.modules.ajax.loadData(i,n):s.rowManager.setData([],i,n):0==t.indexOf("{")||0==t.indexOf("[")?s.rowManager.setData(JSON.parse(t),i,n):s.modExists("ajax",!0)?(e&&s.modules.ajax.setParams(e),o&&s.modules.ajax.setConfig(o),s.modules.ajax.setUrl(t),"remote"==s.options.pagination&&s.modExists("page",!0)?(s.modules.page.reset(!0,!0),s.modules.page.setPage(1)):s.modules.ajax.loadData(i,n)):void 0},Tabulator.prototype.clearData=function(){this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this.rowManager.clearData()},Tabulator.prototype.getData=function(t){return!0===t&&(console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'"),t="active"),this.rowManager.getData(t)},Tabulator.prototype.getDataCount=function(t){return!0===t&&(console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'"),t="active"),this.rowManager.getDataCount(t)},Tabulator.prototype.searchRows=function(t,e,o){if(this.modExists("filter",!0))return this.modules.filter.search("rows",t,e,o)},Tabulator.prototype.searchData=function(t,e,o){if(this.modExists("filter",!0))return this.modules.filter.search("data",t,e,o)},Tabulator.prototype.getHtml=function(t,e,o){if(this.modExists("export",!0))return this.modules.export.getHtml(t,e,o)},Tabulator.prototype.print=function(t,e,o){if(this.modExists("print",!0))return this.modules.print.printFullscreen(t,e,o)},Tabulator.prototype.getAjaxUrl=function(){if(this.modExists("ajax",!0))return this.modules.ajax.getUrl()},Tabulator.prototype.replaceData=function(t,e,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(t,e,o,!0)},Tabulator.prototype.updateData=function(t){var e=this,o=this,i=0;return new Promise(function(n,s){e.modExists("ajax")&&e.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?t.forEach(function(t){var e=o.rowManager.findRow(t[o.options.index]);e&&(i++,e.updateData(t).then(function(){--i||n()}))}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},Tabulator.prototype.addData=function(t,e,o){var i=this;return new Promise(function(n,s){i.modExists("ajax")&&i.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?i.rowManager.addRows(t,e,o).then(function(t){var e=[];t.forEach(function(t){e.push(t.getComponent())}),n(e)}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},Tabulator.prototype.updateOrAddData=function(t){var e=this,o=this,i=[],n=0;return new Promise(function(s,l){e.modExists("ajax")&&e.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?t.forEach(function(t){var e=o.rowManager.findRow(t[o.options.index]);n++,e?e.updateData(t).then(function(){n--,i.push(e.getComponent()),n||s(i)}):o.rowManager.addRows(t).then(function(t){n--,i.push(t[0].getComponent()),n||s(i)})}):(console.warn("Update Error - No data provided"),l("Update Error - No data provided"))})},Tabulator.prototype.getRow=function(t){var e=this.rowManager.findRow(t);return e?e.getComponent():(console.warn("Find Error - No matching row found:",t),!1)},Tabulator.prototype.getRowFromPosition=function(t,e){var o=this.rowManager.getRowFromPosition(t,e);return o?o.getComponent():(console.warn("Find Error - No matching row found:",t),!1)},Tabulator.prototype.deleteRow=function(t){var e=this;return new Promise(function(o,i){function n(){++l==t.length&&a&&(s.rowManager.reRenderInPosition(),o())}var s=e,l=0,a=0,r=[];Array.isArray(t)||(t=[t]),t.forEach(function(t){var o=e.rowManager.findRow(t,!0);o?r.push(o):(console.warn("Delete Error - No matching row found:",t),i("Delete Error - No matching row found"),n())}),r.sort(function(t,o){return e.rowManager.rows.indexOf(t)>e.rowManager.rows.indexOf(o)?1:-1}),r.forEach(function(t){t.delete().then(function(){a++,n()}).catch(function(t){n(),i(t)})})})},Tabulator.prototype.addRow=function(t,e,o){var i=this;return new Promise(function(n,s){"string"==typeof t&&(t=JSON.parse(t)),i.rowManager.addRows(t,e,o).then(function(t){i.modExists("columnCalcs")&&i.modules.columnCalcs.recalc(i.rowManager.activeRows),n(t[0].getComponent())})})},Tabulator.prototype.updateOrAddRow=function(t,e){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(t);"string"==typeof e&&(e=JSON.parse(e)),s?s.updateData(e).then(function(){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(s.getComponent())}).catch(function(t){n(t)}):s=o.rowManager.addRows(e).then(function(t){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(t[0].getComponent())}).catch(function(t){n(t)})})},Tabulator.prototype.updateRow=function(t,e){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(t);"string"==typeof e&&(e=JSON.parse(e)),s?s.updateData(e).then(function(){i(s.getComponent())}).catch(function(t){n(t)}):(console.warn("Update Error - No matching row found:",t),n("Update Error - No matching row found"))})},Tabulator.prototype.scrollToRow=function(t,e,o){var i=this;return new Promise(function(n,s){var l=i.rowManager.findRow(t);l?i.rowManager.scrollToRow(l,e,o).then(function(){n()}).catch(function(t){s(t)}):(console.warn("Scroll Error - No matching row found:",t),s("Scroll Error - No matching row found"))})},Tabulator.prototype.moveRow=function(t,e,o){var i=this.rowManager.findRow(t);i?i.moveToRow(e,o):console.warn("Move Error - No matching row found:",t)},Tabulator.prototype.getRows=function(t){return!0===t&&(console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'"),t="active"),this.rowManager.getComponents(t)},Tabulator.prototype.getRowPosition=function(t,e){var o=this.rowManager.findRow(t);return o?this.rowManager.getRowPosition(o,e):(console.warn("Position Error - No matching row found:",t),!1)},Tabulator.prototype.copyToClipboard=function(t){this.modExists("clipboard",!0)&&this.modules.clipboard.copy(t)},Tabulator.prototype.setColumns=function(t){this.columnManager.setColumns(t)},Tabulator.prototype.getColumns=function(t){return this.columnManager.getComponents(t)},Tabulator.prototype.getColumn=function(t){var e=this.columnManager.findColumn(t);return e?e.getComponent():(console.warn("Find Error - No matching column found:",t),!1)},Tabulator.prototype.getColumnDefinitions=function(){return this.columnManager.getDefinitionTree()},Tabulator.prototype.getColumnLayout=function(){if(this.modExists("persistence",!0))return this.modules.persistence.parseColumns(this.columnManager.getColumns())},Tabulator.prototype.setColumnLayout=function(t){return!!this.modExists("persistence",!0)&&(this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns,t)),!0)},Tabulator.prototype.showColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Show Error - No matching column found:",t),!1;e.show(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},Tabulator.prototype.hideColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Hide Error - No matching column found:",t),!1;e.hide(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},Tabulator.prototype.toggleColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Visibility Toggle Error - No matching column found:",t),!1;e.visible?e.hide():e.show()},Tabulator.prototype.addColumn=function(t,e,o){var i=this;return new Promise(function(n,s){var l=i.columnManager.findColumn(o);i.columnManager.addColumn(t,e,l).then(function(t){n(t.getComponent())}).catch(function(t){s(t)})})},Tabulator.prototype.deleteColumn=function(t){var e=this;return new Promise(function(o,i){var n=e.columnManager.findColumn(t);n?n.delete().then(function(){o()}).catch(function(t){i(t)}):(console.warn("Column Delete Error - No matching column found:",t),i())})},Tabulator.prototype.updateColumnDefinition=function(t,e){var o=this;return new Promise(function(i,n){var s=o.columnManager.findColumn(t);s?s.updateDefinition(e).then(function(t){i(t)}).catch(function(t){n(t)}):(console.warn("Column Update Error - No matching column found:",t),n())})},Tabulator.prototype.moveColumn=function(t,e,o){var i=this.columnManager.findColumn(t),n=this.columnManager.findColumn(e);i?n?this.columnManager.moveColumn(i,n,o):console.warn("Move Error - No matching column found:",n):console.warn("Move Error - No matching column found:",t)},Tabulator.prototype.scrollToColumn=function(t,e,o){var i=this;return new Promise(function(n,s){var l=i.columnManager.findColumn(t);l?i.columnManager.scrollToColumn(l,e,o).then(function(){n()}).catch(function(t){s(t)}):(console.warn("Scroll Error - No matching column found:",t),s("Scroll Error - No matching column found"))})},Tabulator.prototype.setLocale=function(t){this.modules.localize.setLocale(t)},Tabulator.prototype.getLocale=function(){return this.modules.localize.getLocale()},Tabulator.prototype.getLang=function(t){return this.modules.localize.getLang(t)},Tabulator.prototype.redraw=function(t){this.columnManager.redraw(t),this.rowManager.redraw(t)},Tabulator.prototype.setHeight=function(t){"classic"!==this.rowManager.renderMode?(this.options.height=isNaN(t)?t:t+"px",this.element.style.height=this.options.height,this.rowManager.setRenderMode(),this.rowManager.redraw()):console.warn("setHeight function is not available in classic render mode")},Tabulator.prototype.setSort=function(t,e){this.modExists("sort",!0)&&(this.modules.sort.setSort(t,e),this.rowManager.sorterRefresh())},Tabulator.prototype.getSorters=function(){if(this.modExists("sort",!0))return this.modules.sort.getSort()},Tabulator.prototype.clearSort=function(){this.modExists("sort",!0)&&(this.modules.sort.clear(),this.rowManager.sorterRefresh())},Tabulator.prototype.setFilter=function(t,e,o){this.modExists("filter",!0)&&(this.modules.filter.setFilter(t,e,o),this.rowManager.filterRefresh())},Tabulator.prototype.addFilter=function(t,e,o){this.modExists("filter",!0)&&(this.modules.filter.addFilter(t,e,o),this.rowManager.filterRefresh())},Tabulator.prototype.getFilters=function(t){if(this.modExists("filter",!0))return this.modules.filter.getFilters(t)},Tabulator.prototype.setHeaderFilterFocus=function(t){if(this.modExists("filter",!0)){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Filter Focus Error - No matching column found:",t),!1;this.modules.filter.setHeaderFilterFocus(e)}},Tabulator.prototype.getHeaderFilterValue=function(t){if(this.modExists("filter",!0)){var e=this.columnManager.findColumn(t);if(e)return this.modules.filter.getHeaderFilterValue(e);console.warn("Column Filter Error - No matching column found:",t)}},Tabulator.prototype.setHeaderFilterValue=function(t,e){if(this.modExists("filter",!0)){var o=this.columnManager.findColumn(t);if(!o)return console.warn("Column Filter Error - No matching column found:",t),!1;this.modules.filter.setHeaderFilterValue(o,e)}},Tabulator.prototype.getHeaderFilters=function(){if(this.modExists("filter",!0))return this.modules.filter.getHeaderFilters()},Tabulator.prototype.removeFilter=function(t,e,o){this.modExists("filter",!0)&&(this.modules.filter.removeFilter(t,e,o),this.rowManager.filterRefresh())},Tabulator.prototype.clearFilter=function(t){this.modExists("filter",!0)&&(this.modules.filter.clearFilter(t),this.rowManager.filterRefresh())},Tabulator.prototype.clearHeaderFilter=function(){this.modExists("filter",!0)&&(this.modules.filter.clearHeaderFilter(),this.rowManager.filterRefresh())},Tabulator.prototype.selectRow=function(t){this.modExists("selectRow",!0)&&(!0===t&&(console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'"),t="active"),this.modules.selectRow.selectRows(t))},Tabulator.prototype.deselectRow=function(t){this.modExists("selectRow",!0)&&this.modules.selectRow.deselectRows(t)},Tabulator.prototype.toggleSelectRow=function(t){this.modExists("selectRow",!0)&&this.modules.selectRow.toggleRow(t)},Tabulator.prototype.getSelectedRows=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedRows()},Tabulator.prototype.getSelectedData=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedData()},Tabulator.prototype.setMaxPage=function(t){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setMaxPage(t)},Tabulator.prototype.setPage=function(t){return this.options.pagination&&this.modExists("page")?this.modules.page.setPage(t):new Promise(function(t,e){e()})},Tabulator.prototype.setPageToRow=function(t){var e=this;return new Promise(function(o,i){e.options.pagination&&e.modExists("page")?(t=e.rowManager.findRow(t),t?e.modules.page.setPageToRow(t).then(function(){o()}).catch(function(){i()}):i()):i()})},Tabulator.prototype.setPageSize=function(t){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setPageSize(t),this.modules.page.setPage(1).then(function(){}).catch(function(){})},Tabulator.prototype.getPageSize=function(){if(this.options.pagination&&this.modExists("page",!0))return this.modules.page.getPageSize()},Tabulator.prototype.previousPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.previousPage()},Tabulator.prototype.nextPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.nextPage()},Tabulator.prototype.getPage=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPage()},Tabulator.prototype.getPageMax=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPageMax()},Tabulator.prototype.setGroupBy=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupBy=t,this.modules.groupRows.initialize(),this.rowManager.refreshActiveData("display"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")},Tabulator.prototype.setGroupStartOpen=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupStartOpen=t,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},Tabulator.prototype.setGroupHeader=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupHeader=t,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},Tabulator.prototype.getGroups=function(t){return!!this.modExists("groupRows",!0)&&this.modules.groupRows.getGroups(!0)},Tabulator.prototype.getGroupedData=function(){if(this.modExists("groupRows",!0))return this.options.groupBy?this.modules.groupRows.getGroupedData():this.getData()},Tabulator.prototype.getCalcResults=function(){return!!this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.getResults()},Tabulator.prototype.recalc=function(){this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.recalcAll(this.rowManager.activeRows)},Tabulator.prototype.navigatePrev=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&t.nav().prev()},Tabulator.prototype.navigateNext=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&t.nav().next()},Tabulator.prototype.navigateLeft=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().left())},Tabulator.prototype.navigateRight=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().right())},Tabulator.prototype.navigateUp=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().up())},Tabulator.prototype.navigateDown=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().down())},Tabulator.prototype.undo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.undo()},Tabulator.prototype.redo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.redo()},Tabulator.prototype.getHistoryUndoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryUndoSize()},Tabulator.prototype.getHistoryRedoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryRedoSize()},Tabulator.prototype.download=function(t,e,o,i){this.modExists("download",!0)&&this.modules.download.download(t,e,o,i)},Tabulator.prototype.downloadToTab=function(t,e,o,i){this.modExists("download",!0)&&this.modules.download.download(t,e,o,i,!0)},Tabulator.prototype.tableComms=function(t,e,o,i){this.modules.comms.receive(t,e,o,i)},Tabulator.prototype.moduleBindings={},Tabulator.prototype.extendModule=function(t,e,o){if(Tabulator.prototype.moduleBindings[t]){var i=Tabulator.prototype.moduleBindings[t].prototype[e];if(i)if("object"==(void 0===o?"undefined":_typeof(o)))for(var n in o)i[n]=o[n];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",e)}else console.warn("Module Error - module does not exist:",t)},Tabulator.prototype.registerModule=function(t,e){Tabulator.prototype.moduleBindings[t]=e},Tabulator.prototype.bindModules=function(){this.modules={};for(var t in Tabulator.prototype.moduleBindings)this.modules[t]=new Tabulator.prototype.moduleBindings[t](this)},Tabulator.prototype.modExists=function(t,e){return!!this.modules[t]||(e&&console.error("Tabulator Module Not Installed: "+t),!1)},Tabulator.prototype.helpers={elVisible:function(t){return!(t.offsetWidth<=0&&t.offsetHeight<=0)},elOffset:function(t){var e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset-document.documentElement.clientTop,left:e.left+window.pageXOffset-document.documentElement.clientLeft}},deepClone:function(t){var e=Array.isArray(t)?[]:{};for(var o in t)null!=t[o]&&"object"===_typeof(t[o])?t[o]instanceof Date?e[o]=new Date(t[o]):e[o]=this.deepClone(t[o]):e[o]=t[o];return e}},Tabulator.prototype.comms={tables:[],register:function(t){Tabulator.prototype.comms.tables.push(t)},deregister:function(t){var e=Tabulator.prototype.comms.tables.indexOf(t);e>-1&&Tabulator.prototype.comms.tables.splice(e,1)},lookupTable:function(t,e){var o,i,n=[];if("string"==typeof t){if(o=document.querySelectorAll(t),o.length)for(var s=0;s<o.length;s++)(i=Tabulator.prototype.comms.matchElement(o[s]))&&n.push(i)}else"undefined"!=typeof HTMLElement&&t instanceof HTMLElement||t instanceof Tabulator?(i=Tabulator.prototype.comms.matchElement(t))&&n.push(i):Array.isArray(t)?t.forEach(function(t){n=n.concat(Tabulator.prototype.comms.lookupTable(t))}):e||console.warn("Table Connection Error - Invalid Selector",t);return n},matchElement:function(t){return Tabulator.prototype.comms.tables.find(function(e){return t instanceof Tabulator?e===t:e.element===t})}},Tabulator.prototype.findTable=function(t){var e=Tabulator.prototype.comms.lookupTable(t,!0);return!(Array.isArray(e)&&!e.length)&&e};var Layout=function(t){this.table=t,this.mode=null};Layout.prototype.initialize=function(t){this.modes[t]?this.mode=t:(console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+t),this.mode="fitData"),this.table.element.setAttribute("tabulator-layout",this.mode)},Layout.prototype.getMode=function(){return this.mode},Layout.prototype.layout=function(){this.modes[this.mode].call(this,this.table.columnManager.columnsByIndex)},Layout.prototype.modes={fitData:function(t){t.forEach(function(t){t.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataFill:function(t){t.forEach(function(t){t.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataStretch:function(t){var e=this,o=0,i=this.table.rowManager.element.clientWidth,n=0,s=!1;t.forEach(function(t,i){t.widthFixed||t.reinitializeWidth(),(e.table.options.responsiveLayout?t.modules.responsive.visible:t.visible)&&(s=t),t.visible&&(o+=t.getWidth())}),s?(n=i-o+s.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&(s.setWidth(0),this.table.modules.responsiveLayout.update()),n>0?s.setWidth(n):s.reinitializeWidth()):this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitColumns:function(t){function e(t){return"string"==typeof t?t.indexOf("%")>-1?n/100*parseInt(t):parseInt(t):t}function o(t,i,n,s){function l(t){return n*(t.column.definition.widthGrow||1)}function a(t){return e(t.width)-n*(t.column.definition.widthShrink||0)}var r=[],u=0,c=0,h=0,p=0,d=0,m=[];return t.forEach(function(t,e){var o=s?a(t):l(t)
-;t.column.minWidth>=o?r.push(t):(m.push(t),d+=s?t.column.definition.widthShrink||1:t.column.definition.widthGrow||1)}),r.length?(r.forEach(function(t){u+=s?t.width-t.column.minWidth:t.column.minWidth,t.width=t.column.minWidth}),c=i-u,h=d?Math.floor(c/d):c,p=c-h*d,p+=o(m,c,h,s)):(p=d?i-Math.floor(i/d)*d:i,m.forEach(function(t){t.width=s?a(t):l(t)})),p}var i=this,n=i.table.element.clientWidth,s=0,l=0,a=0,r=0,u=[],c=[],h=0,p=0,d=0;this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(n-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),t.forEach(function(t){var o,i,n;t.visible&&(o=t.definition.width,i=parseInt(t.minWidth),o?(n=e(o),s+=n>i?n:i,t.definition.widthShrink&&(c.push({column:t,width:n>i?n:i}),h+=t.definition.widthShrink)):(u.push({column:t,width:0}),a+=t.definition.widthGrow||1))}),l=n-s,r=Math.floor(l/a);var d=o(u,l,r,!1);u.length&&d>0&&(u[u.length-1].width+=+d),u.forEach(function(t){l-=t.width}),p=Math.abs(d)+l,p>0&&h&&(d=o(c,p,Math.floor(p/h),!0)),c.length&&(c[c.length-1].width-=d),u.forEach(function(t){t.column.setWidth(t.width)}),c.forEach(function(t){t.column.setWidth(t.width)})}},Tabulator.prototype.registerModule("layout",Layout);var Localize=function(t){this.table=t,this.locale="default",this.lang=!1,this.bindings={}};Localize.prototype.setHeaderFilterPlaceholder=function(t){this.langs.default.headerFilters.default=t},Localize.prototype.setHeaderFilterColumnPlaceholder=function(t,e){this.langs.default.headerFilters.columns[t]=e,this.lang&&!this.lang.headerFilters.columns[t]&&(this.lang.headerFilters.columns[t]=e)},Localize.prototype.installLang=function(t,e){this.langs[t]?this._setLangProp(this.langs[t],e):this.langs[t]=e},Localize.prototype._setLangProp=function(t,e){for(var o in e)t[o]&&"object"==_typeof(t[o])?this._setLangProp(t[o],e[o]):t[o]=e[o]},Localize.prototype.setLocale=function(t){function e(t,o){for(var i in t)"object"==_typeof(t[i])?(o[i]||(o[i]={}),e(t[i],o[i])):o[i]=t[i]}var o=this;if(t=t||"default",!0===t&&navigator.language&&(t=navigator.language.toLowerCase()),t&&!o.langs[t]){var i=t.split("-")[0];o.langs[i]?(console.warn("Localization Error - Exact matching locale not found, using closest match: ",t,i),t=i):(console.warn("Localization Error - Matching locale not found, using default: ",t),t="default")}o.locale=t,o.lang=Tabulator.prototype.helpers.deepClone(o.langs.default||{}),"default"!=t&&e(o.langs[t],o.lang),o.table.options.localized.call(o.table,o.locale,o.lang),o._executeBindings()},Localize.prototype.getLocale=function(t){return self.locale},Localize.prototype.getLang=function(t){return t?this.langs[t]:this.lang},Localize.prototype.getText=function(t,e){var t=e?t+"|"+e:t,o=t.split("|");return this._getLangElement(o,this.locale)||""},Localize.prototype._getLangElement=function(t,e){var o=this,i=o.lang;return t.forEach(function(t){var e;i&&(e=i[t],i=void 0!==e&&e)}),i},Localize.prototype.bind=function(t,e){this.bindings[t]||(this.bindings[t]=[]),this.bindings[t].push(e),e(this.getText(t),this.lang)},Localize.prototype._executeBindings=function(){var t=this;for(var e in t.bindings)!function(e){t.bindings[e].forEach(function(o){o(t.getText(e),t.lang)})}(e)},Localize.prototype.langs={default:{groups:{item:"item",items:"items"},columns:{},ajax:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page"},headerFilters:{default:"filter column...",columns:{}}}},Tabulator.prototype.registerModule("localize",Localize);var Comms=function(t){this.table=t};Comms.prototype.getConnections=function(t){var e,o=this,i=[];return e=Tabulator.prototype.comms.lookupTable(t),e.forEach(function(t){o.table!==t&&i.push(t)}),i},Comms.prototype.send=function(t,e,o,i){var n=this,s=this.getConnections(t);s.forEach(function(t){t.tableComms(n.table.element,e,o,i)}),!s.length&&t&&console.warn("Table Connection Error - No tables matching selector found",t)},Comms.prototype.receive=function(t,e,o,i){if(this.table.modExists(e))return this.table.modules[e].commsReceived(t,o,i);console.warn("Inter-table Comms Error - no such module:",e)},Tabulator.prototype.registerModule("comms",Comms);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Accessor = function Accessor(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "download", "clipboard", "print", "htmlOutput"]; //list of accessor types
-};
-
-//initialize column accessor
-Accessor.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1)),
- accessor;
-
- if (column.definition[key]) {
- accessor = self.lookupAccessor(column.definition[key]);
-
- if (accessor) {
- match = true;
-
- config[key] = {
- accessor: accessor,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.accessor = config;
- }
-};
-
-Accessor.prototype.lookupAccessor = function (value) {
- var accessor = false;
-
- //set column accessor
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "string":
- if (this.accessors[value]) {
- accessor = this.accessors[value];
- } else {
- console.warn("Accessor Error - No such accessor found, ignoring: ", value);
- }
- break;
-
- case "function":
- accessor = value;
- break;
- }
-
- return accessor;
-};
-
-//apply accessor to row
-Accessor.prototype.transformRow = function (dataIn, type) {
- var self = this,
- key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1));
-
- //clone data object with deep copy to isolate internal data from returned result
- var data = Tabulator.prototype.helpers.deepClone(dataIn || {});
-
- self.table.columnManager.traverse(function (column) {
- var value, accessor, params, component;
-
- if (column.modules.accessor) {
-
- accessor = column.modules.accessor[key] || column.modules.accessor.accessor || false;
-
- if (accessor) {
- value = column.getFieldValue(data);
-
- if (value != "undefined") {
- component = column.getComponent();
- params = typeof accessor.params === "function" ? accessor.params(value, data, type, component) : accessor.params;
- column.setFieldValue(data, accessor.accessor(value, data, type, params, component));
- }
- }
- }
- });
-
- return data;
-},
-
-//default accessors
-Accessor.prototype.accessors = {};
-
-Tabulator.prototype.registerModule("accessor", Accessor);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},Accessor=function(o){this.table=o,this.allowedTypes=["","data","download","clipboard","print","htmlOutput"]};Accessor.prototype.initializeColumn=function(o){var e=this,s=!1,r={};this.allowedTypes.forEach(function(t){var c,a="accessor"+(t.charAt(0).toUpperCase()+t.slice(1));o.definition[a]&&(c=e.lookupAccessor(o.definition[a]))&&(s=!0,r[a]={accessor:c,params:o.definition[a+"Params"]||{}})}),s&&(o.modules.accessor=r)},Accessor.prototype.lookupAccessor=function(o){var e=!1;switch(void 0===o?"undefined":_typeof(o)){case"string":this.accessors[o]?e=this.accessors[o]:console.warn("Accessor Error - No such accessor found, ignoring: ",o);break;case"function":e=o}return e},Accessor.prototype.transformRow=function(o,e){var s=this,r="accessor"+(e.charAt(0).toUpperCase()+e.slice(1)),t=Tabulator.prototype.helpers.deepClone(o||{});return s.table.columnManager.traverse(function(o){var s,c,a,n;o.modules.accessor&&(c=o.modules.accessor[r]||o.modules.accessor.accessor||!1)&&"undefined"!=(s=o.getFieldValue(t))&&(n=o.getComponent(),a="function"==typeof c.params?c.params(s,t,e,n):c.params,o.setFieldValue(t,c.accessor(s,t,e,a,n)))}),t},Accessor.prototype.accessors={},Tabulator.prototype.registerModule("accessor",Accessor);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Ajax = function Ajax(table) {
-
- this.table = table; //hold Tabulator object
- this.config = false; //hold config object for ajax request
- this.url = ""; //request URL
- this.urlGenerator = false;
- this.params = false; //request parameters
-
- this.loaderElement = this.createLoaderElement(); //loader message div
- this.msgElement = this.createMsgElement(); //message element
- this.loadingElement = false;
- this.errorElement = false;
- this.loaderPromise = false;
-
- this.progressiveLoad = false;
- this.loading = false;
-
- this.requestOrder = 0; //prevent requests comming out of sequence if overridden by another load request
-};
-
-//initialize setup options
-Ajax.prototype.initialize = function () {
- var template;
-
- this.loaderElement.appendChild(this.msgElement);
-
- if (this.table.options.ajaxLoaderLoading) {
- if (typeof this.table.options.ajaxLoaderLoading == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderLoading.trim();
- this.loadingElement = template.content.firstChild;
- } else {
- this.loadingElement = this.table.options.ajaxLoaderLoading;
- }
- }
-
- this.loaderPromise = this.table.options.ajaxRequestFunc || this.defaultLoaderPromise;
-
- this.urlGenerator = this.table.options.ajaxURLGenerator || this.defaultURLGenerator;
-
- if (this.table.options.ajaxLoaderError) {
- if (typeof this.table.options.ajaxLoaderError == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderError.trim();
- this.errorElement = template.content.firstChild;
- } else {
- this.errorElement = this.table.options.ajaxLoaderError;
- }
- }
-
- if (this.table.options.ajaxParams) {
- this.setParams(this.table.options.ajaxParams);
- }
-
- if (this.table.options.ajaxConfig) {
- this.setConfig(this.table.options.ajaxConfig);
- }
-
- if (this.table.options.ajaxURL) {
- this.setUrl(this.table.options.ajaxURL);
- }
-
- if (this.table.options.ajaxProgressiveLoad) {
- if (this.table.options.pagination) {
- this.progressiveLoad = false;
- console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time");
- } else {
- if (this.table.modExists("page")) {
- this.progressiveLoad = this.table.options.ajaxProgressiveLoad;
- this.table.modules.page.initializeProgressive(this.progressiveLoad);
- } else {
- console.error("Pagination plugin is required for progressive ajax loading");
- }
- }
- }
-};
-
-Ajax.prototype.createLoaderElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-loader");
- return el;
-};
-
-Ajax.prototype.createMsgElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-loader-msg");
- el.setAttribute("role", "alert");
-
- return el;
-};
-
-//set ajax params
-Ajax.prototype.setParams = function (params, update) {
- if (update) {
- this.params = this.params || {};
-
- for (var key in params) {
- this.params[key] = params[key];
- }
- } else {
- this.params = params;
- }
-};
-
-Ajax.prototype.getParams = function () {
- return this.params || {};
-};
-
-//load config object
-Ajax.prototype.setConfig = function (config) {
- this._loadDefaultConfig();
-
- if (typeof config == "string") {
- this.config.method = config;
- } else {
- for (var key in config) {
- this.config[key] = config[key];
- }
- }
-};
-
-//create config object from default
-Ajax.prototype._loadDefaultConfig = function (force) {
- var self = this;
- if (!self.config || force) {
-
- self.config = {};
-
- //load base config from defaults
- for (var key in self.defaultConfig) {
- self.config[key] = self.defaultConfig[key];
- }
- }
-};
-
-//set request url
-Ajax.prototype.setUrl = function (url) {
- this.url = url;
-};
-
-//get request url
-Ajax.prototype.getUrl = function () {
- return this.url;
-};
-
-//lstandard loading function
-Ajax.prototype.loadData = function (inPosition, columnsChanged) {
- var self = this;
-
- if (this.progressiveLoad) {
- return this._loadDataProgressive();
- } else {
- return this._loadDataStandard(inPosition, columnsChanged);
- }
-};
-
-Ajax.prototype.nextPage = function (diff) {
- var margin;
-
- if (!this.loading) {
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.getElement().clientHeight * 2;
-
- if (diff < margin) {
- this.table.modules.page.nextPage().then(function () {}).catch(function () {});
- }
- }
-};
-
-Ajax.prototype.blockActiveRequest = function () {
- this.requestOrder++;
-};
-
-Ajax.prototype._loadDataProgressive = function () {
- this.table.rowManager.setData([]);
- return this.table.modules.page.setPage(1);
-};
-
-Ajax.prototype._loadDataStandard = function (inPosition, columnsChanged) {
- var _this = this;
-
- return new Promise(function (resolve, reject) {
- _this.sendRequest(inPosition).then(function (data) {
- _this.table.rowManager.setData(data, inPosition, columnsChanged).then(function () {
- resolve();
- }).catch(function (e) {
- reject(e);
- });
- }).catch(function (e) {
- reject(e);
- });
- });
-};
-
-Ajax.prototype.generateParamsList = function (data, prefix) {
- var self = this,
- output = [];
-
- prefix = prefix || "";
-
- if (Array.isArray(data)) {
- data.forEach(function (item, i) {
- output = output.concat(self.generateParamsList(item, prefix ? prefix + "[" + i + "]" : i));
- });
- } else if ((typeof data === "undefined" ? "undefined" : _typeof(data)) === "object") {
- for (var key in data) {
- output = output.concat(self.generateParamsList(data[key], prefix ? prefix + "[" + key + "]" : key));
- }
- } else {
- output.push({ key: prefix, value: data });
- }
-
- return output;
-};
-
-Ajax.prototype.serializeParams = function (params) {
- var output = this.generateParamsList(params),
- encoded = [];
-
- output.forEach(function (item) {
- encoded.push(encodeURIComponent(item.key) + "=" + encodeURIComponent(item.value));
- });
-
- return encoded.join("&");
-};
-
-//send ajax request
-Ajax.prototype.sendRequest = function (silent) {
- var _this2 = this;
-
- var self = this,
- url = self.url,
- requestNo,
- esc,
- query;
-
- self.requestOrder++;
- requestNo = self.requestOrder;
-
- self._loadDefaultConfig();
-
- return new Promise(function (resolve, reject) {
- if (self.table.options.ajaxRequesting.call(_this2.table, self.url, self.params) !== false) {
-
- self.loading = true;
-
- if (!silent) {
- self.showLoader();
- }
-
- _this2.loaderPromise(url, self.config, self.params).then(function (data) {
- if (requestNo === self.requestOrder) {
- if (self.table.options.ajaxResponse) {
- data = self.table.options.ajaxResponse.call(self.table, self.url, self.params, data);
- }
- resolve(data);
-
- self.hideLoader();
- self.loading = false;
- } else {
- console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made");
- }
- }).catch(function (error) {
- console.error("Ajax Load Error: ", error);
- self.table.options.ajaxError.call(self.table, error);
-
- self.showError();
-
- setTimeout(function () {
- self.hideLoader();
- }, 3000);
-
- self.loading = false;
-
- reject();
- });
- } else {
- reject();
- }
- });
-};
-
-Ajax.prototype.showLoader = function () {
- var shouldLoad = typeof this.table.options.ajaxLoader === "function" ? this.table.options.ajaxLoader() : this.table.options.ajaxLoader;
-
- if (shouldLoad) {
-
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-error");
- this.msgElement.classList.add("tabulator-loading");
-
- if (this.loadingElement) {
- this.msgElement.appendChild(this.loadingElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|loading");
- }
-
- this.table.element.appendChild(this.loaderElement);
- }
-};
-
-Ajax.prototype.showError = function () {
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-loading");
- this.msgElement.classList.add("tabulator-error");
-
- if (this.errorElement) {
- this.msgElement.appendChild(this.errorElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|error");
- }
-
- this.table.element.appendChild(this.loaderElement);
-};
-
-Ajax.prototype.hideLoader = function () {
- if (this.loaderElement.parentNode) {
- this.loaderElement.parentNode.removeChild(this.loaderElement);
- }
-};
-
-//default ajax config object
-Ajax.prototype.defaultConfig = {
- method: "GET"
-};
-
-Ajax.prototype.defaultURLGenerator = function (url, config, params) {
-
- if (url) {
- if (params && Object.keys(params).length) {
- if (!config.method || config.method.toLowerCase() == "get") {
- config.method = "get";
-
- url += (url.includes("?") ? "&" : "?") + this.serializeParams(params);
- }
- }
- }
-
- return url;
-};
-
-Ajax.prototype.defaultLoaderPromise = function (url, config, params) {
- var self = this,
- contentType;
-
- return new Promise(function (resolve, reject) {
-
- //set url
- url = self.urlGenerator(url, config, params);
-
- //set body content if not GET request
- if (config.method.toUpperCase() != "GET") {
- contentType = _typeof(self.table.options.ajaxContentType) === "object" ? self.table.options.ajaxContentType : self.contentTypeFormatters[self.table.options.ajaxContentType];
- if (contentType) {
-
- for (var key in contentType.headers) {
- if (!config.headers) {
- config.headers = {};
- }
-
- if (typeof config.headers[key] === "undefined") {
- config.headers[key] = contentType.headers[key];
- }
- }
-
- config.body = contentType.body.call(self, url, config, params);
- } else {
- console.warn("Ajax Error - Invalid ajaxContentType value:", self.table.options.ajaxContentType);
- }
- }
-
- if (url) {
-
- //configure headers
- if (typeof config.headers === "undefined") {
- config.headers = {};
- }
-
- if (typeof config.headers.Accept === "undefined") {
- config.headers.Accept = "application/json";
- }
-
- if (typeof config.headers["X-Requested-With"] === "undefined") {
- config.headers["X-Requested-With"] = "XMLHttpRequest";
- }
-
- if (typeof config.mode === "undefined") {
- config.mode = "cors";
- }
-
- if (config.mode == "cors") {
-
- if (typeof config.headers["Access-Control-Allow-Origin"] === "undefined") {
- config.headers["Access-Control-Allow-Origin"] = window.location.origin;
- }
-
- if (typeof config.credentials === "undefined") {
- config.credentials = 'same-origin';
- }
- } else {
- if (typeof config.credentials === "undefined") {
- config.credentials = 'include';
- }
- }
-
- //send request
- fetch(url, config).then(function (response) {
- if (response.ok) {
- response.json().then(function (data) {
- resolve(data);
- }).catch(function (error) {
- reject(error);
- console.warn("Ajax Load Error - Invalid JSON returned", error);
- });
- } else {
- console.error("Ajax Load Error - Connection Error: " + response.status, response.statusText);
- reject(response);
- }
- }).catch(function (error) {
- console.error("Ajax Load Error - Connection Error: ", error);
- reject(error);
- });
- } else {
- console.warn("Ajax Load Error - No URL Set");
- resolve([]);
- }
- });
-};
-
-Ajax.prototype.contentTypeFormatters = {
- "json": {
- headers: {
- 'Content-Type': 'application/json'
- },
- body: function body(url, config, params) {
- return JSON.stringify(params);
- }
- },
- "form": {
- headers: {},
- body: function body(url, config, params) {
- var output = this.generateParamsList(params),
- form = new FormData();
-
- output.forEach(function (item) {
- form.append(item.key, item.value);
- });
-
- return form;
- }
- }
-};
-
-Tabulator.prototype.registerModule("ajax", Ajax);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ajax=function(e){this.table=e,this.config=!1,this.url="",this.urlGenerator=!1,this.params=!1,this.loaderElement=this.createLoaderElement(),this.msgElement=this.createMsgElement(),this.loadingElement=!1,this.errorElement=!1,this.loaderPromise=!1,this.progressiveLoad=!1,this.loading=!1,this.requestOrder=0};Ajax.prototype.initialize=function(){var e;this.loaderElement.appendChild(this.msgElement),this.table.options.ajaxLoaderLoading&&("string"==typeof this.table.options.ajaxLoaderLoading?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderLoading.trim(),this.loadingElement=e.content.firstChild):this.loadingElement=this.table.options.ajaxLoaderLoading),this.loaderPromise=this.table.options.ajaxRequestFunc||this.defaultLoaderPromise,this.urlGenerator=this.table.options.ajaxURLGenerator||this.defaultURLGenerator,this.table.options.ajaxLoaderError&&("string"==typeof this.table.options.ajaxLoaderError?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderError.trim(),this.errorElement=e.content.firstChild):this.errorElement=this.table.options.ajaxLoaderError),this.table.options.ajaxParams&&this.setParams(this.table.options.ajaxParams),this.table.options.ajaxConfig&&this.setConfig(this.table.options.ajaxConfig),this.table.options.ajaxURL&&this.setUrl(this.table.options.ajaxURL),this.table.options.ajaxProgressiveLoad&&(this.table.options.pagination?(this.progressiveLoad=!1,console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time")):this.table.modExists("page")?(this.progressiveLoad=this.table.options.ajaxProgressiveLoad,this.table.modules.page.initializeProgressive(this.progressiveLoad)):console.error("Pagination plugin is required for progressive ajax loading"))},Ajax.prototype.createLoaderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader"),e},Ajax.prototype.createMsgElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader-msg"),e.setAttribute("role","alert"),e},Ajax.prototype.setParams=function(e,t){if(t){this.params=this.params||{};for(var o in e)this.params[o]=e[o]}else this.params=e},Ajax.prototype.getParams=function(){return this.params||{}},Ajax.prototype.setConfig=function(e){if(this._loadDefaultConfig(),"string"==typeof e)this.config.method=e;else for(var t in e)this.config[t]=e[t]},Ajax.prototype._loadDefaultConfig=function(e){var t=this;if(!t.config||e){t.config={};for(var o in t.defaultConfig)t.config[o]=t.defaultConfig[o]}},Ajax.prototype.setUrl=function(e){this.url=e},Ajax.prototype.getUrl=function(){return this.url},Ajax.prototype.loadData=function(e,t){return this.progressiveLoad?this._loadDataProgressive():this._loadDataStandard(e,t)},Ajax.prototype.nextPage=function(e){var t;this.loading||(t=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.getElement().clientHeight,e<t&&this.table.modules.page.nextPage().then(function(){}).catch(function(){}))},Ajax.prototype.blockActiveRequest=function(){this.requestOrder++},Ajax.prototype._loadDataProgressive=function(){return this.table.rowManager.setData([]),this.table.modules.page.setPage(1)},Ajax.prototype._loadDataStandard=function(e,t){var o=this;return new Promise(function(a,r){o.sendRequest(e).then(function(i){o.table.rowManager.setData(i,e,t).then(function(){a()}).catch(function(e){r(e)})}).catch(function(e){r(e)})})},Ajax.prototype.generateParamsList=function(e,t){var o=this,a=[];if(t=t||"",Array.isArray(e))e.forEach(function(e,r){a=a.concat(o.generateParamsList(e,t?t+"["+r+"]":r))});else if("object"===(void 0===e?"undefined":_typeof(e)))for(var r in e)a=a.concat(o.generateParamsList(e[r],t?t+"["+r+"]":r));else a.push({key:t,value:e});return a},Ajax.prototype.serializeParams=function(e){var t=this.generateParamsList(e),o=[];return t.forEach(function(e){o.push(encodeURIComponent(e.key)+"="+encodeURIComponent(e.value))}),o.join("&")},Ajax.prototype.sendRequest=function(e){var t,o=this,a=this,r=a.url;return a.requestOrder++,t=a.requestOrder,a._loadDefaultConfig(),new Promise(function(i,n){!1!==a.table.options.ajaxRequesting.call(o.table,a.url,a.params)?(a.loading=!0,e||a.showLoader(),o.loaderPromise(r,a.config,a.params).then(function(e){t===a.requestOrder?(a.table.options.ajaxResponse&&(e=a.table.options.ajaxResponse.call(a.table,a.url,a.params,e)),i(e),a.hideLoader(),a.loading=!1):console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made")}).catch(function(e){console.error("Ajax Load Error: ",e),a.table.options.ajaxError.call(a.table,e),a.showError(),setTimeout(function(){a.hideLoader()},3e3),a.loading=!1,n()})):n()})},Ajax.prototype.showLoader=function(){if("function"==typeof this.table.options.ajaxLoader?this.table.options.ajaxLoader():this.table.options.ajaxLoader){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-error"),this.msgElement.classList.add("tabulator-loading"),this.loadingElement?this.msgElement.appendChild(this.loadingElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|loading"),this.table.element.appendChild(this.loaderElement)}},Ajax.prototype.showError=function(){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-loading"),this.msgElement.classList.add("tabulator-error"),this.errorElement?this.msgElement.appendChild(this.errorElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|error"),this.table.element.appendChild(this.loaderElement)},Ajax.prototype.hideLoader=function(){this.loaderElement.parentNode&&this.loaderElement.parentNode.removeChild(this.loaderElement)},Ajax.prototype.defaultConfig={method:"GET"},Ajax.prototype.defaultURLGenerator=function(e,t,o){return e&&o&&Object.keys(o).length&&(t.method&&"get"!=t.method.toLowerCase()||(t.method="get",e+=(e.includes("?")?"&":"?")+this.serializeParams(o))),e},Ajax.prototype.defaultLoaderPromise=function(e,t,o){var a,r=this;return new Promise(function(i,n){if(e=r.urlGenerator(e,t,o),"GET"!=t.method.toUpperCase())if(a="object"===_typeof(r.table.options.ajaxContentType)?r.table.options.ajaxContentType:r.contentTypeFormatters[r.table.options.ajaxContentType]){for(var s in a.headers)t.headers||(t.headers={}),void 0===t.headers[s]&&(t.headers[s]=a.headers[s]);t.body=a.body.call(r,e,t,o)}else console.warn("Ajax Error - Invalid ajaxContentType value:",r.table.options.ajaxContentType);e?(void 0===t.headers&&(t.headers={}),void 0===t.headers.Accept&&(t.headers.Accept="application/json"),void 0===t.headers["X-Requested-With"]&&(t.headers["X-Requested-With"]="XMLHttpRequest"),void 0===t.mode&&(t.mode="cors"),"cors"==t.mode?(void 0===t.headers["Access-Control-Allow-Origin"]&&(t.headers["Access-Control-Allow-Origin"]=window.location.origin),void 0===t.credentials&&(t.credentials="same-origin")):void 0===t.credentials&&(t.credentials="include"),fetch(e,t).then(function(e){e.ok?e.json().then(function(e){i(e)}).catch(function(e){n(e),console.warn("Ajax Load Error - Invalid JSON returned",e)}):(console.error("Ajax Load Error - Connection Error: "+e.status,e.statusText),n(e))}).catch(function(e){console.error("Ajax Load Error - Connection Error: ",e),n(e)})):(console.warn("Ajax Load Error - No URL Set"),i([]))})},Ajax.prototype.contentTypeFormatters={json:{headers:{"Content-Type":"application/json"},body:function(e,t,o){return JSON.stringify(o)}},form:{headers:{},body:function(e,t,o){var a=this.generateParamsList(o),r=new FormData;return a.forEach(function(e){r.append(e.key,e.value)}),r}}},Tabulator.prototype.registerModule("ajax",Ajax);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var ColumnCalcs = function ColumnCalcs(table) {
- this.table = table; //hold Tabulator object
- this.topCalcs = [];
- this.botCalcs = [];
- this.genColumn = false;
- this.topElement = this.createElement();
- this.botElement = this.createElement();
- this.topRow = false;
- this.botRow = false;
- this.topInitialized = false;
- this.botInitialized = false;
-
- this.initialize();
-};
-
-ColumnCalcs.prototype.createElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-calcs-holder");
- return el;
-};
-
-ColumnCalcs.prototype.initialize = function () {
- this.genColumn = new Column({ field: "value" }, this);
-};
-
-//dummy functions to handle being mock column manager
-ColumnCalcs.prototype.registerColumnField = function () {};
-
-//initialize column calcs
-ColumnCalcs.prototype.initializeColumn = function (column) {
- var def = column.definition;
-
- var config = {
- topCalcParams: def.topCalcParams || {},
- botCalcParams: def.bottomCalcParams || {}
- };
-
- if (def.topCalc) {
-
- switch (_typeof(def.topCalc)) {
- case "string":
- if (this.calculations[def.topCalc]) {
- config.topCalc = this.calculations[def.topCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.topCalc);
- }
- break;
-
- case "function":
- config.topCalc = def.topCalc;
- break;
-
- }
-
- if (config.topCalc) {
- column.modules.columnCalcs = config;
- this.topCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeTopRow();
- }
- }
- }
-
- if (def.bottomCalc) {
- switch (_typeof(def.bottomCalc)) {
- case "string":
- if (this.calculations[def.bottomCalc]) {
- config.botCalc = this.calculations[def.bottomCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.bottomCalc);
- }
- break;
-
- case "function":
- config.botCalc = def.bottomCalc;
- break;
-
- }
-
- if (config.botCalc) {
- column.modules.columnCalcs = config;
- this.botCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeBottomRow();
- }
- }
- }
-};
-
-ColumnCalcs.prototype.removeCalcs = function () {
- var changed = false;
-
- if (this.topInitialized) {
- this.topInitialized = false;
- this.topElement.parentNode.removeChild(this.topElement);
- changed = true;
- }
-
- if (this.botInitialized) {
- this.botInitialized = false;
- this.table.footerManager.remove(this.botElement);
- changed = true;
- }
-
- if (changed) {
- this.table.rowManager.adjustTableSize();
- }
-};
-
-ColumnCalcs.prototype.initializeTopRow = function () {
- if (!this.topInitialized) {
- // this.table.columnManager.headersElement.after(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
- this.topInitialized = true;
- }
-};
-
-ColumnCalcs.prototype.initializeBottomRow = function () {
- if (!this.botInitialized) {
- this.table.footerManager.prepend(this.botElement);
- this.botInitialized = true;
- }
-};
-
-ColumnCalcs.prototype.scrollHorizontal = function (left) {
- var hozAdjust = 0,
- scrollWidth = this.table.columnManager.getElement().scrollWidth - this.table.element.clientWidth;
-
- if (this.botInitialized) {
- this.botRow.getElement().style.marginLeft = -left + "px";
- }
-};
-
-ColumnCalcs.prototype.recalc = function (rows) {
- var data, row;
-
- if (this.topInitialized || this.botInitialized) {
- data = this.rowsToData(rows);
-
- if (this.topInitialized) {
- if (this.topRow) {
- this.topRow.deleteCells();
- }
-
- row = this.generateRow("top", this.rowsToData(rows));
- this.topRow = row;
- while (this.topElement.firstChild) {
- this.topElement.removeChild(this.topElement.firstChild);
- }this.topElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- if (this.botInitialized) {
- if (this.botRow) {
- this.botRow.deleteCells();
- }
-
- row = this.generateRow("bottom", this.rowsToData(rows));
- this.botRow = row;
- while (this.botElement.firstChild) {
- this.botElement.removeChild(this.botElement.firstChild);
- }this.botElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- this.table.rowManager.adjustTableSize();
-
- //set resizable handles
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
- }
-};
-
-ColumnCalcs.prototype.recalcRowGroup = function (row) {
- this.recalcGroup(this.table.modules.groupRows.getRowGroup(row));
-};
-
-ColumnCalcs.prototype.recalcAll = function () {
- var _this = this;
-
- if (this.topCalcs.length || this.botCalcs.length) {
- if (this.table.options.columnCalcs !== "group") {
- this.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.groupBy && this.table.options.columnCalcs !== "table") {
-
- var groups = table.modules.groupRows.getChildGroups();
-
- groups.forEach(function (group) {
- _this.recalcGroup(group);
- });
- }
- }
-};
-
-ColumnCalcs.prototype.recalcGroup = function (group) {
- var data, rowData;
-
- if (group) {
- if (group.calcs) {
- if (group.calcs.bottom) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("bottom", data);
-
- group.calcs.bottom.updateData(rowData);
- group.calcs.bottom.reinitialize();
- }
-
- if (group.calcs.top) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("top", data);
-
- group.calcs.top.updateData(rowData);
- group.calcs.top.reinitialize();
- }
- }
- }
-};
-
-//generate top stats row
-ColumnCalcs.prototype.generateTopRow = function (rows) {
- return this.generateRow("top", this.rowsToData(rows));
-};
-//generate bottom stats row
-ColumnCalcs.prototype.generateBottomRow = function (rows) {
- return this.generateRow("bottom", this.rowsToData(rows));
-};
-
-ColumnCalcs.prototype.rowsToData = function (rows) {
- var _this2 = this;
-
- var data = [];
-
- rows.forEach(function (row) {
- data.push(row.getData());
-
- if (_this2.table.options.dataTree && _this2.table.options.dataTreeChildColumnCalcs) {
- if (row.modules.dataTree.open) {
- var children = _this2.rowsToData(_this2.table.modules.dataTree.getFilteredTreeChildren(row));
- data = data.concat(children);
- }
- }
- });
-
- return data;
-};
-
-//generate stats row
-ColumnCalcs.prototype.generateRow = function (pos, data) {
- var self = this,
- rowData = this.generateRowData(pos, data),
- row;
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.disable();
- }
-
- row = new Row(rowData, this, "calc");
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.enable();
- }
-
- row.getElement().classList.add("tabulator-calcs", "tabulator-calcs-" + pos);
-
- row.generateCells = function () {
-
- var cells = [];
-
- self.table.columnManager.columnsByIndex.forEach(function (column) {
-
- //set field name of mock column
- self.genColumn.setField(column.getField());
- self.genColumn.hozAlign = column.hozAlign;
-
- if (column.definition[pos + "CalcFormatter"] && self.table.modExists("format")) {
-
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter(column.definition[pos + "CalcFormatter"]),
- params: column.definition[pos + "CalcFormatterParams"]
- };
- } else {
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter("plaintext"),
- params: {}
- };
- }
-
- //ensure css class defintion is replicated to calculation cell
- self.genColumn.definition.cssClass = column.definition.cssClass;
-
- //generate cell and assign to correct column
- var cell = new Cell(self.genColumn, row);
- cell.column = column;
- cell.setWidth();
-
- column.cells.push(cell);
- cells.push(cell);
-
- if (!column.visible) {
- cell.hide();
- }
- });
-
- this.cells = cells;
- };
-
- return row;
-};
-
-//generate stats row
-ColumnCalcs.prototype.generateRowData = function (pos, data) {
- var rowData = {},
- calcs = pos == "top" ? this.topCalcs : this.botCalcs,
- type = pos == "top" ? "topCalc" : "botCalc",
- params,
- paramKey;
-
- calcs.forEach(function (column) {
- var values = [];
-
- if (column.modules.columnCalcs && column.modules.columnCalcs[type]) {
- data.forEach(function (item) {
- values.push(column.getFieldValue(item));
- });
-
- paramKey = type + "Params";
- params = typeof column.modules.columnCalcs[paramKey] === "function" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey];
-
- column.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params));
- }
- });
-
- return rowData;
-};
-
-ColumnCalcs.prototype.hasTopCalcs = function () {
- return !!this.topCalcs.length;
-};
-
-ColumnCalcs.prototype.hasBottomCalcs = function () {
- return !!this.botCalcs.length;
-};
-
-//handle table redraw
-ColumnCalcs.prototype.redraw = function () {
- if (this.topRow) {
- this.topRow.normalizeHeight(true);
- }
- if (this.botRow) {
- this.botRow.normalizeHeight(true);
- }
-};
-
-//return the calculated
-ColumnCalcs.prototype.getResults = function () {
- var self = this,
- results = {},
- groups;
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- groups = this.table.modules.groupRows.getGroups(true);
-
- groups.forEach(function (group) {
- results[group.getKey()] = self.getGroupResults(group);
- });
- } else {
- results = {
- top: this.topRow ? this.topRow.getData() : {},
- bottom: this.botRow ? this.botRow.getData() : {}
- };
- }
-
- return results;
-};
-
-//get results from a group
-ColumnCalcs.prototype.getGroupResults = function (group) {
- var self = this,
- groupObj = group._getSelf(),
- subGroups = group.getSubGroups(),
- subGroupResults = {},
- results = {};
-
- subGroups.forEach(function (subgroup) {
- subGroupResults[subgroup.getKey()] = self.getGroupResults(subgroup);
- });
-
- results = {
- top: groupObj.calcs.top ? groupObj.calcs.top.getData() : {},
- bottom: groupObj.calcs.bottom ? groupObj.calcs.bottom.getData() : {},
- groups: subGroupResults
- };
-
- return results;
-};
-
-//default calculations
-ColumnCalcs.prototype.calculations = {
- "avg": function avg(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : 2;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- value = Number(value);
- return sum + value;
- });
-
- output = output / values.length;
-
- output = precision !== false ? output.toFixed(precision) : output;
- }
-
- return parseFloat(output).toString();
- },
- "max": function max(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value > output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "min": function min(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value < output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "sum": function sum(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- if (values.length) {
- values.forEach(function (value) {
- value = Number(value);
-
- output += !isNaN(value) ? Number(value) : 0;
- });
- }
-
- return precision !== false ? output.toFixed(precision) : output;
- },
- "concat": function concat(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- return String(sum) + String(value);
- });
- }
-
- return output;
- },
- "count": function count(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- values.forEach(function (value) {
- if (value) {
- output++;
- }
- });
- }
-
- return output;
- }
-};
-
-Tabulator.prototype.registerModule("columnCalcs", ColumnCalcs);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ColumnCalcs=function(t){this.table=t,this.topCalcs=[],this.botCalcs=[],this.genColumn=!1,this.topElement=this.createElement(),this.botElement=this.createElement(),this.topRow=!1,this.botRow=!1,this.topInitialized=!1,this.botInitialized=!1,this.initialize()};ColumnCalcs.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-calcs-holder"),t},ColumnCalcs.prototype.initialize=function(){this.genColumn=new Column({field:"value"},this)},ColumnCalcs.prototype.registerColumnField=function(){},ColumnCalcs.prototype.initializeColumn=function(t){var o=t.definition,e={topCalcParams:o.topCalcParams||{},botCalcParams:o.bottomCalcParams||{}};if(o.topCalc){switch(_typeof(o.topCalc)){case"string":this.calculations[o.topCalc]?e.topCalc=this.calculations[o.topCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",o.topCalc);break;case"function":e.topCalc=o.topCalc}e.topCalc&&(t.modules.columnCalcs=e,this.topCalcs.push(t),"group"!=this.table.options.columnCalcs&&this.initializeTopRow())}if(o.bottomCalc){switch(_typeof(o.bottomCalc)){case"string":this.calculations[o.bottomCalc]?e.botCalc=this.calculations[o.bottomCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",o.bottomCalc);break;case"function":e.botCalc=o.bottomCalc}e.botCalc&&(t.modules.columnCalcs=e,this.botCalcs.push(t),"group"!=this.table.options.columnCalcs&&this.initializeBottomRow())}},ColumnCalcs.prototype.removeCalcs=function(){var t=!1;this.topInitialized&&(this.topInitialized=!1,this.topElement.parentNode.removeChild(this.topElement),t=!0),this.botInitialized&&(this.botInitialized=!1,this.table.footerManager.remove(this.botElement),t=!0),t&&this.table.rowManager.adjustTableSize()},ColumnCalcs.prototype.initializeTopRow=function(){this.topInitialized||(this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling),this.topInitialized=!0)},ColumnCalcs.prototype.initializeBottomRow=function(){this.botInitialized||(this.table.footerManager.prepend(this.botElement),this.botInitialized=!0)},ColumnCalcs.prototype.scrollHorizontal=function(t){this.table.columnManager.getElement().scrollWidth,this.table.element.clientWidth;this.botInitialized&&(this.botRow.getElement().style.marginLeft=-t+"px")},ColumnCalcs.prototype.recalc=function(t){var o;if(this.topInitialized||this.botInitialized){if(this.rowsToData(t),this.topInitialized){for(this.topRow&&this.topRow.deleteCells(),o=this.generateRow("top",this.rowsToData(t)),this.topRow=o;this.topElement.firstChild;)this.topElement.removeChild(this.topElement.firstChild);this.topElement.appendChild(o.getElement()),o.initialize(!0)}if(this.botInitialized){for(this.botRow&&this.botRow.deleteCells(),o=this.generateRow("bottom",this.rowsToData(t)),this.botRow=o;this.botElement.firstChild;)this.botElement.removeChild(this.botElement.firstChild);this.botElement.appendChild(o.getElement()),o.initialize(!0)}this.table.rowManager.adjustTableSize(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()}},ColumnCalcs.prototype.recalcRowGroup=function(t){this.recalcGroup(this.table.modules.groupRows.getRowGroup(t))},ColumnCalcs.prototype.recalcAll=function(){var t=this;if((this.topCalcs.length||this.botCalcs.length)&&("group"!==this.table.options.columnCalcs&&this.recalc(this.table.rowManager.activeRows),this.table.options.groupBy&&"table"!==this.table.options.columnCalcs)){table.modules.groupRows.getChildGroups().forEach(function(o){t.recalcGroup(o)})}},ColumnCalcs.prototype.recalcGroup=function(t){var o,e;t&&t.calcs&&(t.calcs.bottom&&(o=this.rowsToData(t.rows),e=this.generateRowData("bottom",o),t.calcs.bottom.updateData(e),t.calcs.bottom.reinitialize()),t.calcs.top&&(o=this.rowsToData(t.rows),e=this.generateRowData("top",o),t.calcs.top.updateData(e),t.calcs.top.reinitialize()))},ColumnCalcs.prototype.generateTopRow=function(t){return this.generateRow("top",this.rowsToData(t))},ColumnCalcs.prototype.generateBottomRow=function(t){return this.generateRow("bottom",this.rowsToData(t))},ColumnCalcs.prototype.rowsToData=function(t){var o=this,e=[];return t.forEach(function(t){if(e.push(t.getData()),o.table.options.dataTree&&o.table.options.dataTreeChildColumnCalcs&&t.modules.dataTree.open){var l=o.rowsToData(o.table.modules.dataTree.getFilteredTreeChildren(t));e=e.concat(l)}}),e},ColumnCalcs.prototype.generateRow=function(t,o){var e,l=this,i=this.generateRowData(t,o);return l.table.modExists("mutator")&&l.table.modules.mutator.disable(),e=new Row(i,this,"calc"),l.table.modExists("mutator")&&l.table.modules.mutator.enable(),e.getElement().classList.add("tabulator-calcs","tabulator-calcs-"+t),e.generateCells=function(){var o=[];l.table.columnManager.columnsByIndex.forEach(function(i){l.genColumn.setField(i.getField()),l.genColumn.hozAlign=i.hozAlign,i.definition[t+"CalcFormatter"]&&l.table.modExists("format")?l.genColumn.modules.format={formatter:l.table.modules.format.getFormatter(i.definition[t+"CalcFormatter"]),params:i.definition[t+"CalcFormatterParams"]}:l.genColumn.modules.format={formatter:l.table.modules.format.getFormatter("plaintext"),params:{}},l.genColumn.definition.cssClass=i.definition.cssClass;var a=new Cell(l.genColumn,e);a.column=i,a.setWidth(),i.cells.push(a),o.push(a),i.visible||a.hide()}),this.cells=o},e},ColumnCalcs.prototype.generateRowData=function(t,o){var e,l,i={},a="top"==t?this.topCalcs:this.botCalcs,n="top"==t?"topCalc":"botCalc";return a.forEach(function(t){var a=[];t.modules.columnCalcs&&t.modules.columnCalcs[n]&&(o.forEach(function(o){a.push(t.getFieldValue(o))}),l=n+"Params",e="function"==typeof t.modules.columnCalcs[l]?t.modules.columnCalcs[l](a,o):t.modules.columnCalcs[l],t.setFieldValue(i,t.modules.columnCalcs[n](a,o,e)))}),i},ColumnCalcs.prototype.hasTopCalcs=function(){return!!this.topCalcs.length},ColumnCalcs.prototype.hasBottomCalcs=function(){return!!this.botCalcs.length},ColumnCalcs.prototype.redraw=function(){this.topRow&&this.topRow.normalizeHeight(!0),this.botRow&&this.botRow.normalizeHeight(!0)},ColumnCalcs.prototype.getResults=function(){var t,o=this,e={};return this.table.options.groupBy&&this.table.modExists("groupRows")?(t=this.table.modules.groupRows.getGroups(!0),t.forEach(function(t){e[t.getKey()]=o.getGroupResults(t)})):e={top:this.topRow?this.topRow.getData():{},bottom:this.botRow?this.botRow.getData():{}},e},ColumnCalcs.prototype.getGroupResults=function(t){var o=this,e=t._getSelf(),l=t.getSubGroups(),i={};return l.forEach(function(t){i[t.getKey()]=o.getGroupResults(t)}),{top:e.calcs.top?e.calcs.top.getData():{},bottom:e.calcs.bottom?e.calcs.bottom.getData():{},groups:i}},ColumnCalcs.prototype.calculations={avg:function(t,o,e){var l=0,i=void 0!==e.precision?e.precision:2;return t.length&&(l=t.reduce(function(t,o){return o=Number(o),t+o}),l/=t.length,l=!1!==i?l.toFixed(i):l),parseFloat(l).toString()},max:function(t,o,e){var l=null,i=void 0!==e.precision&&e.precision;return t.forEach(function(t){((t=Number(t))>l||null===l)&&(l=t)}),null!==l?!1!==i?l.toFixed(i):l:""},min:function(t,o,e){var l=null,i=void 0!==e.precision&&e.precision;return t.forEach(function(t){((t=Number(t))<l||null===l)&&(l=t)}),null!==l?!1!==i?l.toFixed(i):l:""},sum:function(t,o,e){var l=0,i=void 0!==e.precision&&e.precision;return t.length&&t.forEach(function(t){t=Number(t),l+=isNaN(t)?0:Number(t)}),!1!==i?l.toFixed(i):l},concat:function(t,o,e){var l=0;return t.length&&(l=t.reduce(function(t,o){return String(t)+String(o)})),l},count:function(t,o,e){var l=0;return t.length&&t.forEach(function(t){t&&l++}),l}},Tabulator.prototype.registerModule("columnCalcs",ColumnCalcs);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Clipboard = function Clipboard(table) {
- this.table = table;
- this.mode = true;
-
- this.pasteParser = function () {};
- this.pasteAction = function () {};
- this.customSelection = false;
- this.rowRange = false;
- this.blocked = true; //block copy actions not originating from this command
-};
-
-Clipboard.prototype.initialize = function () {
- var _this = this;
-
- this.mode = this.table.options.clipboard;
-
- this.rowRange = this.table.options.clipboardCopyRowRange;
-
- if (this.mode === true || this.mode === "copy") {
- this.table.element.addEventListener("copy", function (e) {
- var plain, html, list;
-
- if (!_this.blocked) {
- e.preventDefault();
-
- if (_this.customSelection) {
- plain = _this.customSelection;
-
- if (_this.table.options.clipboardCopyFormatter) {
- plain = _this.table.options.clipboardCopyFormatter("plain", plain);
- }
- } else {
-
- var list = _this.table.modules.export.generateExportList(_this.rowRange, _this.table.options.clipboardCopyStyled, _this.table.options.clipboardCopyConfig, "clipboard");
-
- html = _this.table.modules.export.genereateHTMLTable(list);
- plain = html ? _this.generatePlainContent(list) : "";
-
- if (_this.table.options.clipboardCopyFormatter) {
- plain = _this.table.options.clipboardCopyFormatter("plain", plain);
- html = _this.table.options.clipboardCopyFormatter("html", html);
- }
- }
-
- if (window.clipboardData && window.clipboardData.setData) {
- window.clipboardData.setData('Text', plain);
- } else if (e.clipboardData && e.clipboardData.setData) {
- e.clipboardData.setData('text/plain', plain);
- if (html) {
- e.clipboardData.setData('text/html', html);
- }
- } else if (e.originalEvent && e.originalEvent.clipboardData.setData) {
- e.originalEvent.clipboardData.setData('text/plain', plain);
- if (html) {
- e.originalEvent.clipboardData.setData('text/html', html);
- }
- }
-
- _this.table.options.clipboardCopied.call(_this.table, plain, html);
-
- _this.reset();
- }
- });
- }
-
- if (this.mode === true || this.mode === "paste") {
- this.table.element.addEventListener("paste", function (e) {
- _this.paste(e);
- });
- }
-
- this.setPasteParser(this.table.options.clipboardPasteParser);
- this.setPasteAction(this.table.options.clipboardPasteAction);
-};
-
-Clipboard.prototype.reset = function () {
- this.blocked = false;
- this.originalSelectionText = "";
-};
-
-Clipboard.prototype.generatePlainContent = function (list) {
- var output = [];
-
- list.forEach(function (row) {
- var rowData = [];
-
- row.columns.forEach(function (col) {
- var value = "";
-
- if (col) {
-
- if (row.type === "group") {
- col.value = col.component.getKey();
- }
-
- switch (_typeof(col.value)) {
- case "object":
- value = JSON.stringify(col.value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = col.value;
- }
- }
-
- rowData.push(value);
- });
-
- output.push(rowData.join("\t"));
- });
-
- return output.join("\n");
-};
-
-Clipboard.prototype.copy = function (range, internal) {
- var range, sel, textRange;
- this.blocked = false;
- this.customSelection = false;
-
- if (this.mode === true || this.mode === "copy") {
-
- this.rowRange = range || this.table.options.clipboardCopyRowRange;
-
- if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
- range = document.createRange();
- range.selectNodeContents(this.table.element);
- sel = window.getSelection();
-
- if (sel.toString() && internal) {
- this.customSelection = sel.toString();
- }
-
- sel.removeAllRanges();
- sel.addRange(range);
- } else if (typeof document.selection != "undefined" && typeof document.body.createTextRange != "undefined") {
- textRange = document.body.createTextRange();
- textRange.moveToElementText(this.table.element);
- textRange.select();
- }
-
- document.execCommand('copy');
-
- if (sel) {
- sel.removeAllRanges();
- }
- }
-};
-
-//PASTE EVENT HANDLING
-
-Clipboard.prototype.setPasteAction = function (action) {
-
- switch (typeof action === "undefined" ? "undefined" : _typeof(action)) {
- case "string":
- this.pasteAction = this.pasteActions[action];
-
- if (!this.pasteAction) {
- console.warn("Clipboard Error - No such paste action found:", action);
- }
- break;
-
- case "function":
- this.pasteAction = action;
- break;
- }
-};
-
-Clipboard.prototype.setPasteParser = function (parser) {
- switch (typeof parser === "undefined" ? "undefined" : _typeof(parser)) {
- case "string":
- this.pasteParser = this.pasteParsers[parser];
-
- if (!this.pasteParser) {
- console.warn("Clipboard Error - No such paste parser found:", parser);
- }
- break;
-
- case "function":
- this.pasteParser = parser;
- break;
- }
-};
-
-Clipboard.prototype.paste = function (e) {
- var data, rowData, rows;
-
- if (this.checkPaseOrigin(e)) {
-
- data = this.getPasteData(e);
-
- rowData = this.pasteParser.call(this, data);
-
- if (rowData) {
- e.preventDefault();
-
- if (this.table.modExists("mutator")) {
- rowData = this.mutateData(rowData);
- }
-
- rows = this.pasteAction.call(this, rowData);
- this.table.options.clipboardPasted.call(this.table, data, rowData, rows);
- } else {
- this.table.options.clipboardPasteError.call(this.table, data);
- }
- }
-};
-
-Clipboard.prototype.mutateData = function (data) {
- var self = this,
- output = [];
-
- if (Array.isArray(data)) {
- data.forEach(function (row) {
- output.push(self.table.modules.mutator.transformRow(row, "clipboard"));
- });
- } else {
- output = data;
- }
-
- return output;
-};
-
-Clipboard.prototype.checkPaseOrigin = function (e) {
- var valid = true;
-
- if (e.target.tagName != "DIV" || this.table.modules.edit.currentCell) {
- valid = false;
- }
-
- return valid;
-};
-
-Clipboard.prototype.getPasteData = function (e) {
- var data;
-
- if (window.clipboardData && window.clipboardData.getData) {
- data = window.clipboardData.getData('Text');
- } else if (e.clipboardData && e.clipboardData.getData) {
- data = e.clipboardData.getData('text/plain');
- } else if (e.originalEvent && e.originalEvent.clipboardData.getData) {
- data = e.originalEvent.clipboardData.getData('text/plain');
- }
-
- return data;
-};
-
-Clipboard.prototype.pasteParsers = {
- table: function table(clipboard) {
- var data = [],
- success = false,
- headerFindSuccess = true,
- columns = this.table.columnManager.columns,
- columnMap = [],
- rows = [];
-
- //get data from clipboard into array of columns and rows.
- clipboard = clipboard.split("\n");
-
- clipboard.forEach(function (row) {
- data.push(row.split("\t"));
- });
-
- if (data.length && !(data.length === 1 && data[0].length < 2)) {
- success = true;
-
- //check if headers are present by title
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.definition.title && value.trim() && column.definition.title.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- //check if column headers are present by field
- if (!headerFindSuccess) {
- headerFindSuccess = true;
- columnMap = [];
-
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.field && value.trim() && column.field.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- if (!headerFindSuccess) {
- columnMap = this.table.columnManager.columnsByIndex;
- }
- }
-
- //remove header row if found
- if (headerFindSuccess) {
- data.shift();
- }
-
- data.forEach(function (item) {
- var row = {};
-
- item.forEach(function (value, i) {
- if (columnMap[i]) {
- row[columnMap[i].field] = value;
- }
- });
-
- rows.push(row);
- });
-
- return rows;
- } else {
- return false;
- }
- }
-};
-
-Clipboard.prototype.pasteActions = {
- replace: function replace(rows) {
- return this.table.setData(rows);
- },
- update: function update(rows) {
- return this.table.updateOrAddData(rows);
- },
- insert: function insert(rows) {
- return this.table.addData(rows);
- }
-};
-
-Tabulator.prototype.registerModule("clipboard", Clipboard);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Clipboard=function(t){this.table=t,this.mode=!0,this.pasteParser=function(){},this.pasteAction=function(){},this.customSelection=!1,this.rowRange=!1,this.blocked=!0};Clipboard.prototype.initialize=function(){var t=this;this.mode=this.table.options.clipboard,this.rowRange=this.table.options.clipboardCopyRowRange,!0!==this.mode&&"copy"!==this.mode||this.table.element.addEventListener("copy",function(e){var a,o,i;if(!t.blocked){if(e.preventDefault(),t.customSelection)a=t.customSelection,t.table.options.clipboardCopyFormatter&&(a=t.table.options.clipboardCopyFormatter("plain",a));else{var i=t.table.modules.export.generateExportList(t.rowRange,t.table.options.clipboardCopyStyled,t.table.options.clipboardCopyConfig,"clipboard");o=t.table.modules.export.genereateHTMLTable(i),a=o?t.generatePlainContent(i):"",t.table.options.clipboardCopyFormatter&&(a=t.table.options.clipboardCopyFormatter("plain",a),o=t.table.options.clipboardCopyFormatter("html",o))}window.clipboardData&&window.clipboardData.setData?window.clipboardData.setData("Text",a):e.clipboardData&&e.clipboardData.setData?(e.clipboardData.setData("text/plain",a),o&&e.clipboardData.setData("text/html",o)):e.originalEvent&&e.originalEvent.clipboardData.setData&&(e.originalEvent.clipboardData.setData("text/plain",a),o&&e.originalEvent.clipboardData.setData("text/html",o)),t.table.options.clipboardCopied.call(t.table,a,o),t.reset()}}),!0!==this.mode&&"paste"!==this.mode||this.table.element.addEventListener("paste",function(e){t.paste(e)}),this.setPasteParser(this.table.options.clipboardPasteParser),this.setPasteAction(this.table.options.clipboardPasteAction)},Clipboard.prototype.reset=function(){this.blocked=!1,this.originalSelectionText=""},Clipboard.prototype.generatePlainContent=function(t){var e=[];return t.forEach(function(t){var a=[];t.columns.forEach(function(e){var o="";if(e)switch("group"===t.type&&(e.value=e.component.getKey()),_typeof(e.value)){case"object":o=JSON.stringify(e.value);break;case"undefined":case"null":o="";break;default:o=e.value}a.push(o)}),e.push(a.join("\t"))}),e.join("\n")},Clipboard.prototype.copy=function(t,e){var t,a,o;this.blocked=!1,this.customSelection=!1,!0!==this.mode&&"copy"!==this.mode||(this.rowRange=t||this.table.options.clipboardCopyRowRange,void 0!==window.getSelection&&void 0!==document.createRange?(t=document.createRange(),t.selectNodeContents(this.table.element),a=window.getSelection(),a.toString()&&e&&(this.customSelection=a.toString()),a.removeAllRanges(),a.addRange(t)):void 0!==document.selection&&void 0!==document.body.createTextRange&&(o=document.body.createTextRange(),o.moveToElementText(this.table.element),o.select()),document.execCommand("copy"),a&&a.removeAllRanges())},Clipboard.prototype.setPasteAction=function(t){switch(void 0===t?"undefined":_typeof(t)){case"string":this.pasteAction=this.pasteActions[t],this.pasteAction||console.warn("Clipboard Error - No such paste action found:",t);break;case"function":this.pasteAction=t}},Clipboard.prototype.setPasteParser=function(t){switch(void 0===t?"undefined":_typeof(t)){case"string":this.pasteParser=this.pasteParsers[t],this.pasteParser||console.warn("Clipboard Error - No such paste parser found:",t);break;case"function":this.pasteParser=t}},Clipboard.prototype.paste=function(t){var e,a,o;this.checkPaseOrigin(t)&&(e=this.getPasteData(t),a=this.pasteParser.call(this,e),a?(t.preventDefault(),this.table.modExists("mutator")&&(a=this.mutateData(a)),o=this.pasteAction.call(this,a),this.table.options.clipboardPasted.call(this.table,e,a,o)):this.table.options.clipboardPasteError.call(this.table,e))},Clipboard.prototype.mutateData=function(t){var e=this,a=[];return Array.isArray(t)?t.forEach(function(t){a.push(e.table.modules.mutator.transformRow(t,"clipboard"))}):a=t,a},Clipboard.prototype.checkPaseOrigin=function(t){var e=!0;return("DIV"!=t.target.tagName||this.table.modules.edit.currentCell)&&(e=!1),e},Clipboard.prototype.getPasteData=function(t){var e;return window.clipboardData&&window.clipboardData.getData?e=window.clipboardData.getData("Text"):t.clipboardData&&t.clipboardData.getData?e=t.clipboardData.getData("text/plain"):t.originalEvent&&t.originalEvent.clipboardData.getData&&(e=t.originalEvent.clipboardData.getData("text/plain")),e},Clipboard.prototype.pasteParsers={table:function(t){var e=[],a=!0,o=this.table.columnManager.columns,i=[],n=[];return t=t.split("\n"),t.forEach(function(t){e.push(t.split("\t"))}),!(!e.length||1===e.length&&e[0].length<2)&&(!0,e[0].forEach(function(t){var e=o.find(function(e){return t&&e.definition.title&&t.trim()&&e.definition.title.trim()===t.trim()});e?i.push(e):a=!1}),a||(a=!0,i=[],e[0].forEach(function(t){var e=o.find(function(e){return t&&e.field&&t.trim()&&e.field.trim()===t.trim()});e?i.push(e):a=!1}),a||(i=this.table.columnManager.columnsByIndex)),a&&e.shift(),e.forEach(function(t){var e={};t.forEach(function(t,a){i[a]&&(e[i[a].field]=t)}),n.push(e)}),n)}},Clipboard.prototype.pasteActions={replace:function(t){return this.table.setData(t)},update:function(t){return this.table.updateOrAddData(t)},insert:function(t){return this.table.addData(t)}},Tabulator.prototype.registerModule("clipboard",Clipboard);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var DataTree = function DataTree(table) {
- this.table = table;
- this.indent = 10;
- this.field = "";
- this.collapseEl = null;
- this.expandEl = null;
- this.branchEl = null;
- this.elementField = false;
-
- this.startOpen = function () {};
-
- this.displayIndex = 0;
-};
-
-DataTree.prototype.initialize = function () {
- var dummyEl = null,
- firstCol = this.table.columnManager.getFirstVisibileColumn(),
- options = this.table.options;
-
- this.field = options.dataTreeChildField;
- this.indent = options.dataTreeChildIndent;
- this.elementField = options.dataTreeElementColumn || (firstCol ? firstCol.field : false);
-
- if (options.dataTreeBranchElement) {
-
- if (options.dataTreeBranchElement === true) {
- this.branchEl = document.createElement("div");
- this.branchEl.classList.add("tabulator-data-tree-branch");
- } else {
- if (typeof options.dataTreeBranchElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeBranchElement;
- this.branchEl = dummyEl.firstChild;
- } else {
- this.branchEl = options.dataTreeBranchElement;
- }
- }
- }
-
- if (options.dataTreeCollapseElement) {
- if (typeof options.dataTreeCollapseElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeCollapseElement;
- this.collapseEl = dummyEl.firstChild;
- } else {
- this.collapseEl = options.dataTreeCollapseElement;
- }
- } else {
- this.collapseEl = document.createElement("div");
- this.collapseEl.classList.add("tabulator-data-tree-control");
- this.collapseEl.tabIndex = 0;
- this.collapseEl.innerHTML = "<div class='tabulator-data-tree-control-collapse'></div>";
- }
-
- if (options.dataTreeExpandElement) {
- if (typeof options.dataTreeExpandElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeExpandElement;
- this.expandEl = dummyEl.firstChild;
- } else {
- this.expandEl = options.dataTreeExpandElement;
- }
- } else {
- this.expandEl = document.createElement("div");
- this.expandEl.classList.add("tabulator-data-tree-control");
- this.expandEl.tabIndex = 0;
- this.expandEl.innerHTML = "<div class='tabulator-data-tree-control-expand'></div>";
- }
-
- switch (_typeof(options.dataTreeStartExpanded)) {
- case "boolean":
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded;
- };
- break;
-
- case "function":
- this.startOpen = options.dataTreeStartExpanded;
- break;
-
- default:
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded[index];
- };
- break;
- }
-};
-
-DataTree.prototype.initializeRow = function (row) {
- var childArray = row.getData()[this.field];
- var isArray = Array.isArray(childArray);
-
- var children = isArray || !isArray && (typeof childArray === "undefined" ? "undefined" : _typeof(childArray)) === "object" && childArray !== null;
-
- if (!children && row.modules.dataTree && row.modules.dataTree.branchEl) {
- row.modules.dataTree.branchEl.parentNode.removeChild(row.modules.dataTree.branchEl);
- }
-
- if (!children && row.modules.dataTree && row.modules.dataTree.controlEl) {
- row.modules.dataTree.controlEl.parentNode.removeChild(row.modules.dataTree.controlEl);
- }
-
- row.modules.dataTree = {
- index: row.modules.dataTree ? row.modules.dataTree.index : 0,
- open: children ? row.modules.dataTree ? row.modules.dataTree.open : this.startOpen(row.getComponent(), 0) : false,
- controlEl: row.modules.dataTree && children ? row.modules.dataTree.controlEl : false,
- branchEl: row.modules.dataTree && children ? row.modules.dataTree.branchEl : false,
- parent: row.modules.dataTree ? row.modules.dataTree.parent : false,
- children: children
- };
-};
-
-DataTree.prototype.layoutRow = function (row) {
- var cell = this.elementField ? row.getCell(this.elementField) : row.getCells()[0],
- el = cell.getElement(),
- config = row.modules.dataTree;
-
- if (config.branchEl) {
- if (config.branchEl.parentNode) {
- config.branchEl.parentNode.removeChild(config.branchEl);
- }
- config.branchEl = false;
- }
-
- if (config.controlEl) {
- if (config.controlEl.parentNode) {
- config.controlEl.parentNode.removeChild(config.controlEl);
- }
- config.controlEl = false;
- }
-
- this.generateControlElement(row, el);
-
- row.element.classList.add("tabulator-tree-level-" + config.index);
-
- if (config.index) {
- if (this.branchEl) {
- config.branchEl = this.branchEl.cloneNode(true);
- el.insertBefore(config.branchEl, el.firstChild);
- config.branchEl.style.marginLeft = (config.branchEl.offsetWidth + config.branchEl.style.marginRight) * (config.index - 1) + config.index * this.indent + "px";
- } else {
- el.style.paddingLeft = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-left')) + config.index * this.indent + "px";
- }
- }
-};
-
-DataTree.prototype.generateControlElement = function (row, el) {
- var _this = this;
-
- var config = row.modules.dataTree,
- el = el || row.getCells()[0].getElement(),
- oldControl = config.controlEl;
-
- if (config.children !== false) {
-
- if (config.open) {
- config.controlEl = this.collapseEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this.collapseRow(row);
- });
- } else {
- config.controlEl = this.expandEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this.expandRow(row);
- });
- }
-
- config.controlEl.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
-
- if (oldControl && oldControl.parentNode === el) {
- oldControl.parentNode.replaceChild(config.controlEl, oldControl);
- } else {
- el.insertBefore(config.controlEl, el.firstChild);
- }
- }
-};
-
-DataTree.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-DataTree.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-DataTree.prototype.getRows = function (rows) {
- var _this2 = this;
-
- var output = [];
-
- rows.forEach(function (row, i) {
- var config, children;
-
- output.push(row);
-
- if (row instanceof Row) {
-
- config = row.modules.dataTree.children;
-
- if (!config.index && config.children !== false) {
- children = _this2.getChildren(row);
-
- children.forEach(function (child) {
- output.push(child);
- });
- }
- }
- });
-
- return output;
-};
-
-DataTree.prototype.getChildren = function (row) {
- var _this3 = this;
-
- var config = row.modules.dataTree,
- children = [],
- output = [];
-
- if (config.children !== false && config.open) {
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- if (this.table.modExists("sort")) {
- this.table.modules.sort.sort(children);
- }
-
- children.forEach(function (child) {
- output.push(child);
-
- var subChildren = _this3.getChildren(child);
-
- subChildren.forEach(function (sub) {
- output.push(sub);
- });
- });
- }
-
- return output;
-};
-
-DataTree.prototype.generateChildren = function (row) {
- var _this4 = this;
-
- var children = [];
-
- var childArray = row.getData()[this.field];
-
- if (!Array.isArray(childArray)) {
- childArray = [childArray];
- }
-
- childArray.forEach(function (childData) {
- var childRow = new Row(childData || {}, _this4.table.rowManager);
- childRow.modules.dataTree.index = row.modules.dataTree.index + 1;
- childRow.modules.dataTree.parent = row;
- if (childRow.modules.dataTree.children) {
- childRow.modules.dataTree.open = _this4.startOpen(childRow.getComponent(), childRow.modules.dataTree.index);
- }
- children.push(childRow);
- });
-
- return children;
-};
-
-DataTree.prototype.expandRow = function (row, silent) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = true;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowExpanded(row.getComponent(), row.modules.dataTree.index);
- }
-};
-
-DataTree.prototype.collapseRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = false;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowCollapsed(row.getComponent(), row.modules.dataTree.index);
- }
-};
-
-DataTree.prototype.toggleRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- if (config.open) {
- this.collapseRow(row);
- } else {
- this.expandRow(row);
- }
- }
-};
-
-DataTree.prototype.getTreeParent = function (row) {
- return row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false;
-};
-
-DataTree.prototype.getFilteredTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [],
- children;
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow);
- }
- });
- }
-
- return output;
-};
-
-DataTree.prototype.rowDelete = function (row) {
- var parent = row.modules.dataTree.parent,
- childIndex;
-
- if (parent) {
- childIndex = this.findChildIndex(row, parent);
-
- if (childIndex !== false) {
- parent.data[this.field].splice(childIndex, 1);
- }
-
- if (!parent.data[this.field].length) {
- delete parent.data[this.field];
- }
-
- this.initializeRow(parent);
- this.layoutRow(parent);
- }
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-};
-
-DataTree.prototype.addTreeChildRow = function (row, data, top, index) {
- var childIndex = false;
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (!Array.isArray(row.data[this.field])) {
- row.data[this.field] = [];
-
- row.modules.dataTree.open = this.startOpen(row.getComponent(), row.modules.dataTree.index);
- }
-
- if (typeof index !== "undefined") {
- childIndex = this.findChildIndex(index, row);
-
- if (childIndex !== false) {
- row.data[this.field].splice(top ? childIndex : childIndex + 1, 0, data);
- }
- }
-
- if (childIndex === false) {
- if (top) {
- row.data[this.field].unshift(data);
- } else {
- row.data[this.field].push(data);
- }
- }
-
- this.initializeRow(row);
- this.layoutRow(row);
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-};
-
-DataTree.prototype.findChildIndex = function (subject, parent) {
- var _this5 = this;
-
- var match = false;
-
- if ((typeof subject === "undefined" ? "undefined" : _typeof(subject)) == "object") {
-
- if (subject instanceof Row) {
- //subject is row element
- match = subject.data;
- } else if (subject instanceof RowComponent) {
- //subject is public row component
- match = subject._getSelf().data;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
- if (parent.modules.dataTree) {
- match = parent.modules.dataTree.children.find(function (childRow) {
- return childRow instanceof Row ? childRow.element === subject : false;
- });
-
- if (match) {
- match = match.data;
- }
- }
- }
- } else if (typeof subject == "undefined" || subject === null) {
- match = false;
- } else {
- //subject should be treated as the index of the row
- match = parent.data[this.field].find(function (row) {
- return row.data[_this5.table.options.index] == subject;
- });
- }
-
- if (match) {
-
- if (Array.isArray(parent.data[this.field])) {
- match = parent.data[this.field].indexOf(match);
- }
-
- if (match == -1) {
- match = false;
- }
- }
-
- //catch all for any other type of input
-
- return match;
-};
-
-DataTree.prototype.getTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [];
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- config.children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow.getComponent());
- }
- });
- }
-
- return output;
-};
-
-DataTree.prototype.checkForRestyle = function (cell) {
- if (!cell.row.cells.indexOf(cell)) {
- cell.row.reinitialize();
- }
-};
-
-DataTree.prototype.getChildField = function () {
- return this.field;
-};
-
-DataTree.prototype.redrawNeeded = function (data) {
- return (this.field ? typeof data[this.field] !== "undefined" : false) || (this.elementField ? typeof data[this.elementField] !== "undefined" : false);
-};
-
-Tabulator.prototype.registerModule("dataTree", DataTree);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},DataTree=function(e){this.table=e,this.indent=10,this.field="",this.collapseEl=null,this.expandEl=null,this.branchEl=null,this.elementField=!1,this.startOpen=function(){},this.displayIndex=0};DataTree.prototype.initialize=function(){var e=null,t=this.table.columnManager.getFirstVisibileColumn(),a=this.table.options;switch(this.field=a.dataTreeChildField,this.indent=a.dataTreeChildIndent,this.elementField=a.dataTreeElementColumn||!!t&&t.field,a.dataTreeBranchElement&&(!0===a.dataTreeBranchElement?(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch")):"string"==typeof a.dataTreeBranchElement?(e=document.createElement("div"),e.innerHTML=a.dataTreeBranchElement,this.branchEl=e.firstChild):this.branchEl=a.dataTreeBranchElement),a.dataTreeCollapseElement?"string"==typeof a.dataTreeCollapseElement?(e=document.createElement("div"),e.innerHTML=a.dataTreeCollapseElement,this.collapseEl=e.firstChild):this.collapseEl=a.dataTreeCollapseElement:(this.collapseEl=document.createElement("div"),this.collapseEl.classList.add("tabulator-data-tree-control"),this.collapseEl.tabIndex=0,this.collapseEl.innerHTML="<div class='tabulator-data-tree-control-collapse'></div>"),a.dataTreeExpandElement?"string"==typeof a.dataTreeExpandElement?(e=document.createElement("div"),e.innerHTML=a.dataTreeExpandElement,this.expandEl=e.firstChild):this.expandEl=a.dataTreeExpandElement:(this.expandEl=document.createElement("div"),this.expandEl.classList.add("tabulator-data-tree-control"),this.expandEl.tabIndex=0,this.expandEl.innerHTML="<div class='tabulator-data-tree-control-expand'></div>"),_typeof(a.dataTreeStartExpanded)){case"boolean":this.startOpen=function(e,t){return a.dataTreeStartExpanded};break;case"function":this.startOpen=a.dataTreeStartExpanded;break;default:this.startOpen=function(e,t){return a.dataTreeStartExpanded[t]}}},DataTree.prototype.initializeRow=function(e){var t=e.getData()[this.field],a=Array.isArray(t),n=a||!a&&"object"===(void 0===t?"undefined":_typeof(t))&&null!==t;!n&&e.modules.dataTree&&e.modules.dataTree.branchEl&&e.modules.dataTree.branchEl.parentNode.removeChild(e.modules.dataTree.branchEl),!n&&e.modules.dataTree&&e.modules.dataTree.controlEl&&e.modules.dataTree.controlEl.parentNode.removeChild(e.modules.dataTree.controlEl),e.modules.dataTree={index:e.modules.dataTree?e.modules.dataTree.index:0,open:!!n&&(e.modules.dataTree?e.modules.dataTree.open:this.startOpen(e.getComponent(),0)),controlEl:!(!e.modules.dataTree||!n)&&e.modules.dataTree.controlEl,branchEl:!(!e.modules.dataTree||!n)&&e.modules.dataTree.branchEl,parent:!!e.modules.dataTree&&e.modules.dataTree.parent,children:n}},DataTree.prototype.layoutRow=function(e){var t=this.elementField?e.getCell(this.elementField):e.getCells()[0],a=t.getElement(),n=e.modules.dataTree;n.branchEl&&(n.branchEl.parentNode&&n.branchEl.parentNode.removeChild(n.branchEl),n.branchEl=!1),n.controlEl&&(n.controlEl.parentNode&&n.controlEl.parentNode.removeChild(n.controlEl),n.controlEl=!1),this.generateControlElement(e,a),e.element.classList.add("tabulator-tree-level-"+n.index),n.index&&(this.branchEl?(n.branchEl=this.branchEl.cloneNode(!0),a.insertBefore(n.branchEl,a.firstChild),n.branchEl.style.marginLeft=(n.branchEl.offsetWidth+n.branchEl.style.marginRight)*(n.index-1)+n.index*this.indent+"px"):a.style.paddingLeft=parseInt(window.getComputedStyle(a,null).getPropertyValue("padding-left"))+n.index*this.indent+"px")},DataTree.prototype.generateControlElement=function(e,t){var a=this,n=e.modules.dataTree,t=t||e.getCells()[0].getElement(),r=n.controlEl;!1!==n.children&&(n.open?(n.controlEl=this.collapseEl.cloneNode(!0),n.controlEl.addEventListener("click",function(t){t.stopPropagation(),a.collapseRow(e)})):(n.controlEl=this.expandEl.cloneNode(!0),n.controlEl.addEventListener("click",function(t){t.stopPropagation(),a.expandRow(e)})),n.controlEl.addEventListener("mousedown",function(e){e.stopPropagation()}),r&&r.parentNode===t?r.parentNode.replaceChild(n.controlEl,r):t.insertBefore(n.controlEl,t.firstChild))},DataTree.prototype.setDisplayIndex=function(e){this.displayIndex=e},DataTree.prototype.getDisplayIndex=function(){return this.displayIndex},DataTree.prototype.getRows=function(e){var t=this,a=[];return e.forEach(function(e,n){var r,l;a.push(e),e instanceof Row&&(r=e.modules.dataTree.children,r.index||!1===r.children||(l=t.getChildren(e),l.forEach(function(e){a.push(e)})))}),a},DataTree.prototype.getChildren=function(e){var t=this,a=e.modules.dataTree,n=[],r=[];return!1!==a.children&&a.open&&(Array.isArray(a.children)||(a.children=this.generateChildren(e)),n=this.table.modExists("filter")?this.table.modules.filter.filter(a.children):a.children,this.table.modExists("sort")&&this.table.modules.sort.sort(n),n.forEach(function(e){r.push(e),t.getChildren(e).forEach(function(e){r.push(e)})})),r},DataTree.prototype.generateChildren=function(e){var t=this,a=[],n=e.getData()[this.field];return Array.isArray(n)||(n=[n]),n.forEach(function(n){var r=new Row(n||{},t.table.rowManager);r.modules.dataTree.index=e.modules.dataTree.index+1,r.modules.dataTree.parent=e,r.modules.dataTree.children&&(r.modules.dataTree.open=t.startOpen(r.getComponent(),r.modules.dataTree.index)),a.push(r)}),a},DataTree.prototype.expandRow=function(e,t){var a=e.modules.dataTree;!1!==a.children&&(a.open=!0,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowExpanded(e.getComponent(),e.modules.dataTree.index))},DataTree.prototype.collapseRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open=!1,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowCollapsed(e.getComponent(),e.modules.dataTree.index))},DataTree.prototype.toggleRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open?this.collapseRow(e):this.expandRow(e))},DataTree.prototype.getTreeParent=function(e){return!!e.modules.dataTree.parent&&e.modules.dataTree.parent.getComponent()},DataTree.prototype.getFilteredTreeChildren=function(e){var t,a=e.modules.dataTree,n=[];return a.children&&(Array.isArray(a.children)||(a.children=this.generateChildren(e)),t=this.table.modExists("filter")?this.table.modules.filter.filter(a.children):a.children,t.forEach(function(e){e instanceof Row&&n.push(e)})),n},DataTree.prototype.rowDelete=function(e){var t,a=e.modules.dataTree.parent;a&&(t=this.findChildIndex(e,a),!1!==t&&a.data[this.field].splice(t,1),a.data[this.field].length||delete a.data[this.field],this.initializeRow(a),this.layoutRow(a)),this.table.rowManager.refreshActiveData("tree",!1,!0)},DataTree.prototype.addTreeChildRow=function(e,t,a,n){var r=!1;"string"==typeof t&&(t=JSON.parse(t)),Array.isArray(e.data[this.field])||(e.data[this.field]=[],e.modules.dataTree.open=this.startOpen(e.getComponent(),e.modules.dataTree.index)),void 0!==n&&!1!==(r=this.findChildIndex(n,e))&&e.data[this.field].splice(a?r:r+1,0,t),!1===r&&(a?e.data[this.field].unshift(t):e.data[this.field].push(t)),this.initializeRow(e),this.layoutRow(e),this.table.rowManager.refreshActiveData("tree",!1,!0)},DataTree.prototype.findChildIndex=function(e,t){var a=this,n=!1;return"object"==(void 0===e?"undefined":_typeof(e))?e instanceof Row?n=e.data:e instanceof RowComponent?n=e._getSelf().data:"undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&t.modules.dataTree&&(n=t.modules.dataTree.children.find(function(t){return t instanceof Row&&t.element===e}))&&(n=n.data):n=void 0!==e&&null!==e&&t.data[this.field].find(function(t){return t.data[a.table.options.index]==e}),n&&(Array.isArray(t.data[this.field])&&(n=t.data[this.field].indexOf(n)),-1==n&&(n=!1)),n},DataTree.prototype.getTreeChildren=function(e){var t=e.modules.dataTree,a=[];return t.children&&(Array.isArray(t.children)||(t.children=this.generateChildren(e)),t.children.forEach(function(e){e instanceof Row&&a.push(e.getComponent())})),a},DataTree.prototype.checkForRestyle=function(e){e.row.cells.indexOf(e)||e.row.reinitialize()},DataTree.prototype.getChildField=function(){return this.field},DataTree.prototype.redrawNeeded=function(e){return!!this.field&&void 0!==e[this.field]||!!this.elementField&&void 0!==e[this.elementField]},Tabulator.prototype.registerModule("dataTree",DataTree);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Download = function Download(table) {
- this.table = table; //hold Tabulator object
-};
-
-//trigger file download
-Download.prototype.download = function (type, filename, options, range, interceptCallback) {
- var self = this,
- downloadFunc = false;
-
- function buildLink(data, mime) {
- if (interceptCallback) {
- if (interceptCallback === true) {
- self.triggerDownload(data, mime, type, filename, true);
- } else {
- interceptCallback(data);
- }
- } else {
- self.triggerDownload(data, mime, type, filename);
- }
- }
-
- if (typeof type == "function") {
- downloadFunc = type;
- } else {
- if (self.downloaders[type]) {
- downloadFunc = self.downloaders[type];
- } else {
- console.warn("Download Error - No such download type found: ", type);
- }
- }
-
- if (downloadFunc) {
- var list = this.generateExportList(range);
-
- downloadFunc.call(this.table, list, options || {}, buildLink);
- }
-};
-
-Download.prototype.generateExportList = function (range) {
- var list = this.table.modules.export.generateExportList(this.table.options.downloadConfig, false, range || this.table.options.downloadRowRange, "download");
-
- //assign group header formatter
- var groupHeader = this.table.options.groupHeaderDownload;
-
- if (groupHeader && !Array.isArray(groupHeader)) {
- groupHeader = [groupHeader];
- }
-
- list.forEach(function (row) {
- var group;
-
- if (row.type === "group") {
- group = row.columns[0];
-
- if (groupHeader && groupHeader[row.indent]) {
- group.value = groupHeader[row.indent](group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);
- }
- }
- });
-
- return list;
-};
-
-Download.prototype.triggerDownload = function (data, mime, type, filename, newTab) {
- var element = document.createElement('a'),
- blob = new Blob([data], { type: mime }),
- filename = filename || "Tabulator." + (typeof type === "function" ? "txt" : type);
-
- blob = this.table.options.downloadReady.call(this.table, data, blob);
-
- if (blob) {
-
- if (newTab) {
- window.open(window.URL.createObjectURL(blob));
- } else {
- if (navigator.msSaveOrOpenBlob) {
- navigator.msSaveOrOpenBlob(blob, filename);
- } else {
- element.setAttribute('href', window.URL.createObjectURL(blob));
-
- //set file title
- element.setAttribute('download', filename);
-
- //trigger download
- element.style.display = 'none';
- document.body.appendChild(element);
- element.click();
-
- //remove temporary link element
- document.body.removeChild(element);
- }
- }
-
- if (this.table.options.downloadComplete) {
- this.table.options.downloadComplete();
- }
- }
-};
-
-Download.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "intercept":
- this.download(data.type, "", data.options, data.active, data.intercept);
- break;
- }
-};
-
-//downloaders
-Download.prototype.downloaders = {
- csv: function csv(list, options, setFileContents) {
- var delimiter = options && options.delimiter ? options.delimiter : ",",
- fileContents = [],
- headers = [];
-
- list.forEach(function (row) {
- var item = [];
-
- switch (row.type) {
- case "group":
- console.warn("Download Warning - CSV downloader cannot process row groups");
- break;
-
- case "calc":
- console.warn("Download Warning - CSV downloader cannot process column calculations");
- break;
-
- case "header":
- row.columns.forEach(function (col, i) {
- if (col && col.depth === 1) {
- headers[i] = typeof col.value == "undefined" || typeof col.value == "null" ? "" : col.value;
- }
- });
- break;
-
- case "row":
- row.columns.forEach(function (col) {
-
- if (col) {
-
- switch (_typeof(col.value)) {
- case "object":
- col.value = JSON.stringify(col.value);
- break;
-
- case "undefined":
- case "null":
- col.value = "";
- break;
- }
-
- item.push('"' + String(col.value).split('"').join('""') + '"');
- }
- });
-
- fileContents.push(item.join(delimiter));
- break;
- }
- });
-
- if (headers.length) {
- fileContents = [headers].concat(fileContents);
- }
-
- fileContents = fileContents.join("\n");
-
- if (options.bom) {
- fileContents = "\uFEFF" + fileContents;
- }
-
- setFileContents(fileContents, "text/csv");
- },
-
- json: function json(list, options, setFileContents) {
- var fileContents = [];
-
- list.forEach(function (row) {
- var item = {};
-
- switch (row.type) {
- case "header":
- break;
-
- case "group":
- console.warn("Download Warning - JSON downloader cannot process row groups");
- break;
-
- case "calc":
- console.warn("Download Warning - JSON downloader cannot process column calculations");
- break;
-
- case "row":
- row.columns.forEach(function (col) {
- if (col) {
- item[col.component.getField()] = col.value;
- }
- });
-
- fileContents.push(item);
- break;
- }
- });
-
- fileContents = JSON.stringify(fileContents, null, '\t');
-
- setFileContents(fileContents, "application/json");
- },
-
- pdf: function pdf(list, options, setFileContents) {
- var header = [],
- body = [],
- autoTableParams = {},
- rowGroupStyles = options.rowGroupStyles || {
- fontStyle: "bold",
- fontSize: 12,
- cellPadding: 6,
- fillColor: 220
- },
- rowCalcStyles = options.rowCalcStyles || {
- fontStyle: "bold",
- fontSize: 10,
- cellPadding: 4,
- fillColor: 232
- },
- jsPDFParams = options.jsPDF || {},
- title = options && options.title ? options.title : "";
-
- if (!jsPDFParams.orientation) {
- jsPDFParams.orientation = options.orientation || "landscape";
- }
-
- if (!jsPDFParams.unit) {
- jsPDFParams.unit = "pt";
- }
-
- //parse row list
- list.forEach(function (row) {
- var item = {};
-
- switch (row.type) {
- case "header":
- header.push(parseRow(row));
- break;
-
- case "group":
- body.push(parseRow(row, rowGroupStyles));
- break;
-
- case "calc":
- body.push(parseRow(row, rowCalcStyles));
- break;
-
- case "row":
- body.push(parseRow(row));
- break;
- }
- });
-
- function parseRow(row, styles) {
- var rowData = [];
-
- row.columns.forEach(function (col) {
- var cell;
-
- if (col) {
- switch (_typeof(col.value)) {
- case "object":
- col.value = JSON.stringify(col.value);
- break;
-
- case "undefined":
- case "null":
- col.value = "";
- break;
- }
-
- cell = {
- content: col.value,
- colSpan: col.width,
- rowSpan: col.height
- };
-
- if (styles) {
- cell.styles = styles;
- }
-
- rowData.push(cell);
- } else {
- rowData.push("");
- }
- });
-
- return rowData;
- }
-
- //configure PDF
- var doc = new jsPDF(jsPDFParams); //set document to landscape, better for most tables
-
- if (options && options.autoTable) {
- if (typeof options.autoTable === "function") {
- autoTableParams = options.autoTable(doc) || {};
- } else {
- autoTableParams = options.autoTable;
- }
- }
-
- if (title) {
- autoTableParams.addPageContent = function (data) {
- doc.text(title, 40, 30);
- };
- }
-
- autoTableParams.head = header;
- autoTableParams.body = body;
-
- doc.autoTable(autoTableParams);
-
- if (options && options.documentProcessing) {
- options.documentProcessing(doc);
- }
-
- setFileContents(doc.output("arraybuffer"), "application/pdf");
- },
-
- xlsx: function xlsx(list, options, setFileContents) {
- var self = this,
- sheetName = options.sheetName || "Sheet1",
- workbook = XLSX.utils.book_new(),
- output;
-
- workbook.SheetNames = [];
- workbook.Sheets = {};
-
- function generateSheet() {
- var rows = [],
- merges = [],
- worksheet = {},
- range = { s: { c: 0, r: 0 }, e: { c: list[0] ? list[0].columns.reduce(function (a, b) {
- return a + (b && b.width ? b.width : 1);
- }, 0) : 0, r: list.length } };
-
- //parse row list
- list.forEach(function (row, i) {
- var rowData = [];
-
- row.columns.forEach(function (col, j) {
-
- if (col) {
- rowData.push(!(col.value instanceof Date) && _typeof(col.value) === "object" ? JSON.stringify(col.value) : col.value);
-
- if (col.width > 1 || col.height > -1) {
- merges.push({ s: { r: i, c: j }, e: { r: i + col.height - 1, c: j + col.width - 1 } });
- }
- } else {
- rowData.push("");
- }
- });
-
- rows.push(rowData);
- });
-
- //convert rows to worksheet
- XLSX.utils.sheet_add_aoa(worksheet, rows);
-
- worksheet['!ref'] = XLSX.utils.encode_range(range);
-
- if (merges.length) {
- worksheet["!merges"] = merges;
- }
-
- return worksheet;
- }
-
- if (options.sheetOnly) {
- setFileContents(generateSheet());
- return;
- }
-
- if (options.sheets) {
- for (var sheet in options.sheets) {
-
- if (options.sheets[sheet] === true) {
- workbook.SheetNames.push(sheet);
- workbook.Sheets[sheet] = generateSheet();
- } else {
-
- workbook.SheetNames.push(sheet);
-
- this.table.modules.comms.send(options.sheets[sheet], "download", "intercept", {
- type: "xlsx",
- options: { sheetOnly: true },
- active: self.active,
- intercept: function intercept(data) {
- workbook.Sheets[sheet] = data;
- }
- });
- }
- }
- } else {
- workbook.SheetNames.push(sheetName);
- workbook.Sheets[sheetName] = generateSheet();
- }
-
- if (options.documentProcessing) {
- workbook = options.documentProcessing(workbook);
- }
-
- //convert workbook to binary array
- function s2ab(s) {
- var buf = new ArrayBuffer(s.length);
- var view = new Uint8Array(buf);
- for (var i = 0; i != s.length; ++i) {
- view[i] = s.charCodeAt(i) & 0xFF;
- }return buf;
- }
-
- output = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'binary' });
-
- setFileContents(s2ab(output), "application/octet-stream");
- },
-
- html: function html(list, options, setFileContents) {
- if (this.modExists("export", true)) {
- setFileContents(this.modules.export.genereateHTMLTable(list), "text/html");
- }
- }
-
-};
-
-Tabulator.prototype.registerModule("download", Download);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Download=function(e){this.table=e};Download.prototype.download=function(e,o,t,n,a){function r(t,n){a?!0===a?l.triggerDownload(t,n,e,o,!0):a(t):l.triggerDownload(t,n,e,o)}var l=this,s=!1;if("function"==typeof e?s=e:l.downloaders[e]?s=l.downloaders[e]:console.warn("Download Error - No such download type found: ",e),s){var i=this.generateExportList(n);s.call(this.table,i,t||{},r)}},Download.prototype.generateExportList=function(e){var o=this.table.modules.export.generateExportList(this.table.options.downloadConfig,!1,e||this.table.options.downloadRowRange,"download"),t=this.table.options.groupHeaderDownload;return t&&!Array.isArray(t)&&(t=[t]),o.forEach(function(e){var o;"group"===e.type&&(o=e.columns[0],t&&t[e.indent]&&(o.value=t[e.indent](o.value,e.component._group.getRowCount(),e.component._group.getData(),e.component)))}),o},Download.prototype.triggerDownload=function(e,o,t,n,a){var r=document.createElement("a"),l=new Blob([e],{type:o}),n=n||"Tabulator."+("function"==typeof t?"txt":t);(l=this.table.options.downloadReady.call(this.table,e,l))&&(a?window.open(window.URL.createObjectURL(l)):navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(l,n):(r.setAttribute("href",window.URL.createObjectURL(l)),r.setAttribute("download",n),r.style.display="none",document.body.appendChild(r),r.click(),document.body.removeChild(r)),this.table.options.downloadComplete&&this.table.options.downloadComplete())},Download.prototype.commsReceived=function(e,o,t){switch(o){case"intercept":this.download(t.type,"",t.options,t.active,t.intercept)}},Download.prototype.downloaders={csv:function(e,o,t){var n=o&&o.delimiter?o.delimiter:",",a=[],r=[];e.forEach(function(e){var o=[];switch(e.type){case"group":console.warn("Download Warning - CSV downloader cannot process row groups");break;case"calc":console.warn("Download Warning - CSV downloader cannot process column calculations");break;case"header":e.columns.forEach(function(e,o){e&&1===e.depth&&(r[o]=void 0===e.value||"null"==typeof e.value?"":e.value)});break;case"row":e.columns.forEach(function(e){if(e){switch(_typeof(e.value)){case"object":e.value=JSON.stringify(e.value);break;case"undefined":case"null":e.value=""}o.push('"'+String(e.value).split('"').join('""')+'"')}}),a.push(o.join(n))}}),r.length&&(a=[r].concat(a)),a=a.join("\n"),o.bom&&(a="\ufeff"+a),t(a,"text/csv")},json:function(e,o,t){var n=[];e.forEach(function(e){var o={};switch(e.type){case"header":break;case"group":console.warn("Download Warning - JSON downloader cannot process row groups");break;case"calc":console.warn("Download Warning - JSON downloader cannot process column calculations");break;case"row":e.columns.forEach(function(e){e&&(o[e.component.getField()]=e.value)}),n.push(o)}}),n=JSON.stringify(n,null,"\t"),t(n,"application/json")},pdf:function(e,o,t){function n(e,o){var t=[];return e.columns.forEach(function(e){var n;if(e){switch(_typeof(e.value)){case"object":e.value=JSON.stringify(e.value);break;case"undefined":case"null":e.value=""}n={content:e.value,colSpan:e.width,rowSpan:e.height},o&&(n.styles=o),t.push(n)}else t.push("")}),t}var a=[],r=[],l={},s=o.rowGroupStyles||{fontStyle:"bold",fontSize:12,cellPadding:6,fillColor:220},i=o.rowCalcStyles||{fontStyle:"bold",fontSize:10,cellPadding:4,fillColor:232},c=o.jsPDF||{},u=o&&o.title?o.title:"";c.orientation||(c.orientation=o.orientation||"landscape"),c.unit||(c.unit="pt"),e.forEach(function(e){switch(e.type){case"header":a.push(n(e));break;case"group":r.push(n(e,s));break;case"calc":r.push(n(e,i));break;case"row":r.push(n(e))}});var d=new jsPDF(c);o&&o.autoTable&&(l="function"==typeof o.autoTable?o.autoTable(d)||{}:o.autoTable),u&&(l.addPageContent=function(e){d.text(u,40,30)}),l.head=a,l.body=r,d.autoTable(l),o&&o.documentProcessing&&o.documentProcessing(d),t(d.output("arraybuffer"),"application/pdf")},xlsx:function(e,o,t){function n(){var o=[],t=[],n={},a={s:{c:0,r:0},e:{c:e[0]?e[0].columns.reduce(function(e,o){return e+(o&&o.width?o.width:1)},0):0,r:e.length}};return e.forEach(function(e,n){var a=[];e.columns.forEach(function(e,o){e?(a.push(e.value instanceof Date||"object"!==_typeof(e.value)?e.value:JSON.stringify(e.value)),(e.width>1||e.height>-1)&&t.push({s:{r:n,c:o},e:{r:n+e.height-1,c:o+e.width-1}})):a.push("")}),o.push(a)}),XLSX.utils.sheet_add_aoa(n,o),n["!ref"]=XLSX.utils.encode_range(a),t.length&&(n["!merges"]=t),n}var a,r=this,l=o.sheetName||"Sheet1",s=XLSX.utils.book_new();if(s.SheetNames=[],s.Sheets={},o.sheetOnly)return void t(n());if(o.sheets)for(var i in o.sheets)!0===o.sheets[i]?(s.SheetNames.push(i),s.Sheets[i]=n()):(s.SheetNames.push(i),this.table.modules.comms.send(o.sheets[i],"download","intercept",{type:"xlsx",options:{sheetOnly:!0},active:r.active,intercept:function(e){s.Sheets[i]=e}}));else s.SheetNames.push(l),s.Sheets[l]=n();o.documentProcessing&&(s=o.documentProcessing(s)),a=XLSX.write(s,{bookType:"xlsx",bookSST:!0,type:"binary"}),t(function(e){for(var o=new ArrayBuffer(e.length),t=new Uint8Array(o),n=0;n!=e.length;++n)t[n]=255&e.charCodeAt(n);return o}(a),"application/octet-stream")},html:function(e,o,t){this.modExists("export",!0)&&t(this.modules.export.genereateHTMLTable(e),"text/html")}},Tabulator.prototype.registerModule("download",Download);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Edit = function Edit(table) {
- this.table = table; //hold Tabulator object
- this.currentCell = false; //hold currently editing cell
- this.mouseClick = false; //hold mousedown state to prevent click binding being overriden by editor opening
- this.recursionBlock = false; //prevent focus recursion
- this.invalidEdit = false;
- this.editedCells = [];
-};
-
-//initialize column editor
-Edit.prototype.initializeColumn = function (column) {
- var self = this,
- config = {
- editor: false,
- blocked: false,
- check: column.definition.editable,
- params: column.definition.editorParams || {}
- };
-
- //set column editor
- switch (_typeof(column.definition.editor)) {
- case "string":
-
- if (column.definition.editor === "tick") {
- column.definition.editor = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.editor]) {
- config.editor = self.editors[column.definition.editor];
- } else {
- console.warn("Editor Error - No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- config.editor = column.definition.editor;
- break;
-
- case "boolean":
-
- if (column.definition.editor === true) {
-
- if (typeof column.definition.formatter !== "function") {
-
- if (column.definition.formatter === "tick") {
- column.definition.formatter = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.formatter]) {
- config.editor = self.editors[column.definition.formatter];
- } else {
- config.editor = self.editors["input"];
- }
- } else {
- console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ", column.definition.formatter);
- }
- }
- break;
- }
-
- if (config.editor) {
- column.modules.edit = config;
- }
-};
-
-Edit.prototype.getCurrentCell = function () {
- return this.currentCell ? this.currentCell.getComponent() : false;
-};
-
-Edit.prototype.clearEditor = function (cancel) {
- var cell = this.currentCell,
- cellEl;
-
- this.invalidEdit = false;
-
- if (cell) {
- this.currentCell = false;
-
- cellEl = cell.getElement();
-
- if (cancel) {
- cell.validate();
- } else {
- cellEl.classList.remove("tabulator-validation-fail");
- }
-
- cellEl.classList.remove("tabulator-editing");
- while (cellEl.firstChild) {
- cellEl.removeChild(cellEl.firstChild);
- }cell.row.getElement().classList.remove("tabulator-row-editing");
- }
-};
-
-Edit.prototype.cancelEdit = function () {
-
- if (this.currentCell) {
- var cell = this.currentCell;
- var component = this.currentCell.getComponent();
-
- this.clearEditor(true);
- cell.setValueActual(cell.getValue());
- cell.cellRendered();
-
- if (cell.column.cellEvents.cellEditCancelled) {
- cell.column.cellEvents.cellEditCancelled.call(this.table, component);
- }
-
- this.table.options.cellEditCancelled.call(this.table, component);
- }
-};
-
-//return a formatted value for a cell
-Edit.prototype.bindEditor = function (cell) {
- var self = this,
- element = cell.getElement();
-
- element.setAttribute("tabindex", 0);
-
- element.addEventListener("click", function (e) {
- if (!element.classList.contains("tabulator-editing")) {
- element.focus({ preventScroll: true });
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- self.mouseClick = true;
- });
-
- element.addEventListener("focus", function (e) {
- if (!self.recursionBlock) {
- self.edit(cell, e, false);
- }
- });
-};
-
-Edit.prototype.focusCellNoEvent = function (cell, block) {
- this.recursionBlock = true;
- if (!(block && this.table.browser === "ie")) {
- cell.getElement().focus({ preventScroll: true });
- }
- this.recursionBlock = false;
-};
-
-Edit.prototype.editCell = function (cell, forceEdit) {
- this.focusCellNoEvent(cell);
- this.edit(cell, false, forceEdit);
-};
-
-Edit.prototype.focusScrollAdjust = function (cell) {
- if (this.table.rowManager.getRenderMode() == "virtual") {
- var topEdge = this.table.rowManager.element.scrollTop,
- bottomEdge = this.table.rowManager.element.clientHeight + this.table.rowManager.element.scrollTop,
- rowEl = cell.row.getElement(),
- offset = rowEl.offsetTop;
-
- if (rowEl.offsetTop < topEdge) {
- this.table.rowManager.element.scrollTop -= topEdge - rowEl.offsetTop;
- } else {
- if (rowEl.offsetTop + rowEl.offsetHeight > bottomEdge) {
- this.table.rowManager.element.scrollTop += rowEl.offsetTop + rowEl.offsetHeight - bottomEdge;
- }
- }
- }
-};
-
-Edit.prototype.edit = function (cell, e, forceEdit) {
- var self = this,
- allowEdit = true,
- rendered = function rendered() {},
- element = cell.getElement(),
- cellEditor,
- component,
- params;
-
- //prevent editing if another cell is refusing to leave focus (eg. validation fail)
- if (this.currentCell) {
- if (!this.invalidEdit) {
- this.cancelEdit();
- }
- return;
- }
-
- //handle successfull value change
- function success(value) {
- if (self.currentCell === cell) {
- var valid = true;
-
- if (cell.column.modules.validate && self.table.modExists("validate") && self.table.options.validationMode != "manual") {
- valid = self.table.modules.validate.validate(cell.column.modules.validate, cell, value);
- }
-
- if (valid === true || self.table.options.validationMode === "highlight") {
- self.clearEditor();
- cell.setValue(value, true);
-
- if (!cell.modules.edit) {
- cell.modules.edit = {};
- }
-
- cell.modules.edit.edited = true;
-
- if (self.editedCells.indexOf(cell) == -1) {
- self.editedCells.push(cell);
- }
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
-
- if (valid !== true) {
- element.classList.add("tabulator-validation-fail");
- return false;
- }
-
- return true;
- } else {
- self.invalidEdit = true;
- element.classList.add("tabulator-validation-fail");
- self.focusCellNoEvent(cell, true);
- rendered();
- self.table.options.validationFailed.call(self.table, cell.getComponent(), value, valid);
-
- return false;
- }
- } else {
- // console.warn("Edit Success Error - cannot call success on a cell that is no longer being edited");
- }
- }
-
- //handle aborted edit
- function cancel() {
- if (self.currentCell === cell) {
- self.cancelEdit();
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
- } else {
- // console.warn("Edit Success Error - cannot call cancel on a cell that is no longer being edited");
- }
- }
-
- function onRendered(callback) {
- rendered = callback;
- }
-
- if (!cell.column.modules.edit.blocked) {
- if (e) {
- e.stopPropagation();
- }
-
- switch (_typeof(cell.column.modules.edit.check)) {
- case "function":
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- break;
-
- case "boolean":
- allowEdit = cell.column.modules.edit.check;
- break;
- }
-
- if (allowEdit || forceEdit) {
-
- self.cancelEdit();
-
- self.currentCell = cell;
-
- this.focusScrollAdjust(cell);
-
- component = cell.getComponent();
-
- if (this.mouseClick) {
- this.mouseClick = false;
-
- if (cell.column.cellEvents.cellClick) {
- cell.column.cellEvents.cellClick.call(this.table, e, component);
- }
- }
-
- if (cell.column.cellEvents.cellEditing) {
- cell.column.cellEvents.cellEditing.call(this.table, component);
- }
-
- self.table.options.cellEditing.call(this.table, component);
-
- params = typeof cell.column.modules.edit.params === "function" ? cell.column.modules.edit.params(component) : cell.column.modules.edit.params;
-
- cellEditor = cell.column.modules.edit.editor.call(self, component, onRendered, success, cancel, params);
-
- //if editor returned, add to DOM, if false, abort edit
- if (cellEditor !== false) {
-
- if (cellEditor instanceof Node) {
- element.classList.add("tabulator-editing");
- cell.row.getElement().classList.add("tabulator-row-editing");
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.appendChild(cellEditor);
-
- //trigger onRendered Callback
- rendered();
-
- //prevent editing from triggering rowClick event
- var children = element.children;
-
- for (var i = 0; i < children.length; i++) {
- children[i].addEventListener("click", function (e) {
- e.stopPropagation();
- });
- }
- } else {
- console.warn("Edit Error - Editor should return an instance of Node, the editor returned:", cellEditor);
- element.blur();
- return false;
- }
- } else {
- element.blur();
- return false;
- }
-
- return true;
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
-};
-
-Edit.prototype.maskInput = function (el, options) {
- var mask = options.mask,
- maskLetter = typeof options.maskLetterChar !== "undefined" ? options.maskLetterChar : "A",
- maskNumber = typeof options.maskNumberChar !== "undefined" ? options.maskNumberChar : "9",
- maskWildcard = typeof options.maskWildcardChar !== "undefined" ? options.maskWildcardChar : "*",
- success = false;
-
- function fillSymbols(index) {
- var symbol = mask[index];
- if (typeof symbol !== "undefined" && symbol !== maskWildcard && symbol !== maskLetter && symbol !== maskNumber) {
- el.value = el.value + "" + symbol;
- fillSymbols(index + 1);
- }
- }
-
- el.addEventListener("keydown", function (e) {
- var index = el.value.length,
- char = e.key;
-
- if (e.keyCode > 46) {
- if (index >= mask.length) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- } else {
- switch (mask[index]) {
- case maskLetter:
- if (char.toUpperCase() == char.toLowerCase()) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskNumber:
- if (isNaN(char)) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskWildcard:
- break;
-
- default:
- if (char !== mask[index]) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- }
- }
-
- success = true;
- }
-
- return;
- });
-
- el.addEventListener("keyup", function (e) {
- if (e.keyCode > 46) {
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
- }
- });
-
- if (!el.placeholder) {
- el.placeholder = mask;
- }
-
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
-};
-
-Edit.prototype.getEditedCells = function () {
- var output = [];
-
- this.editedCells.forEach(function (cell) {
- output.push(cell.getComponent());
- });
-
- return output;
-};
-
-Edit.prototype.clearEdited = function (cell) {
- var editIndex;
-
- if (cell.modules.edit && cell.modules.edit.edited) {
- cell.modules.validate.invalid = false;
-
- editIndex = this.editedCells.indexOf(cell);
-
- if (editIndex > -1) {
- this.editedCells.splice(editIndex, 1);
- }
- }
-};
-
-//default data editors
-Edit.prototype.editors = {
-
- //input element
- input: function input(cell, onRendered, success, cancel, editorParams) {
-
- //create and style input
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", editorParams.search ? "search" : "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof cellValue !== "undefined" ? cellValue : "";
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- // case 9:
- case 13:
- onChange(e);
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //resizable text area element
- textarea: function textarea(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "hybrid",
- value = String(cellValue !== null && typeof cellValue !== "undefined" ? cellValue : ""),
- count = (value.match(/(?:\r\n|\r|\n)/g) || []).length + 1,
- input = document.createElement("textarea"),
- scrollHeight = 0;
-
- //create and style input
- input.style.display = "block";
- input.style.padding = "2px";
- input.style.height = "100%";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.whiteSpace = "pre-wrap";
- input.style.resize = "none";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
-
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
-
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
-
- setTimeout(function () {
- cell.getRow().normalizeHeight();
- }, 300);
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- input.addEventListener("keyup", function () {
-
- input.style.height = "";
-
- var heightNow = input.scrollHeight;
-
- input.style.height = heightNow + "px";
-
- if (heightNow != scrollHeight) {
- scrollHeight = heightNow;
- cell.getRow().normalizeHeight();
- }
- });
-
- input.addEventListener("keydown", function (e) {
-
- switch (e.keyCode) {
- case 27:
- cancel();
- break;
-
- case 38:
- //up arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
-
- break;
-
- case 40:
- //down arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart !== input.value.length) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- number: function number(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- input = document.createElement("input");
-
- input.setAttribute("type", "number");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- var blurFunc = function blurFunc(e) {
- onChange();
- };
-
- onRendered(function () {
- //submit new value on blur
- input.removeEventListener("blur", blurFunc);
-
- input.focus({ preventScroll: true });
- input.style.height = "100%";
-
- //submit new value on blur
- input.addEventListener("blur", blurFunc);
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value !== cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- // case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
-
- case 38: //up arrow
- case 40:
- //down arrow
- if (vertNav == "editor") {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- range: function range(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", "range");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value != cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur
- input.addEventListener("blur", function (e) {
- onChange();
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- // case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- return input;
- },
-
- //select
- select: function select(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : [],
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- multiselect = editorParams.multiselect,
- dataItems = [],
- currentItem = {},
- displayItems = [],
- currentItems = [],
- blurable = true;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- if (Array.isArray(editorParams) || !Array.isArray(editorParams) && (typeof editorParams === "undefined" ? "undefined" : _typeof(editorParams)) === "object" && !editorParams.values) {
- console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object");
- editorParams = { values: editorParams };
- }
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create select lookup list:", field);
- }
-
- return output;
- }
-
- function parseItems(inputValues, curentValues) {
- var dataList = [];
- var displayList = [];
-
- function processComplexListItem(item) {
- var item = {
- label: item.label,
- value: item.value,
- itemParams: item.itemParams,
- elementAttributes: item.elementAttributes,
- element: false
- };
-
- // if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){
- // setCurrentItem(item);
- // }
-
- if (curentValues.indexOf(item.value) > -1) {
- setItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
-
- return item;
- }
-
- if (typeof inputValues == "function") {
- inputValues = inputValues(cell);
- }
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
- var item;
-
- if ((typeof value === "undefined" ? "undefined" : _typeof(value)) === "object") {
-
- if (value.options) {
- item = {
- label: value.label,
- group: true,
- itemParams: value.itemParams,
- elementAttributes: value.elementAttributes,
- element: false
- };
-
- displayList.push(item);
-
- value.options.forEach(function (item) {
- processComplexListItem(item);
- });
- } else {
- processComplexListItem(value);
- }
- } else {
-
- item = {
- label: value,
- value: value,
- element: false
- };
-
- // if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){
- // setCurrentItem(item);
- // }
-
- if (curentValues.indexOf(item.value) > -1) {
- setItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- });
- } else {
- for (var key in inputValues) {
- var item = {
- label: inputValues[key],
- value: key,
- element: false
- };
-
- // if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){
- // setCurrentItem(item);
- // }
-
- if (curentValues.indexOf(item.value) > -1) {
- setItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- }
-
- dataItems = dataList;
- displayItems = displayList;
-
- fillList();
- }
-
- function fillList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }displayItems.forEach(function (item) {
-
- var el = item.element;
-
- if (!el) {
- el = document.createElement("div");
- item.label = editorParams.listItemFormatter ? editorParams.listItemFormatter(item.value, item.label, cell, el, item.itemParams) : item.label;
- if (item.group) {
- el.classList.add("tabulator-edit-select-list-group");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
- } else {
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
-
- el.addEventListener("click", function () {
- // setCurrentItem(item);
- // chooseItem();
- if (multiselect) {
- toggleItem(item);
- input.focus();
- } else {
- chooseItem(item);
- }
- });
-
- // if(item === currentItem){
- // el.classList.add("active");
- // }
-
- if (currentItems.indexOf(item) > -1) {
- el.classList.add("active");
- }
- }
-
- if (item.elementAttributes && _typeof(item.elementAttributes) == "object") {
- for (var key in item.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- el.setAttribute(key, input.getAttribute(key) + item.elementAttributes["+" + key]);
- } else {
- el.setAttribute(key, item.elementAttributes[key]);
- }
- }
- }
- el.addEventListener("mousedown", function () {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
- }
-
- listEl.appendChild(el);
- });
- }
-
- function setCurrentItem(item, active) {
-
- if (!multiselect && currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("focused");
- }
-
- currentItem = item;
-
- if (item.element) {
- item.element.classList.add("focused");
- if (active) {
- item.element.classList.add("active");
- }
- }
- }
-
- // function chooseItem(){
- // hideList();
-
- // if(initialValue !== currentItem.value){
- // initialValue = currentItem.value;
- // success(currentItem.value);
- // }else{
- // cancel();
- // }
- // }
-
- function setItem(item) {
- var index = currentItems.indexOf(item);
-
- if (index == -1) {
- currentItems.push(item);
- setCurrentItem(item, true);
- }
-
- fillInput();
- }
-
- function unsetItem(index) {
- var item = currentItems[index];
-
- if (index > -1) {
- currentItems.splice(index, 1);
- if (item.element) {
- item.element.classList.remove("active");
- }
- }
- }
-
- function toggleItem(item) {
- if (!item) {
- item = currentItem;
- }
-
- var index = currentItems.indexOf(item);
-
- if (index > -1) {
- unsetItem(index);
- } else {
- if (multiselect !== true && currentItems.length >= multiselect) {
- unsetItem(0);
- }
-
- setItem(item);
- }
-
- fillInput();
- }
-
- function chooseItem(item) {
- hideList();
-
- if (!item) {
- item = currentItem;
- }
-
- if (item) {
- success(item.value);
- }
- }
-
- function chooseItems() {
- hideList();
-
- var output = [];
-
- currentItems.forEach(function (item) {
- output.push(item.value);
- });
-
- success(output);
- }
-
- function fillInput() {
- var output = [];
-
- currentItems.forEach(function (item) {
- output.push(item.label);
- });
-
- input.value = output.join(", ");
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function showList() {
- if (!listEl.parentNode) {
-
- if (editorParams.values === true) {
- parseItems(getUniqueColumnValues(), initialDisplayValue);
- } else if (typeof editorParams.values === "string") {
- parseItems(getUniqueColumnValues(editorParams.values), initialDisplayValue);
- } else {
- parseItems(editorParams.values || [], initialDisplayValue);
- }
-
- var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- document.body.appendChild(listEl);
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //style input
- input.setAttribute("type", "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.cursor = "default";
- input.readOnly = this.currentCell != false;
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof initialValue !== "undefined" || initialValue === null ? initialValue : "";
-
- // if(editorParams.values === true){
- // parseItems(getUniqueColumnValues(), initialValue);
- // }else if(typeof editorParams.values === "string"){
- // parseItems(getUniqueColumnValues(editorParams.values), initialValue);
- // }else{
- // parseItems(editorParams.values || [], initialValue);
- // }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(dataItems[index - 1], !multiselect);
- }
- }
- break;
-
- case 40:
- //down arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < dataItems.length - 1) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < dataItems.length - 1) {
- if (index == -1) {
- setCurrentItem(dataItems[0], !multiselect);
- } else {
- setCurrentItem(dataItems[index + 1], !multiselect);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
- break;
-
- case 13:
- //enter
- // chooseItem();
-
- if (multiselect) {
- toggleItem();
- } else {
- chooseItem();
- }
-
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
- }
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- if (multiselect) {
- chooseItems();
- } else {
- cancelItem();
- }
- }
- });
-
- input.addEventListener("focus", function (e) {
- showList();
- });
-
- //style list element
- listEl = document.createElement("div");
- listEl.classList.add("tabulator-edit-select-list");
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- return input;
- },
-
- //autocomplete
- autocomplete: function autocomplete(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "",
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- allItems = [],
- displayItems = [],
- values = [],
- currentItem = false,
- blurable = true,
- uniqueColumnValues = false;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- //style input
- input.setAttribute("type", "search");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style list element
- listEl.classList.add("tabulator-edit-select-list");
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- function genUniqueColumnValues() {
- if (editorParams.values === true) {
- uniqueColumnValues = getUniqueColumnValues();
- } else if (typeof editorParams.values === "string") {
- uniqueColumnValues = getUniqueColumnValues(editorParams.values);
- }
- }
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create autocomplete lookup list:", field);
- }
-
- return output;
- }
-
- function filterList(term, intialLoad) {
- var matches = [],
- values,
- items,
- searchEl;
-
- //lookup base values list
- if (uniqueColumnValues) {
- values = uniqueColumnValues;
- } else {
- values = editorParams.values || [];
- }
-
- if (editorParams.searchFunc) {
- matches = editorParams.searchFunc(term, values);
-
- if (matches instanceof Promise) {
-
- addNotice(typeof editorParams.searchingPlaceholder !== "undefined" ? editorParams.searchingPlaceholder : "Searching...");
-
- matches.then(function (result) {
- fillListIfNotEmpty(parseItems(result), intialLoad);
- }).catch(function (err) {
- console.err("error in autocomplete search promise:", err);
- });
- } else {
- fillListIfNotEmpty(parseItems(matches), intialLoad);
- }
- } else {
- items = parseItems(values);
-
- if (term === "") {
- if (editorParams.showListOnEmpty) {
- matches = items;
- }
- } else {
- items.forEach(function (item) {
- if (item.value !== null || typeof item.value !== "undefined") {
- if (String(item.value).toLowerCase().indexOf(String(term).toLowerCase()) > -1 || String(item.title).toLowerCase().indexOf(String(term).toLowerCase()) > -1) {
- matches.push(item);
- }
- }
- });
- }
-
- fillListIfNotEmpty(matches, intialLoad);
- }
- }
-
- function addNotice(notice) {
- var searchEl = document.createElement("div");
-
- clearList();
-
- if (notice !== false) {
- searchEl.classList.add("tabulator-edit-select-list-notice");
- searchEl.tabIndex = 0;
-
- if (notice instanceof Node) {
- searchEl.appendChild(notice);
- } else {
- searchEl.innerHTML = notice;
- }
-
- listEl.appendChild(searchEl);
- }
- }
-
- function parseItems(inputValues) {
- var itemList = [];
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
-
- var item = {};
-
- if ((typeof value === "undefined" ? "undefined" : _typeof(value)) === "object") {
- item.title = editorParams.listItemFormatter ? editorParams.listItemFormatter(value.value, value.label) : value.label;
- item.value = value.value;
- } else {
- item.title = editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value;
- item.value = value;
- }
-
- itemList.push(item);
- });
- } else {
- for (var key in inputValues) {
- var item = {
- title: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
- value: key
- };
-
- itemList.push(item);
- }
- }
-
- return itemList;
- }
-
- function clearList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }
- }
-
- function fillListIfNotEmpty(items, intialLoad) {
- if (items.length) {
- fillList(items, intialLoad);
- } else {
- if (editorParams.emptyPlaceholder) {
- addNotice(editorParams.emptyPlaceholder);
- }
- }
- }
-
- function fillList(items, intialLoad) {
- var current = false;
-
- clearList();
-
- displayItems = items;
-
- displayItems.forEach(function (item) {
- var el = item.element;
-
- if (!el) {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.title;
-
- el.addEventListener("click", function (e) {
- setCurrentItem(item);
- chooseItem();
- });
-
- el.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
-
- if (intialLoad && item.value == initialValue) {
- input.value = item.title;
- item.element.classList.add("active");
- current = true;
- }
-
- if (item === currentItem) {
- item.element.classList.add("active");
- current = true;
- }
- }
-
- listEl.appendChild(el);
- });
-
- if (!current) {
- setCurrentItem(false);
- }
- }
-
- function chooseItem() {
- hideList();
-
- if (currentItem) {
- if (initialValue !== currentItem.value) {
- initialValue = currentItem.value;
- input.value = currentItem.title;
- success(currentItem.value);
- } else {
- cancel();
- }
- } else {
- if (editorParams.freetext) {
- initialValue = input.value;
- success(input.value);
- } else {
- if (editorParams.allowEmpty && input.value === "") {
- initialValue = input.value;
- success(input.value);
- } else {
- cancel();
- }
- }
- }
- }
-
- function showList() {
- if (!listEl.parentNode) {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
- document.body.appendChild(listEl);
- }
- }
-
- function setCurrentItem(item, showInputValue) {
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- currentItem = item;
-
- if (item && item.element) {
- item.element.classList.add("active");
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(displayItems[index - 1]);
- } else {
- setCurrentItem(false);
- }
- }
- break;
-
- case 40:
- //down arrow
-
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < displayItems.length - 1) {
-
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < displayItems.length - 1) {
- if (index == -1) {
- setCurrentItem(displayItems[0]);
- } else {
- setCurrentItem(displayItems[index + 1]);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- // e.preventDefault();
- break;
-
- case 13:
- //enter
- chooseItem();
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
-
- case 36: //home
- case 35:
- //end
- //prevent table navigation while using input element
- e.stopImmediatePropagation();
- break;
- }
- });
-
- input.addEventListener("keyup", function (e) {
-
- switch (e.keyCode) {
- case 38: //up arrow
- case 37: //left arrow
- case 39: //up arrow
- case 40: //right arrow
- case 13: //enter
- case 27:
- //escape
- break;
-
- default:
- filterList(input.value);
- }
- });
-
- input.addEventListener("search", function (e) {
- filterList(input.value);
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- chooseItem();
- }
- });
-
- input.addEventListener("focus", function (e) {
- var value = initialDisplayValue;
- genUniqueColumnValues();
- showList();
- input.value = value;
- filterList(value, true);
- });
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //star rating
- star: function star(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- element = cell.getElement(),
- value = cell.getValue(),
- maxStars = element.getElementsByTagName("svg").length || 5,
- size = element.getElementsByTagName("svg")[0] ? element.getElementsByTagName("svg")[0].getAttribute("width") : 14,
- stars = [],
- starsHolder = document.createElement("div"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg");
-
- //change star type
- function starChange(val) {
- stars.forEach(function (star, i) {
- if (i < val) {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-active");
- } else {
- star.classList.replace("tabulator-star-inactive", "tabulator-star-active");
- }
-
- star.innerHTML = '<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- } else {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-inactive");
- } else {
- star.classList.replace("tabulator-star-active", "tabulator-star-inactive");
- }
-
- star.innerHTML = '<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- }
- });
- }
-
- //build stars
- function buildStar(i) {
-
- var starHolder = document.createElement("span");
- var nextStar = star.cloneNode(true);
-
- stars.push(nextStar);
-
- starHolder.addEventListener("mouseenter", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- starChange(i);
- });
-
- starHolder.addEventListener("mousemove", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- });
-
- starHolder.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- success(i);
- element.blur();
- });
-
- starHolder.appendChild(nextStar);
- starsHolder.appendChild(starHolder);
- }
-
- //handle keyboard navigation value change
- function changeValue(val) {
- value = val;
- starChange(val);
- }
-
- //style cell
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- //style holding element
- starsHolder.style.verticalAlign = "middle";
- starsHolder.style.display = "inline-block";
- starsHolder.style.padding = "4px";
-
- //style star
- star.setAttribute("width", size);
- star.setAttribute("height", size);
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- starsHolder.setAttribute(key, starsHolder.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- starsHolder.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //create correct number of stars
- for (var i = 1; i <= maxStars; i++) {
- buildStar(i);
- }
-
- //ensure value does not exceed number of stars
- value = Math.min(parseInt(value), maxStars);
-
- // set initial styling of stars
- starChange(value);
-
- starsHolder.addEventListener("mousemove", function (e) {
- starChange(0);
- });
-
- starsHolder.addEventListener("click", function (e) {
- success(0);
- });
-
- element.addEventListener("blur", function (e) {
- cancel();
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- changeValue(value + 1);
- break;
-
- case 37:
- //left arrow
- changeValue(value - 1);
- break;
-
- case 13:
- //enter
- success(value);
- break;
-
- case 27:
- //escape
- cancel();
- break;
- }
- });
-
- return starsHolder;
- },
-
- //draggable progress bar
- progress: function progress(cell, onRendered, success, cancel, editorParams) {
- var element = cell.getElement(),
- max = typeof editorParams.max === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("max") || 100 : editorParams.max,
- min = typeof editorParams.min === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("min") || 0 : editorParams.min,
- percent = (max - min) / 100,
- value = cell.getValue() || 0,
- handle = document.createElement("div"),
- bar = document.createElement("div"),
- mouseDrag,
- mouseDragWidth;
-
- //set new value
- function updateValue() {
- var calcVal = percent * Math.round(bar.offsetWidth / (element.clientWidth / 100)) + min;
- success(calcVal);
- element.setAttribute("aria-valuenow", calcVal);
- element.setAttribute("aria-label", value);
- }
-
- //style handle
- handle.style.position = "absolute";
- handle.style.right = "0";
- handle.style.top = "0";
- handle.style.bottom = "0";
- handle.style.width = "5px";
- handle.classList.add("tabulator-progress-handle");
-
- //style bar
- bar.style.display = "inline-block";
- bar.style.position = "relative";
- // bar.style.top = "8px";
- // bar.style.bottom = "8px";
- // bar.style.left = "4px";
- // bar.style.marginRight = "4px";
- bar.style.height = "100%";
- bar.style.backgroundColor = "#488CE9";
- bar.style.maxWidth = "100%";
- bar.style.minWidth = "0%";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- bar.setAttribute(key, bar.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- bar.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style cell
- element.style.padding = "4px 4px";
-
- //make sure value is in range
- value = Math.min(parseFloat(value), max);
- value = Math.max(parseFloat(value), min);
-
- //workout percentage
- value = Math.round((value - min) / percent);
- // bar.style.right = value + "%";
- bar.style.width = value + "%";
-
- element.setAttribute("aria-valuemin", min);
- element.setAttribute("aria-valuemax", max);
-
- bar.appendChild(handle);
-
- handle.addEventListener("mousedown", function (e) {
- mouseDrag = e.screenX;
- mouseDragWidth = bar.offsetWidth;
- });
-
- handle.addEventListener("mouseover", function () {
- handle.style.cursor = "ew-resize";
- });
-
- element.addEventListener("mousemove", function (e) {
- if (mouseDrag) {
- bar.style.width = mouseDragWidth + e.screenX - mouseDrag + "px";
- }
- });
-
- element.addEventListener("mouseup", function (e) {
- if (mouseDrag) {
- e.stopPropagation();
- e.stopImmediatePropagation();
-
- mouseDrag = false;
- mouseDragWidth = false;
-
- updateValue();
- }
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth + element.clientWidth / 100 + "px";
- break;
-
- case 37:
- //left arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth - element.clientWidth / 100 + "px";
- break;
-
- case 9: //tab
- case 13:
- //enter
- updateValue();
- break;
-
- case 27:
- //escape
- cancel();
- break;
-
- }
- });
-
- element.addEventListener("blur", function () {
- cancel();
- });
-
- return bar;
- },
-
- //checkbox
- tickCross: function tickCross(cell, onRendered, success, cancel, editorParams) {
- var value = cell.getValue(),
- input = document.createElement("input"),
- tristate = editorParams.tristate,
- indetermValue = typeof editorParams.indeterminateValue === "undefined" ? null : editorParams.indeterminateValue,
- indetermState = false;
-
- input.setAttribute("type", "checkbox");
- input.style.marginTop = "5px";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- if (tristate && (typeof value === "undefined" || value === indetermValue || value === "")) {
- indetermState = true;
- input.indeterminate = true;
- }
-
- if (this.table.browser != "firefox") {
- //prevent blur issue on mac firefox
- onRendered(function () {
- input.focus({ preventScroll: true });
- });
- }
-
- input.checked = value === true || value === "true" || value === "True" || value === 1;
-
- function setValue(blur) {
- if (tristate) {
- if (!blur) {
- if (input.checked && !indetermState) {
- input.checked = false;
- input.indeterminate = true;
- indetermState = true;
- return indetermValue;
- } else {
- indetermState = false;
- return input.checked;
- }
- } else {
- if (indetermState) {
- return indetermValue;
- } else {
- return input.checked;
- }
- }
- } else {
- return input.checked;
- }
- }
-
- //submit new value on blur
- input.addEventListener("change", function (e) {
- success(setValue());
- });
-
- input.addEventListener("blur", function (e) {
- success(setValue(true));
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- if (e.keyCode == 13) {
- success(setValue());
- }
- if (e.keyCode == 27) {
- cancel();
- }
- });
-
- return input;
- }
-};
-
-Tabulator.prototype.registerModule("edit", Edit);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Edit=function(e){this.table=e,this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1,this.editedCells=[]};Edit.prototype.initializeColumn=function(e){var t=this,i={editor:!1,blocked:!1,check:e.definition.editable,params:e.definition.editorParams||{}};switch(_typeof(e.definition.editor)){case"string":"tick"===e.definition.editor&&(e.definition.editor="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.editor]?i.editor=t.editors[e.definition.editor]:console.warn("Editor Error - No such editor found: ",e.definition.editor);break;case"function":i.editor=e.definition.editor;break;case"boolean":!0===e.definition.editor&&("function"!=typeof e.definition.formatter?("tick"===e.definition.formatter&&(e.definition.formatter="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.formatter]?i.editor=t.editors[e.definition.formatter]:i.editor=t.editors.input):console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",e.definition.formatter))}i.editor&&(e.modules.edit=i)},Edit.prototype.getCurrentCell=function(){return!!this.currentCell&&this.currentCell.getComponent()},Edit.prototype.clearEditor=function(e){var t,i=this.currentCell;if(this.invalidEdit=!1,i){for(this.currentCell=!1,t=i.getElement(),e?i.validate():t.classList.remove("tabulator-validation-fail"),t.classList.remove("tabulator-editing");t.firstChild;)t.removeChild(t.firstChild);i.row.getElement().classList.remove("tabulator-row-editing")}},Edit.prototype.cancelEdit=function(){if(this.currentCell){var e=this.currentCell,t=this.currentCell.getComponent();this.clearEditor(!0),e.setValueActual(e.getValue()),e.cellRendered(),e.column.cellEvents.cellEditCancelled&&e.column.cellEvents.cellEditCancelled.call(this.table,t),this.table.options.cellEditCancelled.call(this.table,t)}},Edit.prototype.bindEditor=function(e){var t=this,i=e.getElement();i.setAttribute("tabindex",0),i.addEventListener("click",function(e){i.classList.contains("tabulator-editing")||i.focus({preventScroll:!0})}),i.addEventListener("mousedown",function(e){t.mouseClick=!0}),i.addEventListener("focus",function(i){t.recursionBlock||t.edit(e,i,!1)})},Edit.prototype.focusCellNoEvent=function(e,t){this.recursionBlock=!0,t&&"ie"===this.table.browser||e.getElement().focus({preventScroll:!0}),this.recursionBlock=!1},Edit.prototype.editCell=function(e,t){this.focusCellNoEvent(e),this.edit(e,!1,t)},Edit.prototype.focusScrollAdjust=function(e){if("virtual"==this.table.rowManager.getRenderMode()){var t=this.table.rowManager.element.scrollTop,i=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,n=e.row.getElement();n.offsetTop;n.offsetTop<t?this.table.rowManager.element.scrollTop-=t-n.offsetTop:n.offsetTop+n.offsetHeight>i&&(this.table.rowManager.element.scrollTop+=n.offsetTop+n.offsetHeight-i)}},Edit.prototype.edit=function(e,t,i){function n(t){if(u.currentCell===e){var i=!0;return e.column.modules.validate&&u.table.modExists("validate")&&"manual"!=u.table.options.validationMode&&(i=u.table.modules.validate.validate(e.column.modules.validate,e,t)),!0===i||"highlight"===u.table.options.validationMode?(u.clearEditor(),e.setValue(t,!0),e.modules.edit||(e.modules.edit={}),e.modules.edit.edited=!0,-1==u.editedCells.indexOf(e)&&u.editedCells.push(e),u.table.options.dataTree&&u.table.modExists("dataTree")&&u.table.modules.dataTree.checkForRestyle(e),!0===i||(m.classList.add("tabulator-validation-fail"),!1)):(u.invalidEdit=!0,m.classList.add("tabulator-validation-fail"),u.focusCellNoEvent(e,!0),c(),u.table.options.validationFailed.call(u.table,e.getComponent(),t,i),!1)}}function o(){u.currentCell===e&&(u.cancelEdit(),u.table.options.dataTree&&u.table.modExists("dataTree")&&u.table.modules.dataTree.checkForRestyle(e))}function a(e){c=e}var r,l,s,u=this,d=!0,c=function(){},m=e.getElement();if(this.currentCell)return void(this.invalidEdit||this.cancelEdit());if(e.column.modules.edit.blocked)return this.mouseClick=!1,m.blur(),!1;switch(t&&t.stopPropagation(),_typeof(e.column.modules.edit.check)){case"function":d=e.column.modules.edit.check(e.getComponent());break;case"boolean":d=e.column.modules.edit.check}if(d||i){if(u.cancelEdit(),u.currentCell=e,this.focusScrollAdjust(e),l=e.getComponent(),this.mouseClick&&(this.mouseClick=!1,e.column.cellEvents.cellClick&&e.column.cellEvents.cellClick.call(this.table,t,l)),e.column.cellEvents.cellEditing&&e.column.cellEvents.cellEditing.call(this.table,l),u.table.options.cellEditing.call(this.table,l),s="function"==typeof e.column.modules.edit.params?e.column.modules.edit.params(l):e.column.modules.edit.params,!1===(r=e.column.modules.edit.editor.call(u,l,a,n,o,s)))return m.blur(),!1;if(!(r instanceof Node))return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",r),m.blur(),!1;for(m.classList.add("tabulator-editing"),e.row.getElement().classList.add("tabulator-row-editing");m.firstChild;)m.removeChild(m.firstChild);m.appendChild(r),c();for(var f=m.children,p=0;p<f.length;p++)f[p].addEventListener("click",function(e){e.stopPropagation()});return!0}return this.mouseClick=!1,m.blur(),!1},Edit.prototype.maskInput=function(e,t){function i(t){var l=n[t];void 0!==l&&l!==r&&l!==o&&l!==a&&(e.value=e.value+""+l,i(t+1))}var n=t.mask,o=void 0!==t.maskLetterChar?t.maskLetterChar:"A",a=void 0!==t.maskNumberChar?t.maskNumberChar:"9",r=void 0!==t.maskWildcardChar?t.maskWildcardChar:"*",l=!1;e.addEventListener("keydown",function(t){var i=e.value.length,s=t.key;if(t.keyCode>46){if(i>=n.length)return t.preventDefault(),t.stopPropagation(),l=!1,!1;switch(n[i]){case o:if(s.toUpperCase()==s.toLowerCase())return t.preventDefault(),t.stopPropagation(),l=!1,!1;break;case a:if(isNaN(s))return t.preventDefault(),t.stopPropagation(),l=!1,!1;break;case r:break;default:if(s!==n[i])return t.preventDefault(),t.stopPropagation(),l=!1,!1}l=!0}}),e.addEventListener("keyup",function(n){n.keyCode>46&&t.maskAutoFill&&i(e.value.length)}),e.placeholder||(e.placeholder=n),t.maskAutoFill&&i(e.value.length)},Edit.prototype.getEditedCells=function(){var e=[];return this.editedCells.forEach(function(t){e.push(t.getComponent())}),e},Edit.prototype.clearEdited=function(e){var t;e.modules.edit&&e.modules.edit.edited&&(e.modules.validate.invalid=!1,(t=this.editedCells.indexOf(e))>-1&&this.editedCells.splice(t,1))},Edit.prototype.editors={input:function(e,t,i,n,o){function a(e){(null===r||void 0===r)&&""!==l.value||l.value!==r?i(l.value)&&(r=l.value):n()}var r=e.getValue(),l=document.createElement("input");if(l.setAttribute("type",o.search?"search":"text"),l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var s in o.elementAttributes)"+"==s.charAt(0)?(s=s.slice(1),l.setAttribute(s,l.getAttribute(s)+o.elementAttributes["+"+s])):l.setAttribute(s,o.elementAttributes[s]);return l.value=void 0!==r?r:"",t(function(){l.focus({preventScroll:!0}),l.style.height="100%"}),l.addEventListener("change",a),l.addEventListener("blur",a),l.addEventListener("keydown",function(e){switch(e.keyCode){case 13:a(e);break;case 27:n()}}),o.mask&&this.table.modules.edit.maskInput(l,o),l},textarea:function(e,t,i,n,o){function a(t){(null===r||void 0===r)&&""!==u.value||u.value!==r?(i(u.value)&&(r=u.value),setTimeout(function(){e.getRow().normalizeHeight()},300)):n()}var r=e.getValue(),l=o.verticalNavigation||"hybrid",s=String(null!==r&&void 0!==r?r:""),u=(s.match(/(?:\r\n|\r|\n)/g),document.createElement("textarea")),d=0;if(u.style.display="block",u.style.padding="2px",u.style.height="100%",u.style.width="100%",u.style.boxSizing="border-box",u.style.whiteSpace="pre-wrap",u.style.resize="none",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var c in o.elementAttributes)"+"==c.charAt(0)?(c=c.slice(1),u.setAttribute(c,u.getAttribute(c)+o.elementAttributes["+"+c])):u.setAttribute(c,o.elementAttributes[c]);return u.value=s,t(function(){u.focus({preventScroll:!0}),u.style.height="100%"}),u.addEventListener("change",a),u.addEventListener("blur",a),u.addEventListener("keyup",function(){u.style.height="";var t=u.scrollHeight;u.style.height=t+"px",t!=d&&(d=t,e.getRow().normalizeHeight())}),u.addEventListener("keydown",function(e){switch(e.keyCode){case 27:n();break;case 38:("editor"==l||"hybrid"==l&&u.selectionStart)&&(e.stopImmediatePropagation(),e.stopPropagation());break;case 40:("editor"==l||"hybrid"==l&&u.selectionStart!==u.value.length)&&(e.stopImmediatePropagation(),e.stopPropagation())}}),o.mask&&this.table.modules.edit.maskInput(u,o),u},number:function(e,t,i,n,o){function a(){var e=s.value;isNaN(e)||""===e||(e=Number(e)),e!==r?i(e)&&(r=e):n()}var r=e.getValue(),l=o.verticalNavigation||"editor",s=document.createElement("input");if(s.setAttribute("type","number"),void 0!==o.max&&s.setAttribute("max",o.max),void 0!==o.min&&s.setAttribute("min",o.min),void 0!==o.step&&s.setAttribute("step",o.step),s.style.padding="4px",s.style.width="100%",s.style.boxSizing="border-box",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var u in o.elementAttributes)"+"==u.charAt(0)?(u=u.slice(1),s.setAttribute(u,s.getAttribute(u)+o.elementAttributes["+"+u])):s.setAttribute(u,o.elementAttributes[u]);s.value=r;var d=function(e){a()};return t(function(){s.removeEventListener("blur",d),s.focus({preventScroll:!0}),s.style.height="100%",s.addEventListener("blur",d)}),s.addEventListener("keydown",function(e){switch(e.keyCode){case 13:a();break;case 27:n();break;case 38:case 40:"editor"==l&&(e.stopImmediatePropagation(),e.stopPropagation())}}),o.mask&&this.table.modules.edit.maskInput(s,o),s},range:function(e,t,i,n,o){function a(){var e=l.value;isNaN(e)||""===e||(e=Number(e)),e!=r?i(e)&&(r=e):n()}var r=e.getValue(),l=document.createElement("input");if(l.setAttribute("type","range"),void 0!==o.max&&l.setAttribute("max",o.max),void 0!==o.min&&l.setAttribute("min",o.min),void 0!==o.step&&l.setAttribute("step",o.step),l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var s in o.elementAttributes)"+"==s.charAt(0)?(s=s.slice(1),l.setAttribute(s,l.getAttribute(s)+o.elementAttributes["+"+s])):l.setAttribute(s,o.elementAttributes[s]);return l.value=r,t(function(){l.focus({preventScroll:!0}),l.style.height="100%"}),l.addEventListener("blur",function(e){a()}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 13:a();break;case 27:n()}}),l},select:function(e,t,i,n,o){function a(t){var i,n={},a=y.table.getData();return i=t?y.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),i?(a.forEach(function(e){var t=i.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(n[t]=!0)}),n=o.sortValuesList?"asc"==o.sortValuesList?Object.keys(n).sort():Object.keys(n).sort().reverse():Object.keys(n)):console.warn("unable to find matching column to create select lookup list:",t),n}function r(t,i){function n(e){var e={label:e.label,value:e.value,itemParams:e.itemParams,elementAttributes:e.elementAttributes,element:!1};return i.indexOf(e.value)>-1&&u(e),o.push(e),a.push(e),e}var o=[],a=[];if("function"==typeof t&&(t=t(e)),Array.isArray(t))t.forEach(function(e){var t;"object"===(void 0===e?"undefined":_typeof(e))?e.options?(t={label:e.label,group:!0,itemParams:e.itemParams,elementAttributes:e.elementAttributes,element:!1},a.push(t),e.options.forEach(function(e){n(e)})):n(e):(t={label:e,value:e,element:!1},i.indexOf(t.value)>-1&&u(t),o.push(t),a.push(t))});else for(var r in t){var s={label:t[r],value:r,element:!1};i.indexOf(s.value)>-1&&u(s),o.push(s),a.push(s)}P=o,T=a,l()}function l(){for(;w.firstChild;)w.removeChild(w.firstChild);T.forEach(function(t){var i=t.element;if(!i){if(i=document.createElement("div"),t.label=o.listItemFormatter?o.listItemFormatter(t.value,t.label,e,i,t.itemParams):t.label,t.group?(i.classList.add("tabulator-edit-select-list-group"),i.tabIndex=0,i.innerHTML=""===t.label?" ":t.label):(i.classList.add("tabulator-edit-select-list-item"),i.tabIndex=0,i.innerHTML=""===t.label?" ":t.label,i.addEventListener("click",function(){x?(c(t),L.focus()):m(t)}),I.indexOf(t)>-1&&i.classList.add("active")),t.elementAttributes&&"object"==_typeof(t.elementAttributes))for(var n in t.elementAttributes)"+"==n.charAt(0)?(n=n.slice(1),i.setAttribute(n,L.getAttribute(n)+t.elementAttributes["+"+n])):i.setAttribute(n,t.elementAttributes[n]);i.addEventListener("mousedown",function(){S=!1,setTimeout(function(){S=!0},10)}),t.element=i}w.appendChild(i)})}function s(e,t){!x&&N&&N.element&&N.element.classList.remove("active"),N&&N.element&&N.element.classList.remove("focused"),N=e,e.element&&(e.element.classList.add("focused"),t&&e.element.classList.add("active"))}function u(e){-1==I.indexOf(e)&&(I.push(e),s(e,!0)),p()}function d(e){var t=I[e];e>-1&&(I.splice(e,1),t.element&&t.element.classList.remove("active"))}function c(e){e||(e=N);var t=I.indexOf(e);t>-1?d(t):(!0!==x&&I.length>=x&&d(0),u(e)),p()}function m(e){h(),e||(e=N),e&&i(e.value)}function f(){h();var e=[];I.forEach(function(t){e.push(t.value)}),i(e)}function p(){var e=[];I.forEach(function(t){e.push(t.label)}),L.value=e.join(", ")}function v(){h(),n()}function b(){if(!w.parentNode){!0===o.values?r(a(),C):"string"==typeof o.values?r(a(o.values),C):r(o.values||[],C);var e=Tabulator.prototype.helpers.elOffset(E);w.style.minWidth=E.offsetWidth+"px",w.style.top=e.top+E.offsetHeight+"px",w.style.left=e.left+"px",w.addEventListener("mousedown",function(e){S=!1,setTimeout(function(){S=!0},10)}),document.body.appendChild(w)}}function h(){w.parentNode&&w.parentNode.removeChild(w),g()}function g(){y.table.rowManager.element.removeEventListener("scroll",v)}var y=this,E=e.getElement(),A=e.getValue(),k=o.verticalNavigation||"editor",C=void 0!==A||null===A?A:void 0!==o.defaultValue?o.defaultValue:[],L=document.createElement("input"),w=document.createElement("div"),x=o.multiselect,P=[],N={},T=[],I=[],S=!0;if(this.table.rowManager.element.addEventListener("scroll",v),(Array.isArray(o)||!Array.isArray(o)&&"object"===(void 0===o?"undefined":_typeof(o))&&!o.values)&&(console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object"),o={values:o}),L.setAttribute("type","text"),L.style.padding="4px",L.style.width="100%",L.style.boxSizing="border-box",L.style.cursor="default",L.readOnly=0!=this.currentCell,o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var O in o.elementAttributes)"+"==O.charAt(0)?(O=O.slice(1),L.setAttribute(O,L.getAttribute(O)+o.elementAttributes["+"+O])):L.setAttribute(O,o.elementAttributes[O]);return L.value=void 0!==A||null===A?A:"",L.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=P.indexOf(N),("editor"==k||"hybrid"==k&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t>0&&s(P[t-1],!x));break;case 40:t=P.indexOf(N),("editor"==k||"hybrid"==k&&t<P.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<P.length-1&&(-1==t?s(P[0],!x):s(P[t+1],!x)));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault();break;case 13:x?c():m();break;case 27:v()}}),L.addEventListener("blur",function(e){S&&(x?f():v())}),L.addEventListener("focus",function(e){b()}),w=document.createElement("div"),w.classList.add("tabulator-edit-select-list"),t(function(){L.style.height="100%",L.focus({preventScroll:!0})}),L},autocomplete:function(e,t,i,n,o){function a(){!0===o.values?T=r():"string"==typeof o.values&&(T=r(o.values))}function r(t){var i,n={},a=y.table.getData();return i=t?y.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),i?(a.forEach(function(e){var t=i.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(n[t]=!0)}),n=o.sortValuesList?"asc"==o.sortValuesList?Object.keys(n).sort():Object.keys(n).sort().reverse():Object.keys(n)):console.warn("unable to find matching column to create autocomplete lookup list:",t),n}function l(e,t){var i,n,a=[];i=T||(o.values||[]),o.searchFunc?(a=o.searchFunc(e,i),a instanceof Promise?(s(void 0!==o.searchingPlaceholder?o.searchingPlaceholder:"Searching..."),a.then(function(e){c(u(e),t)}).catch(function(e){console.err("error in autocomplete search promise:",e)})):c(u(a),t)):(n=u(i),""===e?o.showListOnEmpty&&(a=n):n.forEach(function(t){null===t.value&&void 0===t.value||(String(t.value).toLowerCase().indexOf(String(e).toLowerCase())>-1||String(t.title).toLowerCase().indexOf(String(e).toLowerCase())>-1)&&a.push(t)}),c(a,t))}function s(e){var t=document.createElement("div");d(),!1!==e&&(t.classList.add("tabulator-edit-select-list-notice"),t.tabIndex=0,e instanceof Node?t.appendChild(e):t.innerHTML=e,w.appendChild(t))}function u(e){var t=[];if(Array.isArray(e))e.forEach(function(e){var i={};"object"===(void 0===e?"undefined":_typeof(e))?(i.title=o.listItemFormatter?o.listItemFormatter(e.value,e.label):e.label,i.value=e.value):(i.title=o.listItemFormatter?o.listItemFormatter(e,e):e,i.value=e),t.push(i)});else for(var i in e){var n={title:o.listItemFormatter?o.listItemFormatter(i,e[i]):e[i],value:i};t.push(n)}return t}function d(){for(;w.firstChild;)w.removeChild(w.firstChild)}function c(e,t){e.length?m(e,t):o.emptyPlaceholder&&s(o.emptyPlaceholder)}function m(e,t){var i=!1;d(),x=e,x.forEach(function(e){var n=e.element;n||(n=document.createElement("div"),n.classList.add("tabulator-edit-select-list-item"),n.tabIndex=0,n.innerHTML=e.title,n.addEventListener("click",function(t){v(e),f()}),n.addEventListener("mousedown",function(e){N=!1,setTimeout(function(){N=!0},10)}),e.element=n,t&&e.value==A&&(L.value=e.title,e.element.classList.add("active"),i=!0),e===P&&(e.element.classList.add("active"),i=!0)),w.appendChild(n)}),i||v(!1)}function f(){b(),P?A!==P.value?(A=P.value,L.value=P.title,i(P.value)):n():o.freetext?(A=L.value,i(L.value)):o.allowEmpty&&""===L.value?(A=L.value,i(L.value)):n()}function p(){if(!w.parentNode){for(;w.firstChild;)w.removeChild(w.firstChild);var e=Tabulator.prototype.helpers.elOffset(E);w.style.minWidth=E.offsetWidth+"px",w.style.top=e.top+E.offsetHeight+"px",w.style.left=e.left+"px",document.body.appendChild(w)}}function v(e,t){P&&P.element&&P.element.classList.remove("active"),P=e,e&&e.element&&e.element.classList.add("active")}function b(){w.parentNode&&w.parentNode.removeChild(w),g()}function h(){b(),n()}function g(){y.table.rowManager.element.removeEventListener("scroll",h)}var y=this,E=e.getElement(),A=e.getValue(),k=o.verticalNavigation||"editor",C=void 0!==A||null===A?A:void 0!==o.defaultValue?o.defaultValue:"",L=document.createElement("input"),w=document.createElement("div"),x=[],P=!1,N=!0,T=!1;if(this.table.rowManager.element.addEventListener("scroll",h),L.setAttribute("type","search"),L.style.padding="4px",L.style.width="100%",L.style.boxSizing="border-box",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var I in o.elementAttributes)"+"==I.charAt(0)?(I=I.slice(1),L.setAttribute(I,L.getAttribute(I)+o.elementAttributes["+"+I])):L.setAttribute(I,o.elementAttributes[I]);return w.classList.add("tabulator-edit-select-list"),w.addEventListener("mousedown",function(e){N=!1,setTimeout(function(){N=!0},10)}),L.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=x.indexOf(P),("editor"==k||"hybrid"==k&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),v(t>0?x[t-1]:!1));break;case 40:t=x.indexOf(P),("editor"==k||"hybrid"==k&&t<x.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<x.length-1&&v(-1==t?x[0]:x[t+1]));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation();break;case 13:f();break;case 27:h();break;case 36:case 35:e.stopImmediatePropagation()}}),L.addEventListener("keyup",function(e){switch(e.keyCode){case 38:case 37:case 39:case 40:case 13:case 27:break;default:l(L.value)}}),L.addEventListener("search",function(e){l(L.value)}),L.addEventListener("blur",function(e){N&&f()}),L.addEventListener("focus",function(e){var t=C;a(),p(),L.value=t,l(t,!0)}),t(function(){L.style.height="100%",L.focus({preventScroll:!0})}),o.mask&&this.table.modules.edit.maskInput(L,o),L},star:function(e,t,i,n,o){function a(e){m.forEach(function(t,i){i<e?("ie"==l.table.browser?t.setAttribute("class","tabulator-star-active"):t.classList.replace("tabulator-star-inactive","tabulator-star-active"),t.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'):("ie"==l.table.browser?t.setAttribute("class","tabulator-star-inactive"):t.classList.replace("tabulator-star-active","tabulator-star-inactive"),t.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>')})}function r(e){u=e,a(e)}var l=this,s=e.getElement(),u=e.getValue(),d=s.getElementsByTagName("svg").length||5,c=s.getElementsByTagName("svg")[0]?s.getElementsByTagName("svg")[0].getAttribute("width"):14,m=[],f=document.createElement("div"),p=document.createElementNS("http://www.w3.org/2000/svg","svg");if(s.style.whiteSpace="nowrap",s.style.overflow="hidden",s.style.textOverflow="ellipsis",f.style.verticalAlign="middle",f.style.display="inline-block",f.style.padding="4px",p.setAttribute("width",c),p.setAttribute("height",c),p.setAttribute("viewBox","0 0 512 512"),p.setAttribute("xml:space","preserve"),p.style.padding="0 1px",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var v in o.elementAttributes)"+"==v.charAt(0)?(v=v.slice(1),f.setAttribute(v,f.getAttribute(v)+o.elementAttributes["+"+v])):f.setAttribute(v,o.elementAttributes[v]);for(var b=1;b<=d;b++)!function(e){var t=document.createElement("span"),n=p.cloneNode(!0);m.push(n),t.addEventListener("mouseenter",function(t){t.stopPropagation(),t.stopImmediatePropagation(),a(e)}),t.addEventListener("mousemove",function(e){e.stopPropagation(),e.stopImmediatePropagation()}),t.addEventListener("click",function(t){t.stopPropagation(),t.stopImmediatePropagation(),i(e),s.blur()}),t.appendChild(n),f.appendChild(t)}(b);return u=Math.min(parseInt(u),d),a(u),f.addEventListener("mousemove",function(e){a(0)}),f.addEventListener("click",function(e){i(0)}),s.addEventListener("blur",function(e){n()}),s.addEventListener("keydown",function(e){switch(e.keyCode){case 39:r(u+1);break;case 37:r(u-1);break;case 13:i(u);break;case 27:n()}}),f},progress:function(e,t,i,n,o){function a(){var e=c*Math.round(p.offsetWidth/(s.clientWidth/100))+d;i(e),s.setAttribute("aria-valuenow",e),s.setAttribute("aria-label",m)}var r,l,s=e.getElement(),u=void 0===o.max?s.getElementsByTagName("div")[0].getAttribute("max")||100:o.max,d=void 0===o.min?s.getElementsByTagName("div")[0].getAttribute("min")||0:o.min,c=(u-d)/100,m=e.getValue()||0,f=document.createElement("div"),p=document.createElement("div");if(f.style.position="absolute",f.style.right="0",f.style.top="0",f.style.bottom="0",f.style.width="5px",f.classList.add("tabulator-progress-handle"),p.style.display="inline-block",p.style.position="relative",p.style.height="100%",p.style.backgroundColor="#488CE9",p.style.maxWidth="100%",p.style.minWidth="0%",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var v in o.elementAttributes)"+"==v.charAt(0)?(v=v.slice(1),p.setAttribute(v,p.getAttribute(v)+o.elementAttributes["+"+v])):p.setAttribute(v,o.elementAttributes[v]);return s.style.padding="4px 4px",m=Math.min(parseFloat(m),u),m=Math.max(parseFloat(m),d),m=Math.round((m-d)/c),p.style.width=m+"%",s.setAttribute("aria-valuemin",d),s.setAttribute("aria-valuemax",u),p.appendChild(f),f.addEventListener("mousedown",function(e){r=e.screenX,l=p.offsetWidth}),f.addEventListener("mouseover",function(){f.style.cursor="ew-resize"}),s.addEventListener("mousemove",function(e){r&&(p.style.width=l+e.screenX-r+"px")}),s.addEventListener("mouseup",function(e){r&&(e.stopPropagation(),e.stopImmediatePropagation(),r=!1,l=!1,a())}),s.addEventListener("keydown",function(e){switch(e.keyCode){case 39:e.preventDefault(),p.style.width=p.clientWidth+s.clientWidth/100+"px";break;case 37:e.preventDefault(),p.style.width=p.clientWidth-s.clientWidth/100+"px";break;case 9:case 13:a();break;case 27:n()}}),s.addEventListener("blur",function(){n()}),p},tickCross:function(e,t,i,n,o){function a(e){return s?e?d?u:l.checked:l.checked&&!d?(l.checked=!1,l.indeterminate=!0,d=!0,u):(d=!1,l.checked):l.checked}var r=e.getValue(),l=document.createElement("input"),s=o.tristate,u=void 0===o.indeterminateValue?null:o.indeterminateValue,d=!1;if(l.setAttribute("type","checkbox"),l.style.marginTop="5px",l.style.boxSizing="border-box",o.elementAttributes&&"object"==_typeof(o.elementAttributes))for(var c in o.elementAttributes)"+"==c.charAt(0)?(c=c.slice(1),l.setAttribute(c,l.getAttribute(c)+o.elementAttributes["+"+c])):l.setAttribute(c,o.elementAttributes[c]);return l.value=r,!s||void 0!==r&&r!==u&&""!==r||(d=!0,l.indeterminate=!0),"firefox"!=this.table.browser&&t(function(){l.focus({preventScroll:!0})}),l.checked=!0===r||"true"===r||"True"===r||1===r,l.addEventListener("change",function(e){i(a())}),l.addEventListener("blur",function(e){i(a(!0))}),l.addEventListener("keydown",function(e){13==e.keyCode&&i(a()),27==e.keyCode&&n()}),l}},Tabulator.prototype.registerModule("edit",Edit);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var ExportRow = function ExportRow(type, columns, component, indent) {
- this.type = type;
- this.columns = columns;
- this.component = component || false;
- this.indent = indent || 0;
-};
-
-var ExportColumn = function ExportColumn(value, component, width, height, depth) {
- this.value = value;
- this.component = component || false;
- this.width = width;
- this.height = height;
- this.depth = depth;
-};
-
-var Export = function Export(table) {
- this.table = table; //hold Tabulator object
- this.config = {};
- this.cloneTableStyle = true;
- this.colVisProp = "";
-};
-
-Export.prototype.generateExportList = function (config, style, range, colVisProp) {
- this.cloneTableStyle = style;
- this.config = config || {};
- this.colVisProp = colVisProp;
-
- var headers = this.config.columnHeaders !== false ? this.headersToExportRows(this.generateColumnGroupHeaders()) : [];
- var body = this.bodyToExportRows(this.rowLookup(range));
-
- return headers.concat(body);
-};
-
-Export.prototype.genereateTable = function (config, style, range, colVisProp) {
- var list = this.generateExportList(config, style, range, colVisProp);
-
- return this.genereateTableElement(list);
-};
-
-Export.prototype.rowLookup = function (range) {
- var _this = this;
-
- var rows = [];
-
- if (typeof range == "function") {
- range.call(this.table).forEach(function (row) {
- row = _this.table.rowManager.findRow(row);
-
- if (row) {
- rows.push(row);
- }
- });
- } else {
- switch (range) {
- case true:
- case "visible":
- rows = this.table.rowManager.getVisibleRows(true);
- break;
-
- case "all":
- rows = this.table.rowManager.rows;
- break;
-
- case "selected":
- rows = this.table.modules.selectRow.selectedRows;
- break;
-
- case "active":
- default:
- rows = this.table.rowManager.getDisplayRows();
- }
- }
-
- return Object.assign([], rows);
-};
-
-Export.prototype.generateColumnGroupHeaders = function () {
- var _this2 = this;
-
- var output = [];
-
- var columns = this.config.columnGroups !== false ? this.table.columnManager.columns : this.table.columnManager.columnsByIndex;
-
- columns.forEach(function (column) {
- var colData = _this2.processColumnGroup(column);
-
- if (colData) {
- output.push(colData);
- }
- });
-
- return output;
-};
-
-Export.prototype.processColumnGroup = function (column) {
- var _this3 = this;
-
- var subGroups = column.columns,
- maxDepth = 0,
- title = column.definition["title" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))] || column.definition.title;
-
- var groupData = {
- title: title,
- column: column,
- depth: 1
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
- groupData.width = 0;
-
- subGroups.forEach(function (subGroup) {
- var subGroupData = _this3.processColumnGroup(subGroup);
-
- if (subGroupData) {
- groupData.width += subGroupData.width;
- groupData.subGroups.push(subGroupData);
-
- if (subGroupData.depth > maxDepth) {
- maxDepth = subGroupData.depth;
- }
- }
- });
-
- groupData.depth += maxDepth;
-
- if (!groupData.width) {
- return false;
- }
- } else {
- if (this.columnVisCheck(column)) {
- groupData.width = 1;
- } else {
- return false;
- }
- }
-
- return groupData;
-};
-
-Export.prototype.columnVisCheck = function (column) {
- return column.definition[this.colVisProp] !== false && (column.visible || !column.visible && column.definition[this.colVisProp]);
-};
-
-Export.prototype.headersToExportRows = function (columns) {
- var headers = [],
- headerDepth = 0,
- exportRows = [];
-
- function parseColumnGroup(column, level) {
-
- var depth = headerDepth - level;
-
- if (typeof headers[level] === "undefined") {
- headers[level] = [];
- }
-
- column.height = column.subGroups ? 1 : depth - column.depth + 1;
-
- headers[level].push(column);
-
- if (column.height > 1) {
- for (var _i = 1; _i < column.height; _i++) {
-
- if (typeof headers[level + _i] === "undefined") {
- headers[level + _i] = [];
- }
-
- headers[level + _i].push(false);
- }
- }
-
- if (column.width > 1) {
- for (var _i2 = 1; _i2 < column.width; _i2++) {
- headers[level].push(false);
- }
- }
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- }
- }
-
- //calculate maximum header debth
- columns.forEach(function (column) {
- if (column.depth > headerDepth) {
- headerDepth = column.depth;
- }
- });
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
-
- headers.forEach(function (header) {
- var columns = [];
-
- header.forEach(function (col) {
- if (col) {
- columns.push(new ExportColumn(col.title, col.column.getComponent(), col.width, col.height, col.depth));
- } else {
- columns.push(null);
- }
- });
-
- exportRows.push(new ExportRow("header", columns));
- });
-
- return exportRows;
-};
-
-Export.prototype.bodyToExportRows = function (rows) {
- var _this4 = this;
-
- var columns = [];
- var exportRows = [];
-
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (_this4.columnVisCheck(column)) {
- columns.push(column.getComponent());
- }
- });
-
- if (this.config.columnCalcs !== false && this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized) {
- rows.unshift(this.table.modules.columnCalcs.topRow);
- }
-
- if (this.table.modules.columnCalcs.botInitialized) {
- rows.push(this.table.modules.columnCalcs.botRow);
- }
- }
-
- rows = rows.filter(function (row) {
- switch (row.type) {
- case "group":
- return _this4.config.rowGroups !== false;
- break;
-
- case "calc":
- return _this4.config.columnCalcs !== false;
- break;
-
- case "row":
- return !(_this4.table.options.dataTree && _this4.config.dataTree === false && row.modules.dataTree.parent);
- break;
- }
-
- return true;
- });
-
- rows.forEach(function (row, i) {
- var rowData = row.getData(_this4.colVisProp);
- var exportCols = [];
- var indent = 0;
-
- switch (row.type) {
- case "group":
- indent = row.level;
- exportCols.push(new ExportColumn(row.key, row.getComponent(), columns.length, 1));
- break;
-
- case "calc":
- case "row":
- columns.forEach(function (col) {
- exportCols.push(new ExportColumn(col._column.getFieldValue(rowData), col, 1, 1));
- });
-
- if (_this4.table.options.dataTree && _this4.config.dataTree !== false) {
- indent = row.modules.dataTree.index;
- }
- break;
- }
-
- exportRows.push(new ExportRow(row.type, exportCols, row.getComponent(), indent));
- });
-
- return exportRows;
-};
-
-Export.prototype.genereateTableElement = function (list) {
- var _this5 = this;
-
- var table = document.createElement("table"),
- headerEl = document.createElement("thead"),
- bodyEl = document.createElement("tbody"),
- styles = this.lookupTableStyles(),
- rowFormatter = this.table.options["rowFormatter" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))],
- setup = {};
-
- setup.rowFormatter = rowFormatter !== null ? rowFormatter : this.table.options.rowFormatter;
-
- if (this.table.options.dataTree && this.config.dataTree !== false && this.table.modExists("columnCalcs")) {
- setup.treeElementField = this.table.modules.dataTree.elementField;
- }
-
- //assign group header formatter
- setup.groupHeader = this.table.options["groupHeader" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))];
-
- if (setup.groupHeader && !Array.isArray(setup.groupHeader)) {
- setup.groupHeader = [setup.groupHeader];
- }
-
- table.classList.add("tabulator-print-table");
-
- this.mapElementStyles(this.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
-
- if (list.length > 1000) {
- console.warn("It may take a long time to render an HTML table with more than 1000 rows");
- }
-
- list.forEach(function (row, i) {
- switch (row.type) {
- case "header":
- headerEl.appendChild(_this5.genereateHeaderElement(row, setup, styles));
- break;
-
- case "group":
- bodyEl.appendChild(_this5.genereateGroupElement(row, setup, styles));
- break;
-
- case "calc":
- bodyEl.appendChild(_this5.genereateCalcElement(row, setup, styles));
- break;
-
- case "row":
- var rowEl = _this5.genereateRowElement(row, setup, styles);
- _this5.mapElementStyles(i % 2 && styles.evenRow ? styles.evenRow : styles.oddRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
- bodyEl.appendChild(rowEl);
- break;
- }
- });
-
- if (headerEl.innerHTML) {
- table.appendChild(headerEl);
- }
-
- table.appendChild(bodyEl);
-
- this.mapElementStyles(this.table.element, table, ["border-top", "border-left", "border-right", "border-bottom"]);
- return table;
-};
-
-Export.prototype.lookupTableStyles = function () {
- var styles = {};
-
- //lookup row styles
- if (this.cloneTableStyle && window.getComputedStyle) {
- styles.oddRow = this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)");
- styles.evenRow = this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)");
- styles.calcRow = this.table.element.querySelector(".tabulator-row.tabulator-calcs");
- styles.firstRow = this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)");
- styles.firstGroup = this.table.element.getElementsByClassName("tabulator-group")[0];
-
- if (styles.firstRow) {
- styles.styleCells = styles.firstRow.getElementsByClassName("tabulator-cell");
- styles.firstCell = styles.styleCells[0];
- styles.lastCell = styles.styleCells[styles.styleCells.length - 1];
- }
- }
-
- return styles;
-};
-
-Export.prototype.genereateHeaderElement = function (row, setup, styles) {
- var _this6 = this;
-
- var rowEl = document.createElement("tr");
-
- row.columns.forEach(function (column) {
- if (column) {
- var cellEl = document.createElement("th");
- var classNames = column.component._column.definition.cssClass ? column.component._column.definition.cssClass.split(" ") : [];
-
- cellEl.colSpan = column.width;
- cellEl.rowSpan = column.height;
-
- cellEl.innerHTML = column.value;
-
- if (_this6.cloneTableStyle) {
- cellEl.style.boxSizing = "border-box";
- }
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- _this6.mapElementStyles(column.component.getElement(), cellEl, ["text-align", "border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
- _this6.mapElementStyles(column.component._column.contentElement, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
-
- if (column.component._column.visible) {
- _this6.mapElementStyles(column.component.getElement(), cellEl, ["width"]);
- } else {
- if (column.component._column.definition.width) {
- cellEl.style.width = column.component._column.definition.width + "px";
- }
- }
-
- if (column.component._column.parent) {
- _this6.mapElementStyles(column.component._column.parent.groupElement, cellEl, ["border-top"]);
- }
-
- rowEl.appendChild(cellEl);
- }
- });
-
- return rowEl;
-};
-
-Export.prototype.genereateGroupElement = function (row, setup, styles) {
-
- var rowEl = document.createElement("tr"),
- cellEl = document.createElement("td"),
- group = row.columns[0];
-
- rowEl.classList.add("tabulator-print-table-row");
-
- if (setup.groupHeader && setup.groupHeader[row.indent]) {
- group.value = setup.groupHeader[row.indent](group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);
- } else {
- if (setup.groupHeader === false) {
- group.value = group.value;
- } else {
- group.value = row.component._group.generator(group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);
- }
- }
-
- cellEl.colSpan = group.width;
- cellEl.innerHTML = group.value;
-
- rowEl.classList.add("tabulator-print-table-group");
- rowEl.classList.add("tabulator-group-level-" + row.indent);
-
- if (group.component.getVisibility()) {
- rowEl.classList.add("tabulator-group-visible");
- }
-
- this.mapElementStyles(styles.firstGroup, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
- this.mapElementStyles(styles.firstGroup, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
-
- rowEl.appendChild(cellEl);
-
- return rowEl;
-};
-
-Export.prototype.genereateCalcElement = function (row, setup, styles) {
- var rowEl = this.genereateRowElement(row, setup, styles);
-
- rowEl.classList.add("tabulator-print-table-calcs");
- this.mapElementStyles(styles.calcRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
-
- return rowEl;
-};
-
-Export.prototype.genereateRowElement = function (row, setup, styles) {
- var _this7 = this;
-
- var rowEl = document.createElement("tr");
-
- rowEl.classList.add("tabulator-print-table-row");
-
- row.columns.forEach(function (col) {
-
- if (col) {
- var cellEl = document.createElement("td"),
- column = col.component._column,
- value = col.value;
-
- var cellWrapper = {
- modules: {},
- getValue: function getValue() {
- return value;
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return cellEl;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getData: function getData() {
- return rowData;
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getComponent: function getComponent() {
- return cellWrapper;
- },
- column: column
- };
-
- var classNames = column.definition.cssClass ? column.definition.cssClass.split(" ") : [];
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- if (_this7.table.modExists("format") && _this7.config.formatCells !== false) {
- value = _this7.table.modules.format.formatExportValue(cellWrapper, _this7.colVisProp);
- } else {
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
- }
-
- if (value instanceof Node) {
- cellEl.appendChild(value);
- } else {
- cellEl.innerHTML = value;
- }
-
- if (styles.firstCell) {
- _this7.mapElementStyles(styles.firstCell, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
-
- if (column.definition.align) {
- cellEl.style.textAlign = column.definition.align;
- }
- }
-
- if (_this7.table.options.dataTree && _this7.config.dataTree !== false) {
- if (setup.treeElementField && setup.treeElementField == column.field || !setup.treeElementField && i == 0) {
- if (row.component._row.modules.dataTree.controlEl) {
- cellEl.insertBefore(row.component._row.modules.dataTree.controlEl.cloneNode(true), cellEl.firstChild);
- }
- if (row.component._row.modules.dataTree.branchEl) {
- cellEl.insertBefore(row.component._row.modules.dataTree.branchEl.cloneNode(true), cellEl.firstChild);
- }
- }
- }
-
- rowEl.appendChild(cellEl);
-
- if (cellWrapper.modules.format && cellWrapper.modules.format.renderedCallback) {
- cellWrapper.modules.format.renderedCallback();
- }
-
- if (setup.rowFormatter && _this7.config.formatCells !== false) {
- var rowComponent = row.getComponent();
-
- rowComponent.getElement = function () {
- return rowEl;
- };
-
- setup.rowFormatter(rowComponent);
- }
- }
- });
-
- return rowEl;
-};
-
-Export.prototype.genereateHTMLTable = function (list) {
- var holder = document.createElement("div");
-
- holder.appendChild(this.genereateTableElement(list));
-
- return holder.innerHTML;
-};
-
-Export.prototype.getHtml = function (visible, style, config, colVisProp) {
- var list = this.generateExportList(config || this.table.options.htmlOutputConfig, style, visible, colVisProp || "htmlOutput");
-
- return this.genereateHTMLTable(list);
-};
-
-Export.prototype.mapElementStyles = function (from, to, props) {
- if (this.cloneTableStyle && from && to) {
-
- var lookup = {
- "background-color": "backgroundColor",
- "color": "fontColor",
- "width": "width",
- "font-weight": "fontWeight",
- "font-family": "fontFamily",
- "font-size": "fontSize",
- "text-align": "textAlign",
- "border-top": "borderTop",
- "border-left": "borderLeft",
- "border-right": "borderRight",
- "border-bottom": "borderBottom",
- "padding-top": "paddingTop",
- "padding-left": "paddingLeft",
- "padding-right": "paddingRight",
- "padding-bottom": "paddingBottom"
- };
-
- if (window.getComputedStyle) {
- var fromStyle = window.getComputedStyle(from);
-
- props.forEach(function (prop) {
- to.style[lookup[prop]] = fromStyle.getPropertyValue(prop);
- });
- }
- }
-};
-
-Tabulator.prototype.registerModule("export", Export);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ExportRow=function(t,e,o,r){this.type=t,this.columns=e,this.component=o||!1,this.indent=r||0},ExportColumn=function(t,e,o,r,n){this.value=t,this.component=e||!1,this.width=o,this.height=r,this.depth=n},Export=function(t){this.table=t,this.config={},this.cloneTableStyle=!0,this.colVisProp=""};Export.prototype.generateExportList=function(t,e,o,r){this.cloneTableStyle=e,this.config=t||{},this.colVisProp=r;var n=!1!==this.config.columnHeaders?this.headersToExportRows(this.generateColumnGroupHeaders()):[],l=this.bodyToExportRows(this.rowLookup(o));return n.concat(l)},Export.prototype.genereateTable=function(t,e,o,r){var n=this.generateExportList(t,e,o,r);return this.genereateTableElement(n)},Export.prototype.rowLookup=function(t){var e=this,o=[];if("function"==typeof t)t.call(this.table).forEach(function(t){(t=e.table.rowManager.findRow(t))&&o.push(t)});else switch(t){case!0:case"visible":o=this.table.rowManager.getVisibleRows(!0);break;case"all":o=this.table.rowManager.rows;break;case"selected":o=this.table.modules.selectRow.selectedRows;break;case"active":default:o=this.table.rowManager.getDisplayRows()}return Object.assign([],o)},Export.prototype.generateColumnGroupHeaders=function(){var t=this,e=[];return(!1!==this.config.columnGroups?this.table.columnManager.columns:this.table.columnManager.columnsByIndex).forEach(function(o){var r=t.processColumnGroup(o);r&&e.push(r)}),e},Export.prototype.processColumnGroup=function(t){var e=this,o=t.columns,r=0,n=t.definition["title"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))]||t.definition.title,l={title:n,column:t,depth:1};if(o.length){if(l.subGroups=[],l.width=0,o.forEach(function(t){var o=e.processColumnGroup(t);o&&(l.width+=o.width,l.subGroups.push(o),o.depth>r&&(r=o.depth))}),l.depth+=r,!l.width)return!1}else{if(!this.columnVisCheck(t))return!1;l.width=1}return l},Export.prototype.columnVisCheck=function(t){return!1!==t.definition[this.colVisProp]&&(t.visible||!t.visible&&t.definition[this.colVisProp])},Export.prototype.headersToExportRows=function(t){function e(t,n){var l=r-n;if(void 0===o[n]&&(o[n]=[]),t.height=t.subGroups?1:l-t.depth+1,o[n].push(t),t.height>1)for(var a=1;a<t.height;a++)void 0===o[n+a]&&(o[n+a]=[]),o[n+a].push(!1);if(t.width>1)for(var i=1;i<t.width;i++)o[n].push(!1);t.subGroups&&t.subGroups.forEach(function(t){e(t,n+1)})}var o=[],r=0,n=[];return t.forEach(function(t){t.depth>r&&(r=t.depth)}),t.forEach(function(t){e(t,0)}),o.forEach(function(t){var e=[];t.forEach(function(t){t?e.push(new ExportColumn(t.title,t.column.getComponent(),t.width,t.height,t.depth)):e.push(null)}),n.push(new ExportRow("header",e))}),n},Export.prototype.bodyToExportRows=function(t){var e=this,o=[],r=[];return this.table.columnManager.columnsByIndex.forEach(function(t){e.columnVisCheck(t)&&o.push(t.getComponent())}),!1!==this.config.columnCalcs&&this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&t.unshift(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&t.push(this.table.modules.columnCalcs.botRow)),t=t.filter(function(t){switch(t.type){case"group":return!1!==e.config.rowGroups;case"calc":return!1!==e.config.columnCalcs;case"row":return!(e.table.options.dataTree&&!1===e.config.dataTree&&t.modules.dataTree.parent)}return!0}),t.forEach(function(t,n){var l=t.getData(e.colVisProp),a=[],i=0;switch(t.type){case"group":i=t.level,a.push(new ExportColumn(t.key,t.getComponent(),o.length,1));break;case"calc":case"row":o.forEach(function(t){a.push(new ExportColumn(t._column.getFieldValue(l),t,1,1))}),e.table.options.dataTree&&!1!==e.config.dataTree&&(i=t.modules.dataTree.index)}r.push(new ExportRow(t.type,a,t.getComponent(),i))}),r},Export.prototype.genereateTableElement=function(t){var e=this,o=document.createElement("table"),r=document.createElement("thead"),n=document.createElement("tbody"),l=this.lookupTableStyles(),a=this.table.options["rowFormatter"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))],i={};return i.rowFormatter=null!==a?a:this.table.options.rowFormatter,this.table.options.dataTree&&!1!==this.config.dataTree&&this.table.modExists("columnCalcs")&&(i.treeElementField=this.table.modules.dataTree.elementField),i.groupHeader=this.table.options["groupHeader"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))],i.groupHeader&&!Array.isArray(i.groupHeader)&&(i.groupHeader=[i.groupHeader]),o.classList.add("tabulator-print-table"),this.mapElementStyles(this.table.columnManager.getHeadersElement(),r,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),t.length>1e3&&console.warn("It may take a long time to render an HTML table with more than 1000 rows"),t.forEach(function(t,o){switch(t.type){case"header":r.appendChild(e.genereateHeaderElement(t,i,l));break;case"group":n.appendChild(e.genereateGroupElement(t,i,l));break;case"calc":n.appendChild(e.genereateCalcElement(t,i,l));break;case"row":var a=e.genereateRowElement(t,i,l);e.mapElementStyles(o%2&&l.evenRow?l.evenRow:l.oddRow,a,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),n.appendChild(a)}}),r.innerHTML&&o.appendChild(r),o.appendChild(n),this.mapElementStyles(this.table.element,o,["border-top","border-left","border-right","border-bottom"]),o},Export.prototype.lookupTableStyles=function(){var t={};return this.cloneTableStyle&&window.getComputedStyle&&(t.oddRow=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),t.evenRow=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),t.calcRow=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),t.firstRow=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),t.firstGroup=this.table.element.getElementsByClassName("tabulator-group")[0],t.firstRow&&(t.styleCells=t.firstRow.getElementsByClassName("tabulator-cell"),t.firstCell=t.styleCells[0],t.lastCell=t.styleCells[t.styleCells.length-1])),t},Export.prototype.genereateHeaderElement=function(t,e,o){var r=this,n=document.createElement("tr");return t.columns.forEach(function(t){if(t){var e=document.createElement("th"),o=t.component._column.definition.cssClass?t.component._column.definition.cssClass.split(" "):[];e.colSpan=t.width,e.rowSpan=t.height,e.innerHTML=t.value,r.cloneTableStyle&&(e.style.boxSizing="border-box"),o.forEach(function(t){e.classList.add(t)}),r.mapElementStyles(t.component.getElement(),e,["text-align","border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),r.mapElementStyles(t.component._column.contentElement,e,["padding-top","padding-left","padding-right","padding-bottom"]),t.component._column.visible?r.mapElementStyles(t.component.getElement(),e,["width"]):t.component._column.definition.width&&(e.style.width=t.component._column.definition.width+"px"),t.component._column.parent&&r.mapElementStyles(t.component._column.parent.groupElement,e,["border-top"]),n.appendChild(e)}}),n},Export.prototype.genereateGroupElement=function(t,e,o){var r=document.createElement("tr"),n=document.createElement("td"),l=t.columns[0];return r.classList.add("tabulator-print-table-row"),e.groupHeader&&e.groupHeader[t.indent]?l.value=e.groupHeader[t.indent](l.value,t.component._group.getRowCount(),t.component._group.getData(),t.component):!1===e.groupHeader?l.value=l.value:l.value=t.component._group.generator(l.value,t.component._group.getRowCount(),t.component._group.getData(),t.component),n.colSpan=l.width,n.innerHTML=l.value,r.classList.add("tabulator-print-table-group"),r.classList.add("tabulator-group-level-"+t.indent),l.component.getVisibility()&&r.classList.add("tabulator-group-visible"),this.mapElementStyles(o.firstGroup,r,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),this.mapElementStyles(o.firstGroup,n,["padding-top","padding-left","padding-right","padding-bottom"]),r.appendChild(n),r},Export.prototype.genereateCalcElement=function(t,e,o){var r=this.genereateRowElement(t,e,o);return r.classList.add("tabulator-print-table-calcs"),this.mapElementStyles(o.calcRow,r,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),r},Export.prototype.genereateRowElement=function(t,e,o){var r=this,n=document.createElement("tr");return n.classList.add("tabulator-print-table-row"),t.columns.forEach(function(l){if(l){var a=document.createElement("td"),s=l.component._column,p=l.value,c={modules:{},getValue:function(){return p},getField:function(){return s.definition.field},getElement:function(){return a},getColumn:function(){return s.getComponent()},getData:function(){return rowData},getRow:function(){return t.getComponent()},getComponent:function(){return c},column:s};if((s.definition.cssClass?s.definition.cssClass.split(" "):[]).forEach(function(t){a.classList.add(t)}),r.table.modExists("format")&&!1!==r.config.formatCells)p=r.table.modules.format.formatExportValue(c,r.colVisProp);else switch(void 0===p?"undefined":_typeof(p)){case"object":p=JSON.stringify(p);break;case"undefined":case"null":p="";break;default:p=p}if(p instanceof Node?a.appendChild(p):a.innerHTML=p,o.firstCell&&(r.mapElementStyles(o.firstCell,a,["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size"]),s.definition.align&&(a.style.textAlign=s.definition.align)),r.table.options.dataTree&&!1!==r.config.dataTree&&(e.treeElementField&&e.treeElementField==s.field||!e.treeElementField&&0==i)&&(t.component._row.modules.dataTree.controlEl&&a.insertBefore(t.component._row.modules.dataTree.controlEl.cloneNode(!0),a.firstChild),t.component._row.modules.dataTree.branchEl&&a.insertBefore(t.component._row.modules.dataTree.branchEl.cloneNode(!0),a.firstChild)),n.appendChild(a),c.modules.format&&c.modules.format.renderedCallback&&c.modules.format.renderedCallback(),e.rowFormatter&&!1!==r.config.formatCells){var u=t.getComponent();u.getElement=function(){return n},e.rowFormatter(u)}}}),n},Export.prototype.genereateHTMLTable=function(t){var e=document.createElement("div");return e.appendChild(this.genereateTableElement(t)),e.innerHTML},Export.prototype.getHtml=function(t,e,o,r){var n=this.generateExportList(o||this.table.options.htmlOutputConfig,e,t,r||"htmlOutput");return this.genereateHTMLTable(n)},Export.prototype.mapElementStyles=function(t,e,o){if(this.cloneTableStyle&&t&&e){var r={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var n=window.getComputedStyle(t);o.forEach(function(t){e.style[r[t]]=n.getPropertyValue(t)})}}},Tabulator.prototype.registerModule("export",Export);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Filter = function Filter(table) {
-
- this.table = table; //hold Tabulator object
-
- this.filterList = []; //hold filter list
- this.headerFilters = {}; //hold column filters
- this.headerFilterColumns = []; //hold columns that use header filters
-
- this.prevHeaderFilterChangeCheck = "";
- this.prevHeaderFilterChangeCheck = "{}";
-
- this.changed = false; //has filtering changed since last render
-};
-
-//initialize column header filter
-Filter.prototype.initializeColumn = function (column, value) {
- var self = this,
- field = column.getField(),
- params;
-
- //handle successfull value change
- function success(value) {
- var filterType = column.modules.filter.tagType == "input" && column.modules.filter.attrType == "text" || column.modules.filter.tagType == "textarea" ? "partial" : "match",
- type = "",
- filterChangeCheck = "",
- filterFunc;
-
- if (typeof column.modules.filter.prevSuccess === "undefined" || column.modules.filter.prevSuccess !== value) {
-
- column.modules.filter.prevSuccess = value;
-
- if (!column.modules.filter.emptyFunc(value)) {
- column.modules.filter.value = value;
-
- switch (_typeof(column.definition.headerFilterFunc)) {
- case "string":
- if (self.filters[column.definition.headerFilterFunc]) {
- type = column.definition.headerFilterFunc;
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return self.filters[column.definition.headerFilterFunc](value, fieldVal, data, params);
- };
- } else {
- console.warn("Header Filter Error - Matching filter function not found: ", column.definition.headerFilterFunc);
- }
- break;
-
- case "function":
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return column.definition.headerFilterFunc(value, fieldVal, data, params);
- };
-
- type = filterFunc;
- break;
- }
-
- if (!filterFunc) {
- switch (filterType) {
- case "partial":
- filterFunc = function filterFunc(data) {
- var colVal = column.getFieldValue(data);
-
- if (typeof colVal !== 'undefined' && colVal !== null) {
- return String(colVal).toLowerCase().indexOf(String(value).toLowerCase()) > -1;
- } else {
- return false;
- }
- };
- type = "like";
- break;
-
- default:
- filterFunc = function filterFunc(data) {
- return column.getFieldValue(data) == value;
- };
- type = "=";
- }
- }
-
- self.headerFilters[field] = { value: value, func: filterFunc, type: type, params: params || {} };
- } else {
- delete self.headerFilters[field];
- }
-
- filterChangeCheck = JSON.stringify(self.headerFilters);
-
- if (self.prevHeaderFilterChangeCheck !== filterChangeCheck) {
- self.prevHeaderFilterChangeCheck = filterChangeCheck;
-
- self.changed = true;
- self.table.rowManager.filterRefresh();
- }
- }
-
- return true;
- }
-
- column.modules.filter = {
- success: success,
- attrType: false,
- tagType: false,
- emptyFunc: false
- };
-
- this.generateHeaderFilterElement(column);
-};
-
-Filter.prototype.generateHeaderFilterElement = function (column, initialValue, reinitialize) {
- var _this = this;
-
- var self = this,
- success = column.modules.filter.success,
- field = column.getField(),
- filterElement,
- editor,
- editorElement,
- cellWrapper,
- typingTimer,
- searchTrigger,
- params;
-
- //handle aborted edit
- function cancel() {}
-
- if (column.modules.filter.headerElement && column.modules.filter.headerElement.parentNode) {
- column.contentElement.removeChild(column.modules.filter.headerElement.parentNode);
- }
-
- if (field) {
-
- //set empty value function
- column.modules.filter.emptyFunc = column.definition.headerFilterEmptyCheck || function (value) {
- return !value && value !== "0";
- };
-
- filterElement = document.createElement("div");
- filterElement.classList.add("tabulator-header-filter");
-
- //set column editor
- switch (_typeof(column.definition.headerFilter)) {
- case "string":
- if (self.table.modules.edit.editors[column.definition.headerFilter]) {
- editor = self.table.modules.edit.editors[column.definition.headerFilter];
-
- if ((column.definition.headerFilter === "tick" || column.definition.headerFilter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- console.warn("Filter Error - Cannot build header filter, No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- editor = column.definition.headerFilter;
- break;
-
- case "boolean":
- if (column.modules.edit && column.modules.edit.editor) {
- editor = column.modules.edit.editor;
- } else {
- if (column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]) {
- editor = self.table.modules.edit.editors[column.definition.formatter];
-
- if ((column.definition.formatter === "tick" || column.definition.formatter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- editor = self.table.modules.edit.editors["input"];
- }
- }
- break;
- }
-
- if (editor) {
-
- cellWrapper = {
- getValue: function getValue() {
- return typeof initialValue !== "undefined" ? initialValue : "";
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return filterElement;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getRow: function getRow() {
- return {
- normalizeHeight: function normalizeHeight() {}
- };
- }
- };
-
- params = column.definition.headerFilterParams || {};
-
- params = typeof params === "function" ? params.call(self.table) : params;
-
- editorElement = editor.call(this.table.modules.edit, cellWrapper, function () {}, success, cancel, params);
-
- if (!editorElement) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor returned a value of false");
- return;
- }
-
- if (!(editorElement instanceof Node)) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor should return an instance of Node, the editor returned:", editorElement);
- return;
- }
-
- //set Placeholder Text
- if (field) {
- self.table.modules.localize.bind("headerFilters|columns|" + column.definition.field, function (value) {
- editorElement.setAttribute("placeholder", typeof value !== "undefined" && value ? value : self.table.modules.localize.getText("headerFilters|default"));
- });
- } else {
- self.table.modules.localize.bind("headerFilters|default", function (value) {
- editorElement.setAttribute("placeholder", typeof self.column.definition.headerFilterPlaceholder !== "undefined" && self.column.definition.headerFilterPlaceholder ? self.column.definition.headerFilterPlaceholder : value);
- });
- }
-
- //focus on element on click
- editorElement.addEventListener("click", function (e) {
- e.stopPropagation();
- editorElement.focus();
- });
-
- editorElement.addEventListener("focus", function (e) {
- var left = _this.table.columnManager.element.scrollLeft;
-
- if (left !== _this.table.rowManager.element.scrollLeft) {
- _this.table.rowManager.scrollHorizontal(left);
- _this.table.columnManager.scrollHorizontal(left);
- }
- });
-
- //live update filters as user types
- typingTimer = false;
-
- searchTrigger = function searchTrigger(e) {
- if (typingTimer) {
- clearTimeout(typingTimer);
- }
-
- typingTimer = setTimeout(function () {
- success(editorElement.value);
- }, self.table.options.headerFilterLiveFilterDelay);
- };
-
- column.modules.filter.headerElement = editorElement;
- column.modules.filter.attrType = editorElement.hasAttribute("type") ? editorElement.getAttribute("type").toLowerCase() : "";
- column.modules.filter.tagType = editorElement.tagName.toLowerCase();
-
- if (column.definition.headerFilterLiveFilter !== false) {
-
- if (!(column.definition.headerFilter === 'autocomplete' || column.definition.headerFilter === 'tickCross' || (column.definition.editor === 'autocomplete' || column.definition.editor === 'tickCross') && column.definition.headerFilter === true)) {
- editorElement.addEventListener("keyup", searchTrigger);
- editorElement.addEventListener("search", searchTrigger);
-
- //update number filtered columns on change
- if (column.modules.filter.attrType == "number") {
- editorElement.addEventListener("change", function (e) {
- success(editorElement.value);
- });
- }
-
- //change text inputs to search inputs to allow for clearing of field
- if (column.modules.filter.attrType == "text" && this.table.browser !== "ie") {
- editorElement.setAttribute("type", "search");
- // editorElement.off("change blur"); //prevent blur from triggering filter and preventing selection click
- }
- }
-
- //prevent input and select elements from propegating click to column sorters etc
- if (column.modules.filter.tagType == "input" || column.modules.filter.tagType == "select" || column.modules.filter.tagType == "textarea") {
- editorElement.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
- }
- }
-
- filterElement.appendChild(editorElement);
-
- column.contentElement.appendChild(filterElement);
-
- if (!reinitialize) {
- self.headerFilterColumns.push(column);
- }
- }
- } else {
- console.warn("Filter Error - Cannot add header filter, column has no field set:", column.definition.title);
- }
-};
-
-//hide all header filter elements (used to ensure correct column widths in "fitData" layout mode)
-Filter.prototype.hideHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = 'none';
- }
- });
-};
-
-//show all header filter elements (used to ensure correct column widths in "fitData" layout mode)
-Filter.prototype.showHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = '';
- }
- });
-};
-
-//programatically set focus of header filter
-Filter.prototype.setHeaderFilterFocus = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.focus();
- } else {
- console.warn("Column Filter Focus Error - No header filter set on column:", column.getField());
- }
-};
-
-//programmatically get value of header filter
-Filter.prototype.getHeaderFilterValue = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- return column.modules.filter.headerElement.value;
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
-};
-
-//programatically set value of header filter
-Filter.prototype.setHeaderFilterValue = function (column, value) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, value, true);
- column.modules.filter.success(value);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
-};
-
-Filter.prototype.reloadHeaderFilter = function (column) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, column.modules.filter.value, true);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
-};
-
-//check if the filters has changed since last use
-Filter.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
-};
-
-//set standard filters
-Filter.prototype.setFilter = function (field, type, value, params) {
- var self = this;
-
- self.filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value, params: params }];
- }
-
- self.addFilter(field);
-};
-
-//add filter to array
-Filter.prototype.addFilter = function (field, type, value, params) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value, params: params }];
- }
-
- field.forEach(function (filter) {
-
- filter = self.findFilter(filter);
-
- if (filter) {
- self.filterList.push(filter);
-
- self.changed = true;
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
-};
-
-Filter.prototype.findFilter = function (filter) {
- var self = this,
- column;
-
- if (Array.isArray(filter)) {
- return this.findSubFilters(filter);
- }
-
- var filterFunc = false;
-
- if (typeof filter.field == "function") {
- filterFunc = function filterFunc(data) {
- return filter.field(data, filter.type || {}); // pass params to custom filter function
- };
- } else {
-
- if (self.filters[filter.type]) {
-
- column = self.table.columnManager.getColumnByField(filter.field);
-
- if (column) {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, column.getFieldValue(data), data, filter.params || {});
- };
- } else {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, data[filter.field], data, filter.params || {});
- };
- }
- } else {
- console.warn("Filter Error - No such filter type found, ignoring: ", filter.type);
- }
- }
-
- filter.func = filterFunc;
-
- return filter.func ? filter : false;
-};
-
-Filter.prototype.findSubFilters = function (filters) {
- var self = this,
- output = [];
-
- filters.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- output.push(filter);
- }
- });
-
- return output.length ? output : false;
-};
-
-//get all filters
-Filter.prototype.getFilters = function (all, ajax) {
- var output = [];
-
- if (all) {
- output = this.getHeaderFilters();
- }
-
- if (ajax) {
- output.forEach(function (item) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- });
- }
-
- output = output.concat(this.filtersToArray(this.filterList, ajax));
-
- return output;
-};
-
-//filter to Object
-Filter.prototype.filtersToArray = function (filterList, ajax) {
- var _this2 = this;
-
- var output = [];
-
- filterList.forEach(function (filter) {
- var item;
-
- if (Array.isArray(filter)) {
- output.push(_this2.filtersToArray(filter, ajax));
- } else {
- item = { field: filter.field, type: filter.type, value: filter.value };
-
- if (ajax) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- }
-
- output.push(item);
- }
- });
-
- return output;
-};
-
-//get all filters
-Filter.prototype.getHeaderFilters = function () {
- var self = this,
- output = [];
-
- for (var key in this.headerFilters) {
- output.push({ field: key, type: this.headerFilters[key].type, value: this.headerFilters[key].value });
- }
-
- return output;
-};
-
-//remove filter from array
-Filter.prototype.removeFilter = function (field, type, value) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- var index = -1;
-
- if (_typeof(filter.field) == "object") {
- index = self.filterList.findIndex(function (element) {
- return filter === element;
- });
- } else {
- index = self.filterList.findIndex(function (element) {
- return filter.field === element.field && filter.type === element.type && filter.value === element.value;
- });
- }
-
- if (index > -1) {
- self.filterList.splice(index, 1);
- self.changed = true;
- } else {
- console.warn("Filter Error - No matching filter type found, ignoring: ", filter.type);
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
-};
-
-//clear filters
-Filter.prototype.clearFilter = function (all) {
- this.filterList = [];
-
- if (all) {
- this.clearHeaderFilter();
- }
-
- this.changed = true;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
-};
-
-//clear header filters
-Filter.prototype.clearHeaderFilter = function () {
- var self = this;
-
- this.headerFilters = {};
- self.prevHeaderFilterChangeCheck = "{}";
-
- this.headerFilterColumns.forEach(function (column) {
- column.modules.filter.value = null;
- column.modules.filter.prevSuccess = undefined;
- self.reloadHeaderFilter(column);
- });
-
- this.changed = true;
-};
-
-//search data and return matching rows
-Filter.prototype.search = function (searchType, field, type, value) {
- var self = this,
- activeRows = [],
- filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- filterList.push(filter);
- }
- });
-
- this.table.rowManager.rows.forEach(function (row) {
- var match = true;
-
- filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, row.getData())) {
- match = false;
- }
- });
-
- if (match) {
- activeRows.push(searchType === "data" ? row.getData("data") : row.getComponent());
- }
- });
-
- return activeRows;
-};
-
-//filter row array
-Filter.prototype.filter = function (rowList, filters) {
- var self = this,
- activeRows = [],
- activeRowComponents = [];
-
- if (self.table.options.dataFiltering) {
- self.table.options.dataFiltering.call(self.table, self.getFilters());
- }
-
- if (!self.table.options.ajaxFiltering && (self.filterList.length || Object.keys(self.headerFilters).length)) {
-
- rowList.forEach(function (row) {
- if (self.filterRow(row)) {
- activeRows.push(row);
- }
- });
- } else {
- activeRows = rowList.slice(0);
- }
-
- if (self.table.options.dataFiltered) {
-
- activeRows.forEach(function (row) {
- activeRowComponents.push(row.getComponent());
- });
-
- self.table.options.dataFiltered.call(self.table, self.getFilters(), activeRowComponents);
- }
-
- return activeRows;
-};
-
-//filter individual row
-Filter.prototype.filterRow = function (row, filters) {
- var self = this,
- match = true,
- data = row.getData();
-
- self.filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, data)) {
- match = false;
- }
- });
-
- for (var field in self.headerFilters) {
- if (!self.headerFilters[field].func(data)) {
- match = false;
- }
- }
-
- return match;
-};
-
-Filter.prototype.filterRecurse = function (filter, data) {
- var self = this,
- match = false;
-
- if (Array.isArray(filter)) {
- filter.forEach(function (subFilter) {
- if (self.filterRecurse(subFilter, data)) {
- match = true;
- }
- });
- } else {
- match = filter.func(data);
- }
-
- return match;
-};
-
-//list of available filters
-Filter.prototype.filters = {
-
- //equal to
- "=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal == filterVal ? true : false;
- },
-
- //less than
- "<": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal < filterVal ? true : false;
- },
-
- //less than or equal to
- "<=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal <= filterVal ? true : false;
- },
-
- //greater than
- ">": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal > filterVal ? true : false;
- },
-
- //greater than or equal to
- ">=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal >= filterVal ? true : false;
- },
-
- //not equal to
- "!=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal != filterVal ? true : false;
- },
-
- "regex": function regex(filterVal, rowVal, rowData, filterParams) {
-
- if (typeof filterVal == "string") {
- filterVal = new RegExp(filterVal);
- }
-
- return filterVal.test(rowVal);
- },
-
- //contains the string
- "like": function like(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().indexOf(filterVal.toLowerCase()) > -1;
- } else {
- return false;
- }
- }
- },
-
- //contains the keywords
- "keywords": function keywords(filterVal, rowVal, rowData, filterParams) {
- var keywords = filterVal.toLowerCase().split(typeof filterParams.separator === "undefined" ? " " : filterParams.separator),
- value = String(rowVal === null || typeof rowVal === "undefined" ? "" : rowVal).toLowerCase(),
- matches = [];
-
- keywords.forEach(function (keyword) {
- if (value.includes(keyword)) {
- matches.push(true);
- }
- });
-
- return filterParams.matchAll ? matches.length === keywords.length : !!matches.length;
- },
-
- //starts with the string
- "starts": function starts(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().startsWith(filterVal.toLowerCase());
- } else {
- return false;
- }
- }
- },
-
- //ends with the string
- "ends": function ends(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().endsWith(filterVal.toLowerCase());
- } else {
- return false;
- }
- }
- },
-
- //in array
- "in": function _in(filterVal, rowVal, rowData, filterParams) {
- if (Array.isArray(filterVal)) {
- return filterVal.indexOf(rowVal) > -1;
- } else {
- console.warn("Filter Error - filter value is not an array:", filterVal);
- return false;
- }
- }
-};
-
-Tabulator.prototype.registerModule("filter", Filter);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Filter=function(e){this.table=e,this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1};Filter.prototype.initializeColumn=function(e,t){function r(t){var r,o="input"==e.modules.filter.tagType&&"text"==e.modules.filter.attrType||"textarea"==e.modules.filter.tagType?"partial":"match",a="",s="";if(void 0===e.modules.filter.prevSuccess||e.modules.filter.prevSuccess!==t){if(e.modules.filter.prevSuccess=t,e.modules.filter.emptyFunc(t))delete n.headerFilters[l];else{switch(e.modules.filter.value=t,_typeof(e.definition.headerFilterFunc)){case"string":n.filters[e.definition.headerFilterFunc]?(a=e.definition.headerFilterFunc,r=function(r){var i=e.definition.headerFilterFuncParams||{},l=e.getFieldValue(r);return i="function"==typeof i?i(t,l,r):i,n.filters[e.definition.headerFilterFunc](t,l,r,i)}):console.warn("Header Filter Error - Matching filter function not found: ",e.definition.headerFilterFunc);break;case"function":r=function(r){var i=e.definition.headerFilterFuncParams||{},n=e.getFieldValue(r);return i="function"==typeof i?i(t,n,r):i,e.definition.headerFilterFunc(t,n,r,i)},a=r}if(!r)switch(o){case"partial":r=function(r){var i=e.getFieldValue(r);return void 0!==i&&null!==i&&String(i).toLowerCase().indexOf(String(t).toLowerCase())>-1},a="like";break;default:r=function(r){return e.getFieldValue(r)==t},a="="}n.headerFilters[l]={value:t,func:r,type:a,params:i||{}}}s=JSON.stringify(n.headerFilters),n.prevHeaderFilterChangeCheck!==s&&(n.prevHeaderFilterChangeCheck=s,n.changed=!0,n.table.rowManager.filterRefresh())}return!0}var i,n=this,l=e.getField();e.modules.filter={success:r,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(e)},Filter.prototype.generateHeaderFilterElement=function(e,t,r){function i(){}var n,l,o,a,s,d,u,f=this,c=this,h=e.modules.filter.success,p=e.getField();if(e.modules.filter.headerElement&&e.modules.filter.headerElement.parentNode&&e.contentElement.removeChild(e.modules.filter.headerElement.parentNode),p){switch(e.modules.filter.emptyFunc=e.definition.headerFilterEmptyCheck||function(e){return!e&&"0"!==e},n=document.createElement("div"),n.classList.add("tabulator-header-filter"),_typeof(e.definition.headerFilter)){case"string":c.table.modules.edit.editors[e.definition.headerFilter]?(l=c.table.modules.edit.editors[e.definition.headerFilter],"tick"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):console.warn("Filter Error - Cannot build header filter, No such editor found: ",e.definition.editor);break;case"function":l=e.definition.headerFilter;break;case"boolean":e.modules.edit&&e.modules.edit.editor?l=e.modules.edit.editor:e.definition.formatter&&c.table.modules.edit.editors[e.definition.formatter]?(l=c.table.modules.edit.editors[e.definition.formatter],"tick"!==e.definition.formatter&&"tickCross"!==e.definition.formatter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):l=c.table.modules.edit.editors.input}if(l){if(a={getValue:function(){return void 0!==t?t:""},getField:function(){return e.definition.field},getElement:function(){return n},getColumn:function(){return e.getComponent()},getRow:function(){return{normalizeHeight:function(){}}}},u=e.definition.headerFilterParams||{},u="function"==typeof u?u.call(c.table):u,!(o=l.call(this.table.modules.edit,a,function(){},h,i,u)))return void console.warn("Filter Error - Cannot add filter to "+p+" column, editor returned a value of false");if(!(o instanceof Node))return void console.warn("Filter Error - Cannot add filter to "+p+" column, editor should return an instance of Node, the editor returned:",o);p?c.table.modules.localize.bind("headerFilters|columns|"+e.definition.field,function(e){o.setAttribute("placeholder",void 0!==e&&e?e:c.table.modules.localize.getText("headerFilters|default"))}):c.table.modules.localize.bind("headerFilters|default",function(e){o.setAttribute("placeholder",void 0!==c.column.definition.headerFilterPlaceholder&&c.column.definition.headerFilterPlaceholder?c.column.definition.headerFilterPlaceholder:e)}),o.addEventListener("click",function(e){e.stopPropagation(),o.focus()}),o.addEventListener("focus",function(e){var t=f.table.columnManager.element.scrollLeft;t!==f.table.rowManager.element.scrollLeft&&(f.table.rowManager.scrollHorizontal(t),f.table.columnManager.scrollHorizontal(t))}),s=!1,d=function(e){s&&clearTimeout(s),s=setTimeout(function(){h(o.value)},c.table.options.headerFilterLiveFilterDelay)},e.modules.filter.headerElement=o,e.modules.filter.attrType=o.hasAttribute("type")?o.getAttribute("type").toLowerCase():"",e.modules.filter.tagType=o.tagName.toLowerCase(),!1!==e.definition.headerFilterLiveFilter&&("autocomplete"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter&&("autocomplete"!==e.definition.editor&&"tickCross"!==e.definition.editor||!0!==e.definition.headerFilter)&&(o.addEventListener("keyup",d),o.addEventListener("search",d),"number"==e.modules.filter.attrType&&o.addEventListener("change",function(e){h(o.value)}),"text"==e.modules.filter.attrType&&"ie"!==this.table.browser&&o.setAttribute("type","search")),"input"!=e.modules.filter.tagType&&"select"!=e.modules.filter.tagType&&"textarea"!=e.modules.filter.tagType||o.addEventListener("mousedown",function(e){e.stopPropagation()})),n.appendChild(o),e.contentElement.appendChild(n),r||c.headerFilterColumns.push(e)}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",e.definition.title)},Filter.prototype.hideHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="none")})},Filter.prototype.showHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="")})},Filter.prototype.setHeaderFilterFocus=function(e){e.modules.filter&&e.modules.filter.headerElement?e.modules.filter.headerElement.focus():console.warn("Column Filter Focus Error - No header filter set on column:",e.getField())},Filter.prototype.getHeaderFilterValue=function(e){if(e.modules.filter&&e.modules.filter.headerElement)return e.modules.filter.headerElement.value;console.warn("Column Filter Error - No header filter set on column:",e.getField())},Filter.prototype.setHeaderFilterValue=function(e,t){e&&(e.modules.filter&&e.modules.filter.headerElement?(this.generateHeaderFilterElement(e,t,!0),e.modules.filter.success(t)):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},Filter.prototype.reloadHeaderFilter=function(e){e&&(e.modules.filter&&e.modules.filter.headerElement?this.generateHeaderFilterElement(e,e.modules.filter.value,!0):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},Filter.prototype.hasChanged=function(){var e=this.changed;return this.changed=!1,e},Filter.prototype.setFilter=function(e,t,r,i){var n=this;n.filterList=[],Array.isArray(e)||(e=[{field:e,type:t,value:r,params:i}]),n.addFilter(e)},Filter.prototype.addFilter=function(e,t,r,i){var n=this;Array.isArray(e)||(e=[{field:e,type:t,value:r,params:i}]),e.forEach(function(e){(e=n.findFilter(e))&&(n.filterList.push(e),n.changed=!0)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},Filter.prototype.findFilter=function(e){var t,r=this;if(Array.isArray(e))return this.findSubFilters(e);var i=!1;return"function"==typeof e.field?i=function(t){return e.field(t,e.type||{})}:r.filters[e.type]?(t=r.table.columnManager.getColumnByField(e.field),i=t?function(i){return r.filters[e.type](e.value,t.getFieldValue(i),i,e.params||{})}:function(t){return r.filters[e.type](e.value,t[e.field],t,e.params||{})}):console.warn("Filter Error - No such filter type found, ignoring: ",e.type),e.func=i,!!e.func&&e},Filter.prototype.findSubFilters=function(e){var t=this,r=[];return e.forEach(function(e){(e=t.findFilter(e))&&r.push(e)}),!!r.length&&r},Filter.prototype.getFilters=function(e,t){var r=[];return e&&(r=this.getHeaderFilters()),t&&r.forEach(function(e){"function"==typeof e.type&&(e.type="function")}),r=r.concat(this.filtersToArray(this.filterList,t))},Filter.prototype.filtersToArray=function(e,t){var r=this,i=[];return e.forEach(function(e){var n;Array.isArray(e)?i.push(r.filtersToArray(e,t)):(n={field:e.field,type:e.type,value:e.value},t&&"function"==typeof n.type&&(n.type="function"),i.push(n))}),i},Filter.prototype.getHeaderFilters=function(){var e=[];for(var t in this.headerFilters)e.push({field:t,type:this.headerFilters[t].type,value:this.headerFilters[t].value});return e},Filter.prototype.removeFilter=function(e,t,r){var i=this;Array.isArray(e)||(e=[{field:e,type:t,value:r}]),e.forEach(function(e){var t=-1;t="object"==_typeof(e.field)?i.filterList.findIndex(function(t){return e===t}):i.filterList.findIndex(function(t){return e.field===t.field&&e.type===t.type&&e.value===t.value}),t>-1?(i.filterList.splice(t,1),i.changed=!0):console.warn("Filter Error - No matching filter type found, ignoring: ",e.type)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},Filter.prototype.clearFilter=function(e){this.filterList=[],e&&this.clearHeaderFilter(),this.changed=!0,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},Filter.prototype.clearHeaderFilter=function(){var e=this;this.headerFilters={},e.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach(function(t){t.modules.filter.value=null,t.modules.filter.prevSuccess=void 0,e.reloadHeaderFilter(t)}),this.changed=!0},Filter.prototype.search=function(e,t,r,i){var n=this,l=[],o=[];return Array.isArray(t)||(t=[{field:t,type:r,value:i}]),t.forEach(function(e){(e=n.findFilter(e))&&o.push(e)}),this.table.rowManager.rows.forEach(function(t){var r=!0;o.forEach(function(e){n.filterRecurse(e,t.getData())||(r=!1)}),r&&l.push("data"===e?t.getData("data"):t.getComponent())}),l},Filter.prototype.filter=function(e,t){var r=this,i=[],n=[];return r.table.options.dataFiltering&&r.table.options.dataFiltering.call(r.table,r.getFilters()),r.table.options.ajaxFiltering||!r.filterList.length&&!Object.keys(r.headerFilters).length?i=e.slice(0):e.forEach(function(e){r.filterRow(e)&&i.push(e)}),r.table.options.dataFiltered&&(i.forEach(function(e){n.push(e.getComponent())}),r.table.options.dataFiltered.call(r.table,r.getFilters(),n)),i},Filter.prototype.filterRow=function(e,t){var r=this,i=!0,n=e.getData();r.filterList.forEach(function(e){r.filterRecurse(e,n)||(i=!1)});for(var l in r.headerFilters)r.headerFilters[l].func(n)||(i=!1);return i},Filter.prototype.filterRecurse=function(e,t){var r=this,i=!1;return Array.isArray(e)?e.forEach(function(e){r.filterRecurse(e,t)&&(i=!0)}):i=e.func(t),i},Filter.prototype.filters={"=":function(e,t,r,i){return t==e},"<":function(e,t,r,i){return t<e},"<=":function(e,t,r,i){return t<=e},">":function(e,t,r,i){return t>e},">=":function(e,t,r,i){return t>=e},"!=":function(e,t,r,i){return t!=e},regex:function(e,t,r,i){return"string"==typeof e&&(e=new RegExp(e)),e.test(t)},like:function(e,t,r,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().indexOf(e.toLowerCase())>-1},keywords:function(e,t,r,i){var n=e.toLowerCase().split(void 0===i.separator?" ":i.separator),l=String(null===t||void 0===t?"":t).toLowerCase(),o=[];return n.forEach(function(e){l.includes(e)&&o.push(!0)}),i.matchAll?o.length===n.length:!!o.length},starts:function(e,t,r,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().startsWith(e.toLowerCase())},ends:function(e,t,r,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().endsWith(e.toLowerCase())},in:function(e,t,r,i){return Array.isArray(e)?e.indexOf(t)>-1:(console.warn("Filter Error - filter value is not an array:",e),!1)}},Tabulator.prototype.registerModule("filter",Filter);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Format = function Format(table) {
- this.table = table; //hold Tabulator object
-};
-
-//initialize column formatter
-Format.prototype.initializeColumn = function (column) {
- column.modules.format = this.lookupFormatter(column, "");
-
- if (typeof column.definition.formatterPrint !== "undefined") {
- column.modules.format.print = this.lookupFormatter(column, "Print");
- }
-
- if (typeof column.definition.formatterClipboard !== "undefined") {
- column.modules.format.clipboard = this.lookupFormatter(column, "Clipboard");
- }
-
- if (typeof column.definition.formatterHtmlOutput !== "undefined") {
- column.modules.format.htmlOutput = this.lookupFormatter(column, "HtmlOutput");
- }
-};
-
-Format.prototype.lookupFormatter = function (column, type) {
- var config = { params: column.definition["formatter" + type + "Params"] || {} },
- formatter = column.definition["formatter" + type];
-
- //set column formatter
- switch (typeof formatter === "undefined" ? "undefined" : _typeof(formatter)) {
- case "string":
-
- if (formatter === "tick") {
- formatter = "tickCross";
-
- if (typeof config.params.crossElement == "undefined") {
- config.params.crossElement = false;
- }
-
- console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false");
- }
-
- if (this.formatters[formatter]) {
- config.formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- config.formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- config.formatter = formatter;
- break;
-
- default:
- config.formatter = this.formatters.plaintext;
- break;
- }
-
- return config;
-};
-
-Format.prototype.cellRendered = function (cell) {
- if (cell.modules.format && cell.modules.format.renderedCallback) {
- cell.modules.format.renderedCallback();
- }
-};
-
-//return a formatted value for a cell
-Format.prototype.formatValue = function (cell) {
- var component = cell.getComponent(),
- params = typeof cell.column.modules.format.params === "function" ? cell.column.modules.format.params(component) : cell.column.modules.format.params;
-
- function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- }
-
- return cell.column.modules.format.formatter.call(this, component, params, onRendered);
-};
-
-Format.prototype.formatExportValue = function (cell, type) {
- var formatter = cell.column.modules.format[type],
- params;
-
- if (formatter) {
- var onRendered = function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- };
-
- params = typeof formatter.params === "function" ? formatter.params(component) : formatter.params;
-
- return formatter.formatter.call(this, cell.getComponent(), params, onRendered);
- } else {
- return this.formatValue(cell);
- }
-};
-
-Format.prototype.sanitizeHTML = function (value) {
- if (value) {
- var entityMap = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": ''',
- '/': '/',
- '`': '`',
- '=': '='
- };
-
- return String(value).replace(/[&<>"'`=\/]/g, function (s) {
- return entityMap[s];
- });
- } else {
- return value;
- }
-};
-
-Format.prototype.emptyToSpace = function (value) {
- return value === null || typeof value === "undefined" || value === "" ? " " : value;
-};
-
-//get formatter for cell
-Format.prototype.getFormatter = function (formatter) {
- var formatter;
-
- switch (typeof formatter === "undefined" ? "undefined" : _typeof(formatter)) {
- case "string":
- if (this.formatters[formatter]) {
- formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- formatter = formatter;
- break;
-
- default:
- formatter = this.formatters.plaintext;
- break;
- }
-
- return formatter;
-};
-
-//default data formatters
-Format.prototype.formatters = {
- //plain text value
- plaintext: function plaintext(cell, formatterParams, onRendered) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //html text value
- html: function html(cell, formatterParams, onRendered) {
- return cell.getValue();
- },
-
- //multiline text area
- textarea: function textarea(cell, formatterParams, onRendered) {
- cell.getElement().style.whiteSpace = "pre-wrap";
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //currency formatting
- money: function money(cell, formatterParams, onRendered) {
- var floatVal = parseFloat(cell.getValue()),
- number,
- integer,
- decimal,
- rgx;
-
- var decimalSym = formatterParams.decimal || ".";
- var thousandSym = formatterParams.thousand || ",";
- var symbol = formatterParams.symbol || "";
- var after = !!formatterParams.symbolAfter;
- var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
-
- if (isNaN(floatVal)) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- }
-
- number = precision !== false ? floatVal.toFixed(precision) : floatVal;
- number = String(number).split(".");
-
- integer = number[0];
- decimal = number.length > 1 ? decimalSym + number[1] : "";
-
- rgx = /(\d+)(\d{3})/;
-
- while (rgx.test(integer)) {
- integer = integer.replace(rgx, "$1" + thousandSym + "$2");
- }
-
- return after ? integer + decimal + symbol : symbol + integer + decimal;
- },
-
- //clickable anchor tag
- link: function link(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- urlPrefix = formatterParams.urlPrefix || "",
- download = formatterParams.download,
- label = value,
- el = document.createElement("a"),
- data;
-
- if (formatterParams.labelField) {
- data = cell.getData();
- label = data[formatterParams.labelField];
- }
-
- if (formatterParams.label) {
- switch (_typeof(formatterParams.label)) {
- case "string":
- label = formatterParams.label;
- break;
-
- case "function":
- label = formatterParams.label(cell);
- break;
- }
- }
-
- if (label) {
- if (formatterParams.urlField) {
- data = cell.getData();
- value = data[formatterParams.urlField];
- }
-
- if (formatterParams.url) {
- switch (_typeof(formatterParams.url)) {
- case "string":
- value = formatterParams.url;
- break;
-
- case "function":
- value = formatterParams.url(cell);
- break;
- }
- }
-
- el.setAttribute("href", urlPrefix + value);
-
- if (formatterParams.target) {
- el.setAttribute("target", formatterParams.target);
- }
-
- if (formatterParams.download) {
-
- if (typeof download == "function") {
- download = download(cell);
- } else {
- download = download === true ? "" : download;
- }
-
- el.setAttribute("download", download);
- }
-
- el.innerHTML = this.emptyToSpace(this.sanitizeHTML(label));
-
- return el;
- } else {
- return " ";
- }
- },
-
- //image element
- image: function image(cell, formatterParams, onRendered) {
- var el = document.createElement("img");
- el.setAttribute("src", cell.getValue());
-
- switch (_typeof(formatterParams.height)) {
- case "number":
- el.style.height = formatterParams.height + "px";
- break;
-
- case "string":
- el.style.height = formatterParams.height;
- break;
- }
-
- switch (_typeof(formatterParams.width)) {
- case "number":
- el.style.width = formatterParams.width + "px";
- break;
-
- case "string":
- el.style.width = formatterParams.width;
- break;
- }
-
- el.addEventListener("load", function () {
- cell.getRow().normalizeHeight();
- });
-
- return el;
- },
-
- //tick or cross
- tickCross: function tickCross(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- empty = formatterParams.allowEmpty,
- truthy = formatterParams.allowTruthy,
- tick = typeof formatterParams.tickElement !== "undefined" ? formatterParams.tickElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',
- cross = typeof formatterParams.crossElement !== "undefined" ? formatterParams.crossElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
-
- if (truthy && value || value === true || value === "true" || value === "True" || value === 1 || value === "1") {
- element.setAttribute("aria-checked", true);
- return tick || "";
- } else {
- if (empty && (value === "null" || value === "" || value === null || typeof value === "undefined")) {
- element.setAttribute("aria-checked", "mixed");
- return "";
- } else {
- element.setAttribute("aria-checked", false);
- return cross || "";
- }
- }
- },
-
- datetime: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var outputFormat = formatterParams.outputFormat || "DD/MM/YYYY hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- return formatterParams.timezone ? newDatetime.tz(formatterParams.timezone).format(outputFormat) : newDatetime.format(outputFormat);
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- datetimediff: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var suffix = typeof formatterParams.suffix !== "undefined" ? formatterParams.suffix : false;
- var unit = typeof formatterParams.unit !== "undefined" ? formatterParams.unit : undefined;
- var humanize = typeof formatterParams.humanize !== "undefined" ? formatterParams.humanize : false;
- var date = typeof formatterParams.date !== "undefined" ? formatterParams.date : moment();
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- if (humanize) {
- return moment.duration(newDatetime.diff(date)).humanize(suffix);
- } else {
- return newDatetime.diff(date, unit) + (suffix ? " " + suffix : "");
- }
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- //select
- lookup: function lookup(cell, formatterParams, onRendered) {
- var value = cell.getValue();
-
- if (typeof formatterParams[value] === "undefined") {
- console.warn('Missing display value for ' + value);
- return value;
- }
-
- return formatterParams[value];
- },
-
- //star rating
- star: function star(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- maxStars = formatterParams && formatterParams.stars ? formatterParams.stars : 5,
- stars = document.createElement("span"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg"),
- starActive = '<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',
- starInactive = '<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
-
- //style stars holder
- stars.style.verticalAlign = "middle";
-
- //style star
- star.setAttribute("width", "14");
- star.setAttribute("height", "14");
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- value = value && !isNaN(value) ? parseInt(value) : 0;
-
- value = Math.max(0, Math.min(value, maxStars));
-
- for (var i = 1; i <= maxStars; i++) {
- var nextStar = star.cloneNode(true);
- nextStar.innerHTML = i <= value ? starActive : starInactive;
-
- stars.appendChild(nextStar);
- }
-
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- element.setAttribute("aria-label", value);
-
- return stars;
- },
-
- traffic: function traffic(cell, formatterParams, onRendered) {
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- el = document.createElement("span"),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- colors = formatterParams && typeof formatterParams.color !== "undefined" ? formatterParams.color : ["red", "orange", "green"],
- color = "#666666",
- percent,
- percentValue;
-
- if (isNaN(value) || typeof cell.getValue() === "undefined") {
- return;
- }
-
- el.classList.add("tabulator-traffic-light");
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set color
- switch (typeof colors === "undefined" ? "undefined" : _typeof(colors)) {
- case "string":
- color = colors;
- break;
- case "function":
- color = colors(value);
- break;
- case "object":
- if (Array.isArray(colors)) {
- var unit = 100 / colors.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, colors.length - 1);
- index = Math.max(index, 0);
- color = colors[index];
- break;
- }
- }
-
- el.style.backgroundColor = color;
-
- return el;
- },
-
- //progress bar
- progress: function progress(cell, formatterParams, onRendered) {
- //progress bar
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- element = cell.getElement(),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- legendAlign = formatterParams && formatterParams.legendAlign ? formatterParams.legendAlign : "center",
- percent,
- percentValue,
- color,
- legend,
- legendColor,
- top,
- left,
- right,
- bottom;
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set bar color
- switch (_typeof(formatterParams.color)) {
- case "string":
- color = formatterParams.color;
- break;
- case "function":
- color = formatterParams.color(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.color)) {
- var unit = 100 / formatterParams.color.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.color.length - 1);
- index = Math.max(index, 0);
- color = formatterParams.color[index];
- break;
- }
- default:
- color = "#2DC214";
- }
-
- //generate legend
- switch (_typeof(formatterParams.legend)) {
- case "string":
- legend = formatterParams.legend;
- break;
- case "function":
- legend = formatterParams.legend(value);
- break;
- case "boolean":
- legend = value;
- break;
- default:
- legend = false;
- }
-
- //set legend color
- switch (_typeof(formatterParams.legendColor)) {
- case "string":
- legendColor = formatterParams.legendColor;
- break;
- case "function":
- legendColor = formatterParams.legendColor(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.legendColor)) {
- var unit = 100 / formatterParams.legendColor.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.legendColor.length - 1);
- index = Math.max(index, 0);
- legendColor = formatterParams.legendColor[index];
- }
- break;
- default:
- legendColor = "#000";
- }
-
- element.style.minWidth = "30px";
- element.style.position = "relative";
-
- element.setAttribute("aria-label", percentValue);
-
- var barEl = document.createElement("div");
- barEl.style.display = "inline-block";
- barEl.style.position = "relative";
- barEl.style.width = percentValue + "%";
- barEl.style.backgroundColor = color;
- barEl.style.height = "100%";
-
- barEl.setAttribute('data-max', max);
- barEl.setAttribute('data-min', min);
-
- if (legend) {
- var legendEl = document.createElement("div");
- legendEl.style.position = "absolute";
- legendEl.style.top = "4px";
- legendEl.style.left = 0;
- legendEl.style.textAlign = legendAlign;
- legendEl.style.width = "100%";
- legendEl.style.color = legendColor;
- legendEl.innerHTML = legend;
- }
-
- onRendered(function () {
-
- //handle custom element needed if formatter is to be included in printed/downloaded output
- if (!(cell instanceof CellComponent)) {
- var holderEl = document.createElement("div");
- holderEl.style.position = "absolute";
- holderEl.style.top = "4px";
- holderEl.style.bottom = "4px";
- holderEl.style.left = "4px";
- holderEl.style.right = "4px";
-
- element.appendChild(holderEl);
-
- element = holderEl;
- }
-
- element.appendChild(barEl);
-
- if (legend) {
- element.appendChild(legendEl);
- }
- });
-
- return "";
- },
-
- //background color
- color: function color(cell, formatterParams, onRendered) {
- cell.getElement().style.backgroundColor = this.sanitizeHTML(cell.getValue());
- return "";
- },
-
- //tick icon
- buttonTick: function buttonTick(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>';
- },
-
- //cross icon
- buttonCross: function buttonCross(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
- },
-
- //current row number
- rownum: function rownum(cell, formatterParams, onRendered) {
- return this.table.rowManager.activeRows.indexOf(cell.getRow()._getSelf()) + 1;
- },
-
- //row handle
- handle: function handle(cell, formatterParams, onRendered) {
- cell.getElement().classList.add("tabulator-row-handle");
- return "<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>";
- },
-
- responsiveCollapse: function responsiveCollapse(cell, formatterParams, onRendered) {
- var self = this,
- open = false,
- el = document.createElement("div"),
- config = cell.getRow()._row.modules.responsiveLayout;
-
- el.classList.add("tabulator-responsive-collapse-toggle");
- el.innerHTML = "<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>";
-
- cell.getElement().classList.add("tabulator-row-handle");
-
- function toggleList(isOpen) {
- var collapseEl = config.element;
-
- config.open = isOpen;
-
- if (collapseEl) {
-
- if (config.open) {
- el.classList.add("open");
- collapseEl.style.display = '';
- } else {
- el.classList.remove("open");
- collapseEl.style.display = 'none';
- }
- }
- }
-
- el.addEventListener("click", function (e) {
- e.stopImmediatePropagation();
- toggleList(!config.open);
- });
-
- toggleList(config.open);
-
- return el;
- },
-
- rowSelection: function rowSelection(cell) {
- var _this = this;
-
- var checkbox = document.createElement("input");
-
- checkbox.type = 'checkbox';
-
- if (this.table.modExists("selectRow", true)) {
-
- checkbox.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- if (typeof cell.getRow == 'function') {
- var row = cell.getRow();
-
- checkbox.addEventListener("change", function (e) {
- row.toggleSelect();
- });
-
- checkbox.checked = row.isSelected();
- this.table.modules.selectRow.registerRowSelectCheckbox(row, checkbox);
- } else {
- checkbox.addEventListener("change", function (e) {
- if (_this.table.modules.selectRow.selectedRows.length) {
- _this.table.deselectRow();
- } else {
- _this.table.selectRow();
- }
- });
-
- this.table.modules.selectRow.registerHeaderSelectCheckbox(checkbox);
- }
- }
- return checkbox;
- }
-};
-
-Tabulator.prototype.registerModule("format", Format);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Format=function(e){this.table=e};Format.prototype.initializeColumn=function(e){e.modules.format=this.lookupFormatter(e,""),void 0!==e.definition.formatterPrint&&(e.modules.format.print=this.lookupFormatter(e,"Print")),void 0!==e.definition.formatterClipboard&&(e.modules.format.clipboard=this.lookupFormatter(e,"Clipboard")),void 0!==e.definition.formatterHtmlOutput&&(e.modules.format.htmlOutput=this.lookupFormatter(e,"HtmlOutput"))},Format.prototype.lookupFormatter=function(e,t){var o={params:e.definition["formatter"+t+"Params"]||{}},r=e.definition["formatter"+t];switch(void 0===r?"undefined":_typeof(r)){case"string":"tick"===r&&(r="tickCross",void 0===o.params.crossElement&&(o.params.crossElement=!1),console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false")),this.formatters[r]?o.formatter=this.formatters[r]:(console.warn("Formatter Error - No such formatter found: ",r),o.formatter=this.formatters.plaintext);break;case"function":o.formatter=r;break;default:o.formatter=this.formatters.plaintext}return o},Format.prototype.cellRendered=function(e){e.modules.format&&e.modules.format.renderedCallback&&e.modules.format.renderedCallback()},Format.prototype.formatValue=function(e){function t(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t}var o=e.getComponent(),r="function"==typeof e.column.modules.format.params?e.column.modules.format.params(o):e.column.modules.format.params;return e.column.modules.format.formatter.call(this,o,r,t)},Format.prototype.formatExportValue=function(e,t){var o,r=e.column.modules.format[t];if(r){var a=function(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t};return o="function"==typeof r.params?r.params(component):r.params,r.formatter.call(this,e.getComponent(),o,a)}return this.formatValue(e)},Format.prototype.sanitizeHTML=function(e){if(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(e).replace(/[&<>"'`=\/]/g,function(e){return t[e]})}return e},Format.prototype.emptyToSpace=function(e){return null===e||void 0===e||""===e?" ":e},Format.prototype.getFormatter=function(e){var e;switch(void 0===e?"undefined":_typeof(e)){case"string":this.formatters[e]?e=this.formatters[e]:(console.warn("Formatter Error - No such formatter found: ",e),e=this.formatters.plaintext);break;case"function":e=e;break;default:e=this.formatters.plaintext}return e},Format.prototype.formatters={plaintext:function(e,t,o){return this.emptyToSpace(this.sanitizeHTML(e.getValue()))},html:function(e,t,o){return e.getValue()},textarea:function(e,t,o){return e.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(e.getValue()))},money:function(e,t,o){var r,a,n,l,i=parseFloat(e.getValue()),s=t.decimal||".",c=t.thousand||",",u=t.symbol||"",d=!!t.symbolAfter,m=void 0!==t.precision?t.precision:2;if(isNaN(i))return this.emptyToSpace(this.sanitizeHTML(e.getValue()));for(r=!1!==m?i.toFixed(m):i,r=String(r).split("."),a=r[0],n=r.length>1?s+r[1]:"",l=/(\d+)(\d{3})/;l.test(a);)a=a.replace(l,"$1"+c+"$2");return d?a+n+u:u+a+n},link:function(e,t,o){var r,a=e.getValue(),n=t.urlPrefix||"",l=t.download,i=a,s=document.createElement("a");if(t.labelField&&(r=e.getData(),i=r[t.labelField]),t.label)switch(_typeof(t.label)){case"string":i=t.label;break;case"function":i=t.label(e)}if(i){if(t.urlField&&(r=e.getData(),a=r[t.urlField]),t.url)switch(_typeof(t.url)){case"string":a=t.url;break;case"function":a=t.url(e)}return s.setAttribute("href",n+a),t.target&&s.setAttribute("target",t.target),t.download&&(l="function"==typeof l?l(e):!0===l?"":l,s.setAttribute("download",l)),s.innerHTML=this.emptyToSpace(this.sanitizeHTML(i)),s}return" "},image:function(e,t,o){var r=document.createElement("img");switch(r.setAttribute("src",e.getValue()),_typeof(t.height)){case"number":r.style.height=t.height+"px";break;case"string":r.style.height=t.height}switch(_typeof(t.width)){case"number":r.style.width=t.width+"px";break;case"string":r.style.width=t.width}return r.addEventListener("load",function(){e.getRow().normalizeHeight()}),r},tickCross:function(e,t,o){var r=e.getValue(),a=e.getElement(),n=t.allowEmpty,l=t.allowTruthy,i=void 0!==t.tickElement?t.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',s=void 0!==t.crossElement?t.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';return l&&r||!0===r||"true"===r||"True"===r||1===r||"1"===r?(a.setAttribute("aria-checked",!0),i||""):!n||"null"!==r&&""!==r&&null!==r&&void 0!==r?(a.setAttribute("aria-checked",!1),s||""):(a.setAttribute("aria-checked","mixed"),"")},datetime:function(e,t,o){var r=t.inputFormat||"YYYY-MM-DD hh:mm:ss",a=t.outputFormat||"DD/MM/YYYY hh:mm:ss",n=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",l=e.getValue(),i=moment(l,r);return i.isValid()?t.timezone?i.tz(t.timezone).format(a):i.format(a):!0===n?l:"function"==typeof n?n(l):n},datetimediff:function(e,t,o){var r=t.inputFormat||"YYYY-MM-DD hh:mm:ss",a=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",n=void 0!==t.suffix&&t.suffix,l=void 0!==t.unit?t.unit:void 0,i=void 0!==t.humanize&&t.humanize,s=void 0!==t.date?t.date:moment(),c=e.getValue(),u=moment(c,r);return u.isValid()?i?moment.duration(u.diff(s)).humanize(n):u.diff(s,l)+(n?" "+n:""):!0===a?c:"function"==typeof a?a(c):a},lookup:function(e,t,o){var r=e.getValue();return void 0===t[r]?(console.warn("Missing display value for "+r),r):t[r]},star:function(e,t,o){var r=e.getValue(),a=e.getElement(),n=t&&t.stars?t.stars:5,l=document.createElement("span"),i=document.createElementNS("http://www.w3.org/2000/svg","svg");l.style.verticalAlign="middle",i.setAttribute("width","14"),i.setAttribute("height","14"),i.setAttribute("viewBox","0 0 512 512"),i.setAttribute("xml:space","preserve"),i.style.padding="0 1px",r=r&&!isNaN(r)?parseInt(r):0,r=Math.max(0,Math.min(r,n));for(var s=1;s<=n;s++){var c=i.cloneNode(!0);c.innerHTML=s<=r?'<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>':'<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',l.appendChild(c)}return a.style.whiteSpace="nowrap",a.style.overflow="hidden",a.style.textOverflow="ellipsis",a.setAttribute("aria-label",r),l},traffic:function(e,t,o){var r,a,n=this.sanitizeHTML(e.getValue())||0,l=document.createElement("span"),i=t&&t.max?t.max:100,s=t&&t.min?t.min:0,c=t&&void 0!==t.color?t.color:["red","orange","green"],u="#666666";if(!isNaN(n)&&void 0!==e.getValue()){switch(l.classList.add("tabulator-traffic-light"),a=parseFloat(n)<=i?parseFloat(n):i,a=parseFloat(a)>=s?parseFloat(a):s,r=(i-s)/100,a=Math.round((a-s)/r),void 0===c?"undefined":_typeof(c)){case"string":u=c;break;case"function":u=c(n);break;case"object":if(Array.isArray(c)){var d=100/c.length,m=Math.floor(a/d);m=Math.min(m,c.length-1),m=Math.max(m,0),u=c[m];break}}return l.style.backgroundColor=u,l}},progress:function(e,t,o){var r,a,n,l,i,s=this.sanitizeHTML(e.getValue())||0,c=e.getElement(),u=t&&t.max?t.max:100,d=t&&t.min?t.min:0,m=t&&t.legendAlign?t.legendAlign:"center";switch(a=parseFloat(s)<=u?parseFloat(s):u,a=parseFloat(a)>=d?parseFloat(a):d,r=(u-d)/100,a=Math.round((a-d)/r),_typeof(t.color)){case"string":n=t.color;break;case"function":n=t.color(s);break;case"object":if(Array.isArray(t.color)){var p=100/t.color.length,f=Math.floor(a/p);f=Math.min(f,t.color.length-1),f=Math.max(f,0),n=t.color[f];break}default:n="#2DC214"}switch(_typeof(t.legend)){case"string":l=t.legend;break;case"function":l=t.legend(s);break;case"boolean":l=s;break;default:l=!1}switch(_typeof(t.legendColor)){case"string":i=t.legendColor;break;case"function":i=t.legendColor(s);break;case"object":if(Array.isArray(t.legendColor)){var p=100/t.legendColor.length,f=Math.floor(a/p);f=Math.min(f,t.legendColor.length-1),f=Math.max(f,0),i=t.legendColor[f]}break;default:i="#000"}c.style.minWidth="30px",c.style.position="relative",c.setAttribute("aria-label",a);var h=document.createElement("div");if(h.style.display="inline-block",h.style.position="relative",h.style.width=a+"%",h.style.backgroundColor=n,h.style.height="100%",h.setAttribute("data-max",u),h.setAttribute("data-min",d),l){var g=document.createElement("div");g.style.position="absolute",g.style.top="4px",g.style.left=0,g.style.textAlign=m,g.style.width="100%",g.style.color=i,g.innerHTML=l}return o(function(){if(!(e instanceof CellComponent)){var t=document.createElement("div");t.style.position="absolute",t.style.top="4px",t.style.bottom="4px",t.style.left="4px",t.style.right="4px",c.appendChild(t),c=t}c.appendChild(h),l&&c.appendChild(g)}),""},color:function(e,t,o){return e.getElement().style.backgroundColor=this.sanitizeHTML(e.getValue()),""},buttonTick:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'},buttonCross:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'},rownum:function(e,t,o){return this.table.rowManager.activeRows.indexOf(e.getRow()._getSelf())+1},handle:function(e,t,o){return e.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"},responsiveCollapse:function(e,t,o){function r(e){var t=n.element;n.open=e,t&&(n.open?(a.classList.add("open"),t.style.display=""):(a.classList.remove("open"),t.style.display="none"))}var a=document.createElement("div"),n=e.getRow()._row.modules.responsiveLayout;return a.classList.add("tabulator-responsive-collapse-toggle"),a.innerHTML="<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>",e.getElement().classList.add("tabulator-row-handle"),a.addEventListener("click",function(e){e.stopImmediatePropagation(),r(!n.open)}),r(n.open),a},rowSelection:function(e){var t=this,o=document.createElement("input");if(o.type="checkbox",this.table.modExists("selectRow",!0))if(o.addEventListener("click",function(e){e.stopPropagation()}),"function"==typeof e.getRow){var r=e.getRow();o.addEventListener("change",function(e){r.toggleSelect()}),o.checked=r.isSelected(),this.table.modules.selectRow.registerRowSelectCheckbox(r,o)}else o.addEventListener("change",function(e){t.table.modules.selectRow.selectedRows.length?t.table.deselectRow():t.table.selectRow()}),this.table.modules.selectRow.registerHeaderSelectCheckbox(o);return o}},Tabulator.prototype.registerModule("format",Format);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var FrozenColumns = function FrozenColumns(table) {
- this.table = table; //hold Tabulator object
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightPadding = 0;
- this.initializationMode = "left";
- this.active = false;
- this.scrollEndTimer = false;
-};
-
-//reset initial state
-FrozenColumns.prototype.reset = function () {
- this.initializationMode = "left";
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightMargin = 0;
- this.active = false;
-
- this.table.columnManager.headersElement.style.marginLeft = 0;
- this.table.columnManager.element.style.paddingRight = 0;
-};
-
-//initialize specific column
-FrozenColumns.prototype.initializeColumn = function (column) {
- var config = { margin: 0, edge: false };
-
- if (!column.isGroup) {
-
- if (this.frozenCheck(column)) {
-
- config.position = this.initializationMode;
-
- if (this.initializationMode == "left") {
- this.leftColumns.push(column);
- } else {
- this.rightColumns.unshift(column);
- }
-
- this.active = true;
-
- column.modules.frozen = config;
- } else {
- this.initializationMode = "right";
- }
- }
-};
-
-FrozenColumns.prototype.frozenCheck = function (column) {
- var frozen = false;
-
- if (column.parent.isGroup && column.definition.frozen) {
- console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups");
- }
-
- if (column.parent.isGroup) {
- return this.frozenCheck(column.parent);
- } else {
- return column.definition.frozen;
- }
-
- return frozen;
-};
-
-//quick layout to smooth horizontal scrolling
-FrozenColumns.prototype.scrollHorizontal = function () {
- var _this = this;
-
- var rows;
-
- if (this.active) {
- clearTimeout(this.scrollEndTimer);
-
- //layout all rows after scroll is complete
- this.scrollEndTimer = setTimeout(function () {
- _this.layout();
- }, 100);
-
- rows = this.table.rowManager.getVisibleRows();
-
- this.calcMargins();
-
- this.layoutColumnPosition();
-
- this.layoutCalcRows();
-
- rows.forEach(function (row) {
- if (row.type === "row") {
- _this.layoutRow(row);
- }
- });
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
-};
-
-//calculate margins for rows
-FrozenColumns.prototype.calcMargins = function () {
- this.leftMargin = this._calcSpace(this.leftColumns, this.leftColumns.length) + "px";
- this.table.columnManager.headersElement.style.marginLeft = this.leftMargin;
-
- this.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + "px";
- this.table.columnManager.element.style.paddingRight = this.rightMargin;
-
- //calculate right frozen columns
- this.rightPadding = this.table.rowManager.element.clientWidth + this.table.columnManager.scrollLeft;
-};
-
-//layout calculation rows
-FrozenColumns.prototype.layoutCalcRows = function () {
- if (this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized && this.table.modules.columnCalcs.topRow) {
- this.layoutRow(this.table.modules.columnCalcs.topRow);
- }
- if (this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow) {
- this.layoutRow(this.table.modules.columnCalcs.botRow);
- }
- }
-};
-
-//calculate column positions and layout headers
-FrozenColumns.prototype.layoutColumnPosition = function (allCells) {
- var _this2 = this;
-
- var leftParents = [];
-
- this.leftColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this2._calcSpace(_this2.leftColumns, i) + _this2.table.columnManager.scrollLeft + "px";
-
- if (i == _this2.leftColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- var parentEl = _this2.getColGroupParentElement(column);
- if (!leftParents.includes(parentEl)) {
- _this2.layoutElement(parentEl, column);
- leftParents.push(parentEl);
- }
-
- if (column.modules.frozen.edge) {
- parentEl.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- } else {
- _this2.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this2.layoutElement(cell.getElement(), column);
- });
- }
- });
-
- this.rightColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this2.rightPadding - _this2._calcSpace(_this2.rightColumns, i + 1) + "px";
-
- if (i == _this2.rightColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- _this2.layoutElement(_this2.getColGroupParentElement(column), column);
- } else {
- _this2.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this2.layoutElement(cell.getElement(), column);
- });
- }
- });
-};
-
-FrozenColumns.prototype.getColGroupParentElement = function (column) {
- return column.parent.isGroup ? this.getColGroupParentElement(column.parent) : column.getElement();
-};
-
-//layout columns appropropriatly
-FrozenColumns.prototype.layout = function () {
- var self = this,
- rightMargin = 0;
-
- if (self.active) {
-
- //calculate row padding
- this.calcMargins();
-
- // self.table.rowManager.activeRows.forEach(function(row){
- // self.layoutRow(row);
- // });
-
- // if(self.table.options.dataTree){
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row") {
- self.layoutRow(row);
- }
- });
- // }
-
- this.layoutCalcRows();
-
- //calculate left columns
- this.layoutColumnPosition(true);
-
- // if(tableHolder.scrollHeight > tableHolder.clientHeight){
- // rightMargin -= tableHolder.offsetWidth - tableHolder.clientWidth;
- // }
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
-};
-
-FrozenColumns.prototype.layoutRow = function (row) {
- var _this3 = this;
-
- var rowEl = row.getElement();
-
- rowEl.style.paddingLeft = this.leftMargin;
- // rowEl.style.paddingRight = this.rightMargin + "px";
-
- this.leftColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this3.layoutElement(cell.getElement(), column);
- }
- });
-
- this.rightColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this3.layoutElement(cell.getElement(), column);
- }
- });
-};
-
-FrozenColumns.prototype.layoutElement = function (element, column) {
-
- if (column.modules.frozen) {
- element.style.position = "absolute";
- element.style.left = column.modules.frozen.margin;
-
- element.classList.add("tabulator-frozen");
-
- if (column.modules.frozen.edge) {
- element.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- }
-};
-
-FrozenColumns.prototype._calcSpace = function (columns, index) {
- var width = 0;
-
- for (var i = 0; i < index; i++) {
- if (columns[i].visible) {
- width += columns[i].getWidth();
- }
- }
-
- return width;
-};
-
-Tabulator.prototype.registerModule("frozenColumns", FrozenColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var FrozenColumns=function(t){this.table=t,this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightPadding=0,this.initializationMode="left",this.active=!1,this.scrollEndTimer=!1};FrozenColumns.prototype.reset=function(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightMargin=0,this.active=!1,this.table.columnManager.headersElement.style.marginLeft=0,this.table.columnManager.element.style.paddingRight=0},FrozenColumns.prototype.initializeColumn=function(t){var e={margin:0,edge:!1};t.isGroup||(this.frozenCheck(t)?(e.position=this.initializationMode,"left"==this.initializationMode?this.leftColumns.push(t):this.rightColumns.unshift(t),this.active=!0,t.modules.frozen=e):this.initializationMode="right")},FrozenColumns.prototype.frozenCheck=function(t){return t.parent.isGroup&&t.definition.frozen&&console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups"),t.parent.isGroup?this.frozenCheck(t.parent):t.definition.frozen},FrozenColumns.prototype.scrollHorizontal=function(){var t,e=this;this.active&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=setTimeout(function(){e.layout()},100),t=this.table.rowManager.getVisibleRows(),this.calcMargins(),this.layoutColumnPosition(),this.layoutCalcRows(),t.forEach(function(t){"row"===t.type&&e.layoutRow(t)}),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},FrozenColumns.prototype.calcMargins=function(){this.leftMargin=this._calcSpace(this.leftColumns,this.leftColumns.length)+"px",this.table.columnManager.headersElement.style.marginLeft=this.leftMargin,this.rightMargin=this._calcSpace(this.rightColumns,this.rightColumns.length)+"px",this.table.columnManager.element.style.paddingRight=this.rightMargin,this.rightPadding=this.table.rowManager.element.clientWidth+this.table.columnManager.scrollLeft},FrozenColumns.prototype.layoutCalcRows=function(){this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow&&this.layoutRow(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow&&this.layoutRow(this.table.modules.columnCalcs.botRow))},FrozenColumns.prototype.layoutColumnPosition=function(t){var e=this,o=[];this.leftColumns.forEach(function(n,l){if(n.modules.frozen.margin=e._calcSpace(e.leftColumns,l)+e.table.columnManager.scrollLeft+"px",l==e.leftColumns.length-1?n.modules.frozen.edge=!0:n.modules.frozen.edge=!1,n.parent.isGroup){var i=e.getColGroupParentElement(n);o.includes(i)||(e.layoutElement(i,n),o.push(i)),n.modules.frozen.edge&&i.classList.add("tabulator-frozen-"+n.modules.frozen.position)}else e.layoutElement(n.getElement(),n);t&&n.cells.forEach(function(t){e.layoutElement(t.getElement(),n)})}),this.rightColumns.forEach(function(o,n){o.modules.frozen.margin=e.rightPadding-e._calcSpace(e.rightColumns,n+1)+"px",n==e.rightColumns.length-1?o.modules.frozen.edge=!0:o.modules.frozen.edge=!1,o.parent.isGroup?e.layoutElement(e.getColGroupParentElement(o),o):e.layoutElement(o.getElement(),o),t&&o.cells.forEach(function(t){e.layoutElement(t.getElement(),o)})})},FrozenColumns.prototype.getColGroupParentElement=function(t){return t.parent.isGroup?this.getColGroupParentElement(t.parent):t.getElement()},FrozenColumns.prototype.layout=function(){var t=this;t.active&&(this.calcMargins(),t.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&t.layoutRow(e)}),this.layoutCalcRows(),this.layoutColumnPosition(!0),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},FrozenColumns.prototype.layoutRow=function(t){var e=this;t.getElement().style.paddingLeft=this.leftMargin,this.leftColumns.forEach(function(o){var n=t.getCell(o);n&&e.layoutElement(n.getElement(),o)}),this.rightColumns.forEach(function(o){var n=t.getCell(o);n&&e.layoutElement(n.getElement(),o)})},FrozenColumns.prototype.layoutElement=function(t,e){e.modules.frozen&&(t.style.position="absolute",t.style.left=e.modules.frozen.margin,t.classList.add("tabulator-frozen"),e.modules.frozen.edge&&t.classList.add("tabulator-frozen-"+e.modules.frozen.position))},FrozenColumns.prototype._calcSpace=function(t,e){for(var o=0,n=0;n<e;n++)t[n].visible&&(o+=t[n].getWidth());return o},Tabulator.prototype.registerModule("frozenColumns",FrozenColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var FrozenRows = function FrozenRows(table) {
- this.table = table; //hold Tabulator object
- this.topElement = document.createElement("div");
- this.rows = [];
- this.displayIndex = 0; //index in display pipeline
-};
-
-FrozenRows.prototype.initialize = function () {
- this.rows = [];
-
- this.topElement.classList.add("tabulator-frozen-rows-holder");
-
- // this.table.columnManager.element.append(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
-};
-
-FrozenRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-FrozenRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-FrozenRows.prototype.isFrozen = function () {
- return !!this.rows.length;
-};
-
-//filter frozen rows out of display data
-FrozenRows.prototype.getRows = function (rows) {
- var self = this,
- frozen = [],
- output = rows.slice(0);
-
- this.rows.forEach(function (row) {
- var index = output.indexOf(row);
-
- if (index > -1) {
- output.splice(index, 1);
- }
- });
-
- return output;
-};
-
-FrozenRows.prototype.freezeRow = function (row) {
- if (!row.modules.frozen) {
- row.modules.frozen = true;
- this.topElement.appendChild(row.getElement());
- row.initialize();
- row.normalizeHeight();
- this.table.rowManager.adjustTableSize();
-
- this.rows.push(row);
-
- this.table.rowManager.refreshActiveData("display");
-
- this.styleRows();
- } else {
- console.warn("Freeze Error - Row is already frozen");
- }
-};
-
-FrozenRows.prototype.unfreezeRow = function (row) {
- var index = this.rows.indexOf(row);
-
- if (row.modules.frozen) {
-
- row.modules.frozen = false;
-
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
-
- this.table.rowManager.adjustTableSize();
-
- this.rows.splice(index, 1);
-
- this.table.rowManager.refreshActiveData("display");
-
- if (this.rows.length) {
- this.styleRows();
- }
- } else {
- console.warn("Freeze Error - Row is already unfrozen");
- }
-};
-
-FrozenRows.prototype.styleRows = function (row) {
- var self = this;
-
- this.rows.forEach(function (row, i) {
- self.table.rowManager.styleRow(row, i);
- });
-};
-
-Tabulator.prototype.registerModule("frozenRows", FrozenRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var FrozenRows=function(e){this.table=e,this.topElement=document.createElement("div"),this.rows=[],this.displayIndex=0};FrozenRows.prototype.initialize=function(){this.rows=[],this.topElement.classList.add("tabulator-frozen-rows-holder"),this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling)},FrozenRows.prototype.setDisplayIndex=function(e){this.displayIndex=e},FrozenRows.prototype.getDisplayIndex=function(){return this.displayIndex},FrozenRows.prototype.isFrozen=function(){return!!this.rows.length},FrozenRows.prototype.getRows=function(e){var o=e.slice(0);return this.rows.forEach(function(e){var t=o.indexOf(e);t>-1&&o.splice(t,1)}),o},FrozenRows.prototype.freezeRow=function(e){e.modules.frozen?console.warn("Freeze Error - Row is already frozen"):(e.modules.frozen=!0,this.topElement.appendChild(e.getElement()),e.initialize(),e.normalizeHeight(),this.table.rowManager.adjustTableSize(),this.rows.push(e),this.table.rowManager.refreshActiveData("display"),this.styleRows())},FrozenRows.prototype.unfreezeRow=function(e){var o=this.rows.indexOf(e);if(e.modules.frozen){e.modules.frozen=!1;var t=e.getElement();t.parentNode.removeChild(t),this.table.rowManager.adjustTableSize(),this.rows.splice(o,1),this.table.rowManager.refreshActiveData("display"),this.rows.length&&this.styleRows()}else console.warn("Freeze Error - Row is already unfrozen")},FrozenRows.prototype.styleRows=function(e){var o=this;this.rows.forEach(function(e,t){o.table.rowManager.styleRow(e,t)})},Tabulator.prototype.registerModule("frozenRows",FrozenRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-//public group object
-var GroupComponent = function GroupComponent(group) {
- this._group = group;
- this.type = "GroupComponent";
-};
-
-GroupComponent.prototype.getKey = function () {
- return this._group.key;
-};
-
-GroupComponent.prototype.getField = function () {
- return this._group.field;
-};
-
-GroupComponent.prototype.getElement = function () {
- return this._group.element;
-};
-
-GroupComponent.prototype.getRows = function () {
- return this._group.getRows(true);
-};
-
-GroupComponent.prototype.getSubGroups = function () {
- return this._group.getSubGroups(true);
-};
-
-GroupComponent.prototype.getParentGroup = function () {
- return this._group.parent ? this._group.parent.getComponent() : false;
-};
-
-GroupComponent.prototype.getVisibility = function () {
- console.warn("getVisibility function is deprecated, you should now use the isVisible function");
- return this._group.visible;
-};
-
-GroupComponent.prototype.isVisible = function () {
- return this._group.visible;
-};
-
-GroupComponent.prototype.show = function () {
- this._group.show();
-};
-
-GroupComponent.prototype.hide = function () {
- this._group.hide();
-};
-
-GroupComponent.prototype.toggle = function () {
- this._group.toggleVisibility();
-};
-
-GroupComponent.prototype._getSelf = function () {
- return this._group;
-};
-
-GroupComponent.prototype.getTable = function () {
- return this._group.groupManager.table;
-};
-
-//////////////////////////////////////////////////
-//////////////// Group Functions /////////////////
-//////////////////////////////////////////////////
-
-var Group = function Group(groupManager, parent, level, key, field, generator, oldGroup) {
-
- this.groupManager = groupManager;
- this.parent = parent;
- this.key = key;
- this.level = level;
- this.field = field;
- this.hasSubGroups = level < groupManager.groupIDLookups.length - 1;
- this.addRow = this.hasSubGroups ? this._addRowToGroup : this._addRow;
- this.type = "group"; //type of element
- this.old = oldGroup;
- this.rows = [];
- this.groups = [];
- this.groupList = [];
- this.generator = generator;
- this.elementContents = false;
- this.height = 0;
- this.outerHeight = 0;
- this.initialized = false;
- this.calcs = {};
- this.initialized = false;
- this.modules = {};
- this.arrowElement = false;
-
- this.visible = oldGroup ? oldGroup.visible : typeof groupManager.startOpen[level] !== "undefined" ? groupManager.startOpen[level] : groupManager.startOpen[0];
-
- this.component = null;
-
- this.createElements();
- this.addBindings();
-
- this.createValueGroups();
-};
-
-Group.prototype.wipe = function () {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
- } else {
- this.element = false;
- this.arrowElement = false;
- this.elementContents = false;
- }
-};
-
-Group.prototype.createElements = function () {
- var arrow = document.createElement("div");
- arrow.classList.add("tabulator-arrow");
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-row");
- this.element.classList.add("tabulator-group");
- this.element.classList.add("tabulator-group-level-" + this.level);
- this.element.setAttribute("role", "rowgroup");
-
- this.arrowElement = document.createElement("div");
- this.arrowElement.classList.add("tabulator-group-toggle");
- this.arrowElement.appendChild(arrow);
-
- //setup movable rows
- if (this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists("moveRow")) {
- this.groupManager.table.modules.moveRow.initializeGroupHeader(this);
- }
-};
-
-Group.prototype.createValueGroups = function () {
- var _this = this;
-
- var level = this.level + 1;
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- this.groupManager.allowedValues[level].forEach(function (value) {
- _this._createGroup(value, level);
- });
- }
-};
-
-Group.prototype.addBindings = function () {
- var self = this,
- dblTap,
- tapHold,
- tap,
- toggleElement;
-
- //handle group click events
- if (self.groupManager.table.options.groupClick) {
- self.element.addEventListener("click", function (e) {
- self.groupManager.table.options.groupClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupDblClick) {
- self.element.addEventListener("dblclick", function (e) {
- self.groupManager.table.options.groupDblClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupContext) {
- self.element.addEventListener("contextmenu", function (e) {
- self.groupManager.table.options.groupContext.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupContextMenu && self.groupManager.table.modExists("menu")) {
- self.groupManager.table.modules.menu.initializeGroup.call(self.groupManager.table.modules.menu, self);
- }
-
- if (self.groupManager.table.options.groupTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- self.groupManager.table.options.groupTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.groupManager.table.options.groupDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- self.groupManager.table.options.groupDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.groupManager.table.options.groupTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- self.groupManager.table.options.groupTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-
- if (self.groupManager.table.options.groupToggleElement) {
- toggleElement = self.groupManager.table.options.groupToggleElement == "arrow" ? self.arrowElement : self.element;
-
- toggleElement.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- self.toggleVisibility();
- });
- }
-};
-
-Group.prototype._createGroup = function (groupID, level) {
- var groupKey = level + "_" + groupID;
- var group = new Group(this.groupManager, this, level, groupID, this.groupManager.groupIDLookups[level].field, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupKey] : false);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
-};
-
-Group.prototype._addRowToGroup = function (row) {
-
- var level = this.level + 1;
-
- if (this.hasSubGroups) {
- var groupID = this.groupManager.groupIDLookups[level].func(row.getData()),
- groupKey = level + "_" + groupID;
-
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
- } else {
- if (!this.groups[groupKey]) {
- this._createGroup(groupID, level);
- }
-
- this.groups[groupKey].addRow(row);
- }
- }
-};
-
-Group.prototype._addRow = function (row) {
- this.rows.push(row);
- row.modules.group = this;
-};
-
-Group.prototype.insertRow = function (row, to, after) {
- var data = this.conformRowData({});
-
- row.updateData(data);
-
- var toIndex = this.rows.indexOf(to);
-
- if (toIndex > -1) {
- if (after) {
- this.rows.splice(toIndex + 1, 0, row);
- } else {
- this.rows.splice(toIndex, 0, row);
- }
- } else {
- if (after) {
- this.rows.push(row);
- } else {
- this.rows.unshift(row);
- }
- }
-
- row.modules.group = this;
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
-};
-
-Group.prototype.scrollHeader = function (left) {
- this.arrowElement.style.marginLeft = left;
-
- this.groupList.forEach(function (child) {
- child.scrollHeader(left);
- });
-};
-
-Group.prototype.getRowIndex = function (row) {};
-
-//update row data to match grouping contraints
-Group.prototype.conformRowData = function (data) {
- if (this.field) {
- data[this.field] = this.key;
- } else {
- console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function");
- }
-
- if (this.parent) {
- data = this.parent.conformRowData(data);
- }
-
- return data;
-};
-
-Group.prototype.removeRow = function (row) {
- var index = this.rows.indexOf(row);
- var el = row.getElement();
-
- if (index > -1) {
- this.rows.splice(index, 1);
- }
-
- if (!this.groupManager.table.options.groupValues && !this.rows.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
- } else {
-
- if (el.parentNode) {
- el.parentNode.removeChild(el);
- }
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
- }
-};
-
-Group.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
-
- if (!this.groupList.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
- }
- }
-};
-
-Group.prototype.getHeadersAndRows = function (noCalc) {
- var output = [];
-
- output.push(this);
-
- this._visSet();
-
- if (this.visible) {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows(noCalc));
- });
- } else {
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
-
- output = output.concat(this.rows);
-
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- } else {
- if (!this.groupList.length && this.groupManager.table.options.columnCalcs != "table") {
-
- if (this.groupManager.table.modExists("columnCalcs")) {
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
- }
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- }
- }
- }
-
- return output;
-};
-
-Group.prototype.getData = function (visible, transform) {
- var self = this,
- output = [];
-
- this._visSet();
-
- if (!visible || visible && this.visible) {
- this.rows.forEach(function (row) {
- output.push(row.getData(transform || "data"));
- });
- }
-
- return output;
-};
-
-// Group.prototype.getRows = function(){
-// this._visSet();
-
-// return this.visible ? this.rows : [];
-// };
-
-Group.prototype.getRowCount = function () {
- var count = 0;
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- count += group.getRowCount();
- });
- } else {
- count = this.rows.length;
- }
- return count;
-};
-
-Group.prototype.toggleVisibility = function () {
- if (this.visible) {
- this.hide();
- } else {
- this.show();
- }
-};
-
-Group.prototype.hide = function () {
- this.visible = false;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.remove("tabulator-group-visible");
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
-
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- row.detachElement();
- });
- });
- } else {
- this.rows.forEach(function (row) {
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), false);
-};
-
-Group.prototype.show = function () {
- var self = this;
-
- self.visible = true;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.add("tabulator-group-visible");
-
- var prev = self.getElement();
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- });
- } else {
- self.rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), true);
-};
-
-Group.prototype._visSet = function () {
- var data = [];
-
- if (typeof this.visible == "function") {
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.visible = this.visible(this.key, this.getRowCount(), data, this.getComponent());
- }
-};
-
-Group.prototype.getRowGroup = function (row) {
- var match = false;
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
- } else {
- if (this.rows.find(function (item) {
- return item === row;
- })) {
- match = this;
- }
- }
-
- return match;
-};
-
-Group.prototype.getSubGroups = function (component) {
- var output = [];
-
- this.groupList.forEach(function (child) {
- output.push(component ? child.getComponent() : child);
- });
-
- return output;
-};
-
-Group.prototype.getRows = function (compoment) {
- var output = [];
-
- this.rows.forEach(function (row) {
- output.push(compoment ? row.getComponent() : row);
- });
-
- return output;
-};
-
-Group.prototype.generateGroupHeaderContents = function () {
- var data = [];
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent());
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }if (typeof this.elementContents === "string") {
- this.element.innerHTML = this.elementContents;
- } else {
- this.element.appendChild(this.elementContents);
- }
-
- this.element.insertBefore(this.arrowElement, this.element.firstChild);
-};
-
-////////////// Standard Row Functions //////////////
-
-Group.prototype.getElement = function () {
- this.addBindingsd = false;
-
- this._visSet();
-
- if (this.visible) {
- this.element.classList.add("tabulator-group-visible");
- } else {
- this.element.classList.remove("tabulator-group-visible");
- }
-
- for (var i = 0; i < this.element.childNodes.length; ++i) {
- this.element.childNodes[i].parentNode.removeChild(this.element.childNodes[i]);
- }
-
- this.generateGroupHeaderContents();
-
- // this.addBindings();
-
- return this.element;
-};
-
-Group.prototype.detachElement = function () {
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
-};
-
-//normalize the height of elements in the row
-Group.prototype.normalizeHeight = function () {
- this.setHeight(this.element.clientHeight);
-};
-
-Group.prototype.initialize = function (force) {
- if (!this.initialized || force) {
- this.normalizeHeight();
- this.initialized = true;
- }
-};
-
-Group.prototype.reinitialize = function () {
- this.initialized = false;
- this.height = 0;
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
- this.initialize(true);
- }
-};
-
-Group.prototype.setHeight = function (height) {
- if (this.height != height) {
- this.height = height;
- this.outerHeight = this.element.offsetHeight;
- }
-};
-
-//return rows outer height
-Group.prototype.getHeight = function () {
- return this.outerHeight;
-};
-
-Group.prototype.getGroup = function () {
- return this;
-};
-
-Group.prototype.reinitializeHeight = function () {};
-Group.prototype.calcHeight = function () {};
-Group.prototype.setCellHeight = function () {};
-Group.prototype.clearCellHeight = function () {};
-
-//////////////// Object Generation /////////////////
-Group.prototype.getComponent = function () {
- if (!this.component) {
- this.component = new GroupComponent(this);
- }
-
- return this.component;
-};
-
-//////////////////////////////////////////////////
-////////////// Group Row Extension ///////////////
-//////////////////////////////////////////////////
-
-var GroupRows = function GroupRows(table) {
-
- this.table = table; //hold Tabulator object
-
- this.groupIDLookups = false; //enable table grouping and set field to group by
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
- this.headerGenerator = [function () {
- return "";
- }];
- this.groupList = []; //ordered list of groups
- this.allowedValues = false;
- this.groups = {}; //hold row groups
- this.displayIndex = 0; //index in display pipeline
-};
-
-//initialize group configuration
-GroupRows.prototype.initialize = function () {
- var self = this,
- groupBy = self.table.options.groupBy,
- startOpen = self.table.options.groupStartOpen,
- groupHeader = self.table.options.groupHeader;
-
- this.allowedValues = self.table.options.groupValues;
-
- if (Array.isArray(groupBy) && Array.isArray(groupHeader) && groupBy.length > groupHeader.length) {
- console.warn("Error creating group headers, groupHeader array is shorter than groupBy array");
- }
-
- self.headerGenerator = [function () {
- return "";
- }];
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
-
- self.table.modules.localize.bind("groups|item", function (langValue, lang) {
- self.headerGenerator[0] = function (value, count, data) {
- //header layout function
- return (typeof value === "undefined" ? "" : value) + "<span>(" + count + " " + (count === 1 ? langValue : lang.groups.items) + ")</span>";
- };
- });
-
- this.groupIDLookups = [];
-
- if (Array.isArray(groupBy) || groupBy) {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "table" && this.table.options.columnCalcs != "both") {
- this.table.modules.columnCalcs.removeCalcs();
- }
- } else {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "group") {
-
- var cols = this.table.columnManager.getRealColumns();
-
- cols.forEach(function (col) {
- if (col.definition.topCalc) {
- self.table.modules.columnCalcs.initializeTopRow();
- }
-
- if (col.definition.bottomCalc) {
- self.table.modules.columnCalcs.initializeBottomRow();
- }
- });
- }
- }
-
- if (!Array.isArray(groupBy)) {
- groupBy = [groupBy];
- }
-
- groupBy.forEach(function (group, i) {
- var lookupFunc, column;
-
- if (typeof group == "function") {
- lookupFunc = group;
- } else {
- column = self.table.columnManager.getColumnByField(group);
-
- if (column) {
- lookupFunc = function lookupFunc(data) {
- return column.getFieldValue(data);
- };
- } else {
- lookupFunc = function lookupFunc(data) {
- return data[group];
- };
- }
- }
-
- self.groupIDLookups.push({
- field: typeof group === "function" ? false : group,
- func: lookupFunc,
- values: self.allowedValues ? self.allowedValues[i] : false
- });
- });
-
- if (startOpen) {
-
- if (!Array.isArray(startOpen)) {
- startOpen = [startOpen];
- }
-
- startOpen.forEach(function (level) {
- level = typeof level == "function" ? level : function () {
- return true;
- };
- });
-
- self.startOpen = startOpen;
- }
-
- if (groupHeader) {
- self.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader];
- }
-
- this.initialized = true;
-};
-
-GroupRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-GroupRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-//return appropriate rows with group headers
-GroupRows.prototype.getRows = function (rows) {
- if (this.groupIDLookups.length) {
-
- this.table.options.dataGrouping.call(this.table);
-
- this.generateGroups(rows);
-
- if (this.table.options.dataGrouped) {
- this.table.options.dataGrouped.call(this.table, this.getGroups(true));
- }
-
- return this.updateGroupRows();
- } else {
- return rows.slice(0);
- }
-};
-
-GroupRows.prototype.getGroups = function (compoment) {
- var groupComponents = [];
-
- this.groupList.forEach(function (group) {
- groupComponents.push(compoment ? group.getComponent() : group);
- });
-
- return groupComponents;
-};
-
-GroupRows.prototype.getChildGroups = function (group) {
- var _this2 = this;
-
- var groupComponents = [];
-
- if (!group) {
- group = this;
- }
-
- group.groupList.forEach(function (child) {
- if (child.groupList.length) {
- groupComponents = groupComponents.concat(_this2.getChildGroups(child));
- } else {
- groupComponents.push(child);
- }
- });
-
- return groupComponents;
-};
-
-GroupRows.prototype.wipe = function () {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
-};
-
-GroupRows.prototype.pullGroupListData = function (groupList) {
- var self = this;
- var groupListData = [];
-
- groupList.forEach(function (group) {
- var groupHeader = {};
- groupHeader.level = 0;
- groupHeader.rowCount = 0;
- groupHeader.headerContent = "";
- var childData = [];
-
- if (group.hasSubGroups) {
- childData = self.pullGroupListData(group.groupList);
-
- groupHeader.level = group.level;
- groupHeader.rowCount = childData.length - group.groupList.length; // data length minus number of sub-headers
- groupHeader.headerContent = group.generator(group.key, groupHeader.rowCount, group.rows, group);
-
- groupListData.push(groupHeader);
- groupListData = groupListData.concat(childData);
- } else {
- groupHeader.level = group.level;
- groupHeader.headerContent = group.generator(group.key, group.rows.length, group.rows, group);
- groupHeader.rowCount = group.getRows().length;
-
- groupListData.push(groupHeader);
-
- group.getRows().forEach(function (row) {
- groupListData.push(row.getData("data"));
- });
- }
- });
-
- return groupListData;
-};
-
-GroupRows.prototype.getGroupedData = function () {
-
- return this.pullGroupListData(this.groupList);
-};
-
-GroupRows.prototype.getRowGroup = function (row) {
- var match = false;
-
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
-
- return match;
-};
-
-GroupRows.prototype.countGroups = function () {
- return this.groupList.length;
-};
-
-GroupRows.prototype.generateGroups = function (rows) {
- var self = this,
- oldGroups = self.groups;
-
- self.groups = {};
- self.groupList = [];
-
- if (this.allowedValues && this.allowedValues[0]) {
- this.allowedValues[0].forEach(function (value) {
- self.createGroup(value, 0, oldGroups);
- });
-
- rows.forEach(function (row) {
- self.assignRowToExistingGroup(row, oldGroups);
- });
- } else {
- rows.forEach(function (row) {
- self.assignRowToGroup(row, oldGroups);
- });
- }
-};
-
-GroupRows.prototype.createGroup = function (groupID, level, oldGroups) {
- var groupKey = level + "_" + groupID,
- group;
-
- oldGroups = oldGroups || [];
-
- group = new Group(this, false, level, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupKey]);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
-};
-
-// GroupRows.prototype.assignRowToGroup = function(row, oldGroups){
-// var groupID = this.groupIDLookups[0].func(row.getData()),
-// groupKey = "0_" + groupID;
-
-// if(!this.groups[groupKey]){
-// this.createGroup(groupID, 0, oldGroups);
-// }
-
-// this.groups[groupKey].addRow(row);
-// };
-
-GroupRows.prototype.assignRowToExistingGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- groupKey = "0_" + groupID;
-
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
-};
-
-GroupRows.prototype.assignRowToGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- newGroupNeeded = !this.groups["0_" + groupID];
-
- if (newGroupNeeded) {
- this.createGroup(groupID, 0, oldGroups);
- }
-
- this.groups["0_" + groupID].addRow(row);
-
- return !newGroupNeeded;
-};
-
-GroupRows.prototype.updateGroupRows = function (force) {
- var self = this,
- output = [],
- oldRowCount;
-
- self.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows());
- });
-
- //force update of table display
- if (force) {
-
- var displayIndex = self.table.rowManager.setDisplayRows(output, this.getDisplayIndex());
-
- if (displayIndex !== true) {
- this.setDisplayIndex(displayIndex);
- }
-
- self.table.rowManager.refreshActiveData("group", true, true);
- }
-
- return output;
-};
-
-GroupRows.prototype.scrollHeaders = function (left) {
- left = left + "px";
-
- this.groupList.forEach(function (group) {
- group.scrollHeader(left);
- });
-};
-
-GroupRows.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
- }
-};
-
-Tabulator.prototype.registerModule("groupRows", GroupRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var GroupComponent=function(t){this._group=t,this.type="GroupComponent"};GroupComponent.prototype.getKey=function(){return this._group.key},GroupComponent.prototype.getField=function(){return this._group.field},GroupComponent.prototype.getElement=function(){return this._group.element},GroupComponent.prototype.getRows=function(){return this._group.getRows(!0)},GroupComponent.prototype.getSubGroups=function(){return this._group.getSubGroups(!0)},GroupComponent.prototype.getParentGroup=function(){return!!this._group.parent&&this._group.parent.getComponent()},GroupComponent.prototype.getVisibility=function(){return console.warn("getVisibility function is deprecated, you should now use the isVisible function"),this._group.visible},GroupComponent.prototype.isVisible=function(){return this._group.visible},GroupComponent.prototype.show=function(){this._group.show()},GroupComponent.prototype.hide=function(){this._group.hide()},GroupComponent.prototype.toggle=function(){this._group.toggleVisibility()},GroupComponent.prototype._getSelf=function(){return this._group},GroupComponent.prototype.getTable=function(){return this._group.groupManager.table};var Group=function(t,o,e,r,i,s,n){this.groupManager=t,this.parent=o,this.key=r,this.level=e,this.field=i,this.hasSubGroups=e<t.groupIDLookups.length-1,this.addRow=this.hasSubGroups?this._addRowToGroup:this._addRow,this.type="group",this.old=n,this.rows=[],this.groups=[],this.groupList=[],this.generator=s,this.elementContents=!1,this.height=0,this.outerHeight=0,this.initialized=!1,this.calcs={},this.initialized=!1,this.modules={},this.arrowElement=!1,this.visible=n?n.visible:void 0!==t.startOpen[e]?t.startOpen[e]:t.startOpen[0],this.component=null,this.createElements(),this.addBindings(),this.createValueGroups()};Group.prototype.wipe=function(){this.groupList.length?this.groupList.forEach(function(t){t.wipe()}):(this.element=!1,this.arrowElement=!1,this.elementContents=!1)},Group.prototype.createElements=function(){var t=document.createElement("div");t.classList.add("tabulator-arrow"),this.element=document.createElement("div"),this.element.classList.add("tabulator-row"),this.element.classList.add("tabulator-group"),this.element.classList.add("tabulator-group-level-"+this.level),this.element.setAttribute("role","rowgroup"),this.arrowElement=document.createElement("div"),this.arrowElement.classList.add("tabulator-group-toggle"),this.arrowElement.appendChild(t),!1!==this.groupManager.table.options.movableRows&&this.groupManager.table.modExists("moveRow")&&this.groupManager.table.modules.moveRow.initializeGroupHeader(this)},Group.prototype.createValueGroups=function(){var t=this,o=this.level+1;this.groupManager.allowedValues&&this.groupManager.allowedValues[o]&&this.groupManager.allowedValues[o].forEach(function(e){t._createGroup(e,o)})},Group.prototype.addBindings=function(){var t,o,e,r,i=this;i.groupManager.table.options.groupClick&&i.element.addEventListener("click",function(t){i.groupManager.table.options.groupClick.call(i.groupManager.table,t,i.getComponent())}),i.groupManager.table.options.groupDblClick&&i.element.addEventListener("dblclick",function(t){i.groupManager.table.options.groupDblClick.call(i.groupManager.table,t,i.getComponent())}),i.groupManager.table.options.groupContext&&i.element.addEventListener("contextmenu",function(t){i.groupManager.table.options.groupContext.call(i.groupManager.table,t,i.getComponent())}),i.groupManager.table.options.groupContextMenu&&i.groupManager.table.modExists("menu")&&i.groupManager.table.modules.menu.initializeGroup.call(i.groupManager.table.modules.menu,i),i.groupManager.table.options.groupTap&&(e=!1,i.element.addEventListener("touchstart",function(t){e=!0},{passive:!0}),i.element.addEventListener("touchend",function(t){e&&i.groupManager.table.options.groupTap(t,i.getComponent()),e=!1})),i.groupManager.table.options.groupDblTap&&(t=null,i.element.addEventListener("touchend",function(o){t?(clearTimeout(t),t=null,i.groupManager.table.options.groupDblTap(o,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),i.groupManager.table.options.groupTapHold&&(o=null,i.element.addEventListener("touchstart",function(t){clearTimeout(o),o=setTimeout(function(){clearTimeout(o),o=null,e=!1,i.groupManager.table.options.groupTapHold(t,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(t){clearTimeout(o),o=null})),i.groupManager.table.options.groupToggleElement&&(r="arrow"==i.groupManager.table.options.groupToggleElement?i.arrowElement:i.element,r.addEventListener("click",function(t){t.stopPropagation(),t.stopImmediatePropagation(),i.toggleVisibility()}))},Group.prototype._createGroup=function(t,o){var e=o+"_"+t,r=new Group(this.groupManager,this,o,t,this.groupManager.groupIDLookups[o].field,this.groupManager.headerGenerator[o]||this.groupManager.headerGenerator[0],!!this.old&&this.old.groups[e]);this.groups[e]=r,this.groupList.push(r)},Group.prototype._addRowToGroup=function(t){var o=this.level+1;if(this.hasSubGroups){var e=this.groupManager.groupIDLookups[o].func(t.getData()),r=o+"_"+e;this.groupManager.allowedValues&&this.groupManager.allowedValues[o]?this.groups[r]&&this.groups[r].addRow(t):(this.groups[r]||this._createGroup(e,o),this.groups[r].addRow(t))}},Group.prototype._addRow=function(t){this.rows.push(t),t.modules.group=this},Group.prototype.insertRow=function(t,o,e){var r=this.conformRowData({});t.updateData(r);var i=this.rows.indexOf(o);i>-1?e?this.rows.splice(i+1,0,t):this.rows.splice(i,0,t):e?this.rows.push(t):this.rows.unshift(t),t.modules.group=this,this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this),this.groupManager.updateGroupRows(!0)},Group.prototype.scrollHeader=function(t){this.arrowElement.style.marginLeft=t,this.groupList.forEach(function(o){o.scrollHeader(t)})},Group.prototype.getRowIndex=function(t){},Group.prototype.conformRowData=function(t){return this.field?t[this.field]=this.key:console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"),this.parent&&(t=this.parent.conformRowData(t)),t},Group.prototype.removeRow=function(t){var o=this.rows.indexOf(t),e=t.getElement();o>-1&&this.rows.splice(o,1),this.groupManager.table.options.groupValues||this.rows.length?(e.parentNode&&e.parentNode.removeChild(e),this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this)):(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this),this.groupManager.updateGroupRows(!0))},Group.prototype.removeGroup=function(t){var o,e=t.level+"_"+t.key;this.groups[e]&&(delete this.groups[e],o=this.groupList.indexOf(t),o>-1&&this.groupList.splice(o,1),this.groupList.length||(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this)))},Group.prototype.getHeadersAndRows=function(t){var o=[];return o.push(this),this._visSet(),this.visible?this.groupList.length?this.groupList.forEach(function(e){o=o.concat(e.getHeadersAndRows(t))}):(!t&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),o.push(this.calcs.top)),o=o.concat(this.rows),!t&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),o.push(this.calcs.bottom))):this.groupList.length||"table"==this.groupManager.table.options.columnCalcs||this.groupManager.table.modExists("columnCalcs")&&(!t&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),o.push(this.calcs.top))),!t&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),o.push(this.calcs.bottom)))),o},Group.prototype.getData=function(t,o){var e=[];return this._visSet(),(!t||t&&this.visible)&&this.rows.forEach(function(t){e.push(t.getData(o||"data"))}),e},Group.prototype.getRowCount=function(){var t=0;return this.groupList.length?this.groupList.forEach(function(o){t+=o.getRowCount()}):t=this.rows.length,t},Group.prototype.toggleVisibility=function(){this.visible?this.hide():this.show()},Group.prototype.hide=function(){this.visible=!1,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination?this.groupManager.updateGroupRows(!0):(this.element.classList.remove("tabulator-group-visible"),this.groupList.length?this.groupList.forEach(function(t){t.getHeadersAndRows().forEach(function(t){t.detachElement()})}):this.rows.forEach(function(t){var o=t.getElement();o.parentNode.removeChild(o)}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()),this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!1)},Group.prototype.show=function(){var t=this;if(t.visible=!0,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination)this.groupManager.updateGroupRows(!0);else{this.element.classList.add("tabulator-group-visible");var o=t.getElement();this.groupList.length?this.groupList.forEach(function(t){t.getHeadersAndRows().forEach(function(t){var e=t.getElement();o.parentNode.insertBefore(e,o.nextSibling),t.initialize(),o=e})}):t.rows.forEach(function(t){var e=t.getElement();o.parentNode.insertBefore(e,o.nextSibling),t.initialize(),o=e}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()}this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!0)},Group.prototype._visSet=function(){var t=[];"function"==typeof this.visible&&(this.rows.forEach(function(o){t.push(o.getData())}),this.visible=this.visible(this.key,this.getRowCount(),t,this.getComponent()))},Group.prototype.getRowGroup=function(t){var o=!1;return this.groupList.length?this.groupList.forEach(function(e){var r=e.getRowGroup(t);r&&(o=r)}):this.rows.find(function(o){return o===t})&&(o=this),o},Group.prototype.getSubGroups=function(t){var o=[];return this.groupList.forEach(function(e){o.push(t?e.getComponent():e)}),o},Group.prototype.getRows=function(t){var o=[];return this.rows.forEach(function(e){o.push(t?e.getComponent():e)}),o},Group.prototype.generateGroupHeaderContents=function(){var t=[];for(this.rows.forEach(function(o){t.push(o.getData())}),this.elementContents=this.generator(this.key,this.getRowCount(),t,this.getComponent());this.element.firstChild;)this.element.removeChild(this.element.firstChild);"string"==typeof this.elementContents?this.element.innerHTML=this.elementContents:this.element.appendChild(this.elementContents),this.element.insertBefore(this.arrowElement,this.element.firstChild)},Group.prototype.getElement=function(){this.addBindingsd=!1,this._visSet(),this.visible?this.element.classList.add("tabulator-group-visible"):this.element.classList.remove("tabulator-group-visible");for(var t=0;t<this.element.childNodes.length;++t)this.element.childNodes[t].parentNode.removeChild(this.element.childNodes[t]);return this.generateGroupHeaderContents(),this.element},Group.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},Group.prototype.normalizeHeight=function(){this.setHeight(this.element.clientHeight)},Group.prototype.initialize=function(t){this.initialized&&!t||(this.normalizeHeight(),this.initialized=!0)},Group.prototype.reinitialize=function(){this.initialized=!1,this.height=0,Tabulator.prototype.helpers.elVisible(this.element)&&this.initialize(!0)},Group.prototype.setHeight=function(t){this.height!=t&&(this.height=t,this.outerHeight=this.element.offsetHeight)},Group.prototype.getHeight=function(){return this.outerHeight},Group.prototype.getGroup=function(){return this},Group.prototype.reinitializeHeight=function(){},Group.prototype.calcHeight=function(){},Group.prototype.setCellHeight=function(){},Group.prototype.clearCellHeight=function(){},Group.prototype.getComponent=function(){return this.component||(this.component=new GroupComponent(this)),this.component};var GroupRows=function(t){this.table=t,this.groupIDLookups=!1,this.startOpen=[function(){return!1}],this.headerGenerator=[function(){return""}],this.groupList=[],this.allowedValues=!1,this.groups={},this.displayIndex=0};GroupRows.prototype.initialize=function(){var t=this,o=t.table.options.groupBy,e=t.table.options.groupStartOpen,r=t.table.options.groupHeader;if(this.allowedValues=t.table.options.groupValues,Array.isArray(o)&&Array.isArray(r)&&o.length>r.length&&console.warn("Error creating group headers, groupHeader array is shorter than groupBy array"),t.headerGenerator=[function(){return""}],this.startOpen=[function(){return!1}],t.table.modules.localize.bind("groups|item",function(o,e){t.headerGenerator[0]=function(t,r,i){return(void 0===t?"":t)+"<span>("+r+" "+(1===r?o:e.groups.items)+")</span>"}}),this.groupIDLookups=[],Array.isArray(o)||o)this.table.modExists("columnCalcs")&&"table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.removeCalcs();else if(this.table.modExists("columnCalcs")&&"group"!=this.table.options.columnCalcs){var i=this.table.columnManager.getRealColumns();i.forEach(function(o){o.definition.topCalc&&t.table.modules.columnCalcs.initializeTopRow(),o.definition.bottomCalc&&t.table.modules.columnCalcs.initializeBottomRow()})}Array.isArray(o)||(o=[o]),o.forEach(function(o,e){var r,i;"function"==typeof o?r=o:(i=t.table.columnManager.getColumnByField(o),r=i?function(t){return i.getFieldValue(t)}:function(t){return t[o]}),t.groupIDLookups.push({field:"function"!=typeof o&&o,func:r,values:!!t.allowedValues&&t.allowedValues[e]})}),e&&(Array.isArray(e)||(e=[e]),e.forEach(function(t){t="function"==typeof t?t:function(){return!0}}),t.startOpen=e),r&&(t.headerGenerator=Array.isArray(r)?r:[r]),this.initialized=!0},GroupRows.prototype.setDisplayIndex=function(t){this.displayIndex=t},GroupRows.prototype.getDisplayIndex=function(){return this.displayIndex},GroupRows.prototype.getRows=function(t){return this.groupIDLookups.length?(this.table.options.dataGrouping.call(this.table),this.generateGroups(t),this.table.options.dataGrouped&&this.table.options.dataGrouped.call(this.table,this.getGroups(!0)),this.updateGroupRows()):t.slice(0)},GroupRows.prototype.getGroups=function(t){var o=[];return this.groupList.forEach(function(e){o.push(t?e.getComponent():e)}),o},GroupRows.prototype.getChildGroups=function(t){var o=this,e=[];return t||(t=this),t.groupList.forEach(function(t){t.groupList.length?e=e.concat(o.getChildGroups(t)):e.push(t)}),e},GroupRows.prototype.wipe=function(){this.groupList.forEach(function(t){t.wipe()})},GroupRows.prototype.pullGroupListData=function(t){var o=this,e=[];return t.forEach(function(t){var r={};r.level=0,r.rowCount=0,r.headerContent="";var i=[];t.hasSubGroups?(i=o.pullGroupListData(t.groupList),r.level=t.level,r.rowCount=i.length-t.groupList.length,r.headerContent=t.generator(t.key,r.rowCount,t.rows,t),e.push(r),e=e.concat(i)):(r.level=t.level,r.headerContent=t.generator(t.key,t.rows.length,t.rows,t),r.rowCount=t.getRows().length,e.push(r),t.getRows().forEach(function(t){e.push(t.getData("data"))}))}),e},GroupRows.prototype.getGroupedData=function(){return this.pullGroupListData(this.groupList)},GroupRows.prototype.getRowGroup=function(t){var o=!1;return this.groupList.forEach(function(e){var r=e.getRowGroup(t);r&&(o=r)}),o},GroupRows.prototype.countGroups=function(){return this.groupList.length},GroupRows.prototype.generateGroups=function(t){var o=this,e=o.groups;o.groups={},o.groupList=[],this.allowedValues&&this.allowedValues[0]?(this.allowedValues[0].forEach(function(t){o.createGroup(t,0,e)}),t.forEach(function(t){o.assignRowToExistingGroup(t,e)})):t.forEach(function(t){o.assignRowToGroup(t,e)})},GroupRows.prototype.createGroup=function(t,o,e){var r,i=o+"_"+t;e=e||[],r=new Group(this,!1,o,t,this.groupIDLookups[0].field,this.headerGenerator[0],e[i]),this.groups[i]=r,this.groupList.push(r)},GroupRows.prototype.assignRowToExistingGroup=function(t,o){var e=this.groupIDLookups[0].func(t.getData()),r="0_"+e;this.groups[r]&&this.groups[r].addRow(t)},GroupRows.prototype.assignRowToGroup=function(t,o){var e=this.groupIDLookups[0].func(t.getData()),r=!this.groups["0_"+e];return r&&this.createGroup(e,0,o),this.groups["0_"+e].addRow(t),!r},GroupRows.prototype.updateGroupRows=function(t){var o=this,e=[];if(o.groupList.forEach(function(t){e=e.concat(t.getHeadersAndRows())}),t){var r=o.table.rowManager.setDisplayRows(e,this.getDisplayIndex());!0!==r&&this.setDisplayIndex(r),o.table.rowManager.refreshActiveData("group",!0,!0)}return e},GroupRows.prototype.scrollHeaders=function(t){t+="px",this.groupList.forEach(function(o){o.scrollHeader(t)})},GroupRows.prototype.removeGroup=function(t){var o,e=t.level+"_"+t.key;this.groups[e]&&(delete this.groups[e],(o=this.groupList.indexOf(t))>-1&&this.groupList.splice(o,1))},Tabulator.prototype.registerModule("groupRows",GroupRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var History = function History(table) {
- this.table = table; //hold Tabulator object
-
- this.history = [];
- this.index = -1;
-};
-
-History.prototype.clear = function () {
- this.history = [];
- this.index = -1;
-};
-
-History.prototype.action = function (type, component, data) {
-
- this.history = this.history.slice(0, this.index + 1);
-
- this.history.push({
- type: type,
- component: component,
- data: data
- });
-
- this.index++;
-};
-
-History.prototype.getHistoryUndoSize = function () {
- return this.index + 1;
-};
-
-History.prototype.getHistoryRedoSize = function () {
- return this.history.length - (this.index + 1);
-};
-
-History.prototype.undo = function () {
-
- if (this.index > -1) {
- var action = this.history[this.index];
-
- this.undoers[action.type].call(this, action);
-
- this.index--;
-
- this.table.options.historyUndo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Undo Error - No more history to undo");
- return false;
- }
-};
-
-History.prototype.redo = function () {
- if (this.history.length - 1 > this.index) {
-
- this.index++;
-
- var action = this.history[this.index];
-
- this.redoers[action.type].call(this, action);
-
- this.table.options.historyRedo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Redo Error - No more history to redo");
- return false;
- }
-};
-
-History.prototype.undoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.oldValue);
- },
-
- rowAdd: function rowAdd(action) {
- action.component.deleteActual();
- },
-
- rowDelete: function rowDelete(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posFrom], !action.data.after);
- this.table.rowManager.redraw();
- }
-};
-
-History.prototype.redoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.newValue);
- },
-
- rowAdd: function rowAdd(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowDelete: function rowDelete(action) {
- action.component.deleteActual();
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posTo], action.data.after);
- this.table.rowManager.redraw();
- }
-};
-
-//rebind rows to new element after deletion
-History.prototype._rebindRow = function (oldRow, newRow) {
- this.history.forEach(function (action) {
- if (action.component instanceof Row) {
- if (action.component === oldRow) {
- action.component = newRow;
- }
- } else if (action.component instanceof Cell) {
- if (action.component.row === oldRow) {
- var field = action.component.column.getField();
-
- if (field) {
- action.component = newRow.getCell(field);
- }
- }
- }
- });
-};
-
-Tabulator.prototype.registerModule("history", History);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var History=function(t){this.table=t,this.history=[],this.index=-1};History.prototype.clear=function(){this.history=[],this.index=-1},History.prototype.action=function(t,o,e){this.history=this.history.slice(0,this.index+1),this.history.push({type:t,component:o,data:e}),this.index++},History.prototype.getHistoryUndoSize=function(){return this.index+1},History.prototype.getHistoryRedoSize=function(){return this.history.length-(this.index+1)},History.prototype.undo=function(){if(this.index>-1){var t=this.history[this.index];return this.undoers[t.type].call(this,t),this.index--,this.table.options.historyUndo.call(this.table,t.type,t.component.getComponent(),t.data),!0}return console.warn("History Undo Error - No more history to undo"),!1},History.prototype.redo=function(){if(this.history.length-1>this.index){this.index++;var t=this.history[this.index];return this.redoers[t.type].call(this,t),this.table.options.historyRedo.call(this.table,t.type,t.component.getComponent(),t.data),!0}return console.warn("History Redo Error - No more history to redo"),!1},History.prototype.undoers={cellEdit:function(t){t.component.setValueProcessData(t.data.oldValue)},rowAdd:function(t){t.component.deleteActual()},rowDelete:function(t){var o=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(t.component,o)},rowMove:function(t){this.table.rowManager.moveRowActual(t.component,this.table.rowManager.rows[t.data.posFrom],!t.data.after),this.table.rowManager.redraw()}},History.prototype.redoers={cellEdit:function(t){t.component.setValueProcessData(t.data.newValue)},rowAdd:function(t){var o=this.table.rowManager.addRowActual(t.data.data,t.data.pos,t.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(t.component,o)},rowDelete:function(t){t.component.deleteActual()},rowMove:function(t){this.table.rowManager.moveRowActual(t.component,this.table.rowManager.rows[t.data.posTo],t.data.after),this.table.rowManager.redraw()}},History.prototype._rebindRow=function(t,o){this.history.forEach(function(e){if(e.component instanceof Row)e.component===t&&(e.component=o);else if(e.component instanceof Cell&&e.component.row===t){var i=e.component.column.getField();i&&(e.component=o.getCell(i))}})},Tabulator.prototype.registerModule("history",History);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var HtmlTableImport = function HtmlTableImport(table) {
- this.table = table; //hold Tabulator object
- this.fieldIndex = [];
- this.hasIndex = false;
-};
-
-HtmlTableImport.prototype.parseTable = function () {
- var self = this,
- element = self.table.element,
- options = self.table.options,
- columns = options.columns,
- headers = element.getElementsByTagName("th"),
- rows = element.getElementsByTagName("tbody")[0],
- data = [],
- newTable;
-
- self.hasIndex = false;
-
- self.table.options.htmlImporting.call(this.table);
-
- rows = rows ? rows.getElementsByTagName("tr") : [];
-
- //check for tablator inline options
- self._extractOptions(element, options);
-
- if (headers.length) {
- self._extractHeaders(headers, rows);
- } else {
- self._generateBlankHeaders(headers, rows);
- }
-
- //iterate through table rows and build data set
- for (var index = 0; index < rows.length; index++) {
- var row = rows[index],
- cells = row.getElementsByTagName("td"),
- item = {};
-
- //create index if the dont exist in table
- if (!self.hasIndex) {
- item[options.index] = index;
- }
-
- for (var i = 0; i < cells.length; i++) {
- var cell = cells[i];
- if (typeof this.fieldIndex[i] !== "undefined") {
- item[this.fieldIndex[i]] = cell.innerHTML;
- }
- }
-
- //add row data to item
- data.push(item);
- }
-
- //create new element
- var newElement = document.createElement("div");
-
- //transfer attributes to new element
- var attributes = element.attributes;
-
- // loop through attributes and apply them on div
-
- for (var i in attributes) {
- if (_typeof(attributes[i]) == "object") {
- newElement.setAttribute(attributes[i].name, attributes[i].value);
- }
- }
-
- // replace table with div element
- element.parentNode.replaceChild(newElement, element);
-
- options.data = data;
-
- self.table.options.htmlImported.call(this.table);
-
- // // newElement.tabulator(options);
-
- this.table.element = newElement;
-};
-
-//extract tabulator attribute options
-HtmlTableImport.prototype._extractOptions = function (element, options, defaultOptions) {
- var attributes = element.attributes;
- var optionsArr = defaultOptions ? Object.assign([], defaultOptions) : Object.keys(options);
- var optionsList = {};
-
- optionsArr.forEach(function (item) {
- optionsList[item.toLowerCase()] = item;
- });
-
- for (var index in attributes) {
- var attrib = attributes[index];
- var name;
-
- if (attrib && (typeof attrib === "undefined" ? "undefined" : _typeof(attrib)) == "object" && attrib.name && attrib.name.indexOf("tabulator-") === 0) {
- name = attrib.name.replace("tabulator-", "");
-
- if (typeof optionsList[name] !== "undefined") {
- options[optionsList[name]] = this._attribValue(attrib.value);
- }
- }
- }
-};
-
-//get value of attribute
-HtmlTableImport.prototype._attribValue = function (value) {
- if (value === "true") {
- return true;
- }
-
- if (value === "false") {
- return false;
- }
-
- return value;
-};
-
-//find column if it has already been defined
-HtmlTableImport.prototype._findCol = function (title) {
- var match = this.table.options.columns.find(function (column) {
- return column.title === title;
- });
-
- return match || false;
-};
-
-//extract column from headers
-HtmlTableImport.prototype._extractHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- exists = false,
- col = this._findCol(header.textContent),
- width,
- attributes;
-
- if (col) {
- exists = true;
- } else {
- col = { title: header.textContent.trim() };
- }
-
- if (!col.field) {
- col.field = header.textContent.trim().toLowerCase().replace(" ", "_");
- }
-
- width = header.getAttribute("width");
-
- if (width && !col.width) {
- col.width = width;
- }
-
- //check for tablator inline options
- attributes = header.attributes;
-
- // //check for tablator inline options
- this._extractOptions(header, col, Column.prototype.defaultOptionList);
-
- this.fieldIndex[index] = col.field;
-
- if (col.field == this.table.options.index) {
- this.hasIndex = true;
- }
-
- if (!exists) {
- this.table.options.columns.push(col);
- }
- }
-};
-
-//generate blank headers
-HtmlTableImport.prototype._generateBlankHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- col = { title: "", field: "col" + index };
-
- this.fieldIndex[index] = col.field;
-
- var width = header.getAttribute("width");
-
- if (width) {
- col.width = width;
- }
-
- this.table.options.columns.push(col);
- }
-};
-
-Tabulator.prototype.registerModule("htmlTableImport", HtmlTableImport);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},HtmlTableImport=function(t){this.table=t,this.fieldIndex=[],this.hasIndex=!1};HtmlTableImport.prototype.parseTable=function(){var t=this,e=t.table.element,o=t.table.options,a=(o.columns,e.getElementsByTagName("th")),n=e.getElementsByTagName("tbody")[0],l=[];t.hasIndex=!1,t.table.options.htmlImporting.call(this.table),n=n?n.getElementsByTagName("tr"):[],t._extractOptions(e,o),a.length?t._extractHeaders(a,n):t._generateBlankHeaders(a,n);for(var r=0;r<n.length;r++){var i=n[r],s=i.getElementsByTagName("td"),p={};t.hasIndex||(p[o.index]=r);for(var m=0;m<s.length;m++){var d=s[m];void 0!==this.fieldIndex[m]&&(p[this.fieldIndex[m]]=d.innerHTML)}l.push(p)}var f=document.createElement("div"),b=e.attributes;for(var m in b)"object"==_typeof(b[m])&&f.setAttribute(b[m].name,b[m].value);e.parentNode.replaceChild(f,e),o.data=l,t.table.options.htmlImported.call(this.table),this.table.element=f},HtmlTableImport.prototype._extractOptions=function(t,e,o){var a=t.attributes,n=o?Object.assign([],o):Object.keys(e),l={};n.forEach(function(t){l[t.toLowerCase()]=t});for(var r in a){var i,s=a[r];s&&"object"==(void 0===s?"undefined":_typeof(s))&&s.name&&0===s.name.indexOf("tabulator-")&&(i=s.name.replace("tabulator-",""),void 0!==l[i]&&(e[l[i]]=this._attribValue(s.value)))}},HtmlTableImport.prototype._attribValue=function(t){return"true"===t||"false"!==t&&t},HtmlTableImport.prototype._findCol=function(t){return this.table.options.columns.find(function(e){return e.title===t})||!1},HtmlTableImport.prototype._extractHeaders=function(t,e){for(var o=0;o<t.length;o++){var a,n=t[o],l=!1,r=this._findCol(n.textContent);r?l=!0:r={title:n.textContent.trim()},r.field||(r.field=n.textContent.trim().toLowerCase().replace(" ","_")),a=n.getAttribute("width"),a&&!r.width&&(r.width=a),n.attributes,this._extractOptions(n,r,Column.prototype.defaultOptionList),this.fieldIndex[o]=r.field,r.field==this.table.options.index&&(this.hasIndex=!0),l||this.table.options.columns.push(r)}},HtmlTableImport.prototype._generateBlankHeaders=function(t,e){for(var o=0;o<t.length;o++){var a=t[o],n={title:"",field:"col"+o};this.fieldIndex[o]=n.field;var l=a.getAttribute("width");l&&(n.width=l),this.table.options.columns.push(n)}},Tabulator.prototype.registerModule("htmlTableImport",HtmlTableImport);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Keybindings = function Keybindings(table) {
- this.table = table; //hold Tabulator object
- this.watchKeys = null;
- this.pressedKeys = null;
- this.keyupBinding = false;
- this.keydownBinding = false;
-};
-
-Keybindings.prototype.initialize = function () {
- var bindings = this.table.options.keybindings,
- mergedBindings = {};
-
- this.watchKeys = {};
- this.pressedKeys = [];
-
- if (bindings !== false) {
-
- for (var key in this.bindings) {
- mergedBindings[key] = this.bindings[key];
- }
-
- if (Object.keys(bindings).length) {
-
- for (var _key in bindings) {
- mergedBindings[_key] = bindings[_key];
- }
- }
-
- this.mapBindings(mergedBindings);
- this.bindEvents();
- }
-};
-
-Keybindings.prototype.mapBindings = function (bindings) {
- var _this = this;
-
- var self = this;
-
- var _loop = function _loop(key) {
-
- if (_this.actions[key]) {
-
- if (bindings[key]) {
-
- if (_typeof(bindings[key]) !== "object") {
- bindings[key] = [bindings[key]];
- }
-
- bindings[key].forEach(function (binding) {
- self.mapBinding(key, binding);
- });
- }
- } else {
- console.warn("Key Binding Error - no such action:", key);
- }
- };
-
- for (var key in bindings) {
- _loop(key);
- }
-};
-
-Keybindings.prototype.mapBinding = function (action, symbolsList) {
- var self = this;
-
- var binding = {
- action: this.actions[action],
- keys: [],
- ctrl: false,
- shift: false,
- meta: false
- };
-
- var symbols = symbolsList.toString().toLowerCase().split(" ").join("").split("+");
-
- symbols.forEach(function (symbol) {
- switch (symbol) {
- case "ctrl":
- binding.ctrl = true;
- break;
-
- case "shift":
- binding.shift = true;
- break;
-
- case "meta":
- binding.meta = true;
- break;
-
- default:
- symbol = parseInt(symbol);
- binding.keys.push(symbol);
-
- if (!self.watchKeys[symbol]) {
- self.watchKeys[symbol] = [];
- }
-
- self.watchKeys[symbol].push(binding);
- }
- });
-};
-
-Keybindings.prototype.bindEvents = function () {
- var self = this;
-
- this.keyupBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- self.pressedKeys.push(code);
-
- bindings.forEach(function (binding) {
- self.checkBinding(e, binding);
- });
- }
- };
-
- this.keydownBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- var index = self.pressedKeys.indexOf(code);
-
- if (index > -1) {
- self.pressedKeys.splice(index, 1);
- }
- }
- };
-
- this.table.element.addEventListener("keydown", this.keyupBinding);
-
- this.table.element.addEventListener("keyup", this.keydownBinding);
-};
-
-Keybindings.prototype.clearBindings = function () {
- if (this.keyupBinding) {
- this.table.element.removeEventListener("keydown", this.keyupBinding);
- }
-
- if (this.keydownBinding) {
- this.table.element.removeEventListener("keyup", this.keydownBinding);
- }
-};
-
-Keybindings.prototype.checkBinding = function (e, binding) {
- var self = this,
- match = true;
-
- if (e.ctrlKey == binding.ctrl && e.shiftKey == binding.shift && e.metaKey == binding.meta) {
- binding.keys.forEach(function (key) {
- var index = self.pressedKeys.indexOf(key);
-
- if (index == -1) {
- match = false;
- }
- });
-
- if (match) {
- binding.action.call(self, e);
- }
-
- return true;
- }
-
- return false;
-};
-
-//default bindings
-Keybindings.prototype.bindings = {
- navPrev: "shift + 9",
- navNext: 9,
- navUp: 38,
- navDown: 40,
- scrollPageUp: 33,
- scrollPageDown: 34,
- scrollToStart: 36,
- scrollToEnd: 35,
- undo: "ctrl + 90",
- redo: "ctrl + 89",
- copyToClipboard: "ctrl + 67"
-};
-
-//default actions
-Keybindings.prototype.actions = {
- keyBlock: function keyBlock(e) {
- e.stopPropagation();
- e.preventDefault();
- },
- scrollPageUp: function scrollPageUp(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop - rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos >= 0) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
- }
-
- this.table.element.focus();
- },
- scrollPageDown: function scrollPageDown(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop + rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos <= scrollMax) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
- }
-
- this.table.element.focus();
- },
- scrollToStart: function scrollToStart(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
-
- this.table.element.focus();
- },
- scrollToEnd: function scrollToEnd(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
-
- this.table.element.focus();
- },
- navPrev: function navPrev(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().prev();
- }
- }
- },
-
- navNext: function navNext(e) {
- var cell = false;
- var newRow = this.table.options.tabEndNewRow;
- var nav;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
-
- nav = cell.nav();
-
- if (!nav.next()) {
- if (newRow) {
-
- cell.getElement().firstChild.blur();
-
- if (newRow === true) {
- newRow = this.table.addRow({});
- } else {
- if (typeof newRow == "function") {
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
- } else {
- newRow = this.table.addRow(Object.assign({}, newRow));
- }
- }
-
- newRow.then(function () {
- setTimeout(function () {
- nav.next();
- });
- });
- }
- }
- }
- }
- },
-
- navLeft: function navLeft(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().left();
- }
- }
- },
-
- navRight: function navRight(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().right();
- }
- }
- },
-
- navUp: function navUp(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().up();
- }
- }
- },
-
- navDown: function navDown(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().down();
- }
- }
- },
-
- undo: function undo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.undo();
- }
- }
- },
-
- redo: function redo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.redo();
- }
- }
- },
-
- copyToClipboard: function copyToClipboard(e) {
- if (!this.table.modules.edit.currentCell) {
- if (this.table.modExists("clipboard", true)) {
- this.table.modules.clipboard.copy(false, true);
- }
- }
- }
-};
-
-Tabulator.prototype.registerModule("keybindings", Keybindings);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Keybindings=function(t){this.table=t,this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1};Keybindings.prototype.initialize=function(){var t=this.table.options.keybindings,e={};if(this.watchKeys={},this.pressedKeys=[],!1!==t){for(var i in this.bindings)e[i]=this.bindings[i];if(Object.keys(t).length)for(var n in t)e[n]=t[n];this.mapBindings(e),this.bindEvents()}},Keybindings.prototype.mapBindings=function(t){var e=this,i=this;for(var n in t)!function(n){e.actions[n]?t[n]&&("object"!==_typeof(t[n])&&(t[n]=[t[n]]),t[n].forEach(function(t){i.mapBinding(n,t)})):console.warn("Key Binding Error - no such action:",n)}(n)},Keybindings.prototype.mapBinding=function(t,e){var i=this,n={action:this.actions[t],keys:[],ctrl:!1,shift:!1,meta:!1};e.toString().toLowerCase().split(" ").join("").split("+").forEach(function(t){switch(t){case"ctrl":n.ctrl=!0;break;case"shift":n.shift=!0;break;case"meta":n.meta=!0;break;default:t=parseInt(t),n.keys.push(t),i.watchKeys[t]||(i.watchKeys[t]=[]),i.watchKeys[t].push(n)}})},Keybindings.prototype.bindEvents=function(){var t=this;this.keyupBinding=function(e){var i=e.keyCode,n=t.watchKeys[i];n&&(t.pressedKeys.push(i),n.forEach(function(i){t.checkBinding(e,i)}))},this.keydownBinding=function(e){var i=e.keyCode;if(t.watchKeys[i]){var n=t.pressedKeys.indexOf(i);n>-1&&t.pressedKeys.splice(n,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)},Keybindings.prototype.clearBindings=function(){this.keyupBinding&&this.table.element.removeEventListener("keydown",this.keyupBinding),this.keydownBinding&&this.table.element.removeEventListener("keyup",this.keydownBinding)},Keybindings.prototype.checkBinding=function(t,e){var i=this,n=!0;return t.ctrlKey==e.ctrl&&t.shiftKey==e.shift&&t.metaKey==e.meta&&(e.keys.forEach(function(t){-1==i.pressedKeys.indexOf(t)&&(n=!1)}),n&&e.action.call(i,t),!0)},Keybindings.prototype.bindings={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35,undo:"ctrl + 90",redo:"ctrl + 89",copyToClipboard:"ctrl + 67"},Keybindings.prototype.actions={keyBlock:function(t){t.stopPropagation(),t.preventDefault()},scrollPageUp:function(t){var e=this.table.rowManager,i=e.scrollTop-e.height;e.element.scrollHeight;t.preventDefault(),e.displayRowsCount&&(i>=0?e.element.scrollTop=i:e.scrollToRow(e.getDisplayRows()[0])),this.table.element.focus()},scrollPageDown:function(t){var e=this.table.rowManager,i=e.scrollTop+e.height,n=e.element.scrollHeight;t.preventDefault(),e.displayRowsCount&&(i<=n?e.element.scrollTop=i:e.scrollToRow(e.getDisplayRows()[e.displayRowsCount-1])),this.table.element.focus()},scrollToStart:function(t){var e=this.table.rowManager;t.preventDefault(),e.displayRowsCount&&e.scrollToRow(e.getDisplayRows()[0]),this.table.element.focus()},scrollToEnd:function(t){var e=this.table.rowManager;t.preventDefault(),e.displayRowsCount&&e.scrollToRow(e.getDisplayRows()[e.displayRowsCount-1]),this.table.element.focus()},navPrev:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().prev())},navNext:function(t){var e,i=!1,n=this.table.options.tabEndNewRow;this.table.modExists("edit")&&(i=this.table.modules.edit.currentCell)&&(t.preventDefault(),e=i.nav(),e.next()||n&&(i.getElement().firstChild.blur(),n=!0===n?this.table.addRow({}):"function"==typeof n?this.table.addRow(n(i.row.getComponent())):this.table.addRow(Object.assign({},n)),n.then(function(){setTimeout(function(){e.next()})})))},navLeft:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().left())},navRight:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().right())},navUp:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().up())},navDown:function(t){var e=!1;this.table.modExists("edit")&&(e=this.table.modules.edit.currentCell)&&(t.preventDefault(),e.nav().down())},undo:function(t){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(t.preventDefault(),this.table.modules.history.undo()))},redo:function(t){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(t.preventDefault(),this.table.modules.history.redo()))},copyToClipboard:function(t){this.table.modules.edit.currentCell||this.table.modExists("clipboard",!0)&&this.table.modules.clipboard.copy(!1,!0)}},Tabulator.prototype.registerModule("keybindings",Keybindings);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Menu = function Menu(table) {
- this.table = table; //hold Tabulator object
- this.menuEl = false;
- this.blurEvent = this.hideMenu.bind(this);
- this.escEvent = this.escMenu.bind(this);
- this.nestedMenuBlock = false;
-};
-
-Menu.prototype.initializeColumnHeader = function (column) {
- var _this = this;
-
- var headerMenuEl;
-
- if (column.definition.headerContextMenu) {
- column.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof column.definition.headerContextMenu == "function" ? column.definition.headerContextMenu(column.getComponent()) : column.definition.headerContextMenu;
-
- e.preventDefault();
-
- _this.loadMenu(e, column, menu);
- });
- }
-
- if (column.definition.headerMenu) {
-
- headerMenuEl = document.createElement("span");
- headerMenuEl.classList.add("tabulator-header-menu-button");
- headerMenuEl.innerHTML = "⋮";
-
- headerMenuEl.addEventListener("click", function (e) {
- var menu = typeof column.definition.headerMenu == "function" ? column.definition.headerMenu(column.getComponent()) : column.definition.headerMenu;
- e.stopPropagation();
- e.preventDefault();
-
- _this.loadMenu(e, column, menu);
- });
-
- column.titleElement.insertBefore(headerMenuEl, column.titleElement.firstChild);
- }
-};
-
-Menu.prototype.initializeCell = function (cell) {
- var _this2 = this;
-
- cell.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof cell.column.definition.contextMenu == "function" ? cell.column.definition.contextMenu(cell.getComponent()) : cell.column.definition.contextMenu;
-
- e.stopImmediatePropagation();
-
- _this2.loadMenu(e, cell, menu);
- });
-};
-
-Menu.prototype.initializeRow = function (row) {
- var _this3 = this;
-
- row.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof _this3.table.options.rowContextMenu == "function" ? _this3.table.options.rowContextMenu(row.getComponent()) : _this3.table.options.rowContextMenu;
-
- _this3.loadMenu(e, row, menu);
- });
-};
-
-Menu.prototype.initializeGroup = function (group) {
- var _this4 = this;
-
- group.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof _this4.table.options.groupContextMenu == "function" ? _this4.table.options.groupContextMenu(group.getComponent()) : _this4.table.options.groupContextMenu;
-
- _this4.loadMenu(e, group, menu);
- });
-};
-
-Menu.prototype.loadMenu = function (e, component, menu) {
- var _this5 = this;
-
- var docHeight = Math.max(document.body.offsetHeight, window.innerHeight);
-
- e.preventDefault();
-
- //abort if no menu set
- if (!menu || !menu.length) {
- return;
- }
-
- if (this.nestedMenuBlock) {
- //abort if child menu already open
- if (this.isOpen()) {
- return;
- }
- } else {
- this.nestedMenuBlock = setTimeout(function () {
- _this5.nestedMenuBlock = false;
- }, 100);
- }
-
- this.hideMenu();
-
- this.menuEl = document.createElement("div");
- this.menuEl.classList.add("tabulator-menu");
-
- menu.forEach(function (item) {
- var itemEl = document.createElement("div");
- var label = item.label;
- var disabled = item.disabled;
-
- if (item.separator) {
- itemEl.classList.add("tabulator-menu-separator");
- } else {
- itemEl.classList.add("tabulator-menu-item");
-
- if (typeof label == "function") {
- label = label(component.getComponent());
- }
-
- if (label instanceof Node) {
- itemEl.appendChild(label);
- } else {
- itemEl.innerHTML = label;
- }
-
- if (typeof disabled == "function") {
- disabled = disabled(component.getComponent());
- }
-
- if (disabled) {
- itemEl.classList.add("tabulator-menu-item-disabled");
- itemEl.addEventListener("click", function (e) {
- e.stopPropagation();
- });
- } else {
- itemEl.addEventListener("click", function (e) {
- _this5.hideMenu();
- item.action(e, component.getComponent());
- });
- }
- }
-
- _this5.menuEl.appendChild(itemEl);
- });
-
- this.menuEl.style.top = e.pageY + "px";
- this.menuEl.style.left = e.pageX + "px";
-
- document.body.addEventListener("click", this.blurEvent);
- this.table.rowManager.element.addEventListener("scroll", this.blurEvent);
-
- setTimeout(function () {
- document.body.addEventListener("contextmenu", _this5.blurEvent);
- }, 100);
-
- document.body.addEventListener("keydown", this.escEvent);
-
- document.body.appendChild(this.menuEl);
-
- //move menu to start on right edge if it is too close to the edge of the screen
- if (e.pageX + this.menuEl.offsetWidth >= document.body.offsetWidth) {
- this.menuEl.style.left = "";
- this.menuEl.style.right = document.body.offsetWidth - e.pageX + "px";
- }
-
- //move menu to start on bottom edge if it is too close to the edge of the screen
- if (e.pageY + this.menuEl.offsetHeight >= docHeight) {
- this.menuEl.style.top = "";
- this.menuEl.style.bottom = docHeight - e.pageY + "px";
- }
-};
-
-Menu.prototype.isOpen = function () {
- return !!this.menuEl.parentNode;
-};
-
-Menu.prototype.escMenu = function (e) {
- if (e.keyCode == 27) {
- this.hideMenu();
- }
-};
-
-Menu.prototype.hideMenu = function () {
- if (this.menuEl.parentNode) {
- this.menuEl.parentNode.removeChild(this.menuEl);
- }
-
- if (this.escEvent) {
- document.body.removeEventListener("keydown", this.escEvent);
- }
-
- if (this.blurEvent) {
- document.body.removeEventListener("click", this.blurEvent);
- document.body.removeEventListener("contextmenu", this.blurEvent);
- this.table.rowManager.element.removeEventListener("scroll", this.blurEvent);
- }
-};
-
-//default accessors
-Menu.prototype.menus = {};
-
-Tabulator.prototype.registerModule("menu", Menu);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var Menu=function(e){this.table=e,this.menuEl=!1,this.blurEvent=this.hideMenu.bind(this),this.escEvent=this.escMenu.bind(this),this.nestedMenuBlock=!1};Menu.prototype.initializeColumnHeader=function(e){var t,n=this;e.definition.headerContextMenu&&e.getElement().addEventListener("contextmenu",function(t){var o="function"==typeof e.definition.headerContextMenu?e.definition.headerContextMenu(e.getComponent()):e.definition.headerContextMenu;t.preventDefault(),n.loadMenu(t,e,o)}),e.definition.headerMenu&&(t=document.createElement("span"),t.classList.add("tabulator-header-menu-button"),t.innerHTML="⋮",t.addEventListener("click",function(t){var o="function"==typeof e.definition.headerMenu?e.definition.headerMenu(e.getComponent()):e.definition.headerMenu;t.stopPropagation(),t.preventDefault(),n.loadMenu(t,e,o)}),e.titleElement.insertBefore(t,e.titleElement.firstChild))},Menu.prototype.initializeCell=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(n){var o="function"==typeof e.column.definition.contextMenu?e.column.definition.contextMenu(e.getComponent()):e.column.definition.contextMenu;n.stopImmediatePropagation(),t.loadMenu(n,e,o)})},Menu.prototype.initializeRow=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(n){var o="function"==typeof t.table.options.rowContextMenu?t.table.options.rowContextMenu(e.getComponent()):t.table.options.rowContextMenu;t.loadMenu(n,e,o)})},Menu.prototype.initializeGroup=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(n){var o="function"==typeof t.table.options.groupContextMenu?t.table.options.groupContextMenu(e.getComponent()):t.table.options.groupContextMenu;t.loadMenu(n,e,o)})},Menu.prototype.loadMenu=function(e,t,n){var o=this,i=Math.max(document.body.offsetHeight,window.innerHeight);if(e.preventDefault(),n&&n.length){if(this.nestedMenuBlock){if(this.isOpen())return}else this.nestedMenuBlock=setTimeout(function(){o.nestedMenuBlock=!1},100);this.hideMenu(),this.menuEl=document.createElement("div"),this.menuEl.classList.add("tabulator-menu"),n.forEach(function(e){var n=document.createElement("div"),i=e.label,u=e.disabled;e.separator?n.classList.add("tabulator-menu-separator"):(n.classList.add("tabulator-menu-item"),"function"==typeof i&&(i=i(t.getComponent())),i instanceof Node?n.appendChild(i):n.innerHTML=i,"function"==typeof u&&(u=u(t.getComponent())),u?(n.classList.add("tabulator-menu-item-disabled"),n.addEventListener("click",function(e){e.stopPropagation()})):n.addEventListener("click",function(n){o.hideMenu(),e.action(n,t.getComponent())})),o.menuEl.appendChild(n)}),this.menuEl.style.top=e.pageY+"px",this.menuEl.style.left=e.pageX+"px",document.body.addEventListener("click",this.blurEvent),this.table.rowManager.element.addEventListener("scroll",this.blurEvent),setTimeout(function(){document.body.addEventListener("contextmenu",o.blurEvent)},100),document.body.addEventListener("keydown",this.escEvent),document.body.appendChild(this.menuEl),e.pageX+this.menuEl.offsetWidth>=document.body.offsetWidth&&(this.menuEl.style.left="",this.menuEl.style.right=document.body.offsetWidth-e.pageX+"px"),e.pageY+this.menuEl.offsetHeight>=i&&(this.menuEl.style.top="",this.menuEl.style.bottom=i-e.pageY+"px")}},Menu.prototype.isOpen=function(){return!!this.menuEl.parentNode},Menu.prototype.escMenu=function(e){27==e.keyCode&&this.hideMenu()},Menu.prototype.hideMenu=function(){this.menuEl.parentNode&&this.menuEl.parentNode.removeChild(this.menuEl),this.escEvent&&document.body.removeEventListener("keydown",this.escEvent),this.blurEvent&&(document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent))},Menu.prototype.menus={},Tabulator.prototype.registerModule("menu",Menu);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var MoveColumns = function MoveColumns(table) {
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating column header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 250; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving column
- this.toCol = false; //destination column
- this.toColAfter = false; //position of moving column relative to the desitnation column
- this.startX = 0; //starting position within header element
- this.autoScrollMargin = 40; //auto scroll on edge when within margin
- this.autoScrollStep = 5; //auto scroll distance in pixels
- this.autoScrollTimeout = false; //auto scroll timeout
- this.touchMove = false;
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
-};
-
-MoveColumns.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
- el.classList.add("tabulator-col-placeholder");
-
- return el;
-};
-
-MoveColumns.prototype.initializeColumn = function (column) {
- var self = this,
- config = {},
- colEl;
-
- if (!column.modules.frozen) {
-
- colEl = column.getElement();
-
- config.mousemove = function (e) {
- if (column.parent === self.moving.parent) {
- if ((self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(colEl).left + self.table.columnManager.element.scrollLeft > column.getWidth() / 2) {
- if (self.toCol !== column || !self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl.nextSibling);
- self.moveColumn(column, true);
- }
- } else {
- if (self.toCol !== column || self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl);
- self.moveColumn(column, false);
- }
- }
- }
- }.bind(self);
-
- colEl.addEventListener("mousedown", function (e) {
- self.touchMove = false;
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, column);
- }, self.checkPeriod);
- }
- });
-
- colEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- self.bindTouchEvents(column);
- }
-
- column.modules.moveColumn = config;
-};
-
-MoveColumns.prototype.bindTouchEvents = function (column) {
- var self = this,
- colEl = column.getElement(),
- startXMove = false,
- //shifting center position of the cell
- dir = false,
- currentCol,
- nextCol,
- prevCol,
- nextColWidth,
- prevColWidth,
- nextColWidthLast,
- prevColWidthLast;
-
- colEl.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentCol = column;
- nextCol = column.nextColumn();
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = column.prevColumn();
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- nextColWidthLast = 0;
- prevColWidthLast = 0;
- startXMove = false;
-
- self.startMove(e, column);
- }, self.checkPeriod);
- }, { passive: true });
-
- colEl.addEventListener("touchmove", function (e) {
- var halfCol, diff, moveToCol;
-
- if (self.moving) {
- self.moveHover(e);
-
- if (!startXMove) {
- startXMove = e.touches[0].pageX;
- }
-
- diff = e.touches[0].pageX - startXMove;
-
- if (diff > 0) {
- if (nextCol && diff - nextColWidthLast > nextColWidth) {
- moveToCol = nextCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement().nextSibling);
- self.moveColumn(moveToCol, true);
- }
- }
- } else {
- if (prevCol && -diff - prevColWidthLast > prevColWidth) {
- moveToCol = prevCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement());
- self.moveColumn(moveToCol, false);
- }
- }
- }
-
- if (moveToCol) {
- currentCol = moveToCol;
- nextCol = moveToCol.nextColumn();
- nextColWidthLast = nextColWidth;
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = moveToCol.prevColumn();
- prevColWidthLast = prevColWidth;
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- }
- }
- }, { passive: true });
-
- colEl.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- }
- });
-};
-
-MoveColumns.prototype.startMove = function (e, column) {
- var element = column.getElement();
-
- this.moving = column;
- this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(element).left;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = column.getWidth() + "px";
- this.placeholderElement.style.height = column.getHeight() + "px";
-
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- this.table.columnManager.getElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.bottom = "0";
-
- if (!this.touchMove) {
- this._bindMouseMove();
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
- }
-
- this.moveHover(e);
-};
-
-MoveColumns.prototype._bindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().addEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
-};
-
-MoveColumns.prototype._unbindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().removeEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
-};
-
-MoveColumns.prototype.moveColumn = function (column, after) {
- var movingCells = this.moving.getCells();
-
- this.toCol = column;
- this.toColAfter = after;
-
- if (after) {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling);
- });
- } else {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl);
- });
- }
-};
-
-MoveColumns.prototype.endMove = function (e) {
- if (e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toCol) {
- this.table.columnManager.moveColumnActual(this.moving, this.toCol, this.toColAfter);
- }
-
- this.moving = false;
- this.toCol = false;
- this.toColAfter = false;
-
- if (!this.touchMove) {
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
- }
- }
-};
-
-MoveColumns.prototype.moveHover = function (e) {
- var self = this,
- columnHolder = self.table.columnManager.getElement(),
- scrollLeft = columnHolder.scrollLeft,
- xPos = (self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(columnHolder).left + scrollLeft,
- scrollPos;
-
- self.hoverElement.style.left = xPos - self.startX + "px";
-
- if (xPos - scrollLeft < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.max(0, scrollLeft - 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
-
- if (scrollLeft + columnHolder.clientWidth - xPos < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.min(columnHolder.clientWidth, scrollLeft + 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
-};
-
-Tabulator.prototype.registerModule("moveColumn", MoveColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var MoveColumns=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this)};MoveColumns.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.classList.add("tabulator-col-placeholder"),e},MoveColumns.prototype.initializeColumn=function(e){var t,o=this,n={};e.modules.frozen||(t=e.getElement(),n.mousemove=function(n){e.parent===o.moving.parent&&((o.touchMove?n.touches[0].pageX:n.pageX)-Tabulator.prototype.helpers.elOffset(t).left+o.table.columnManager.element.scrollLeft>e.getWidth()/2?o.toCol===e&&o.toColAfter||(t.parentNode.insertBefore(o.placeholderElement,t.nextSibling),o.moveColumn(e,!0)):(o.toCol!==e||o.toColAfter)&&(t.parentNode.insertBefore(o.placeholderElement,t),o.moveColumn(e,!1)))}.bind(o),t.addEventListener("mousedown",function(t){o.touchMove=!1,1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),o.bindTouchEvents(e)),e.modules.moveColumn=n},MoveColumns.prototype.bindTouchEvents=function(e){var t,o,n,l,i,s,m,r=this,u=e.getElement(),h=!1;u.addEventListener("touchstart",function(u){r.checkTimeout=setTimeout(function(){r.touchMove=!0,t=e,o=e.nextColumn(),l=o?o.getWidth()/2:0,n=e.prevColumn(),i=n?n.getWidth()/2:0,s=0,m=0,h=!1,r.startMove(u,e)},r.checkPeriod)},{passive:!0}),u.addEventListener("touchmove",function(u){var a,c;r.moving&&(r.moveHover(u),h||(h=u.touches[0].pageX),a=u.touches[0].pageX-h,a>0?o&&a-s>l&&(c=o)!==e&&(h=u.touches[0].pageX,c.getElement().parentNode.insertBefore(r.placeholderElement,c.getElement().nextSibling),r.moveColumn(c,!0)):n&&-a-m>i&&(c=n)!==e&&(h=u.touches[0].pageX,c.getElement().parentNode.insertBefore(r.placeholderElement,c.getElement()),r.moveColumn(c,!1)),c&&(t=c,o=c.nextColumn(),s=l,l=o?o.getWidth()/2:0,n=c.prevColumn(),m=i,i=n?n.getWidth()/2:0))},{passive:!0}),u.addEventListener("touchend",function(e){r.checkTimeout&&clearTimeout(r.checkTimeout),r.moving&&r.endMove(e)})},MoveColumns.prototype.startMove=function(e,t){var o=t.getElement();this.moving=t,this.startX=(this.touchMove?e.touches[0].pageX:e.pageX)-Tabulator.prototype.helpers.elOffset(o).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.table.columnManager.getElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom="0",this.touchMove||(this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove)),this.moveHover(e)},MoveColumns.prototype._bindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().addEventListener("mousemove",e.modules.moveColumn.mousemove)})},MoveColumns.prototype._unbindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().removeEventListener("mousemove",e.modules.moveColumn.mousemove)})},MoveColumns.prototype.moveColumn=function(e,t){var o=this.moving.getCells();this.toCol=e,this.toColAfter=t,t?e.getCells().forEach(function(e,t){var n=e.getElement();n.parentNode.insertBefore(o[t].getElement(),n.nextSibling)}):e.getCells().forEach(function(e,t){var n=e.getElement();n.parentNode.insertBefore(o[t].getElement(),n)})},MoveColumns.prototype.endMove=function(e){(1===e.which||this.touchMove)&&(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol&&this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter),this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.touchMove||(document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)))},MoveColumns.prototype.moveHover=function(e){var t,o=this,n=o.table.columnManager.getElement(),l=n.scrollLeft,i=(o.touchMove?e.touches[0].pageX:e.pageX)-Tabulator.prototype.helpers.elOffset(n).left+l;o.hoverElement.style.left=i-o.startX+"px",i-l<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.max(0,l-5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1))),l+n.clientWidth-i<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.min(n.clientWidth,l+5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1)))},Tabulator.prototype.registerModule("moveColumn",MoveColumns);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var MoveRows = function MoveRows(table) {
-
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating row header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 150; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving row
- this.toRow = false; //destination row
- this.toRowAfter = false; //position of moving row relative to the desitnation row
- this.hasHandle = false; //row has handle instead of fully movable row
- this.startY = 0; //starting Y position within header element
- this.startX = 0; //starting X position within header element
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
- this.tableRowDropEvent = false;
-
- this.touchMove = false;
-
- this.connection = false;
- this.connectionSelectorsTables = false;
- this.connectionSelectorsElements = false;
- this.connectionElements = [];
- this.connections = [];
-
- this.connectedTable = false;
- this.connectedRow = false;
-};
-
-MoveRows.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
- el.classList.add("tabulator-row-placeholder");
-
- return el;
-};
-
-MoveRows.prototype.initialize = function (handle) {
- this.connectionSelectorsTables = this.table.options.movableRowsConnectedTables;
- this.connectionSelectorsElements = this.table.options.movableRowsConnectedElements;
-
- this.connection = this.connectionSelectorsTables || this.connectionSelectorsElements;
-};
-
-MoveRows.prototype.setHandle = function (handle) {
- this.hasHandle = handle;
-};
-
-MoveRows.prototype.initializeGroupHeader = function (group) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(group.element).top + self.table.rowManager.element.scrollTop > group.getHeight() / 2) {
- if (self.toRow !== group || !self.toRowAfter) {
- var rowEl = group.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(group, true);
- }
- } else {
- if (self.toRow !== group || self.toRowAfter) {
- var rowEl = group.getElement();
- if (rowEl.previousSibling) {
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(group, false);
- }
- }
- }
- }.bind(self);
-
- group.modules.moveRow = config;
-};
-
-MoveRows.prototype.initializeRow = function (row) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(row.element).top + self.table.rowManager.element.scrollTop > row.getHeight() / 2) {
- if (self.toRow !== row || !self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(row, true);
- }
- } else {
- if (self.toRow !== row || self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(row, false);
- }
- }
- }.bind(self);
-
- if (!this.hasHandle) {
-
- rowEl = row.getElement();
-
- rowEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, row);
- }, self.checkPeriod);
- }
- });
-
- rowEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(row, row.getElement());
- }
-
- row.modules.moveRow = config;
-};
-
-MoveRows.prototype.initializeCell = function (cell) {
- var self = this,
- cellEl = cell.getElement();
-
- cellEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, cell.row);
- }, self.checkPeriod);
- }
- });
-
- cellEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(cell.row, cell.getElement());
-};
-
-MoveRows.prototype.bindTouchEvents = function (row, element) {
- var self = this,
- startYMove = false,
- //shifting center position of the cell
- dir = false,
- currentRow,
- nextRow,
- prevRow,
- nextRowHeight,
- prevRowHeight,
- nextRowHeightLast,
- prevRowHeightLast;
-
- element.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentRow = row;
- nextRow = row.nextRow();
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = row.prevRow();
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- nextRowHeightLast = 0;
- prevRowHeightLast = 0;
- startYMove = false;
-
- self.startMove(e, row);
- }, self.checkPeriod);
- }, { passive: true });
- this.moving, this.toRow, this.toRowAfter;
- element.addEventListener("touchmove", function (e) {
-
- var halfCol, diff, moveToRow;
-
- if (self.moving) {
- e.preventDefault();
-
- self.moveHover(e);
-
- if (!startYMove) {
- startYMove = e.touches[0].pageY;
- }
-
- diff = e.touches[0].pageY - startYMove;
-
- if (diff > 0) {
- if (nextRow && diff - nextRowHeightLast > nextRowHeight) {
- moveToRow = nextRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement().nextSibling);
- self.moveRow(moveToRow, true);
- }
- }
- } else {
- if (prevRow && -diff - prevRowHeightLast > prevRowHeight) {
- moveToRow = prevRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement());
- self.moveRow(moveToRow, false);
- }
- }
- }
-
- if (moveToRow) {
- currentRow = moveToRow;
- nextRow = moveToRow.nextRow();
- nextRowHeightLast = nextRowHeight;
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = moveToRow.prevRow();
- prevRowHeightLast = prevRowHeight;
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- }
- }
- });
-
- element.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- self.touchMove = false;
- }
- });
-};
-
-MoveRows.prototype._bindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().addEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
-};
-
-MoveRows.prototype._unbindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().removeEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
-};
-
-MoveRows.prototype.startMove = function (e, row) {
- var element = row.getElement();
-
- this.setStartPosition(e, row);
-
- this.moving = row;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = row.getWidth() + "px";
- this.placeholderElement.style.height = row.getHeight() + "px";
-
- if (!this.connection) {
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
- } else {
- this.table.element.classList.add("tabulator-movingrow-sending");
- this.connectToTables(row);
- }
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- if (this.connection) {
- document.body.appendChild(this.hoverElement);
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
- this.hoverElement.style.width = this.table.element.clientWidth + "px";
- this.hoverElement.style.whiteSpace = "nowrap";
- this.hoverElement.style.overflow = "hidden";
- this.hoverElement.style.pointerEvents = "none";
- } else {
- this.table.rowManager.getTableElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
-
- this._bindMouseMove();
- }
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
-
- this.moveHover(e);
-};
-
-MoveRows.prototype.setStartPosition = function (e, row) {
- var pageX = this.touchMove ? e.touches[0].pageX : e.pageX,
- pageY = this.touchMove ? e.touches[0].pageY : e.pageY,
- element,
- position;
-
- element = row.getElement();
- if (this.connection) {
- position = element.getBoundingClientRect();
-
- this.startX = position.left - pageX + window.pageXOffset;
- this.startY = position.top - pageY + window.pageYOffset;
- } else {
- this.startY = pageY - element.getBoundingClientRect().top;
- }
-};
-
-MoveRows.prototype.endMove = function (e) {
- if (!e || e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- if (!this.connection) {
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- }
-
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toRow) {
- this.table.rowManager.moveRow(this.moving, this.toRow, this.toRowAfter);
- }
-
- this.moving = false;
- this.toRow = false;
- this.toRowAfter = false;
-
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
-
- if (this.connection) {
- this.table.element.classList.remove("tabulator-movingrow-sending");
- this.disconnectFromTables();
- }
- }
-};
-
-MoveRows.prototype.moveRow = function (row, after) {
- this.toRow = row;
- this.toRowAfter = after;
-};
-
-MoveRows.prototype.moveHover = function (e) {
- if (this.connection) {
- this.moveHoverConnections.call(this, e);
- } else {
- this.moveHoverTable.call(this, e);
- }
-};
-
-MoveRows.prototype.moveHoverTable = function (e) {
- var rowHolder = this.table.rowManager.getElement(),
- scrollTop = rowHolder.scrollTop,
- yPos = (this.touchMove ? e.touches[0].pageY : e.pageY) - rowHolder.getBoundingClientRect().top + scrollTop,
- scrollPos;
-
- this.hoverElement.style.top = yPos - this.startY + "px";
-};
-
-MoveRows.prototype.moveHoverConnections = function (e) {
- this.hoverElement.style.left = this.startX + (this.touchMove ? e.touches[0].pageX : e.pageX) + "px";
- this.hoverElement.style.top = this.startY + (this.touchMove ? e.touches[0].pageY : e.pageY) + "px";
-};
-
-MoveRows.prototype.elementRowDrop = function (e, element, row) {
- if (this.table.options.movableRowsElementDrop) {
- this.table.options.movableRowsElementDrop(e, element, row ? row.getComponent() : false);
- }
-};
-
-//establish connection with other tables
-MoveRows.prototype.connectToTables = function (row) {
- var _this = this;
-
- var connectionTables;
-
- if (this.connectionSelectorsTables) {
- connectionTables = this.table.modules.comms.getConnections(this.connectionSelectorsTables);
-
- this.table.options.movableRowsSendingStart.call(this.table, connectionTables);
-
- this.table.modules.comms.send(this.connectionSelectorsTables, "moveRow", "connect", {
- row: row
- });
- }
-
- if (this.connectionSelectorsElements) {
-
- this.connectionElements = [];
-
- if (!Array.isArray(this.connectionSelectorsElements)) {
- this.connectionSelectorsElements = [this.connectionSelectorsElements];
- }
-
- this.connectionSelectorsElements.forEach(function (query) {
- if (typeof query === "string") {
- _this.connectionElements = _this.connectionElements.concat(Array.prototype.slice.call(document.querySelectorAll(query)));
- } else {
- _this.connectionElements.push(query);
- }
- });
-
- this.connectionElements.forEach(function (element) {
- var dropEvent = function dropEvent(e) {
- _this.elementRowDrop(e, element, _this.moving);
- };
-
- element.addEventListener("mouseup", dropEvent);
- element.tabulatorElementDropEvent = dropEvent;
-
- element.classList.add("tabulator-movingrow-receiving");
- });
- }
-};
-
-//disconnect from other tables
-MoveRows.prototype.disconnectFromTables = function () {
- var connectionTables;
-
- if (this.connectionSelectorsTables) {
- connectionTables = this.table.modules.comms.getConnections(this.connectionSelectorsTables);
-
- this.table.options.movableRowsSendingStop.call(this.table, connectionTables);
-
- this.table.modules.comms.send(this.connectionSelectorsTables, "moveRow", "disconnect");
- }
-
- this.connectionElements.forEach(function (element) {
- element.classList.remove("tabulator-movingrow-receiving");
- element.removeEventListener("mouseup", element.tabulatorElementDropEvent);
- delete element.tabulatorElementDropEvent;
- });
-};
-
-//accept incomming connection
-MoveRows.prototype.connect = function (table, row) {
- var self = this;
- if (!this.connectedTable) {
- this.connectedTable = table;
- this.connectedRow = row;
-
- this.table.element.classList.add("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().addEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.tableRowDropEvent = self.tableRowDrop.bind(self);
-
- self.table.element.addEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStart.call(this.table, row, table);
-
- return true;
- } else {
- console.warn("Move Row Error - Table cannot accept connection, already connected to table:", this.connectedTable);
- return false;
- }
-};
-
-//close incomming connection
-MoveRows.prototype.disconnect = function (table) {
- var self = this;
- if (table === this.connectedTable) {
- this.connectedTable = false;
- this.connectedRow = false;
-
- this.table.element.classList.remove("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().removeEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.table.element.removeEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStop.call(this.table, table);
- } else {
- console.warn("Move Row Error - trying to disconnect from non connected table");
- }
-};
-
-MoveRows.prototype.dropComplete = function (table, row, success) {
- var sender = false;
-
- if (success) {
-
- switch (_typeof(this.table.options.movableRowsSender)) {
- case "string":
- sender = this.senders[this.table.options.movableRowsSender];
- break;
-
- case "function":
- sender = this.table.options.movableRowsSender;
- break;
- }
-
- if (sender) {
- sender.call(this, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- if (this.table.options.movableRowsSender) {
- console.warn("Mover Row Error - no matching sender found:", this.table.options.movableRowsSender);
- }
- }
-
- this.table.options.movableRowsSent.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- this.table.options.movableRowsSentFailed.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- }
-
- this.endMove();
-};
-
-MoveRows.prototype.tableRowDrop = function (e, row) {
- var receiver = false,
- success = false;
-
- console.trace("drop");
-
- e.stopImmediatePropagation();
-
- switch (_typeof(this.table.options.movableRowsReceiver)) {
- case "string":
- receiver = this.receivers[this.table.options.movableRowsReceiver];
- break;
-
- case "function":
- receiver = this.table.options.movableRowsReceiver;
- break;
- }
-
- if (receiver) {
- success = receiver.call(this, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- console.warn("Mover Row Error - no matching receiver found:", this.table.options.movableRowsReceiver);
- }
-
- if (success) {
- this.table.options.movableRowsReceived.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- this.table.options.movableRowsReceivedFailed.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- }
-
- this.table.modules.comms.send(this.connectedTable, "moveRow", "dropcomplete", {
- row: row,
- success: success
- });
-};
-
-MoveRows.prototype.receivers = {
- insert: function insert(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- return true;
- },
-
- add: function add(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData());
- return true;
- },
-
- update: function update(fromRow, toRow, fromTable) {
- if (toRow) {
- toRow.update(fromRow.getData());
- return true;
- }
-
- return false;
- },
-
- replace: function replace(fromRow, toRow, fromTable) {
- if (toRow) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- toRow.delete();
- return true;
- }
-
- return false;
- }
-};
-
-MoveRows.prototype.senders = {
- delete: function _delete(fromRow, toRow, toTable) {
- fromRow.delete();
- }
-};
-
-MoveRows.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "connect":
- return this.connect(table, data.row);
- break;
-
- case "disconnect":
- return this.disconnect(table);
- break;
-
- case "dropcomplete":
- return this.dropComplete(table, data.row, data.success);
- break;
- }
-};
-
-Tabulator.prototype.registerModule("moveRow", MoveRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},MoveRows=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=150,this.moving=!1,this.toRow=!1,this.toRowAfter=!1,this.hasHandle=!1,this.startY=0,this.startX=0,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.tableRowDropEvent=!1,this.touchMove=!1,this.connection=!1,this.connectionSelectorsTables=!1,this.connectionSelectorsElements=!1,this.connectionElements=[],this.connections=[],this.connectedTable=!1,this.connectedRow=!1};MoveRows.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-row"),e.classList.add("tabulator-row-placeholder"),e},MoveRows.prototype.initialize=function(e){this.connectionSelectorsTables=this.table.options.movableRowsConnectedTables,this.connectionSelectorsElements=this.table.options.movableRowsConnectedElements,this.connection=this.connectionSelectorsTables||this.connectionSelectorsElements},MoveRows.prototype.setHandle=function(e){this.hasHandle=e},MoveRows.prototype.initializeGroupHeader=function(e){var t=this,o={};o.mouseup=function(e){t.tableRowDrop(e,row)}.bind(t),o.mousemove=function(o){if(o.pageY-Tabulator.prototype.helpers.elOffset(e.element).top+t.table.rowManager.element.scrollTop>e.getHeight()/2){if(t.toRow!==e||!t.toRowAfter){var n=e.getElement();n.parentNode.insertBefore(t.placeholderElement,n.nextSibling),t.moveRow(e,!0)}}else if(t.toRow!==e||t.toRowAfter){var n=e.getElement();n.previousSibling&&(n.parentNode.insertBefore(t.placeholderElement,n),t.moveRow(e,!1))}}.bind(t),e.modules.moveRow=o},MoveRows.prototype.initializeRow=function(e){var t,o=this,n={};n.mouseup=function(t){o.tableRowDrop(t,e)}.bind(o),n.mousemove=function(t){if(t.pageY-Tabulator.prototype.helpers.elOffset(e.element).top+o.table.rowManager.element.scrollTop>e.getHeight()/2){if(o.toRow!==e||!o.toRowAfter){var n=e.getElement();n.parentNode.insertBefore(o.placeholderElement,n.nextSibling),o.moveRow(e,!0)}}else if(o.toRow!==e||o.toRowAfter){var n=e.getElement();n.parentNode.insertBefore(o.placeholderElement,n),o.moveRow(e,!1)}}.bind(o),this.hasHandle||(t=e.getElement(),t.addEventListener("mousedown",function(t){1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),this.bindTouchEvents(e,e.getElement())),e.modules.moveRow=n},MoveRows.prototype.initializeCell=function(e){var t=this,o=e.getElement();o.addEventListener("mousedown",function(o){1===o.which&&(t.checkTimeout=setTimeout(function(){t.startMove(o,e.row)},t.checkPeriod))}),o.addEventListener("mouseup",function(e){1===e.which&&t.checkTimeout&&clearTimeout(t.checkTimeout)}),this.bindTouchEvents(e.row,e.getElement())},MoveRows.prototype.bindTouchEvents=function(e,t){var o,n,s,i,l,c,r,a=this,h=!1;t.addEventListener("touchstart",function(t){a.checkTimeout=setTimeout(function(){a.touchMove=!0,o=e,n=e.nextRow(),i=n?n.getHeight()/2:0,s=e.prevRow(),l=s?s.getHeight()/2:0,c=0,r=0,h=!1,a.startMove(t,e)},a.checkPeriod)},{passive:!0}),this.moving,this.toRow,this.toRowAfter,t.addEventListener("touchmove",function(t){var m,v;a.moving&&(t.preventDefault(),a.moveHover(t),h||(h=t.touches[0].pageY),m=t.touches[0].pageY-h,m>0?n&&m-c>i&&(v=n)!==e&&(h=t.touches[0].pageY,v.getElement().parentNode.insertBefore(a.placeholderElement,v.getElement().nextSibling),a.moveRow(v,!0)):s&&-m-r>l&&(v=s)!==e&&(h=t.touches[0].pageY,v.getElement().parentNode.insertBefore(a.placeholderElement,v.getElement()),a.moveRow(v,!1)),v&&(o=v,n=v.nextRow(),c=i,i=n?n.getHeight()/2:0,s=v.prevRow(),r=l,l=s?s.getHeight()/2:0))}),t.addEventListener("touchend",function(e){a.checkTimeout&&clearTimeout(a.checkTimeout),a.moving&&(a.endMove(e),a.touchMove=!1)})},MoveRows.prototype._bindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().addEventListener("mousemove",e.modules.moveRow.mousemove)})},MoveRows.prototype._unbindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().removeEventListener("mousemove",e.modules.moveRow.mousemove)})},MoveRows.prototype.startMove=function(e,t){var o=t.getElement();this.setStartPosition(e,t),this.moving=t,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",this.connection?(this.table.element.classList.add("tabulator-movingrow-sending"),this.connectToTables(t)):(o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o)),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.connection?(document.body.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this.hoverElement.style.width=this.table.element.clientWidth+"px",this.hoverElement.style.whiteSpace="nowrap",this.hoverElement.style.overflow="hidden",this.hoverElement.style.pointerEvents="none"):(this.table.rowManager.getTableElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this._bindMouseMove()),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove),this.moveHover(e)},MoveRows.prototype.setStartPosition=function(e,t){var o,n,s=this.touchMove?e.touches[0].pageX:e.pageX,i=this.touchMove?e.touches[0].pageY:e.pageY;o=t.getElement(),this.connection?(n=o.getBoundingClientRect(),this.startX=n.left-s+window.pageXOffset,this.startY=n.top-i+window.pageYOffset):this.startY=i-o.getBoundingClientRect().top},MoveRows.prototype.endMove=function(e){e&&1!==e.which&&!this.touchMove||(this._unbindMouseMove(),this.connection||(this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement)),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toRow&&this.table.rowManager.moveRow(this.moving,this.toRow,this.toRowAfter),this.moving=!1,this.toRow=!1,this.toRowAfter=!1,document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove),this.connection&&(this.table.element.classList.remove("tabulator-movingrow-sending"),this.disconnectFromTables()))},MoveRows.prototype.moveRow=function(e,t){this.toRow=e,this.toRowAfter=t},MoveRows.prototype.moveHover=function(e){this.connection?this.moveHoverConnections.call(this,e):this.moveHoverTable.call(this,e)},MoveRows.prototype.moveHoverTable=function(e){var t=this.table.rowManager.getElement(),o=t.scrollTop,n=(this.touchMove?e.touches[0].pageY:e.pageY)-t.getBoundingClientRect().top+o;this.hoverElement.style.top=n-this.startY+"px"},MoveRows.prototype.moveHoverConnections=function(e){this.hoverElement.style.left=this.startX+(this.touchMove?e.touches[0].pageX:e.pageX)+"px",this.hoverElement.style.top=this.startY+(this.touchMove?e.touches[0].pageY:e.pageY)+"px"},MoveRows.prototype.elementRowDrop=function(e,t,o){this.table.options.movableRowsElementDrop&&this.table.options.movableRowsElementDrop(e,t,!!o&&o.getComponent())},MoveRows.prototype.connectToTables=function(e){var t,o=this;this.connectionSelectorsTables&&(t=this.table.modules.comms.getConnections(this.connectionSelectorsTables),this.table.options.movableRowsSendingStart.call(this.table,t),this.table.modules.comms.send(this.connectionSelectorsTables,"moveRow","connect",{row:e})),this.connectionSelectorsElements&&(this.connectionElements=[],Array.isArray(this.connectionSelectorsElements)||(this.connectionSelectorsElements=[this.connectionSelectorsElements]),this.connectionSelectorsElements.forEach(function(e){"string"==typeof e?o.connectionElements=o.connectionElements.concat(Array.prototype.slice.call(document.querySelectorAll(e))):o.connectionElements.push(e)}),this.connectionElements.forEach(function(e){var t=function(t){o.elementRowDrop(t,e,o.moving)};e.addEventListener("mouseup",t),e.tabulatorElementDropEvent=t,e.classList.add("tabulator-movingrow-receiving")}))},MoveRows.prototype.disconnectFromTables=function(){var e;this.connectionSelectorsTables&&(e=this.table.modules.comms.getConnections(this.connectionSelectorsTables),this.table.options.movableRowsSendingStop.call(this.table,e),this.table.modules.comms.send(this.connectionSelectorsTables,"moveRow","disconnect")),this.connectionElements.forEach(function(e){e.classList.remove("tabulator-movingrow-receiving"),e.removeEventListener("mouseup",e.tabulatorElementDropEvent),delete e.tabulatorElementDropEvent})},MoveRows.prototype.connect=function(e,t){var o=this;return this.connectedTable?(console.warn("Move Row Error - Table cannot accept connection, already connected to table:",this.connectedTable),!1):(this.connectedTable=e,this.connectedRow=t,this.table.element.classList.add("tabulator-movingrow-receiving"),o.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().addEventListener("mouseup",e.modules.moveRow.mouseup)}),o.tableRowDropEvent=o.tableRowDrop.bind(o),o.table.element.addEventListener("mouseup",o.tableRowDropEvent),this.table.options.movableRowsReceivingStart.call(this.table,t,e),!0)},MoveRows.prototype.disconnect=function(e){var t=this;e===this.connectedTable?(this.connectedTable=!1,this.connectedRow=!1,this.table.element.classList.remove("tabulator-movingrow-receiving"),t.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().removeEventListener("mouseup",e.modules.moveRow.mouseup)}),t.table.element.removeEventListener("mouseup",t.tableRowDropEvent),this.table.options.movableRowsReceivingStop.call(this.table,e)):console.warn("Move Row Error - trying to disconnect from non connected table")},MoveRows.prototype.dropComplete=function(e,t,o){var n=!1;if(o){switch(_typeof(this.table.options.movableRowsSender)){case"string":n=this.senders[this.table.options.movableRowsSender];break;case"function":n=this.table.options.movableRowsSender}n?n.call(this,this.moving.getComponent(),t?t.getComponent():void 0,e):this.table.options.movableRowsSender&&console.warn("Mover Row Error - no matching sender found:",this.table.options.movableRowsSender),this.table.options.movableRowsSent.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e)}else this.table.options.movableRowsSentFailed.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e);this.endMove()},MoveRows.prototype.tableRowDrop=function(e,t){var o=!1,n=!1;switch(console.trace("drop"),e.stopImmediatePropagation(),_typeof(this.table.options.movableRowsReceiver)){case"string":o=this.receivers[this.table.options.movableRowsReceiver];break;case"function":o=this.table.options.movableRowsReceiver}o?n=o.call(this,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):console.warn("Mover Row Error - no matching receiver found:",this.table.options.movableRowsReceiver),n?this.table.options.movableRowsReceived.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):this.table.options.movableRowsReceivedFailed.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable),this.table.modules.comms.send(this.connectedTable,"moveRow","dropcomplete",{row:t,success:n})},MoveRows.prototype.receivers={insert:function(e,t,o){return this.table.addRow(e.getData(),void 0,t),!0},add:function(e,t,o){return this.table.addRow(e.getData()),!0},update:function(e,t,o){return!!t&&(t.update(e.getData()),!0)},replace:function(e,t,o){return!!t&&(this.table.addRow(e.getData(),void 0,t),t.delete(),!0)}},MoveRows.prototype.senders={delete:function(e,t,o){e.delete()}},MoveRows.prototype.commsReceived=function(e,t,o){switch(t){case"connect":return this.connect(e,o.row);case"disconnect":return this.disconnect(e);case"dropcomplete":return this.dropComplete(e,o.row,o.success)}},Tabulator.prototype.registerModule("moveRow",MoveRows);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Mutator = function Mutator(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "edit", "clipboard"]; //list of muatation types
- this.enabled = true;
-};
-
-//initialize column mutator
-Mutator.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- mutator;
-
- if (column.definition[key]) {
- mutator = self.lookupMutator(column.definition[key]);
-
- if (mutator) {
- match = true;
-
- config[key] = {
- mutator: mutator,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.mutate = config;
- }
-};
-
-Mutator.prototype.lookupMutator = function (value) {
- var mutator = false;
-
- //set column mutator
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "string":
- if (this.mutators[value]) {
- mutator = this.mutators[value];
- } else {
- console.warn("Mutator Error - No such mutator found, ignoring: ", value);
- }
- break;
-
- case "function":
- mutator = value;
- break;
- }
-
- return mutator;
-};
-
-//apply mutator to row
-Mutator.prototype.transformRow = function (data, type, updatedData) {
- var self = this,
- key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- value;
-
- if (this.enabled) {
-
- self.table.columnManager.traverse(function (column) {
- var mutator, params, component;
-
- if (column.modules.mutate) {
- mutator = column.modules.mutate[key] || column.modules.mutate.mutator || false;
-
- if (mutator) {
- value = column.getFieldValue(typeof updatedData !== "undefined" ? updatedData : data);
-
- if (type == "data" || typeof value !== "undefined") {
- component = column.getComponent();
- params = typeof mutator.params === "function" ? mutator.params(value, data, type, component) : mutator.params;
- column.setFieldValue(data, mutator.mutator(value, data, type, params, component));
- }
- }
- }
- });
- }
-
- return data;
-};
-
-//apply mutator to new cell value
-Mutator.prototype.transformCell = function (cell, value) {
- var mutator = cell.column.modules.mutate.mutatorEdit || cell.column.modules.mutate.mutator || false,
- tempData = {};
-
- if (mutator) {
- tempData = Object.assign(tempData, cell.row.getData());
- cell.column.setFieldValue(tempData, value);
- return mutator.mutator(value, tempData, "edit", mutator.params, cell.getComponent());
- } else {
- return value;
- }
-};
-
-Mutator.prototype.enable = function () {
- this.enabled = true;
-};
-
-Mutator.prototype.disable = function () {
- this.enabled = false;
-};
-
-//default mutators
-Mutator.prototype.mutators = {};
-
-Tabulator.prototype.registerModule("mutator", Mutator);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mutator=function(t){this.table=t,this.allowedTypes=["","data","edit","clipboard"],this.enabled=!0};Mutator.prototype.initializeColumn=function(t){var o=this,e=!1,a={};this.allowedTypes.forEach(function(r){var u,n="mutator"+(r.charAt(0).toUpperCase()+r.slice(1));t.definition[n]&&(u=o.lookupMutator(t.definition[n]))&&(e=!0,a[n]={mutator:u,params:t.definition[n+"Params"]||{}})}),e&&(t.modules.mutate=a)},Mutator.prototype.lookupMutator=function(t){var o=!1;switch(void 0===t?"undefined":_typeof(t)){case"string":this.mutators[t]?o=this.mutators[t]:console.warn("Mutator Error - No such mutator found, ignoring: ",t);break;case"function":o=t}return o},Mutator.prototype.transformRow=function(t,o,e){var a,r=this,u="mutator"+(o.charAt(0).toUpperCase()+o.slice(1));return this.enabled&&r.table.columnManager.traverse(function(r){var n,i,s;r.modules.mutate&&(n=r.modules.mutate[u]||r.modules.mutate.mutator||!1)&&(a=r.getFieldValue(void 0!==e?e:t),"data"!=o&&void 0===a||(s=r.getComponent(),i="function"==typeof n.params?n.params(a,t,o,s):n.params,r.setFieldValue(t,n.mutator(a,t,o,i,s))))}),t},Mutator.prototype.transformCell=function(t,o){var e=t.column.modules.mutate.mutatorEdit||t.column.modules.mutate.mutator||!1,a={};return e?(a=Object.assign(a,t.row.getData()),t.column.setFieldValue(a,o),e.mutator(o,a,"edit",e.params,t.getComponent())):o},Mutator.prototype.enable=function(){this.enabled=!0},Mutator.prototype.disable=function(){this.enabled=!1},Mutator.prototype.mutators={},Tabulator.prototype.registerModule("mutator",Mutator);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Page = function Page(table) {
-
- this.table = table; //hold Tabulator object
-
- this.mode = "local";
- this.progressiveLoad = false;
-
- this.size = 0;
- this.page = 1;
- this.count = 5;
- this.max = 1;
-
- this.displayIndex = 0; //index in display pipeline
-
- this.initialLoad = true;
-
- this.pageSizes = [];
-
- this.dataReceivedNames = {};
- this.dataSentNames = {};
-
- this.createElements();
-};
-
-Page.prototype.createElements = function () {
-
- var button;
-
- this.element = document.createElement("span");
- this.element.classList.add("tabulator-paginator");
-
- this.pagesElement = document.createElement("span");
- this.pagesElement.classList.add("tabulator-pages");
-
- button = document.createElement("button");
- button.classList.add("tabulator-page");
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
- button.setAttribute("aria-label", "");
- button.setAttribute("title", "");
-
- this.firstBut = button.cloneNode(true);
- this.firstBut.setAttribute("data-page", "first");
-
- this.prevBut = button.cloneNode(true);
- this.prevBut.setAttribute("data-page", "prev");
-
- this.nextBut = button.cloneNode(true);
- this.nextBut.setAttribute("data-page", "next");
-
- this.lastBut = button.cloneNode(true);
- this.lastBut.setAttribute("data-page", "last");
-
- if (this.table.options.paginationSizeSelector) {
- this.pageSizeSelect = document.createElement("select");
- this.pageSizeSelect.classList.add("tabulator-page-size");
- }
-};
-
-Page.prototype.generatePageSizeSelectList = function () {
- var _this = this;
-
- var pageSizes = [];
-
- if (this.pageSizeSelect) {
-
- if (Array.isArray(this.table.options.paginationSizeSelector)) {
- pageSizes = this.table.options.paginationSizeSelector;
- this.pageSizes = pageSizes;
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes.unshift(this.size);
- }
- } else {
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes = [];
-
- for (var i = 1; i < 5; i++) {
- pageSizes.push(this.size * i);
- }
-
- this.pageSizes = pageSizes;
- } else {
- pageSizes = this.pageSizes;
- }
- }
-
- while (this.pageSizeSelect.firstChild) {
- this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);
- }pageSizes.forEach(function (item) {
- var itemEl = document.createElement("option");
- itemEl.value = item;
-
- if (item === true) {
- _this.table.modules.localize.bind("pagination|all", function (value) {
- itemEl.innerHTML = value;
- });
- } else {
- itemEl.innerHTML = item;
- }
-
- _this.pageSizeSelect.appendChild(itemEl);
- });
-
- this.pageSizeSelect.value = this.size;
- }
-};
-
-//setup pageination
-Page.prototype.initialize = function (hidden) {
- var self = this,
- pageSelectLabel,
- testElRow,
- testElCell;
-
- //update param names
- this.dataSentNames = Object.assign({}, this.paginationDataSentNames);
- this.dataSentNames = Object.assign(this.dataSentNames, this.table.options.paginationDataSent);
-
- this.dataReceivedNames = Object.assign({}, this.paginationDataReceivedNames);
- this.dataReceivedNames = Object.assign(this.dataReceivedNames, this.table.options.paginationDataReceived);
-
- //build pagination element
-
- //bind localizations
- self.table.modules.localize.bind("pagination|first", function (value) {
- self.firstBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|first_title", function (value) {
- self.firstBut.setAttribute("aria-label", value);
- self.firstBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|prev", function (value) {
- self.prevBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|prev_title", function (value) {
- self.prevBut.setAttribute("aria-label", value);
- self.prevBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|next", function (value) {
- self.nextBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|next_title", function (value) {
- self.nextBut.setAttribute("aria-label", value);
- self.nextBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|last", function (value) {
- self.lastBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|last_title", function (value) {
- self.lastBut.setAttribute("aria-label", value);
- self.lastBut.setAttribute("title", value);
- });
-
- //click bindings
- self.firstBut.addEventListener("click", function () {
- self.setPage(1);
- });
-
- self.prevBut.addEventListener("click", function () {
- self.previousPage();
- });
-
- self.nextBut.addEventListener("click", function () {
- self.nextPage().then(function () {}).catch(function () {});
- });
-
- self.lastBut.addEventListener("click", function () {
- self.setPage(self.max);
- });
-
- if (self.table.options.paginationElement) {
- self.element = self.table.options.paginationElement;
- }
-
- if (this.pageSizeSelect) {
- pageSelectLabel = document.createElement("label");
-
- self.table.modules.localize.bind("pagination|page_size", function (value) {
- self.pageSizeSelect.setAttribute("aria-label", value);
- self.pageSizeSelect.setAttribute("title", value);
- pageSelectLabel.innerHTML = value;
- });
-
- self.element.appendChild(pageSelectLabel);
- self.element.appendChild(self.pageSizeSelect);
-
- self.pageSizeSelect.addEventListener("change", function (e) {
- self.setPageSize(self.pageSizeSelect.value == "true" ? true : self.pageSizeSelect.value);
- self.setPage(1).then(function () {}).catch(function () {});
- });
- }
-
- //append to DOM
- self.element.appendChild(self.firstBut);
- self.element.appendChild(self.prevBut);
- self.element.appendChild(self.pagesElement);
- self.element.appendChild(self.nextBut);
- self.element.appendChild(self.lastBut);
-
- if (!self.table.options.paginationElement && !hidden) {
- self.table.footerManager.append(self.element, self);
- }
-
- //set default values
- self.mode = self.table.options.pagination;
-
- if (self.table.options.paginationSize) {
- self.size = self.table.options.paginationSize;
- } else {
- testElRow = document.createElement("div");
- testElRow.classList.add("tabulator-row");
- testElRow.style.visibility = hidden;
-
- testElCell = document.createElement("div");
- testElCell.classList.add("tabulator-cell");
- testElCell.innerHTML = "Page Row Test";
-
- testElRow.appendChild(testElCell);
-
- self.table.rowManager.getTableElement().appendChild(testElRow);
-
- self.size = Math.floor(self.table.rowManager.getElement().clientHeight / testElRow.offsetHeight);
-
- self.table.rowManager.getTableElement().removeChild(testElRow);
- }
-
- // self.page = self.table.options.paginationInitialPage || 1;
- self.count = self.table.options.paginationButtonCount;
-
- self.generatePageSizeSelectList();
-};
-
-Page.prototype.initializeProgressive = function (mode) {
- this.initialize(true);
- this.mode = "progressive_" + mode;
- this.progressiveLoad = true;
-};
-
-Page.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
-};
-
-Page.prototype.getDisplayIndex = function () {
- return this.displayIndex;
-};
-
-//calculate maximum page from number of rows
-Page.prototype.setMaxRows = function (rowCount) {
- if (!rowCount) {
- this.max = 1;
- } else {
- this.max = this.size === true ? 1 : Math.ceil(rowCount / this.size);
- }
-
- if (this.page > this.max) {
- this.page = this.max;
- }
-};
-
-//reset to first page without triggering action
-Page.prototype.reset = function (force, columnsChanged) {
- if (this.mode == "local" || force) {
- this.page = 1;
- }
-
- if (columnsChanged) {
- this.initialLoad = true;
- }
-
- return true;
-};
-
-//set the maxmum page
-Page.prototype.setMaxPage = function (max) {
-
- max = parseInt(max);
-
- this.max = max || 1;
-
- if (this.page > this.max) {
- this.page = this.max;
- this.trigger();
- }
-};
-
-//set current page number
-Page.prototype.setPage = function (page) {
- var _this2 = this;
-
- var self = this;
-
- switch (page) {
- case "first":
- return this.setPage(1);
- break;
-
- case "prev":
- return this.previousPage();
- break;
-
- case "next":
- return this.nextPage();
- break;
-
- case "last":
- return this.setPage(this.max);
- break;
- }
-
- return new Promise(function (resolve, reject) {
-
- page = parseInt(page);
-
- if (page > 0 && page <= _this2.max) {
- _this2.page = page;
- _this2.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.page) {
- self.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Requested page is out of range of 1 - " + _this2.max + ":", page);
- reject();
- }
- });
-};
-
-Page.prototype.setPageToRow = function (row) {
- var _this3 = this;
-
- return new Promise(function (resolve, reject) {
-
- var rows = _this3.table.rowManager.getDisplayRows(_this3.displayIndex - 1);
- var index = rows.indexOf(row);
-
- if (index > -1) {
- var page = _this3.size === true ? 1 : Math.ceil((index + 1) / _this3.size);
-
- _this3.setPage(page).then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- } else {
- console.warn("Pagination Error - Requested row is not visible");
- reject();
- }
- });
-};
-
-Page.prototype.setPageSize = function (size) {
- if (size !== true) {
- size = parseInt(size);
- }
-
- if (size > 0) {
- this.size = size;
- }
-
- if (this.pageSizeSelect) {
- // this.pageSizeSelect.value = size;
- this.generatePageSizeSelectList();
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.page) {
- this.table.modules.persistence.save("page");
- }
-};
-
-//setup the pagination buttons
-Page.prototype._setPageButtons = function () {
- var self = this;
-
- var leftSize = Math.floor((this.count - 1) / 2);
- var rightSize = Math.ceil((this.count - 1) / 2);
- var min = this.max - this.page + leftSize + 1 < this.count ? this.max - this.count + 1 : Math.max(this.page - leftSize, 1);
- var max = this.page <= rightSize ? Math.min(this.count, this.max) : Math.min(this.page + rightSize, this.max);
-
- while (self.pagesElement.firstChild) {
- self.pagesElement.removeChild(self.pagesElement.firstChild);
- }if (self.page == 1) {
- self.firstBut.disabled = true;
- self.prevBut.disabled = true;
- } else {
- self.firstBut.disabled = false;
- self.prevBut.disabled = false;
- }
-
- if (self.page == self.max) {
- self.lastBut.disabled = true;
- self.nextBut.disabled = true;
- } else {
- self.lastBut.disabled = false;
- self.nextBut.disabled = false;
- }
-
- for (var i = min; i <= max; i++) {
- if (i > 0 && i <= self.max) {
- self.pagesElement.appendChild(self._generatePageButton(i));
- }
- }
-
- this.footerRedraw();
-};
-
-Page.prototype._generatePageButton = function (page) {
- var self = this,
- button = document.createElement("button");
-
- button.classList.add("tabulator-page");
- if (page == self.page) {
- button.classList.add("active");
- }
-
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
-
- self.table.modules.localize.bind("pagination|page_title", function (value) {
- button.setAttribute("aria-label", value + " " + page);
- button.setAttribute("title", value + " " + page);
- });
-
- button.setAttribute("data-page", page);
- button.textContent = page;
-
- button.addEventListener("click", function (e) {
- self.setPage(page);
- });
-
- return button;
-};
-
-//previous page
-Page.prototype.previousPage = function () {
- var _this4 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this4.page > 1) {
- _this4.page--;
- _this4.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this4.table.options.persistence && _this4.table.modExists("persistence", true) && _this4.table.modules.persistence.config.page) {
- _this4.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Previous page would be less than page 1:", 0);
- reject();
- }
- });
-};
-
-//next page
-Page.prototype.nextPage = function () {
- var _this5 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this5.page < _this5.max) {
- _this5.page++;
- _this5.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this5.table.options.persistence && _this5.table.modExists("persistence", true) && _this5.table.modules.persistence.config.page) {
- _this5.table.modules.persistence.save("page");
- }
- } else {
- if (!_this5.progressiveLoad) {
- console.warn("Pagination Error - Next page would be greater than maximum page of " + _this5.max + ":", _this5.max + 1);
- }
- reject();
- }
- });
-};
-
-//return current page number
-Page.prototype.getPage = function () {
- return this.page;
-};
-
-//return max page number
-Page.prototype.getPageMax = function () {
- return this.max;
-};
-
-Page.prototype.getPageSize = function (size) {
- return this.size;
-};
-
-Page.prototype.getMode = function () {
- return this.mode;
-};
-
-//return appropriate rows for current page
-Page.prototype.getRows = function (data) {
- var output, start, end;
-
- if (this.mode == "local") {
- output = [];
-
- if (this.size === true) {
- start = 0;
- end = data.length - 1;
- } else {
- start = this.size * (this.page - 1);
- end = start + parseInt(this.size);
- }
-
- this._setPageButtons();
-
- for (var i = start; i < end; i++) {
- if (data[i]) {
- output.push(data[i]);
- }
- }
-
- return output;
- } else {
-
- this._setPageButtons();
-
- return data.slice(0);
- }
-};
-
-Page.prototype.trigger = function () {
- var _this6 = this;
-
- var left;
-
- return new Promise(function (resolve, reject) {
-
- switch (_this6.mode) {
- case "local":
- left = _this6.table.rowManager.scrollLeft;
-
- _this6.table.rowManager.refreshActiveData("page");
- _this6.table.rowManager.scrollHorizontal(left);
-
- _this6.table.options.pageLoaded.call(_this6.table, _this6.getPage());
- resolve();
- break;
-
- case "remote":
- case "progressive_load":
- case "progressive_scroll":
- _this6.table.modules.ajax.blockActiveRequest();
- _this6._getRemotePage().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- break;
-
- default:
- console.warn("Pagination Error - no such pagination mode:", _this6.mode);
- reject();
- }
- });
-};
-
-Page.prototype._getRemotePage = function () {
- var _this7 = this;
-
- var self = this,
- oldParams,
- pageParams;
-
- return new Promise(function (resolve, reject) {
-
- if (!self.table.modExists("ajax", true)) {
- reject();
- }
-
- //record old params and restore after request has been made
- oldParams = Tabulator.prototype.helpers.deepClone(self.table.modules.ajax.getParams() || {});
- pageParams = self.table.modules.ajax.getParams();
-
- //configure request params
- pageParams[_this7.dataSentNames.page] = self.page;
-
- //set page size if defined
- if (_this7.size) {
- pageParams[_this7.dataSentNames.size] = _this7.size;
- }
-
- //set sort data if defined
- if (_this7.table.options.ajaxSorting && _this7.table.modExists("sort")) {
- var sorters = self.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
- delete item.column;
- });
-
- pageParams[_this7.dataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
- if (_this7.table.options.ajaxFiltering && _this7.table.modExists("filter")) {
- var filters = self.table.modules.filter.getFilters(true, true);
- pageParams[_this7.dataSentNames.filters] = filters;
- }
-
- self.table.modules.ajax.setParams(pageParams);
-
- self.table.modules.ajax.sendRequest(_this7.progressiveLoad).then(function (data) {
- self._parseRemoteData(data);
- resolve();
- }).catch(function (e) {
- reject();
- });
-
- self.table.modules.ajax.setParams(oldParams);
- });
-};
-
-Page.prototype._parseRemoteData = function (data) {
- var self = this,
- left,
- data,
- margin;
-
- if (typeof data[this.dataReceivedNames.last_page] === "undefined") {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.last_page + "' property");
- }
-
- if (data[this.dataReceivedNames.data]) {
- this.max = parseInt(data[this.dataReceivedNames.last_page]) || 1;
-
- if (this.progressiveLoad) {
- switch (this.mode) {
- case "progressive_load":
-
- if (this.page == 1) {
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
- } else {
- this.table.rowManager.addRows(data[this.dataReceivedNames.data]);
- }
-
- if (this.page < this.max) {
- setTimeout(function () {
- self.nextPage().then(function () {}).catch(function () {});
- }, self.table.options.ajaxProgressiveLoadDelay);
- }
- break;
-
- case "progressive_scroll":
- data = this.table.rowManager.getData().concat(data[this.dataReceivedNames.data]);
-
- this.table.rowManager.setData(data, true, this.initialLoad && this.page == 1);
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.element.clientHeight * 2;
-
- if (self.table.rowManager.element.scrollHeight <= self.table.rowManager.element.clientHeight + margin) {
- self.nextPage().then(function () {}).catch(function () {});
- }
- break;
- }
- } else {
- left = this.table.rowManager.scrollLeft;
-
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
-
- this.table.rowManager.scrollHorizontal(left);
-
- this.table.columnManager.scrollHorizontal(left);
-
- this.table.options.pageLoaded.call(this.table, this.getPage());
- }
-
- this.initialLoad = false;
- } else {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.data + "' property");
- }
-};
-
-//handle the footer element being redrawn
-Page.prototype.footerRedraw = function () {
- var footer = this.table.footerManager.element;
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- } else {
- this.pagesElement.style.display = '';
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- }
- }
-};
-
-//set the paramter names for pagination requests
-Page.prototype.paginationDataSentNames = {
- "page": "page",
- "size": "size",
- "sorters": "sorters",
- // "sort_dir":"sort_dir",
- "filters": "filters"
- // "filter_value":"filter_value",
- // "filter_type":"filter_type",
-};
-
-//set the property names for pagination responses
-Page.prototype.paginationDataReceivedNames = {
- "current_page": "current_page",
- "last_page": "last_page",
- "data": "data"
-};
-
-Tabulator.prototype.registerModule("page", Page);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var Page=function(e){this.table=e,this.mode="local",this.progressiveLoad=!1,this.size=0,this.page=1,this.count=5,this.max=1,this.displayIndex=0,this.initialLoad=!0,this.pageSizes=[],this.dataReceivedNames={},this.dataSentNames={},this.createElements()};Page.prototype.createElements=function(){var e;this.element=document.createElement("span"),this.element.classList.add("tabulator-paginator"),this.pagesElement=document.createElement("span"),this.pagesElement.classList.add("tabulator-pages"),e=document.createElement("button"),e.classList.add("tabulator-page"),e.setAttribute("type","button"),e.setAttribute("role","button"),e.setAttribute("aria-label",""),e.setAttribute("title",""),this.firstBut=e.cloneNode(!0),this.firstBut.setAttribute("data-page","first"),this.prevBut=e.cloneNode(!0),this.prevBut.setAttribute("data-page","prev"),this.nextBut=e.cloneNode(!0),this.nextBut.setAttribute("data-page","next"),this.lastBut=e.cloneNode(!0),this.lastBut.setAttribute("data-page","last"),this.table.options.paginationSizeSelector&&(this.pageSizeSelect=document.createElement("select"),this.pageSizeSelect.classList.add("tabulator-page-size"))},Page.prototype.generatePageSizeSelectList=function(){var e=this,t=[];if(this.pageSizeSelect){if(Array.isArray(this.table.options.paginationSizeSelector))t=this.table.options.paginationSizeSelector,this.pageSizes=t,-1==this.pageSizes.indexOf(this.size)&&t.unshift(this.size);else if(-1==this.pageSizes.indexOf(this.size)){t=[];for(var a=1;a<5;a++)t.push(this.size*a);this.pageSizes=t}else t=this.pageSizes;for(;this.pageSizeSelect.firstChild;)this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);t.forEach(function(t){var a=document.createElement("option");a.value=t,!0===t?e.table.modules.localize.bind("pagination|all",function(e){a.innerHTML=e}):a.innerHTML=t,e.pageSizeSelect.appendChild(a)}),this.pageSizeSelect.value=this.size}},Page.prototype.initialize=function(e){var t,a,i,s=this;this.dataSentNames=Object.assign({},this.paginationDataSentNames),this.dataSentNames=Object.assign(this.dataSentNames,this.table.options.paginationDataSent),this.dataReceivedNames=Object.assign({},this.paginationDataReceivedNames),this.dataReceivedNames=Object.assign(this.dataReceivedNames,this.table.options.paginationDataReceived),s.table.modules.localize.bind("pagination|first",function(e){s.firstBut.innerHTML=e}),s.table.modules.localize.bind("pagination|first_title",function(e){s.firstBut.setAttribute("aria-label",e),s.firstBut.setAttribute("title",e)}),s.table.modules.localize.bind("pagination|prev",function(e){s.prevBut.innerHTML=e}),s.table.modules.localize.bind("pagination|prev_title",function(e){s.prevBut.setAttribute("aria-label",e),s.prevBut.setAttribute("title",e)}),s.table.modules.localize.bind("pagination|next",function(e){s.nextBut.innerHTML=e}),s.table.modules.localize.bind("pagination|next_title",function(e){s.nextBut.setAttribute("aria-label",e),s.nextBut.setAttribute("title",e)}),s.table.modules.localize.bind("pagination|last",function(e){s.lastBut.innerHTML=e}),s.table.modules.localize.bind("pagination|last_title",function(e){s.lastBut.setAttribute("aria-label",e),s.lastBut.setAttribute("title",e)}),s.firstBut.addEventListener("click",function(){s.setPage(1)}),s.prevBut.addEventListener("click",function(){s.previousPage()}),s.nextBut.addEventListener("click",function(){s.nextPage().then(function(){}).catch(function(){})}),s.lastBut.addEventListener("click",function(){s.setPage(s.max)}),s.table.options.paginationElement&&(s.element=s.table.options.paginationElement),this.pageSizeSelect&&(t=document.createElement("label"),s.table.modules.localize.bind("pagination|page_size",function(e){s.pageSizeSelect.setAttribute("aria-label",e),s.pageSizeSelect.setAttribute("title",e),t.innerHTML=e}),s.element.appendChild(t),s.element.appendChild(s.pageSizeSelect),s.pageSizeSelect.addEventListener("change",function(e){s.setPageSize("true"==s.pageSizeSelect.value||s.pageSizeSelect.value),s.setPage(1).then(function(){}).catch(function(){})})),s.element.appendChild(s.firstBut),s.element.appendChild(s.prevBut),s.element.appendChild(s.pagesElement),s.element.appendChild(s.nextBut),s.element.appendChild(s.lastBut),s.table.options.paginationElement||e||s.table.footerManager.append(s.element,s),s.mode=s.table.options.pagination,s.table.options.paginationSize?s.size=s.table.options.paginationSize:(a=document.createElement("div"),a.classList.add("tabulator-row"),a.style.visibility=e,i=document.createElement("div"),i.classList.add("tabulator-cell"),i.innerHTML="Page Row Test",a.appendChild(i),s.table.rowManager.getTableElement().appendChild(a),s.size=Math.floor(s.table.rowManager.getElement().clientHeight/a.offsetHeight),s.table.rowManager.getTableElement().removeChild(a)),s.count=s.table.options.paginationButtonCount,s.generatePageSizeSelectList()},Page.prototype.initializeProgressive=function(e){this.initialize(!0),this.mode="progressive_"+e,this.progressiveLoad=!0},Page.prototype.setDisplayIndex=function(e){this.displayIndex=e},Page.prototype.getDisplayIndex=function(){return this.displayIndex},Page.prototype.setMaxRows=function(e){this.max=e?!0===this.size?1:Math.ceil(e/this.size):1,this.page>this.max&&(this.page=this.max)},Page.prototype.reset=function(e,t){return("local"==this.mode||e)&&(this.page=1),t&&(this.initialLoad=!0),!0},Page.prototype.setMaxPage=function(e){e=parseInt(e),this.max=e||1,this.page>this.max&&(this.page=this.max,this.trigger())},Page.prototype.setPage=function(e){var t=this,a=this;switch(e){case"first":return this.setPage(1);case"prev":return this.previousPage();case"next":return this.nextPage();case"last":return this.setPage(this.max)}return new Promise(function(i,s){e=parseInt(e),e>0&&e<=t.max?(t.page=e,t.trigger().then(function(){i()}).catch(function(){s()}),a.table.options.persistence&&a.table.modExists("persistence",!0)&&a.table.modules.persistence.config.page&&a.table.modules.persistence.save("page")):(console.warn("Pagination Error - Requested page is out of range of 1 - "+t.max+":",e),s())})},Page.prototype.setPageToRow=function(e){var t=this;return new Promise(function(a,i){var s=t.table.rowManager.getDisplayRows(t.displayIndex-1),n=s.indexOf(e);if(n>-1){var o=!0===t.size?1:Math.ceil((n+1)/t.size);t.setPage(o).then(function(){a()}).catch(function(){i()})}else console.warn("Pagination Error - Requested row is not visible"),i()})},Page.prototype.setPageSize=function(e){!0!==e&&(e=parseInt(e)),e>0&&(this.size=e),this.pageSizeSelect&&this.generatePageSizeSelectList(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.page&&this.table.modules.persistence.save("page")},Page.prototype._setPageButtons=function(){for(var e=this,t=Math.floor((this.count-1)/2),a=Math.ceil((this.count-1)/2),i=this.max-this.page+t+1<this.count?this.max-this.count+1:Math.max(this.page-t,1),s=this.page<=a?Math.min(this.count,this.max):Math.min(this.page+a,this.max);e.pagesElement.firstChild;)e.pagesElement.removeChild(e.pagesElement.firstChild);1==e.page?(e.firstBut.disabled=!0,e.prevBut.disabled=!0):(e.firstBut.disabled=!1,e.prevBut.disabled=!1),e.page==e.max?(e.lastBut.disabled=!0,e.nextBut.disabled=!0):(e.lastBut.disabled=!1,e.nextBut.disabled=!1);for(var n=i;n<=s;n++)n>0&&n<=e.max&&e.pagesElement.appendChild(e._generatePageButton(n));this.footerRedraw()},Page.prototype._generatePageButton=function(e){var t=this,a=document.createElement("button");return a.classList.add("tabulator-page"),e==t.page&&a.classList.add("active"),a.setAttribute("type","button"),a.setAttribute("role","button"),t.table.modules.localize.bind("pagination|page_title",function(t){a.setAttribute("aria-label",t+" "+e),a.setAttribute("title",t+" "+e)}),a.setAttribute("data-page",e),a.textContent=e,a.addEventListener("click",function(a){t.setPage(e)}),a},Page.prototype.previousPage=function(){var e=this;return new Promise(function(t,a){e.page>1?(e.page--,e.trigger().then(function(){t()}).catch(function(){a()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(console.warn("Pagination Error - Previous page would be less than page 1:",0),a())})},Page.prototype.nextPage=function(){var e=this;return new Promise(function(t,a){e.page<e.max?(e.page++,e.trigger().then(function(){t()}).catch(function(){a()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(e.progressiveLoad||console.warn("Pagination Error - Next page would be greater than maximum page of "+e.max+":",e.max+1),a())})},Page.prototype.getPage=function(){return this.page},Page.prototype.getPageMax=function(){return this.max},Page.prototype.getPageSize=function(e){return this.size},Page.prototype.getMode=function(){return this.mode},Page.prototype.getRows=function(e){var t,a,i;if("local"==this.mode){t=[],!0===this.size?(a=0,i=e.length-1):(a=this.size*(this.page-1),i=a+parseInt(this.size)),this._setPageButtons();for(var s=a;s<i;s++)e[s]&&t.push(e[s]);return t}return this._setPageButtons(),e.slice(0)},Page.prototype.trigger=function(){var e,t=this;return new Promise(function(a,i){switch(t.mode){case"local":e=t.table.rowManager.scrollLeft,t.table.rowManager.refreshActiveData("page"),t.table.rowManager.scrollHorizontal(e),t.table.options.pageLoaded.call(t.table,t.getPage()),a();break;case"remote":case"progressive_load":case"progressive_scroll":t.table.modules.ajax.blockActiveRequest(),t._getRemotePage().then(function(){a()}).catch(function(){i()});break;default:console.warn("Pagination Error - no such pagination mode:",t.mode),i()}})},Page.prototype._getRemotePage=function(){var e,t,a=this,i=this;return new Promise(function(s,n){if(i.table.modExists("ajax",!0)||n(),e=Tabulator.prototype.helpers.deepClone(i.table.modules.ajax.getParams()||{}),t=i.table.modules.ajax.getParams(),t[a.dataSentNames.page]=i.page,a.size&&(t[a.dataSentNames.size]=a.size),a.table.options.ajaxSorting&&a.table.modExists("sort")){var o=i.table.modules.sort.getSort();o.forEach(function(e){delete e.column}),t[a.dataSentNames.sorters]=o}if(a.table.options.ajaxFiltering&&a.table.modExists("filter")){var r=i.table.modules.filter.getFilters(!0,!0);t[a.dataSentNames.filters]=r}i.table.modules.ajax.setParams(t),i.table.modules.ajax.sendRequest(a.progressiveLoad).then(function(e){i._parseRemoteData(e),s()}).catch(function(e){n()}),i.table.modules.ajax.setParams(e)})},Page.prototype._parseRemoteData=function(e){var t,e,a,i=this;if(void 0===e[this.dataReceivedNames.last_page]&&console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.last_page+"' property"),e[this.dataReceivedNames.data]){if(this.max=parseInt(e[this.dataReceivedNames.last_page])||1,this.progressiveLoad)switch(this.mode){case"progressive_load":1==this.page?this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page):this.table.rowManager.addRows(e[this.dataReceivedNames.data]),this.page<this.max&&setTimeout(function(){i.nextPage().then(function(){}).catch(function(){})},i.table.options.ajaxProgressiveLoadDelay);break;case"progressive_scroll":e=this.table.rowManager.getData().concat(e[this.dataReceivedNames.data]),this.table.rowManager.setData(e,!0,this.initialLoad&&1==this.page),a=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.element.clientHeight,i.table.rowManager.element.scrollHeight<=i.table.rowManager.element.clientHeight+a&&i.nextPage().then(function(){}).catch(function(){})}else t=this.table.rowManager.scrollLeft,this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page),this.table.rowManager.scrollHorizontal(t),this.table.columnManager.scrollHorizontal(t),this.table.options.pageLoaded.call(this.table,this.getPage());this.initialLoad=!1}else console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.data+"' property")},Page.prototype.footerRedraw=function(){var e=this.table.footerManager.element;Math.ceil(e.clientWidth)-e.scrollWidth<0?this.pagesElement.style.display="none":(this.pagesElement.style.display="",Math.ceil(e.clientWidth)-e.scrollWidth<0&&(this.pagesElement.style.display="none"))},Page.prototype.paginationDataSentNames={page:"page",size:"size",sorters:"sorters",filters:"filters"},Page.prototype.paginationDataReceivedNames={current_page:"current_page",last_page:"last_page",data:"data"},Tabulator.prototype.registerModule("page",Page);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Persistence = function Persistence(table) {
- this.table = table; //hold Tabulator object
- this.mode = "";
- this.id = "";
- // this.persistProps = ["field", "width", "visible"];
- this.defWatcherBlock = false;
- this.config = {};
- this.readFunc = false;
- this.writeFunc = false;
-};
-
-// Test for whether localStorage is available for use.
-Persistence.prototype.localStorageTest = function () {
- var testKey = "_tabulator_test";
-
- try {
- window.localStorage.setItem(testKey, testKey);
- window.localStorage.removeItem(testKey);
- return true;
- } catch (e) {
- return false;
- }
-};
-
-//setup parameters
-Persistence.prototype.initialize = function () {
- //determine persistent layout storage type
-
- var mode = this.table.options.persistenceMode,
- id = this.table.options.persistenceID,
- retreivedData;
-
- this.mode = mode !== true ? mode : this.localStorageTest() ? "local" : "cookie";
-
- if (this.table.options.persistenceReaderFunc) {
- if (typeof this.table.options.persistenceReaderFunc === "function") {
- this.readFunc = this.table.options.persistenceReaderFunc;
- } else {
- if (this.readers[this.table.options.persistenceReaderFunc]) {
- this.readFunc = this.readers[this.table.options.persistenceReaderFunc];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.table.options.persistenceReaderFunc);
- }
- }
- } else {
- if (this.readers[this.mode]) {
- this.readFunc = this.readers[this.mode];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.mode);
- }
- }
-
- if (this.table.options.persistenceWriterFunc) {
- if (typeof this.table.options.persistenceWriterFunc === "function") {
- this.writeFunc = this.table.options.persistenceWriterFunc;
- } else {
- if (this.readers[this.table.options.persistenceWriterFunc]) {
- this.writeFunc = this.readers[this.table.options.persistenceWriterFunc];
- } else {
- console.warn("Persistence Write Error - invalid reader set", this.table.options.persistenceWriterFunc);
- }
- }
- } else {
- if (this.writers[this.mode]) {
- this.writeFunc = this.writers[this.mode];
- } else {
- console.warn("Persistence Write Error - invalid writer set", this.mode);
- }
- }
-
- //set storage tag
- this.id = "tabulator-" + (id || this.table.element.getAttribute("id") || "");
-
- this.config = {
- sort: this.table.options.persistence === true || this.table.options.persistence.sort,
- filter: this.table.options.persistence === true || this.table.options.persistence.filter,
- group: this.table.options.persistence === true || this.table.options.persistence.group,
- page: this.table.options.persistence === true || this.table.options.persistence.page,
- columns: this.table.options.persistence === true ? ["title", "width", "visible"] : this.table.options.persistence.columns
- };
-
- //load pagination data if needed
- if (this.config.page) {
- retreivedData = this.retreiveData("page");
-
- if (retreivedData) {
- if (typeof retreivedData.paginationSize !== "undefined" && (this.config.page === true || this.config.page.size)) {
- this.table.options.paginationSize = retreivedData.paginationSize;
- }
-
- if (typeof retreivedData.paginationInitialPage !== "undefined" && (this.config.page === true || this.config.page.page)) {
- this.table.options.paginationInitialPage = retreivedData.paginationInitialPage;
- }
- }
- }
-
- //load group data if needed
- if (this.config.group) {
- retreivedData = this.retreiveData("group");
-
- if (retreivedData) {
- if (typeof retreivedData.groupBy !== "undefined" && (this.config.group === true || this.config.group.groupBy)) {
- this.table.options.groupBy = retreivedData.groupBy;
- }
- if (typeof retreivedData.groupStartOpen !== "undefined" && (this.config.group === true || this.config.group.groupStartOpen)) {
- this.table.options.groupStartOpen = retreivedData.groupStartOpen;
- }
- if (typeof retreivedData.groupHeader !== "undefined" && (this.config.group === true || this.config.group.groupHeader)) {
- this.table.options.groupHeader = retreivedData.groupHeader;
- }
- }
- }
-};
-
-Persistence.prototype.initializeColumn = function (column) {
- var self = this,
- def,
- keys;
-
- if (this.config.columns) {
- this.defWatcherBlock = true;
-
- def = column.getDefinition();
-
- keys = this.config.columns === true ? Object.keys(def) : this.config.columns;
-
- keys.forEach(function (key) {
- var props = Object.getOwnPropertyDescriptor(def, key);
- var value = def[key];
- if (props) {
- Object.defineProperty(def, key, {
- set: function set(newValue) {
- value = newValue;
-
- if (!self.defWatcherBlock) {
- self.save("columns");
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
- if (props.get) {
- props.get();
- }
- return value;
- }
- });
- }
- });
-
- this.defWatcherBlock = false;
- }
-};
-
-//load saved definitions
-Persistence.prototype.load = function (type, current) {
- var data = this.retreiveData(type);
-
- if (current) {
- data = data ? this.mergeDefinition(current, data) : current;
- }
-
- return data;
-};
-
-//retreive data from memory
-Persistence.prototype.retreiveData = function (type) {
- return this.readFunc ? this.readFunc(this.id, type) : false;
-};
-
-//merge old and new column definitions
-Persistence.prototype.mergeDefinition = function (oldCols, newCols) {
- var self = this,
- output = [];
-
- // oldCols = oldCols || [];
- newCols = newCols || [];
-
- newCols.forEach(function (column, to) {
-
- var from = self._findColumn(oldCols, column),
- keys;
-
- if (from) {
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(from);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
- if (typeof column[key] !== "undefined") {
- from[key] = column[key];
- }
- });
-
- if (from.columns) {
- from.columns = self.mergeDefinition(from.columns, column.columns);
- }
-
- output.push(from);
- }
- });
-
- oldCols.forEach(function (column, i) {
- var from = self._findColumn(newCols, column);
- if (!from) {
- if (output.length > i) {
- output.splice(i, 0, column);
- } else {
- output.push(column);
- }
- }
- });
-
- return output;
-};
-
-//find matching columns
-Persistence.prototype._findColumn = function (columns, subject) {
- var type = subject.columns ? "group" : subject.field ? "field" : "object";
-
- return columns.find(function (col) {
- switch (type) {
- case "group":
- return col.title === subject.title && col.columns.length === subject.columns.length;
- break;
-
- case "field":
- return col.field === subject.field;
- break;
-
- case "object":
- return col === subject;
- break;
- }
- });
-};
-
-//save data
-Persistence.prototype.save = function (type) {
- var data = {};
-
- switch (type) {
- case "columns":
- data = this.parseColumns(this.table.columnManager.getColumns());
- break;
-
- case "filter":
- data = this.table.modules.filter.getFilters();
- break;
-
- case "sort":
- data = this.validateSorters(this.table.modules.sort.getSort());
- break;
-
- case "group":
- data = this.getGroupConfig();
- break;
-
- case "page":
- data = this.getPageConfig();
- break;
- }
-
- if (this.writeFunc) {
- this.writeFunc(this.id, type, data);
- }
-};
-
-//ensure sorters contain no function data
-Persistence.prototype.validateSorters = function (data) {
- data.forEach(function (item) {
- item.column = item.field;
- delete item.field;
- });
-
- return data;
-};
-
-Persistence.prototype.getGroupConfig = function () {
- if (this.config.group) {
- if (this.config.group === true || this.config.group.groupBy) {
- data.groupBy = this.table.options.groupBy;
- }
-
- if (this.config.group === true || this.config.group.groupStartOpen) {
- data.groupStartOpen = this.table.options.groupStartOpen;
- }
-
- if (this.config.group === true || this.config.group.groupHeader) {
- data.groupHeader = this.table.options.groupHeader;
- }
- }
-
- return data;
-};
-
-Persistence.prototype.getPageConfig = function () {
- var data = {};
-
- if (this.config.page) {
- if (this.config.page === true || this.config.page.size) {
- data.paginationSize = this.table.modules.page.getPageSize();
- }
-
- if (this.config.page === true || this.config.page.page) {
- data.paginationInitialPage = this.table.modules.page.getPage();
- }
- }
-
- return data;
-};
-
-//parse columns for data to store
-Persistence.prototype.parseColumns = function (columns) {
- var self = this,
- definitions = [];
-
- columns.forEach(function (column) {
- var defStore = {},
- colDef = column.getDefinition(),
- keys;
-
- if (column.isGroup) {
- defStore.title = colDef.title;
- defStore.columns = self.parseColumns(column.getColumns());
- } else {
- defStore.field = column.getField();
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(colDef);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
-
- switch (key) {
- case "width":
- defStore.width = column.getWidth();
- break;
- case "visible":
- defStore.visible = column.visible;
- break;
-
- default:
- defStore[key] = colDef[key];
- }
- });
- }
-
- definitions.push(defStore);
- });
-
- return definitions;
-};
-
-// read peristence information from storage
-Persistence.prototype.readers = {
- local: function local(id, type) {
- var data = localStorage.getItem(id + "-" + type);
-
- return data ? JSON.parse(data) : false;
- },
- cookie: function cookie(id, type) {
- var cookie = document.cookie,
- key = id + "-" + type,
- cookiePos = cookie.indexOf(key + "="),
- end,
- data;
-
- //if cookie exists, decode and load column data into tabulator
- if (cookiePos > -1) {
- cookie = cookie.substr(cookiePos);
-
- end = cookie.indexOf(";");
-
- if (end > -1) {
- cookie = cookie.substr(0, end);
- }
-
- data = cookie.replace(key + "=", "");
- }
-
- return data ? JSON.parse(data) : false;
- }
-};
-
-//write persistence information to storage
-Persistence.prototype.writers = {
- local: function local(id, type, data) {
- localStorage.setItem(id + "-" + type, JSON.stringify(data));
- },
- cookie: function cookie(id, type, data) {
- var expireDate = new Date();
-
- expireDate.setDate(expireDate.getDate() + 10000);
-
- document.cookie = id + "-" + type + "=" + JSON.stringify(data) + "; expires=" + expireDate.toUTCString();
- }
-};
-
-Tabulator.prototype.registerModule("persistence", Persistence);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var Persistence=function(e){this.table=e,this.mode="",this.id="",this.defWatcherBlock=!1,this.config={},this.readFunc=!1,this.writeFunc=!1};Persistence.prototype.localStorageTest=function(){var e="_tabulator_test";try{return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}},Persistence.prototype.initialize=function(){var e,t=this.table.options.persistenceMode,i=this.table.options.persistenceID;this.mode=!0!==t?t:this.localStorageTest()?"local":"cookie",this.table.options.persistenceReaderFunc?"function"==typeof this.table.options.persistenceReaderFunc?this.readFunc=this.table.options.persistenceReaderFunc:this.readers[this.table.options.persistenceReaderFunc]?this.readFunc=this.readers[this.table.options.persistenceReaderFunc]:console.warn("Persistence Read Error - invalid reader set",this.table.options.persistenceReaderFunc):this.readers[this.mode]?this.readFunc=this.readers[this.mode]:console.warn("Persistence Read Error - invalid reader set",this.mode),this.table.options.persistenceWriterFunc?"function"==typeof this.table.options.persistenceWriterFunc?this.writeFunc=this.table.options.persistenceWriterFunc:this.readers[this.table.options.persistenceWriterFunc]?this.writeFunc=this.readers[this.table.options.persistenceWriterFunc]:console.warn("Persistence Write Error - invalid reader set",this.table.options.persistenceWriterFunc):this.writers[this.mode]?this.writeFunc=this.writers[this.mode]:console.warn("Persistence Write Error - invalid writer set",this.mode),this.id="tabulator-"+(i||this.table.element.getAttribute("id")||""),this.config={sort:!0===this.table.options.persistence||this.table.options.persistence.sort,filter:!0===this.table.options.persistence||this.table.options.persistence.filter,group:!0===this.table.options.persistence||this.table.options.persistence.group,page:!0===this.table.options.persistence||this.table.options.persistence.page,columns:!0===this.table.options.persistence?["title","width","visible"]:this.table.options.persistence.columns},this.config.page&&(e=this.retreiveData("page"))&&(void 0===e.paginationSize||!0!==this.config.page&&!this.config.page.size||(this.table.options.paginationSize=e.paginationSize),void 0===e.paginationInitialPage||!0!==this.config.page&&!this.config.page.page||(this.table.options.paginationInitialPage=e.paginationInitialPage)),this.config.group&&(e=this.retreiveData("group"))&&(void 0===e.groupBy||!0!==this.config.group&&!this.config.group.groupBy||(this.table.options.groupBy=e.groupBy),void 0===e.groupStartOpen||!0!==this.config.group&&!this.config.group.groupStartOpen||(this.table.options.groupStartOpen=e.groupStartOpen),void 0===e.groupHeader||!0!==this.config.group&&!this.config.group.groupHeader||(this.table.options.groupHeader=e.groupHeader))},Persistence.prototype.initializeColumn=function(e){var t,i,s=this;this.config.columns&&(this.defWatcherBlock=!0,t=e.getDefinition(),i=!0===this.config.columns?Object.keys(t):this.config.columns,i.forEach(function(e){var i=Object.getOwnPropertyDescriptor(t,e),o=t[e];i&&Object.defineProperty(t,e,{set:function(e){o=e,s.defWatcherBlock||s.save("columns"),i.set&&i.set(e)},get:function(){return i.get&&i.get(),o}})}),this.defWatcherBlock=!1)},Persistence.prototype.load=function(e,t){var i=this.retreiveData(e);return t&&(i=i?this.mergeDefinition(t,i):t),i},Persistence.prototype.retreiveData=function(e){return!!this.readFunc&&this.readFunc(this.id,e)},Persistence.prototype.mergeDefinition=function(e,t){var i=this,s=[];return t=t||[],t.forEach(function(t,o){var n,r=i._findColumn(e,t);r&&(!0===i.config.columns||void 0==i.config.columns?(n=Object.keys(r),n.push("width")):n=i.config.columns,n.forEach(function(e){void 0!==t[e]&&(r[e]=t[e])}),r.columns&&(r.columns=i.mergeDefinition(r.columns,t.columns)),s.push(r))}),e.forEach(function(e,o){i._findColumn(t,e)||(s.length>o?s.splice(o,0,e):s.push(e))}),s},Persistence.prototype._findColumn=function(e,t){var i=t.columns?"group":t.field?"field":"object";return e.find(function(e){switch(i){case"group":return e.title===t.title&&e.columns.length===t.columns.length;case"field":return e.field===t.field;case"object":return e===t}})},Persistence.prototype.save=function(e){var t={};switch(e){case"columns":t=this.parseColumns(this.table.columnManager.getColumns());break;case"filter":t=this.table.modules.filter.getFilters();break;case"sort":t=this.validateSorters(this.table.modules.sort.getSort());break;case"group":t=this.getGroupConfig();break;case"page":t=this.getPageConfig()}this.writeFunc&&this.writeFunc(this.id,e,t)},Persistence.prototype.validateSorters=function(e){return e.forEach(function(e){e.column=e.field,delete e.field}),e},Persistence.prototype.getGroupConfig=function(){return this.config.group&&((!0===this.config.group||this.config.group.groupBy)&&(data.groupBy=this.table.options.groupBy),(!0===this.config.group||this.config.group.groupStartOpen)&&(data.groupStartOpen=this.table.options.groupStartOpen),(!0===this.config.group||this.config.group.groupHeader)&&(data.groupHeader=this.table.options.groupHeader)),data},Persistence.prototype.getPageConfig=function(){var e={};return this.config.page&&((!0===this.config.page||this.config.page.size)&&(e.paginationSize=this.table.modules.page.getPageSize()),(!0===this.config.page||this.config.page.page)&&(e.paginationInitialPage=this.table.modules.page.getPage())),e},Persistence.prototype.parseColumns=function(e){var t=this,i=[];return e.forEach(function(e){var s,o={},n=e.getDefinition();e.isGroup?(o.title=n.title,o.columns=t.parseColumns(e.getColumns())):(o.field=e.getField(),!0===t.config.columns||void 0==t.config.columns?(s=Object.keys(n),s.push("width")):s=t.config.columns,s.forEach(function(t){switch(t){case"width":o.width=e.getWidth();break;case"visible":o.visible=e.visible;break;default:o[t]=n[t]}})),i.push(o)}),i},Persistence.prototype.readers={local:function(e,t){var i=localStorage.getItem(e+"-"+t);return!!i&&JSON.parse(i)},cookie:function(e,t){var i,s,o=document.cookie,n=e+"-"+t,r=o.indexOf(n+"=");return r>-1&&(o=o.substr(r),i=o.indexOf(";"),i>-1&&(o=o.substr(0,i)),s=o.replace(n+"=","")),!!s&&JSON.parse(s)}},Persistence.prototype.writers={local:function(e,t,i){localStorage.setItem(e+"-"+t,JSON.stringify(i))},cookie:function(e,t,i){var s=new Date;s.setDate(s.getDate()+1e4),document.cookie=e+"-"+t+"="+JSON.stringify(i)+"; expires="+s.toUTCString()}},Tabulator.prototype.registerModule("persistence",Persistence);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Print = function Print(table) {
- this.table = table; //hold Tabulator object
- this.element = false;
- this.manualBlock = false;
-};
-
-Print.prototype.initialize = function () {
- window.addEventListener("beforeprint", this.replaceTable.bind(this));
- window.addEventListener("afterprint", this.cleanup.bind(this));
-};
-
-Print.prototype.replaceTable = function () {
- if (!this.manualBlock) {
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-table");
-
- this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig, this.table.options.printStyled, this.table.options.printRowRange, "print"));
-
- this.table.element.style.display = "none";
-
- this.table.element.parentNode.insertBefore(this.element, this.table.element);
- }
-};
-
-Print.prototype.cleanup = function () {
- document.body.classList.remove("tabulator-print-fullscreen-hide");
-
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- this.table.element.style.display = "";
- }
-};
-
-Print.prototype.printFullscreen = function (visible, style, config) {
- var scrollX = window.scrollX,
- scrollY = window.scrollY,
- headerEl = document.createElement("div"),
- footerEl = document.createElement("div"),
- tableEl = this.table.modules.export.genereateTable(typeof config != "undefined" ? config : this.table.options.printConfig, typeof style != "undefined" ? style : this.table.options.printStyled, visible, "print"),
- headerContent,
- footerContent;
-
- this.manualBlock = true;
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-fullscreen");
-
- if (this.table.options.printHeader) {
- headerEl.classList.add("tabulator-print-header");
-
- headerContent = typeof this.table.options.printHeader == "function" ? this.table.options.printHeader.call(this.table) : this.table.options.printHeader;
-
- if (typeof headerContent == "string") {
- headerEl.innerHTML = headerContent;
- } else {
- headerEl.appendChild(headerContent);
- }
-
- this.element.appendChild(headerEl);
- }
-
- this.element.appendChild(tableEl);
-
- if (this.table.options.printFooter) {
- footerEl.classList.add("tabulator-print-footer");
-
- footerContent = typeof this.table.options.printFooter == "function" ? this.table.options.printFooter.call(this.table) : this.table.options.printFooter;
-
- if (typeof footerContent == "string") {
- footerEl.innerHTML = footerContent;
- } else {
- footerEl.appendChild(footerContent);
- }
-
- this.element.appendChild(footerEl);
- }
-
- document.body.classList.add("tabulator-print-fullscreen-hide");
- document.body.appendChild(this.element);
-
- if (this.table.options.printFormatter) {
- this.table.options.printFormatter(this.element, tableEl);
- }
-
- window.print();
-
- this.cleanup();
-
- window.scrollTo(scrollX, scrollY);
-
- this.manualBlock = false;
-};
-
-Tabulator.prototype.registerModule("print", Print);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var Print=function(t){this.table=t,this.element=!1,this.manualBlock=!1};Print.prototype.initialize=function(){window.addEventListener("beforeprint",this.replaceTable.bind(this)),window.addEventListener("afterprint",this.cleanup.bind(this))},Print.prototype.replaceTable=function(){this.manualBlock||(this.element=document.createElement("div"),this.element.classList.add("tabulator-print-table"),this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig,this.table.options.printStyled,this.table.options.printRowRange,"print")),this.table.element.style.display="none",this.table.element.parentNode.insertBefore(this.element,this.table.element))},Print.prototype.cleanup=function(){document.body.classList.remove("tabulator-print-fullscreen-hide"),this.element&&this.element.parentNode&&(this.element.parentNode.removeChild(this.element),this.table.element.style.display="")},Print.prototype.printFullscreen=function(t,e,i){var n,l,o=window.scrollX,a=window.scrollY,s=document.createElement("div"),r=document.createElement("div"),p=this.table.modules.export.genereateTable(void 0!==i?i:this.table.options.printConfig,void 0!==e?e:this.table.options.printStyled,t,"print");this.manualBlock=!0,this.element=document.createElement("div"),this.element.classList.add("tabulator-print-fullscreen"),this.table.options.printHeader&&(s.classList.add("tabulator-print-header"),n="function"==typeof this.table.options.printHeader?this.table.options.printHeader.call(this.table):this.table.options.printHeader,"string"==typeof n?s.innerHTML=n:s.appendChild(n),this.element.appendChild(s)),this.element.appendChild(p),this.table.options.printFooter&&(r.classList.add("tabulator-print-footer"),l="function"==typeof this.table.options.printFooter?this.table.options.printFooter.call(this.table):this.table.options.printFooter,"string"==typeof l?r.innerHTML=l:r.appendChild(l),this.element.appendChild(r)),document.body.classList.add("tabulator-print-fullscreen-hide"),document.body.appendChild(this.element),this.table.options.printFormatter&&this.table.options.printFormatter(this.element,p),window.print(),this.cleanup(),window.scrollTo(o,a),this.manualBlock=!1},Tabulator.prototype.registerModule("print",Print);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var ReactiveData = function ReactiveData(table) {
- this.table = table; //hold Tabulator object
- this.data = false;
- this.blocked = false; //block reactivity while performing update
- this.origFuncs = {}; // hold original data array functions to allow replacement after data is done with
- this.currentVersion = 0;
-};
-
-ReactiveData.prototype.watchData = function (data) {
- var self = this,
- pushFunc,
- version;
-
- this.currentVersion++;
-
- version = this.currentVersion;
-
- self.unwatchData();
-
- self.data = data;
-
- //override array push function
- self.origFuncs.push = data.push;
-
- Object.defineProperty(self.data, "push", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, false);
- });
- }
-
- return self.origFuncs.push.apply(data, arguments);
- }
- });
-
- //override array unshift function
- self.origFuncs.unshift = data.unshift;
-
- Object.defineProperty(self.data, "unshift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, true);
- });
- }
-
- return self.origFuncs.unshift.apply(data, arguments);
- }
- });
-
- //override array shift function
- self.origFuncs.shift = data.shift;
-
- Object.defineProperty(self.data, "shift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
-
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[0]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
-
- return self.origFuncs.shift.call(data);
- }
- });
-
- //override array pop function
- self.origFuncs.pop = data.pop;
-
- Object.defineProperty(self.data, "pop", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
- return self.origFuncs.pop.call(data);
- }
- });
-
- //override array splice function
- self.origFuncs.splice = data.splice;
-
- Object.defineProperty(self.data, "splice", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments),
- start = args[0] < 0 ? data.length + args[0] : args[0],
- end = args[1],
- newRows = args[2] ? args.slice(2) : false,
- startRow;
-
- if (!self.blocked && version === self.currentVersion) {
-
- //add new rows
- if (newRows) {
- startRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false;
-
- if (startRow) {
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, startRow, true);
- });
- } else {
- newRows = newRows.slice().reverse();
-
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, false, true);
- });
- }
- }
-
- //delete removed rows
- if (end !== 0) {
- var oldRows = data.slice(start, typeof args[1] === "undefined" ? args[1] : start + end);
-
- oldRows.forEach(function (rowData, i) {
- var row = self.table.rowManager.getRowFromDataObject(rowData);
-
- if (row) {
- row.deleteActual(i !== oldRows.length - 1);
- }
- });
- }
-
- if (newRows || end !== 0) {
- self.table.rowManager.reRenderInPosition();
- }
- }
-
- return self.origFuncs.splice.apply(data, arguments);
- }
- });
-};
-
-ReactiveData.prototype.unwatchData = function () {
- if (this.data !== false) {
- for (var key in this.origFuncs) {
- Object.defineProperty(this.data, key, {
- enumerable: true,
- configurable: true,
- writable: true,
- value: this.origFuncs.key
- });
- }
- }
-};
-
-ReactiveData.prototype.watchRow = function (row) {
- var self = this,
- data = row.getData();
-
- this.blocked = true;
-
- for (var key in data) {
- this.watchKey(row, data, key);
- }
-
- this.blocked = false;
-};
-
-ReactiveData.prototype.watchKey = function (row, data, key) {
- var self = this,
- props = Object.getOwnPropertyDescriptor(data, key),
- value = data[key],
- version = this.currentVersion;
-
- Object.defineProperty(data, key, {
- set: function set(newValue) {
- value = newValue;
- if (!self.blocked && version === self.currentVersion) {
- var update = {};
- update[key] = newValue;
- row.updateData(update);
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
-
- if (props.get) {
- props.get();
- }
-
- return value;
- }
- });
-};
-
-ReactiveData.prototype.unwatchRow = function (row) {
- var data = row.getData();
-
- for (var key in data) {
- Object.defineProperty(data, key, {
- value: data[key]
- });
- }
-};
-
-ReactiveData.prototype.block = function () {
- this.blocked = true;
-};
-
-ReactiveData.prototype.unblock = function () {
- this.blocked = false;
-};
-
-Tabulator.prototype.registerModule("reactiveData", ReactiveData);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var ReactiveData=function(e){this.table=e,this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0};ReactiveData.prototype.watchData=function(e){var t,a=this;this.currentVersion++,t=this.currentVersion,a.unwatchData(),a.data=e,a.origFuncs.push=e.push,Object.defineProperty(a.data,"push",{enumerable:!1,configurable:!0,value:function(){var r=Array.from(arguments);return a.blocked||t!==a.currentVersion||r.forEach(function(e){a.table.rowManager.addRowActual(e,!1)}),a.origFuncs.push.apply(e,arguments)}}),a.origFuncs.unshift=e.unshift,Object.defineProperty(a.data,"unshift",{enumerable:!1,configurable:!0,value:function(){var r=Array.from(arguments);return a.blocked||t!==a.currentVersion||r.forEach(function(e){a.table.rowManager.addRowActual(e,!0)}),a.origFuncs.unshift.apply(e,arguments)}}),a.origFuncs.shift=e.shift,Object.defineProperty(a.data,"shift",{enumerable:!1,configurable:!0,value:function(){var r;return a.blocked||t!==a.currentVersion||a.data.length&&(r=a.table.rowManager.getRowFromDataObject(a.data[0]))&&r.deleteActual(),a.origFuncs.shift.call(e)}}),a.origFuncs.pop=e.pop,Object.defineProperty(a.data,"pop",{enumerable:!1,configurable:!0,value:function(){var r;return a.blocked||t!==a.currentVersion||a.data.length&&(r=a.table.rowManager.getRowFromDataObject(a.data[a.data.length-1]))&&r.deleteActual(),a.origFuncs.pop.call(e)}}),a.origFuncs.splice=e.splice,Object.defineProperty(a.data,"splice",{enumerable:!1,configurable:!0,value:function(){var r,o=Array.from(arguments),n=o[0]<0?e.length+o[0]:o[0],c=o[1],i=!!o[2]&&o.slice(2);if(!a.blocked&&t===a.currentVersion){if(i&&(r=!!e[n]&&a.table.rowManager.getRowFromDataObject(e[n]),r?i.forEach(function(e){a.table.rowManager.addRowActual(e,!0,r,!0)}):(i=i.slice().reverse(),i.forEach(function(e){a.table.rowManager.addRowActual(e,!0,!1,!0)}))),0!==c){var u=e.slice(n,void 0===o[1]?o[1]:n+c);u.forEach(function(e,t){var r=a.table.rowManager.getRowFromDataObject(e);r&&r.deleteActual(t!==u.length-1)})}(i||0!==c)&&a.table.rowManager.reRenderInPosition()}return a.origFuncs.splice.apply(e,arguments)}})},ReactiveData.prototype.unwatchData=function(){if(!1!==this.data)for(var e in this.origFuncs)Object.defineProperty(this.data,e,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs.key})},ReactiveData.prototype.watchRow=function(e){var t=e.getData();this.blocked=!0;for(var a in t)this.watchKey(e,t,a);this.blocked=!1},ReactiveData.prototype.watchKey=function(e,t,a){var r=this,o=Object.getOwnPropertyDescriptor(t,a),n=t[a],c=this.currentVersion;Object.defineProperty(t,a,{set:function(t){if(n=t,!r.blocked&&c===r.currentVersion){var i={};i[a]=t,e.updateData(i)}o.set&&o.set(t)},get:function(){return o.get&&o.get(),n}})},ReactiveData.prototype.unwatchRow=function(e){var t=e.getData();for(var a in t)Object.defineProperty(t,a,{value:t[a]})},ReactiveData.prototype.block=function(){this.blocked=!0},ReactiveData.prototype.unblock=function(){this.blocked=!1},Tabulator.prototype.registerModule("reactiveData",ReactiveData);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var ResizeColumns = function ResizeColumns(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startX = false;
- this.startWidth = false;
- this.handle = null;
- this.prevHandle = null;
-};
-
-ResizeColumns.prototype.initializeColumn = function (type, column, element) {
- var self = this,
- variableHeight = false,
- mode = this.table.options.resizableColumns;
-
- //set column resize mode
- if (type === "header") {
- variableHeight = column.definition.formatter == "textarea" || column.definition.variableHeight;
- column.modules.resize = { variableHeight: variableHeight };
- }
-
- if (mode === true || mode == type) {
-
- var handle = document.createElement('div');
- handle.className = "tabulator-col-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-col-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- var nearestColumn = column.getLastColumn();
-
- if (nearestColumn && self._checkResizability(nearestColumn)) {
- self.startColumn = column;
- self._mouseDown(e, nearestColumn, handle);
- }
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- //reszie column on double click
- handle.addEventListener("dblclick", function (e) {
- var col = column.getLastColumn();
-
- if (col && self._checkResizability(col)) {
- e.stopPropagation();
- col.reinitializeWidth(true);
- }
- });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- self.startColumn = column;
- self._mouseDown(e, prevColumn, prevHandle);
- }
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- //resize column on double click
- prevHandle.addEventListener("dblclick", function (e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- e.stopPropagation();
- prevColumn.reinitializeWidth(true);
- }
- }
- });
-
- element.appendChild(handle);
- element.appendChild(prevHandle);
- }
-};
-
-ResizeColumns.prototype._checkResizability = function (column) {
- return typeof column.definition.resizable != "undefined" ? column.definition.resizable : this.table.options.resizableColumns;
-};
-
-ResizeColumns.prototype._mouseDown = function (e, column, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- // self.table.columnManager.tempScrollBlock();
-
- column.setWidth(self.startWidth + ((typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX) - self.startX));
-
- if (!self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
- }
-
- function mouseUp(e) {
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = false;
- }
-
- if (self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
-
- document.body.removeEventListener("mouseup", mouseUp);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.columns) {
- self.table.modules.persistence.save("columns");
- }
-
- self.table.options.columnResized.call(self.table, column.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = true;
- }
-
- self.startX = typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX;
- self.startWidth = column.getWidth();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
-};
-
-Tabulator.prototype.registerModule("resizeColumns", ResizeColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var ResizeColumns=function(e){this.table=e,this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.handle=null,this.prevHandle=null};ResizeColumns.prototype.initializeColumn=function(e,t,n){var o=this,i=!1,s=this.table.options.resizableColumns;if("header"===e&&(i="textarea"==t.definition.formatter||t.definition.variableHeight,t.modules.resize={variableHeight:i}),!0===s||s==e){var a=document.createElement("div");a.className="tabulator-col-resize-handle";var l=document.createElement("div");l.className="tabulator-col-resize-handle prev",a.addEventListener("click",function(e){e.stopPropagation()});var r=function(e){var n=t.getLastColumn();n&&o._checkResizability(n)&&(o.startColumn=t,o._mouseDown(e,n,a))};a.addEventListener("mousedown",r),a.addEventListener("touchstart",r,{passive:!0}),a.addEventListener("dblclick",function(e){var n=t.getLastColumn();n&&o._checkResizability(n)&&(e.stopPropagation(),n.reinitializeWidth(!0))}),l.addEventListener("click",function(e){e.stopPropagation()});var d=function(e){var n,i,s;(n=t.getFirstColumn())&&(i=o.table.columnManager.findColumnIndex(n),(s=i>0&&o.table.columnManager.getColumnByIndex(i-1))&&o._checkResizability(s)&&(o.startColumn=t,o._mouseDown(e,s,l)))};l.addEventListener("mousedown",d),l.addEventListener("touchstart",d,{passive:!0}),l.addEventListener("dblclick",function(e){var n,i,s;(n=t.getFirstColumn())&&(i=o.table.columnManager.findColumnIndex(n),(s=i>0&&o.table.columnManager.getColumnByIndex(i-1))&&o._checkResizability(s)&&(e.stopPropagation(),s.reinitializeWidth(!0)))}),n.appendChild(a),n.appendChild(l)}},ResizeColumns.prototype._checkResizability=function(e){return void 0!==e.definition.resizable?e.definition.resizable:this.table.options.resizableColumns},ResizeColumns.prototype._mouseDown=function(e,t,n){function o(e){t.setWidth(s.startWidth+((void 0===e.screenX?e.touches[0].screenX:e.screenX)-s.startX)),!s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights()}function i(e){s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!1),s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights(),document.body.removeEventListener("mouseup",i),document.body.removeEventListener("mousemove",o),n.removeEventListener("touchmove",o),n.removeEventListener("touchend",i),s.table.element.classList.remove("tabulator-block-select"),s.table.options.persistence&&s.table.modExists("persistence",!0)&&s.table.modules.persistence.config.columns&&s.table.modules.persistence.save("columns"),s.table.options.columnResized.call(s.table,t.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!0),s.startX=void 0===e.screenX?e.touches[0].screenX:e.screenX,s.startWidth=t.getWidth(),document.body.addEventListener("mousemove",o),document.body.addEventListener("mouseup",i),n.addEventListener("touchmove",o,{passive:!0}),n.addEventListener("touchend",i)},Tabulator.prototype.registerModule("resizeColumns",ResizeColumns);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var ResizeRows = function ResizeRows(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startY = false;
- this.startHeight = false;
- this.handle = null;
- this.prevHandle = null;
-};
-
-ResizeRows.prototype.initializeRow = function (row) {
- var self = this,
- rowEl = row.getElement();
-
- var handle = document.createElement('div');
- handle.className = "tabulator-row-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-row-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- self.startRow = row;
- self._mouseDown(e, row, handle);
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var prevRow = self.table.rowManager.prevDisplayRow(row);
-
- if (prevRow) {
- self.startRow = prevRow;
- self._mouseDown(e, prevRow, prevHandle);
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- rowEl.appendChild(handle);
- rowEl.appendChild(prevHandle);
-};
-
-ResizeRows.prototype._mouseDown = function (e, row, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- row.setHeight(self.startHeight + ((typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY) - self.startY));
- }
-
- function mouseUp(e) {
-
- // //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = false;
- // }
-
- document.body.removeEventListener("mouseup", mouseMove);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- self.table.options.rowResized.call(this.table, row.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = true;
- // }
-
- self.startY = typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY;
- self.startHeight = row.getHeight();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
-
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
-};
-
-Tabulator.prototype.registerModule("resizeRows", ResizeRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var ResizeRows=function(e){this.table=e,this.startColumn=!1,this.startY=!1,this.startHeight=!1,this.handle=null,this.prevHandle=null};ResizeRows.prototype.initializeRow=function(e){var t=this,o=e.getElement(),s=document.createElement("div");s.className="tabulator-row-resize-handle";var n=document.createElement("div");n.className="tabulator-row-resize-handle prev",s.addEventListener("click",function(e){e.stopPropagation()});var a=function(o){t.startRow=e,t._mouseDown(o,e,s)};s.addEventListener("mousedown",a),s.addEventListener("touchstart",a,{passive:!0}),n.addEventListener("click",function(e){e.stopPropagation()});var r=function(o){var s=t.table.rowManager.prevDisplayRow(e);s&&(t.startRow=s,t._mouseDown(o,s,n))};n.addEventListener("mousedown",r),n.addEventListener("touchstart",r,{passive:!0}),o.appendChild(s),o.appendChild(n)},ResizeRows.prototype._mouseDown=function(e,t,o){function s(e){t.setHeight(a.startHeight+((void 0===e.screenY?e.touches[0].screenY:e.screenY)-a.startY))}function n(e){document.body.removeEventListener("mouseup",s),document.body.removeEventListener("mousemove",s),o.removeEventListener("touchmove",s),o.removeEventListener("touchend",n),a.table.element.classList.remove("tabulator-block-select"),a.table.options.rowResized.call(this.table,t.getComponent())}var a=this;a.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),a.startY=void 0===e.screenY?e.touches[0].screenY:e.screenY,a.startHeight=t.getHeight(),document.body.addEventListener("mousemove",s),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",s,{passive:!0}),o.addEventListener("touchend",n)},Tabulator.prototype.registerModule("resizeRows",ResizeRows);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var ResizeTable = function ResizeTable(table) {
- this.table = table; //hold Tabulator object
- this.binding = false;
- this.observer = false;
- this.containerObserver = false;
-
- this.tableHeight = 0;
- this.tableWidth = 0;
- this.containerHeight = 0;
- this.containerWidth = 0;
-
- this.autoResize = false;
-};
-
-ResizeTable.prototype.initialize = function (row) {
- var _this = this;
-
- var table = this.table,
- tableStyle;
-
- this.tableHeight = table.element.clientHeight;
- this.tableWidth = table.element.clientWidth;
-
- if (table.element.parentNode) {
- this.containerHeight = table.element.parentNode.clientHeight;
- this.containerWidth = table.element.parentNode.clientWidth;
- }
-
- if (typeof ResizeObserver !== "undefined" && table.rowManager.getRenderMode() === "virtual") {
-
- this.autoResize = true;
-
- this.observer = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this.tableHeight != nodeHeight || _this.tableWidth != nodeWidth) {
- _this.tableHeight = nodeHeight;
- _this.tableWidth = nodeWidth;
-
- if (table.element.parentNode) {
- _this.containerHeight = table.element.parentNode.clientHeight;
- _this.containerWidth = table.element.parentNode.clientWidth;
- }
-
- table.redraw();
- }
- }
- });
-
- this.observer.observe(table.element);
-
- tableStyle = window.getComputedStyle(table.element);
-
- if (this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue("max-height") || tableStyle.getPropertyValue("min-height"))) {
-
- this.containerObserver = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this.containerHeight != nodeHeight || _this.containerWidth != nodeWidth) {
- _this.containerHeight = nodeHeight;
- _this.containerWidth = nodeWidth;
- _this.tableHeight = table.element.clientHeight;
- _this.tableWidth = table.element.clientWidth;
-
- table.redraw();
- }
-
- table.redraw();
- }
- });
-
- this.containerObserver.observe(this.table.element.parentNode);
- }
- } else {
- this.binding = function () {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
- table.redraw();
- }
- };
-
- window.addEventListener("resize", this.binding);
- }
-};
-
-ResizeTable.prototype.clearBindings = function (row) {
- if (this.binding) {
- window.removeEventListener("resize", this.binding);
- }
-
- if (this.observer) {
- this.observer.unobserve(this.table.element);
- }
-
- if (this.containerObserver) {
- this.containerObserver.unobserve(this.table.element.parentNode);
- }
-};
-
-Tabulator.prototype.registerModule("resizeTable", ResizeTable);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var ResizeTable=function(e){this.table=e,this.binding=!1,this.observer=!1,this.containerObserver=!1,this.tableHeight=0,this.tableWidth=0,this.containerHeight=0,this.containerWidth=0,this.autoResize=!1};ResizeTable.prototype.initialize=function(e){var t,i=this,n=this.table;this.tableHeight=n.element.clientHeight,this.tableWidth=n.element.clientWidth,n.element.parentNode&&(this.containerHeight=n.element.parentNode.clientHeight,this.containerWidth=n.element.parentNode.clientWidth),"undefined"!=typeof ResizeObserver&&"virtual"===n.rowManager.getRenderMode()?(this.autoResize=!0,this.observer=new ResizeObserver(function(e){if(!n.browserMobile||n.browserMobile&&!n.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),r=Math.floor(e[0].contentRect.width);i.tableHeight==t&&i.tableWidth==r||(i.tableHeight=t,i.tableWidth=r,n.element.parentNode&&(i.containerHeight=n.element.parentNode.clientHeight,i.containerWidth=n.element.parentNode.clientWidth),n.redraw())}}),this.observer.observe(n.element),t=window.getComputedStyle(n.element),this.table.element.parentNode&&!this.table.rowManager.fixedHeight&&(t.getPropertyValue("max-height")||t.getPropertyValue("min-height"))&&(this.containerObserver=new ResizeObserver(function(e){if(!n.browserMobile||n.browserMobile&&!n.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),r=Math.floor(e[0].contentRect.width);i.containerHeight==t&&i.containerWidth==r||(i.containerHeight=t,i.containerWidth=r,i.tableHeight=n.element.clientHeight,i.tableWidth=n.element.clientWidth,n.redraw()),n.redraw()}}),this.containerObserver.observe(this.table.element.parentNode))):(this.binding=function(){(!n.browserMobile||n.browserMobile&&!n.modules.edit.currentCell)&&n.redraw()},window.addEventListener("resize",this.binding))},ResizeTable.prototype.clearBindings=function(e){this.binding&&window.removeEventListener("resize",this.binding),this.observer&&this.observer.unobserve(this.table.element),this.containerObserver&&this.containerObserver.unobserve(this.table.element.parentNode)},Tabulator.prototype.registerModule("resizeTable",ResizeTable);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var ResponsiveLayout = function ResponsiveLayout(table) {
- this.table = table; //hold Tabulator object
- this.columns = [];
- this.hiddenColumns = [];
- this.mode = "";
- this.index = 0;
- this.collapseFormatter = [];
- this.collapseStartOpen = true;
- this.collapseHandleColumn = false;
-};
-
-//generate resposive columns list
-ResponsiveLayout.prototype.initialize = function () {
- var self = this,
- columns = [];
-
- this.mode = this.table.options.responsiveLayout;
- this.collapseFormatter = this.table.options.responsiveLayoutCollapseFormatter || this.formatCollapsedData;
- this.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen;
- this.hiddenColumns = [];
-
- //detemine level of responsivity for each column
- this.table.columnManager.columnsByIndex.forEach(function (column, i) {
- if (column.modules.responsive) {
- if (column.modules.responsive.order && column.modules.responsive.visible) {
- column.modules.responsive.index = i;
- columns.push(column);
-
- if (!column.visible && self.mode === "collapse") {
- self.hiddenColumns.push(column);
- }
- }
- }
- });
-
- //sort list by responsivity
- columns = columns.reverse();
- columns = columns.sort(function (a, b) {
- var diff = b.modules.responsive.order - a.modules.responsive.order;
- return diff || b.modules.responsive.index - a.modules.responsive.index;
- });
-
- this.columns = columns;
-
- if (this.mode === "collapse") {
- this.generateCollapsedContent();
- }
-
- //assign collapse column
- for (var _iterator = this.table.columnManager.columnsByIndex, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
- var _ref;
-
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref = _i.value;
- }
-
- var col = _ref;
-
- if (col.definition.formatter == "responsiveCollapse") {
- this.collapseHandleColumn = col;
- break;
- }
- }
-
- if (this.collapseHandleColumn) {
- if (this.hiddenColumns.length) {
- this.collapseHandleColumn.show();
- } else {
- this.collapseHandleColumn.hide();
- }
- }
-};
-
-//define layout information
-ResponsiveLayout.prototype.initializeColumn = function (column) {
- var def = column.getDefinition();
-
- column.modules.responsive = { order: typeof def.responsive === "undefined" ? 1 : def.responsive, visible: def.visible === false ? false : true };
-};
-
-ResponsiveLayout.prototype.initializeRow = function (row) {
- var el;
-
- if (row.type !== "calc") {
- el = document.createElement("div");
- el.classList.add("tabulator-responsive-collapse");
-
- row.modules.responsiveLayout = {
- element: el,
- open: this.collapseStartOpen
- };
-
- if (!this.collapseStartOpen) {
- el.style.display = 'none';
- }
- }
-};
-
-ResponsiveLayout.prototype.layoutRow = function (row) {
- var rowEl = row.getElement();
-
- if (row.modules.responsiveLayout) {
- rowEl.appendChild(row.modules.responsiveLayout.element);
- this.generateCollapsedRowContent(row);
- }
-};
-
-//update column visibility
-ResponsiveLayout.prototype.updateColumnVisibility = function (column, visible) {
- var index;
- if (column.modules.responsive) {
- column.modules.responsive.visible = visible;
- this.initialize();
- }
-};
-
-ResponsiveLayout.prototype.hideColumn = function (column) {
- var colCount = this.hiddenColumns.length;
-
- column.hide(false, true);
-
- if (this.mode === "collapse") {
- this.hiddenColumns.unshift(column);
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !colCount) {
- this.collapseHandleColumn.show();
- }
- }
-};
-
-ResponsiveLayout.prototype.showColumn = function (column) {
- var index;
-
- column.show(false, true);
- //set column width to prevent calculation loops on uninitialized columns
- column.setWidth(column.getWidth());
-
- if (this.mode === "collapse") {
- index = this.hiddenColumns.indexOf(column);
-
- if (index > -1) {
- this.hiddenColumns.splice(index, 1);
- }
-
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !this.hiddenColumns.length) {
- this.collapseHandleColumn.hide();
- }
- }
-};
-
-//redraw columns to fit space
-ResponsiveLayout.prototype.update = function () {
- var self = this,
- working = true;
-
- while (working) {
-
- var width = self.table.modules.layout.getMode() == "fitColumns" ? self.table.columnManager.getFlexBaseWidth() : self.table.columnManager.getWidth();
-
- var diff = (self.table.options.headerVisible ? self.table.columnManager.element.clientWidth : self.table.element.clientWidth) - width;
-
- if (diff < 0) {
- //table is too wide
- var column = self.columns[self.index];
-
- if (column) {
- self.hideColumn(column);
- self.index++;
- } else {
- working = false;
- }
- } else {
-
- //table has spare space
- var _column = self.columns[self.index - 1];
-
- if (_column) {
- if (diff > 0) {
- if (diff >= _column.getWidth()) {
- self.showColumn(_column);
- self.index--;
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- }
-
- if (!self.table.rowManager.activeRowsCount) {
- self.table.rowManager.renderEmptyScroll();
- }
- }
-};
-
-ResponsiveLayout.prototype.generateCollapsedContent = function () {
- var self = this,
- rows = this.table.rowManager.getDisplayRows();
-
- rows.forEach(function (row) {
- self.generateCollapsedRowContent(row);
- });
-};
-
-ResponsiveLayout.prototype.generateCollapsedRowContent = function (row) {
- var el, contents;
-
- if (row.modules.responsiveLayout) {
- el = row.modules.responsiveLayout.element;
-
- while (el.firstChild) {
- el.removeChild(el.firstChild);
- }contents = this.collapseFormatter(this.generateCollapsedRowData(row));
- if (contents) {
- el.appendChild(contents);
- }
- }
-};
-
-ResponsiveLayout.prototype.generateCollapsedRowData = function (row) {
- var self = this,
- data = row.getData(),
- output = [],
- mockCellComponent;
-
- this.hiddenColumns.forEach(function (column) {
- var value = column.getFieldValue(data);
-
- if (column.definition.title && column.field) {
- if (column.modules.format && self.table.options.responsiveLayoutCollapseUseFormatters) {
-
- mockCellComponent = {
- value: false,
- data: {},
- getValue: function getValue() {
- return value;
- },
- getData: function getData() {
- return data;
- },
- getElement: function getElement() {
- return document.createElement("div");
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getColumn: function getColumn() {
- return column.getComponent();
- }
- };
-
- output.push({
- title: column.definition.title,
- value: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params)
- });
- } else {
- output.push({
- title: column.definition.title,
- value: value
- });
- }
- }
- });
-
- return output;
-};
-
-ResponsiveLayout.prototype.formatCollapsedData = function (data) {
- var list = document.createElement("table"),
- listContents = "";
-
- data.forEach(function (item) {
- var div = document.createElement("div");
-
- if (item.value instanceof Node) {
- div.appendChild(item.value);
- item.value = div.innerHTML;
- }
-
- listContents += "<tr><td><strong>" + item.title + "</strong></td><td>" + item.value + "</td></tr>";
- });
-
- list.innerHTML = listContents;
-
- return Object.keys(data).length ? list : "";
-};
-
-Tabulator.prototype.registerModule("responsiveLayout", ResponsiveLayout);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var ResponsiveLayout=function(e){this.table=e,this.columns=[],this.hiddenColumns=[],this.mode="",this.index=0,this.collapseFormatter=[],this.collapseStartOpen=!0,this.collapseHandleColumn=!1};ResponsiveLayout.prototype.initialize=function(){var e=this,t=[];this.mode=this.table.options.responsiveLayout,this.collapseFormatter=this.table.options.responsiveLayoutCollapseFormatter||this.formatCollapsedData,this.collapseStartOpen=this.table.options.responsiveLayoutCollapseStartOpen,this.hiddenColumns=[],this.table.columnManager.columnsByIndex.forEach(function(o,n){o.modules.responsive&&o.modules.responsive.order&&o.modules.responsive.visible&&(o.modules.responsive.index=n,t.push(o),o.visible||"collapse"!==e.mode||e.hiddenColumns.push(o))}),t=t.reverse(),t=t.sort(function(e,t){return t.modules.responsive.order-e.modules.responsive.order||t.modules.responsive.index-e.modules.responsive.index}),this.columns=t,"collapse"===this.mode&&this.generateCollapsedContent();for(var o=this.table.columnManager.columnsByIndex,n=Array.isArray(o),s=0,o=n?o:o[Symbol.iterator]();;){var i;if(n){if(s>=o.length)break;i=o[s++]}else{if(s=o.next(),s.done)break;i=s.value}var l=i;if("responsiveCollapse"==l.definition.formatter){this.collapseHandleColumn=l;break}}this.collapseHandleColumn&&(this.hiddenColumns.length?this.collapseHandleColumn.show():this.collapseHandleColumn.hide())},ResponsiveLayout.prototype.initializeColumn=function(e){var t=e.getDefinition();e.modules.responsive={order:void 0===t.responsive?1:t.responsive,visible:!1!==t.visible}},ResponsiveLayout.prototype.initializeRow=function(e){var t;"calc"!==e.type&&(t=document.createElement("div"),t.classList.add("tabulator-responsive-collapse"),e.modules.responsiveLayout={element:t,open:this.collapseStartOpen},this.collapseStartOpen||(t.style.display="none"))},ResponsiveLayout.prototype.layoutRow=function(e){var t=e.getElement();e.modules.responsiveLayout&&(t.appendChild(e.modules.responsiveLayout.element),this.generateCollapsedRowContent(e))},ResponsiveLayout.prototype.updateColumnVisibility=function(e,t){e.modules.responsive&&(e.modules.responsive.visible=t,this.initialize())},ResponsiveLayout.prototype.hideColumn=function(e){var t=this.hiddenColumns.length;e.hide(!1,!0),"collapse"===this.mode&&(this.hiddenColumns.unshift(e),this.generateCollapsedContent(),this.collapseHandleColumn&&!t&&this.collapseHandleColumn.show())},ResponsiveLayout.prototype.showColumn=function(e){var t;e.show(!1,!0),e.setWidth(e.getWidth()),"collapse"===this.mode&&(t=this.hiddenColumns.indexOf(e),t>-1&&this.hiddenColumns.splice(t,1),this.generateCollapsedContent(),this.collapseHandleColumn&&!this.hiddenColumns.length&&this.collapseHandleColumn.hide())},ResponsiveLayout.prototype.update=function(){for(var e=this,t=!0;t;){var o="fitColumns"==e.table.modules.layout.getMode()?e.table.columnManager.getFlexBaseWidth():e.table.columnManager.getWidth(),n=(e.table.options.headerVisible?e.table.columnManager.element.clientWidth:e.table.element.clientWidth)-o;if(n<0){var s=e.columns[e.index];s?(e.hideColumn(s),e.index++):t=!1}else{var i=e.columns[e.index-1];i&&n>0&&n>=i.getWidth()?(e.showColumn(i),e.index--):t=!1}e.table.rowManager.activeRowsCount||e.table.rowManager.renderEmptyScroll()}},ResponsiveLayout.prototype.generateCollapsedContent=function(){var e=this;this.table.rowManager.getDisplayRows().forEach(function(t){e.generateCollapsedRowContent(t)})},ResponsiveLayout.prototype.generateCollapsedRowContent=function(e){var t,o;if(e.modules.responsiveLayout){for(t=e.modules.responsiveLayout.element;t.firstChild;)t.removeChild(t.firstChild);o=this.collapseFormatter(this.generateCollapsedRowData(e)),o&&t.appendChild(o)}},ResponsiveLayout.prototype.generateCollapsedRowData=function(e){var t,o=this,n=e.getData(),s=[];return this.hiddenColumns.forEach(function(i){var l=i.getFieldValue(n);i.definition.title&&i.field&&(i.modules.format&&o.table.options.responsiveLayoutCollapseUseFormatters?(t={value:!1,data:{},getValue:function(){return l},getData:function(){return n},getElement:function(){return document.createElement("div")},getRow:function(){return e.getComponent()},getColumn:function(){return i.getComponent()}},s.push({title:i.definition.title,value:i.modules.format.formatter.call(o.table.modules.format,t,i.modules.format.params)})):s.push({title:i.definition.title,value:l}))}),s},ResponsiveLayout.prototype.formatCollapsedData=function(e){var t=document.createElement("table"),o="";return e.forEach(function(e){var t=document.createElement("div");e.value instanceof Node&&(t.appendChild(e.value),e.value=t.innerHTML),o+="<tr><td><strong>"+e.title+"</strong></td><td>"+e.value+"</td></tr>"}),t.innerHTML=o,Object.keys(e).length?t:""},Tabulator.prototype.registerModule("responsiveLayout",ResponsiveLayout);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var SelectRow = function SelectRow(table) {
- this.table = table; //hold Tabulator object
- this.selecting = false; //flag selecting in progress
- this.lastClickedRow = false; //last clicked row
- this.selectPrev = []; //hold previously selected element for drag drop selection
- this.selectedRows = []; //hold selected rows
- this.headerCheckboxElement = null; // hold header select element
-};
-
-SelectRow.prototype.clearSelectionData = function (silent) {
- this.selecting = false;
- this.lastClickedRow = false;
- this.selectPrev = [];
- this.selectedRows = [];
-
- if (!silent) {
- this._rowSelectionChanged();
- }
-};
-
-SelectRow.prototype.initializeRow = function (row) {
- var self = this,
- element = row.getElement();
-
- // trigger end of row selection
- var endSelect = function endSelect() {
-
- setTimeout(function () {
- self.selecting = false;
- }, 50);
-
- document.body.removeEventListener("mouseup", endSelect);
- };
-
- row.modules.select = { selected: false };
-
- //set row selection class
- if (self.table.options.selectableCheck.call(this.table, row.getComponent())) {
- element.classList.add("tabulator-selectable");
- element.classList.remove("tabulator-unselectable");
-
- if (self.table.options.selectable && self.table.options.selectable != "highlight") {
- if (self.table.options.selectableRangeMode === "click") {
- element.addEventListener("click", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
- self.lastClickedRow = self.lastClickedRow || row;
-
- var lastClickedRowIdx = self.table.rowManager.getDisplayRowIndex(self.lastClickedRow);
- var rowIdx = self.table.rowManager.getDisplayRowIndex(row);
-
- var fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx;
- var toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx;
-
- var rows = self.table.rowManager.getDisplayRows().slice(0);
- var toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1);
-
- if (e.ctrlKey || e.metaKey) {
- toggledRows.forEach(function (toggledRow) {
- if (toggledRow !== self.lastClickedRow) {
-
- if (self.table.options.selectable !== true && !self.isRowSelected(row)) {
- if (self.selectedRows.length < self.table.options.selectable) {
- self.toggleRow(toggledRow);
- }
- } else {
- self.toggleRow(toggledRow);
- }
- }
- });
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
-
- if (self.table.options.selectable !== true) {
- if (toggledRows.length > self.table.options.selectable) {
- toggledRows = toggledRows.slice(0, self.table.options.selectable);
- }
- }
-
- self.selectRows(toggledRows);
- }
- self.table._clearSelection();
- } else if (e.ctrlKey || e.metaKey) {
- self.toggleRow(row);
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
- self.selectRows(row);
- self.lastClickedRow = row;
- }
- });
- } else {
- element.addEventListener("click", function (e) {
- if (!self.table.modExists("edit") || !self.table.modules.edit.getCurrentCell()) {
- self.table._clearSelection();
- }
-
- if (!self.selecting) {
- self.toggleRow(row);
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
-
- self.selecting = true;
-
- self.selectPrev = [];
-
- document.body.addEventListener("mouseup", endSelect);
- document.body.addEventListener("keyup", endSelect);
-
- self.toggleRow(row);
-
- return false;
- }
- });
-
- element.addEventListener("mouseenter", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.toggleRow(row);
-
- if (self.selectPrev[1] == row) {
- self.toggleRow(self.selectPrev[0]);
- }
- }
- });
-
- element.addEventListener("mouseout", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.selectPrev.unshift(row);
- }
- });
- }
- }
- } else {
- element.classList.add("tabulator-unselectable");
- element.classList.remove("tabulator-selectable");
- }
-};
-
-//toggle row selection
-SelectRow.prototype.toggleRow = function (row) {
- if (this.table.options.selectableCheck.call(this.table, row.getComponent())) {
- if (row.modules.select && row.modules.select.selected) {
- this._deselectRow(row);
- } else {
- this._selectRow(row);
- }
- }
-};
-
-//select a number of rows
-SelectRow.prototype.selectRows = function (rows) {
- var _this = this;
-
- var rowMatch;
-
- switch (typeof rows === "undefined" ? "undefined" : _typeof(rows)) {
- case "undefined":
- this.table.rowManager.rows.forEach(function (row) {
- _this._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- break;
-
- case "string":
-
- rowMatch = this.table.rowManager.findRow(rows);
-
- if (rowMatch) {
- this._selectRow(rowMatch, true, true);
- } else {
- this.table.rowManager.getRows(rows).forEach(function (row) {
- _this._selectRow(row, true, true);
- });
- }
-
- this._rowSelectionChanged();
- break;
-
- default:
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- _this._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- } else {
- this._selectRow(rows, false, true);
- }
- break;
- }
-};
-
-//select an individual row
-SelectRow.prototype._selectRow = function (rowInfo, silent, force) {
- var index;
-
- //handle max row count
- if (!isNaN(this.table.options.selectable) && this.table.options.selectable !== true && !force) {
- if (this.selectedRows.length >= this.table.options.selectable) {
- if (this.table.options.selectableRollingSelection) {
- this._deselectRow(this.selectedRows[0]);
- } else {
- return false;
- }
- }
- }
-
- var row = this.table.rowManager.findRow(rowInfo);
-
- if (row) {
- if (this.selectedRows.indexOf(row) == -1) {
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = true;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = true;
- }
- row.getElement().classList.add("tabulator-selected");
-
- this.selectedRows.push(row);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, true);
- }
-
- if (!silent) {
- this.table.options.rowSelected.call(this.table, row.getComponent());
- }
-
- this._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Selection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
-};
-
-SelectRow.prototype.isRowSelected = function (row) {
- return this.selectedRows.indexOf(row) !== -1;
-};
-
-//deselect a number of rows
-SelectRow.prototype.deselectRows = function (rows, silent) {
- var self = this,
- rowCount;
-
- if (typeof rows == "undefined") {
-
- rowCount = self.selectedRows.length;
-
- for (var i = 0; i < rowCount; i++) {
- self._deselectRow(self.selectedRows[0], true);
- }
-
- self._rowSelectionChanged(silent);
- } else {
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- self._deselectRow(row, true);
- });
-
- self._rowSelectionChanged(silent);
- } else {
- self._deselectRow(rows, silent);
- }
- }
-};
-
-//deselect an individual row
-SelectRow.prototype._deselectRow = function (rowInfo, silent) {
- var self = this,
- row = self.table.rowManager.findRow(rowInfo),
- index;
-
- if (row) {
- index = self.selectedRows.findIndex(function (selectedRow) {
- return selectedRow == row;
- });
-
- if (index > -1) {
-
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = false;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = false;
- }
- row.getElement().classList.remove("tabulator-selected");
- self.selectedRows.splice(index, 1);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, false);
- }
-
- if (!silent) {
- self.table.options.rowDeselected.call(this.table, row.getComponent());
- }
-
- self._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Deselection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
-};
-
-SelectRow.prototype.getSelectedData = function () {
- var data = [];
-
- this.selectedRows.forEach(function (row) {
- data.push(row.getData());
- });
-
- return data;
-};
-
-SelectRow.prototype.getSelectedRows = function () {
-
- var rows = [];
-
- this.selectedRows.forEach(function (row) {
- rows.push(row.getComponent());
- });
-
- return rows;
-};
-
-SelectRow.prototype._rowSelectionChanged = function (silent) {
- if (this.headerCheckboxElement) {
- if (this.selectedRows.length === 0) {
- this.headerCheckboxElement.checked = false;
- this.headerCheckboxElement.indeterminate = false;
- } else if (this.table.rowManager.rows.length === this.selectedRows.length) {
- this.headerCheckboxElement.checked = true;
- this.headerCheckboxElement.indeterminate = false;
- } else {
- this.headerCheckboxElement.indeterminate = true;
- this.headerCheckboxElement.checked = false;
- }
- }
-
- if (!silent) {
- this.table.options.rowSelectionChanged.call(this.table, this.getSelectedData(), this.getSelectedRows());
- }
-};
-
-SelectRow.prototype.registerRowSelectCheckbox = function (row, element) {
- if (!row._row.modules.select) {
- row._row.modules.select = {};
- }
-
- row._row.modules.select.checkboxEl = element;
-};
-
-SelectRow.prototype.registerHeaderSelectCheckbox = function (element) {
- this.headerCheckboxElement = element;
-};
-
-SelectRow.prototype.childRowSelection = function (row, select) {
- var children = this.table.modules.dataTree.getChildren(row);
-
- if (select) {
- for (var _iterator = children, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
- var _ref;
-
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref = _i.value;
- }
-
- var child = _ref;
-
- this._selectRow(child, true);
- }
- } else {
- for (var _iterator2 = children, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
- var _ref2;
-
- if (_isArray2) {
- if (_i2 >= _iterator2.length) break;
- _ref2 = _iterator2[_i2++];
- } else {
- _i2 = _iterator2.next();
- if (_i2.done) break;
- _ref2 = _i2.value;
- }
-
- var _child = _ref2;
-
- this._deselectRow(_child, true);
- }
- }
-};
-
-Tabulator.prototype.registerModule("selectRow", SelectRow);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},SelectRow=function(e){this.table=e,this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],this.headerCheckboxElement=null};SelectRow.prototype.clearSelectionData=function(e){this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],e||this._rowSelectionChanged()},SelectRow.prototype.initializeRow=function(e){var t=this,o=e.getElement(),l=function e(){setTimeout(function(){t.selecting=!1},50),document.body.removeEventListener("mouseup",e)};e.modules.select={selected:!1},t.table.options.selectableCheck.call(this.table,e.getComponent())?(o.classList.add("tabulator-selectable"),o.classList.remove("tabulator-unselectable"),t.table.options.selectable&&"highlight"!=t.table.options.selectable&&("click"===t.table.options.selectableRangeMode?o.addEventListener("click",function(o){if(o.shiftKey){t.table._clearSelection(),t.lastClickedRow=t.lastClickedRow||e;var l=t.table.rowManager.getDisplayRowIndex(t.lastClickedRow),s=t.table.rowManager.getDisplayRowIndex(e),c=l<=s?l:s,i=l>=s?l:s,n=t.table.rowManager.getDisplayRows().slice(0),a=n.splice(c,i-c+1);o.ctrlKey||o.metaKey?(a.forEach(function(o){o!==t.lastClickedRow&&(!0===t.table.options.selectable||t.isRowSelected(e)?t.toggleRow(o):t.selectedRows.length<t.table.options.selectable&&t.toggleRow(o))}),t.lastClickedRow=e):(t.deselectRows(void 0,!0),!0!==t.table.options.selectable&&a.length>t.table.options.selectable&&(a=a.slice(0,t.table.options.selectable)),t.selectRows(a)),t.table._clearSelection()}else o.ctrlKey||o.metaKey?(t.toggleRow(e),t.lastClickedRow=e):(t.deselectRows(void 0,!0),t.selectRows(e),t.lastClickedRow=e)}):(o.addEventListener("click",function(o){t.table.modExists("edit")&&t.table.modules.edit.getCurrentCell()||t.table._clearSelection(),t.selecting||t.toggleRow(e)}),o.addEventListener("mousedown",function(o){if(o.shiftKey)return t.table._clearSelection(),t.selecting=!0,t.selectPrev=[],document.body.addEventListener("mouseup",l),document.body.addEventListener("keyup",l),t.toggleRow(e),!1}),o.addEventListener("mouseenter",function(o){t.selecting&&(t.table._clearSelection(),t.toggleRow(e),t.selectPrev[1]==e&&t.toggleRow(t.selectPrev[0]))}),o.addEventListener("mouseout",function(o){t.selecting&&(t.table._clearSelection(),t.selectPrev.unshift(e))})))):(o.classList.add("tabulator-unselectable"),o.classList.remove("tabulator-selectable"))},SelectRow.prototype.toggleRow=function(e){this.table.options.selectableCheck.call(this.table,e.getComponent())&&(e.modules.select&&e.modules.select.selected?this._deselectRow(e):this._selectRow(e))},SelectRow.prototype.selectRows=function(e){var t,o=this;switch(void 0===e?"undefined":_typeof(e)){case"undefined":this.table.rowManager.rows.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;case"string":t=this.table.rowManager.findRow(e),t?this._selectRow(t,!0,!0):this.table.rowManager.getRows(e).forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;default:Array.isArray(e)?(e.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged()):this._selectRow(e,!1,!0)}},SelectRow.prototype._selectRow=function(e,t,o){if(!isNaN(this.table.options.selectable)&&!0!==this.table.options.selectable&&!o&&this.selectedRows.length>=this.table.options.selectable){if(!this.table.options.selectableRollingSelection)return!1;this._deselectRow(this.selectedRows[0])}var l=this.table.rowManager.findRow(e);l?-1==this.selectedRows.indexOf(l)&&(l.modules.select||(l.modules.select={}),l.modules.select.selected=!0,l.modules.select.checkboxEl&&(l.modules.select.checkboxEl.checked=!0),l.getElement().classList.add("tabulator-selected"),this.selectedRows.push(l),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(l,!0),t||this.table.options.rowSelected.call(this.table,l.getComponent()),this._rowSelectionChanged(t)):t||console.warn("Selection Error - No such row found, ignoring selection:"+e)},SelectRow.prototype.isRowSelected=function(e){return-1!==this.selectedRows.indexOf(e)},SelectRow.prototype.deselectRows=function(e,t){var o,l=this;if(void 0===e){o=l.selectedRows.length;for(var s=0;s<o;s++)l._deselectRow(l.selectedRows[0],!0);l._rowSelectionChanged(t)}else Array.isArray(e)?(e.forEach(function(e){l._deselectRow(e,!0)}),l._rowSelectionChanged(t)):l._deselectRow(e,t)},SelectRow.prototype._deselectRow=function(e,t){var o,l=this,s=l.table.rowManager.findRow(e);s?(o=l.selectedRows.findIndex(function(e){return e==s}))>-1&&(s.modules.select||(s.modules.select={}),s.modules.select.selected=!1,s.modules.select.checkboxEl&&(s.modules.select.checkboxEl.checked=!1),s.getElement().classList.remove("tabulator-selected"),l.selectedRows.splice(o,1),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(s,!1),t||l.table.options.rowDeselected.call(this.table,s.getComponent()),l._rowSelectionChanged(t)):t||console.warn("Deselection Error - No such row found, ignoring selection:"+e)},SelectRow.prototype.getSelectedData=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getData())}),e},SelectRow.prototype.getSelectedRows=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getComponent())}),e},SelectRow.prototype._rowSelectionChanged=function(e){this.headerCheckboxElement&&(0===this.selectedRows.length?(this.headerCheckboxElement.checked=!1,this.headerCheckboxElement.indeterminate=!1):this.table.rowManager.rows.length===this.selectedRows.length?(this.headerCheckboxElement.checked=!0,this.headerCheckboxElement.indeterminate=!1):(this.headerCheckboxElement.indeterminate=!0,this.headerCheckboxElement.checked=!1)),e||this.table.options.rowSelectionChanged.call(this.table,this.getSelectedData(),this.getSelectedRows())},SelectRow.prototype.registerRowSelectCheckbox=function(e,t){e._row.modules.select||(e._row.modules.select={}),e._row.modules.select.checkboxEl=t},SelectRow.prototype.registerHeaderSelectCheckbox=function(e){this.headerCheckboxElement=e},SelectRow.prototype.childRowSelection=function(e,t){var o=this.table.modules.dataTree.getChildren(e);if(t)for(var l=o,s=Array.isArray(l),c=0,l=s?l:l[Symbol.iterator]();;){var i;if(s){if(c>=l.length)break;i=l[c++]}else{if(c=l.next(),c.done)break;i=c.value}var n=i;this._selectRow(n,!0)}else for(var a=o,r=Array.isArray(a),d=0,a=r?a:a[Symbol.iterator]();;){var h;if(r){if(d>=a.length)break;h=a[d++]}else{if(d=a.next(),d.done)break;h=d.value}var w=h;this._deselectRow(w,!0)}},Tabulator.prototype.registerModule("selectRow",SelectRow);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Sort = function Sort(table) {
- this.table = table; //hold Tabulator object
- this.sortList = []; //holder current sort
- this.changed = false; //has the sort changed since last render
-};
-
-//initialize column header for sorting
-Sort.prototype.initializeColumn = function (column, content) {
- var self = this,
- sorter = false,
- colEl,
- arrowEl;
-
- switch (_typeof(column.definition.sorter)) {
- case "string":
- if (self.sorters[column.definition.sorter]) {
- sorter = self.sorters[column.definition.sorter];
- } else {
- console.warn("Sort Error - No such sorter found: ", column.definition.sorter);
- }
- break;
-
- case "function":
- sorter = column.definition.sorter;
- break;
- }
-
- column.modules.sort = {
- sorter: sorter, dir: "none",
- params: column.definition.sorterParams || {},
- startingDir: column.definition.headerSortStartingDir || "asc",
- tristate: typeof column.definition.headerSortTristate !== "undefined" ? column.definition.headerSortTristate : this.table.options.headerSortTristate
- };
-
- if (typeof column.definition.headerSort === "undefined" ? this.table.options.headerSort !== false : column.definition.headerSort !== false) {
-
- colEl = column.getElement();
-
- colEl.classList.add("tabulator-sortable");
-
- arrowEl = document.createElement("div");
- arrowEl.classList.add("tabulator-arrow");
- //create sorter arrow
- content.appendChild(arrowEl);
-
- //sort on click
- colEl.addEventListener("click", function (e) {
- var dir = "",
- sorters = [],
- match = false;
-
- if (column.modules.sort) {
- if (column.modules.sort.tristate) {
- if (column.modules.sort.dir == "none") {
- dir = column.modules.sort.startingDir;
- } else {
- if (column.modules.sort.dir == column.modules.sort.startingDir) {
- dir = column.modules.sort.dir == "asc" ? "desc" : "asc";
- } else {
- dir = "none";
- }
- }
- } else {
- switch (column.modules.sort.dir) {
- case "asc":
- dir = "desc";
- break;
-
- case "desc":
- dir = "asc";
- break;
-
- default:
- dir = column.modules.sort.startingDir;
- }
- }
-
- if (self.table.options.columnHeaderSortMulti && (e.shiftKey || e.ctrlKey)) {
- sorters = self.getSort();
-
- match = sorters.findIndex(function (sorter) {
- return sorter.field === column.getField();
- });
-
- if (match > -1) {
- sorters[match].dir = dir;
-
- if (match != sorters.length - 1) {
- match = sorters.splice(match, 1)[0];
- if (dir != "none") {
- sorters.push(match);
- }
- }
- } else {
- if (dir != "none") {
- sorters.push({ column: column, dir: dir });
- }
- }
-
- //add to existing sort
- self.setSort(sorters);
- } else {
- if (dir == "none") {
- self.clear();
- } else {
- //sort by column only
- self.setSort(column, dir);
- }
- }
-
- self.table.rowManager.sorterRefresh(!self.sortList.length);
- }
- });
- }
-};
-
-//check if the sorters have changed since last use
-Sort.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
-};
-
-//return current sorters
-Sort.prototype.getSort = function () {
- var self = this,
- sorters = [];
-
- self.sortList.forEach(function (item) {
- if (item.column) {
- sorters.push({ column: item.column.getComponent(), field: item.column.getField(), dir: item.dir });
- }
- });
-
- return sorters;
-};
-
-//change sort list and trigger sort
-Sort.prototype.setSort = function (sortList, dir) {
- var self = this,
- newSortList = [];
-
- if (!Array.isArray(sortList)) {
- sortList = [{ column: sortList, dir: dir }];
- }
-
- sortList.forEach(function (item) {
- var column;
-
- column = self.table.columnManager.findColumn(item.column);
-
- if (column) {
- item.column = column;
- newSortList.push(item);
- self.changed = true;
- } else {
- console.warn("Sort Warning - Sort field does not exist and is being ignored: ", item.column);
- }
- });
-
- self.sortList = newSortList;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.sort) {
- this.table.modules.persistence.save("sort");
- }
-};
-
-//clear sorters
-Sort.prototype.clear = function () {
- this.setSort([]);
-};
-
-//find appropriate sorter for column
-Sort.prototype.findSorter = function (column) {
- var row = this.table.rowManager.activeRows[0],
- sorter = "string",
- field,
- value;
-
- if (row) {
- row = row.getData();
- field = column.getField();
-
- if (field) {
-
- value = column.getFieldValue(row);
-
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "undefined":
- sorter = "string";
- break;
-
- case "boolean":
- sorter = "boolean";
- break;
-
- default:
- if (!isNaN(value) && value !== "") {
- sorter = "number";
- } else {
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
- sorter = "alphanum";
- }
- }
- break;
- }
- }
- }
-
- return this.sorters[sorter];
-};
-
-//work through sort list sorting data
-Sort.prototype.sort = function (data) {
- var self = this,
- sortList = this.table.options.sortOrderReverse ? self.sortList.slice().reverse() : self.sortList,
- sortListActual = [],
- rowComponents = [],
- lastSort;
-
- if (self.table.options.dataSorting) {
- self.table.options.dataSorting.call(self.table, self.getSort());
- }
-
- self.clearColumnHeaders();
-
- if (!self.table.options.ajaxSorting) {
-
- //build list of valid sorters and trigger column specific callbacks before sort begins
- sortList.forEach(function (item, i) {
- var sortObj = item.column.modules.sort;
-
- if (item.column && sortObj) {
-
- //if no sorter has been defined, take a guess
- if (!sortObj.sorter) {
- sortObj.sorter = self.findSorter(item.column);
- }
-
- item.params = typeof sortObj.params === "function" ? sortObj.params(item.column.getComponent(), item.dir) : sortObj.params;
-
- sortListActual.push(item);
- }
-
- self.setColumnHeader(item.column, item.dir);
- });
-
- //sort data
- if (sortListActual.length) {
- self._sortItems(data, sortListActual);
- }
- } else {
- sortList.forEach(function (item, i) {
- self.setColumnHeader(item.column, item.dir);
- });
- }
-
- if (self.table.options.dataSorted) {
- data.forEach(function (row) {
- rowComponents.push(row.getComponent());
- });
-
- self.table.options.dataSorted.call(self.table, self.getSort(), rowComponents);
- }
-};
-
-//clear sort arrows on columns
-Sort.prototype.clearColumnHeaders = function () {
- this.table.columnManager.getRealColumns().forEach(function (column) {
- if (column.modules.sort) {
- column.modules.sort.dir = "none";
- column.getElement().setAttribute("aria-sort", "none");
- }
- });
-};
-
-//set the column header sort direction
-Sort.prototype.setColumnHeader = function (column, dir) {
- column.modules.sort.dir = dir;
- column.getElement().setAttribute("aria-sort", dir);
-};
-
-//sort each item in sort list
-Sort.prototype._sortItems = function (data, sortList) {
- var _this = this;
-
- var sorterCount = sortList.length - 1;
-
- data.sort(function (a, b) {
- var result;
-
- for (var i = sorterCount; i >= 0; i--) {
- var sortItem = sortList[i];
-
- result = _this._sortRow(a, b, sortItem.column, sortItem.dir, sortItem.params);
-
- if (result !== 0) {
- break;
- }
- }
-
- return result;
- });
-};
-
-//process individual rows for a sort function on active data
-Sort.prototype._sortRow = function (a, b, column, dir, params) {
- var el1Comp, el2Comp, colComp;
-
- //switch elements depending on search direction
- var el1 = dir == "asc" ? a : b;
- var el2 = dir == "asc" ? b : a;
-
- a = column.getFieldValue(el1.getData());
- b = column.getFieldValue(el2.getData());
-
- a = typeof a !== "undefined" ? a : "";
- b = typeof b !== "undefined" ? b : "";
-
- el1Comp = el1.getComponent();
- el2Comp = el2.getComponent();
-
- return column.modules.sort.sorter.call(this, a, b, el1Comp, el2Comp, column.getComponent(), dir, params);
-};
-
-//default data sorters
-Sort.prototype.sorters = {
-
- //sort numbers
- number: function number(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var decimal = params.decimalSeparator || ".";
- var thousand = params.thousandSeparator || ",";
- var emptyAlign = 0;
-
- a = parseFloat(String(a).split(thousand).join("").split(decimal).join("."));
- b = parseFloat(String(b).split(thousand).join("").split(decimal).join("."));
-
- //handle non numeric values
- if (isNaN(a)) {
- emptyAlign = isNaN(b) ? 0 : -1;
- } else if (isNaN(b)) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort strings
- string: function string(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
- var locale;
-
- //handle empty values
- if (!a) {
- emptyAlign = !b ? 0 : -1;
- } else if (!b) {
- emptyAlign = 1;
- } else {
- //compare valid values
- switch (_typeof(params.locale)) {
- case "boolean":
- if (params.locale) {
- locale = this.table.modules.localize.getLocale();
- }
- break;
- case "string":
- locale = params.locale;
- break;
- }
-
- return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort date
- date: function date(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "DD/MM/YYYY";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort HH:mm formatted times
- time: function time(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "HH:mm";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort datetime
- datetime: function datetime(a, b, aRow, bRow, column, dir, params) {
- var format = params.format || "DD/MM/YYYY HH:mm:ss",
- alignEmptyValues = params.alignEmptyValues,
- emptyAlign = 0;
-
- if (typeof moment != "undefined") {
- a = moment(a, format);
- b = moment(b, format);
-
- if (!a.isValid()) {
- emptyAlign = !b.isValid() ? 0 : -1;
- } else if (!b.isValid()) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- } else {
- console.error("Sort Error - 'datetime' sorter is dependant on moment.js");
- }
- },
-
- //sort booleans
- boolean: function boolean(a, b, aRow, bRow, column, dir, params) {
- var el1 = a === true || a === "true" || a === "True" || a === 1 ? 1 : 0;
- var el2 = b === true || b === "true" || b === "True" || b === 1 ? 1 : 0;
-
- return el1 - el2;
- },
-
- //sort if element contains any data
- array: function array(a, b, aRow, bRow, column, dir, params) {
- var el1 = 0;
- var el2 = 0;
- var type = params.type || "length";
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- function calc(value) {
-
- switch (type) {
- case "length":
- return value.length;
- break;
-
- case "sum":
- return value.reduce(function (c, d) {
- return c + d;
- });
- break;
-
- case "max":
- return Math.max.apply(null, value);
- break;
-
- case "min":
- return Math.min.apply(null, value);
- break;
-
- case "avg":
- return value.reduce(function (c, d) {
- return c + d;
- }) / value.length;
- break;
- }
- }
-
- //handle non array values
- if (!Array.isArray(a)) {
- alignEmptyValues = !Array.isArray(b) ? 0 : -1;
- } else if (!Array.isArray(b)) {
- alignEmptyValues = 1;
- } else {
-
- //compare valid values
- el1 = a ? calc(a) : 0;
- el2 = b ? calc(b) : 0;
-
- return el1 - el2;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort if element contains any data
- exists: function exists(a, b, aRow, bRow, column, dir, params) {
- var el1 = typeof a == "undefined" ? 0 : 1;
- var el2 = typeof b == "undefined" ? 0 : 1;
-
- return el1 - el2;
- },
-
- //sort alpha numeric strings
- alphanum: function alphanum(as, bs, aRow, bRow, column, dir, params) {
- var a,
- b,
- a1,
- b1,
- i = 0,
- L,
- rx = /(\d+)|(\D+)/g,
- rd = /\d/;
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- //handle empty values
- if (!as && as !== 0) {
- emptyAlign = !bs && bs !== 0 ? 0 : -1;
- } else if (!bs && bs !== 0) {
- emptyAlign = 1;
- } else {
-
- if (isFinite(as) && isFinite(bs)) return as - bs;
- a = String(as).toLowerCase();
- b = String(bs).toLowerCase();
- if (a === b) return 0;
- if (!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;
- a = a.match(rx);
- b = b.match(rx);
- L = a.length > b.length ? b.length : a.length;
- while (i < L) {
- a1 = a[i];
- b1 = b[i++];
- if (a1 !== b1) {
- if (isFinite(a1) && isFinite(b1)) {
- if (a1.charAt(0) === "0") a1 = "." + a1;
- if (b1.charAt(0) === "0") b1 = "." + b1;
- return a1 - b1;
- } else return a1 > b1 ? 1 : -1;
- }
- }
-
- return a.length > b.length;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- }
-};
-
-Tabulator.prototype.registerModule("sort", Sort);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sort=function(t){this.table=t,this.sortList=[],this.changed=!1};Sort.prototype.initializeColumn=function(t,e){var r,o,n=this,i=!1;switch(_typeof(t.definition.sorter)){case"string":n.sorters[t.definition.sorter]?i=n.sorters[t.definition.sorter]:console.warn("Sort Error - No such sorter found: ",t.definition.sorter);break;case"function":i=t.definition.sorter}t.modules.sort={sorter:i,dir:"none",params:t.definition.sorterParams||{},startingDir:t.definition.headerSortStartingDir||"asc",tristate:void 0!==t.definition.headerSortTristate?t.definition.headerSortTristate:this.table.options.headerSortTristate},(void 0===t.definition.headerSort?!1!==this.table.options.headerSort:!1!==t.definition.headerSort)&&(r=t.getElement(),r.classList.add("tabulator-sortable"),o=document.createElement("div"),o.classList.add("tabulator-arrow"),e.appendChild(o),r.addEventListener("click",function(e){var r="",o=[],i=!1;if(t.modules.sort){if(t.modules.sort.tristate)r="none"==t.modules.sort.dir?t.modules.sort.startingDir:t.modules.sort.dir==t.modules.sort.startingDir?"asc"==t.modules.sort.dir?"desc":"asc":"none";else switch(t.modules.sort.dir){case"asc":r="desc";break;case"desc":r="asc";break;default:r=t.modules.sort.startingDir}n.table.options.columnHeaderSortMulti&&(e.shiftKey||e.ctrlKey)?(o=n.getSort(),i=o.findIndex(function(e){return e.field===t.getField()}),i>-1?(o[i].dir=r,i!=o.length-1&&(i=o.splice(i,1)[0],"none"!=r&&o.push(i))):"none"!=r&&o.push({column:t,dir:r}),n.setSort(o)):"none"==r?n.clear():n.setSort(t,r),n.table.rowManager.sorterRefresh(!n.sortList.length)}}))},Sort.prototype.hasChanged=function(){var t=this.changed;return this.changed=!1,t},Sort.prototype.getSort=function(){var t=this,e=[];return t.sortList.forEach(function(t){t.column&&e.push({column:t.column.getComponent(),field:t.column.getField(),dir:t.dir})}),e},Sort.prototype.setSort=function(t,e){var r=this,o=[];Array.isArray(t)||(t=[{column:t,dir:e}]),t.forEach(function(t){var e;e=r.table.columnManager.findColumn(t.column),e?(t.column=e,o.push(t),r.changed=!0):console.warn("Sort Warning - Sort field does not exist and is being ignored: ",t.column)}),r.sortList=o,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.sort&&this.table.modules.persistence.save("sort")},Sort.prototype.clear=function(){this.setSort([])},Sort.prototype.findSorter=function(t){var e,r=this.table.rowManager.activeRows[0],o="string";if(r&&(r=r.getData(),t.getField()))switch(e=t.getFieldValue(r),void 0===e?"undefined":_typeof(e)){case"undefined":o="string";break;case"boolean":o="boolean";break;default:isNaN(e)||""===e?e.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)&&(o="alphanum"):o="number"}return this.sorters[o]},Sort.prototype.sort=function(t){var e=this,r=this.table.options.sortOrderReverse?e.sortList.slice().reverse():e.sortList,o=[],n=[];e.table.options.dataSorting&&e.table.options.dataSorting.call(e.table,e.getSort()),e.clearColumnHeaders(),e.table.options.ajaxSorting?r.forEach(function(t,r){e.setColumnHeader(t.column,t.dir)}):(r.forEach(function(t,r){var n=t.column.modules.sort;t.column&&n&&(n.sorter||(n.sorter=e.findSorter(t.column)),t.params="function"==typeof n.params?n.params(t.column.getComponent(),t.dir):n.params,o.push(t)),e.setColumnHeader(t.column,t.dir)}),o.length&&e._sortItems(t,o)),e.table.options.dataSorted&&(t.forEach(function(t){n.push(t.getComponent())}),e.table.options.dataSorted.call(e.table,e.getSort(),n))},Sort.prototype.clearColumnHeaders=function(){this.table.columnManager.getRealColumns().forEach(function(t){t.modules.sort&&(t.modules.sort.dir="none",t.getElement().setAttribute("aria-sort","none"))})},Sort.prototype.setColumnHeader=function(t,e){t.modules.sort.dir=e,t.getElement().setAttribute("aria-sort",e)},Sort.prototype._sortItems=function(t,e){var r=this,o=e.length-1;t.sort(function(t,n){for(var i,s=o;s>=0;s--){var a=e[s];if(0!==(i=r._sortRow(t,n,a.column,a.dir,a.params)))break}return i})},Sort.prototype._sortRow=function(t,e,r,o,n){var i,s,a="asc"==o?t:e,l="asc"==o?e:t;return t=r.getFieldValue(a.getData()),e=r.getFieldValue(l.getData()),t=void 0!==t?t:"",e=void 0!==e?e:"",i=a.getComponent(),s=l.getComponent(),r.modules.sort.sorter.call(this,t,e,i,s,r.getComponent(),o,n)},Sort.prototype.sorters={number:function(t,e,r,o,n,i,s){var a=s.alignEmptyValues,l=s.decimalSeparator||".",u=s.thousandSeparator||",",c=0;if(t=parseFloat(String(t).split(u).join("").split(l).join(".")),e=parseFloat(String(e).split(u).join("").split(l).join(".")),isNaN(t))c=isNaN(e)?0:-1;else{if(!isNaN(e))return t-e;c=1}return("top"===a&&"desc"===i||"bottom"===a&&"asc"===i)&&(c*=-1),c},string:function(t,e,r,o,n,i,s){var a,l=s.alignEmptyValues,u=0;if(t){if(e){switch(_typeof(s.locale)){case"boolean":s.locale&&(a=this.table.modules.localize.getLocale());break;case"string":a=s.locale}return String(t).toLowerCase().localeCompare(String(e).toLowerCase(),a)}u=1}else u=e?-1:0;return("top"===l&&"desc"===i||"bottom"===l&&"asc"===i)&&(u*=-1),u},date:function(t,e,r,o,n,i,s){return s.format||(s.format="DD/MM/YYYY"),this.sorters.datetime.call(this,t,e,r,o,n,i,s)},time:function(t,e,r,o,n,i,s){return s.format||(s.format="HH:mm"),this.sorters.datetime.call(this,t,e,r,o,n,i,s)},datetime:function(t,e,r,o,n,i,s){var a=s.format||"DD/MM/YYYY HH:mm:ss",l=s.alignEmptyValues,u=0;if("undefined"!=typeof moment){if(t=moment(t,a),e=moment(e,a),t.isValid()){if(e.isValid())return t-e;u=1}else u=e.isValid()?-1:0;return("top"===l&&"desc"===i||"bottom"===l&&"asc"===i)&&(u*=-1),u}console.error("Sort Error - 'datetime' sorter is dependant on moment.js")},boolean:function(t,e,r,o,n,i,s){return(!0===t||"true"===t||"True"===t||1===t?1:0)-(!0===e||"true"===e||"True"===e||1===e?1:0)},array:function(t,e,r,o,n,i,s){function a(t){switch(c){case"length":return t.length;case"sum":return t.reduce(function(t,e){return t+e});case"max":return Math.max.apply(null,t);case"min":return Math.min.apply(null,t);case"avg":return t.reduce(function(t,e){return t+e})/t.length}}var l=0,u=0,c=s.type||"length",d=s.alignEmptyValues,m=0;if(Array.isArray(t)){if(Array.isArray(e))return l=t?a(t):0,u=e?a(e):0,l-u;d=1}else d=Array.isArray(e)?-1:0;return("top"===d&&"desc"===i||"bottom"===d&&"asc"===i)&&(m*=-1),m},exists:function(t,e,r,o,n,i,s){return(void 0===t?0:1)-(void 0===e?0:1)},alphanum:function(t,e,r,o,n,i,s){var a,l,u,c,d,m=0,f=/(\d+)|(\D+)/g,p=/\d/,h=s.alignEmptyValues,g=0;if(t||0===t){if(e||0===e){if(isFinite(t)&&isFinite(e))return t-e;if(a=String(t).toLowerCase(),l=String(e).toLowerCase(),a===l)return 0;if(!p.test(a)||!p.test(l))return a>l?1:-1;for(a=a.match(f),l=l.match(f),d=a.length>l.length?l.length:a.length;m<d;)if(u=a[m],c=l[m++],u!==c)return isFinite(u)&&isFinite(c)?("0"===u.charAt(0)&&(u="."+u),"0"===c.charAt(0)&&(c="."+c),u-c):u>c?1:-1;return a.length>l.length}g=1}else g=e||0===e?-1:0;return("top"===h&&"desc"===i||"bottom"===h&&"asc"===i)&&(g*=-1),g}},Tabulator.prototype.registerModule("sort",Sort);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-var Validate = function Validate(table) {
- this.table = table;
- this.invalidCells = [];
-};
-
-//validate
-Validate.prototype.initializeColumn = function (column) {
- var self = this,
- config = [],
- validator;
-
- if (column.definition.validator) {
-
- if (Array.isArray(column.definition.validator)) {
- column.definition.validator.forEach(function (item) {
- validator = self._extractValidator(item);
-
- if (validator) {
- config.push(validator);
- }
- });
- } else {
- validator = this._extractValidator(column.definition.validator);
-
- if (validator) {
- config.push(validator);
- }
- }
-
- column.modules.validate = config.length ? config : false;
- }
-};
-
-Validate.prototype._extractValidator = function (value) {
- var type, params, pos;
-
- switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
- case "string":
- pos = value.indexOf(':');
-
- if (pos > -1) {
- type = value.substring(0, pos);
- params = value.substring(pos + 1);
- } else {
- type = value;
- }
-
- return this._buildValidator(type, params);
- break;
-
- case "function":
- return this._buildValidator(value);
- break;
-
- case "object":
- return this._buildValidator(value.type, value.parameters);
- break;
- }
-};
-
-Validate.prototype._buildValidator = function (type, params) {
-
- var func = typeof type == "function" ? type : this.validators[type];
-
- if (!func) {
- console.warn("Validator Setup Error - No matching validator found:", type);
- return false;
- } else {
- return {
- type: typeof type == "function" ? "function" : type,
- func: func,
- params: params
- };
- }
-};
-
-Validate.prototype.validate = function (validators, cell, value) {
- var self = this,
- valid = [],
- invalidIndex = this.invalidCells.indexOf(cell);
-
- if (validators) {
- validators.forEach(function (item) {
- if (!item.func.call(self, cell.getComponent(), value, item.params)) {
- valid.push({
- type: item.type,
- parameters: item.params
- });
- }
- });
- }
-
- valid = valid.length ? valid : true;
-
- if (!cell.modules.validate) {
- cell.modules.validate = {};
- }
-
- if (valid === true) {
- cell.modules.validate.invalid = false;
- cell.getElement().classList.remove("tabulator-validation-fail");
-
- if (invalidIndex > -1) {
- this.invalidCells.splice(invalidIndex, 1);
- }
- } else {
- cell.modules.validate.invalid = true;
-
- if (this.table.options.validationMode !== "manual") {
- cell.getElement().classList.add("tabulator-validation-fail");
- }
-
- if (invalidIndex == -1) {
- this.invalidCells.push(cell);
- }
- }
-
- return valid;
-};
-
-Validate.prototype.getInvalidCells = function () {
- var output = [];
-
- this.invalidCells.forEach(function (cell) {
- output.push(cell.getComponent());
- });
-
- return output;
-};
-
-Validate.prototype.clearValidation = function (cell) {
- var invalidIndex;
-
- if (cell.modules.validate && cell.modules.validate.invalid) {
-
- cell.element.classList.remove("tabulator-validation-fail");
- cell.modules.validate.invalid = false;
-
- invalidIndex = this.invalidCells.indexOf(cell);
-
- if (invalidIndex > -1) {
- this.invalidCells.splice(invalidIndex, 1);
- }
- }
-};
-
-Validate.prototype.validators = {
-
- //is integer
- integer: function integer(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
- },
-
- //is float
- float: function float(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && value % 1 !== 0;
- },
-
- //must be a number
- numeric: function numeric(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return !isNaN(value);
- },
-
- //must be a string
- string: function string(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return isNaN(value);
- },
-
- //maximum value
- max: function max(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) <= parameters;
- },
-
- //minimum value
- min: function min(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) >= parameters;
- },
-
- //starts with value
- starts: function starts(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).toLowerCase().startsWith(String(parameters).toLowerCase());
- },
-
- //ends with value
- ends: function ends(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).toLowerCase().endsWith(String(parameters).toLowerCase());
- },
-
- //minimum string length
- minLength: function minLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length >= parameters;
- },
-
- //maximum string length
- maxLength: function maxLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length <= parameters;
- },
-
- //in provided value list
- in: function _in(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- if (typeof parameters == "string") {
- parameters = parameters.split("|");
- }
-
- return value === "" || parameters.indexOf(value) > -1;
- },
-
- //must match provided regex
- regex: function regex(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var reg = new RegExp(parameters);
-
- return reg.test(value);
- },
-
- //value must be unique in this column
- unique: function unique(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var unique = true;
-
- var cellData = cell.getData();
- var column = cell.getColumn()._getSelf();
-
- this.table.rowManager.rows.forEach(function (row) {
- var data = row.getData();
-
- if (data !== cellData) {
- if (value == column.getFieldValue(data)) {
- unique = false;
- }
- }
- });
-
- return unique;
- },
-
- //must have a value
- required: function required(cell, value, parameters) {
- return value !== "" && value !== null && typeof value !== "undefined";
- }
-};
-
-Tabulator.prototype.registerModule("validate", Validate);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Validate=function(t){this.table=t,this.invalidCells=[]};Validate.prototype.initializeColumn=function(t){var i,n=this,e=[];t.definition.validator&&(Array.isArray(t.definition.validator)?t.definition.validator.forEach(function(t){(i=n._extractValidator(t))&&e.push(i)}):(i=this._extractValidator(t.definition.validator))&&e.push(i),t.modules.validate=!!e.length&&e)},Validate.prototype._extractValidator=function(t){var i,n,e;switch(void 0===t?"undefined":_typeof(t)){case"string":return e=t.indexOf(":"),e>-1?(i=t.substring(0,e),n=t.substring(e+1)):i=t,this._buildValidator(i,n);case"function":return this._buildValidator(t);case"object":return this._buildValidator(t.type,t.parameters)}},Validate.prototype._buildValidator=function(t,i){var n="function"==typeof t?t:this.validators[t];return n?{type:"function"==typeof t?"function":t,func:n,params:i}:(console.warn("Validator Setup Error - No matching validator found:",t),!1)},Validate.prototype.validate=function(t,i,n){var e=this,a=[],o=this.invalidCells.indexOf(i);return t&&t.forEach(function(t){t.func.call(e,i.getComponent(),n,t.params)||a.push({type:t.type,parameters:t.params})}),a=!a.length||a,i.modules.validate||(i.modules.validate={}),!0===a?(i.modules.validate.invalid=!1,i.getElement().classList.remove("tabulator-validation-fail"),o>-1&&this.invalidCells.splice(o,1)):(i.modules.validate.invalid=!0,"manual"!==this.table.options.validationMode&&i.getElement().classList.add("tabulator-validation-fail"),-1==o&&this.invalidCells.push(i)),a},Validate.prototype.getInvalidCells=function(){var t=[];return this.invalidCells.forEach(function(i){t.push(i.getComponent())}),t},Validate.prototype.clearValidation=function(t){var i;t.modules.validate&&t.modules.validate.invalid&&(t.element.classList.remove("tabulator-validation-fail"),t.modules.validate.invalid=!1,(i=this.invalidCells.indexOf(t))>-1&&this.invalidCells.splice(i,1))},Validate.prototype.validators={integer:function(t,i,n){return""===i||null===i||void 0===i||"number"==typeof(i=Number(i))&&isFinite(i)&&Math.floor(i)===i},float:function(t,i,n){return""===i||null===i||void 0===i||"number"==typeof(i=Number(i))&&isFinite(i)&&i%1!=0},numeric:function(t,i,n){return""===i||null===i||void 0===i||!isNaN(i)},string:function(t,i,n){return""===i||null===i||void 0===i||isNaN(i)},max:function(t,i,n){return""===i||null===i||void 0===i||parseFloat(i)<=n},min:function(t,i,n){return""===i||null===i||void 0===i||parseFloat(i)>=n},starts:function(t,i,n){return""===i||null===i||void 0===i||String(i).toLowerCase().startsWith(String(n).toLowerCase())},ends:function(t,i,n){return""===i||null===i||void 0===i||String(i).toLowerCase().endsWith(String(n).toLowerCase())},minLength:function(t,i,n){return""===i||null===i||void 0===i||String(i).length>=n},maxLength:function(t,i,n){return""===i||null===i||void 0===i||String(i).length<=n},in:function(t,i,n){return""===i||null===i||void 0===i||("string"==typeof n&&(n=n.split("|")),""===i||n.indexOf(i)>-1)},regex:function(t,i,n){return""===i||null===i||void 0===i||new RegExp(n).test(i)},unique:function(t,i,n){if(""===i||null===i||void 0===i)return!0;var e=!0,a=t.getData(),o=t.getColumn()._getSelf();return this.table.rowManager.rows.forEach(function(t){var n=t.getData();n!==a&&i==o.getFieldValue(n)&&(e=!1)}),e},required:function(t,i,n){return""!==i&&null!==i&&void 0!==i}},Tabulator.prototype.registerModule("validate",Validate);
\ No newline at end of file
+++ /dev/null
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-;(function (global, factory) {
- if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined') {
- module.exports = factory();
- } else if (typeof define === 'function' && define.amd) {
- define(factory);
- } else {
- global.Tabulator = factory();
- }
-})(this, function () {
-
- 'use strict';
-
- // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
-
-
- if (!Array.prototype.findIndex) {
-
- Object.defineProperty(Array.prototype, 'findIndex', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
-
- // b. Let kValue be ? Get(O, Pk).
-
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
-
- // d. If testResult is true, return k.
-
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return k;
- }
-
- // e. Increase k by 1.
-
-
- k++;
- }
-
- // 7. Return -1.
-
-
- return -1;
- }
-
- });
- }
-
- // https://tc39.github.io/ecma262/#sec-array.prototype.find
-
-
- if (!Array.prototype.find) {
-
- Object.defineProperty(Array.prototype, 'find', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
-
- // b. Let kValue be ? Get(O, Pk).
-
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
-
- // d. If testResult is true, return kValue.
-
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return kValue;
- }
-
- // e. Increase k by 1.
-
-
- k++;
- }
-
- // 7. Return undefined.
-
-
- return undefined;
- }
-
- });
- }
-
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill
-
-
- if (!String.prototype.includes) {
-
- String.prototype.includes = function (search, start) {
-
- 'use strict';
-
- if (search instanceof RegExp) {
-
- throw TypeError('first argument must not be a RegExp');
- }
-
- if (start === undefined) {
- start = 0;
- }
-
- return this.indexOf(search, start) !== -1;
- };
- }
-
- // https://tc39.github.io/ecma262/#sec-array.prototype.includes
-
-
- if (!Array.prototype.includes) {
-
- Object.defineProperty(Array.prototype, 'includes', {
-
- value: function value(searchElement, fromIndex) {
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- // 1. Let O be ? ToObject(this value).
-
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
-
- var len = o.length >>> 0;
-
- // 3. If len is 0, return false.
-
-
- if (len === 0) {
-
- return false;
- }
-
- // 4. Let n be ? ToInteger(fromIndex).
-
-
- // (If fromIndex is undefined, this step produces the value 0.)
-
-
- var n = fromIndex | 0;
-
- // 5. If n ≥ 0, then
-
-
- // a. Let k be n.
-
-
- // 6. Else n < 0,
-
-
- // a. Let k be len + n.
-
-
- // b. If k < 0, let k be 0.
-
-
- var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
-
- function sameValueZero(x, y) {
-
- return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);
- }
-
- // 7. Repeat, while k < len
-
-
- while (k < len) {
-
- // a. Let elementK be the result of ? Get(O, ! ToString(k)).
-
-
- // b. If SameValueZero(searchElement, elementK) is true, return true.
-
-
- if (sameValueZero(o[k], searchElement)) {
-
- return true;
- }
-
- // c. Increase k by 1.
-
-
- k++;
- }
-
- // 8. Return false
-
-
- return false;
- }
-
- });
- }
-
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill
-
-
- if (typeof Object.assign !== 'function') {
-
- // Must be writable: true, enumerable: false, configurable: true
-
-
- Object.defineProperty(Object, "assign", {
-
- value: function assign(target, varArgs) {
- // .length of function is 2
-
-
- 'use strict';
-
- if (target === null || target === undefined) {
-
- throw new TypeError('Cannot convert undefined or null to object');
- }
-
- var to = Object(target);
-
- for (var index = 1; index < arguments.length; index++) {
-
- var nextSource = arguments[index];
-
- if (nextSource !== null && nextSource !== undefined) {
-
- for (var nextKey in nextSource) {
-
- // Avoid bugs when hasOwnProperty is shadowed
-
-
- if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
-
- to[nextKey] = nextSource[nextKey];
- }
- }
- }
- }
-
- return to;
- },
-
- writable: true,
-
- configurable: true
-
- });
- }
-
- var ColumnManager = function ColumnManager(table) {
-
- this.table = table; //hold parent table
-
-
- this.blockHozScrollEvent = false;
-
- this.headersElement = this.createHeadersElement();
-
- this.element = this.createHeaderElement(); //containing element
-
-
- this.rowManager = null; //hold row manager object
-
-
- this.columns = []; // column definition object
-
-
- this.columnsByIndex = []; //columns by index
-
-
- this.columnsByField = {}; //columns by field
-
-
- this.scrollLeft = 0;
-
- this.element.insertBefore(this.headersElement, this.element.firstChild);
- };
-
- ////////////// Setup Functions /////////////////
-
-
- ColumnManager.prototype.createHeadersElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-headers");
-
- return el;
- };
-
- ColumnManager.prototype.createHeaderElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-header");
-
- if (!this.table.options.headerVisible) {
-
- el.classList.add("tabulator-header-hidden");
- }
-
- return el;
- };
-
- ColumnManager.prototype.initialize = function () {
-
- var self = this;
-
- //scroll body along with header
-
-
- // self.element.addEventListener("scroll", function(e){
-
-
- // if(!self.blockHozScrollEvent){
-
-
- // self.table.rowManager.scrollHorizontal(self.element.scrollLeft);
-
-
- // }
-
-
- // });
-
- };
-
- //link to row manager
-
-
- ColumnManager.prototype.setRowManager = function (manager) {
-
- this.rowManager = manager;
- };
-
- //return containing element
-
-
- ColumnManager.prototype.getElement = function () {
-
- return this.element;
- };
-
- //return header containing element
-
-
- ColumnManager.prototype.getHeadersElement = function () {
-
- return this.headersElement;
- };
-
- // ColumnManager.prototype.tempScrollBlock = function(){
-
-
- // clearTimeout(this.blockHozScrollEvent);
-
-
- // this.blockHozScrollEvent = setTimeout(() => {this.blockHozScrollEvent = false;}, 50);
-
-
- // }
-
-
- //scroll horizontally to match table body
-
-
- ColumnManager.prototype.scrollHorizontal = function (left) {
-
- var hozAdjust = 0,
- scrollWidth = this.element.scrollWidth - this.table.element.clientWidth;
-
- // this.tempScrollBlock();
-
-
- this.element.scrollLeft = left;
-
- //adjust for vertical scrollbar moving table when present
-
-
- if (left > scrollWidth) {
-
- hozAdjust = left - scrollWidth;
-
- this.element.style.marginLeft = -hozAdjust + "px";
- } else {
-
- this.element.style.marginLeft = 0;
- }
-
- //keep frozen columns fixed in position
-
-
- //this._calcFrozenColumnsPos(hozAdjust + 3);
-
-
- this.scrollLeft = left;
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.scrollHorizontal();
- }
- };
-
- ///////////// Column Setup Functions /////////////
-
-
- ColumnManager.prototype.generateColumnsFromRowData = function (data) {
-
- var cols = [],
- row,
- sorter;
-
- if (data && data.length) {
-
- row = data[0];
-
- for (var key in row) {
-
- var col = {
-
- field: key,
-
- title: key
-
- };
-
- var value = row[key];
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
-
- case "undefined":
-
- sorter = "string";
-
- break;
-
- case "boolean":
-
- sorter = "boolean";
-
- break;
-
- case "object":
-
- if (Array.isArray(value)) {
-
- sorter = "array";
- } else {
-
- sorter = "string";
- }
-
- break;
-
- default:
-
- if (!isNaN(value) && value !== "") {
-
- sorter = "number";
- } else {
-
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
-
- sorter = "alphanum";
- } else {
-
- sorter = "string";
- }
- }
-
- break;
-
- }
-
- col.sorter = sorter;
-
- cols.push(col);
- }
-
- this.table.options.columns = cols;
-
- this.setColumns(this.table.options.columns);
- }
- };
-
- ColumnManager.prototype.setColumns = function (cols, row) {
-
- var self = this;
-
- while (self.headersElement.firstChild) {
- self.headersElement.removeChild(self.headersElement.firstChild);
- }self.columns = [];
-
- self.columnsByIndex = [];
-
- self.columnsByField = {};
-
- //reset frozen columns
-
-
- if (self.table.modExists("frozenColumns")) {
-
- self.table.modules.frozenColumns.reset();
- }
-
- cols.forEach(function (def, i) {
-
- self._addColumn(def);
- });
-
- self._reIndexColumns();
-
- if (self.table.options.responsiveLayout && self.table.modExists("responsiveLayout", true)) {
-
- self.table.modules.responsiveLayout.initialize();
- }
-
- self.redraw(true);
- };
-
- ColumnManager.prototype._addColumn = function (definition, before, nextToColumn) {
-
- var column = new Column(definition, this),
- colEl = column.getElement(),
- index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
-
- if (nextToColumn && index > -1) {
-
- var parentIndex = this.columns.indexOf(nextToColumn.getTopColumn());
-
- var nextEl = nextToColumn.getElement();
-
- if (before) {
-
- this.columns.splice(parentIndex, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl);
- } else {
-
- this.columns.splice(parentIndex + 1, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl.nextSibling);
- }
- } else {
-
- if (before) {
-
- this.columns.unshift(column);
-
- this.headersElement.insertBefore(column.getElement(), this.headersElement.firstChild);
- } else {
-
- this.columns.push(column);
-
- this.headersElement.appendChild(column.getElement());
- }
-
- column.columnRendered();
- }
-
- return column;
- };
-
- ColumnManager.prototype.registerColumnField = function (col) {
-
- if (col.definition.field) {
-
- this.columnsByField[col.definition.field] = col;
- }
- };
-
- ColumnManager.prototype.registerColumnPosition = function (col) {
-
- this.columnsByIndex.push(col);
- };
-
- ColumnManager.prototype._reIndexColumns = function () {
-
- this.columnsByIndex = [];
-
- this.columns.forEach(function (column) {
-
- column.reRegisterPosition();
- });
- };
-
- //ensure column headers take up the correct amount of space in column groups
-
-
- ColumnManager.prototype._verticalAlignHeaders = function () {
-
- var self = this,
- minHeight = 0;
-
- self.columns.forEach(function (column) {
-
- var height;
-
- column.clearVerticalAlign();
-
- height = column.getHeight();
-
- if (height > minHeight) {
-
- minHeight = height;
- }
- });
-
- self.columns.forEach(function (column) {
-
- column.verticalAlign(self.table.options.columnHeaderVertAlign, minHeight);
- });
-
- self.rowManager.adjustTableSize();
- };
-
- //////////////// Column Details /////////////////
-
-
- ColumnManager.prototype.findColumn = function (subject) {
-
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Column) {
-
- //subject is column element
-
-
- return subject;
- } else if (subject instanceof ColumnComponent) {
-
- //subject is public column component
-
-
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
-
- //subject is a HTML element of the column header
-
-
- var match = self.columns.find(function (column) {
-
- return column.element === subject;
- });
-
- return match || false;
- }
- } else {
-
- //subject should be treated as the field name of the column
-
-
- return this.columnsByField[subject] || false;
- }
-
- //catch all for any other type of input
-
-
- return false;
- };
-
- ColumnManager.prototype.getColumnByField = function (field) {
-
- return this.columnsByField[field];
- };
-
- ColumnManager.prototype.getColumnsByFieldRoot = function (root) {
- var _this = this;
-
- var matches = [];
-
- Object.keys(this.columnsByField).forEach(function (field) {
-
- var fieldRoot = field.split(".")[0];
-
- if (fieldRoot === root) {
-
- matches.push(_this.columnsByField[field]);
- }
- });
-
- return matches;
- };
-
- ColumnManager.prototype.getColumnByIndex = function (index) {
-
- return this.columnsByIndex[index];
- };
-
- ColumnManager.prototype.getFirstVisibileColumn = function (index) {
-
- var index = this.columnsByIndex.findIndex(function (col) {
-
- return col.visible;
- });
-
- return index > -1 ? this.columnsByIndex[index] : false;
- };
-
- ColumnManager.prototype.getColumns = function () {
-
- return this.columns;
- };
-
- ColumnManager.prototype.findColumnIndex = function (column) {
-
- return this.columnsByIndex.findIndex(function (col) {
-
- return column === col;
- });
- };
-
- //return all columns that are not groups
-
-
- ColumnManager.prototype.getRealColumns = function () {
-
- return this.columnsByIndex;
- };
-
- //travers across columns and call action
-
-
- ColumnManager.prototype.traverse = function (callback) {
-
- var self = this;
-
- self.columnsByIndex.forEach(function (column, i) {
-
- callback(column, i);
- });
- };
-
- //get defintions of actual columns
-
-
- ColumnManager.prototype.getDefinitions = function (active) {
-
- var self = this,
- output = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- if (!active || active && column.visible) {
-
- output.push(column.getDefinition());
- }
- });
-
- return output;
- };
-
- //get full nested definition tree
-
-
- ColumnManager.prototype.getDefinitionTree = function () {
-
- var self = this,
- output = [];
-
- self.columns.forEach(function (column) {
-
- output.push(column.getDefinition(true));
- });
-
- return output;
- };
-
- ColumnManager.prototype.getComponents = function (structured) {
-
- var self = this,
- output = [],
- columns = structured ? self.columns : self.columnsByIndex;
-
- columns.forEach(function (column) {
-
- output.push(column.getComponent());
- });
-
- return output;
- };
-
- ColumnManager.prototype.getWidth = function () {
-
- var width = 0;
-
- this.columnsByIndex.forEach(function (column) {
-
- if (column.visible) {
-
- width += column.getWidth();
- }
- });
-
- return width;
- };
-
- ColumnManager.prototype.moveColumn = function (from, to, after) {
-
- this.moveColumnActual(from, to, after);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- to.element.parentNode.insertBefore(from.element, to.element);
-
- if (after) {
-
- to.element.parentNode.insertBefore(to.element, from.element);
- }
-
- this._verticalAlignHeaders();
-
- this.table.rowManager.reinitialize();
- };
-
- ColumnManager.prototype.moveColumnActual = function (from, to, after) {
-
- if (from.parent.isGroup) {
-
- this._moveColumnInArray(from.parent.columns, from, to, after);
- } else {
-
- this._moveColumnInArray(this.columns, from, to, after);
- }
-
- this._moveColumnInArray(this.columnsByIndex, from, to, after, true);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.options.columnMoved) {
-
- this.table.options.columnMoved.call(this.table, from.getComponent(), this.table.columnManager.getComponents());
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
- };
-
- ColumnManager.prototype._moveColumnInArray = function (columns, from, to, after, updateRows) {
-
- var fromIndex = columns.indexOf(from),
- toIndex;
-
- if (fromIndex > -1) {
-
- columns.splice(fromIndex, 1);
-
- toIndex = columns.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
-
- toIndex = toIndex + 1;
- }
- } else {
-
- toIndex = fromIndex;
- }
-
- columns.splice(toIndex, 0, from);
-
- if (updateRows) {
-
- this.table.rowManager.rows.forEach(function (row) {
-
- if (row.cells.length) {
-
- var cell = row.cells.splice(fromIndex, 1)[0];
-
- row.cells.splice(toIndex, 0, cell);
- }
- });
- }
- }
- };
-
- ColumnManager.prototype.scrollToColumn = function (column, position, ifVisible) {
- var _this2 = this;
-
- var left = 0,
- offset = 0,
- adjust = 0,
- colEl = column.getElement();
-
- return new Promise(function (resolve, reject) {
-
- if (typeof position === "undefined") {
-
- position = _this2.table.options.scrollToColumnPosition;
- }
-
- if (typeof ifVisible === "undefined") {
-
- ifVisible = _this2.table.options.scrollToColumnIfVisible;
- }
-
- if (column.visible) {
-
- //align to correct position
-
-
- switch (position) {
-
- case "middle":
-
- case "center":
-
- adjust = -_this2.element.clientWidth / 2;
-
- break;
-
- case "right":
-
- adjust = colEl.clientWidth - _this2.headersElement.clientWidth;
-
- break;
-
- }
-
- //check column visibility
-
-
- if (!ifVisible) {
-
- offset = colEl.offsetLeft;
-
- if (offset > 0 && offset + colEl.offsetWidth < _this2.element.clientWidth) {
-
- return false;
- }
- }
-
- //calculate scroll position
-
-
- left = colEl.offsetLeft + _this2.element.scrollLeft + adjust;
-
- left = Math.max(Math.min(left, _this2.table.rowManager.element.scrollWidth - _this2.table.rowManager.element.clientWidth), 0);
-
- _this2.table.rowManager.scrollHorizontal(left);
-
- _this2.scrollHorizontal(left);
-
- resolve();
- } else {
-
- console.warn("Scroll Error - Column not visible");
-
- reject("Scroll Error - Column not visible");
- }
- });
- };
-
- //////////////// Cell Management /////////////////
-
-
- ColumnManager.prototype.generateCells = function (row) {
-
- var self = this;
-
- var cells = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- cells.push(column.generateCell(row));
- });
-
- return cells;
- };
-
- //////////////// Column Management /////////////////
-
-
- ColumnManager.prototype.getFlexBaseWidth = function () {
-
- var self = this,
- totalWidth = self.table.element.clientWidth,
- //table element width
-
-
- fixedWidth = 0;
-
- //adjust for vertical scrollbar if present
-
-
- if (self.rowManager.element.scrollHeight > self.rowManager.element.clientHeight) {
-
- totalWidth -= self.rowManager.element.offsetWidth - self.rowManager.element.clientWidth;
- }
-
- this.columnsByIndex.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width || 0;
-
- minWidth = typeof column.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(column.minWidth);
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
- }
- });
-
- return fixedWidth;
- };
-
- ColumnManager.prototype.addColumn = function (definition, before, nextToColumn) {
- var _this3 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this3._addColumn(definition, before, nextToColumn);
-
- _this3._reIndexColumns();
-
- if (_this3.table.options.responsiveLayout && _this3.table.modExists("responsiveLayout", true)) {
-
- _this3.table.modules.responsiveLayout.initialize();
- }
-
- if (_this3.table.modExists("columnCalcs")) {
-
- _this3.table.modules.columnCalcs.recalc(_this3.table.rowManager.activeRows);
- }
-
- _this3.redraw();
-
- if (_this3.table.modules.layout.getMode() != "fitColumns") {
-
- column.reinitializeWidth();
- }
-
- _this3._verticalAlignHeaders();
-
- _this3.table.rowManager.reinitialize();
-
- resolve(column);
- });
- };
-
- //remove column from system
-
-
- ColumnManager.prototype.deregisterColumn = function (column) {
-
- var field = column.getField(),
- index;
-
- //remove from field list
-
-
- if (field) {
-
- delete this.columnsByField[field];
- }
-
- //remove from index list
-
-
- index = this.columnsByIndex.indexOf(column);
-
- if (index > -1) {
-
- this.columnsByIndex.splice(index, 1);
- }
-
- //remove from column list
-
-
- index = this.columns.indexOf(column);
-
- if (index > -1) {
-
- this.columns.splice(index, 1);
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- this.redraw();
- };
-
- //redraw columns
-
-
- ColumnManager.prototype.redraw = function (force) {
-
- if (force) {
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
-
- this._verticalAlignHeaders();
- }
-
- this.table.rowManager.resetScroll();
-
- this.table.rowManager.reinitialize();
- }
-
- if (["fitColumns", "fitDataStretch"].indexOf(this.table.modules.layout.getMode()) > -1) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (force) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (force) {
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.redraw();
- }
- }
-
- this.table.footerManager.redraw();
- };
-
- //public column object
-
- var ColumnComponent = function ColumnComponent(column) {
-
- this._column = column;
-
- this.type = "ColumnComponent";
- };
-
- ColumnComponent.prototype.getElement = function () {
-
- return this._column.getElement();
- };
-
- ColumnComponent.prototype.getDefinition = function () {
-
- return this._column.getDefinition();
- };
-
- ColumnComponent.prototype.getField = function () {
-
- return this._column.getField();
- };
-
- ColumnComponent.prototype.getCells = function () {
-
- var cells = [];
-
- this._column.cells.forEach(function (cell) {
-
- cells.push(cell.getComponent());
- });
-
- return cells;
- };
-
- ColumnComponent.prototype.getVisibility = function () {
-
- console.warn("getVisibility function is deprecated, you should now use the isVisible function");
-
- return this._column.visible;
- };
-
- ColumnComponent.prototype.isVisible = function () {
-
- return this._column.visible;
- };
-
- ColumnComponent.prototype.show = function () {
-
- if (this._column.isGroup) {
-
- this._column.columns.forEach(function (column) {
-
- column.show();
- });
- } else {
-
- this._column.show();
- }
- };
-
- ColumnComponent.prototype.hide = function () {
-
- if (this._column.isGroup) {
-
- this._column.columns.forEach(function (column) {
-
- column.hide();
- });
- } else {
-
- this._column.hide();
- }
- };
-
- ColumnComponent.prototype.toggle = function () {
-
- if (this._column.visible) {
-
- this.hide();
- } else {
-
- this.show();
- }
- };
-
- ColumnComponent.prototype.delete = function () {
-
- return this._column.delete();
- };
-
- ColumnComponent.prototype.getSubColumns = function () {
-
- var output = [];
-
- if (this._column.columns.length) {
-
- this._column.columns.forEach(function (column) {
-
- output.push(column.getComponent());
- });
- }
-
- return output;
- };
-
- ColumnComponent.prototype.getParentColumn = function () {
-
- return this._column.parent instanceof Column ? this._column.parent.getComponent() : false;
- };
-
- ColumnComponent.prototype._getSelf = function () {
-
- return this._column;
- };
-
- ColumnComponent.prototype.scrollTo = function () {
-
- return this._column.table.columnManager.scrollToColumn(this._column);
- };
-
- ColumnComponent.prototype.getTable = function () {
-
- return this._column.table;
- };
-
- ColumnComponent.prototype.headerFilterFocus = function () {
-
- if (this._column.table.modExists("filter", true)) {
-
- this._column.table.modules.filter.setHeaderFilterFocus(this._column);
- }
- };
-
- ColumnComponent.prototype.reloadHeaderFilter = function () {
-
- if (this._column.table.modExists("filter", true)) {
-
- this._column.table.modules.filter.reloadHeaderFilter(this._column);
- }
- };
-
- ColumnComponent.prototype.getHeaderFilterValue = function () {
-
- if (this._column.table.modExists("filter", true)) {
-
- return this._column.table.modules.filter.getHeaderFilterValue(this._column);
- }
- };
-
- ColumnComponent.prototype.setHeaderFilterValue = function (value) {
-
- if (this._column.table.modExists("filter", true)) {
-
- this._column.table.modules.filter.setHeaderFilterValue(this._column, value);
- }
- };
-
- ColumnComponent.prototype.move = function (to, after) {
-
- var toColumn = this._column.table.columnManager.findColumn(to);
-
- if (toColumn) {
-
- this._column.table.columnManager.moveColumn(this._column, toColumn, after);
- } else {
-
- console.warn("Move Error - No matching column found:", toColumn);
- }
- };
-
- ColumnComponent.prototype.getNextColumn = function () {
-
- var nextCol = this._column.nextColumn();
-
- return nextCol ? nextCol.getComponent() : false;
- };
-
- ColumnComponent.prototype.getPrevColumn = function () {
-
- var prevCol = this._column.prevColumn();
-
- return prevCol ? prevCol.getComponent() : false;
- };
-
- ColumnComponent.prototype.updateDefinition = function (updates) {
-
- return this._column.updateDefinition(updates);
- };
-
- ColumnComponent.prototype.getWidth = function () {
-
- return this._column.getWidth();
- };
-
- ColumnComponent.prototype.setWidth = function (width) {
-
- if (width === true) {
-
- return this._column.reinitializeWidth(true);
- } else {
-
- return this._column.setWidth(width);
- }
- };
-
- ColumnComponent.prototype.validate = function () {
-
- return this._column.validate();
- };
-
- var Column = function Column(def, parent) {
-
- var self = this;
-
- this.table = parent.table;
-
- this.definition = def; //column definition
-
- this.parent = parent; //hold parent object
-
- this.type = "column"; //type of element
-
- this.columns = []; //child columns
-
- this.cells = []; //cells bound to this column
-
- this.element = this.createElement(); //column header element
-
- this.contentElement = false;
-
- this.titleElement = false;
-
- this.groupElement = this.createGroupElement(); //column group holder element
-
- this.isGroup = false;
-
- this.tooltip = false; //hold column tooltip
-
- this.hozAlign = ""; //horizontal text alignment
-
- this.vertAlign = ""; //vert text alignment
-
-
- //multi dimensional filed handling
-
- this.field = "";
-
- this.fieldStructure = "";
-
- this.getFieldValue = "";
-
- this.setFieldValue = "";
-
- this.titleFormatterRendered = false;
-
- this.setField(this.definition.field);
-
- if (this.table.options.invalidOptionWarnings) {
-
- this.checkDefinition();
- }
-
- this.modules = {}; //hold module variables;
-
-
- this.cellEvents = {
-
- cellClick: false,
-
- cellDblClick: false,
-
- cellContext: false,
-
- cellTap: false,
-
- cellDblTap: false,
-
- cellTapHold: false,
-
- cellMouseEnter: false,
-
- cellMouseLeave: false,
-
- cellMouseOver: false,
-
- cellMouseOut: false,
-
- cellMouseMove: false
-
- };
-
- this.width = null; //column width
-
- this.widthStyled = ""; //column width prestyled to improve render efficiency
-
- this.minWidth = null; //column minimum width
-
- this.minWidthStyled = ""; //column minimum prestyled to improve render efficiency
-
- this.widthFixed = false; //user has specified a width for this column
-
-
- this.visible = true; //default visible state
-
-
- this.component = null;
-
- this._mapDepricatedFunctionality();
-
- //initialize column
-
- if (def.columns) {
-
- this.isGroup = true;
-
- def.columns.forEach(function (def, i) {
-
- var newCol = new Column(def, self);
-
- self.attachColumn(newCol);
- });
-
- self.checkColumnVisibility();
- } else {
-
- parent.registerColumnField(this);
- }
-
- if (def.rowHandle && this.table.options.movableRows !== false && this.table.modExists("moveRow")) {
-
- this.table.modules.moveRow.setHandle(true);
- }
-
- this._buildHeader();
-
- this.bindModuleColumns();
- };
-
- Column.prototype.createElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
-
- el.setAttribute("role", "columnheader");
-
- el.setAttribute("aria-sort", "none");
-
- return el;
- };
-
- Column.prototype.createGroupElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col-group-cols");
-
- return el;
- };
-
- Column.prototype.checkDefinition = function () {
- var _this4 = this;
-
- Object.keys(this.definition).forEach(function (key) {
-
- if (_this4.defaultOptionList.indexOf(key) === -1) {
-
- console.warn("Invalid column definition option in '" + (_this4.field || _this4.definition.title) + "' column:", key);
- }
- });
- };
-
- Column.prototype.setField = function (field) {
-
- this.field = field;
-
- this.fieldStructure = field ? this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator) : [field] : [];
-
- this.getFieldValue = this.fieldStructure.length > 1 ? this._getNestedData : this._getFlatData;
-
- this.setFieldValue = this.fieldStructure.length > 1 ? this._setNestedData : this._setFlatData;
- };
-
- //register column position with column manager
-
- Column.prototype.registerColumnPosition = function (column) {
-
- this.parent.registerColumnPosition(column);
- };
-
- //register column position with column manager
-
- Column.prototype.registerColumnField = function (column) {
-
- this.parent.registerColumnField(column);
- };
-
- //trigger position registration
-
- Column.prototype.reRegisterPosition = function () {
-
- if (this.isGroup) {
-
- this.columns.forEach(function (column) {
-
- column.reRegisterPosition();
- });
- } else {
-
- this.registerColumnPosition(this);
- }
- };
-
- Column.prototype._mapDepricatedFunctionality = function () {
-
- if (typeof this.definition.hideInHtml !== "undefined") {
-
- this.definition.htmlOutput = !this.definition.hideInHtml;
-
- console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput");
- }
-
- if (typeof this.definition.align !== "undefined") {
-
- this.definition.hozAlign = this.definition.align;
-
- console.warn("align column definition property is deprecated, you should now use hozAlign");
- }
-
- if (typeof this.definition.downloadTitle !== "undefined") {
-
- this.definition.titleDownload = this.definition.downloadTitle;
-
- console.warn("downloadTitle definition property is deprecated, you should now use titleDownload");
- }
- };
-
- Column.prototype.setTooltip = function () {
-
- var self = this,
- def = self.definition;
-
- //set header tooltips
-
- var tooltip = def.headerTooltip || def.tooltip === false ? def.headerTooltip : self.table.options.tooltipsHeader;
-
- if (tooltip) {
-
- if (tooltip === true) {
-
- if (def.field) {
-
- self.table.modules.localize.bind("columns|" + def.field, function (value) {
-
- self.element.setAttribute("title", value || def.title);
- });
- } else {
-
- self.element.setAttribute("title", def.title);
- }
- } else {
-
- if (typeof tooltip == "function") {
-
- tooltip = tooltip(self.getComponent());
-
- if (tooltip === false) {
-
- tooltip = "";
- }
- }
-
- self.element.setAttribute("title", tooltip);
- }
- } else {
-
- self.element.setAttribute("title", "");
- }
- };
-
- //build header element
-
- Column.prototype._buildHeader = function () {
-
- var self = this,
- def = self.definition;
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- }if (def.headerVertical) {
-
- self.element.classList.add("tabulator-col-vertical");
-
- if (def.headerVertical === "flip") {
-
- self.element.classList.add("tabulator-col-vertical-flip");
- }
- }
-
- self.contentElement = self._bindEvents();
-
- self.contentElement = self._buildColumnHeaderContent();
-
- self.element.appendChild(self.contentElement);
-
- if (self.isGroup) {
-
- self._buildGroupHeader();
- } else {
-
- self._buildColumnHeader();
- }
-
- self.setTooltip();
-
- //set resizable handles
-
- if (self.table.options.resizableColumns && self.table.modExists("resizeColumns")) {
-
- self.table.modules.resizeColumns.initializeColumn("header", self, self.element);
- }
-
- //set resizable handles
-
- if (def.headerFilter && self.table.modExists("filter") && self.table.modExists("edit")) {
-
- if (typeof def.headerFilterPlaceholder !== "undefined" && def.field) {
-
- self.table.modules.localize.setHeaderFilterColumnPlaceholder(def.field, def.headerFilterPlaceholder);
- }
-
- self.table.modules.filter.initializeColumn(self);
- }
-
- //set resizable handles
-
- if (self.table.modExists("frozenColumns")) {
-
- self.table.modules.frozenColumns.initializeColumn(self);
- }
-
- //set movable column
-
- if (self.table.options.movableColumns && !self.isGroup && self.table.modExists("moveColumn")) {
-
- self.table.modules.moveColumn.initializeColumn(self);
- }
-
- //set calcs column
-
- if ((def.topCalc || def.bottomCalc) && self.table.modExists("columnCalcs")) {
-
- self.table.modules.columnCalcs.initializeColumn(self);
- }
-
- //handle persistence
-
- if (self.table.modExists("persistence") && self.table.modules.persistence.config.columns) {
-
- self.table.modules.persistence.initializeColumn(self);
- }
-
- //update header tooltip on mouse enter
-
- self.element.addEventListener("mouseenter", function (e) {
-
- self.setTooltip();
- });
- };
-
- Column.prototype._bindEvents = function () {
-
- var self = this,
- def = self.definition,
- dblTap,
- tapHold,
- tap;
-
- //setup header click event bindings
-
- if (typeof def.headerClick == "function") {
-
- self.element.addEventListener("click", function (e) {
- def.headerClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerDblClick == "function") {
-
- self.element.addEventListener("dblclick", function (e) {
- def.headerDblClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerContext == "function") {
-
- self.element.addEventListener("contextmenu", function (e) {
- def.headerContext(e, self.getComponent());
- });
- }
-
- //setup header tap event bindings
-
- if (typeof def.headerTap == "function") {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
-
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- if (tap) {
-
- def.headerTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (typeof def.headerDblTap == "function") {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
-
- clearTimeout(dblTap);
-
- dblTap = null;
-
- def.headerDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
-
- clearTimeout(dblTap);
-
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (typeof def.headerTapHold == "function") {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
-
- clearTimeout(tapHold);
-
- tapHold = null;
-
- tap = false;
-
- def.headerTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = null;
- });
- }
-
- //store column cell click event bindings
-
- if (typeof def.cellClick == "function") {
-
- self.cellEvents.cellClick = def.cellClick;
- }
-
- if (typeof def.cellDblClick == "function") {
-
- self.cellEvents.cellDblClick = def.cellDblClick;
- }
-
- if (typeof def.cellContext == "function") {
-
- self.cellEvents.cellContext = def.cellContext;
- }
-
- //store column mouse event bindings
-
- if (typeof def.cellMouseEnter == "function") {
-
- self.cellEvents.cellMouseEnter = def.cellMouseEnter;
- }
-
- if (typeof def.cellMouseLeave == "function") {
-
- self.cellEvents.cellMouseLeave = def.cellMouseLeave;
- }
-
- if (typeof def.cellMouseOver == "function") {
-
- self.cellEvents.cellMouseOver = def.cellMouseOver;
- }
-
- if (typeof def.cellMouseOut == "function") {
-
- self.cellEvents.cellMouseOut = def.cellMouseOut;
- }
-
- if (typeof def.cellMouseMove == "function") {
-
- self.cellEvents.cellMouseMove = def.cellMouseMove;
- }
-
- //setup column cell tap event bindings
-
- if (typeof def.cellTap == "function") {
-
- self.cellEvents.cellTap = def.cellTap;
- }
-
- if (typeof def.cellDblTap == "function") {
-
- self.cellEvents.cellDblTap = def.cellDblTap;
- }
-
- if (typeof def.cellTapHold == "function") {
-
- self.cellEvents.cellTapHold = def.cellTapHold;
- }
-
- //setup column cell edit callbacks
-
- if (typeof def.cellEdited == "function") {
-
- self.cellEvents.cellEdited = def.cellEdited;
- }
-
- if (typeof def.cellEditing == "function") {
-
- self.cellEvents.cellEditing = def.cellEditing;
- }
-
- if (typeof def.cellEditCancelled == "function") {
-
- self.cellEvents.cellEditCancelled = def.cellEditCancelled;
- }
- };
-
- //build header element for header
-
- Column.prototype._buildColumnHeader = function () {
-
- var self = this,
- def = self.definition,
- table = self.table,
- sortable;
-
- //set column sorter
-
- if (table.modExists("sort")) {
-
- table.modules.sort.initializeColumn(self, self.contentElement);
- }
-
- //set column header context menu
-
- if ((def.headerContextMenu || def.headerMenu) && table.modExists("menu")) {
-
- table.modules.menu.initializeColumnHeader(self);
- }
-
- //set column formatter
-
- if (table.modExists("format")) {
-
- table.modules.format.initializeColumn(self);
- }
-
- //set column editor
-
- if (typeof def.editor != "undefined" && table.modExists("edit")) {
-
- table.modules.edit.initializeColumn(self);
- }
-
- //set colum validator
-
- if (typeof def.validator != "undefined" && table.modExists("validate")) {
-
- table.modules.validate.initializeColumn(self);
- }
-
- //set column mutator
-
- if (table.modExists("mutator")) {
-
- table.modules.mutator.initializeColumn(self);
- }
-
- //set column accessor
-
- if (table.modExists("accessor")) {
-
- table.modules.accessor.initializeColumn(self);
- }
-
- //set respoviveLayout
-
- if (_typeof(table.options.responsiveLayout) && table.modExists("responsiveLayout")) {
-
- table.modules.responsiveLayout.initializeColumn(self);
- }
-
- //set column visibility
-
- if (typeof def.visible != "undefined") {
-
- if (def.visible) {
-
- self.show(true);
- } else {
-
- self.hide(true);
- }
- }
-
- //asign additional css classes to column header
-
- if (def.cssClass) {
-
- var classeNames = def.cssClass.split(" ");
-
- classeNames.forEach(function (className) {
-
- self.element.classList.add(className);
- });
- }
-
- if (def.field) {
-
- this.element.setAttribute("tabulator-field", def.field);
- }
-
- //set min width if present
-
- self.setMinWidth(typeof def.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(def.minWidth));
-
- self.reinitializeWidth();
-
- //set tooltip if present
-
- self.tooltip = self.definition.tooltip || self.definition.tooltip === false ? self.definition.tooltip : self.table.options.tooltips;
-
- //set orizontal text alignment
-
- self.hozAlign = typeof self.definition.hozAlign == "undefined" ? self.table.options.cellHozAlign : self.definition.hozAlign;
-
- self.vertAlign = typeof self.definition.vertAlign == "undefined" ? self.table.options.cellVertAlign : self.definition.vertAlign;
- };
-
- Column.prototype._buildColumnHeaderContent = function () {
-
- var def = this.definition,
- table = this.table;
-
- var contentElement = document.createElement("div");
-
- contentElement.classList.add("tabulator-col-content");
-
- this.titleElement = this._buildColumnHeaderTitle();
-
- contentElement.appendChild(this.titleElement);
-
- return contentElement;
- };
-
- //build title element of column
-
- Column.prototype._buildColumnHeaderTitle = function () {
-
- var self = this,
- def = self.definition,
- table = self.table,
- title;
-
- var titleHolderElement = document.createElement("div");
-
- titleHolderElement.classList.add("tabulator-col-title");
-
- if (def.editableTitle) {
-
- var titleElement = document.createElement("input");
-
- titleElement.classList.add("tabulator-title-editor");
-
- titleElement.addEventListener("click", function (e) {
-
- e.stopPropagation();
-
- titleElement.focus();
- });
-
- titleElement.addEventListener("change", function () {
-
- def.title = titleElement.value;
-
- table.options.columnTitleChanged.call(self.table, self.getComponent());
- });
-
- titleHolderElement.appendChild(titleElement);
-
- if (def.field) {
-
- table.modules.localize.bind("columns|" + def.field, function (text) {
-
- titleElement.value = text || def.title || " ";
- });
- } else {
-
- titleElement.value = def.title || " ";
- }
- } else {
-
- if (def.field) {
-
- table.modules.localize.bind("columns|" + def.field, function (text) {
-
- self._formatColumnHeaderTitle(titleHolderElement, text || def.title || " ");
- });
- } else {
-
- self._formatColumnHeaderTitle(titleHolderElement, def.title || " ");
- }
- }
-
- return titleHolderElement;
- };
-
- Column.prototype._formatColumnHeaderTitle = function (el, title) {
- var _this5 = this;
-
- var formatter, contents, params, mockCell, onRendered;
-
- if (this.definition.titleFormatter && this.table.modExists("format")) {
-
- formatter = this.table.modules.format.getFormatter(this.definition.titleFormatter);
-
- onRendered = function onRendered(callback) {
-
- _this5.titleFormatterRendered = callback;
- };
-
- mockCell = {
-
- getValue: function getValue() {
-
- return title;
- },
-
- getElement: function getElement() {
-
- return el;
- }
-
- };
-
- params = this.definition.titleFormatterParams || {};
-
- params = typeof params === "function" ? params() : params;
-
- contents = formatter.call(this.table.modules.format, mockCell, params, onRendered);
-
- switch (typeof contents === 'undefined' ? 'undefined' : _typeof(contents)) {
-
- case "object":
-
- if (contents instanceof Node) {
-
- el.appendChild(contents);
- } else {
-
- el.innerHTML = "";
-
- console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents);
- }
-
- break;
-
- case "undefined":
-
- case "null":
-
- el.innerHTML = "";
-
- break;
-
- default:
-
- el.innerHTML = contents;
-
- }
- } else {
-
- el.innerHTML = title;
- }
- };
-
- //build header element for column group
-
- Column.prototype._buildGroupHeader = function () {
- var _this6 = this;
-
- this.element.classList.add("tabulator-col-group");
-
- this.element.setAttribute("role", "columngroup");
-
- this.element.setAttribute("aria-title", this.definition.title);
-
- //asign additional css classes to column header
-
- if (this.definition.cssClass) {
-
- var classeNames = this.definition.cssClass.split(" ");
-
- classeNames.forEach(function (className) {
-
- _this6.element.classList.add(className);
- });
- }
-
- //set column header context menu
-
- if ((this.definition.headerContextMenu || this.definition.headerMenu) && this.table.modExists("menu")) {
-
- this.table.modules.menu.initializeColumnHeader(this);
- }
-
- this.element.appendChild(this.groupElement);
- };
-
- //flat field lookup
-
- Column.prototype._getFlatData = function (data) {
-
- return data[this.field];
- };
-
- //nested field lookup
-
- Column.prototype._getNestedData = function (data) {
-
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length,
- output;
-
- for (var _i = 0; _i < length; _i++) {
-
- dataObj = dataObj[structure[_i]];
-
- output = dataObj;
-
- if (!dataObj) {
-
- break;
- }
- }
-
- return output;
- };
-
- //flat field set
-
- Column.prototype._setFlatData = function (data, value) {
-
- if (this.field) {
-
- data[this.field] = value;
- }
- };
-
- //nested field set
-
- Column.prototype._setNestedData = function (data, value) {
-
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length;
-
- for (var _i2 = 0; _i2 < length; _i2++) {
-
- if (_i2 == length - 1) {
-
- dataObj[structure[_i2]] = value;
- } else {
-
- if (!dataObj[structure[_i2]]) {
-
- if (typeof value !== "undefined") {
-
- dataObj[structure[_i2]] = {};
- } else {
-
- break;
- }
- }
-
- dataObj = dataObj[structure[_i2]];
- }
- }
- };
-
- //attach column to this group
-
- Column.prototype.attachColumn = function (column) {
-
- var self = this;
-
- if (self.groupElement) {
-
- self.columns.push(column);
-
- self.groupElement.appendChild(column.getElement());
- } else {
-
- console.warn("Column Warning - Column being attached to another column instead of column group");
- }
- };
-
- //vertically align header in column
-
- Column.prototype.verticalAlign = function (alignment, height) {
-
- //calculate height of column header and group holder element
-
- var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : height || this.parent.getHeadersElement().clientHeight;
-
- // var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : this.parent.getHeadersElement().clientHeight;
-
-
- this.element.style.height = parentHeight + "px";
-
- if (this.isGroup) {
-
- this.groupElement.style.minHeight = parentHeight - this.contentElement.offsetHeight + "px";
- }
-
- //vertically align cell contents
-
- if (!this.isGroup && alignment !== "top") {
-
- if (alignment === "bottom") {
-
- this.element.style.paddingTop = this.element.clientHeight - this.contentElement.offsetHeight + "px";
- } else {
-
- this.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) / 2 + "px";
- }
- }
-
- this.columns.forEach(function (column) {
-
- column.verticalAlign(alignment);
- });
- };
-
- //clear vertical alignmenet
-
- Column.prototype.clearVerticalAlign = function () {
-
- this.element.style.paddingTop = "";
-
- this.element.style.height = "";
-
- this.element.style.minHeight = "";
-
- this.groupElement.style.minHeight = "";
-
- this.columns.forEach(function (column) {
-
- column.clearVerticalAlign();
- });
- };
-
- Column.prototype.bindModuleColumns = function () {
-
- //check if rownum formatter is being used on a column
-
- if (this.definition.formatter == "rownum") {
-
- this.table.rowManager.rowNumColumn = this;
- }
- };
-
- //// Retreive Column Information ////
-
-
- //return column header element
-
- Column.prototype.getElement = function () {
-
- return this.element;
- };
-
- //return colunm group element
-
- Column.prototype.getGroupElement = function () {
-
- return this.groupElement;
- };
-
- //return field name
-
- Column.prototype.getField = function () {
-
- return this.field;
- };
-
- //return the first column in a group
-
- Column.prototype.getFirstColumn = function () {
-
- if (!this.isGroup) {
-
- return this;
- } else {
-
- if (this.columns.length) {
-
- return this.columns[0].getFirstColumn();
- } else {
-
- return false;
- }
- }
- };
-
- //return the last column in a group
-
- Column.prototype.getLastColumn = function () {
-
- if (!this.isGroup) {
-
- return this;
- } else {
-
- if (this.columns.length) {
-
- return this.columns[this.columns.length - 1].getLastColumn();
- } else {
-
- return false;
- }
- }
- };
-
- //return all columns in a group
-
- Column.prototype.getColumns = function () {
-
- return this.columns;
- };
-
- //return all columns in a group
-
- Column.prototype.getCells = function () {
-
- return this.cells;
- };
-
- //retreive the top column in a group of columns
-
- Column.prototype.getTopColumn = function () {
-
- if (this.parent.isGroup) {
-
- return this.parent.getTopColumn();
- } else {
-
- return this;
- }
- };
-
- //return column definition object
-
- Column.prototype.getDefinition = function (updateBranches) {
-
- var colDefs = [];
-
- if (this.isGroup && updateBranches) {
-
- this.columns.forEach(function (column) {
-
- colDefs.push(column.getDefinition(true));
- });
-
- this.definition.columns = colDefs;
- }
-
- return this.definition;
- };
-
- //////////////////// Actions ////////////////////
-
-
- Column.prototype.checkColumnVisibility = function () {
-
- var visible = false;
-
- this.columns.forEach(function (column) {
-
- if (column.visible) {
-
- visible = true;
- }
- });
-
- if (visible) {
-
- this.show();
-
- this.parent.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- } else {
-
- this.hide();
- }
- };
-
- //show column
-
- Column.prototype.show = function (silent, responsiveToggle) {
-
- if (!this.visible) {
-
- this.visible = true;
-
- this.element.style.display = "";
-
- if (this.parent.isGroup) {
-
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
-
- cell.show();
- });
-
- if (!this.isGroup && this.width === null) {
-
- this.reinitializeWidth();
- }
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
-
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), true);
- }
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
- }
- };
-
- //hide column
-
- Column.prototype.hide = function (silent, responsiveToggle) {
-
- if (this.visible) {
-
- this.visible = false;
-
- this.element.style.display = "none";
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.parent.isGroup) {
-
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
-
- cell.hide();
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
-
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- }
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
- }
- };
-
- Column.prototype.matchChildWidths = function () {
-
- var childWidth = 0;
-
- if (this.contentElement && this.columns.length) {
-
- this.columns.forEach(function (column) {
-
- if (column.visible) {
-
- childWidth += column.getWidth();
- }
- });
-
- this.contentElement.style.maxWidth = childWidth - 1 + "px";
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
- }
- };
-
- Column.prototype.setWidth = function (width) {
-
- this.widthFixed = true;
-
- this.setWidthActual(width);
- };
-
- Column.prototype.setWidthActual = function (width) {
-
- if (isNaN(width)) {
-
- width = Math.floor(this.table.element.clientWidth / 100 * parseInt(width));
- }
-
- width = Math.max(this.minWidth, width);
-
- this.width = width;
-
- this.widthStyled = width ? width + "px" : "";
-
- this.element.style.width = this.widthStyled;
-
- if (!this.isGroup) {
-
- this.cells.forEach(function (cell) {
-
- cell.setWidth();
- });
- }
-
- if (this.parent.isGroup) {
-
- this.parent.matchChildWidths();
- }
-
- //set resizable handles
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
- };
-
- Column.prototype.checkCellHeights = function () {
-
- var rows = [];
-
- this.cells.forEach(function (cell) {
-
- if (cell.row.heightInitialized) {
-
- if (cell.row.getElement().offsetParent !== null) {
-
- rows.push(cell.row);
-
- cell.row.clearCellHeight();
- } else {
-
- cell.row.heightInitialized = false;
- }
- }
- });
-
- rows.forEach(function (row) {
-
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
-
- row.setCellHeight();
- });
- };
-
- Column.prototype.getWidth = function () {
-
- var width = 0;
-
- if (this.isGroup) {
-
- this.columns.forEach(function (column) {
-
- if (column.visible) {
-
- width += column.getWidth();
- }
- });
- } else {
-
- width = this.width;
- }
-
- return width;
- };
-
- Column.prototype.getHeight = function () {
-
- return this.element.offsetHeight;
- };
-
- Column.prototype.setMinWidth = function (minWidth) {
-
- this.minWidth = minWidth;
-
- this.minWidthStyled = minWidth ? minWidth + "px" : "";
-
- this.element.style.minWidth = this.minWidthStyled;
-
- this.cells.forEach(function (cell) {
-
- cell.setMinWidth();
- });
- };
-
- Column.prototype.delete = function () {
- var _this7 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this7.isGroup) {
-
- _this7.columns.forEach(function (column) {
-
- column.delete();
- });
- }
-
- //cancel edit if column is currently being edited
-
- if (_this7.table.modExists("edit")) {
-
- if (_this7.table.modules.edit.currentCell.column === _this7) {
-
- _this7.table.modules.edit.cancelEdit();
- }
- }
-
- var cellCount = _this7.cells.length;
-
- for (var _i3 = 0; _i3 < cellCount; _i3++) {
-
- _this7.cells[0].delete();
- }
-
- _this7.element.parentNode.removeChild(_this7.element);
-
- _this7.table.columnManager.deregisterColumn(_this7);
-
- resolve();
- });
- };
-
- Column.prototype.columnRendered = function () {
-
- if (this.titleFormatterRendered) {
-
- this.titleFormatterRendered();
- }
- };
-
- Column.prototype.validate = function () {
-
- var invalid = [];
-
- this.cells.forEach(function (cell) {
-
- if (!cell.validate()) {
-
- invalid.push(cell.getComponent());
- }
- });
-
- return invalid.length ? invalid : true;
- };
-
- //////////////// Cell Management /////////////////
-
-
- //generate cell for this column
-
- Column.prototype.generateCell = function (row) {
-
- var self = this;
-
- var cell = new Cell(self, row);
-
- this.cells.push(cell);
-
- return cell;
- };
-
- Column.prototype.nextColumn = function () {
-
- var index = this.table.columnManager.findColumnIndex(this);
-
- return index > -1 ? this._nextVisibleColumn(index + 1) : false;
- };
-
- Column.prototype._nextVisibleColumn = function (index) {
-
- var column = this.table.columnManager.getColumnByIndex(index);
-
- return !column || column.visible ? column : this._nextVisibleColumn(index + 1);
- };
-
- Column.prototype.prevColumn = function () {
-
- var index = this.table.columnManager.findColumnIndex(this);
-
- return index > -1 ? this._prevVisibleColumn(index - 1) : false;
- };
-
- Column.prototype._prevVisibleColumn = function (index) {
-
- var column = this.table.columnManager.getColumnByIndex(index);
-
- return !column || column.visible ? column : this._prevVisibleColumn(index - 1);
- };
-
- Column.prototype.reinitializeWidth = function (force) {
-
- this.widthFixed = false;
-
- //set width if present
-
- if (typeof this.definition.width !== "undefined" && !force) {
-
- this.setWidth(this.definition.width);
- }
-
- //hide header filters to prevent them altering column width
-
- if (this.table.modExists("filter")) {
-
- this.table.modules.filter.hideHeaderFilterElements();
- }
-
- this.fitToData();
-
- //show header filters again after layout is complete
-
- if (this.table.modExists("filter")) {
-
- this.table.modules.filter.showHeaderFilterElements();
- }
- };
-
- //set column width to maximum cell width
-
- Column.prototype.fitToData = function () {
-
- var self = this;
-
- if (!this.widthFixed) {
-
- this.element.style.width = "";
-
- self.cells.forEach(function (cell) {
-
- cell.clearWidth();
- });
- }
-
- var maxWidth = this.element.offsetWidth;
-
- if (!self.width || !this.widthFixed) {
-
- self.cells.forEach(function (cell) {
-
- var width = cell.getWidth();
-
- if (width > maxWidth) {
-
- maxWidth = width;
- }
- });
-
- if (maxWidth) {
-
- self.setWidthActual(maxWidth + 1);
- }
- }
- };
-
- Column.prototype.updateDefinition = function (updates) {
- var _this8 = this;
-
- return new Promise(function (resolve, reject) {
-
- var definition;
-
- if (!_this8.isGroup) {
-
- definition = Object.assign({}, _this8.getDefinition());
-
- definition = Object.assign(definition, updates);
-
- _this8.table.columnManager.addColumn(definition, false, _this8).then(function (column) {
-
- if (definition.field == _this8.field) {
-
- _this8.field = false; //cleair field name to prevent deletion of duplicate column from arrays
- }
-
- _this8.delete().then(function () {
-
- resolve(column.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups");
-
- reject("Column Update Error - The updateDefintion function is only available on columns, not column groups");
- }
- });
- };
-
- Column.prototype.deleteCell = function (cell) {
-
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
-
- this.cells.splice(index, 1);
- }
- };
-
- Column.prototype.defaultOptionList = ["title", "field", "columns", "visible", "align", "hozAlign", "vertAlign", "width", "minWidth", "widthGrow", "widthShrink", "resizable", "frozen", "responsive", "tooltip", "cssClass", "rowHandle", "hideInHtml", "print", "htmlOutput", "sorter", "sorterParams", "formatter", "formatterParams", "variableHeight", "editable", "editor", "editorParams", "validator", "mutator", "mutatorParams", "mutatorData", "mutatorDataParams", "mutatorEdit", "mutatorEditParams", "mutatorClipboard", "mutatorClipboardParams", "accessor", "accessorParams", "accessorData", "accessorDataParams", "accessorDownload", "accessorDownloadParams", "accessorClipboard", "accessorClipboardParams", "accessorPrint", "accessorPrintParams", "accessorHtmlOutput", "accessorHtmlOutputParams", "clipboard", "download", "downloadTitle", "topCalc", "topCalcParams", "topCalcFormatter", "topCalcFormatterParams", "bottomCalc", "bottomCalcParams", "bottomCalcFormatter", "bottomCalcFormatterParams", "cellClick", "cellDblClick", "cellContext", "cellTap", "cellDblTap", "cellTapHold", "cellMouseEnter", "cellMouseLeave", "cellMouseOver", "cellMouseOut", "cellMouseMove", "cellEditing", "cellEdited", "cellEditCancelled", "headerSort", "headerSortStartingDir", "headerSortTristate", "headerClick", "headerDblClick", "headerContext", "headerTap", "headerDblTap", "headerTapHold", "headerTooltip", "headerVertical", "editableTitle", "titleFormatter", "titleFormatterParams", "headerFilter", "headerFilterPlaceholder", "headerFilterParams", "headerFilterEmptyCheck", "headerFilterFunc", "headerFilterFuncParams", "headerFilterLiveFilter", "print", "headerContextMenu", "headerMenu", "contextMenu", "formatterPrint", "formatterPrintParams", "formatterClipboard", "formatterClipboardParams", "formatterHtmlOutput", "formatterHtmlOutputParams", "titlePrint", "titleClipboard", "titleHtmlOutput", "titleDownload"];
-
- //////////////// Event Bindings /////////////////
-
-
- //////////////// Object Generation /////////////////
-
- Column.prototype.getComponent = function () {
-
- if (!this.component) {
-
- this.component = new ColumnComponent(this);
- }
-
- return this.component;
- };
-
- var RowManager = function RowManager(table) {
-
- this.table = table;
-
- this.element = this.createHolderElement(); //containing element
-
- this.tableElement = this.createTableElement(); //table element
-
- this.heightFixer = this.createTableElement(); //table element
-
- this.columnManager = null; //hold column manager object
-
- this.height = 0; //hold height of table element
-
-
- this.firstRender = false; //handle first render
-
- this.renderMode = "virtual"; //current rendering mode
-
- this.fixedHeight = false; //current rendering mode
-
-
- this.rows = []; //hold row data objects
-
- this.activeRows = []; //rows currently available to on display in the table
-
- this.activeRowsCount = 0; //count of active rows
-
-
- this.displayRows = []; //rows currently on display in the table
-
- this.displayRowsCount = 0; //count of display rows
-
-
- this.scrollTop = 0;
-
- this.scrollLeft = 0;
-
- this.vDomRowHeight = 20; //approximation of row heights for padding
-
-
- this.vDomTop = 0; //hold position for first rendered row in the virtual DOM
-
- this.vDomBottom = 0; //hold possition for last rendered row in the virtual DOM
-
-
- this.vDomScrollPosTop = 0; //last scroll position of the vDom top;
-
- this.vDomScrollPosBottom = 0; //last scroll position of the vDom bottom;
-
-
- this.vDomTopPad = 0; //hold value of padding for top of virtual DOM
-
- this.vDomBottomPad = 0; //hold value of padding for bottom of virtual DOM
-
-
- this.vDomMaxRenderChain = 90; //the maximum number of dom elements that can be rendered in 1 go
-
-
- this.vDomWindowBuffer = 0; //window row buffer before removing elements, to smooth scrolling
-
-
- this.vDomWindowMinTotalRows = 20; //minimum number of rows to be generated in virtual dom (prevent buffering issues on tables with tall rows)
-
- this.vDomWindowMinMarginRows = 5; //minimum number of rows to be generated in virtual dom margin
-
-
- this.vDomTopNewRows = []; //rows to normalize after appending to optimize render speed
-
- this.vDomBottomNewRows = []; //rows to normalize after appending to optimize render speed
-
-
- this.rowNumColumn = false; //hold column component for row number column
-
-
- this.redrawBlock = false; //prevent redraws to allow multiple data manipulations becore continuing
-
- this.redrawBlockRestoreConfig = false; //store latest redraw function calls for when redraw is needed
-
- this.redrawBlockRederInPosition = false; //store latest redraw function calls for when redraw is needed
- };
-
- //////////////// Setup Functions /////////////////
-
-
- RowManager.prototype.createHolderElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-tableHolder");
-
- el.setAttribute("tabindex", 0);
-
- return el;
- };
-
- RowManager.prototype.createTableElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-table");
-
- return el;
- };
-
- //return containing element
-
- RowManager.prototype.getElement = function () {
-
- return this.element;
- };
-
- //return table element
-
- RowManager.prototype.getTableElement = function () {
-
- return this.tableElement;
- };
-
- //return position of row in table
-
- RowManager.prototype.getRowPosition = function (row, active) {
-
- if (active) {
-
- return this.activeRows.indexOf(row);
- } else {
-
- return this.rows.indexOf(row);
- }
- };
-
- //link to column manager
-
- RowManager.prototype.setColumnManager = function (manager) {
-
- this.columnManager = manager;
- };
-
- RowManager.prototype.initialize = function () {
-
- var self = this;
-
- self.setRenderMode();
-
- //initialize manager
-
- self.element.appendChild(self.tableElement);
-
- self.firstRender = true;
-
- //scroll header along with table body
-
- self.element.addEventListener("scroll", function () {
-
- var left = self.element.scrollLeft;
-
- //handle horizontal scrolling
-
- if (self.scrollLeft != left) {
-
- self.columnManager.scrollHorizontal(left);
-
- if (self.table.options.groupBy) {
-
- self.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (self.table.modExists("columnCalcs")) {
-
- self.table.modules.columnCalcs.scrollHorizontal(left);
- }
-
- self.table.options.scrollHorizontal(left);
- }
-
- self.scrollLeft = left;
- });
-
- //handle virtual dom scrolling
-
- if (this.renderMode === "virtual") {
-
- self.element.addEventListener("scroll", function () {
-
- var top = self.element.scrollTop;
-
- var dir = self.scrollTop > top;
-
- //handle verical scrolling
-
- if (self.scrollTop != top) {
-
- self.scrollTop = top;
-
- self.scrollVertical(dir);
-
- if (self.table.options.ajaxProgressiveLoad == "scroll") {
-
- self.table.modules.ajax.nextPage(self.element.scrollHeight - self.element.clientHeight - top);
- }
-
- self.table.options.scrollVertical(top);
- } else {
-
- self.scrollTop = top;
- }
- });
- }
- };
-
- ////////////////// Row Manipulation //////////////////
-
-
- RowManager.prototype.findRow = function (subject) {
-
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Row) {
-
- //subject is row element
-
- return subject;
- } else if (subject instanceof RowComponent) {
-
- //subject is public row component
-
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
-
- //subject is a HTML element of the row
-
- var match = self.rows.find(function (row) {
-
- return row.element === subject;
- });
-
- return match || false;
- }
- } else if (typeof subject == "undefined" || subject === null) {
-
- return false;
- } else {
-
- //subject should be treated as the index of the row
-
- var _match = self.rows.find(function (row) {
-
- return row.data[self.table.options.index] == subject;
- });
-
- return _match || false;
- }
-
- //catch all for any other type of input
-
-
- return false;
- };
-
- RowManager.prototype.getRowFromDataObject = function (data) {
-
- var match = this.rows.find(function (row) {
-
- return row.data === data;
- });
-
- return match || false;
- };
-
- RowManager.prototype.getRowFromPosition = function (position, active) {
-
- if (active) {
-
- return this.activeRows[position];
- } else {
-
- return this.rows[position];
- }
- };
-
- RowManager.prototype.scrollToRow = function (row, position, ifVisible) {
- var _this9 = this;
-
- var rowIndex = this.getDisplayRows().indexOf(row),
- rowEl = row.getElement(),
- rowTop,
- offset = 0;
-
- return new Promise(function (resolve, reject) {
-
- if (rowIndex > -1) {
-
- if (typeof position === "undefined") {
-
- position = _this9.table.options.scrollToRowPosition;
- }
-
- if (typeof ifVisible === "undefined") {
-
- ifVisible = _this9.table.options.scrollToRowIfVisible;
- }
-
- if (position === "nearest") {
-
- switch (_this9.renderMode) {
-
- case "classic":
-
- rowTop = Tabulator.prototype.helpers.elOffset(rowEl).top;
-
- position = Math.abs(_this9.element.scrollTop - rowTop) > Math.abs(_this9.element.scrollTop + _this9.element.clientHeight - rowTop) ? "bottom" : "top";
-
- break;
-
- case "virtual":
-
- position = Math.abs(_this9.vDomTop - rowIndex) > Math.abs(_this9.vDomBottom - rowIndex) ? "bottom" : "top";
-
- break;
-
- }
- }
-
- //check row visibility
-
- if (!ifVisible) {
-
- if (Tabulator.prototype.helpers.elVisible(rowEl)) {
-
- offset = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top;
-
- if (offset > 0 && offset < _this9.element.clientHeight - rowEl.offsetHeight) {
-
- return false;
- }
- }
- }
-
- //scroll to row
-
- switch (_this9.renderMode) {
-
- case "classic":
-
- _this9.element.scrollTop = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top + _this9.element.scrollTop;
-
- break;
-
- case "virtual":
-
- _this9._virtualRenderFill(rowIndex, true);
-
- break;
-
- }
-
- //align to correct position
-
- switch (position) {
-
- case "middle":
-
- case "center":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
-
- _this9.element.scrollTop = _this9.element.scrollTop + (rowEl.offsetTop - _this9.element.scrollTop) - (_this9.element.scrollHeight - rowEl.offsetTop) / 2;
- } else {
-
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight / 2;
- }
-
- break;
-
- case "bottom":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
-
- _this9.element.scrollTop = _this9.element.scrollTop - (_this9.element.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;
- } else {
-
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight + rowEl.offsetHeight;
- }
-
- break;
-
- }
-
- resolve();
- } else {
-
- console.warn("Scroll Error - Row not visible");
-
- reject("Scroll Error - Row not visible");
- }
- });
- };
-
- ////////////////// Data Handling //////////////////
-
-
- RowManager.prototype.setData = function (data, renderInPosition, columnsChanged) {
- var _this10 = this;
-
- var self = this;
-
- return new Promise(function (resolve, reject) {
-
- if (renderInPosition && _this10.getDisplayRows().length) {
-
- if (self.table.options.pagination) {
-
- self._setDataActual(data, true);
- } else {
-
- _this10.reRenderInPosition(function () {
-
- self._setDataActual(data);
- });
- }
- } else {
-
- if (_this10.table.options.autoColumns && columnsChanged) {
-
- _this10.table.columnManager.generateColumnsFromRowData(data);
- }
-
- _this10.resetScroll();
-
- _this10._setDataActual(data);
- }
-
- resolve();
- });
- };
-
- RowManager.prototype._setDataActual = function (data, renderInPosition) {
-
- var self = this;
-
- self.table.options.dataLoading.call(this.table, data);
-
- this._wipeElements();
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.clear();
- }
-
- if (Array.isArray(data)) {
-
- if (this.table.modExists("selectRow")) {
-
- this.table.modules.selectRow.clearSelectionData();
- }
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
-
- this.table.modules.reactiveData.watchData(data);
- }
-
- data.forEach(function (def, i) {
-
- if (def && (typeof def === 'undefined' ? 'undefined' : _typeof(def)) === "object") {
-
- var row = new Row(def, self);
-
- self.rows.push(row);
- } else {
-
- console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:", def);
- }
- });
-
- self.table.options.dataLoaded.call(this.table, data);
-
- self.refreshActiveData(false, false, renderInPosition);
- } else {
-
- console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ", typeof data === 'undefined' ? 'undefined' : _typeof(data), "\nData: ", data);
- }
- };
-
- RowManager.prototype._wipeElements = function () {
-
- this.rows.forEach(function (row) {
-
- row.wipe();
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.wipe();
- }
-
- this.rows = [];
- };
-
- RowManager.prototype.deleteRow = function (row, blockRedraw) {
-
- var allIndex = this.rows.indexOf(row),
- activeIndex = this.activeRows.indexOf(row);
-
- if (activeIndex > -1) {
-
- this.activeRows.splice(activeIndex, 1);
- }
-
- if (allIndex > -1) {
-
- this.rows.splice(allIndex, 1);
- }
-
- this.setActiveRows(this.activeRows);
-
- this.displayRowIterator(function (rows) {
-
- var displayIndex = rows.indexOf(row);
-
- if (displayIndex > -1) {
-
- rows.splice(displayIndex, 1);
- }
- });
-
- if (!blockRedraw) {
-
- this.reRenderInPosition();
- }
-
- this.regenerateRowNumbers();
-
- this.table.options.rowDeleted.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.updateGroupRows(true);
- } else if (this.table.options.pagination && this.table.modExists("page")) {
-
- this.refreshActiveData(false, false, true);
- } else {
-
- if (this.table.options.pagination && this.table.modExists("page")) {
-
- this.refreshActiveData("page");
- }
- }
- };
-
- RowManager.prototype.addRow = function (data, pos, index, blockRedraw) {
-
- var row = this.addRowActual(data, pos, index, blockRedraw);
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.action("rowAdd", row, { data: data, pos: pos, index: index });
- }
-
- return row;
- };
-
- //add multiple rows
-
- RowManager.prototype.addRows = function (data, pos, index) {
- var _this11 = this;
-
- var self = this,
- length = 0,
- rows = [];
-
- return new Promise(function (resolve, reject) {
-
- pos = _this11.findAddRowPos(pos);
-
- if (!Array.isArray(data)) {
-
- data = [data];
- }
-
- length = data.length - 1;
-
- if (typeof index == "undefined" && pos || typeof index !== "undefined" && !pos) {
-
- data.reverse();
- }
-
- data.forEach(function (item, i) {
-
- var row = self.addRow(item, pos, index, true);
-
- rows.push(row);
- });
-
- if (_this11.table.options.groupBy && _this11.table.modExists("groupRows")) {
-
- _this11.table.modules.groupRows.updateGroupRows(true);
- } else if (_this11.table.options.pagination && _this11.table.modExists("page")) {
-
- _this11.refreshActiveData(false, false, true);
- } else {
-
- _this11.reRenderInPosition();
- }
-
- //recalc column calculations if present
-
- if (_this11.table.modExists("columnCalcs")) {
-
- _this11.table.modules.columnCalcs.recalc(_this11.table.rowManager.activeRows);
- }
-
- _this11.regenerateRowNumbers();
-
- resolve(rows);
- });
- };
-
- RowManager.prototype.findAddRowPos = function (pos) {
-
- if (typeof pos === "undefined") {
-
- pos = this.table.options.addRowPos;
- }
-
- if (pos === "pos") {
-
- pos = true;
- }
-
- if (pos === "bottom") {
-
- pos = false;
- }
-
- return pos;
- };
-
- RowManager.prototype.addRowActual = function (data, pos, index, blockRedraw) {
-
- var row = data instanceof Row ? data : new Row(data || {}, this),
- top = this.findAddRowPos(pos),
- allIndex = -1,
- activeIndex,
- dispRows;
-
- if (!index && this.table.options.pagination && this.table.options.paginationAddRow == "page") {
-
- dispRows = this.getDisplayRows();
-
- if (top) {
-
- if (dispRows.length) {
-
- index = dispRows[0];
- } else {
-
- if (this.activeRows.length) {
-
- index = this.activeRows[this.activeRows.length - 1];
-
- top = false;
- }
- }
- } else {
-
- if (dispRows.length) {
-
- index = dispRows[dispRows.length - 1];
-
- top = dispRows.length < this.table.modules.page.getPageSize() ? false : true;
- }
- }
- }
-
- if (typeof index !== "undefined") {
-
- index = this.findRow(index);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.assignRowToGroup(row);
-
- var groupRows = row.getGroup().rows;
-
- if (groupRows.length > 1) {
-
- if (!index || index && groupRows.indexOf(index) == -1) {
-
- if (top) {
-
- if (groupRows[0] !== row) {
-
- index = groupRows[0];
-
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- } else {
-
- if (groupRows[groupRows.length - 1] !== row) {
-
- index = groupRows[groupRows.length - 1];
-
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- } else {
-
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- }
-
- if (index) {
-
- allIndex = this.rows.indexOf(index);
- }
-
- if (index && allIndex > -1) {
-
- activeIndex = this.activeRows.indexOf(index);
-
- this.displayRowIterator(function (rows) {
-
- var displayIndex = rows.indexOf(index);
-
- if (displayIndex > -1) {
-
- rows.splice(top ? displayIndex : displayIndex + 1, 0, row);
- }
- });
-
- if (activeIndex > -1) {
-
- this.activeRows.splice(top ? activeIndex : activeIndex + 1, 0, row);
- }
-
- this.rows.splice(top ? allIndex : allIndex + 1, 0, row);
- } else {
-
- if (top) {
-
- this.displayRowIterator(function (rows) {
-
- rows.unshift(row);
- });
-
- this.activeRows.unshift(row);
-
- this.rows.unshift(row);
- } else {
-
- this.displayRowIterator(function (rows) {
-
- rows.push(row);
- });
-
- this.activeRows.push(row);
-
- this.rows.push(row);
- }
- }
-
- this.setActiveRows(this.activeRows);
-
- this.table.options.rowAdded.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (!blockRedraw) {
-
- this.reRenderInPosition();
- }
-
- return row;
- };
-
- RowManager.prototype.moveRow = function (from, to, after) {
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.action("rowMove", from, { posFrom: this.getRowPosition(from), posTo: this.getRowPosition(to), to: to, after: after });
- }
-
- this.moveRowActual(from, to, after);
-
- this.regenerateRowNumbers();
-
- this.table.options.rowMoved.call(this.table, from.getComponent());
- };
-
- RowManager.prototype.moveRowActual = function (from, to, after) {
- var _this12 = this;
-
- this._moveRowInArray(this.rows, from, to, after);
-
- this._moveRowInArray(this.activeRows, from, to, after);
-
- this.displayRowIterator(function (rows) {
-
- _this12._moveRowInArray(rows, from, to, after);
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (!after && to instanceof Group) {
-
- to = this.table.rowManager.prevDisplayRow(from) || to;
- }
-
- var toGroup = to.getGroup();
-
- var fromGroup = from.getGroup();
-
- if (toGroup === fromGroup) {
-
- this._moveRowInArray(toGroup.rows, from, to, after);
- } else {
-
- if (fromGroup) {
-
- fromGroup.removeRow(from);
- }
-
- toGroup.insertRow(from, to, after);
- }
- }
- };
-
- RowManager.prototype._moveRowInArray = function (rows, from, to, after) {
-
- var fromIndex, toIndex, start, end;
-
- if (from !== to) {
-
- fromIndex = rows.indexOf(from);
-
- if (fromIndex > -1) {
-
- rows.splice(fromIndex, 1);
-
- toIndex = rows.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
-
- rows.splice(toIndex + 1, 0, from);
- } else {
-
- rows.splice(toIndex, 0, from);
- }
- } else {
-
- rows.splice(fromIndex, 0, from);
- }
- }
-
- //restyle rows
-
- if (rows === this.getDisplayRows()) {
-
- start = fromIndex < toIndex ? fromIndex : toIndex;
-
- end = toIndex > fromIndex ? toIndex : fromIndex + 1;
-
- for (var _i4 = start; _i4 <= end; _i4++) {
-
- if (rows[_i4]) {
-
- this.styleRow(rows[_i4], _i4);
- }
- }
- }
- }
- };
-
- RowManager.prototype.clearData = function () {
-
- this.setData([]);
- };
-
- RowManager.prototype.getRowIndex = function (row) {
-
- return this.findRowIndex(row, this.rows);
- };
-
- RowManager.prototype.getDisplayRowIndex = function (row) {
-
- var index = this.getDisplayRows().indexOf(row);
-
- return index > -1 ? index : false;
- };
-
- RowManager.prototype.nextDisplayRow = function (row, rowOnly) {
-
- var index = this.getDisplayRowIndex(row),
- nextRow = false;
-
- if (index !== false && index < this.displayRowsCount - 1) {
-
- nextRow = this.getDisplayRows()[index + 1];
- }
-
- if (nextRow && (!(nextRow instanceof Row) || nextRow.type != "row")) {
-
- return this.nextDisplayRow(nextRow, rowOnly);
- }
-
- return nextRow;
- };
-
- RowManager.prototype.prevDisplayRow = function (row, rowOnly) {
-
- var index = this.getDisplayRowIndex(row),
- prevRow = false;
-
- if (index) {
-
- prevRow = this.getDisplayRows()[index - 1];
- }
-
- if (rowOnly && prevRow && (!(prevRow instanceof Row) || prevRow.type != "row")) {
-
- return this.prevDisplayRow(prevRow, rowOnly);
- }
-
- return prevRow;
- };
-
- RowManager.prototype.findRowIndex = function (row, list) {
-
- var rowIndex;
-
- row = this.findRow(row);
-
- if (row) {
-
- rowIndex = list.indexOf(row);
-
- if (rowIndex > -1) {
-
- return rowIndex;
- }
- }
-
- return false;
- };
-
- RowManager.prototype.getData = function (active, transform) {
-
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
-
- if (row.type == "row") {
-
- output.push(row.getData(transform || "data"));
- }
- });
-
- return output;
- };
-
- RowManager.prototype.getComponents = function (active) {
-
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
-
- output.push(row.getComponent());
- });
-
- return output;
- };
-
- RowManager.prototype.getDataCount = function (active) {
-
- var rows = this.getRows(active);
-
- return rows.length;
- };
-
- RowManager.prototype._genRemoteRequest = function () {
- var _this13 = this;
-
- var table = this.table,
- options = table.options,
- params = {};
-
- if (table.modExists("page")) {
-
- //set sort data if defined
-
- if (options.ajaxSorting) {
-
- var sorters = this.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
-
- delete item.column;
- });
-
- params[this.table.modules.page.paginationDataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
-
- if (options.ajaxFiltering) {
-
- var filters = this.table.modules.filter.getFilters(true, true);
-
- params[this.table.modules.page.paginationDataSentNames.filters] = filters;
- }
-
- this.table.modules.ajax.setParams(params, true);
- }
-
- table.modules.ajax.sendRequest().then(function (data) {
-
- _this13._setDataActual(data, true);
- }).catch(function (e) {});
- };
-
- //choose the path to refresh data after a filter update
-
- RowManager.prototype.filterRefresh = function () {
-
- var table = this.table,
- options = table.options,
- left = this.scrollLeft;
-
- if (options.ajaxFiltering) {
-
- if (options.pagination == "remote" && table.modExists("page")) {
-
- table.modules.page.reset(true);
-
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
-
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
-
- //assume data is url, make ajax call to url to get data
-
- this._genRemoteRequest();
- }
- } else {
-
- this.refreshActiveData("filter");
- }
-
- this.scrollHorizontal(left);
- };
-
- //choose the path to refresh data after a sorter update
-
- RowManager.prototype.sorterRefresh = function (loadOrignalData) {
-
- var table = this.table,
- options = this.table.options,
- left = this.scrollLeft;
-
- if (options.ajaxSorting) {
-
- if ((options.pagination == "remote" || options.progressiveLoad) && table.modExists("page")) {
-
- table.modules.page.reset(true);
-
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
-
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
-
- //assume data is url, make ajax call to url to get data
-
- this._genRemoteRequest();
- }
- } else {
-
- this.refreshActiveData(loadOrignalData ? "filter" : "sort");
- }
-
- this.scrollHorizontal(left);
- };
-
- RowManager.prototype.scrollHorizontal = function (left) {
-
- this.scrollLeft = left;
-
- this.element.scrollLeft = left;
-
- if (this.table.options.groupBy) {
-
- this.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.scrollHorizontal(left);
- }
- };
-
- //set active data set
-
- RowManager.prototype.refreshActiveData = function (stage, skipStage, renderInPosition) {
-
- var self = this,
- table = this.table,
- cascadeOrder = ["all", "filter", "sort", "display", "freeze", "group", "tree", "page"],
- displayIndex;
-
- if (this.redrawBlock) {
-
- if (!this.redrawBlockRestoreConfig || cascadeOrder.indexOf(stage) < cascadeOrder.indexOf(this.redrawBlockRestoreConfig.stage)) {
-
- this.redrawBlockRestoreConfig = {
-
- stage: stage,
-
- skipStage: skipStage,
-
- renderInPosition: renderInPosition
-
- };
- }
-
- return;
- } else {
-
- if (self.table.modExists("edit")) {
-
- self.table.modules.edit.cancelEdit();
- }
-
- if (!stage) {
-
- stage = "all";
- }
-
- if (table.options.selectable && !table.options.selectablePersistence && table.modExists("selectRow")) {
-
- table.modules.selectRow.deselectRows();
- }
-
- //cascade through data refresh stages
-
- switch (stage) {
-
- case "all":
-
- case "filter":
-
- if (!skipStage) {
-
- if (table.modExists("filter")) {
-
- self.setActiveRows(table.modules.filter.filter(self.rows));
- } else {
-
- self.setActiveRows(self.rows.slice(0));
- }
- } else {
-
- skipStage = false;
- }
-
- case "sort":
-
- if (!skipStage) {
-
- if (table.modExists("sort")) {
-
- table.modules.sort.sort(this.activeRows);
- }
- } else {
-
- skipStage = false;
- }
-
- //regenerate row numbers for row number formatter if in use
-
- this.regenerateRowNumbers();
-
- //generic stage to allow for pipeline trigger after the data manipulation stage
-
- case "display":
-
- this.resetDisplayRows();
-
- case "freeze":
-
- if (!skipStage) {
-
- if (this.table.modExists("frozenRows")) {
-
- if (table.modules.frozenRows.isFrozen()) {
-
- if (!table.modules.frozenRows.getDisplayIndex()) {
-
- table.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.frozenRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.frozenRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.frozenRows.setDisplayIndex(displayIndex);
- }
- }
- }
- } else {
-
- skipStage = false;
- }
-
- case "group":
-
- if (!skipStage) {
-
- if (table.options.groupBy && table.modExists("groupRows")) {
-
- if (!table.modules.groupRows.getDisplayIndex()) {
-
- table.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.groupRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.groupRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.groupRows.setDisplayIndex(displayIndex);
- }
- }
- } else {
-
- skipStage = false;
- }
-
- case "tree":
-
- if (!skipStage) {
-
- if (table.options.dataTree && table.modExists("dataTree")) {
-
- if (!table.modules.dataTree.getDisplayIndex()) {
-
- table.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.dataTree.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.dataTree.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.dataTree.setDisplayIndex(displayIndex);
- }
- }
- } else {
-
- skipStage = false;
- }
-
- if (table.options.pagination && table.modExists("page") && !renderInPosition) {
-
- if (table.modules.page.getMode() == "local") {
-
- table.modules.page.reset();
- }
- }
-
- case "page":
-
- if (!skipStage) {
-
- if (table.options.pagination && table.modExists("page")) {
-
- if (!table.modules.page.getDisplayIndex()) {
-
- table.modules.page.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.page.getDisplayIndex();
-
- if (table.modules.page.getMode() == "local") {
-
- table.modules.page.setMaxRows(this.getDisplayRows(displayIndex - 1).length);
- }
-
- displayIndex = self.setDisplayRows(table.modules.page.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
-
- table.modules.page.setDisplayIndex(displayIndex);
- }
- }
- } else {
-
- skipStage = false;
- }
-
- }
-
- if (Tabulator.prototype.helpers.elVisible(self.element)) {
-
- if (renderInPosition) {
-
- self.reRenderInPosition();
- } else {
-
- self.renderTable();
-
- if (table.options.layoutColumnsOnNewData) {
-
- self.table.columnManager.redraw(true);
- }
- }
- }
-
- if (table.modExists("columnCalcs")) {
-
- table.modules.columnCalcs.recalc(this.activeRows);
- }
- }
- };
-
- //regenerate row numbers for row number formatter if in use
-
- RowManager.prototype.regenerateRowNumbers = function () {
- var _this14 = this;
-
- if (this.rowNumColumn) {
-
- this.activeRows.forEach(function (row) {
-
- var cell = row.getCell(_this14.rowNumColumn);
-
- if (cell) {
-
- cell._generateContents();
- }
- });
- }
- };
-
- RowManager.prototype.setActiveRows = function (activeRows) {
-
- this.activeRows = activeRows;
-
- this.activeRowsCount = this.activeRows.length;
- };
-
- //reset display rows array
-
- RowManager.prototype.resetDisplayRows = function () {
-
- this.displayRows = [];
-
- this.displayRows.push(this.activeRows.slice(0));
-
- this.displayRowsCount = this.displayRows[0].length;
-
- if (this.table.modExists("frozenRows")) {
-
- this.table.modules.frozenRows.setDisplayIndex(0);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.groupRows.setDisplayIndex(0);
- }
-
- if (this.table.options.pagination && this.table.modExists("page")) {
-
- this.table.modules.page.setDisplayIndex(0);
- }
- };
-
- RowManager.prototype.getNextDisplayIndex = function () {
-
- return this.displayRows.length;
- };
-
- //set display row pipeline data
-
- RowManager.prototype.setDisplayRows = function (displayRows, index) {
-
- var output = true;
-
- if (index && typeof this.displayRows[index] != "undefined") {
-
- this.displayRows[index] = displayRows;
-
- output = true;
- } else {
-
- this.displayRows.push(displayRows);
-
- output = index = this.displayRows.length - 1;
- }
-
- if (index == this.displayRows.length - 1) {
-
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
- }
-
- return output;
- };
-
- RowManager.prototype.getDisplayRows = function (index) {
-
- if (typeof index == "undefined") {
-
- return this.displayRows.length ? this.displayRows[this.displayRows.length - 1] : [];
- } else {
-
- return this.displayRows[index] || [];
- }
- };
-
- RowManager.prototype.getVisibleRows = function (viewable) {
-
- var topEdge = this.element.scrollTop,
- bottomEdge = this.element.clientHeight + topEdge,
- topFound = false,
- topRow = 0,
- bottomRow = 0,
- rows = this.getDisplayRows();
-
- if (viewable) {
-
- this.getDisplayRows();
-
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
-
- if (rows[i]) {
-
- if (!topFound) {
-
- if (topEdge - rows[i].getElement().offsetTop >= 0) {
-
- topRow = i;
- } else {
-
- topFound = true;
-
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
-
- bottomRow = i;
- } else {
-
- break;
- }
- }
- } else {
-
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
-
- bottomRow = i;
- } else {
-
- break;
- }
- }
- }
- }
- } else {
-
- topRow = this.vDomTop;
-
- bottomRow = this.vDomBottom;
- }
-
- return rows.slice(topRow, bottomRow + 1);
- };
-
- //repeat action accross display rows
-
- RowManager.prototype.displayRowIterator = function (callback) {
-
- this.displayRows.forEach(callback);
-
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
- };
-
- //return only actual rows (not group headers etc)
-
- RowManager.prototype.getRows = function (active) {
-
- var rows;
-
- switch (active) {
-
- case "active":
-
- rows = this.activeRows;
-
- break;
-
- case "display":
-
- rows = this.table.rowManager.getDisplayRows();
-
- break;
-
- case "visible":
-
- rows = this.getVisibleRows(true);
-
- break;
-
- default:
-
- rows = this.rows;
-
- }
-
- return rows;
- };
-
- ///////////////// Table Rendering /////////////////
-
-
- //trigger rerender of table in current position
-
- RowManager.prototype.reRenderInPosition = function (callback) {
-
- if (this.getRenderMode() == "virtual") {
-
- if (this.redrawBlock) {
-
- if (callback) {
-
- callback();
- } else {
-
- this.redrawBlockRederInPosition = true;
- }
- } else {
-
- var scrollTop = this.element.scrollTop;
-
- var topRow = false;
-
- var topOffset = false;
-
- var left = this.scrollLeft;
-
- var rows = this.getDisplayRows();
-
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
-
- if (rows[i]) {
-
- var diff = scrollTop - rows[i].getElement().offsetTop;
-
- if (topOffset === false || Math.abs(diff) < topOffset) {
-
- topOffset = diff;
-
- topRow = i;
- } else {
-
- break;
- }
- }
- }
-
- if (callback) {
-
- callback();
- }
-
- this._virtualRenderFill(topRow === false ? this.displayRowsCount - 1 : topRow, true, topOffset || 0);
-
- this.scrollHorizontal(left);
- }
- } else {
-
- this.renderTable();
-
- if (callback) {
-
- callback();
- }
- }
- };
-
- RowManager.prototype.setRenderMode = function () {
-
- if (this.table.options.virtualDom) {
-
- this.renderMode = "virtual";
-
- if (this.table.element.clientHeight || this.table.options.height) {
-
- this.fixedHeight = true;
- } else {
-
- this.fixedHeight = false;
- }
- } else {
-
- this.renderMode = "classic";
- }
- };
-
- RowManager.prototype.getRenderMode = function () {
-
- return this.renderMode;
- };
-
- RowManager.prototype.renderTable = function () {
-
- this.table.options.renderStarted.call(this.table);
-
- this.element.scrollTop = 0;
-
- switch (this.renderMode) {
-
- case "classic":
-
- this._simpleRender();
-
- break;
-
- case "virtual":
-
- this._virtualRenderFill();
-
- break;
-
- }
-
- if (this.firstRender) {
-
- if (this.displayRowsCount) {
-
- this.firstRender = false;
-
- this.table.modules.layout.layout();
- } else {
-
- this.renderEmptyScroll();
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
-
- if (!this.displayRowsCount) {
-
- if (this.table.options.placeholder) {
-
- this.table.options.placeholder.setAttribute("tabulator-render-mode", this.renderMode);
-
- this.getElement().appendChild(this.table.options.placeholder);
-
- this.table.options.placeholder.style.width = this.table.columnManager.getWidth() + "px";
- }
- }
-
- this.table.options.renderComplete.call(this.table);
- };
-
- //simple render on heightless table
-
- RowManager.prototype._simpleRender = function () {
-
- this._clearVirtualDom();
-
- if (this.displayRowsCount) {
-
- this.checkClassicModeGroupHeaderWidth();
- } else {
-
- this.renderEmptyScroll();
- }
- };
-
- RowManager.prototype.checkClassicModeGroupHeaderWidth = function () {
-
- var self = this,
- element = this.tableElement,
- onlyGroupHeaders = true;
-
- self.getDisplayRows().forEach(function (row, index) {
-
- self.styleRow(row, index);
-
- element.appendChild(row.getElement());
-
- row.initialize(true);
-
- if (row.type !== "group") {
-
- onlyGroupHeaders = false;
- }
- });
-
- if (onlyGroupHeaders) {
-
- element.style.minWidth = self.table.columnManager.getWidth() + "px";
- } else {
-
- element.style.minWidth = "";
- }
- };
-
- //show scrollbars on empty table div
-
- RowManager.prototype.renderEmptyScroll = function () {
-
- if (this.table.options.placeholder) {
-
- this.tableElement.style.display = "none";
- } else {
-
- this.tableElement.style.minWidth = this.table.columnManager.getWidth() + "px";
-
- this.tableElement.style.minHeight = "1px";
-
- this.tableElement.style.visibility = "hidden";
- }
- };
-
- RowManager.prototype._clearVirtualDom = function () {
-
- var element = this.tableElement;
-
- if (this.table.options.placeholder && this.table.options.placeholder.parentNode) {
-
- this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);
- }
-
- // element.children.detach();
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.style.paddingTop = "";
-
- element.style.paddingBottom = "";
-
- element.style.minWidth = "";
-
- element.style.minHeight = "";
-
- element.style.display = "";
-
- element.style.visibility = "";
-
- this.scrollTop = 0;
-
- this.scrollLeft = 0;
-
- this.vDomTop = 0;
-
- this.vDomBottom = 0;
-
- this.vDomTopPad = 0;
-
- this.vDomBottomPad = 0;
- };
-
- RowManager.prototype.styleRow = function (row, index) {
-
- var rowEl = row.getElement();
-
- if (index % 2) {
-
- rowEl.classList.add("tabulator-row-even");
-
- rowEl.classList.remove("tabulator-row-odd");
- } else {
-
- rowEl.classList.add("tabulator-row-odd");
-
- rowEl.classList.remove("tabulator-row-even");
- }
- };
-
- //full virtual render
-
- RowManager.prototype._virtualRenderFill = function (position, forceMove, offset) {
-
- var self = this,
- element = self.tableElement,
- holder = self.element,
- topPad = 0,
- rowsHeight = 0,
- topPadHeight = 0,
- i = 0,
- onlyGroupHeaders = true,
- rows = self.getDisplayRows();
-
- position = position || 0;
-
- offset = offset || 0;
-
- if (!position) {
-
- self._clearVirtualDom();
- } else {
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //check if position is too close to bottom of table
-
- var heightOccupied = (self.displayRowsCount - position + 1) * self.vDomRowHeight;
-
- if (heightOccupied < self.height) {
-
- position -= Math.ceil((self.height - heightOccupied) / self.vDomRowHeight);
-
- if (position < 0) {
-
- position = 0;
- }
- }
-
- //calculate initial pad
-
- topPad = Math.min(Math.max(Math.floor(self.vDomWindowBuffer / self.vDomRowHeight), self.vDomWindowMinMarginRows), position);
-
- position -= topPad;
- }
-
- if (self.displayRowsCount && Tabulator.prototype.helpers.elVisible(self.element)) {
-
- self.vDomTop = position;
-
- self.vDomBottom = position - 1;
-
- while ((rowsHeight <= self.height + self.vDomWindowBuffer || i < self.vDomWindowMinTotalRows) && self.vDomBottom < self.displayRowsCount - 1) {
-
- var index = self.vDomBottom + 1,
- row = rows[index],
- rowHeight = 0;
-
- self.styleRow(row, index);
-
- element.appendChild(row.getElement());
-
- if (!row.initialized) {
-
- row.initialize(true);
- } else {
-
- if (!row.heightInitialized) {
-
- row.normalizeHeight(true);
- }
- }
-
- rowHeight = row.getHeight();
-
- if (i < topPad) {
-
- topPadHeight += rowHeight;
- } else {
-
- rowsHeight += rowHeight;
- }
-
- if (rowHeight > this.vDomWindowBuffer) {
-
- this.vDomWindowBuffer = rowHeight * 2;
- }
-
- if (row.type !== "group") {
-
- onlyGroupHeaders = false;
- }
-
- self.vDomBottom++;
-
- i++;
- }
-
- if (!position) {
-
- this.vDomTopPad = 0;
-
- //adjust rowheight to match average of rendered elements
-
- self.vDomRowHeight = Math.floor((rowsHeight + topPadHeight) / i);
-
- self.vDomBottomPad = self.vDomRowHeight * (self.displayRowsCount - self.vDomBottom - 1);
-
- self.vDomScrollHeight = topPadHeight + rowsHeight + self.vDomBottomPad - self.height;
- } else {
-
- self.vDomTopPad = !forceMove ? self.scrollTop - topPadHeight : self.vDomRowHeight * this.vDomTop + offset;
-
- self.vDomBottomPad = self.vDomBottom == self.displayRowsCount - 1 ? 0 : Math.max(self.vDomScrollHeight - self.vDomTopPad - rowsHeight - topPadHeight, 0);
- }
-
- element.style.paddingTop = self.vDomTopPad + "px";
-
- element.style.paddingBottom = self.vDomBottomPad + "px";
-
- if (forceMove) {
-
- this.scrollTop = self.vDomTopPad + topPadHeight + offset - (this.element.scrollWidth > this.element.clientWidth ? this.element.offsetHeight - this.element.clientHeight : 0);
- }
-
- this.scrollTop = Math.min(this.scrollTop, this.element.scrollHeight - this.height);
-
- //adjust for horizontal scrollbar if present (and not at top of table)
-
- if (this.element.scrollWidth > this.element.offsetWidth && forceMove) {
-
- this.scrollTop += this.element.offsetHeight - this.element.clientHeight;
- }
-
- this.vDomScrollPosTop = this.scrollTop;
-
- this.vDomScrollPosBottom = this.scrollTop;
-
- holder.scrollTop = this.scrollTop;
-
- element.style.minWidth = onlyGroupHeaders ? self.table.columnManager.getWidth() + "px" : "";
-
- if (self.table.options.groupBy) {
-
- if (self.table.modules.layout.getMode() != "fitDataFill" && self.displayRowsCount == self.table.modules.groupRows.countGroups()) {
-
- self.tableElement.style.minWidth = self.table.columnManager.getWidth();
- }
- }
- } else {
-
- this.renderEmptyScroll();
- }
-
- if (!this.fixedHeight) {
-
- this.adjustTableSize();
- }
- };
-
- //handle vertical scrolling
-
- RowManager.prototype.scrollVertical = function (dir) {
-
- var topDiff = this.scrollTop - this.vDomScrollPosTop;
-
- var bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
-
- var margin = this.vDomWindowBuffer * 2;
-
- if (-topDiff > margin || bottomDiff > margin) {
-
- //if big scroll redraw table;
-
- var left = this.scrollLeft;
-
- this._virtualRenderFill(Math.floor(this.element.scrollTop / this.element.scrollHeight * this.displayRowsCount));
-
- this.scrollHorizontal(left);
- } else {
-
- if (dir) {
-
- //scrolling up
-
- if (topDiff < 0) {
-
- this._addTopRow(-topDiff);
- }
-
- if (bottomDiff < 0) {
-
- //hide bottom row if needed
-
- if (this.vDomScrollHeight - this.scrollTop > this.vDomWindowBuffer) {
-
- this._removeBottomRow(-bottomDiff);
- } else {
-
- this.vDomScrollPosBottom = this.scrollTop;
- }
- }
- } else {
-
- //scrolling down
-
- if (topDiff >= 0) {
-
- //hide top row if needed
-
- if (this.scrollTop > this.vDomWindowBuffer) {
-
- this._removeTopRow(topDiff);
- } else {
-
- this.vDomScrollPosTop = this.scrollTop;
- }
- }
-
- if (bottomDiff >= 0) {
-
- this._addBottomRow(bottomDiff);
- }
- }
- }
- };
-
- RowManager.prototype._addTopRow = function (topDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomTop) {
-
- var index = this.vDomTop - 1,
- topRow = rows[index],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- //hide top row if needed
-
- if (topDiff >= topRowHeight) {
-
- this.styleRow(topRow, index);
-
- table.insertBefore(topRow.getElement(), table.firstChild);
-
- if (!topRow.initialized || !topRow.heightInitialized) {
-
- this.vDomTopNewRows.push(topRow);
-
- if (!topRow.heightInitialized) {
-
- topRow.clearCellHeight();
- }
- }
-
- topRow.initialize();
-
- this.vDomTopPad -= topRowHeight;
-
- if (this.vDomTopPad < 0) {
-
- this.vDomTopPad = index * this.vDomRowHeight;
- }
-
- if (!index) {
-
- this.vDomTopPad = 0;
- }
-
- table.style.paddingTop = this.vDomTopPad + "px";
-
- this.vDomScrollPosTop -= topRowHeight;
-
- this.vDomTop--;
- }
-
- topDiff = -(this.scrollTop - this.vDomScrollPosTop);
-
- if (topRow.getHeight() > this.vDomWindowBuffer) {
-
- this.vDomWindowBuffer = topRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomTop && topDiff >= (rows[this.vDomTop - 1].getHeight() || this.vDomRowHeight)) {
-
- this._addTopRow(topDiff, i + 1);
- } else {
-
- this._quickNormalizeRowHeight(this.vDomTopNewRows);
- }
- }
- };
-
- RowManager.prototype._removeTopRow = function (topDiff) {
-
- var table = this.tableElement,
- topRow = this.getDisplayRows()[this.vDomTop],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- if (topDiff >= topRowHeight) {
-
- var rowEl = topRow.getElement();
-
- rowEl.parentNode.removeChild(rowEl);
-
- this.vDomTopPad += topRowHeight;
-
- table.style.paddingTop = this.vDomTopPad + "px";
-
- this.vDomScrollPosTop += this.vDomTop ? topRowHeight : topRowHeight + this.vDomWindowBuffer;
-
- this.vDomTop++;
-
- topDiff = this.scrollTop - this.vDomScrollPosTop;
-
- this._removeTopRow(topDiff);
- }
- };
-
- RowManager.prototype._addBottomRow = function (bottomDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomBottom < this.displayRowsCount - 1) {
-
- var index = this.vDomBottom + 1,
- bottomRow = rows[index],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- //hide bottom row if needed
-
- if (bottomDiff >= bottomRowHeight) {
-
- this.styleRow(bottomRow, index);
-
- table.appendChild(bottomRow.getElement());
-
- if (!bottomRow.initialized || !bottomRow.heightInitialized) {
-
- this.vDomBottomNewRows.push(bottomRow);
-
- if (!bottomRow.heightInitialized) {
-
- bottomRow.clearCellHeight();
- }
- }
-
- bottomRow.initialize();
-
- this.vDomBottomPad -= bottomRowHeight;
-
- if (this.vDomBottomPad < 0 || index == this.displayRowsCount - 1) {
-
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
-
- this.vDomScrollPosBottom += bottomRowHeight;
-
- this.vDomBottom++;
- }
-
- bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
-
- if (bottomRow.getHeight() > this.vDomWindowBuffer) {
-
- this.vDomWindowBuffer = bottomRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomBottom < this.displayRowsCount - 1 && bottomDiff >= (rows[this.vDomBottom + 1].getHeight() || this.vDomRowHeight)) {
-
- this._addBottomRow(bottomDiff, i + 1);
- } else {
-
- this._quickNormalizeRowHeight(this.vDomBottomNewRows);
- }
- }
- };
-
- RowManager.prototype._removeBottomRow = function (bottomDiff) {
-
- var table = this.tableElement,
- bottomRow = this.getDisplayRows()[this.vDomBottom],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- if (bottomDiff >= bottomRowHeight) {
-
- var rowEl = bottomRow.getElement();
-
- if (rowEl.parentNode) {
-
- rowEl.parentNode.removeChild(rowEl);
- }
-
- this.vDomBottomPad += bottomRowHeight;
-
- if (this.vDomBottomPad < 0) {
-
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
-
- this.vDomScrollPosBottom -= bottomRowHeight;
-
- this.vDomBottom--;
-
- bottomDiff = -(this.scrollTop - this.vDomScrollPosBottom);
-
- this._removeBottomRow(bottomDiff);
- }
- };
-
- RowManager.prototype._quickNormalizeRowHeight = function (rows) {
-
- rows.forEach(function (row) {
-
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
-
- row.setCellHeight();
- });
-
- rows.length = 0;
- };
-
- //normalize height of active rows
-
- RowManager.prototype.normalizeHeight = function () {
-
- this.activeRows.forEach(function (row) {
-
- row.normalizeHeight();
- });
- };
-
- //adjust the height of the table holder to fit in the Tabulator element
-
- RowManager.prototype.adjustTableSize = function () {
-
- var initialHeight = this.element.clientHeight,
- modExists;
-
- if (this.renderMode === "virtual") {
-
- var otherHeight = this.columnManager.getElement().offsetHeight + (this.table.footerManager && !this.table.footerManager.external ? this.table.footerManager.getElement().offsetHeight : 0);
-
- if (this.fixedHeight) {
-
- this.element.style.minHeight = "calc(100% - " + otherHeight + "px)";
-
- this.element.style.height = "calc(100% - " + otherHeight + "px)";
-
- this.element.style.maxHeight = "calc(100% - " + otherHeight + "px)";
- } else {
-
- this.element.style.height = "";
-
- this.element.style.height = this.table.element.clientHeight - otherHeight + "px";
-
- this.element.scrollTop = this.scrollTop;
- }
-
- this.height = this.element.clientHeight;
-
- this.vDomWindowBuffer = this.table.options.virtualDomBuffer || this.height;
-
- //check if the table has changed size when dealing with variable height tables
-
- if (!this.fixedHeight && initialHeight != this.element.clientHeight) {
-
- modExists = this.table.modExists("resizeTable");
-
- if (modExists && !this.table.modules.resizeTable.autoResize || !modExists) {
-
- this.redraw();
- }
- }
- }
- };
-
- //renitialize all rows
-
- RowManager.prototype.reinitialize = function () {
-
- this.rows.forEach(function (row) {
-
- row.reinitialize();
- });
- };
-
- //prevent table from being redrawn
-
- RowManager.prototype.blockRedraw = function () {
-
- this.redrawBlock = true;
-
- this.redrawBlockRestoreConfig = false;
- };
-
- //restore table redrawing
-
- RowManager.prototype.restoreRedraw = function () {
-
- this.redrawBlock = false;
-
- if (this.redrawBlockRestoreConfig) {
-
- this.refreshActiveData(this.redrawBlockRestoreConfig.stage, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition);
-
- this.redrawBlockRestoreConfig = false;
- } else {
-
- if (this.redrawBlockRederInPosition) {
-
- this.reRenderInPosition();
- }
- }
-
- this.redrawBlockRederInPosition = false;
- };
-
- //redraw table
-
- RowManager.prototype.redraw = function (force) {
-
- var pos = 0,
- left = this.scrollLeft;
-
- this.adjustTableSize();
-
- this.table.tableWidth = this.table.element.clientWidth;
-
- if (!force) {
-
- if (this.renderMode == "classic") {
-
- if (this.table.options.groupBy) {
-
- this.refreshActiveData("group", false, false);
- } else {
-
- this._simpleRender();
- }
- } else {
-
- this.reRenderInPosition();
-
- this.scrollHorizontal(left);
- }
-
- if (!this.displayRowsCount) {
-
- if (this.table.options.placeholder) {
-
- this.getElement().appendChild(this.table.options.placeholder);
- }
- }
- } else {
-
- this.renderTable();
- }
- };
-
- RowManager.prototype.resetScroll = function () {
-
- this.element.scrollLeft = 0;
-
- this.element.scrollTop = 0;
-
- if (this.table.browser === "ie") {
-
- var event = document.createEvent("Event");
-
- event.initEvent("scroll", false, true);
-
- this.element.dispatchEvent(event);
- } else {
-
- this.element.dispatchEvent(new Event('scroll'));
- }
- };
-
- //public row object
-
- var RowComponent = function RowComponent(row) {
-
- this._row = row;
- };
-
- RowComponent.prototype.getData = function (transform) {
-
- return this._row.getData(transform);
- };
-
- RowComponent.prototype.getElement = function () {
-
- return this._row.getElement();
- };
-
- RowComponent.prototype.getCells = function () {
-
- var cells = [];
-
- this._row.getCells().forEach(function (cell) {
-
- cells.push(cell.getComponent());
- });
-
- return cells;
- };
-
- RowComponent.prototype.getCell = function (column) {
-
- var cell = this._row.getCell(column);
-
- return cell ? cell.getComponent() : false;
- };
-
- RowComponent.prototype.getIndex = function () {
-
- return this._row.getData("data")[this._row.table.options.index];
- };
-
- RowComponent.prototype.getPosition = function (active) {
-
- return this._row.table.rowManager.getRowPosition(this._row, active);
- };
-
- RowComponent.prototype.delete = function () {
-
- return this._row.delete();
- };
-
- RowComponent.prototype.scrollTo = function () {
-
- return this._row.table.rowManager.scrollToRow(this._row);
- };
-
- RowComponent.prototype.pageTo = function () {
-
- if (this._row.table.modExists("page", true)) {
-
- return this._row.table.modules.page.setPageToRow(this._row);
- }
- };
-
- RowComponent.prototype.move = function (to, after) {
-
- this._row.moveToRow(to, after);
- };
-
- RowComponent.prototype.update = function (data) {
-
- return this._row.updateData(data);
- };
-
- RowComponent.prototype.normalizeHeight = function () {
-
- this._row.normalizeHeight(true);
- };
-
- RowComponent.prototype.select = function () {
-
- this._row.table.modules.selectRow.selectRows(this._row);
- };
-
- RowComponent.prototype.deselect = function () {
-
- this._row.table.modules.selectRow.deselectRows(this._row);
- };
-
- RowComponent.prototype.toggleSelect = function () {
-
- this._row.table.modules.selectRow.toggleRow(this._row);
- };
-
- RowComponent.prototype.isSelected = function () {
-
- return this._row.table.modules.selectRow.isRowSelected(this._row);
- };
-
- RowComponent.prototype._getSelf = function () {
-
- return this._row;
- };
-
- RowComponent.prototype.validate = function () {
-
- return this._row.validate();
- };
-
- RowComponent.prototype.freeze = function () {
-
- if (this._row.table.modExists("frozenRows", true)) {
-
- this._row.table.modules.frozenRows.freezeRow(this._row);
- }
- };
-
- RowComponent.prototype.unfreeze = function () {
-
- if (this._row.table.modExists("frozenRows", true)) {
-
- this._row.table.modules.frozenRows.unfreezeRow(this._row);
- }
- };
-
- RowComponent.prototype.isFrozen = function () {
-
- if (this._row.table.modExists("frozenRows", true)) {
-
- var index = this._row.table.modules.frozenRows.rows.indexOf(this._row);
-
- return index > -1;
- }
-
- return false;
- };
-
- RowComponent.prototype.treeCollapse = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- this._row.table.modules.dataTree.collapseRow(this._row);
- }
- };
-
- RowComponent.prototype.treeExpand = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- this._row.table.modules.dataTree.expandRow(this._row);
- }
- };
-
- RowComponent.prototype.treeToggle = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- this._row.table.modules.dataTree.toggleRow(this._row);
- }
- };
-
- RowComponent.prototype.getTreeParent = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- return this._row.table.modules.dataTree.getTreeParent(this._row);
- }
-
- return false;
- };
-
- RowComponent.prototype.getTreeChildren = function () {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- return this._row.table.modules.dataTree.getTreeChildren(this._row);
- }
-
- return false;
- };
-
- RowComponent.prototype.addTreeChild = function (data, pos, index) {
-
- if (this._row.table.modExists("dataTree", true)) {
-
- return this._row.table.modules.dataTree.addTreeChildRow(this._row, data, pos, index);
- }
-
- return false;
- };
-
- RowComponent.prototype.reformat = function () {
-
- return this._row.reinitialize();
- };
-
- RowComponent.prototype.getGroup = function () {
-
- return this._row.getGroup().getComponent();
- };
-
- RowComponent.prototype.getTable = function () {
-
- return this._row.table;
- };
-
- RowComponent.prototype.getNextRow = function () {
-
- var row = this._row.nextRow();
-
- return row ? row.getComponent() : row;
- };
-
- RowComponent.prototype.getPrevRow = function () {
-
- var row = this._row.prevRow();
-
- return row ? row.getComponent() : row;
- };
-
- var Row = function Row(data, parent) {
- var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "row";
-
-
- this.table = parent.table;
-
- this.parent = parent;
-
- this.data = {};
-
- this.type = type; //type of element
-
- this.element = this.createElement();
-
- this.modules = {}; //hold module variables;
-
- this.cells = [];
-
- this.height = 0; //hold element height
-
- this.heightStyled = ""; //hold element height prestyled to improve render efficiency
-
- this.manualHeight = false; //user has manually set row height
-
- this.outerHeight = 0; //holde lements outer height
-
- this.initialized = false; //element has been rendered
-
- this.heightInitialized = false; //element has resized cells to fit
-
-
- this.component = null;
-
- this.setData(data);
-
- this.generateElement();
- };
-
- Row.prototype.createElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
-
- el.setAttribute("role", "row");
-
- return el;
- };
-
- Row.prototype.getElement = function () {
-
- return this.element;
- };
-
- Row.prototype.detachElement = function () {
-
- if (this.element && this.element.parentNode) {
-
- this.element.parentNode.removeChild(this.element);
- }
- };
-
- Row.prototype.generateElement = function () {
-
- var self = this,
- dblTap,
- tapHold,
- tap;
-
- //set row selection characteristics
-
- if (self.table.options.selectable !== false && self.table.modExists("selectRow")) {
-
- self.table.modules.selectRow.initializeRow(this);
- }
-
- //setup movable rows
-
- if (self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
-
- self.table.modules.moveRow.initializeRow(this);
- }
-
- //setup data tree
-
- if (self.table.options.dataTree !== false && self.table.modExists("dataTree")) {
-
- self.table.modules.dataTree.initializeRow(this);
- }
-
- //setup column colapse container
-
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
-
- self.table.modules.responsiveLayout.initializeRow(this);
- }
-
- //set column menu
-
- if (self.table.options.rowContextMenu && this.table.modExists("menu")) {
-
- self.table.modules.menu.initializeRow(this);
- }
-
- //handle row click events
-
- if (self.table.options.rowClick) {
-
- self.element.addEventListener("click", function (e) {
-
- self.table.options.rowClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowDblClick) {
-
- self.element.addEventListener("dblclick", function (e) {
-
- self.table.options.rowDblClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowContext) {
-
- self.element.addEventListener("contextmenu", function (e) {
-
- self.table.options.rowContext(e, self.getComponent());
- });
- }
-
- //handle mouse events
-
- if (self.table.options.rowMouseEnter) {
-
- self.element.addEventListener("mouseenter", function (e) {
-
- self.table.options.rowMouseEnter(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseLeave) {
-
- self.element.addEventListener("mouseleave", function (e) {
-
- self.table.options.rowMouseLeave(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOver) {
-
- self.element.addEventListener("mouseover", function (e) {
-
- self.table.options.rowMouseOver(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOut) {
-
- self.element.addEventListener("mouseout", function (e) {
-
- self.table.options.rowMouseOut(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseMove) {
-
- self.element.addEventListener("mousemove", function (e) {
-
- self.table.options.rowMouseMove(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
-
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- if (tap) {
-
- self.table.options.rowTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.table.options.rowDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
-
- clearTimeout(dblTap);
-
- dblTap = null;
-
- self.table.options.rowDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
-
- clearTimeout(dblTap);
-
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.table.options.rowTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
-
- clearTimeout(tapHold);
-
- tapHold = null;
-
- tap = false;
-
- self.table.options.rowTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = null;
- });
- }
- };
-
- Row.prototype.generateCells = function () {
-
- this.cells = this.table.columnManager.generateCells(this);
- };
-
- //functions to setup on first render
-
- Row.prototype.initialize = function (force) {
-
- var self = this;
-
- if (!self.initialized || force) {
-
- self.deleteCells();
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- } //handle frozen cells
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layoutRow(this);
- }
-
- this.generateCells();
-
- self.cells.forEach(function (cell) {
-
- self.element.appendChild(cell.getElement());
-
- cell.cellRendered();
- });
-
- if (force) {
-
- self.normalizeHeight();
- }
-
- //setup movable rows
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
-
- self.table.modules.dataTree.layoutRow(this);
- }
-
- //setup column colapse container
-
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
-
- self.table.modules.responsiveLayout.layoutRow(this);
- }
-
- if (self.table.options.rowFormatter) {
-
- self.table.options.rowFormatter(self.getComponent());
- }
-
- //set resizable handles
-
- if (self.table.options.resizableRows && self.table.modExists("resizeRows")) {
-
- self.table.modules.resizeRows.initializeRow(self);
- }
-
- self.initialized = true;
- }
- };
-
- Row.prototype.reinitializeHeight = function () {
-
- this.heightInitialized = false;
-
- if (this.element.offsetParent !== null) {
-
- this.normalizeHeight(true);
- }
- };
-
- Row.prototype.reinitialize = function () {
-
- this.initialized = false;
-
- this.heightInitialized = false;
-
- if (!this.manualHeight) {
-
- this.height = 0;
-
- this.heightStyled = "";
- }
-
- if (this.element.offsetParent !== null) {
-
- this.initialize(true);
- }
- };
-
- //get heights when doing bulk row style calcs in virtual DOM
-
- Row.prototype.calcHeight = function (force) {
-
- var maxHeight = 0,
- minHeight = this.table.options.resizableRows ? this.element.clientHeight : 0;
-
- this.cells.forEach(function (cell) {
-
- var height = cell.getHeight();
-
- if (height > maxHeight) {
-
- maxHeight = height;
- }
- });
-
- if (force) {
-
- this.height = Math.max(maxHeight, minHeight);
- } else {
-
- this.height = this.manualHeight ? this.height : Math.max(maxHeight, minHeight);
- }
-
- this.heightStyled = this.height ? this.height + "px" : "";
-
- this.outerHeight = this.element.offsetHeight;
- };
-
- //set of cells
-
- Row.prototype.setCellHeight = function () {
-
- this.cells.forEach(function (cell) {
-
- cell.setHeight();
- });
-
- this.heightInitialized = true;
- };
-
- Row.prototype.clearCellHeight = function () {
-
- this.cells.forEach(function (cell) {
-
- cell.clearHeight();
- });
- };
-
- //normalize the height of elements in the row
-
- Row.prototype.normalizeHeight = function (force) {
-
- if (force) {
-
- this.clearCellHeight();
- }
-
- this.calcHeight(force);
-
- this.setCellHeight();
- };
-
- // Row.prototype.setHeight = function(height){
-
- // this.height = height;
-
-
- // this.setCellHeight();
-
- // };
-
-
- //set height of rows
-
- Row.prototype.setHeight = function (height, force) {
-
- if (this.height != height || force) {
-
- this.manualHeight = true;
-
- this.height = height;
-
- this.heightStyled = height ? height + "px" : "";
-
- this.setCellHeight();
-
- // this.outerHeight = this.element.outerHeight();
-
- this.outerHeight = this.element.offsetHeight;
- }
- };
-
- //return rows outer height
-
- Row.prototype.getHeight = function () {
-
- return this.outerHeight;
- };
-
- //return rows outer Width
-
- Row.prototype.getWidth = function () {
-
- return this.element.offsetWidth;
- };
-
- //////////////// Cell Management /////////////////
-
-
- Row.prototype.deleteCell = function (cell) {
-
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
-
- this.cells.splice(index, 1);
- }
- };
-
- //////////////// Data Management /////////////////
-
-
- Row.prototype.setData = function (data) {
-
- if (this.table.modExists("mutator")) {
-
- data = this.table.modules.mutator.transformRow(data, "data");
- }
-
- this.data = data;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
-
- this.table.modules.reactiveData.watchRow(this);
- }
- };
-
- //update the rows data
-
- Row.prototype.updateData = function (updatedData) {
- var _this15 = this;
-
- var visible = Tabulator.prototype.helpers.elVisible(this.element),
- tempData = {},
- newRowData;
-
- return new Promise(function (resolve, reject) {
-
- if (typeof updatedData === "string") {
-
- updatedData = JSON.parse(updatedData);
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
-
- _this15.table.modules.reactiveData.block();
- }
-
- //mutate incomming data if needed
-
- if (_this15.table.modExists("mutator")) {
-
- tempData = Object.assign(tempData, _this15.data);
-
- tempData = Object.assign(tempData, updatedData);
-
- newRowData = _this15.table.modules.mutator.transformRow(tempData, "data", updatedData);
- } else {
-
- newRowData = updatedData;
- }
-
- //set data
-
- for (var attrname in newRowData) {
-
- _this15.data[attrname] = newRowData[attrname];
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
-
- _this15.table.modules.reactiveData.unblock();
- }
-
- //update affected cells only
-
- for (var attrname in updatedData) {
-
- var columns = _this15.table.columnManager.getColumnsByFieldRoot(attrname);
-
- columns.forEach(function (column) {
-
- var cell = _this15.getCell(column.getField());
-
- if (cell) {
-
- var value = column.getFieldValue(newRowData);
-
- if (cell.getValue() != value) {
-
- cell.setValueProcessData(value);
-
- if (visible) {
-
- cell.cellRendered();
- }
- }
- }
- });
- }
-
- //Partial reinitialization if visible
-
- if (visible) {
-
- _this15.normalizeHeight(true);
-
- if (_this15.table.options.rowFormatter) {
-
- _this15.table.options.rowFormatter(_this15.getComponent());
- }
- } else {
-
- _this15.initialized = false;
-
- _this15.height = 0;
-
- _this15.heightStyled = "";
- }
-
- if (_this15.table.options.dataTree !== false && _this15.table.modExists("dataTree") && _this15.table.modules.dataTree.redrawNeeded(updatedData)) {
-
- _this15.table.modules.dataTree.initializeRow(_this15);
-
- _this15.table.modules.dataTree.layoutRow(_this15);
-
- _this15.table.rowManager.refreshActiveData("tree", false, true);
- }
-
- //this.reinitialize();
-
-
- _this15.table.options.rowUpdated.call(_this15.table, _this15.getComponent());
-
- resolve();
- });
- };
-
- Row.prototype.getData = function (transform) {
-
- var self = this;
-
- if (transform) {
-
- if (self.table.modExists("accessor")) {
-
- return self.table.modules.accessor.transformRow(self.data, transform);
- }
- } else {
-
- return this.data;
- }
- };
-
- Row.prototype.getCell = function (column) {
-
- var match = false;
-
- column = this.table.columnManager.findColumn(column);
-
- match = this.cells.find(function (cell) {
-
- return cell.column === column;
- });
-
- return match;
- };
-
- Row.prototype.getCellIndex = function (findCell) {
-
- return this.cells.findIndex(function (cell) {
-
- return cell === findCell;
- });
- };
-
- Row.prototype.findNextEditableCell = function (index) {
-
- var nextCell = false;
-
- if (index < this.cells.length - 1) {
-
- for (var i = index + 1; i < this.cells.length; i++) {
-
- var cell = this.cells[i];
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
-
- var allowEdit = true;
-
- if (typeof cell.column.modules.edit.check == "function") {
-
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
-
- nextCell = cell;
-
- break;
- }
- }
- }
- }
-
- return nextCell;
- };
-
- Row.prototype.findPrevEditableCell = function (index) {
-
- var prevCell = false;
-
- if (index > 0) {
-
- for (var i = index - 1; i >= 0; i--) {
-
- var cell = this.cells[i],
- allowEdit = true;
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
-
- if (typeof cell.column.modules.edit.check == "function") {
-
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
-
- prevCell = cell;
-
- break;
- }
- }
- }
- }
-
- return prevCell;
- };
-
- Row.prototype.getCells = function () {
-
- return this.cells;
- };
-
- Row.prototype.nextRow = function () {
-
- var row = this.table.rowManager.nextDisplayRow(this, true);
-
- return row || false;
- };
-
- Row.prototype.prevRow = function () {
-
- var row = this.table.rowManager.prevDisplayRow(this, true);
-
- return row || false;
- };
-
- Row.prototype.moveToRow = function (to, before) {
-
- var toRow = this.table.rowManager.findRow(to);
-
- if (toRow) {
-
- this.table.rowManager.moveRowActual(this, toRow, !before);
-
- this.table.rowManager.refreshActiveData("display", false, true);
- } else {
-
- console.warn("Move Error - No matching row found:", to);
- }
- };
-
- Row.prototype.validate = function () {
-
- var invalid = [];
-
- this.cells.forEach(function (cell) {
-
- if (!cell.validate()) {
-
- invalid.push(cell.getComponent());
- }
- });
-
- return invalid.length ? invalid : true;
- };
-
- ///////////////////// Actions /////////////////////
-
-
- Row.prototype.delete = function () {
- var _this16 = this;
-
- return new Promise(function (resolve, reject) {
-
- var index, rows;
-
- if (_this16.table.options.history && _this16.table.modExists("history")) {
-
- if (_this16.table.options.groupBy && _this16.table.modExists("groupRows")) {
-
- rows = _this16.getGroup().rows;
-
- index = rows.indexOf(_this16);
-
- if (index) {
-
- index = rows[index - 1];
- }
- } else {
-
- index = _this16.table.rowManager.getRowIndex(_this16);
-
- if (index) {
-
- index = _this16.table.rowManager.rows[index - 1];
- }
- }
-
- _this16.table.modules.history.action("rowDelete", _this16, { data: _this16.getData(), pos: !index, index: index });
- }
-
- _this16.deleteActual();
-
- resolve();
- });
- };
-
- Row.prototype.deleteActual = function (blockRedraw) {
-
- var index = this.table.rowManager.getRowIndex(this);
-
- //deselect row if it is selected
-
- if (this.table.modExists("selectRow")) {
-
- this.table.modules.selectRow._deselectRow(this, true);
- }
-
- //cancel edit if row is currently being edited
-
- if (this.table.modExists("edit")) {
-
- if (this.table.modules.edit.currentCell.row === this) {
-
- this.table.modules.edit.cancelEdit();
- }
- }
-
- // if(this.table.options.dataTree && this.table.modExists("dataTree")){
-
- // this.table.modules.dataTree.collapseRow(this, true);
-
- // }
-
-
- //remove any reactive data watchers from row object
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {}
-
- // this.table.modules.reactiveData.unwatchRow(this);
-
- //remove from group
-
- if (this.modules.group) {
-
- this.modules.group.removeRow(this);
- }
-
- this.table.rowManager.deleteRow(this, blockRedraw);
-
- this.deleteCells();
-
- this.initialized = false;
-
- this.heightInitialized = false;
-
- if (this.table.options.dataTree && this.table.modExists("dataTree", true)) {
-
- this.table.modules.dataTree.rowDelete(this);
- }
-
- //recalc column calculations if present
-
- if (this.table.modExists("columnCalcs")) {
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- this.table.modules.columnCalcs.recalcRowGroup(this);
- } else {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
- };
-
- Row.prototype.deleteCells = function () {
-
- var cellCount = this.cells.length;
-
- for (var _i5 = 0; _i5 < cellCount; _i5++) {
-
- this.cells[0].delete();
- }
- };
-
- Row.prototype.wipe = function () {
-
- this.deleteCells();
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element = false;
-
- this.modules = {};
-
- if (this.element.parentNode) {
-
- this.element.parentNode.removeChild(this.element);
- }
- };
-
- Row.prototype.getGroup = function () {
-
- return this.modules.group || false;
- };
-
- //////////////// Object Generation /////////////////
-
- Row.prototype.getComponent = function () {
-
- if (!this.component) {
-
- this.component = new RowComponent(this);
- }
-
- return this.component;
- };
-
- //public row object
-
- var CellComponent = function CellComponent(cell) {
-
- this._cell = cell;
- };
-
- CellComponent.prototype.getValue = function () {
-
- return this._cell.getValue();
- };
-
- CellComponent.prototype.getOldValue = function () {
-
- return this._cell.getOldValue();
- };
-
- CellComponent.prototype.getElement = function () {
-
- return this._cell.getElement();
- };
-
- CellComponent.prototype.getRow = function () {
-
- return this._cell.row.getComponent();
- };
-
- CellComponent.prototype.getData = function () {
-
- return this._cell.row.getData();
- };
-
- CellComponent.prototype.getField = function () {
-
- return this._cell.column.getField();
- };
-
- CellComponent.prototype.getColumn = function () {
-
- return this._cell.column.getComponent();
- };
-
- CellComponent.prototype.setValue = function (value, mutate) {
-
- if (typeof mutate == "undefined") {
-
- mutate = true;
- }
-
- this._cell.setValue(value, mutate);
- };
-
- CellComponent.prototype.restoreOldValue = function () {
-
- this._cell.setValueActual(this._cell.getOldValue());
- };
-
- CellComponent.prototype.edit = function (force) {
-
- return this._cell.edit(force);
- };
-
- CellComponent.prototype.cancelEdit = function () {
-
- this._cell.cancelEdit();
- };
-
- CellComponent.prototype.isEdited = function () {
-
- return !!this._cell.modules.edit && this._cell.modules.edit.edited;
- };
-
- CellComponent.prototype.clearEdited = function () {
-
- if (self.table.modExists("edit", true)) {
-
- this._cell.table.modules.edit.clearEdited(this._cell);
- }
- };
-
- CellComponent.prototype.isValid = function () {
-
- return this._cell.modules.validate ? !this._cell.modules.validate.invalid : true;
- };
-
- CellComponent.prototype.validate = function () {
-
- return this._cell.validate();
- };
-
- CellComponent.prototype.clearValidation = function () {
-
- if (self.table.modExists("validate", true)) {
-
- this._cell.table.modules.validate.clearValidation(this._cell);
- }
- };
-
- CellComponent.prototype.nav = function () {
-
- return this._cell.nav();
- };
-
- CellComponent.prototype.checkHeight = function () {
-
- this._cell.checkHeight();
- };
-
- CellComponent.prototype.getTable = function () {
-
- return this._cell.table;
- };
-
- CellComponent.prototype._getSelf = function () {
-
- return this._cell;
- };
-
- var Cell = function Cell(column, row) {
-
- this.table = column.table;
-
- this.column = column;
-
- this.row = row;
-
- this.element = null;
-
- this.value = null;
-
- this.oldValue = null;
-
- this.modules = {};
-
- this.height = null;
-
- this.width = null;
-
- this.minWidth = null;
-
- this.component = null;
-
- this.build();
- };
-
- //////////////// Setup Functions /////////////////
-
-
- //generate element
-
- Cell.prototype.build = function () {
-
- this.generateElement();
-
- this.setWidth();
-
- this._configureCell();
-
- this.setValueActual(this.column.getFieldValue(this.row.data));
- };
-
- Cell.prototype.generateElement = function () {
-
- this.element = document.createElement('div');
-
- this.element.className = "tabulator-cell";
-
- this.element.setAttribute("role", "gridcell");
-
- this.element = this.element;
- };
-
- Cell.prototype._configureCell = function () {
-
- var self = this,
- cellEvents = self.column.cellEvents,
- element = self.element,
- field = this.column.getField(),
- vertAligns = {
-
- top: "flex-start",
-
- bottom: "flex-end",
-
- middle: "center"
-
- },
- hozAligns = {
-
- left: "flex-start",
-
- right: "flex-end",
-
- center: "center"
-
- };
-
- //set text alignment
-
- element.style.textAlign = self.column.hozAlign;
-
- if (self.column.vertAlign) {
-
- element.style.display = "inline-flex";
-
- element.style.alignItems = vertAligns[self.column.vertAlign] || "";
-
- if (self.column.hozAlign) {
-
- element.style.justifyContent = hozAligns[self.column.hozAlign] || "";
- }
- }
-
- if (field) {
-
- element.setAttribute("tabulator-field", field);
- }
-
- //add class to cell if needed
-
- if (self.column.definition.cssClass) {
-
- var classNames = self.column.definition.cssClass.split(" ");
-
- classNames.forEach(function (className) {
-
- element.classList.add(className);
- });
- }
-
- //update tooltip on mouse enter
-
- if (this.table.options.tooltipGenerationMode === "hover") {
-
- element.addEventListener("mouseenter", function (e) {
-
- self._generateTooltip();
- });
- }
-
- self._bindClickEvents(cellEvents);
-
- self._bindTouchEvents(cellEvents);
-
- self._bindMouseEvents(cellEvents);
-
- if (self.column.modules.edit) {
-
- self.table.modules.edit.bindEditor(self);
- }
-
- if (self.column.definition.rowHandle && self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
-
- self.table.modules.moveRow.initializeCell(self);
- }
-
- //hide cell if not visible
-
- if (!self.column.visible) {
-
- self.hide();
- }
- };
-
- Cell.prototype._bindClickEvents = function (cellEvents) {
-
- var self = this,
- element = self.element;
-
- //set event bindings
-
- if (cellEvents.cellClick || self.table.options.cellClick) {
-
- element.addEventListener("click", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellClick) {
-
- cellEvents.cellClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellClick) {
-
- self.table.options.cellClick.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellDblClick || this.table.options.cellDblClick) {
-
- element.addEventListener("dblclick", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellDblClick) {
-
- cellEvents.cellDblClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblClick) {
-
- self.table.options.cellDblClick.call(self.table, e, component);
- }
- });
- } else {
-
- element.addEventListener("dblclick", function (e) {
-
- if (self.table.modExists("edit")) {
-
- if (self.table.modules.edit.currentCell === self) {
-
- return; //prevent instant selection of editor content
- }
- }
-
- e.preventDefault();
-
- try {
-
- if (document.selection) {
- // IE
-
- var range = document.body.createTextRange();
-
- range.moveToElementText(self.element);
-
- range.select();
- } else if (window.getSelection) {
-
- var range = document.createRange();
-
- range.selectNode(self.element);
-
- window.getSelection().removeAllRanges();
-
- window.getSelection().addRange(range);
- }
- } catch (e) {}
- });
- }
-
- if (cellEvents.cellContext || this.table.options.cellContext) {
-
- element.addEventListener("contextmenu", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellContext) {
-
- cellEvents.cellContext.call(self.table, e, component);
- }
-
- if (self.table.options.cellContext) {
-
- self.table.options.cellContext.call(self.table, e, component);
- }
- });
- }
- };
-
- Cell.prototype._bindMouseEvents = function (cellEvents) {
-
- var self = this,
- element = self.element;
-
- if (cellEvents.cellMouseEnter || self.table.options.cellMouseEnter) {
-
- element.addEventListener("mouseenter", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseEnter) {
-
- cellEvents.cellMouseEnter.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseEnter) {
-
- self.table.options.cellMouseEnter.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseLeave || self.table.options.cellMouseLeave) {
-
- element.addEventListener("mouseleave", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseLeave) {
-
- cellEvents.cellMouseLeave.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseLeave) {
-
- self.table.options.cellMouseLeave.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOver || self.table.options.cellMouseOver) {
-
- element.addEventListener("mouseover", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOver) {
-
- cellEvents.cellMouseOver.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOver) {
-
- self.table.options.cellMouseOver.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOut || self.table.options.cellMouseOut) {
-
- element.addEventListener("mouseout", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOut) {
-
- cellEvents.cellMouseOut.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOut) {
-
- self.table.options.cellMouseOut.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseMove || self.table.options.cellMouseMove) {
-
- element.addEventListener("mousemove", function (e) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellMouseMove) {
-
- cellEvents.cellMouseMove.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseMove) {
-
- self.table.options.cellMouseMove.call(self.table, e, component);
- }
- });
- }
- };
-
- Cell.prototype._bindTouchEvents = function (cellEvents) {
-
- var self = this,
- element = self.element,
- dblTap,
- tapHold,
- tap;
-
- if (cellEvents.cellTap || this.table.options.cellTap) {
-
- tap = false;
-
- element.addEventListener("touchstart", function (e) {
-
- tap = true;
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
-
- if (tap) {
-
- var component = self.getComponent();
-
- if (cellEvents.cellTap) {
-
- cellEvents.cellTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellTap) {
-
- self.table.options.cellTap.call(self.table, e, component);
- }
- }
-
- tap = false;
- });
- }
-
- if (cellEvents.cellDblTap || this.table.options.cellDblTap) {
-
- dblTap = null;
-
- element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
-
- clearTimeout(dblTap);
-
- dblTap = null;
-
- var component = self.getComponent();
-
- if (cellEvents.cellDblTap) {
-
- cellEvents.cellDblTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblTap) {
-
- self.table.options.cellDblTap.call(self.table, e, component);
- }
- } else {
-
- dblTap = setTimeout(function () {
-
- clearTimeout(dblTap);
-
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (cellEvents.cellTapHold || this.table.options.cellTapHold) {
-
- tapHold = null;
-
- element.addEventListener("touchstart", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
-
- clearTimeout(tapHold);
-
- tapHold = null;
-
- tap = false;
-
- var component = self.getComponent();
-
- if (cellEvents.cellTapHold) {
-
- cellEvents.cellTapHold.call(self.table, e, component);
- }
-
- if (self.table.options.cellTapHold) {
-
- self.table.options.cellTapHold.call(self.table, e, component);
- }
- }, 1000);
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
-
- clearTimeout(tapHold);
-
- tapHold = null;
- });
- }
- };
-
- //generate cell contents
-
- Cell.prototype._generateContents = function () {
-
- var val;
-
- if (this.table.modExists("format")) {
-
- val = this.table.modules.format.formatValue(this);
- } else {
-
- val = this.element.innerHTML = this.value;
- }
-
- switch (typeof val === 'undefined' ? 'undefined' : _typeof(val)) {
-
- case "object":
-
- if (val instanceof Node) {
-
- //clear previous cell contents
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element.appendChild(val);
- } else {
-
- this.element.innerHTML = "";
-
- if (val != null) {
-
- console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val);
- }
- }
-
- break;
-
- case "undefined":
-
- case "null":
-
- this.element.innerHTML = "";
-
- break;
-
- default:
-
- this.element.innerHTML = val;
-
- }
- };
-
- Cell.prototype.cellRendered = function () {
-
- if (this.table.modExists("format") && this.table.modules.format.cellRendered) {
-
- this.table.modules.format.cellRendered(this);
- }
- };
-
- //generate tooltip text
-
- Cell.prototype._generateTooltip = function () {
-
- var tooltip = this.column.tooltip;
-
- if (tooltip) {
-
- if (tooltip === true) {
-
- tooltip = this.value;
- } else if (typeof tooltip == "function") {
-
- tooltip = tooltip(this.getComponent());
-
- if (tooltip === false) {
-
- tooltip = "";
- }
- }
-
- if (typeof tooltip === "undefined") {
-
- tooltip = "";
- }
-
- this.element.setAttribute("title", tooltip);
- } else {
-
- this.element.setAttribute("title", "");
- }
- };
-
- //////////////////// Getters ////////////////////
-
- Cell.prototype.getElement = function () {
-
- return this.element;
- };
-
- Cell.prototype.getValue = function () {
-
- return this.value;
- };
-
- Cell.prototype.getOldValue = function () {
-
- return this.oldValue;
- };
-
- //////////////////// Actions ////////////////////
-
-
- Cell.prototype.setValue = function (value, mutate) {
-
- var changed = this.setValueProcessData(value, mutate),
- component;
-
- if (changed) {
-
- if (this.table.options.history && this.table.modExists("history")) {
-
- this.table.modules.history.action("cellEdit", this, { oldValue: this.oldValue, newValue: this.value });
- }
-
- component = this.getComponent();
-
- if (this.column.cellEvents.cellEdited) {
-
- this.column.cellEvents.cellEdited.call(this.table, component);
- }
-
- this.cellRendered();
-
- this.table.options.cellEdited.call(this.table, component);
-
- this.table.options.dataEdited.call(this.table, this.table.rowManager.getData());
- }
- };
-
- Cell.prototype.setValueProcessData = function (value, mutate) {
-
- var changed = false;
-
- if (this.value != value) {
-
- changed = true;
-
- if (mutate) {
-
- if (this.column.modules.mutate) {
-
- value = this.table.modules.mutator.transformCell(this, value);
- }
- }
- }
-
- this.setValueActual(value);
-
- if (changed && this.table.modExists("columnCalcs")) {
-
- if (this.column.definition.topCalc || this.column.definition.bottomCalc) {
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (this.table.options.columnCalcs == "table" || this.table.options.columnCalcs == "both") {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.columnCalcs != "table") {
-
- this.table.modules.columnCalcs.recalcRowGroup(this.row);
- }
- } else {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
- }
-
- return changed;
- };
-
- Cell.prototype.setValueActual = function (value) {
-
- this.oldValue = this.value;
-
- this.value = value;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
-
- this.table.modules.reactiveData.block();
- }
-
- this.column.setFieldValue(this.row.data, value);
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
-
- this.table.modules.reactiveData.unblock();
- }
-
- this._generateContents();
-
- this._generateTooltip();
-
- //set resizable handles
-
- if (this.table.options.resizableColumns && this.table.modExists("resizeColumns")) {
-
- this.table.modules.resizeColumns.initializeColumn("cell", this.column, this.element);
- }
-
- //set column menu
-
- if (this.column.definition.contextMenu && this.table.modExists("menu")) {
-
- this.table.modules.menu.initializeCell(this);
- }
-
- //handle frozen cells
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layoutElement(this.element, this.column);
- }
- };
-
- Cell.prototype.setWidth = function () {
-
- this.width = this.column.width;
-
- this.element.style.width = this.column.widthStyled;
- };
-
- Cell.prototype.clearWidth = function () {
-
- this.width = "";
-
- this.element.style.width = "";
- };
-
- Cell.prototype.getWidth = function () {
-
- return this.width || this.element.offsetWidth;
- };
-
- Cell.prototype.setMinWidth = function () {
-
- this.minWidth = this.column.minWidth;
-
- this.element.style.minWidth = this.column.minWidthStyled;
- };
-
- Cell.prototype.checkHeight = function () {
-
- // var height = this.element.css("height");
-
- this.row.reinitializeHeight();
- };
-
- Cell.prototype.clearHeight = function () {
-
- this.element.style.height = "";
-
- this.height = null;
- };
-
- Cell.prototype.setHeight = function () {
-
- this.height = this.row.height;
-
- this.element.style.height = this.row.heightStyled;
- };
-
- Cell.prototype.getHeight = function () {
-
- return this.height || this.element.offsetHeight;
- };
-
- Cell.prototype.show = function () {
-
- this.element.style.display = "";
- };
-
- Cell.prototype.hide = function () {
-
- this.element.style.display = "none";
- };
-
- Cell.prototype.edit = function (force) {
-
- if (this.table.modExists("edit", true)) {
-
- return this.table.modules.edit.editCell(this, force);
- }
- };
-
- Cell.prototype.cancelEdit = function () {
-
- if (this.table.modExists("edit", true)) {
-
- var editing = this.table.modules.edit.getCurrentCell();
-
- if (editing && editing._getSelf() === this) {
-
- this.table.modules.edit.cancelEdit();
- } else {
-
- console.warn("Cancel Editor Error - This cell is not currently being edited ");
- }
- }
- };
-
- Cell.prototype.validate = function () {
-
- if (this.column.modules.validate && this.table.modExists("validate", true)) {
-
- var valid = this.table.modules.validate.validate(this.column.modules.validate, this, this.getValue());
-
- return valid === true;
- } else {
-
- return true;
- }
- };
-
- Cell.prototype.delete = function () {
-
- if (!this.table.rowManager.redrawBlock) {
-
- this.element.parentNode.removeChild(this.element);
- }
-
- if (this.modules.validate && this.modules.validate.invalid) {
-
- this.table.modules.validate.clearValidation(this);
- }
-
- if (this.modules.edit && this.modules.edit.edited) {
-
- this.table.modules.edit.clearEdited(this);
- }
-
- this.element = false;
-
- this.column.deleteCell(this);
-
- this.row.deleteCell(this);
-
- this.calcs = {};
- };
-
- //////////////// Navigation /////////////////
-
-
- Cell.prototype.nav = function () {
-
- var self = this,
- nextCell = false,
- index = this.row.getCellIndex(this);
-
- return {
-
- next: function next() {
-
- var nextCell = this.right(),
- nextRow;
-
- if (!nextCell) {
-
- nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
-
- nextCell = nextRow.findNextEditableCell(-1);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- }
- }
- } else {
-
- return true;
- }
-
- return false;
- },
-
- prev: function prev() {
-
- var nextCell = this.left(),
- prevRow;
-
- if (!nextCell) {
-
- prevRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (prevRow) {
-
- nextCell = prevRow.findPrevEditableCell(prevRow.cells.length);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- }
- }
- } else {
-
- return true;
- }
-
- return false;
- },
-
- left: function left() {
-
- nextCell = self.row.findPrevEditableCell(index);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- } else {
-
- return false;
- }
- },
-
- right: function right() {
-
- nextCell = self.row.findNextEditableCell(index);
-
- if (nextCell) {
-
- nextCell.edit();
-
- return true;
- } else {
-
- return false;
- }
- },
-
- up: function up() {
-
- var nextRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (nextRow) {
-
- nextRow.cells[index].edit();
- }
- },
-
- down: function down() {
-
- var nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
-
- nextRow.cells[index].edit();
- }
- }
-
- };
- };
-
- Cell.prototype.getIndex = function () {
-
- this.row.getCellIndex(this);
- };
-
- //////////////// Object Generation /////////////////
-
- Cell.prototype.getComponent = function () {
-
- if (!this.component) {
-
- this.component = new CellComponent(this);
- }
-
- return this.component;
- };
-
- var FooterManager = function FooterManager(table) {
-
- this.table = table;
-
- this.active = false;
-
- this.element = this.createElement(); //containing element
-
- this.external = false;
-
- this.links = [];
-
- this._initialize();
- };
-
- FooterManager.prototype.createElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-footer");
-
- return el;
- };
-
- FooterManager.prototype._initialize = function (element) {
-
- if (this.table.options.footerElement) {
-
- switch (_typeof(this.table.options.footerElement)) {
-
- case "string":
-
- if (this.table.options.footerElement[0] === "<") {
-
- this.element.innerHTML = this.table.options.footerElement;
- } else {
-
- this.external = true;
-
- this.element = document.querySelector(this.table.options.footerElement);
- }
-
- break;
-
- default:
-
- this.element = this.table.options.footerElement;
-
- break;
-
- }
- }
- };
-
- FooterManager.prototype.getElement = function () {
-
- return this.element;
- };
-
- FooterManager.prototype.append = function (element, parent) {
-
- this.activate(parent);
-
- this.element.appendChild(element);
-
- this.table.rowManager.adjustTableSize();
- };
-
- FooterManager.prototype.prepend = function (element, parent) {
-
- this.activate(parent);
-
- this.element.insertBefore(element, this.element.firstChild);
-
- this.table.rowManager.adjustTableSize();
- };
-
- FooterManager.prototype.remove = function (element) {
-
- element.parentNode.removeChild(element);
-
- this.deactivate();
- };
-
- FooterManager.prototype.deactivate = function (force) {
-
- if (!this.element.firstChild || force) {
-
- if (!this.external) {
-
- this.element.parentNode.removeChild(this.element);
- }
-
- this.active = false;
- }
-
- // this.table.rowManager.adjustTableSize();
- };
-
- FooterManager.prototype.activate = function (parent) {
-
- if (!this.active) {
-
- this.active = true;
-
- if (!this.external) {
-
- this.table.element.appendChild(this.getElement());
-
- this.table.element.style.display = '';
- }
- }
-
- if (parent) {
-
- this.links.push(parent);
- }
- };
-
- FooterManager.prototype.redraw = function () {
-
- this.links.forEach(function (link) {
-
- link.footerRedraw();
- });
- };
-
- var Tabulator = function Tabulator(element, options) {
-
- this.options = {};
-
- this.columnManager = null; // hold Column Manager
-
- this.rowManager = null; //hold Row Manager
-
- this.footerManager = null; //holder Footer Manager
-
- this.browser = ""; //hold current browser type
-
- this.browserSlow = false; //handle reduced functionality for slower browsers
-
- this.browserMobile = false; //check if running on moble, prevent resize cancelling edit on keyboard appearence
-
-
- this.modules = {}; //hold all modules bound to this table
-
-
- this.initializeElement(element);
-
- this.initializeOptions(options || {});
-
- this._create();
-
- Tabulator.prototype.comms.register(this); //register table for inderdevice communication
- };
-
- //default setup options
-
- Tabulator.prototype.defaultOptions = {
-
- height: false, //height of tabulator
-
- minHeight: false, //minimum height of tabulator
-
- maxHeight: false, //maximum height of tabulator
-
-
- layout: "fitData", ///layout type "fitColumns" | "fitData"
-
- layoutColumnsOnNewData: false, //update column widths on setData
-
-
- columnMinWidth: 40, //minimum global width for a column
-
- columnHeaderVertAlign: "top", //vertical alignment of column headers
-
- columnVertAlign: false, // DEPRECATED - Left to allow warning
-
-
- resizableColumns: true, //resizable columns
-
- resizableRows: false, //resizable rows
-
- autoResize: true, //auto resize table
-
-
- columns: [], //store for colum header info
-
-
- cellHozAlign: "", //horizontal align columns
-
- cellVertAlign: "", //certical align columns
-
-
- data: [], //default starting data
-
-
- autoColumns: false, //build columns from data row structure
-
-
- reactiveData: false, //enable data reactivity
-
-
- nestedFieldSeparator: ".", //seperatpr for nested data
-
-
- tooltips: false, //Tool tip value
-
- tooltipsHeader: false, //Tool tip for headers
-
- tooltipGenerationMode: "load", //when to generate tooltips
-
-
- initialSort: false, //initial sorting criteria
-
- initialFilter: false, //initial filtering criteria
-
- initialHeaderFilter: false, //initial header filtering criteria
-
-
- columnHeaderSortMulti: true, //multiple or single column sorting
-
-
- sortOrderReverse: false, //reverse internal sort ordering
-
-
- headerSort: true, //set default global header sort
-
- headerSortTristate: false, //set default tristate header sorting
-
-
- footerElement: false, //hold footer element
-
-
- index: "id", //filed for row index
-
-
- keybindings: [], //array for keybindings
-
-
- tabEndNewRow: false, //create new row when tab to end of table
-
-
- invalidOptionWarnings: true, //allow toggling of invalid option warnings
-
-
- clipboard: false, //enable clipboard
-
- clipboardCopyStyled: true, //formatted table data
-
- clipboardCopyConfig: false, //clipboard config
-
- clipboardCopyFormatter: false, //DEPRICATED - REMOVE in 5.0
-
- clipboardCopyRowRange: "active", //restrict clipboard to visible rows only
-
- clipboardPasteParser: "table", //convert pasted clipboard data to rows
-
- clipboardPasteAction: "insert", //how to insert pasted data into the table
-
-
- clipboardCopied: function clipboardCopied() {}, //data has been copied to the clipboard
-
- clipboardPasted: function clipboardPasted() {}, //data has been pasted into the table
-
- clipboardPasteError: function clipboardPasteError() {}, //data has not successfully been pasted into the table
-
-
- downloadDataFormatter: false, //function to manipulate table data before it is downloaded
-
- downloadReady: function downloadReady(data, blob) {
- return blob;
- }, //function to manipulate download data
-
- downloadComplete: false, //function to manipulate download data
-
- downloadConfig: {}, //download config
-
- downloadRowRange: "active", //restrict download to active rows only
-
-
- dataTree: false, //enable data tree
-
- dataTreeElementColumn: false,
-
- dataTreeBranchElement: true, //show data tree branch element
-
- dataTreeChildIndent: 9, //data tree child indent in px
-
- dataTreeChildField: "_children", //data tre column field to look for child rows
-
- dataTreeCollapseElement: false, //data tree row collapse element
-
- dataTreeExpandElement: false, //data tree row expand element
-
- dataTreeStartExpanded: false,
-
- dataTreeRowExpanded: function dataTreeRowExpanded() {}, //row has been expanded
-
- dataTreeRowCollapsed: function dataTreeRowCollapsed() {}, //row has been collapsed
-
- dataTreeChildColumnCalcs: false, //include visible data tree rows in column calculations
-
- dataTreeSelectPropagate: false, //seleccting a parent row selects its children
-
-
- printAsHtml: false, //enable print as html
-
- printFormatter: false, //printing page formatter
-
- printHeader: false, //page header contents
-
- printFooter: false, //page footer contents
-
- printCopyStyle: true, //DEPRICATED - REMOVE in 5.0
-
- printStyled: true, //enable print as html styling
-
- printVisibleRows: true, //DEPRICATED - REMOVE in 5.0
-
- printRowRange: "visible", //restrict print to visible rows only
-
- printConfig: {}, //print config options
-
-
- addRowPos: "bottom", //position to insert blank rows, top|bottom
-
-
- selectable: "highlight", //highlight rows on hover
-
- selectableRangeMode: "drag", //highlight rows on hover
-
- selectableRollingSelection: true, //roll selection once maximum number of selectable rows is reached
-
- selectablePersistence: true, // maintain selection when table view is updated
-
- selectableCheck: function selectableCheck(data, row) {
- return true;
- }, //check wheather row is selectable
-
-
- headerFilterLiveFilterDelay: 300, //delay before updating column after user types in header filter
-
- headerFilterPlaceholder: false, //placeholder text to display in header filters
-
-
- headerVisible: true, //hide header
-
-
- history: false, //enable edit history
-
-
- locale: false, //current system language
-
- langs: {},
-
- virtualDom: true, //enable DOM virtualization
-
- virtualDomBuffer: 0, // set virtual DOM buffer size
-
-
- persistentLayout: false, //DEPRICATED - REMOVE in 5.0
-
- persistentSort: false, //DEPRICATED - REMOVE in 5.0
-
- persistentFilter: false, //DEPRICATED - REMOVE in 5.0
-
- persistenceID: "", //key for persistent storage
-
- persistenceMode: true, //mode for storing persistence information
-
- persistenceReaderFunc: false, //function for handling persistence data reading
-
- persistenceWriterFunc: false, //function for handling persistence data writing
-
-
- persistence: false,
-
- responsiveLayout: false, //responsive layout flags
-
- responsiveLayoutCollapseStartOpen: true, //start showing collapsed data
-
- responsiveLayoutCollapseUseFormatters: true, //responsive layout collapse formatter
-
- responsiveLayoutCollapseFormatter: false, //responsive layout collapse formatter
-
-
- pagination: false, //set pagination type
-
- paginationSize: false, //set number of rows to a page
-
- paginationInitialPage: 1, //initail page to show on load
-
- paginationButtonCount: 5, // set count of page button
-
- paginationSizeSelector: false, //add pagination size selector element
-
- paginationElement: false, //element to hold pagination numbers
-
- paginationDataSent: {}, //pagination data sent to the server
-
- paginationDataReceived: {}, //pagination data received from the server
-
- paginationAddRow: "page", //add rows on table or page
-
-
- ajaxURL: false, //url for ajax loading
-
- ajaxURLGenerator: false,
-
- ajaxParams: {}, //params for ajax loading
-
- ajaxConfig: "get", //ajax request type
-
- ajaxContentType: "form", //ajax request type
-
- ajaxRequestFunc: false, //promise function
-
- ajaxLoader: true, //show loader
-
- ajaxLoaderLoading: false, //loader element
-
- ajaxLoaderError: false, //loader element
-
- ajaxFiltering: false,
-
- ajaxSorting: false,
-
- ajaxProgressiveLoad: false, //progressive loading
-
- ajaxProgressiveLoadDelay: 0, //delay between requests
-
- ajaxProgressiveLoadScrollMargin: 0, //margin before scroll begins
-
-
- groupBy: false, //enable table grouping and set field to group by
-
- groupStartOpen: true, //starting state of group
-
- groupValues: false,
-
- groupHeader: false, //header generation function
-
- groupHeaderPrint: null,
-
- groupHeaderClipboard: null,
-
- groupHeaderHtmlOutput: null,
-
- groupHeaderDownload: null,
-
- htmlOutputConfig: false, //html outypu config
-
-
- movableColumns: false, //enable movable columns
-
-
- movableRows: false, //enable movable rows
-
- movableRowsConnectedTables: false, //tables for movable rows to be connected to
-
- movableRowsConnectedElements: false, //other elements for movable rows to be connected to
-
- movableRowsSender: false,
-
- movableRowsReceiver: "insert",
-
- movableRowsSendingStart: function movableRowsSendingStart() {},
-
- movableRowsSent: function movableRowsSent() {},
-
- movableRowsSentFailed: function movableRowsSentFailed() {},
-
- movableRowsSendingStop: function movableRowsSendingStop() {},
-
- movableRowsReceivingStart: function movableRowsReceivingStart() {},
-
- movableRowsReceived: function movableRowsReceived() {},
-
- movableRowsReceivedFailed: function movableRowsReceivedFailed() {},
-
- movableRowsReceivingStop: function movableRowsReceivingStop() {},
-
- movableRowsElementDrop: function movableRowsElementDrop() {},
-
- scrollToRowPosition: "top",
-
- scrollToRowIfVisible: true,
-
- scrollToColumnPosition: "left",
-
- scrollToColumnIfVisible: true,
-
- rowFormatter: false,
-
- rowFormatterPrint: null,
-
- rowFormatterClipboard: null,
-
- rowFormatterHtmlOutput: null,
-
- placeholder: false,
-
- //table building callbacks
-
- tableBuilding: function tableBuilding() {},
-
- tableBuilt: function tableBuilt() {},
-
- //render callbacks
-
- renderStarted: function renderStarted() {},
-
- renderComplete: function renderComplete() {},
-
- //row callbacks
-
- rowClick: false,
-
- rowDblClick: false,
-
- rowContext: false,
-
- rowTap: false,
-
- rowDblTap: false,
-
- rowTapHold: false,
-
- rowMouseEnter: false,
-
- rowMouseLeave: false,
-
- rowMouseOver: false,
-
- rowMouseOut: false,
-
- rowMouseMove: false,
-
- rowContextMenu: false,
-
- rowAdded: function rowAdded() {},
-
- rowDeleted: function rowDeleted() {},
-
- rowMoved: function rowMoved() {},
-
- rowUpdated: function rowUpdated() {},
-
- rowSelectionChanged: function rowSelectionChanged() {},
-
- rowSelected: function rowSelected() {},
-
- rowDeselected: function rowDeselected() {},
-
- rowResized: function rowResized() {},
-
- //cell callbacks
-
- //row callbacks
-
- cellClick: false,
-
- cellDblClick: false,
-
- cellContext: false,
-
- cellTap: false,
-
- cellDblTap: false,
-
- cellTapHold: false,
-
- cellMouseEnter: false,
-
- cellMouseLeave: false,
-
- cellMouseOver: false,
-
- cellMouseOut: false,
-
- cellMouseMove: false,
-
- cellEditing: function cellEditing() {},
-
- cellEdited: function cellEdited() {},
-
- cellEditCancelled: function cellEditCancelled() {},
-
- //column callbacks
-
- columnMoved: false,
-
- columnResized: function columnResized() {},
-
- columnTitleChanged: function columnTitleChanged() {},
-
- columnVisibilityChanged: function columnVisibilityChanged() {},
-
- //HTML iport callbacks
-
- htmlImporting: function htmlImporting() {},
-
- htmlImported: function htmlImported() {},
-
- //data callbacks
-
- dataLoading: function dataLoading() {},
-
- dataLoaded: function dataLoaded() {},
-
- dataEdited: function dataEdited() {},
-
- //ajax callbacks
-
- ajaxRequesting: function ajaxRequesting() {},
-
- ajaxResponse: false,
-
- ajaxError: function ajaxError() {},
-
- //filtering callbacks
-
- dataFiltering: false,
-
- dataFiltered: false,
-
- //sorting callbacks
-
- dataSorting: function dataSorting() {},
-
- dataSorted: function dataSorted() {},
-
- //grouping callbacks
-
- groupToggleElement: "arrow",
-
- groupClosedShowCalcs: false,
-
- dataGrouping: function dataGrouping() {},
-
- dataGrouped: false,
-
- groupVisibilityChanged: function groupVisibilityChanged() {},
-
- groupClick: false,
-
- groupDblClick: false,
-
- groupContext: false,
-
- groupContextMenu: false,
-
- groupTap: false,
-
- groupDblTap: false,
-
- groupTapHold: false,
-
- columnCalcs: true,
-
- //pagination callbacks
-
- pageLoaded: function pageLoaded() {},
-
- //localization callbacks
-
- localized: function localized() {},
-
- //validation callbacks
-
- validationMode: "blocking",
-
- validationFailed: function validationFailed() {},
-
- //history callbacks
-
- historyUndo: function historyUndo() {},
-
- historyRedo: function historyRedo() {},
-
- //scroll callbacks
-
- scrollHorizontal: function scrollHorizontal() {},
-
- scrollVertical: function scrollVertical() {}
-
- };
-
- Tabulator.prototype.initializeOptions = function (options) {
-
- //warn user if option is not available
-
- if (options.invalidOptionWarnings !== false) {
-
- for (var key in options) {
-
- if (typeof this.defaultOptions[key] === "undefined") {
-
- console.warn("Invalid table constructor option:", key);
- }
- }
- }
-
- //assign options to table
-
- for (var key in this.defaultOptions) {
-
- if (key in options) {
-
- this.options[key] = options[key];
- } else {
-
- if (Array.isArray(this.defaultOptions[key])) {
-
- this.options[key] = [];
- } else if (_typeof(this.defaultOptions[key]) === "object" && this.defaultOptions[key] !== null) {
-
- this.options[key] = {};
- } else {
-
- this.options[key] = this.defaultOptions[key];
- }
- }
- }
- };
-
- Tabulator.prototype.initializeElement = function (element) {
-
- if (typeof HTMLElement !== "undefined" && element instanceof HTMLElement) {
-
- this.element = element;
-
- return true;
- } else if (typeof element === "string") {
-
- this.element = document.querySelector(element);
-
- if (this.element) {
-
- return true;
- } else {
-
- console.error("Tabulator Creation Error - no element found matching selector: ", element);
-
- return false;
- }
- } else {
-
- console.error("Tabulator Creation Error - Invalid element provided:", element);
-
- return false;
- }
- };
-
- //convert depricated functionality to new functions
-
- Tabulator.prototype._mapDepricatedFunctionality = function () {
-
- //map depricated persistance setup options
-
- if (this.options.persistentLayout || this.options.persistentSort || this.options.persistentFilter) {
-
- if (!this.options.persistence) {
-
- this.options.persistence = {};
- }
- }
-
- if (this.options.downloadDataFormatter) {
-
- console.warn("DEPRECATION WARNING - downloadDataFormatter option has been deprecated");
- }
-
- if (typeof this.options.clipboardCopyHeader !== "undefined") {
-
- this.options.columnHeaders = this.options.clipboardCopyHeader;
-
- console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option");
- }
-
- if (this.options.printVisibleRows !== true) {
-
- console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option");
-
- this.options.persistence.printRowRange = "active";
- }
-
- if (this.options.printCopyStyle !== true) {
-
- console.warn("printCopyStyle option is deprecated, you should now use the printStyled option");
-
- this.options.persistence.printStyled = this.options.printCopyStyle;
- }
-
- if (this.options.persistentLayout) {
-
- console.warn("persistentLayout option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.columns === "undefined") {
-
- this.options.persistence.columns = true;
- }
- }
-
- if (this.options.persistentSort) {
-
- console.warn("persistentSort option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.sort === "undefined") {
-
- this.options.persistence.sort = true;
- }
- }
-
- if (this.options.persistentFilter) {
-
- console.warn("persistentFilter option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.filter === "undefined") {
-
- this.options.persistence.filter = true;
- }
- }
-
- if (this.options.columnVertAlign) {
-
- console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option");
-
- this.options.columnHeaderVertAlign = this.options.columnVertAlign;
- }
- };
-
- Tabulator.prototype._clearSelection = function () {
-
- this.element.classList.add("tabulator-block-select");
-
- if (window.getSelection) {
-
- if (window.getSelection().empty) {
- // Chrome
-
- window.getSelection().empty();
- } else if (window.getSelection().removeAllRanges) {
- // Firefox
-
- window.getSelection().removeAllRanges();
- }
- } else if (document.selection) {
- // IE?
-
- document.selection.empty();
- }
-
- this.element.classList.remove("tabulator-block-select");
- };
-
- //concreate table
-
- Tabulator.prototype._create = function () {
-
- this._clearObjectPointers();
-
- this._mapDepricatedFunctionality();
-
- this.bindModules();
-
- if (this.element.tagName === "TABLE") {
-
- if (this.modExists("htmlTableImport", true)) {
-
- this.modules.htmlTableImport.parseTable();
- }
- }
-
- this.columnManager = new ColumnManager(this);
-
- this.rowManager = new RowManager(this);
-
- this.footerManager = new FooterManager(this);
-
- this.columnManager.setRowManager(this.rowManager);
-
- this.rowManager.setColumnManager(this.columnManager);
-
- this._buildElement();
-
- this._loadInitialData();
- };
-
- //clear pointers to objects in default config object
-
- Tabulator.prototype._clearObjectPointers = function () {
-
- this.options.columns = this.options.columns.slice(0);
-
- if (!this.options.reactiveData) {
-
- this.options.data = this.options.data.slice(0);
- }
- };
-
- //build tabulator element
-
- Tabulator.prototype._buildElement = function () {
- var _this17 = this;
-
- var element = this.element,
- mod = this.modules,
- options = this.options;
-
- options.tableBuilding.call(this);
-
- element.classList.add("tabulator");
-
- element.setAttribute("role", "grid");
-
- //empty element
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //set table height
-
- if (options.height) {
-
- options.height = isNaN(options.height) ? options.height : options.height + "px";
-
- element.style.height = options.height;
- }
-
- //set table min height
-
- if (options.minHeight !== false) {
-
- options.minHeight = isNaN(options.minHeight) ? options.minHeight : options.minHeight + "px";
-
- element.style.minHeight = options.minHeight;
- }
-
- //set table maxHeight
-
- if (options.maxHeight !== false) {
-
- options.maxHeight = isNaN(options.maxHeight) ? options.maxHeight : options.maxHeight + "px";
-
- element.style.maxHeight = options.maxHeight;
- }
-
- this.columnManager.initialize();
-
- this.rowManager.initialize();
-
- this._detectBrowser();
-
- if (this.modExists("layout", true)) {
-
- mod.layout.initialize(options.layout);
- }
-
- //set localization
-
- if (options.headerFilterPlaceholder !== false) {
-
- mod.localize.setHeaderFilterPlaceholder(options.headerFilterPlaceholder);
- }
-
- for (var locale in options.langs) {
-
- mod.localize.installLang(locale, options.langs[locale]);
- }
-
- mod.localize.setLocale(options.locale);
-
- //configure placeholder element
-
- if (typeof options.placeholder == "string") {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-placeholder");
-
- var span = document.createElement("span");
-
- span.innerHTML = options.placeholder;
-
- el.appendChild(span);
-
- options.placeholder = el;
- }
-
- //build table elements
-
- element.appendChild(this.columnManager.getElement());
-
- element.appendChild(this.rowManager.getElement());
-
- if (options.footerElement) {
-
- this.footerManager.activate();
- }
-
- if (options.persistence && this.modExists("persistence", true)) {
-
- mod.persistence.initialize();
- }
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.columns) {
-
- options.columns = mod.persistence.load("columns", options.columns);
- }
-
- if (options.movableRows && this.modExists("moveRow")) {
-
- mod.moveRow.initialize();
- }
-
- if (options.autoColumns && this.options.data) {
-
- this.columnManager.generateColumnsFromRowData(this.options.data);
- }
-
- if (this.modExists("columnCalcs")) {
-
- mod.columnCalcs.initialize();
- }
-
- this.columnManager.setColumns(options.columns);
-
- if (options.dataTree && this.modExists("dataTree", true)) {
-
- mod.dataTree.initialize();
- }
-
- if (this.modExists("frozenRows")) {
-
- this.modules.frozenRows.initialize();
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort || options.initialSort) && this.modExists("sort", true)) {
-
- var sorters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort) {
-
- sorters = mod.persistence.load("sort");
-
- if (sorters === false && options.initialSort) {
-
- sorters = options.initialSort;
- }
- } else if (options.initialSort) {
-
- sorters = options.initialSort;
- }
-
- mod.sort.setSort(sorters);
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter || options.initialFilter) && this.modExists("filter", true)) {
-
- var filters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter) {
-
- filters = mod.persistence.load("filter");
-
- if (filters === false && options.initialFilter) {
-
- filters = options.initialFilter;
- }
- } else if (options.initialFilter) {
-
- filters = options.initialFilter;
- }
-
- mod.filter.setFilter(filters);
- }
-
- if (options.initialHeaderFilter && this.modExists("filter", true)) {
-
- options.initialHeaderFilter.forEach(function (item) {
-
- var column = _this17.columnManager.findColumn(item.field);
-
- if (column) {
-
- mod.filter.setHeaderFilterValue(column, item.value);
- } else {
-
- console.warn("Column Filter Error - No matching column found:", item.field);
-
- return false;
- }
- });
- }
-
- if (this.modExists("ajax")) {
-
- mod.ajax.initialize();
- }
-
- if (options.pagination && this.modExists("page", true)) {
-
- mod.page.initialize();
- }
-
- if (options.groupBy && this.modExists("groupRows", true)) {
-
- mod.groupRows.initialize();
- }
-
- if (this.modExists("keybindings")) {
-
- mod.keybindings.initialize();
- }
-
- if (this.modExists("selectRow")) {
-
- mod.selectRow.clearSelectionData(true);
- }
-
- if (options.autoResize && this.modExists("resizeTable")) {
-
- mod.resizeTable.initialize();
- }
-
- if (this.modExists("clipboard")) {
-
- mod.clipboard.initialize();
- }
-
- if (options.printAsHtml && this.modExists("print")) {
-
- mod.print.initialize();
- }
-
- options.tableBuilt.call(this);
- };
-
- Tabulator.prototype._loadInitialData = function () {
-
- var self = this;
-
- if (self.options.pagination && self.modExists("page")) {
-
- self.modules.page.reset(true, true);
-
- if (self.options.pagination == "local") {
-
- if (self.options.data.length) {
-
- self.rowManager.setData(self.options.data, false, true);
- } else {
-
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
-
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {
-
- if (self.options.paginationInitialPage) {
-
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- });
-
- return;
- } else {
-
- self.rowManager.setData(self.options.data, false, true);
- }
- }
-
- if (self.options.paginationInitialPage) {
-
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- } else {
-
- if (self.options.ajaxURL) {
-
- self.modules.page.setPage(self.options.paginationInitialPage).then(function () {}).catch(function () {});
- } else {
-
- self.rowManager.setData([], false, true);
- }
- }
- } else {
-
- if (self.options.data.length) {
-
- self.rowManager.setData(self.options.data);
- } else {
-
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
-
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {});
- } else {
-
- self.rowManager.setData(self.options.data, false, true);
- }
- }
- }
- };
-
- //deconstructor
-
- Tabulator.prototype.destroy = function () {
-
- var element = this.element;
-
- Tabulator.prototype.comms.deregister(this); //deregister table from inderdevice communication
-
-
- if (this.options.reactiveData && this.modExists("reactiveData", true)) {
-
- this.modules.reactiveData.unwatchData();
- }
-
- //clear row data
-
- this.rowManager.rows.forEach(function (row) {
-
- row.wipe();
- });
-
- this.rowManager.rows = [];
-
- this.rowManager.activeRows = [];
-
- this.rowManager.displayRows = [];
-
- //clear event bindings
-
- if (this.options.autoResize && this.modExists("resizeTable")) {
-
- this.modules.resizeTable.clearBindings();
- }
-
- if (this.modExists("keybindings")) {
-
- this.modules.keybindings.clearBindings();
- }
-
- //clear DOM
-
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.classList.remove("tabulator");
- };
-
- Tabulator.prototype._detectBrowser = function () {
-
- var ua = navigator.userAgent || navigator.vendor || window.opera;
-
- if (ua.indexOf("Trident") > -1) {
-
- this.browser = "ie";
-
- this.browserSlow = true;
- } else if (ua.indexOf("Edge") > -1) {
-
- this.browser = "edge";
-
- this.browserSlow = true;
- } else if (ua.indexOf("Firefox") > -1) {
-
- this.browser = "firefox";
-
- this.browserSlow = false;
- } else {
-
- this.browser = "other";
-
- this.browserSlow = false;
- }
-
- this.browserMobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0, 4));
- };
-
- ////////////////// Data Handling //////////////////
-
-
- //block table redrawing
-
- Tabulator.prototype.blockRedraw = function () {
-
- return this.rowManager.blockRedraw();
- };
-
- //restore table redrawing
-
- Tabulator.prototype.restoreRedraw = function () {
-
- return this.rowManager.restoreRedraw();
- };
-
- //local data from local file
-
- Tabulator.prototype.setDataFromLocalFile = function (extensions) {
- var _this18 = this;
-
- return new Promise(function (resolve, reject) {
-
- var input = document.createElement("input");
-
- input.type = "file";
-
- input.accept = extensions || ".json,application/json";
-
- input.addEventListener("change", function (e) {
-
- var file = input.files[0],
- reader = new FileReader(),
- data;
-
- reader.readAsText(file);
-
- reader.onload = function (e) {
-
- try {
-
- data = JSON.parse(reader.result);
- } catch (e) {
-
- console.warn("File Load Error - File contents is invalid JSON", e);
-
- reject(e);
-
- return;
- }
-
- _this18._setData(data).then(function (data) {
-
- resolve(data);
- }).catch(function (err) {
-
- resolve(err);
- });
- };
-
- reader.onerror = function (e) {
-
- console.warn("File Load Error - Unable to read file");
-
- reject();
- };
- });
-
- input.click();
- });
- };
-
- //load data
-
- Tabulator.prototype.setData = function (data, params, config) {
-
- if (this.modExists("ajax")) {
-
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, false, true);
- };
-
- Tabulator.prototype._setData = function (data, params, config, inPosition, columnsChanged) {
-
- var self = this;
-
- if (typeof data === "string") {
-
- if (data.indexOf("{") == 0 || data.indexOf("[") == 0) {
-
- //data is a json encoded string
-
- return self.rowManager.setData(JSON.parse(data), inPosition, columnsChanged);
- } else {
-
- if (self.modExists("ajax", true)) {
-
- if (params) {
-
- self.modules.ajax.setParams(params);
- }
-
- if (config) {
-
- self.modules.ajax.setConfig(config);
- }
-
- self.modules.ajax.setUrl(data);
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
-
- self.modules.page.reset(true, true);
-
- return self.modules.page.setPage(1);
- } else {
-
- //assume data is url, make ajax call to url to get data
-
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- }
- }
- } else {
-
- if (data) {
-
- //asume data is already an object
-
- return self.rowManager.setData(data, inPosition, columnsChanged);
- } else {
-
- //no data provided, check if ajaxURL is present;
-
- if (self.modExists("ajax") && (self.modules.ajax.getUrl || self.options.ajaxURLGenerator)) {
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
-
- self.modules.page.reset(true, true);
-
- return self.modules.page.setPage(1);
- } else {
-
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- } else {
-
- //empty data
-
- return self.rowManager.setData([], inPosition, columnsChanged);
- }
- }
- }
- };
-
- //clear data
-
- Tabulator.prototype.clearData = function () {
-
- if (this.modExists("ajax")) {
-
- this.modules.ajax.blockActiveRequest();
- }
-
- this.rowManager.clearData();
- };
-
- //get table data array
-
- Tabulator.prototype.getData = function (active) {
-
- if (active === true) {
-
- console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'");
-
- active = "active";
- }
-
- return this.rowManager.getData(active);
- };
-
- //get table data array count
-
- Tabulator.prototype.getDataCount = function (active) {
-
- if (active === true) {
-
- console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'");
-
- active = "active";
- }
-
- return this.rowManager.getDataCount(active);
- };
-
- //search for specific row components
-
- Tabulator.prototype.searchRows = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.search("rows", field, type, value);
- }
- };
-
- //search for specific data
-
- Tabulator.prototype.searchData = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.search("data", field, type, value);
- }
- };
-
- //get table html
-
- Tabulator.prototype.getHtml = function (visible, style, config) {
-
- if (this.modExists("export", true)) {
-
- return this.modules.export.getHtml(visible, style, config);
- }
- };
-
- //get print html
-
- Tabulator.prototype.print = function (visible, style, config) {
-
- if (this.modExists("print", true)) {
-
- return this.modules.print.printFullscreen(visible, style, config);
- }
- };
-
- //retrieve Ajax URL
-
- Tabulator.prototype.getAjaxUrl = function () {
-
- if (this.modExists("ajax", true)) {
-
- return this.modules.ajax.getUrl();
- }
- };
-
- //replace data, keeping table in position with same sort
-
- Tabulator.prototype.replaceData = function (data, params, config) {
-
- if (this.modExists("ajax")) {
-
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, true);
- };
-
- //update table data
-
- Tabulator.prototype.updateData = function (data) {
- var _this19 = this;
-
- var self = this;
-
- var responses = 0;
-
- return new Promise(function (resolve, reject) {
-
- if (_this19.modExists("ajax")) {
-
- _this19.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (data) {
-
- data.forEach(function (item) {
-
- var row = self.rowManager.findRow(item[self.options.index]);
-
- if (row) {
-
- responses++;
-
- row.updateData(item).then(function () {
-
- responses--;
-
- if (!responses) {
-
- resolve();
- }
- });
- }
- });
- } else {
-
- console.warn("Update Error - No data provided");
-
- reject("Update Error - No data provided");
- }
- });
- };
-
- Tabulator.prototype.addData = function (data, pos, index) {
- var _this20 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this20.modExists("ajax")) {
-
- _this20.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (data) {
-
- _this20.rowManager.addRows(data, pos, index).then(function (rows) {
-
- var output = [];
-
- rows.forEach(function (row) {
-
- output.push(row.getComponent());
- });
-
- resolve(output);
- });
- } else {
-
- console.warn("Update Error - No data provided");
-
- reject("Update Error - No data provided");
- }
- });
- };
-
- //update table data
-
- Tabulator.prototype.updateOrAddData = function (data) {
- var _this21 = this;
-
- var self = this,
- rows = [],
- responses = 0;
-
- return new Promise(function (resolve, reject) {
-
- if (_this21.modExists("ajax")) {
-
- _this21.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (data) {
-
- data.forEach(function (item) {
-
- var row = self.rowManager.findRow(item[self.options.index]);
-
- responses++;
-
- if (row) {
-
- row.updateData(item).then(function () {
-
- responses--;
-
- rows.push(row.getComponent());
-
- if (!responses) {
-
- resolve(rows);
- }
- });
- } else {
-
- self.rowManager.addRows(item).then(function (newRows) {
-
- responses--;
-
- rows.push(newRows[0].getComponent());
-
- if (!responses) {
-
- resolve(rows);
- }
- });
- }
- });
- } else {
-
- console.warn("Update Error - No data provided");
-
- reject("Update Error - No data provided");
- }
- });
- };
-
- //get row object
-
- Tabulator.prototype.getRow = function (index) {
-
- var row = this.rowManager.findRow(index);
-
- if (row) {
-
- return row.getComponent();
- } else {
-
- console.warn("Find Error - No matching row found:", index);
-
- return false;
- }
- };
-
- //get row object
-
- Tabulator.prototype.getRowFromPosition = function (position, active) {
-
- var row = this.rowManager.getRowFromPosition(position, active);
-
- if (row) {
-
- return row.getComponent();
- } else {
-
- console.warn("Find Error - No matching row found:", position);
-
- return false;
- }
- };
-
- //delete row from table
-
- Tabulator.prototype.deleteRow = function (index) {
- var _this22 = this;
-
- return new Promise(function (resolve, reject) {
-
- var self = _this22,
- count = 0,
- successCount = 0,
- foundRows = [];
-
- function doneCheck() {
-
- count++;
-
- if (count == index.length) {
-
- if (successCount) {
-
- self.rowManager.reRenderInPosition();
-
- resolve();
- }
- }
- }
-
- if (!Array.isArray(index)) {
-
- index = [index];
- }
-
- //find matching rows
-
- index.forEach(function (item) {
-
- var row = _this22.rowManager.findRow(item, true);
-
- if (row) {
-
- foundRows.push(row);
- } else {
-
- console.warn("Delete Error - No matching row found:", item);
-
- reject("Delete Error - No matching row found");
-
- doneCheck();
- }
- });
-
- //sort rows into correct order to ensure smooth delete from table
-
- foundRows.sort(function (a, b) {
-
- return _this22.rowManager.rows.indexOf(a) > _this22.rowManager.rows.indexOf(b) ? 1 : -1;
- });
-
- foundRows.forEach(function (row) {
-
- row.delete().then(function () {
-
- successCount++;
-
- doneCheck();
- }).catch(function (err) {
-
- doneCheck();
-
- reject(err);
- });
- });
- });
- };
-
- //add row to table
-
- Tabulator.prototype.addRow = function (data, pos, index) {
- var _this23 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- _this23.rowManager.addRows(data, pos, index).then(function (rows) {
-
- //recalc column calculations if present
-
- if (_this23.modExists("columnCalcs")) {
-
- _this23.modules.columnCalcs.recalc(_this23.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- });
- });
- };
-
- //update a row if it exitsts otherwise create it
-
- Tabulator.prototype.updateOrAddRow = function (index, data) {
- var _this24 = this;
-
- return new Promise(function (resolve, reject) {
-
- var row = _this24.rowManager.findRow(index);
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (row) {
-
- row.updateData(data).then(function () {
-
- //recalc column calculations if present
-
- if (_this24.modExists("columnCalcs")) {
-
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(row.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- row = _this24.rowManager.addRows(data).then(function (rows) {
-
- //recalc column calculations if present
-
- if (_this24.modExists("columnCalcs")) {
-
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- }
- });
- };
-
- //update row data
-
- Tabulator.prototype.updateRow = function (index, data) {
- var _this25 = this;
-
- return new Promise(function (resolve, reject) {
-
- var row = _this25.rowManager.findRow(index);
-
- if (typeof data === "string") {
-
- data = JSON.parse(data);
- }
-
- if (row) {
-
- row.updateData(data).then(function () {
-
- resolve(row.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Update Error - No matching row found:", index);
-
- reject("Update Error - No matching row found");
- }
- });
- };
-
- //scroll to row in DOM
-
- Tabulator.prototype.scrollToRow = function (index, position, ifVisible) {
- var _this26 = this;
-
- return new Promise(function (resolve, reject) {
-
- var row = _this26.rowManager.findRow(index);
-
- if (row) {
-
- _this26.rowManager.scrollToRow(row, position, ifVisible).then(function () {
-
- resolve();
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Scroll Error - No matching row found:", index);
-
- reject("Scroll Error - No matching row found");
- }
- });
- };
-
- Tabulator.prototype.moveRow = function (from, to, after) {
-
- var fromRow = this.rowManager.findRow(from);
-
- if (fromRow) {
-
- fromRow.moveToRow(to, after);
- } else {
-
- console.warn("Move Error - No matching row found:", from);
- }
- };
-
- Tabulator.prototype.getRows = function (active) {
-
- if (active === true) {
-
- console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'");
-
- active = "active";
- }
-
- return this.rowManager.getComponents(active);
- };
-
- //get position of row in table
-
- Tabulator.prototype.getRowPosition = function (index, active) {
-
- var row = this.rowManager.findRow(index);
-
- if (row) {
-
- return this.rowManager.getRowPosition(row, active);
- } else {
-
- console.warn("Position Error - No matching row found:", index);
-
- return false;
- }
- };
-
- //copy table data to clipboard
-
- Tabulator.prototype.copyToClipboard = function (selector) {
-
- if (this.modExists("clipboard", true)) {
-
- this.modules.clipboard.copy(selector);
- }
- };
-
- /////////////// Column Functions ///////////////
-
-
- Tabulator.prototype.setColumns = function (definition) {
-
- this.columnManager.setColumns(definition);
- };
-
- Tabulator.prototype.getColumns = function (structured) {
-
- return this.columnManager.getComponents(structured);
- };
-
- Tabulator.prototype.getColumn = function (field) {
-
- var col = this.columnManager.findColumn(field);
-
- if (col) {
-
- return col.getComponent();
- } else {
-
- console.warn("Find Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.getColumnDefinitions = function () {
-
- return this.columnManager.getDefinitionTree();
- };
-
- Tabulator.prototype.getColumnLayout = function () {
-
- if (this.modExists("persistence", true)) {
-
- return this.modules.persistence.parseColumns(this.columnManager.getColumns());
- }
- };
-
- Tabulator.prototype.setColumnLayout = function (layout) {
-
- if (this.modExists("persistence", true)) {
-
- this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns, layout));
-
- return true;
- }
-
- return false;
- };
-
- Tabulator.prototype.showColumn = function (field) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- column.show();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
-
- this.modules.responsiveLayout.update();
- }
- } else {
-
- console.warn("Column Show Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.hideColumn = function (field) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- column.hide();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
-
- this.modules.responsiveLayout.update();
- }
- } else {
-
- console.warn("Column Hide Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.toggleColumn = function (field) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- if (column.visible) {
-
- column.hide();
- } else {
-
- column.show();
- }
- } else {
-
- console.warn("Column Visibility Toggle Error - No matching column found:", field);
-
- return false;
- }
- };
-
- Tabulator.prototype.addColumn = function (definition, before, field) {
- var _this27 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this27.columnManager.findColumn(field);
-
- _this27.columnManager.addColumn(definition, before, column).then(function (column) {
-
- resolve(column.getComponent());
- }).catch(function (err) {
-
- reject(err);
- });
- });
- };
-
- Tabulator.prototype.deleteColumn = function (field) {
- var _this28 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this28.columnManager.findColumn(field);
-
- if (column) {
-
- column.delete().then(function () {
-
- resolve();
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Column Delete Error - No matching column found:", field);
-
- reject();
- }
- });
- };
-
- Tabulator.prototype.updateColumnDefinition = function (field, definition) {
- var _this29 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this29.columnManager.findColumn(field);
-
- if (column) {
-
- column.updateDefinition(definition).then(function (col) {
-
- resolve(col);
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Column Update Error - No matching column found:", field);
-
- reject();
- }
- });
- };
-
- Tabulator.prototype.moveColumn = function (from, to, after) {
-
- var fromColumn = this.columnManager.findColumn(from);
-
- var toColumn = this.columnManager.findColumn(to);
-
- if (fromColumn) {
-
- if (toColumn) {
-
- this.columnManager.moveColumn(fromColumn, toColumn, after);
- } else {
-
- console.warn("Move Error - No matching column found:", toColumn);
- }
- } else {
-
- console.warn("Move Error - No matching column found:", from);
- }
- };
-
- //scroll to column in DOM
-
- Tabulator.prototype.scrollToColumn = function (field, position, ifVisible) {
- var _this30 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this30.columnManager.findColumn(field);
-
- if (column) {
-
- _this30.columnManager.scrollToColumn(column, position, ifVisible).then(function () {
-
- resolve();
- }).catch(function (err) {
-
- reject(err);
- });
- } else {
-
- console.warn("Scroll Error - No matching column found:", field);
-
- reject("Scroll Error - No matching column found");
- }
- });
- };
-
- //////////// Localization Functions ////////////
-
- Tabulator.prototype.setLocale = function (locale) {
-
- this.modules.localize.setLocale(locale);
- };
-
- Tabulator.prototype.getLocale = function () {
-
- return this.modules.localize.getLocale();
- };
-
- Tabulator.prototype.getLang = function (locale) {
-
- return this.modules.localize.getLang(locale);
- };
-
- //////////// General Public Functions ////////////
-
-
- //redraw list without updating data
-
- Tabulator.prototype.redraw = function (force) {
-
- this.columnManager.redraw(force);
-
- this.rowManager.redraw(force);
- };
-
- Tabulator.prototype.setHeight = function (height) {
-
- if (this.rowManager.renderMode !== "classic") {
-
- this.options.height = isNaN(height) ? height : height + "px";
-
- this.element.style.height = this.options.height;
-
- this.rowManager.setRenderMode();
-
- this.rowManager.redraw();
- } else {
-
- console.warn("setHeight function is not available in classic render mode");
- }
- };
-
- ///////////////////// Sorting ////////////////////
-
-
- //trigger sort
-
- Tabulator.prototype.setSort = function (sortList, dir) {
-
- if (this.modExists("sort", true)) {
-
- this.modules.sort.setSort(sortList, dir);
-
- this.rowManager.sorterRefresh();
- }
- };
-
- Tabulator.prototype.getSorters = function () {
-
- if (this.modExists("sort", true)) {
-
- return this.modules.sort.getSort();
- }
- };
-
- Tabulator.prototype.clearSort = function () {
-
- if (this.modExists("sort", true)) {
-
- this.modules.sort.clear();
-
- this.rowManager.sorterRefresh();
- }
- };
-
- ///////////////////// Filtering ////////////////////
-
-
- //set standard filters
-
- Tabulator.prototype.setFilter = function (field, type, value, params) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.setFilter(field, type, value, params);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //add filter to array
-
- Tabulator.prototype.addFilter = function (field, type, value, params) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.addFilter(field, type, value, params);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //get all filters
-
- Tabulator.prototype.getFilters = function (all) {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.getFilters(all);
- }
- };
-
- Tabulator.prototype.setHeaderFilterFocus = function (field) {
-
- if (this.modExists("filter", true)) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- this.modules.filter.setHeaderFilterFocus(column);
- } else {
-
- console.warn("Column Filter Focus Error - No matching column found:", field);
-
- return false;
- }
- }
- };
-
- Tabulator.prototype.getHeaderFilterValue = function (field) {
-
- if (this.modExists("filter", true)) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- return this.modules.filter.getHeaderFilterValue(column);
- } else {
-
- console.warn("Column Filter Error - No matching column found:", field);
- }
- }
- };
-
- Tabulator.prototype.setHeaderFilterValue = function (field, value) {
-
- if (this.modExists("filter", true)) {
-
- var column = this.columnManager.findColumn(field);
-
- if (column) {
-
- this.modules.filter.setHeaderFilterValue(column, value);
- } else {
-
- console.warn("Column Filter Error - No matching column found:", field);
-
- return false;
- }
- }
- };
-
- Tabulator.prototype.getHeaderFilters = function () {
-
- if (this.modExists("filter", true)) {
-
- return this.modules.filter.getHeaderFilters();
- }
- };
-
- //remove filter from array
-
- Tabulator.prototype.removeFilter = function (field, type, value) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.removeFilter(field, type, value);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //clear filters
-
- Tabulator.prototype.clearFilter = function (all) {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.clearFilter(all);
-
- this.rowManager.filterRefresh();
- }
- };
-
- //clear header filters
-
- Tabulator.prototype.clearHeaderFilter = function () {
-
- if (this.modExists("filter", true)) {
-
- this.modules.filter.clearHeaderFilter();
-
- this.rowManager.filterRefresh();
- }
- };
-
- ///////////////////// select ////////////////////
-
- Tabulator.prototype.selectRow = function (rows) {
-
- if (this.modExists("selectRow", true)) {
-
- if (rows === true) {
-
- console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'");
-
- rows = "active";
- }
-
- this.modules.selectRow.selectRows(rows);
- }
- };
-
- Tabulator.prototype.deselectRow = function (rows) {
-
- if (this.modExists("selectRow", true)) {
-
- this.modules.selectRow.deselectRows(rows);
- }
- };
-
- Tabulator.prototype.toggleSelectRow = function (row) {
-
- if (this.modExists("selectRow", true)) {
-
- this.modules.selectRow.toggleRow(row);
- }
- };
-
- Tabulator.prototype.getSelectedRows = function () {
-
- if (this.modExists("selectRow", true)) {
-
- return this.modules.selectRow.getSelectedRows();
- }
- };
-
- Tabulator.prototype.getSelectedData = function () {
-
- if (this.modExists("selectRow", true)) {
-
- return this.modules.selectRow.getSelectedData();
- }
- };
-
- ///////////////////// validation ////////////////////
-
- Tabulator.prototype.getInvalidCells = function () {
-
- if (this.modExists("validate", true)) {
-
- return this.modules.validate.getInvalidCells();
- }
- };
-
- Tabulator.prototype.clearCellValidation = function (cells) {
- var _this31 = this;
-
- if (this.modExists("validate", true)) {
-
- if (!cells) {
-
- cells = this.modules.validate.getInvalidCells();
- }
-
- if (!Array.isArray(cells)) {
-
- cells = [cells];
- }
-
- cells.forEach(function (cell) {
-
- _this31.modules.validate.clearValidation(cell._getSelf());
- });
- }
- };
-
- Tabulator.prototype.validate = function (cells) {
-
- var output = [];
-
- //clear row data
-
- this.rowManager.rows.forEach(function (row) {
-
- var valid = row.validate();
-
- if (valid !== true) {
-
- output = output.concat(valid);
- }
- });
-
- return output.length ? output : true;
- };
-
- //////////// Pagination Functions ////////////
-
-
- Tabulator.prototype.setMaxPage = function (max) {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.setMaxPage(max);
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.setPage = function (page) {
-
- if (this.options.pagination && this.modExists("page")) {
-
- return this.modules.page.setPage(page);
- } else {
-
- return new Promise(function (resolve, reject) {
- reject();
- });
- }
- };
-
- Tabulator.prototype.setPageToRow = function (row) {
- var _this32 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this32.options.pagination && _this32.modExists("page")) {
-
- row = _this32.rowManager.findRow(row);
-
- if (row) {
-
- _this32.modules.page.setPageToRow(row).then(function () {
-
- resolve();
- }).catch(function () {
-
- reject();
- });
- } else {
-
- reject();
- }
- } else {
-
- reject();
- }
- });
- };
-
- Tabulator.prototype.setPageSize = function (size) {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.setPageSize(size);
-
- this.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getPageSize = function () {
-
- if (this.options.pagination && this.modExists("page", true)) {
-
- return this.modules.page.getPageSize();
- }
- };
-
- Tabulator.prototype.previousPage = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.previousPage();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.nextPage = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- this.modules.page.nextPage();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getPage = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- return this.modules.page.getPage();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getPageMax = function () {
-
- if (this.options.pagination && this.modExists("page")) {
-
- return this.modules.page.getPageMax();
- } else {
-
- return false;
- }
- };
-
- ///////////////// Grouping Functions ///////////////
-
-
- Tabulator.prototype.setGroupBy = function (groups) {
-
- if (this.modExists("groupRows", true)) {
-
- this.options.groupBy = groups;
-
- this.modules.groupRows.initialize();
-
- this.rowManager.refreshActiveData("display");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
-
- this.modules.persistence.save("group");
- }
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.setGroupStartOpen = function (values) {
-
- if (this.modExists("groupRows", true)) {
-
- this.options.groupStartOpen = values;
-
- this.modules.groupRows.initialize();
-
- if (this.options.groupBy) {
-
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
-
- this.modules.persistence.save("group");
- }
- } else {
-
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.setGroupHeader = function (values) {
-
- if (this.modExists("groupRows", true)) {
-
- this.options.groupHeader = values;
-
- this.modules.groupRows.initialize();
-
- if (this.options.groupBy) {
-
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
-
- this.modules.persistence.save("group");
- }
- } else {
-
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getGroups = function (values) {
-
- if (this.modExists("groupRows", true)) {
-
- return this.modules.groupRows.getGroups(true);
- } else {
-
- return false;
- }
- };
-
- // get grouped table data in the same format as getData()
-
- Tabulator.prototype.getGroupedData = function () {
-
- if (this.modExists("groupRows", true)) {
-
- return this.options.groupBy ? this.modules.groupRows.getGroupedData() : this.getData();
- }
- };
-
- Tabulator.prototype.getEditedCells = function () {
-
- if (this.modExists("edit", true)) {
-
- return this.modules.edit.getEditedCells();
- }
- };
-
- Tabulator.prototype.clearCellEdited = function (cells) {
- var _this33 = this;
-
- if (this.modExists("edit", true)) {
-
- if (!cells) {
-
- cells = this.modules.edit.getEditedCells();
- }
-
- if (!Array.isArray(cells)) {
-
- cells = [cells];
- }
-
- cells.forEach(function (cell) {
-
- _this33.modules.edit.clearEdited(cell._getSelf());
- });
- }
- };
-
- ///////////////// Column Calculation Functions ///////////////
-
- Tabulator.prototype.getCalcResults = function () {
-
- if (this.modExists("columnCalcs", true)) {
-
- return this.modules.columnCalcs.getResults();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.recalc = function () {
-
- if (this.modExists("columnCalcs", true)) {
-
- this.modules.columnCalcs.recalcAll(this.rowManager.activeRows);
- }
- };
-
- /////////////// Navigation Management //////////////
-
-
- Tabulator.prototype.navigatePrev = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- return cell.nav().prev();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateNext = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- return cell.nav().next();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateLeft = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().left();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateRight = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().right();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateUp = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().up();
- }
- }
-
- return false;
- };
-
- Tabulator.prototype.navigateDown = function () {
-
- var cell = false;
-
- if (this.modExists("edit", true)) {
-
- cell = this.modules.edit.currentCell;
-
- if (cell) {
-
- e.preventDefault();
-
- return cell.nav().down();
- }
- }
-
- return false;
- };
-
- /////////////// History Management //////////////
-
- Tabulator.prototype.undo = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.undo();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.redo = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.redo();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getHistoryUndoSize = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.getHistoryUndoSize();
- } else {
-
- return false;
- }
- };
-
- Tabulator.prototype.getHistoryRedoSize = function () {
-
- if (this.options.history && this.modExists("history", true)) {
-
- return this.modules.history.getHistoryRedoSize();
- } else {
-
- return false;
- }
- };
-
- /////////////// Download Management //////////////
-
-
- Tabulator.prototype.download = function (type, filename, options, active) {
-
- if (this.modExists("download", true)) {
-
- this.modules.download.download(type, filename, options, active);
- }
- };
-
- Tabulator.prototype.downloadToTab = function (type, filename, options, active) {
-
- if (this.modExists("download", true)) {
-
- this.modules.download.download(type, filename, options, active, true);
- }
- };
-
- /////////// Inter Table Communications ///////////
-
-
- Tabulator.prototype.tableComms = function (table, module, action, data) {
-
- this.modules.comms.receive(table, module, action, data);
- };
-
- ////////////// Extension Management //////////////
-
-
- //object to hold module
-
- Tabulator.prototype.moduleBindings = {};
-
- //extend module
-
- Tabulator.prototype.extendModule = function (name, property, values) {
-
- if (Tabulator.prototype.moduleBindings[name]) {
-
- var source = Tabulator.prototype.moduleBindings[name].prototype[property];
-
- if (source) {
-
- if ((typeof values === 'undefined' ? 'undefined' : _typeof(values)) == "object") {
-
- for (var key in values) {
-
- source[key] = values[key];
- }
- } else {
-
- console.warn("Module Error - Invalid value type, it must be an object");
- }
- } else {
-
- console.warn("Module Error - property does not exist:", property);
- }
- } else {
-
- console.warn("Module Error - module does not exist:", name);
- }
- };
-
- //add module to tabulator
-
- Tabulator.prototype.registerModule = function (name, module) {
-
- var self = this;
-
- Tabulator.prototype.moduleBindings[name] = module;
- };
-
- //ensure that module are bound to instantiated function
-
- Tabulator.prototype.bindModules = function () {
-
- this.modules = {};
-
- for (var name in Tabulator.prototype.moduleBindings) {
-
- this.modules[name] = new Tabulator.prototype.moduleBindings[name](this);
- }
- };
-
- //Check for module
-
- Tabulator.prototype.modExists = function (plugin, required) {
-
- if (this.modules[plugin]) {
-
- return true;
- } else {
-
- if (required) {
-
- console.error("Tabulator Module Not Installed: " + plugin);
- }
-
- return false;
- }
- };
-
- Tabulator.prototype.helpers = {
-
- elVisible: function elVisible(el) {
-
- return !(el.offsetWidth <= 0 && el.offsetHeight <= 0);
- },
-
- elOffset: function elOffset(el) {
-
- var box = el.getBoundingClientRect();
-
- return {
-
- top: box.top + window.pageYOffset - document.documentElement.clientTop,
-
- left: box.left + window.pageXOffset - document.documentElement.clientLeft
-
- };
- },
-
- deepClone: function deepClone(obj) {
-
- var clone = Array.isArray(obj) ? [] : {};
-
- for (var i in obj) {
-
- if (obj[i] != null && _typeof(obj[i]) === "object") {
-
- if (obj[i] instanceof Date) {
-
- clone[i] = new Date(obj[i]);
- } else {
-
- clone[i] = this.deepClone(obj[i]);
- }
- } else {
-
- clone[i] = obj[i];
- }
- }
-
- return clone;
- }
-
- };
-
- Tabulator.prototype.comms = {
-
- tables: [],
-
- register: function register(table) {
-
- Tabulator.prototype.comms.tables.push(table);
- },
-
- deregister: function deregister(table) {
-
- var index = Tabulator.prototype.comms.tables.indexOf(table);
-
- if (index > -1) {
-
- Tabulator.prototype.comms.tables.splice(index, 1);
- }
- },
-
- lookupTable: function lookupTable(query, silent) {
-
- var results = [],
- matches,
- match;
-
- if (typeof query === "string") {
-
- matches = document.querySelectorAll(query);
-
- if (matches.length) {
-
- for (var i = 0; i < matches.length; i++) {
-
- match = Tabulator.prototype.comms.matchElement(matches[i]);
-
- if (match) {
-
- results.push(match);
- }
- }
- }
- } else if (typeof HTMLElement !== "undefined" && query instanceof HTMLElement || query instanceof Tabulator) {
-
- match = Tabulator.prototype.comms.matchElement(query);
-
- if (match) {
-
- results.push(match);
- }
- } else if (Array.isArray(query)) {
-
- query.forEach(function (item) {
-
- results = results.concat(Tabulator.prototype.comms.lookupTable(item));
- });
- } else {
-
- if (!silent) {
-
- console.warn("Table Connection Error - Invalid Selector", query);
- }
- }
-
- return results;
- },
-
- matchElement: function matchElement(element) {
-
- return Tabulator.prototype.comms.tables.find(function (table) {
-
- return element instanceof Tabulator ? table === element : table.element === element;
- });
- }
-
- };
-
- Tabulator.prototype.findTable = function (query) {
-
- var results = Tabulator.prototype.comms.lookupTable(query, true);
-
- return Array.isArray(results) && !results.length ? false : results;
- };
-
- var Layout = function Layout(table) {
-
- this.table = table;
-
- this.mode = null;
- };
-
- //initialize layout system
-
-
- Layout.prototype.initialize = function (layout) {
-
- if (this.modes[layout]) {
-
- this.mode = layout;
- } else {
-
- console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : " + layout);
-
- this.mode = 'fitData';
- }
-
- this.table.element.setAttribute("tabulator-layout", this.mode);
- };
-
- Layout.prototype.getMode = function () {
-
- return this.mode;
- };
-
- //trigger table layout
-
-
- Layout.prototype.layout = function () {
-
- this.modes[this.mode].call(this, this.table.columnManager.columnsByIndex);
- };
-
- //layout render functions
-
-
- Layout.prototype.modes = {
-
- //resize columns to fit data they contain
-
-
- "fitData": function fitData(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data they contain and stretch row to fill table
-
-
- "fitDataFill": function fitDataFill(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data they contain
-
-
- "fitDataTable": function fitDataTable(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data the contain and stretch last column to fill table
-
-
- "fitDataStretch": function fitDataStretch(columns) {
- var _this34 = this;
-
- var colsWidth = 0,
- tableWidth = this.table.rowManager.element.clientWidth,
- gap = 0,
- lastCol = false;
-
- columns.forEach(function (column, i) {
-
- if (!column.widthFixed) {
-
- column.reinitializeWidth();
- }
-
- if (_this34.table.options.responsiveLayout ? column.modules.responsive.visible : column.visible) {
-
- lastCol = column;
- }
-
- if (column.visible) {
-
- colsWidth += column.getWidth();
- }
- });
-
- if (lastCol) {
-
- gap = tableWidth - colsWidth + lastCol.getWidth();
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- lastCol.setWidth(0);
-
- this.table.modules.responsiveLayout.update();
- }
-
- if (gap > 0) {
-
- lastCol.setWidth(gap);
- } else {
-
- lastCol.reinitializeWidth();
- }
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- },
-
- //resize columns to fit
-
-
- "fitColumns": function fitColumns(columns) {
-
- var self = this;
-
- var totalWidth = self.table.element.clientWidth; //table element width
-
-
- var fixedWidth = 0; //total width of columns with a defined width
-
-
- var flexWidth = 0; //total width available to flexible columns
-
-
- var flexGrowUnits = 0; //total number of widthGrow blocks accross all columns
-
-
- var flexColWidth = 0; //desired width of flexible columns
-
-
- var flexColumns = []; //array of flexible width columns
-
-
- var fixedShrinkColumns = []; //array of fixed width columns that can shrink
-
-
- var flexShrinkUnits = 0; //total number of widthShrink blocks accross all columns
-
-
- var overflowWidth = 0; //horizontal overflow width
-
-
- var gapFill = 0; //number of pixels to be added to final column to close and half pixel gaps
-
-
- function calcWidth(width) {
-
- var colWidth;
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- return colWidth;
- }
-
- //ensure columns resize to take up the correct amount of space
-
-
- function scaleColumns(columns, freeSpace, colWidth, shrinkCols) {
-
- var oversizeCols = [],
- oversizeSpace = 0,
- remainingSpace = 0,
- nextColWidth = 0,
- gap = 0,
- changeUnits = 0,
- undersizeCols = [];
-
- function calcGrow(col) {
-
- return colWidth * (col.column.definition.widthGrow || 1);
- }
-
- function calcShrink(col) {
-
- return calcWidth(col.width) - colWidth * (col.column.definition.widthShrink || 0);
- }
-
- columns.forEach(function (col, i) {
-
- var width = shrinkCols ? calcShrink(col) : calcGrow(col);
-
- if (col.column.minWidth >= width) {
-
- oversizeCols.push(col);
- } else {
-
- undersizeCols.push(col);
-
- changeUnits += shrinkCols ? col.column.definition.widthShrink || 1 : col.column.definition.widthGrow || 1;
- }
- });
-
- if (oversizeCols.length) {
-
- oversizeCols.forEach(function (col) {
-
- oversizeSpace += shrinkCols ? col.width - col.column.minWidth : col.column.minWidth;
-
- col.width = col.column.minWidth;
- });
-
- remainingSpace = freeSpace - oversizeSpace;
-
- nextColWidth = changeUnits ? Math.floor(remainingSpace / changeUnits) : remainingSpace;
-
- gap = remainingSpace - nextColWidth * changeUnits;
-
- gap += scaleColumns(undersizeCols, remainingSpace, nextColWidth, shrinkCols);
- } else {
-
- gap = changeUnits ? freeSpace - Math.floor(freeSpace / changeUnits) * changeUnits : freeSpace;
-
- undersizeCols.forEach(function (column) {
-
- column.width = shrinkCols ? calcShrink(column) : calcGrow(column);
- });
- }
-
- return gap;
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
-
- //adjust for vertical scrollbar if present
-
-
- if (this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight) {
-
- totalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth;
- }
-
- columns.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width;
-
- minWidth = parseInt(column.minWidth);
-
- if (width) {
-
- colWidth = calcWidth(width);
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
-
- if (column.definition.widthShrink) {
-
- fixedShrinkColumns.push({
-
- column: column,
-
- width: colWidth > minWidth ? colWidth : minWidth
-
- });
-
- flexShrinkUnits += column.definition.widthShrink;
- }
- } else {
-
- flexColumns.push({
-
- column: column,
-
- width: 0
-
- });
-
- flexGrowUnits += column.definition.widthGrow || 1;
- }
- }
- });
-
- //calculate available space
-
-
- flexWidth = totalWidth - fixedWidth;
-
- //calculate correct column size
-
-
- flexColWidth = Math.floor(flexWidth / flexGrowUnits);
-
- //generate column widths
-
-
- var gapFill = scaleColumns(flexColumns, flexWidth, flexColWidth, false);
-
- //increase width of last column to account for rounding errors
-
-
- if (flexColumns.length && gapFill > 0) {
-
- flexColumns[flexColumns.length - 1].width += +gapFill;
- }
-
- //caculate space for columns to be shrunk into
-
-
- flexColumns.forEach(function (col) {
-
- flexWidth -= col.width;
- });
-
- overflowWidth = Math.abs(gapFill) + flexWidth;
-
- //shrink oversize columns if there is no available space
-
-
- if (overflowWidth > 0 && flexShrinkUnits) {
-
- gapFill = scaleColumns(fixedShrinkColumns, overflowWidth, Math.floor(overflowWidth / flexShrinkUnits), true);
- }
-
- //decrease width of last column to account for rounding errors
-
-
- if (fixedShrinkColumns.length) {
-
- fixedShrinkColumns[fixedShrinkColumns.length - 1].width -= gapFill;
- }
-
- flexColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
-
- fixedShrinkColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
- }
-
- };
-
- Tabulator.prototype.registerModule("layout", Layout);
-
- var Localize = function Localize(table) {
-
- this.table = table; //hold Tabulator object
-
- this.locale = "default"; //current locale
-
- this.lang = false; //current language
-
- this.bindings = {}; //update events to call when locale is changed
- };
-
- //set header placehoder
-
- Localize.prototype.setHeaderFilterPlaceholder = function (placeholder) {
-
- this.langs.default.headerFilters.default = placeholder;
- };
-
- //set header filter placeholder by column
-
- Localize.prototype.setHeaderFilterColumnPlaceholder = function (column, placeholder) {
-
- this.langs.default.headerFilters.columns[column] = placeholder;
-
- if (this.lang && !this.lang.headerFilters.columns[column]) {
-
- this.lang.headerFilters.columns[column] = placeholder;
- }
- };
-
- //setup a lang description object
-
- Localize.prototype.installLang = function (locale, lang) {
-
- if (this.langs[locale]) {
-
- this._setLangProp(this.langs[locale], lang);
- } else {
-
- this.langs[locale] = lang;
- }
- };
-
- Localize.prototype._setLangProp = function (lang, values) {
-
- for (var key in values) {
-
- if (lang[key] && _typeof(lang[key]) == "object") {
-
- this._setLangProp(lang[key], values[key]);
- } else {
-
- lang[key] = values[key];
- }
- }
- };
-
- //set current locale
-
- Localize.prototype.setLocale = function (desiredLocale) {
-
- var self = this;
-
- desiredLocale = desiredLocale || "default";
-
- //fill in any matching languge values
-
- function traverseLang(trans, path) {
-
- for (var prop in trans) {
-
- if (_typeof(trans[prop]) == "object") {
-
- if (!path[prop]) {
-
- path[prop] = {};
- }
-
- traverseLang(trans[prop], path[prop]);
- } else {
-
- path[prop] = trans[prop];
- }
- }
- }
-
- //determing correct locale to load
-
- if (desiredLocale === true && navigator.language) {
-
- //get local from system
-
- desiredLocale = navigator.language.toLowerCase();
- }
-
- if (desiredLocale) {
-
- //if locale is not set, check for matching top level locale else use default
-
- if (!self.langs[desiredLocale]) {
-
- var prefix = desiredLocale.split("-")[0];
-
- if (self.langs[prefix]) {
-
- console.warn("Localization Error - Exact matching locale not found, using closest match: ", desiredLocale, prefix);
-
- desiredLocale = prefix;
- } else {
-
- console.warn("Localization Error - Matching locale not found, using default: ", desiredLocale);
-
- desiredLocale = "default";
- }
- }
- }
-
- self.locale = desiredLocale;
-
- //load default lang template
-
- self.lang = Tabulator.prototype.helpers.deepClone(self.langs.default || {});
-
- if (desiredLocale != "default") {
-
- traverseLang(self.langs[desiredLocale], self.lang);
- }
-
- self.table.options.localized.call(self.table, self.locale, self.lang);
-
- self._executeBindings();
- };
-
- //get current locale
-
- Localize.prototype.getLocale = function (locale) {
-
- return self.locale;
- };
-
- //get lang object for given local or current if none provided
-
- Localize.prototype.getLang = function (locale) {
-
- return locale ? this.langs[locale] : this.lang;
- };
-
- //get text for current locale
-
- Localize.prototype.getText = function (path, value) {
-
- var path = value ? path + "|" + value : path,
- pathArray = path.split("|"),
- text = this._getLangElement(pathArray, this.locale);
-
- // if(text === false){
-
- // console.warn("Localization Error - Matching localized text not found for given path: ", path);
-
- // }
-
-
- return text || "";
- };
-
- //traverse langs object and find localized copy
-
- Localize.prototype._getLangElement = function (path, locale) {
-
- var self = this;
-
- var root = self.lang;
-
- path.forEach(function (level) {
-
- var rootPath;
-
- if (root) {
-
- rootPath = root[level];
-
- if (typeof rootPath != "undefined") {
-
- root = rootPath;
- } else {
-
- root = false;
- }
- }
- });
-
- return root;
- };
-
- //set update binding
-
- Localize.prototype.bind = function (path, callback) {
-
- if (!this.bindings[path]) {
-
- this.bindings[path] = [];
- }
-
- this.bindings[path].push(callback);
-
- callback(this.getText(path), this.lang);
- };
-
- //itterate through bindings and trigger updates
-
- Localize.prototype._executeBindings = function () {
-
- var self = this;
-
- var _loop = function _loop(path) {
-
- self.bindings[path].forEach(function (binding) {
-
- binding(self.getText(path), self.lang);
- });
- };
-
- for (var path in self.bindings) {
- _loop(path);
- }
- };
-
- //Localized text listings
-
- Localize.prototype.langs = {
-
- "default": { //hold default locale text
-
- "groups": {
-
- "item": "item",
-
- "items": "items"
-
- },
-
- "columns": {},
-
- "ajax": {
-
- "loading": "Loading",
-
- "error": "Error"
-
- },
-
- "pagination": {
-
- "page_size": "Page Size",
-
- "page_title": "Show Page",
-
- "first": "First",
-
- "first_title": "First Page",
-
- "last": "Last",
-
- "last_title": "Last Page",
-
- "prev": "Prev",
-
- "prev_title": "Prev Page",
-
- "next": "Next",
-
- "next_title": "Next Page",
-
- "all": "All"
-
- },
-
- "headerFilters": {
-
- "default": "filter column...",
-
- "columns": {}
-
- }
-
- }
-
- };
-
- Tabulator.prototype.registerModule("localize", Localize);
-
- var Comms = function Comms(table) {
-
- this.table = table;
- };
-
- Comms.prototype.getConnections = function (selectors) {
-
- var self = this,
- connections = [],
- connection;
-
- connection = Tabulator.prototype.comms.lookupTable(selectors);
-
- connection.forEach(function (con) {
-
- if (self.table !== con) {
-
- connections.push(con);
- }
- });
-
- return connections;
- };
-
- Comms.prototype.send = function (selectors, module, action, data) {
-
- var self = this,
- connections = this.getConnections(selectors);
-
- connections.forEach(function (connection) {
-
- connection.tableComms(self.table.element, module, action, data);
- });
-
- if (!connections.length && selectors) {
-
- console.warn("Table Connection Error - No tables matching selector found", selectors);
- }
- };
-
- Comms.prototype.receive = function (table, module, action, data) {
-
- if (this.table.modExists(module)) {
-
- return this.table.modules[module].commsReceived(table, action, data);
- } else {
-
- console.warn("Inter-table Comms Error - no such module:", module);
- }
- };
-
- Tabulator.prototype.registerModule("comms", Comms);
-
- var Accessor = function Accessor(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "download", "clipboard", "print", "htmlOutput"]; //list of accessor types
- };
-
- //initialize column accessor
- Accessor.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1)),
- accessor;
-
- if (column.definition[key]) {
- accessor = self.lookupAccessor(column.definition[key]);
-
- if (accessor) {
- match = true;
-
- config[key] = {
- accessor: accessor,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.accessor = config;
- }
- };
-
- Accessor.prototype.lookupAccessor = function (value) {
- var accessor = false;
-
- //set column accessor
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "string":
- if (this.accessors[value]) {
- accessor = this.accessors[value];
- } else {
- console.warn("Accessor Error - No such accessor found, ignoring: ", value);
- }
- break;
-
- case "function":
- accessor = value;
- break;
- }
-
- return accessor;
- };
-
- //apply accessor to row
- Accessor.prototype.transformRow = function (dataIn, type) {
- var self = this,
- key = "accessor" + (type.charAt(0).toUpperCase() + type.slice(1));
-
- //clone data object with deep copy to isolate internal data from returned result
- var data = Tabulator.prototype.helpers.deepClone(dataIn || {});
-
- self.table.columnManager.traverse(function (column) {
- var value, accessor, params, component;
-
- if (column.modules.accessor) {
-
- accessor = column.modules.accessor[key] || column.modules.accessor.accessor || false;
-
- if (accessor) {
- value = column.getFieldValue(data);
-
- if (value != "undefined") {
- component = column.getComponent();
- params = typeof accessor.params === "function" ? accessor.params(value, data, type, component) : accessor.params;
- column.setFieldValue(data, accessor.accessor(value, data, type, params, component));
- }
- }
- }
- });
-
- return data;
- },
-
- //default accessors
- Accessor.prototype.accessors = {};
-
- Tabulator.prototype.registerModule("accessor", Accessor);
- var Ajax = function Ajax(table) {
-
- this.table = table; //hold Tabulator object
- this.config = false; //hold config object for ajax request
- this.url = ""; //request URL
- this.urlGenerator = false;
- this.params = false; //request parameters
-
- this.loaderElement = this.createLoaderElement(); //loader message div
- this.msgElement = this.createMsgElement(); //message element
- this.loadingElement = false;
- this.errorElement = false;
- this.loaderPromise = false;
-
- this.progressiveLoad = false;
- this.loading = false;
-
- this.requestOrder = 0; //prevent requests comming out of sequence if overridden by another load request
- };
-
- //initialize setup options
- Ajax.prototype.initialize = function () {
- var template;
-
- this.loaderElement.appendChild(this.msgElement);
-
- if (this.table.options.ajaxLoaderLoading) {
- if (typeof this.table.options.ajaxLoaderLoading == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderLoading.trim();
- this.loadingElement = template.content.firstChild;
- } else {
- this.loadingElement = this.table.options.ajaxLoaderLoading;
- }
- }
-
- this.loaderPromise = this.table.options.ajaxRequestFunc || this.defaultLoaderPromise;
-
- this.urlGenerator = this.table.options.ajaxURLGenerator || this.defaultURLGenerator;
-
- if (this.table.options.ajaxLoaderError) {
- if (typeof this.table.options.ajaxLoaderError == "string") {
- template = document.createElement('template');
- template.innerHTML = this.table.options.ajaxLoaderError.trim();
- this.errorElement = template.content.firstChild;
- } else {
- this.errorElement = this.table.options.ajaxLoaderError;
- }
- }
-
- if (this.table.options.ajaxParams) {
- this.setParams(this.table.options.ajaxParams);
- }
-
- if (this.table.options.ajaxConfig) {
- this.setConfig(this.table.options.ajaxConfig);
- }
-
- if (this.table.options.ajaxURL) {
- this.setUrl(this.table.options.ajaxURL);
- }
-
- if (this.table.options.ajaxProgressiveLoad) {
- if (this.table.options.pagination) {
- this.progressiveLoad = false;
- console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time");
- } else {
- if (this.table.modExists("page")) {
- this.progressiveLoad = this.table.options.ajaxProgressiveLoad;
- this.table.modules.page.initializeProgressive(this.progressiveLoad);
- } else {
- console.error("Pagination plugin is required for progressive ajax loading");
- }
- }
- }
- };
-
- Ajax.prototype.createLoaderElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-loader");
- return el;
- };
-
- Ajax.prototype.createMsgElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-loader-msg");
- el.setAttribute("role", "alert");
-
- return el;
- };
-
- //set ajax params
- Ajax.prototype.setParams = function (params, update) {
- if (update) {
- this.params = this.params || {};
-
- for (var key in params) {
- this.params[key] = params[key];
- }
- } else {
- this.params = params;
- }
- };
-
- Ajax.prototype.getParams = function () {
- return this.params || {};
- };
-
- //load config object
- Ajax.prototype.setConfig = function (config) {
- this._loadDefaultConfig();
-
- if (typeof config == "string") {
- this.config.method = config;
- } else {
- for (var key in config) {
- this.config[key] = config[key];
- }
- }
- };
-
- //create config object from default
- Ajax.prototype._loadDefaultConfig = function (force) {
- var self = this;
- if (!self.config || force) {
-
- self.config = {};
-
- //load base config from defaults
- for (var key in self.defaultConfig) {
- self.config[key] = self.defaultConfig[key];
- }
- }
- };
-
- //set request url
- Ajax.prototype.setUrl = function (url) {
- this.url = url;
- };
-
- //get request url
- Ajax.prototype.getUrl = function () {
- return this.url;
- };
-
- //lstandard loading function
- Ajax.prototype.loadData = function (inPosition, columnsChanged) {
- var self = this;
-
- if (this.progressiveLoad) {
- return this._loadDataProgressive();
- } else {
- return this._loadDataStandard(inPosition, columnsChanged);
- }
- };
-
- Ajax.prototype.nextPage = function (diff) {
- var margin;
-
- if (!this.loading) {
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.getElement().clientHeight * 2;
-
- if (diff < margin) {
- this.table.modules.page.nextPage().then(function () {}).catch(function () {});
- }
- }
- };
-
- Ajax.prototype.blockActiveRequest = function () {
- this.requestOrder++;
- };
-
- Ajax.prototype._loadDataProgressive = function () {
- this.table.rowManager.setData([]);
- return this.table.modules.page.setPage(1);
- };
-
- Ajax.prototype._loadDataStandard = function (inPosition, columnsChanged) {
- var _this35 = this;
-
- return new Promise(function (resolve, reject) {
- _this35.sendRequest(inPosition).then(function (data) {
- _this35.table.rowManager.setData(data, inPosition, columnsChanged).then(function () {
- resolve();
- }).catch(function (e) {
- reject(e);
- });
- }).catch(function (e) {
- reject(e);
- });
- });
- };
-
- Ajax.prototype.generateParamsList = function (data, prefix) {
- var self = this,
- output = [];
-
- prefix = prefix || "";
-
- if (Array.isArray(data)) {
- data.forEach(function (item, i) {
- output = output.concat(self.generateParamsList(item, prefix ? prefix + "[" + i + "]" : i));
- });
- } else if ((typeof data === 'undefined' ? 'undefined' : _typeof(data)) === "object") {
- for (var key in data) {
- output = output.concat(self.generateParamsList(data[key], prefix ? prefix + "[" + key + "]" : key));
- }
- } else {
- output.push({ key: prefix, value: data });
- }
-
- return output;
- };
-
- Ajax.prototype.serializeParams = function (params) {
- var output = this.generateParamsList(params),
- encoded = [];
-
- output.forEach(function (item) {
- encoded.push(encodeURIComponent(item.key) + "=" + encodeURIComponent(item.value));
- });
-
- return encoded.join("&");
- };
-
- //send ajax request
- Ajax.prototype.sendRequest = function (silent) {
- var _this36 = this;
-
- var self = this,
- url = self.url,
- requestNo,
- esc,
- query;
-
- self.requestOrder++;
- requestNo = self.requestOrder;
-
- self._loadDefaultConfig();
-
- return new Promise(function (resolve, reject) {
- if (self.table.options.ajaxRequesting.call(_this36.table, self.url, self.params) !== false) {
-
- self.loading = true;
-
- if (!silent) {
- self.showLoader();
- }
-
- _this36.loaderPromise(url, self.config, self.params).then(function (data) {
- if (requestNo === self.requestOrder) {
- if (self.table.options.ajaxResponse) {
- data = self.table.options.ajaxResponse.call(self.table, self.url, self.params, data);
- }
- resolve(data);
-
- self.hideLoader();
- self.loading = false;
- } else {
- console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made");
- }
- }).catch(function (error) {
- console.error("Ajax Load Error: ", error);
- self.table.options.ajaxError.call(self.table, error);
-
- self.showError();
-
- setTimeout(function () {
- self.hideLoader();
- }, 3000);
-
- self.loading = false;
-
- reject();
- });
- } else {
- reject();
- }
- });
- };
-
- Ajax.prototype.showLoader = function () {
- var shouldLoad = typeof this.table.options.ajaxLoader === "function" ? this.table.options.ajaxLoader() : this.table.options.ajaxLoader;
-
- if (shouldLoad) {
-
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-error");
- this.msgElement.classList.add("tabulator-loading");
-
- if (this.loadingElement) {
- this.msgElement.appendChild(this.loadingElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|loading");
- }
-
- this.table.element.appendChild(this.loaderElement);
- }
- };
-
- Ajax.prototype.showError = function () {
- this.hideLoader();
-
- while (this.msgElement.firstChild) {
- this.msgElement.removeChild(this.msgElement.firstChild);
- }this.msgElement.classList.remove("tabulator-loading");
- this.msgElement.classList.add("tabulator-error");
-
- if (this.errorElement) {
- this.msgElement.appendChild(this.errorElement);
- } else {
- this.msgElement.innerHTML = this.table.modules.localize.getText("ajax|error");
- }
-
- this.table.element.appendChild(this.loaderElement);
- };
-
- Ajax.prototype.hideLoader = function () {
- if (this.loaderElement.parentNode) {
- this.loaderElement.parentNode.removeChild(this.loaderElement);
- }
- };
-
- //default ajax config object
- Ajax.prototype.defaultConfig = {
- method: "GET"
- };
-
- Ajax.prototype.defaultURLGenerator = function (url, config, params) {
-
- if (url) {
- if (params && Object.keys(params).length) {
- if (!config.method || config.method.toLowerCase() == "get") {
- config.method = "get";
-
- url += (url.includes("?") ? "&" : "?") + this.serializeParams(params);
- }
- }
- }
-
- return url;
- };
-
- Ajax.prototype.defaultLoaderPromise = function (url, config, params) {
- var self = this,
- contentType;
-
- return new Promise(function (resolve, reject) {
-
- //set url
- url = self.urlGenerator(url, config, params);
-
- //set body content if not GET request
- if (config.method.toUpperCase() != "GET") {
- contentType = _typeof(self.table.options.ajaxContentType) === "object" ? self.table.options.ajaxContentType : self.contentTypeFormatters[self.table.options.ajaxContentType];
- if (contentType) {
-
- for (var key in contentType.headers) {
- if (!config.headers) {
- config.headers = {};
- }
-
- if (typeof config.headers[key] === "undefined") {
- config.headers[key] = contentType.headers[key];
- }
- }
-
- config.body = contentType.body.call(self, url, config, params);
- } else {
- console.warn("Ajax Error - Invalid ajaxContentType value:", self.table.options.ajaxContentType);
- }
- }
-
- if (url) {
-
- //configure headers
- if (typeof config.headers === "undefined") {
- config.headers = {};
- }
-
- if (typeof config.headers.Accept === "undefined") {
- config.headers.Accept = "application/json";
- }
-
- if (typeof config.headers["X-Requested-With"] === "undefined") {
- config.headers["X-Requested-With"] = "XMLHttpRequest";
- }
-
- if (typeof config.mode === "undefined") {
- config.mode = "cors";
- }
-
- if (config.mode == "cors") {
-
- if (typeof config.headers["Access-Control-Allow-Origin"] === "undefined") {
- config.headers["Access-Control-Allow-Origin"] = window.location.origin;
- }
-
- if (typeof config.credentials === "undefined") {
- config.credentials = 'same-origin';
- }
- } else {
- if (typeof config.credentials === "undefined") {
- config.credentials = 'include';
- }
- }
-
- //send request
- fetch(url, config).then(function (response) {
- if (response.ok) {
- response.json().then(function (data) {
- resolve(data);
- }).catch(function (error) {
- reject(error);
- console.warn("Ajax Load Error - Invalid JSON returned", error);
- });
- } else {
- console.error("Ajax Load Error - Connection Error: " + response.status, response.statusText);
- reject(response);
- }
- }).catch(function (error) {
- console.error("Ajax Load Error - Connection Error: ", error);
- reject(error);
- });
- } else {
- console.warn("Ajax Load Error - No URL Set");
- resolve([]);
- }
- });
- };
-
- Ajax.prototype.contentTypeFormatters = {
- "json": {
- headers: {
- 'Content-Type': 'application/json'
- },
- body: function body(url, config, params) {
- return JSON.stringify(params);
- }
- },
- "form": {
- headers: {},
- body: function body(url, config, params) {
- var output = this.generateParamsList(params),
- form = new FormData();
-
- output.forEach(function (item) {
- form.append(item.key, item.value);
- });
-
- return form;
- }
- }
- };
-
- Tabulator.prototype.registerModule("ajax", Ajax);
-
- var ColumnCalcs = function ColumnCalcs(table) {
- this.table = table; //hold Tabulator object
- this.topCalcs = [];
- this.botCalcs = [];
- this.genColumn = false;
- this.topElement = this.createElement();
- this.botElement = this.createElement();
- this.topRow = false;
- this.botRow = false;
- this.topInitialized = false;
- this.botInitialized = false;
-
- this.initialize();
- };
-
- ColumnCalcs.prototype.createElement = function () {
- var el = document.createElement("div");
- el.classList.add("tabulator-calcs-holder");
- return el;
- };
-
- ColumnCalcs.prototype.initialize = function () {
- this.genColumn = new Column({ field: "value" }, this);
- };
-
- //dummy functions to handle being mock column manager
- ColumnCalcs.prototype.registerColumnField = function () {};
-
- //initialize column calcs
- ColumnCalcs.prototype.initializeColumn = function (column) {
- var def = column.definition;
-
- var config = {
- topCalcParams: def.topCalcParams || {},
- botCalcParams: def.bottomCalcParams || {}
- };
-
- if (def.topCalc) {
-
- switch (_typeof(def.topCalc)) {
- case "string":
- if (this.calculations[def.topCalc]) {
- config.topCalc = this.calculations[def.topCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.topCalc);
- }
- break;
-
- case "function":
- config.topCalc = def.topCalc;
- break;
-
- }
-
- if (config.topCalc) {
- column.modules.columnCalcs = config;
- this.topCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeTopRow();
- }
- }
- }
-
- if (def.bottomCalc) {
- switch (_typeof(def.bottomCalc)) {
- case "string":
- if (this.calculations[def.bottomCalc]) {
- config.botCalc = this.calculations[def.bottomCalc];
- } else {
- console.warn("Column Calc Error - No such calculation found, ignoring: ", def.bottomCalc);
- }
- break;
-
- case "function":
- config.botCalc = def.bottomCalc;
- break;
-
- }
-
- if (config.botCalc) {
- column.modules.columnCalcs = config;
- this.botCalcs.push(column);
-
- if (this.table.options.columnCalcs != "group") {
- this.initializeBottomRow();
- }
- }
- }
- };
-
- ColumnCalcs.prototype.removeCalcs = function () {
- var changed = false;
-
- if (this.topInitialized) {
- this.topInitialized = false;
- this.topElement.parentNode.removeChild(this.topElement);
- changed = true;
- }
-
- if (this.botInitialized) {
- this.botInitialized = false;
- this.table.footerManager.remove(this.botElement);
- changed = true;
- }
-
- if (changed) {
- this.table.rowManager.adjustTableSize();
- }
- };
-
- ColumnCalcs.prototype.initializeTopRow = function () {
- if (!this.topInitialized) {
- // this.table.columnManager.headersElement.after(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
- this.topInitialized = true;
- }
- };
-
- ColumnCalcs.prototype.initializeBottomRow = function () {
- if (!this.botInitialized) {
- this.table.footerManager.prepend(this.botElement);
- this.botInitialized = true;
- }
- };
-
- ColumnCalcs.prototype.scrollHorizontal = function (left) {
- var hozAdjust = 0,
- scrollWidth = this.table.columnManager.getElement().scrollWidth - this.table.element.clientWidth;
-
- if (this.botInitialized) {
- this.botRow.getElement().style.marginLeft = -left + "px";
- }
- };
-
- ColumnCalcs.prototype.recalc = function (rows) {
- var data, row;
-
- if (this.topInitialized || this.botInitialized) {
- data = this.rowsToData(rows);
-
- if (this.topInitialized) {
- if (this.topRow) {
- this.topRow.deleteCells();
- }
-
- row = this.generateRow("top", this.rowsToData(rows));
- this.topRow = row;
- while (this.topElement.firstChild) {
- this.topElement.removeChild(this.topElement.firstChild);
- }this.topElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- if (this.botInitialized) {
- if (this.botRow) {
- this.botRow.deleteCells();
- }
-
- row = this.generateRow("bottom", this.rowsToData(rows));
- this.botRow = row;
- while (this.botElement.firstChild) {
- this.botElement.removeChild(this.botElement.firstChild);
- }this.botElement.appendChild(row.getElement());
- row.initialize(true);
- }
-
- this.table.rowManager.adjustTableSize();
-
- //set resizable handles
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
- }
- };
-
- ColumnCalcs.prototype.recalcRowGroup = function (row) {
- this.recalcGroup(this.table.modules.groupRows.getRowGroup(row));
- };
-
- ColumnCalcs.prototype.recalcAll = function () {
- var _this37 = this;
-
- if (this.topCalcs.length || this.botCalcs.length) {
- if (this.table.options.columnCalcs !== "group") {
- this.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.groupBy && this.table.options.columnCalcs !== "table") {
-
- var groups = table.modules.groupRows.getChildGroups();
-
- groups.forEach(function (group) {
- _this37.recalcGroup(group);
- });
- }
- }
- };
-
- ColumnCalcs.prototype.recalcGroup = function (group) {
- var data, rowData;
-
- if (group) {
- if (group.calcs) {
- if (group.calcs.bottom) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("bottom", data);
-
- group.calcs.bottom.updateData(rowData);
- group.calcs.bottom.reinitialize();
- }
-
- if (group.calcs.top) {
- data = this.rowsToData(group.rows);
- rowData = this.generateRowData("top", data);
-
- group.calcs.top.updateData(rowData);
- group.calcs.top.reinitialize();
- }
- }
- }
- };
-
- //generate top stats row
- ColumnCalcs.prototype.generateTopRow = function (rows) {
- return this.generateRow("top", this.rowsToData(rows));
- };
- //generate bottom stats row
- ColumnCalcs.prototype.generateBottomRow = function (rows) {
- return this.generateRow("bottom", this.rowsToData(rows));
- };
-
- ColumnCalcs.prototype.rowsToData = function (rows) {
- var _this38 = this;
-
- var data = [];
-
- rows.forEach(function (row) {
- data.push(row.getData());
-
- if (_this38.table.options.dataTree && _this38.table.options.dataTreeChildColumnCalcs) {
- if (row.modules.dataTree.open) {
- var children = _this38.rowsToData(_this38.table.modules.dataTree.getFilteredTreeChildren(row));
- data = data.concat(children);
- }
- }
- });
-
- return data;
- };
-
- //generate stats row
- ColumnCalcs.prototype.generateRow = function (pos, data) {
- var self = this,
- rowData = this.generateRowData(pos, data),
- row;
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.disable();
- }
-
- row = new Row(rowData, this, "calc");
-
- if (self.table.modExists("mutator")) {
- self.table.modules.mutator.enable();
- }
-
- row.getElement().classList.add("tabulator-calcs", "tabulator-calcs-" + pos);
-
- row.generateCells = function () {
-
- var cells = [];
-
- self.table.columnManager.columnsByIndex.forEach(function (column) {
-
- //set field name of mock column
- self.genColumn.setField(column.getField());
- self.genColumn.hozAlign = column.hozAlign;
-
- if (column.definition[pos + "CalcFormatter"] && self.table.modExists("format")) {
-
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter(column.definition[pos + "CalcFormatter"]),
- params: column.definition[pos + "CalcFormatterParams"]
- };
- } else {
- self.genColumn.modules.format = {
- formatter: self.table.modules.format.getFormatter("plaintext"),
- params: {}
- };
- }
-
- //ensure css class defintion is replicated to calculation cell
- self.genColumn.definition.cssClass = column.definition.cssClass;
-
- //generate cell and assign to correct column
- var cell = new Cell(self.genColumn, row);
- cell.column = column;
- cell.setWidth();
-
- column.cells.push(cell);
- cells.push(cell);
-
- if (!column.visible) {
- cell.hide();
- }
- });
-
- this.cells = cells;
- };
-
- return row;
- };
-
- //generate stats row
- ColumnCalcs.prototype.generateRowData = function (pos, data) {
- var rowData = {},
- calcs = pos == "top" ? this.topCalcs : this.botCalcs,
- type = pos == "top" ? "topCalc" : "botCalc",
- params,
- paramKey;
-
- calcs.forEach(function (column) {
- var values = [];
-
- if (column.modules.columnCalcs && column.modules.columnCalcs[type]) {
- data.forEach(function (item) {
- values.push(column.getFieldValue(item));
- });
-
- paramKey = type + "Params";
- params = typeof column.modules.columnCalcs[paramKey] === "function" ? column.modules.columnCalcs[paramKey](values, data) : column.modules.columnCalcs[paramKey];
-
- column.setFieldValue(rowData, column.modules.columnCalcs[type](values, data, params));
- }
- });
-
- return rowData;
- };
-
- ColumnCalcs.prototype.hasTopCalcs = function () {
- return !!this.topCalcs.length;
- };
-
- ColumnCalcs.prototype.hasBottomCalcs = function () {
- return !!this.botCalcs.length;
- };
-
- //handle table redraw
- ColumnCalcs.prototype.redraw = function () {
- if (this.topRow) {
- this.topRow.normalizeHeight(true);
- }
- if (this.botRow) {
- this.botRow.normalizeHeight(true);
- }
- };
-
- //return the calculated
- ColumnCalcs.prototype.getResults = function () {
- var self = this,
- results = {},
- groups;
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- groups = this.table.modules.groupRows.getGroups(true);
-
- groups.forEach(function (group) {
- results[group.getKey()] = self.getGroupResults(group);
- });
- } else {
- results = {
- top: this.topRow ? this.topRow.getData() : {},
- bottom: this.botRow ? this.botRow.getData() : {}
- };
- }
-
- return results;
- };
-
- //get results from a group
- ColumnCalcs.prototype.getGroupResults = function (group) {
- var self = this,
- groupObj = group._getSelf(),
- subGroups = group.getSubGroups(),
- subGroupResults = {},
- results = {};
-
- subGroups.forEach(function (subgroup) {
- subGroupResults[subgroup.getKey()] = self.getGroupResults(subgroup);
- });
-
- results = {
- top: groupObj.calcs.top ? groupObj.calcs.top.getData() : {},
- bottom: groupObj.calcs.bottom ? groupObj.calcs.bottom.getData() : {},
- groups: subGroupResults
- };
-
- return results;
- };
-
- //default calculations
- ColumnCalcs.prototype.calculations = {
- "avg": function avg(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : 2;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- value = Number(value);
- return sum + value;
- });
-
- output = output / values.length;
-
- output = precision !== false ? output.toFixed(precision) : output;
- }
-
- return parseFloat(output).toString();
- },
- "max": function max(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value > output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "min": function min(values, data, calcParams) {
- var output = null,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- values.forEach(function (value) {
-
- value = Number(value);
-
- if (value < output || output === null) {
- output = value;
- }
- });
-
- return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
- },
- "sum": function sum(values, data, calcParams) {
- var output = 0,
- precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
-
- if (values.length) {
- values.forEach(function (value) {
- value = Number(value);
-
- output += !isNaN(value) ? Number(value) : 0;
- });
- }
-
- return precision !== false ? output.toFixed(precision) : output;
- },
- "concat": function concat(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- output = values.reduce(function (sum, value) {
- return String(sum) + String(value);
- });
- }
-
- return output;
- },
- "count": function count(values, data, calcParams) {
- var output = 0;
-
- if (values.length) {
- values.forEach(function (value) {
- if (value) {
- output++;
- }
- });
- }
-
- return output;
- }
- };
-
- Tabulator.prototype.registerModule("columnCalcs", ColumnCalcs);
-
- var Clipboard = function Clipboard(table) {
- this.table = table;
- this.mode = true;
-
- this.pasteParser = function () {};
- this.pasteAction = function () {};
- this.customSelection = false;
- this.rowRange = false;
- this.blocked = true; //block copy actions not originating from this command
- };
-
- Clipboard.prototype.initialize = function () {
- var _this39 = this;
-
- this.mode = this.table.options.clipboard;
-
- this.rowRange = this.table.options.clipboardCopyRowRange;
-
- if (this.mode === true || this.mode === "copy") {
- this.table.element.addEventListener("copy", function (e) {
- var plain, html, list;
-
- if (!_this39.blocked) {
- e.preventDefault();
-
- if (_this39.customSelection) {
- plain = _this39.customSelection;
-
- if (_this39.table.options.clipboardCopyFormatter) {
- plain = _this39.table.options.clipboardCopyFormatter("plain", plain);
- }
- } else {
-
- var list = _this39.table.modules.export.generateExportList(_this39.rowRange, _this39.table.options.clipboardCopyStyled, _this39.table.options.clipboardCopyConfig, "clipboard");
-
- html = _this39.table.modules.export.genereateHTMLTable(list);
- plain = html ? _this39.generatePlainContent(list) : "";
-
- if (_this39.table.options.clipboardCopyFormatter) {
- plain = _this39.table.options.clipboardCopyFormatter("plain", plain);
- html = _this39.table.options.clipboardCopyFormatter("html", html);
- }
- }
-
- if (window.clipboardData && window.clipboardData.setData) {
- window.clipboardData.setData('Text', plain);
- } else if (e.clipboardData && e.clipboardData.setData) {
- e.clipboardData.setData('text/plain', plain);
- if (html) {
- e.clipboardData.setData('text/html', html);
- }
- } else if (e.originalEvent && e.originalEvent.clipboardData.setData) {
- e.originalEvent.clipboardData.setData('text/plain', plain);
- if (html) {
- e.originalEvent.clipboardData.setData('text/html', html);
- }
- }
-
- _this39.table.options.clipboardCopied.call(_this39.table, plain, html);
-
- _this39.reset();
- }
- });
- }
-
- if (this.mode === true || this.mode === "paste") {
- this.table.element.addEventListener("paste", function (e) {
- _this39.paste(e);
- });
- }
-
- this.setPasteParser(this.table.options.clipboardPasteParser);
- this.setPasteAction(this.table.options.clipboardPasteAction);
- };
-
- Clipboard.prototype.reset = function () {
- this.blocked = false;
- this.originalSelectionText = "";
- };
-
- Clipboard.prototype.generatePlainContent = function (list) {
- var output = [];
-
- list.forEach(function (row) {
- var rowData = [];
-
- row.columns.forEach(function (col) {
- var value = "";
-
- if (col) {
-
- if (row.type === "group") {
- col.value = col.component.getKey();
- }
-
- switch (_typeof(col.value)) {
- case "object":
- value = JSON.stringify(col.value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = col.value;
- }
- }
-
- rowData.push(value);
- });
-
- output.push(rowData.join("\t"));
- });
-
- return output.join("\n");
- };
-
- Clipboard.prototype.copy = function (range, internal) {
- var range, sel, textRange;
- this.blocked = false;
- this.customSelection = false;
-
- if (this.mode === true || this.mode === "copy") {
-
- this.rowRange = range || this.table.options.clipboardCopyRowRange;
-
- if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
- range = document.createRange();
- range.selectNodeContents(this.table.element);
- sel = window.getSelection();
-
- if (sel.toString() && internal) {
- this.customSelection = sel.toString();
- }
-
- sel.removeAllRanges();
- sel.addRange(range);
- } else if (typeof document.selection != "undefined" && typeof document.body.createTextRange != "undefined") {
- textRange = document.body.createTextRange();
- textRange.moveToElementText(this.table.element);
- textRange.select();
- }
-
- document.execCommand('copy');
-
- if (sel) {
- sel.removeAllRanges();
- }
- }
- };
-
- //PASTE EVENT HANDLING
-
- Clipboard.prototype.setPasteAction = function (action) {
-
- switch (typeof action === 'undefined' ? 'undefined' : _typeof(action)) {
- case "string":
- this.pasteAction = this.pasteActions[action];
-
- if (!this.pasteAction) {
- console.warn("Clipboard Error - No such paste action found:", action);
- }
- break;
-
- case "function":
- this.pasteAction = action;
- break;
- }
- };
-
- Clipboard.prototype.setPasteParser = function (parser) {
- switch (typeof parser === 'undefined' ? 'undefined' : _typeof(parser)) {
- case "string":
- this.pasteParser = this.pasteParsers[parser];
-
- if (!this.pasteParser) {
- console.warn("Clipboard Error - No such paste parser found:", parser);
- }
- break;
-
- case "function":
- this.pasteParser = parser;
- break;
- }
- };
-
- Clipboard.prototype.paste = function (e) {
- var data, rowData, rows;
-
- if (this.checkPaseOrigin(e)) {
-
- data = this.getPasteData(e);
-
- rowData = this.pasteParser.call(this, data);
-
- if (rowData) {
- e.preventDefault();
-
- if (this.table.modExists("mutator")) {
- rowData = this.mutateData(rowData);
- }
-
- rows = this.pasteAction.call(this, rowData);
- this.table.options.clipboardPasted.call(this.table, data, rowData, rows);
- } else {
- this.table.options.clipboardPasteError.call(this.table, data);
- }
- }
- };
-
- Clipboard.prototype.mutateData = function (data) {
- var self = this,
- output = [];
-
- if (Array.isArray(data)) {
- data.forEach(function (row) {
- output.push(self.table.modules.mutator.transformRow(row, "clipboard"));
- });
- } else {
- output = data;
- }
-
- return output;
- };
-
- Clipboard.prototype.checkPaseOrigin = function (e) {
- var valid = true;
-
- if (e.target.tagName != "DIV" || this.table.modules.edit.currentCell) {
- valid = false;
- }
-
- return valid;
- };
-
- Clipboard.prototype.getPasteData = function (e) {
- var data;
-
- if (window.clipboardData && window.clipboardData.getData) {
- data = window.clipboardData.getData('Text');
- } else if (e.clipboardData && e.clipboardData.getData) {
- data = e.clipboardData.getData('text/plain');
- } else if (e.originalEvent && e.originalEvent.clipboardData.getData) {
- data = e.originalEvent.clipboardData.getData('text/plain');
- }
-
- return data;
- };
-
- Clipboard.prototype.pasteParsers = {
- table: function table(clipboard) {
- var data = [],
- success = false,
- headerFindSuccess = true,
- columns = this.table.columnManager.columns,
- columnMap = [],
- rows = [];
-
- //get data from clipboard into array of columns and rows.
- clipboard = clipboard.split("\n");
-
- clipboard.forEach(function (row) {
- data.push(row.split("\t"));
- });
-
- if (data.length && !(data.length === 1 && data[0].length < 2)) {
- success = true;
-
- //check if headers are present by title
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.definition.title && value.trim() && column.definition.title.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- //check if column headers are present by field
- if (!headerFindSuccess) {
- headerFindSuccess = true;
- columnMap = [];
-
- data[0].forEach(function (value) {
- var column = columns.find(function (column) {
- return value && column.field && value.trim() && column.field.trim() === value.trim();
- });
-
- if (column) {
- columnMap.push(column);
- } else {
- headerFindSuccess = false;
- }
- });
-
- if (!headerFindSuccess) {
- columnMap = this.table.columnManager.columnsByIndex;
- }
- }
-
- //remove header row if found
- if (headerFindSuccess) {
- data.shift();
- }
-
- data.forEach(function (item) {
- var row = {};
-
- item.forEach(function (value, i) {
- if (columnMap[i]) {
- row[columnMap[i].field] = value;
- }
- });
-
- rows.push(row);
- });
-
- return rows;
- } else {
- return false;
- }
- }
- };
-
- Clipboard.prototype.pasteActions = {
- replace: function replace(rows) {
- return this.table.setData(rows);
- },
- update: function update(rows) {
- return this.table.updateOrAddData(rows);
- },
- insert: function insert(rows) {
- return this.table.addData(rows);
- }
- };
-
- Tabulator.prototype.registerModule("clipboard", Clipboard);
-
- var DataTree = function DataTree(table) {
- this.table = table;
- this.indent = 10;
- this.field = "";
- this.collapseEl = null;
- this.expandEl = null;
- this.branchEl = null;
- this.elementField = false;
-
- this.startOpen = function () {};
-
- this.displayIndex = 0;
- };
-
- DataTree.prototype.initialize = function () {
- var dummyEl = null,
- firstCol = this.table.columnManager.getFirstVisibileColumn(),
- options = this.table.options;
-
- this.field = options.dataTreeChildField;
- this.indent = options.dataTreeChildIndent;
- this.elementField = options.dataTreeElementColumn || (firstCol ? firstCol.field : false);
-
- if (options.dataTreeBranchElement) {
-
- if (options.dataTreeBranchElement === true) {
- this.branchEl = document.createElement("div");
- this.branchEl.classList.add("tabulator-data-tree-branch");
- } else {
- if (typeof options.dataTreeBranchElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeBranchElement;
- this.branchEl = dummyEl.firstChild;
- } else {
- this.branchEl = options.dataTreeBranchElement;
- }
- }
- }
-
- if (options.dataTreeCollapseElement) {
- if (typeof options.dataTreeCollapseElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeCollapseElement;
- this.collapseEl = dummyEl.firstChild;
- } else {
- this.collapseEl = options.dataTreeCollapseElement;
- }
- } else {
- this.collapseEl = document.createElement("div");
- this.collapseEl.classList.add("tabulator-data-tree-control");
- this.collapseEl.tabIndex = 0;
- this.collapseEl.innerHTML = "<div class='tabulator-data-tree-control-collapse'></div>";
- }
-
- if (options.dataTreeExpandElement) {
- if (typeof options.dataTreeExpandElement === "string") {
- dummyEl = document.createElement("div");
- dummyEl.innerHTML = options.dataTreeExpandElement;
- this.expandEl = dummyEl.firstChild;
- } else {
- this.expandEl = options.dataTreeExpandElement;
- }
- } else {
- this.expandEl = document.createElement("div");
- this.expandEl.classList.add("tabulator-data-tree-control");
- this.expandEl.tabIndex = 0;
- this.expandEl.innerHTML = "<div class='tabulator-data-tree-control-expand'></div>";
- }
-
- switch (_typeof(options.dataTreeStartExpanded)) {
- case "boolean":
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded;
- };
- break;
-
- case "function":
- this.startOpen = options.dataTreeStartExpanded;
- break;
-
- default:
- this.startOpen = function (row, index) {
- return options.dataTreeStartExpanded[index];
- };
- break;
- }
- };
-
- DataTree.prototype.initializeRow = function (row) {
- var childArray = row.getData()[this.field];
- var isArray = Array.isArray(childArray);
-
- var children = isArray || !isArray && (typeof childArray === 'undefined' ? 'undefined' : _typeof(childArray)) === "object" && childArray !== null;
-
- if (!children && row.modules.dataTree && row.modules.dataTree.branchEl) {
- row.modules.dataTree.branchEl.parentNode.removeChild(row.modules.dataTree.branchEl);
- }
-
- if (!children && row.modules.dataTree && row.modules.dataTree.controlEl) {
- row.modules.dataTree.controlEl.parentNode.removeChild(row.modules.dataTree.controlEl);
- }
-
- row.modules.dataTree = {
- index: row.modules.dataTree ? row.modules.dataTree.index : 0,
- open: children ? row.modules.dataTree ? row.modules.dataTree.open : this.startOpen(row.getComponent(), 0) : false,
- controlEl: row.modules.dataTree && children ? row.modules.dataTree.controlEl : false,
- branchEl: row.modules.dataTree && children ? row.modules.dataTree.branchEl : false,
- parent: row.modules.dataTree ? row.modules.dataTree.parent : false,
- children: children
- };
- };
-
- DataTree.prototype.layoutRow = function (row) {
- var cell = this.elementField ? row.getCell(this.elementField) : row.getCells()[0],
- el = cell.getElement(),
- config = row.modules.dataTree;
-
- if (config.branchEl) {
- if (config.branchEl.parentNode) {
- config.branchEl.parentNode.removeChild(config.branchEl);
- }
- config.branchEl = false;
- }
-
- if (config.controlEl) {
- if (config.controlEl.parentNode) {
- config.controlEl.parentNode.removeChild(config.controlEl);
- }
- config.controlEl = false;
- }
-
- this.generateControlElement(row, el);
-
- row.element.classList.add("tabulator-tree-level-" + config.index);
-
- if (config.index) {
- if (this.branchEl) {
- config.branchEl = this.branchEl.cloneNode(true);
- el.insertBefore(config.branchEl, el.firstChild);
- config.branchEl.style.marginLeft = (config.branchEl.offsetWidth + config.branchEl.style.marginRight) * (config.index - 1) + config.index * this.indent + "px";
- } else {
- el.style.paddingLeft = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-left')) + config.index * this.indent + "px";
- }
- }
- };
-
- DataTree.prototype.generateControlElement = function (row, el) {
- var _this40 = this;
-
- var config = row.modules.dataTree,
- el = el || row.getCells()[0].getElement(),
- oldControl = config.controlEl;
-
- if (config.children !== false) {
-
- if (config.open) {
- config.controlEl = this.collapseEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this40.collapseRow(row);
- });
- } else {
- config.controlEl = this.expandEl.cloneNode(true);
- config.controlEl.addEventListener("click", function (e) {
- e.stopPropagation();
- _this40.expandRow(row);
- });
- }
-
- config.controlEl.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
-
- if (oldControl && oldControl.parentNode === el) {
- oldControl.parentNode.replaceChild(config.controlEl, oldControl);
- } else {
- el.insertBefore(config.controlEl, el.firstChild);
- }
- }
- };
-
- DataTree.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- DataTree.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- DataTree.prototype.getRows = function (rows) {
- var _this41 = this;
-
- var output = [];
-
- rows.forEach(function (row, i) {
- var config, children;
-
- output.push(row);
-
- if (row instanceof Row) {
-
- config = row.modules.dataTree.children;
-
- if (!config.index && config.children !== false) {
- children = _this41.getChildren(row);
-
- children.forEach(function (child) {
- output.push(child);
- });
- }
- }
- });
-
- return output;
- };
-
- DataTree.prototype.getChildren = function (row) {
- var _this42 = this;
-
- var config = row.modules.dataTree,
- children = [],
- output = [];
-
- if (config.children !== false && config.open) {
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- if (this.table.modExists("sort")) {
- this.table.modules.sort.sort(children);
- }
-
- children.forEach(function (child) {
- output.push(child);
-
- var subChildren = _this42.getChildren(child);
-
- subChildren.forEach(function (sub) {
- output.push(sub);
- });
- });
- }
-
- return output;
- };
-
- DataTree.prototype.generateChildren = function (row) {
- var _this43 = this;
-
- var children = [];
-
- var childArray = row.getData()[this.field];
-
- if (!Array.isArray(childArray)) {
- childArray = [childArray];
- }
-
- childArray.forEach(function (childData) {
- var childRow = new Row(childData || {}, _this43.table.rowManager);
- childRow.modules.dataTree.index = row.modules.dataTree.index + 1;
- childRow.modules.dataTree.parent = row;
- if (childRow.modules.dataTree.children) {
- childRow.modules.dataTree.open = _this43.startOpen(childRow.getComponent(), childRow.modules.dataTree.index);
- }
- children.push(childRow);
- });
-
- return children;
- };
-
- DataTree.prototype.expandRow = function (row, silent) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = true;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowExpanded(row.getComponent(), row.modules.dataTree.index);
- }
- };
-
- DataTree.prototype.collapseRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- config.open = false;
-
- row.reinitialize();
-
- this.table.rowManager.refreshActiveData("tree", false, true);
-
- this.table.options.dataTreeRowCollapsed(row.getComponent(), row.modules.dataTree.index);
- }
- };
-
- DataTree.prototype.toggleRow = function (row) {
- var config = row.modules.dataTree;
-
- if (config.children !== false) {
- if (config.open) {
- this.collapseRow(row);
- } else {
- this.expandRow(row);
- }
- }
- };
-
- DataTree.prototype.getTreeParent = function (row) {
- return row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false;
- };
-
- DataTree.prototype.getFilteredTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [],
- children;
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- if (this.table.modExists("filter")) {
- children = this.table.modules.filter.filter(config.children);
- } else {
- children = config.children;
- }
-
- children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow);
- }
- });
- }
-
- return output;
- };
-
- DataTree.prototype.rowDelete = function (row) {
- var parent = row.modules.dataTree.parent,
- childIndex;
-
- if (parent) {
- childIndex = this.findChildIndex(row, parent);
-
- if (childIndex !== false) {
- parent.data[this.field].splice(childIndex, 1);
- }
-
- if (!parent.data[this.field].length) {
- delete parent.data[this.field];
- }
-
- this.initializeRow(parent);
- this.layoutRow(parent);
- }
-
- this.table.rowManager.refreshActiveData("tree", false, true);
- };
-
- DataTree.prototype.addTreeChildRow = function (row, data, top, index) {
- var childIndex = false;
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (!Array.isArray(row.data[this.field])) {
- row.data[this.field] = [];
-
- row.modules.dataTree.open = this.startOpen(row.getComponent(), row.modules.dataTree.index);
- }
-
- if (typeof index !== "undefined") {
- childIndex = this.findChildIndex(index, row);
-
- if (childIndex !== false) {
- row.data[this.field].splice(top ? childIndex : childIndex + 1, 0, data);
- }
- }
-
- if (childIndex === false) {
- if (top) {
- row.data[this.field].unshift(data);
- } else {
- row.data[this.field].push(data);
- }
- }
-
- this.initializeRow(row);
- this.layoutRow(row);
-
- this.table.rowManager.refreshActiveData("tree", false, true);
- };
-
- DataTree.prototype.findChildIndex = function (subject, parent) {
- var _this44 = this;
-
- var match = false;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Row) {
- //subject is row element
- match = subject.data;
- } else if (subject instanceof RowComponent) {
- //subject is public row component
- match = subject._getSelf().data;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
- if (parent.modules.dataTree) {
- match = parent.modules.dataTree.children.find(function (childRow) {
- return childRow instanceof Row ? childRow.element === subject : false;
- });
-
- if (match) {
- match = match.data;
- }
- }
- }
- } else if (typeof subject == "undefined" || subject === null) {
- match = false;
- } else {
- //subject should be treated as the index of the row
- match = parent.data[this.field].find(function (row) {
- return row.data[_this44.table.options.index] == subject;
- });
- }
-
- if (match) {
-
- if (Array.isArray(parent.data[this.field])) {
- match = parent.data[this.field].indexOf(match);
- }
-
- if (match == -1) {
- match = false;
- }
- }
-
- //catch all for any other type of input
-
- return match;
- };
-
- DataTree.prototype.getTreeChildren = function (row) {
- var config = row.modules.dataTree,
- output = [];
-
- if (config.children) {
-
- if (!Array.isArray(config.children)) {
- config.children = this.generateChildren(row);
- }
-
- config.children.forEach(function (childRow) {
- if (childRow instanceof Row) {
- output.push(childRow.getComponent());
- }
- });
- }
-
- return output;
- };
-
- DataTree.prototype.checkForRestyle = function (cell) {
- if (!cell.row.cells.indexOf(cell)) {
- cell.row.reinitialize();
- }
- };
-
- DataTree.prototype.getChildField = function () {
- return this.field;
- };
-
- DataTree.prototype.redrawNeeded = function (data) {
- return (this.field ? typeof data[this.field] !== "undefined" : false) || (this.elementField ? typeof data[this.elementField] !== "undefined" : false);
- };
-
- Tabulator.prototype.registerModule("dataTree", DataTree);
-
- var Download = function Download(table) {
- this.table = table; //hold Tabulator object
- };
-
- //trigger file download
- Download.prototype.download = function (type, filename, options, range, interceptCallback) {
- var self = this,
- downloadFunc = false;
-
- function buildLink(data, mime) {
- if (interceptCallback) {
- if (interceptCallback === true) {
- self.triggerDownload(data, mime, type, filename, true);
- } else {
- interceptCallback(data);
- }
- } else {
- self.triggerDownload(data, mime, type, filename);
- }
- }
-
- if (typeof type == "function") {
- downloadFunc = type;
- } else {
- if (self.downloaders[type]) {
- downloadFunc = self.downloaders[type];
- } else {
- console.warn("Download Error - No such download type found: ", type);
- }
- }
-
- if (downloadFunc) {
- var list = this.generateExportList(range);
-
- downloadFunc.call(this.table, list, options || {}, buildLink);
- }
- };
-
- Download.prototype.generateExportList = function (range) {
- var list = this.table.modules.export.generateExportList(this.table.options.downloadConfig, false, range || this.table.options.downloadRowRange, "download");
-
- //assign group header formatter
- var groupHeader = this.table.options.groupHeaderDownload;
-
- if (groupHeader && !Array.isArray(groupHeader)) {
- groupHeader = [groupHeader];
- }
-
- list.forEach(function (row) {
- var group;
-
- if (row.type === "group") {
- group = row.columns[0];
-
- if (groupHeader && groupHeader[row.indent]) {
- group.value = groupHeader[row.indent](group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);
- }
- }
- });
-
- return list;
- };
-
- Download.prototype.triggerDownload = function (data, mime, type, filename, newTab) {
- var element = document.createElement('a'),
- blob = new Blob([data], { type: mime }),
- filename = filename || "Tabulator." + (typeof type === "function" ? "txt" : type);
-
- blob = this.table.options.downloadReady.call(this.table, data, blob);
-
- if (blob) {
-
- if (newTab) {
- window.open(window.URL.createObjectURL(blob));
- } else {
- if (navigator.msSaveOrOpenBlob) {
- navigator.msSaveOrOpenBlob(blob, filename);
- } else {
- element.setAttribute('href', window.URL.createObjectURL(blob));
-
- //set file title
- element.setAttribute('download', filename);
-
- //trigger download
- element.style.display = 'none';
- document.body.appendChild(element);
- element.click();
-
- //remove temporary link element
- document.body.removeChild(element);
- }
- }
-
- if (this.table.options.downloadComplete) {
- this.table.options.downloadComplete();
- }
- }
- };
-
- Download.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "intercept":
- this.download(data.type, "", data.options, data.active, data.intercept);
- break;
- }
- };
-
- //downloaders
- Download.prototype.downloaders = {
- csv: function csv(list, options, setFileContents) {
- var delimiter = options && options.delimiter ? options.delimiter : ",",
- fileContents = [],
- headers = [];
-
- list.forEach(function (row) {
- var item = [];
-
- switch (row.type) {
- case "group":
- console.warn("Download Warning - CSV downloader cannot process row groups");
- break;
-
- case "calc":
- console.warn("Download Warning - CSV downloader cannot process column calculations");
- break;
-
- case "header":
- row.columns.forEach(function (col, i) {
- if (col && col.depth === 1) {
- headers[i] = typeof col.value == "undefined" || typeof col.value == "null" ? "" : col.value;
- }
- });
- break;
-
- case "row":
- row.columns.forEach(function (col) {
-
- if (col) {
-
- switch (_typeof(col.value)) {
- case "object":
- col.value = JSON.stringify(col.value);
- break;
-
- case "undefined":
- case "null":
- col.value = "";
- break;
- }
-
- item.push('"' + String(col.value).split('"').join('""') + '"');
- }
- });
-
- fileContents.push(item.join(delimiter));
- break;
- }
- });
-
- if (headers.length) {
- fileContents = [headers].concat(fileContents);
- }
-
- fileContents = fileContents.join("\n");
-
- if (options.bom) {
- fileContents = '\uFEFF' + fileContents;
- }
-
- setFileContents(fileContents, "text/csv");
- },
-
- json: function json(list, options, setFileContents) {
- var fileContents = [];
-
- list.forEach(function (row) {
- var item = {};
-
- switch (row.type) {
- case "header":
- break;
-
- case "group":
- console.warn("Download Warning - JSON downloader cannot process row groups");
- break;
-
- case "calc":
- console.warn("Download Warning - JSON downloader cannot process column calculations");
- break;
-
- case "row":
- row.columns.forEach(function (col) {
- if (col) {
- item[col.component.getField()] = col.value;
- }
- });
-
- fileContents.push(item);
- break;
- }
- });
-
- fileContents = JSON.stringify(fileContents, null, '\t');
-
- setFileContents(fileContents, "application/json");
- },
-
- pdf: function pdf(list, options, setFileContents) {
- var header = [],
- body = [],
- autoTableParams = {},
- rowGroupStyles = options.rowGroupStyles || {
- fontStyle: "bold",
- fontSize: 12,
- cellPadding: 6,
- fillColor: 220
- },
- rowCalcStyles = options.rowCalcStyles || {
- fontStyle: "bold",
- fontSize: 10,
- cellPadding: 4,
- fillColor: 232
- },
- jsPDFParams = options.jsPDF || {},
- title = options && options.title ? options.title : "";
-
- if (!jsPDFParams.orientation) {
- jsPDFParams.orientation = options.orientation || "landscape";
- }
-
- if (!jsPDFParams.unit) {
- jsPDFParams.unit = "pt";
- }
-
- //parse row list
- list.forEach(function (row) {
- var item = {};
-
- switch (row.type) {
- case "header":
- header.push(parseRow(row));
- break;
-
- case "group":
- body.push(parseRow(row, rowGroupStyles));
- break;
-
- case "calc":
- body.push(parseRow(row, rowCalcStyles));
- break;
-
- case "row":
- body.push(parseRow(row));
- break;
- }
- });
-
- function parseRow(row, styles) {
- var rowData = [];
-
- row.columns.forEach(function (col) {
- var cell;
-
- if (col) {
- switch (_typeof(col.value)) {
- case "object":
- col.value = JSON.stringify(col.value);
- break;
-
- case "undefined":
- case "null":
- col.value = "";
- break;
- }
-
- cell = {
- content: col.value,
- colSpan: col.width,
- rowSpan: col.height
- };
-
- if (styles) {
- cell.styles = styles;
- }
-
- rowData.push(cell);
- } else {
- rowData.push("");
- }
- });
-
- return rowData;
- }
-
- //configure PDF
- var doc = new jsPDF(jsPDFParams); //set document to landscape, better for most tables
-
- if (options && options.autoTable) {
- if (typeof options.autoTable === "function") {
- autoTableParams = options.autoTable(doc) || {};
- } else {
- autoTableParams = options.autoTable;
- }
- }
-
- if (title) {
- autoTableParams.addPageContent = function (data) {
- doc.text(title, 40, 30);
- };
- }
-
- autoTableParams.head = header;
- autoTableParams.body = body;
-
- doc.autoTable(autoTableParams);
-
- if (options && options.documentProcessing) {
- options.documentProcessing(doc);
- }
-
- setFileContents(doc.output("arraybuffer"), "application/pdf");
- },
-
- xlsx: function xlsx(list, options, setFileContents) {
- var self = this,
- sheetName = options.sheetName || "Sheet1",
- workbook = XLSX.utils.book_new(),
- output;
-
- workbook.SheetNames = [];
- workbook.Sheets = {};
-
- function generateSheet() {
- var rows = [],
- merges = [],
- worksheet = {},
- range = { s: { c: 0, r: 0 }, e: { c: list[0] ? list[0].columns.reduce(function (a, b) {
- return a + (b && b.width ? b.width : 1);
- }, 0) : 0, r: list.length } };
-
- //parse row list
- list.forEach(function (row, i) {
- var rowData = [];
-
- row.columns.forEach(function (col, j) {
-
- if (col) {
- rowData.push(!(col.value instanceof Date) && _typeof(col.value) === "object" ? JSON.stringify(col.value) : col.value);
-
- if (col.width > 1 || col.height > -1) {
- merges.push({ s: { r: i, c: j }, e: { r: i + col.height - 1, c: j + col.width - 1 } });
- }
- } else {
- rowData.push("");
- }
- });
-
- rows.push(rowData);
- });
-
- //convert rows to worksheet
- XLSX.utils.sheet_add_aoa(worksheet, rows);
-
- worksheet['!ref'] = XLSX.utils.encode_range(range);
-
- if (merges.length) {
- worksheet["!merges"] = merges;
- }
-
- return worksheet;
- }
-
- if (options.sheetOnly) {
- setFileContents(generateSheet());
- return;
- }
-
- if (options.sheets) {
- for (var sheet in options.sheets) {
-
- if (options.sheets[sheet] === true) {
- workbook.SheetNames.push(sheet);
- workbook.Sheets[sheet] = generateSheet();
- } else {
-
- workbook.SheetNames.push(sheet);
-
- this.table.modules.comms.send(options.sheets[sheet], "download", "intercept", {
- type: "xlsx",
- options: { sheetOnly: true },
- active: self.active,
- intercept: function intercept(data) {
- workbook.Sheets[sheet] = data;
- }
- });
- }
- }
- } else {
- workbook.SheetNames.push(sheetName);
- workbook.Sheets[sheetName] = generateSheet();
- }
-
- if (options.documentProcessing) {
- workbook = options.documentProcessing(workbook);
- }
-
- //convert workbook to binary array
- function s2ab(s) {
- var buf = new ArrayBuffer(s.length);
- var view = new Uint8Array(buf);
- for (var i = 0; i != s.length; ++i) {
- view[i] = s.charCodeAt(i) & 0xFF;
- }return buf;
- }
-
- output = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'binary' });
-
- setFileContents(s2ab(output), "application/octet-stream");
- },
-
- html: function html(list, options, setFileContents) {
- if (this.modExists("export", true)) {
- setFileContents(this.modules.export.genereateHTMLTable(list), "text/html");
- }
- }
-
- };
-
- Tabulator.prototype.registerModule("download", Download);
-
- var Edit = function Edit(table) {
- this.table = table; //hold Tabulator object
- this.currentCell = false; //hold currently editing cell
- this.mouseClick = false; //hold mousedown state to prevent click binding being overriden by editor opening
- this.recursionBlock = false; //prevent focus recursion
- this.invalidEdit = false;
- this.editedCells = [];
- };
-
- //initialize column editor
- Edit.prototype.initializeColumn = function (column) {
- var self = this,
- config = {
- editor: false,
- blocked: false,
- check: column.definition.editable,
- params: column.definition.editorParams || {}
- };
-
- //set column editor
- switch (_typeof(column.definition.editor)) {
- case "string":
-
- if (column.definition.editor === "tick") {
- column.definition.editor = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.editor]) {
- config.editor = self.editors[column.definition.editor];
- } else {
- console.warn("Editor Error - No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- config.editor = column.definition.editor;
- break;
-
- case "boolean":
-
- if (column.definition.editor === true) {
-
- if (typeof column.definition.formatter !== "function") {
-
- if (column.definition.formatter === "tick") {
- column.definition.formatter = "tickCross";
- console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor");
- }
-
- if (self.editors[column.definition.formatter]) {
- config.editor = self.editors[column.definition.formatter];
- } else {
- config.editor = self.editors["input"];
- }
- } else {
- console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ", column.definition.formatter);
- }
- }
- break;
- }
-
- if (config.editor) {
- column.modules.edit = config;
- }
- };
-
- Edit.prototype.getCurrentCell = function () {
- return this.currentCell ? this.currentCell.getComponent() : false;
- };
-
- Edit.prototype.clearEditor = function (cancel) {
- var cell = this.currentCell,
- cellEl;
-
- this.invalidEdit = false;
-
- if (cell) {
- this.currentCell = false;
-
- cellEl = cell.getElement();
-
- if (cancel) {
- cell.validate();
- } else {
- cellEl.classList.remove("tabulator-validation-fail");
- }
-
- cellEl.classList.remove("tabulator-editing");
- while (cellEl.firstChild) {
- cellEl.removeChild(cellEl.firstChild);
- }cell.row.getElement().classList.remove("tabulator-row-editing");
- }
- };
-
- Edit.prototype.cancelEdit = function () {
-
- if (this.currentCell) {
- var cell = this.currentCell;
- var component = this.currentCell.getComponent();
-
- this.clearEditor(true);
- cell.setValueActual(cell.getValue());
- cell.cellRendered();
-
- if (cell.column.cellEvents.cellEditCancelled) {
- cell.column.cellEvents.cellEditCancelled.call(this.table, component);
- }
-
- this.table.options.cellEditCancelled.call(this.table, component);
- }
- };
-
- //return a formatted value for a cell
- Edit.prototype.bindEditor = function (cell) {
- var self = this,
- element = cell.getElement();
-
- element.setAttribute("tabindex", 0);
-
- element.addEventListener("click", function (e) {
- if (!element.classList.contains("tabulator-editing")) {
- element.focus({ preventScroll: true });
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- self.mouseClick = true;
- });
-
- element.addEventListener("focus", function (e) {
- if (!self.recursionBlock) {
- self.edit(cell, e, false);
- }
- });
- };
-
- Edit.prototype.focusCellNoEvent = function (cell, block) {
- this.recursionBlock = true;
- if (!(block && this.table.browser === "ie")) {
- cell.getElement().focus({ preventScroll: true });
- }
- this.recursionBlock = false;
- };
-
- Edit.prototype.editCell = function (cell, forceEdit) {
- this.focusCellNoEvent(cell);
- this.edit(cell, false, forceEdit);
- };
-
- Edit.prototype.focusScrollAdjust = function (cell) {
- if (this.table.rowManager.getRenderMode() == "virtual") {
- var topEdge = this.table.rowManager.element.scrollTop,
- bottomEdge = this.table.rowManager.element.clientHeight + this.table.rowManager.element.scrollTop,
- rowEl = cell.row.getElement(),
- offset = rowEl.offsetTop;
-
- if (rowEl.offsetTop < topEdge) {
- this.table.rowManager.element.scrollTop -= topEdge - rowEl.offsetTop;
- } else {
- if (rowEl.offsetTop + rowEl.offsetHeight > bottomEdge) {
- this.table.rowManager.element.scrollTop += rowEl.offsetTop + rowEl.offsetHeight - bottomEdge;
- }
- }
- }
- };
-
- Edit.prototype.edit = function (cell, e, forceEdit) {
- var self = this,
- allowEdit = true,
- rendered = function rendered() {},
- element = cell.getElement(),
- cellEditor,
- component,
- params;
-
- //prevent editing if another cell is refusing to leave focus (eg. validation fail)
- if (this.currentCell) {
- if (!this.invalidEdit) {
- this.cancelEdit();
- }
- return;
- }
-
- //handle successfull value change
- function success(value) {
- if (self.currentCell === cell) {
- var valid = true;
-
- if (cell.column.modules.validate && self.table.modExists("validate") && self.table.options.validationMode != "manual") {
- valid = self.table.modules.validate.validate(cell.column.modules.validate, cell, value);
- }
-
- if (valid === true || self.table.options.validationMode === "highlight") {
- self.clearEditor();
- cell.setValue(value, true);
-
- if (!cell.modules.edit) {
- cell.modules.edit = {};
- }
-
- cell.modules.edit.edited = true;
-
- if (self.editedCells.indexOf(cell) == -1) {
- self.editedCells.push(cell);
- }
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
-
- if (valid !== true) {
- element.classList.add("tabulator-validation-fail");
- return false;
- }
-
- return true;
- } else {
- self.invalidEdit = true;
- element.classList.add("tabulator-validation-fail");
- self.focusCellNoEvent(cell, true);
- rendered();
- self.table.options.validationFailed.call(self.table, cell.getComponent(), value, valid);
-
- return false;
- }
- } else {
- // console.warn("Edit Success Error - cannot call success on a cell that is no longer being edited");
- }
- }
-
- //handle aborted edit
- function cancel() {
- if (self.currentCell === cell) {
- self.cancelEdit();
-
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.checkForRestyle(cell);
- }
- } else {
- // console.warn("Edit Success Error - cannot call cancel on a cell that is no longer being edited");
- }
- }
-
- function onRendered(callback) {
- rendered = callback;
- }
-
- if (!cell.column.modules.edit.blocked) {
- if (e) {
- e.stopPropagation();
- }
-
- switch (_typeof(cell.column.modules.edit.check)) {
- case "function":
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- break;
-
- case "boolean":
- allowEdit = cell.column.modules.edit.check;
- break;
- }
-
- if (allowEdit || forceEdit) {
-
- self.cancelEdit();
-
- self.currentCell = cell;
-
- this.focusScrollAdjust(cell);
-
- component = cell.getComponent();
-
- if (this.mouseClick) {
- this.mouseClick = false;
-
- if (cell.column.cellEvents.cellClick) {
- cell.column.cellEvents.cellClick.call(this.table, e, component);
- }
- }
-
- if (cell.column.cellEvents.cellEditing) {
- cell.column.cellEvents.cellEditing.call(this.table, component);
- }
-
- self.table.options.cellEditing.call(this.table, component);
-
- params = typeof cell.column.modules.edit.params === "function" ? cell.column.modules.edit.params(component) : cell.column.modules.edit.params;
-
- cellEditor = cell.column.modules.edit.editor.call(self, component, onRendered, success, cancel, params);
-
- //if editor returned, add to DOM, if false, abort edit
- if (cellEditor !== false) {
-
- if (cellEditor instanceof Node) {
- element.classList.add("tabulator-editing");
- cell.row.getElement().classList.add("tabulator-row-editing");
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.appendChild(cellEditor);
-
- //trigger onRendered Callback
- rendered();
-
- //prevent editing from triggering rowClick event
- var children = element.children;
-
- for (var i = 0; i < children.length; i++) {
- children[i].addEventListener("click", function (e) {
- e.stopPropagation();
- });
- }
- } else {
- console.warn("Edit Error - Editor should return an instance of Node, the editor returned:", cellEditor);
- element.blur();
- return false;
- }
- } else {
- element.blur();
- return false;
- }
-
- return true;
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
- } else {
- this.mouseClick = false;
- element.blur();
- return false;
- }
- };
-
- Edit.prototype.maskInput = function (el, options) {
- var mask = options.mask,
- maskLetter = typeof options.maskLetterChar !== "undefined" ? options.maskLetterChar : "A",
- maskNumber = typeof options.maskNumberChar !== "undefined" ? options.maskNumberChar : "9",
- maskWildcard = typeof options.maskWildcardChar !== "undefined" ? options.maskWildcardChar : "*",
- success = false;
-
- function fillSymbols(index) {
- var symbol = mask[index];
- if (typeof symbol !== "undefined" && symbol !== maskWildcard && symbol !== maskLetter && symbol !== maskNumber) {
- el.value = el.value + "" + symbol;
- fillSymbols(index + 1);
- }
- }
-
- el.addEventListener("keydown", function (e) {
- var index = el.value.length,
- char = e.key;
-
- if (e.keyCode > 46) {
- if (index >= mask.length) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- } else {
- switch (mask[index]) {
- case maskLetter:
- if (char.toUpperCase() == char.toLowerCase()) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskNumber:
- if (isNaN(char)) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- break;
-
- case maskWildcard:
- break;
-
- default:
- if (char !== mask[index]) {
- e.preventDefault();
- e.stopPropagation();
- success = false;
- return false;
- }
- }
- }
-
- success = true;
- }
-
- return;
- });
-
- el.addEventListener("keyup", function (e) {
- if (e.keyCode > 46) {
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
- }
- });
-
- if (!el.placeholder) {
- el.placeholder = mask;
- }
-
- if (options.maskAutoFill) {
- fillSymbols(el.value.length);
- }
- };
-
- Edit.prototype.getEditedCells = function () {
- var output = [];
-
- this.editedCells.forEach(function (cell) {
- output.push(cell.getComponent());
- });
-
- return output;
- };
-
- Edit.prototype.clearEdited = function (cell) {
- var editIndex;
-
- if (cell.modules.edit && cell.modules.edit.edited) {
- cell.modules.validate.invalid = false;
-
- editIndex = this.editedCells.indexOf(cell);
-
- if (editIndex > -1) {
- this.editedCells.splice(editIndex, 1);
- }
- }
- };
-
- //default data editors
- Edit.prototype.editors = {
-
- //input element
- input: function input(cell, onRendered, success, cancel, editorParams) {
-
- //create and style input
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", editorParams.search ? "search" : "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof cellValue !== "undefined" ? cellValue : "";
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- // case 9:
- case 13:
- onChange(e);
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //resizable text area element
- textarea: function textarea(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "hybrid",
- value = String(cellValue !== null && typeof cellValue !== "undefined" ? cellValue : ""),
- count = (value.match(/(?:\r\n|\r|\n)/g) || []).length + 1,
- input = document.createElement("textarea"),
- scrollHeight = 0;
-
- //create and style input
- input.style.display = "block";
- input.style.padding = "2px";
- input.style.height = "100%";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.whiteSpace = "pre-wrap";
- input.style.resize = "none";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange(e) {
-
- if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value !== cellValue) {
-
- if (success(input.value)) {
- cellValue = input.value; //persist value if successfully validated incase editor is used as header filter
- }
-
- setTimeout(function () {
- cell.getRow().normalizeHeight();
- }, 300);
- } else {
- cancel();
- }
- }
-
- //submit new value on blur or change
- input.addEventListener("change", onChange);
- input.addEventListener("blur", onChange);
-
- input.addEventListener("keyup", function () {
-
- input.style.height = "";
-
- var heightNow = input.scrollHeight;
-
- input.style.height = heightNow + "px";
-
- if (heightNow != scrollHeight) {
- scrollHeight = heightNow;
- cell.getRow().normalizeHeight();
- }
- });
-
- input.addEventListener("keydown", function (e) {
-
- switch (e.keyCode) {
- case 27:
- cancel();
- break;
-
- case 38:
- //up arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
-
- break;
-
- case 40:
- //down arrow
- if (vertNav == "editor" || vertNav == "hybrid" && input.selectionStart !== input.value.length) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- number: function number(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- input = document.createElement("input");
-
- input.setAttribute("type", "number");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- var blurFunc = function blurFunc(e) {
- onChange();
- };
-
- onRendered(function () {
- //submit new value on blur
- input.removeEventListener("blur", blurFunc);
-
- input.focus({ preventScroll: true });
- input.style.height = "100%";
-
- //submit new value on blur
- input.addEventListener("blur", blurFunc);
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value !== cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- // case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
-
- case 38: //up arrow
- case 40:
- //down arrow
- if (vertNav == "editor") {
- e.stopImmediatePropagation();
- e.stopPropagation();
- }
- break;
- }
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //input element with type of number
- range: function range(cell, onRendered, success, cancel, editorParams) {
-
- var cellValue = cell.getValue(),
- input = document.createElement("input");
-
- input.setAttribute("type", "range");
-
- if (typeof editorParams.max != "undefined") {
- input.setAttribute("max", editorParams.max);
- }
-
- if (typeof editorParams.min != "undefined") {
- input.setAttribute("min", editorParams.min);
- }
-
- if (typeof editorParams.step != "undefined") {
- input.setAttribute("step", editorParams.step);
- }
-
- //create and style input
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = cellValue;
-
- onRendered(function () {
- input.focus({ preventScroll: true });
- input.style.height = "100%";
- });
-
- function onChange() {
- var value = input.value;
-
- if (!isNaN(value) && value !== "") {
- value = Number(value);
- }
-
- if (value != cellValue) {
- if (success(value)) {
- cellValue = value; //persist value if successfully validated incase editor is used as header filter
- }
- } else {
- cancel();
- }
- }
-
- //submit new value on blur
- input.addEventListener("blur", function (e) {
- onChange();
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 13:
- // case 9:
- onChange();
- break;
-
- case 27:
- cancel();
- break;
- }
- });
-
- return input;
- },
-
- //select
- select: function select(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : [],
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- multiselect = editorParams.multiselect,
- dataItems = [],
- currentItem = {},
- displayItems = [],
- currentItems = [],
- blurable = true;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- if (Array.isArray(editorParams) || !Array.isArray(editorParams) && (typeof editorParams === 'undefined' ? 'undefined' : _typeof(editorParams)) === "object" && !editorParams.values) {
- console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object");
- editorParams = { values: editorParams };
- }
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create select lookup list:", field);
- }
-
- return output;
- }
-
- function parseItems(inputValues, curentValues) {
- var dataList = [];
- var displayList = [];
-
- function processComplexListItem(item) {
- var item = {
- label: item.label,
- value: item.value,
- itemParams: item.itemParams,
- elementAttributes: item.elementAttributes,
- element: false
- };
-
- // if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){
- // setCurrentItem(item);
- // }
-
- if (curentValues.indexOf(item.value) > -1) {
- setItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
-
- return item;
- }
-
- if (typeof inputValues == "function") {
- inputValues = inputValues(cell);
- }
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
- var item;
-
- if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object") {
-
- if (value.options) {
- item = {
- label: value.label,
- group: true,
- itemParams: value.itemParams,
- elementAttributes: value.elementAttributes,
- element: false
- };
-
- displayList.push(item);
-
- value.options.forEach(function (item) {
- processComplexListItem(item);
- });
- } else {
- processComplexListItem(value);
- }
- } else {
-
- item = {
- label: value,
- value: value,
- element: false
- };
-
- // if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){
- // setCurrentItem(item);
- // }
-
- if (curentValues.indexOf(item.value) > -1) {
- setItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- });
- } else {
- for (var key in inputValues) {
- var item = {
- label: inputValues[key],
- value: key,
- element: false
- };
-
- // if(item.value === curentValue || (!isNaN(parseFloat(item.value)) && !isNaN(parseFloat(item.value)) && parseFloat(item.value) === parseFloat(curentValue))){
- // setCurrentItem(item);
- // }
-
- if (curentValues.indexOf(item.value) > -1) {
- setItem(item);
- }
-
- dataList.push(item);
- displayList.push(item);
- }
- }
-
- dataItems = dataList;
- displayItems = displayList;
-
- fillList();
- }
-
- function fillList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }displayItems.forEach(function (item) {
-
- var el = item.element;
-
- if (!el) {
- el = document.createElement("div");
- item.label = editorParams.listItemFormatter ? editorParams.listItemFormatter(item.value, item.label, cell, el, item.itemParams) : item.label;
- if (item.group) {
- el.classList.add("tabulator-edit-select-list-group");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
- } else {
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.label === "" ? " " : item.label;
-
- el.addEventListener("click", function () {
- // setCurrentItem(item);
- // chooseItem();
- if (multiselect) {
- toggleItem(item);
- input.focus();
- } else {
- chooseItem(item);
- }
- });
-
- // if(item === currentItem){
- // el.classList.add("active");
- // }
-
- if (currentItems.indexOf(item) > -1) {
- el.classList.add("active");
- }
- }
-
- if (item.elementAttributes && _typeof(item.elementAttributes) == "object") {
- for (var key in item.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- el.setAttribute(key, input.getAttribute(key) + item.elementAttributes["+" + key]);
- } else {
- el.setAttribute(key, item.elementAttributes[key]);
- }
- }
- }
- el.addEventListener("mousedown", function () {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
- }
-
- listEl.appendChild(el);
- });
- }
-
- function setCurrentItem(item, active) {
-
- if (!multiselect && currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("focused");
- }
-
- currentItem = item;
-
- if (item.element) {
- item.element.classList.add("focused");
- if (active) {
- item.element.classList.add("active");
- }
- }
- }
-
- // function chooseItem(){
- // hideList();
-
- // if(initialValue !== currentItem.value){
- // initialValue = currentItem.value;
- // success(currentItem.value);
- // }else{
- // cancel();
- // }
- // }
-
- function setItem(item) {
- var index = currentItems.indexOf(item);
-
- if (index == -1) {
- currentItems.push(item);
- setCurrentItem(item, true);
- }
-
- fillInput();
- }
-
- function unsetItem(index) {
- var item = currentItems[index];
-
- if (index > -1) {
- currentItems.splice(index, 1);
- if (item.element) {
- item.element.classList.remove("active");
- }
- }
- }
-
- function toggleItem(item) {
- if (!item) {
- item = currentItem;
- }
-
- var index = currentItems.indexOf(item);
-
- if (index > -1) {
- unsetItem(index);
- } else {
- if (multiselect !== true && currentItems.length >= multiselect) {
- unsetItem(0);
- }
-
- setItem(item);
- }
-
- fillInput();
- }
-
- function chooseItem(item) {
- hideList();
-
- if (!item) {
- item = currentItem;
- }
-
- if (item) {
- success(item.value);
- }
- }
-
- function chooseItems() {
- hideList();
-
- var output = [];
-
- currentItems.forEach(function (item) {
- output.push(item.value);
- });
-
- success(output);
- }
-
- function fillInput() {
- var output = [];
-
- currentItems.forEach(function (item) {
- output.push(item.label);
- });
-
- input.value = output.join(", ");
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function showList() {
- if (!listEl.parentNode) {
-
- if (editorParams.values === true) {
- parseItems(getUniqueColumnValues(), initialDisplayValue);
- } else if (typeof editorParams.values === "string") {
- parseItems(getUniqueColumnValues(editorParams.values), initialDisplayValue);
- } else {
- parseItems(editorParams.values || [], initialDisplayValue);
- }
-
- var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- document.body.appendChild(listEl);
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //style input
- input.setAttribute("type", "text");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
- input.style.cursor = "default";
- input.readOnly = this.currentCell != false;
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = typeof initialValue !== "undefined" || initialValue === null ? initialValue : "";
-
- // if(editorParams.values === true){
- // parseItems(getUniqueColumnValues(), initialValue);
- // }else if(typeof editorParams.values === "string"){
- // parseItems(getUniqueColumnValues(editorParams.values), initialValue);
- // }else{
- // parseItems(editorParams.values || [], initialValue);
- // }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(dataItems[index - 1], !multiselect);
- }
- }
- break;
-
- case 40:
- //down arrow
- index = dataItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < dataItems.length - 1) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < dataItems.length - 1) {
- if (index == -1) {
- setCurrentItem(dataItems[0], !multiselect);
- } else {
- setCurrentItem(dataItems[index + 1], !multiselect);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
- break;
-
- case 13:
- //enter
- // chooseItem();
-
- if (multiselect) {
- toggleItem();
- } else {
- chooseItem();
- }
-
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
- }
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- if (multiselect) {
- chooseItems();
- } else {
- cancelItem();
- }
- }
- });
-
- input.addEventListener("focus", function (e) {
- showList();
- });
-
- //style list element
- listEl = document.createElement("div");
- listEl.classList.add("tabulator-edit-select-list");
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- return input;
- },
-
- //autocomplete
- autocomplete: function autocomplete(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- cellEl = cell.getElement(),
- initialValue = cell.getValue(),
- vertNav = editorParams.verticalNavigation || "editor",
- initialDisplayValue = typeof initialValue !== "undefined" || initialValue === null ? initialValue : typeof editorParams.defaultValue !== "undefined" ? editorParams.defaultValue : "",
- input = document.createElement("input"),
- listEl = document.createElement("div"),
- allItems = [],
- displayItems = [],
- values = [],
- currentItem = false,
- blurable = true,
- uniqueColumnValues = false;
-
- this.table.rowManager.element.addEventListener("scroll", cancelItem);
-
- //style input
- input.setAttribute("type", "search");
-
- input.style.padding = "4px";
- input.style.width = "100%";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style list element
- listEl.classList.add("tabulator-edit-select-list");
-
- listEl.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- function genUniqueColumnValues() {
- if (editorParams.values === true) {
- uniqueColumnValues = getUniqueColumnValues();
- } else if (typeof editorParams.values === "string") {
- uniqueColumnValues = getUniqueColumnValues(editorParams.values);
- }
- }
-
- function getUniqueColumnValues(field) {
- var output = {},
- data = self.table.getData(),
- column;
-
- if (field) {
- column = self.table.columnManager.getColumnByField(field);
- } else {
- column = cell.getColumn()._getSelf();
- }
-
- if (column) {
- data.forEach(function (row) {
- var val = column.getFieldValue(row);
-
- if (val !== null && typeof val !== "undefined" && val !== "") {
- output[val] = true;
- }
- });
-
- if (editorParams.sortValuesList) {
- if (editorParams.sortValuesList == "asc") {
- output = Object.keys(output).sort();
- } else {
- output = Object.keys(output).sort().reverse();
- }
- } else {
- output = Object.keys(output);
- }
- } else {
- console.warn("unable to find matching column to create autocomplete lookup list:", field);
- }
-
- return output;
- }
-
- function filterList(term, intialLoad) {
- var matches = [],
- values,
- items,
- searchEl;
-
- //lookup base values list
- if (uniqueColumnValues) {
- values = uniqueColumnValues;
- } else {
- values = editorParams.values || [];
- }
-
- if (editorParams.searchFunc) {
- matches = editorParams.searchFunc(term, values);
-
- if (matches instanceof Promise) {
-
- addNotice(typeof editorParams.searchingPlaceholder !== "undefined" ? editorParams.searchingPlaceholder : "Searching...");
-
- matches.then(function (result) {
- fillListIfNotEmpty(parseItems(result), intialLoad);
- }).catch(function (err) {
- console.err("error in autocomplete search promise:", err);
- });
- } else {
- fillListIfNotEmpty(parseItems(matches), intialLoad);
- }
- } else {
- items = parseItems(values);
-
- if (term === "") {
- if (editorParams.showListOnEmpty) {
- matches = items;
- }
- } else {
- items.forEach(function (item) {
- if (item.value !== null || typeof item.value !== "undefined") {
- if (String(item.value).toLowerCase().indexOf(String(term).toLowerCase()) > -1 || String(item.title).toLowerCase().indexOf(String(term).toLowerCase()) > -1) {
- matches.push(item);
- }
- }
- });
- }
-
- fillListIfNotEmpty(matches, intialLoad);
- }
- }
-
- function addNotice(notice) {
- var searchEl = document.createElement("div");
-
- clearList();
-
- if (notice !== false) {
- searchEl.classList.add("tabulator-edit-select-list-notice");
- searchEl.tabIndex = 0;
-
- if (notice instanceof Node) {
- searchEl.appendChild(notice);
- } else {
- searchEl.innerHTML = notice;
- }
-
- listEl.appendChild(searchEl);
- }
- }
-
- function parseItems(inputValues) {
- var itemList = [];
-
- if (Array.isArray(inputValues)) {
- inputValues.forEach(function (value) {
-
- var item = {};
-
- if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object") {
- item.title = editorParams.listItemFormatter ? editorParams.listItemFormatter(value.value, value.label) : value.label;
- item.value = value.value;
- } else {
- item.title = editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value;
- item.value = value;
- }
-
- itemList.push(item);
- });
- } else {
- for (var key in inputValues) {
- var item = {
- title: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
- value: key
- };
-
- itemList.push(item);
- }
- }
-
- return itemList;
- }
-
- function clearList() {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }
- }
-
- function fillListIfNotEmpty(items, intialLoad) {
- if (items.length) {
- fillList(items, intialLoad);
- } else {
- if (editorParams.emptyPlaceholder) {
- addNotice(editorParams.emptyPlaceholder);
- }
- }
- }
-
- function fillList(items, intialLoad) {
- var current = false;
-
- clearList();
-
- displayItems = items;
-
- displayItems.forEach(function (item) {
- var el = item.element;
-
- if (!el) {
- el = document.createElement("div");
- el.classList.add("tabulator-edit-select-list-item");
- el.tabIndex = 0;
- el.innerHTML = item.title;
-
- el.addEventListener("click", function (e) {
- setCurrentItem(item);
- chooseItem();
- });
-
- el.addEventListener("mousedown", function (e) {
- blurable = false;
-
- setTimeout(function () {
- blurable = true;
- }, 10);
- });
-
- item.element = el;
-
- if (intialLoad && item.value == initialValue) {
- input.value = item.title;
- item.element.classList.add("active");
- current = true;
- }
-
- if (item === currentItem) {
- item.element.classList.add("active");
- current = true;
- }
- }
-
- listEl.appendChild(el);
- });
-
- if (!current) {
- setCurrentItem(false);
- }
- }
-
- function chooseItem() {
- hideList();
-
- if (currentItem) {
- if (initialValue !== currentItem.value) {
- initialValue = currentItem.value;
- input.value = currentItem.title;
- success(currentItem.value);
- } else {
- cancel();
- }
- } else {
- if (editorParams.freetext) {
- initialValue = input.value;
- success(input.value);
- } else {
- if (editorParams.allowEmpty && input.value === "") {
- initialValue = input.value;
- success(input.value);
- } else {
- cancel();
- }
- }
- }
- }
-
- function showList() {
- if (!listEl.parentNode) {
- while (listEl.firstChild) {
- listEl.removeChild(listEl.firstChild);
- }var offset = Tabulator.prototype.helpers.elOffset(cellEl);
-
- listEl.style.minWidth = cellEl.offsetWidth + "px";
-
- listEl.style.top = offset.top + cellEl.offsetHeight + "px";
- listEl.style.left = offset.left + "px";
- document.body.appendChild(listEl);
- }
- }
-
- function setCurrentItem(item, showInputValue) {
- if (currentItem && currentItem.element) {
- currentItem.element.classList.remove("active");
- }
-
- currentItem = item;
-
- if (item && item.element) {
- item.element.classList.add("active");
- }
- }
-
- function hideList() {
- if (listEl.parentNode) {
- listEl.parentNode.removeChild(listEl);
- }
-
- removeScrollListener();
- }
-
- function cancelItem() {
- hideList();
- cancel();
- }
-
- function removeScrollListener() {
- self.table.rowManager.element.removeEventListener("scroll", cancelItem);
- }
-
- //allow key based navigation
- input.addEventListener("keydown", function (e) {
- var index;
-
- switch (e.keyCode) {
- case 38:
- //up arrow
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index) {
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index > 0) {
- setCurrentItem(displayItems[index - 1]);
- } else {
- setCurrentItem(false);
- }
- }
- break;
-
- case 40:
- //down arrow
-
- index = displayItems.indexOf(currentItem);
-
- if (vertNav == "editor" || vertNav == "hybrid" && index < displayItems.length - 1) {
-
- e.stopImmediatePropagation();
- e.stopPropagation();
- e.preventDefault();
-
- if (index < displayItems.length - 1) {
- if (index == -1) {
- setCurrentItem(displayItems[0]);
- } else {
- setCurrentItem(displayItems[index + 1]);
- }
- }
- }
- break;
-
- case 37: //left arrow
- case 39:
- //right arrow
- e.stopImmediatePropagation();
- e.stopPropagation();
- // e.preventDefault();
- break;
-
- case 13:
- //enter
- chooseItem();
- break;
-
- case 27:
- //escape
- cancelItem();
- break;
-
- case 36: //home
- case 35:
- //end
- //prevent table navigation while using input element
- e.stopImmediatePropagation();
- break;
- }
- });
-
- input.addEventListener("keyup", function (e) {
-
- switch (e.keyCode) {
- case 38: //up arrow
- case 37: //left arrow
- case 39: //up arrow
- case 40: //right arrow
- case 13: //enter
- case 27:
- //escape
- break;
-
- default:
- filterList(input.value);
- }
- });
-
- input.addEventListener("search", function (e) {
- filterList(input.value);
- });
-
- input.addEventListener("blur", function (e) {
- if (blurable) {
- chooseItem();
- }
- });
-
- input.addEventListener("focus", function (e) {
- var value = initialDisplayValue;
- genUniqueColumnValues();
- showList();
- input.value = value;
- filterList(value, true);
- });
-
- onRendered(function () {
- input.style.height = "100%";
- input.focus({ preventScroll: true });
- });
-
- if (editorParams.mask) {
- this.table.modules.edit.maskInput(input, editorParams);
- }
-
- return input;
- },
-
- //star rating
- star: function star(cell, onRendered, success, cancel, editorParams) {
- var self = this,
- element = cell.getElement(),
- value = cell.getValue(),
- maxStars = element.getElementsByTagName("svg").length || 5,
- size = element.getElementsByTagName("svg")[0] ? element.getElementsByTagName("svg")[0].getAttribute("width") : 14,
- stars = [],
- starsHolder = document.createElement("div"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg");
-
- //change star type
- function starChange(val) {
- stars.forEach(function (star, i) {
- if (i < val) {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-active");
- } else {
- star.classList.replace("tabulator-star-inactive", "tabulator-star-active");
- }
-
- star.innerHTML = '<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- } else {
- if (self.table.browser == "ie") {
- star.setAttribute("class", "tabulator-star-inactive");
- } else {
- star.classList.replace("tabulator-star-active", "tabulator-star-inactive");
- }
-
- star.innerHTML = '<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
- }
- });
- }
-
- //build stars
- function buildStar(i) {
-
- var starHolder = document.createElement("span");
- var nextStar = star.cloneNode(true);
-
- stars.push(nextStar);
-
- starHolder.addEventListener("mouseenter", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- starChange(i);
- });
-
- starHolder.addEventListener("mousemove", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- });
-
- starHolder.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- success(i);
- element.blur();
- });
-
- starHolder.appendChild(nextStar);
- starsHolder.appendChild(starHolder);
- }
-
- //handle keyboard navigation value change
- function changeValue(val) {
- value = val;
- starChange(val);
- }
-
- //style cell
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- //style holding element
- starsHolder.style.verticalAlign = "middle";
- starsHolder.style.display = "inline-block";
- starsHolder.style.padding = "4px";
-
- //style star
- star.setAttribute("width", size);
- star.setAttribute("height", size);
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- starsHolder.setAttribute(key, starsHolder.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- starsHolder.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //create correct number of stars
- for (var i = 1; i <= maxStars; i++) {
- buildStar(i);
- }
-
- //ensure value does not exceed number of stars
- value = Math.min(parseInt(value), maxStars);
-
- // set initial styling of stars
- starChange(value);
-
- starsHolder.addEventListener("mousemove", function (e) {
- starChange(0);
- });
-
- starsHolder.addEventListener("click", function (e) {
- success(0);
- });
-
- element.addEventListener("blur", function (e) {
- cancel();
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- changeValue(value + 1);
- break;
-
- case 37:
- //left arrow
- changeValue(value - 1);
- break;
-
- case 13:
- //enter
- success(value);
- break;
-
- case 27:
- //escape
- cancel();
- break;
- }
- });
-
- return starsHolder;
- },
-
- //draggable progress bar
- progress: function progress(cell, onRendered, success, cancel, editorParams) {
- var element = cell.getElement(),
- max = typeof editorParams.max === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("max") || 100 : editorParams.max,
- min = typeof editorParams.min === "undefined" ? element.getElementsByTagName("div")[0].getAttribute("min") || 0 : editorParams.min,
- percent = (max - min) / 100,
- value = cell.getValue() || 0,
- handle = document.createElement("div"),
- bar = document.createElement("div"),
- mouseDrag,
- mouseDragWidth;
-
- //set new value
- function updateValue() {
- var calcVal = percent * Math.round(bar.offsetWidth / (element.clientWidth / 100)) + min;
- success(calcVal);
- element.setAttribute("aria-valuenow", calcVal);
- element.setAttribute("aria-label", value);
- }
-
- //style handle
- handle.style.position = "absolute";
- handle.style.right = "0";
- handle.style.top = "0";
- handle.style.bottom = "0";
- handle.style.width = "5px";
- handle.classList.add("tabulator-progress-handle");
-
- //style bar
- bar.style.display = "inline-block";
- bar.style.position = "relative";
- // bar.style.top = "8px";
- // bar.style.bottom = "8px";
- // bar.style.left = "4px";
- // bar.style.marginRight = "4px";
- bar.style.height = "100%";
- bar.style.backgroundColor = "#488CE9";
- bar.style.maxWidth = "100%";
- bar.style.minWidth = "0%";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- bar.setAttribute(key, bar.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- bar.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- //style cell
- element.style.padding = "4px 4px";
-
- //make sure value is in range
- value = Math.min(parseFloat(value), max);
- value = Math.max(parseFloat(value), min);
-
- //workout percentage
- value = Math.round((value - min) / percent);
- // bar.style.right = value + "%";
- bar.style.width = value + "%";
-
- element.setAttribute("aria-valuemin", min);
- element.setAttribute("aria-valuemax", max);
-
- bar.appendChild(handle);
-
- handle.addEventListener("mousedown", function (e) {
- mouseDrag = e.screenX;
- mouseDragWidth = bar.offsetWidth;
- });
-
- handle.addEventListener("mouseover", function () {
- handle.style.cursor = "ew-resize";
- });
-
- element.addEventListener("mousemove", function (e) {
- if (mouseDrag) {
- bar.style.width = mouseDragWidth + e.screenX - mouseDrag + "px";
- }
- });
-
- element.addEventListener("mouseup", function (e) {
- if (mouseDrag) {
- e.stopPropagation();
- e.stopImmediatePropagation();
-
- mouseDrag = false;
- mouseDragWidth = false;
-
- updateValue();
- }
- });
-
- //allow key based navigation
- element.addEventListener("keydown", function (e) {
- switch (e.keyCode) {
- case 39:
- //right arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth + element.clientWidth / 100 + "px";
- break;
-
- case 37:
- //left arrow
- e.preventDefault();
- bar.style.width = bar.clientWidth - element.clientWidth / 100 + "px";
- break;
-
- case 9: //tab
- case 13:
- //enter
- updateValue();
- break;
-
- case 27:
- //escape
- cancel();
- break;
-
- }
- });
-
- element.addEventListener("blur", function () {
- cancel();
- });
-
- return bar;
- },
-
- //checkbox
- tickCross: function tickCross(cell, onRendered, success, cancel, editorParams) {
- var value = cell.getValue(),
- input = document.createElement("input"),
- tristate = editorParams.tristate,
- indetermValue = typeof editorParams.indeterminateValue === "undefined" ? null : editorParams.indeterminateValue,
- indetermState = false;
-
- input.setAttribute("type", "checkbox");
- input.style.marginTop = "5px";
- input.style.boxSizing = "border-box";
-
- if (editorParams.elementAttributes && _typeof(editorParams.elementAttributes) == "object") {
- for (var key in editorParams.elementAttributes) {
- if (key.charAt(0) == "+") {
- key = key.slice(1);
- input.setAttribute(key, input.getAttribute(key) + editorParams.elementAttributes["+" + key]);
- } else {
- input.setAttribute(key, editorParams.elementAttributes[key]);
- }
- }
- }
-
- input.value = value;
-
- if (tristate && (typeof value === "undefined" || value === indetermValue || value === "")) {
- indetermState = true;
- input.indeterminate = true;
- }
-
- if (this.table.browser != "firefox") {
- //prevent blur issue on mac firefox
- onRendered(function () {
- input.focus({ preventScroll: true });
- });
- }
-
- input.checked = value === true || value === "true" || value === "True" || value === 1;
-
- function setValue(blur) {
- if (tristate) {
- if (!blur) {
- if (input.checked && !indetermState) {
- input.checked = false;
- input.indeterminate = true;
- indetermState = true;
- return indetermValue;
- } else {
- indetermState = false;
- return input.checked;
- }
- } else {
- if (indetermState) {
- return indetermValue;
- } else {
- return input.checked;
- }
- }
- } else {
- return input.checked;
- }
- }
-
- //submit new value on blur
- input.addEventListener("change", function (e) {
- success(setValue());
- });
-
- input.addEventListener("blur", function (e) {
- success(setValue(true));
- });
-
- //submit new value on enter
- input.addEventListener("keydown", function (e) {
- if (e.keyCode == 13) {
- success(setValue());
- }
- if (e.keyCode == 27) {
- cancel();
- }
- });
-
- return input;
- }
- };
-
- Tabulator.prototype.registerModule("edit", Edit);
-
- var ExportRow = function ExportRow(type, columns, component, indent) {
- this.type = type;
- this.columns = columns;
- this.component = component || false;
- this.indent = indent || 0;
- };
-
- var ExportColumn = function ExportColumn(value, component, width, height, depth) {
- this.value = value;
- this.component = component || false;
- this.width = width;
- this.height = height;
- this.depth = depth;
- };
-
- var Export = function Export(table) {
- this.table = table; //hold Tabulator object
- this.config = {};
- this.cloneTableStyle = true;
- this.colVisProp = "";
- };
-
- Export.prototype.generateExportList = function (config, style, range, colVisProp) {
- this.cloneTableStyle = style;
- this.config = config || {};
- this.colVisProp = colVisProp;
-
- var headers = this.config.columnHeaders !== false ? this.headersToExportRows(this.generateColumnGroupHeaders()) : [];
- var body = this.bodyToExportRows(this.rowLookup(range));
-
- return headers.concat(body);
- };
-
- Export.prototype.genereateTable = function (config, style, range, colVisProp) {
- var list = this.generateExportList(config, style, range, colVisProp);
-
- return this.genereateTableElement(list);
- };
-
- Export.prototype.rowLookup = function (range) {
- var _this45 = this;
-
- var rows = [];
-
- if (typeof range == "function") {
- range.call(this.table).forEach(function (row) {
- row = _this45.table.rowManager.findRow(row);
-
- if (row) {
- rows.push(row);
- }
- });
- } else {
- switch (range) {
- case true:
- case "visible":
- rows = this.table.rowManager.getVisibleRows(true);
- break;
-
- case "all":
- rows = this.table.rowManager.rows;
- break;
-
- case "selected":
- rows = this.table.modules.selectRow.selectedRows;
- break;
-
- case "active":
- default:
- rows = this.table.rowManager.getDisplayRows();
- }
- }
-
- return Object.assign([], rows);
- };
-
- Export.prototype.generateColumnGroupHeaders = function () {
- var _this46 = this;
-
- var output = [];
-
- var columns = this.config.columnGroups !== false ? this.table.columnManager.columns : this.table.columnManager.columnsByIndex;
-
- columns.forEach(function (column) {
- var colData = _this46.processColumnGroup(column);
-
- if (colData) {
- output.push(colData);
- }
- });
-
- return output;
- };
-
- Export.prototype.processColumnGroup = function (column) {
- var _this47 = this;
-
- var subGroups = column.columns,
- maxDepth = 0,
- title = column.definition["title" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))] || column.definition.title;
-
- var groupData = {
- title: title,
- column: column,
- depth: 1
- };
-
- if (subGroups.length) {
- groupData.subGroups = [];
- groupData.width = 0;
-
- subGroups.forEach(function (subGroup) {
- var subGroupData = _this47.processColumnGroup(subGroup);
-
- if (subGroupData) {
- groupData.width += subGroupData.width;
- groupData.subGroups.push(subGroupData);
-
- if (subGroupData.depth > maxDepth) {
- maxDepth = subGroupData.depth;
- }
- }
- });
-
- groupData.depth += maxDepth;
-
- if (!groupData.width) {
- return false;
- }
- } else {
- if (this.columnVisCheck(column)) {
- groupData.width = 1;
- } else {
- return false;
- }
- }
-
- return groupData;
- };
-
- Export.prototype.columnVisCheck = function (column) {
- return column.definition[this.colVisProp] !== false && (column.visible || !column.visible && column.definition[this.colVisProp]);
- };
-
- Export.prototype.headersToExportRows = function (columns) {
- var headers = [],
- headerDepth = 0,
- exportRows = [];
-
- function parseColumnGroup(column, level) {
-
- var depth = headerDepth - level;
-
- if (typeof headers[level] === "undefined") {
- headers[level] = [];
- }
-
- column.height = column.subGroups ? 1 : depth - column.depth + 1;
-
- headers[level].push(column);
-
- if (column.height > 1) {
- for (var _i6 = 1; _i6 < column.height; _i6++) {
-
- if (typeof headers[level + _i6] === "undefined") {
- headers[level + _i6] = [];
- }
-
- headers[level + _i6].push(false);
- }
- }
-
- if (column.width > 1) {
- for (var _i7 = 1; _i7 < column.width; _i7++) {
- headers[level].push(false);
- }
- }
-
- if (column.subGroups) {
- column.subGroups.forEach(function (subGroup) {
- parseColumnGroup(subGroup, level + 1);
- });
- }
- }
-
- //calculate maximum header debth
- columns.forEach(function (column) {
- if (column.depth > headerDepth) {
- headerDepth = column.depth;
- }
- });
-
- columns.forEach(function (column) {
- parseColumnGroup(column, 0);
- });
-
- headers.forEach(function (header) {
- var columns = [];
-
- header.forEach(function (col) {
- if (col) {
- columns.push(new ExportColumn(col.title, col.column.getComponent(), col.width, col.height, col.depth));
- } else {
- columns.push(null);
- }
- });
-
- exportRows.push(new ExportRow("header", columns));
- });
-
- return exportRows;
- };
-
- Export.prototype.bodyToExportRows = function (rows) {
- var _this48 = this;
-
- var columns = [];
- var exportRows = [];
-
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (_this48.columnVisCheck(column)) {
- columns.push(column.getComponent());
- }
- });
-
- if (this.config.columnCalcs !== false && this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized) {
- rows.unshift(this.table.modules.columnCalcs.topRow);
- }
-
- if (this.table.modules.columnCalcs.botInitialized) {
- rows.push(this.table.modules.columnCalcs.botRow);
- }
- }
-
- rows = rows.filter(function (row) {
- switch (row.type) {
- case "group":
- return _this48.config.rowGroups !== false;
- break;
-
- case "calc":
- return _this48.config.columnCalcs !== false;
- break;
-
- case "row":
- return !(_this48.table.options.dataTree && _this48.config.dataTree === false && row.modules.dataTree.parent);
- break;
- }
-
- return true;
- });
-
- rows.forEach(function (row, i) {
- var rowData = row.getData(_this48.colVisProp);
- var exportCols = [];
- var indent = 0;
-
- switch (row.type) {
- case "group":
- indent = row.level;
- exportCols.push(new ExportColumn(row.key, row.getComponent(), columns.length, 1));
- break;
-
- case "calc":
- case "row":
- columns.forEach(function (col) {
- exportCols.push(new ExportColumn(col._column.getFieldValue(rowData), col, 1, 1));
- });
-
- if (_this48.table.options.dataTree && _this48.config.dataTree !== false) {
- indent = row.modules.dataTree.index;
- }
- break;
- }
-
- exportRows.push(new ExportRow(row.type, exportCols, row.getComponent(), indent));
- });
-
- return exportRows;
- };
-
- Export.prototype.genereateTableElement = function (list) {
- var _this49 = this;
-
- var table = document.createElement("table"),
- headerEl = document.createElement("thead"),
- bodyEl = document.createElement("tbody"),
- styles = this.lookupTableStyles(),
- rowFormatter = this.table.options["rowFormatter" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))],
- setup = {};
-
- setup.rowFormatter = rowFormatter !== null ? rowFormatter : this.table.options.rowFormatter;
-
- if (this.table.options.dataTree && this.config.dataTree !== false && this.table.modExists("columnCalcs")) {
- setup.treeElementField = this.table.modules.dataTree.elementField;
- }
-
- //assign group header formatter
- setup.groupHeader = this.table.options["groupHeader" + (this.colVisProp.charAt(0).toUpperCase() + this.colVisProp.slice(1))];
-
- if (setup.groupHeader && !Array.isArray(setup.groupHeader)) {
- setup.groupHeader = [setup.groupHeader];
- }
-
- table.classList.add("tabulator-print-table");
-
- this.mapElementStyles(this.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
-
- if (list.length > 1000) {
- console.warn("It may take a long time to render an HTML table with more than 1000 rows");
- }
-
- list.forEach(function (row, i) {
- switch (row.type) {
- case "header":
- headerEl.appendChild(_this49.genereateHeaderElement(row, setup, styles));
- break;
-
- case "group":
- bodyEl.appendChild(_this49.genereateGroupElement(row, setup, styles));
- break;
-
- case "calc":
- bodyEl.appendChild(_this49.genereateCalcElement(row, setup, styles));
- break;
-
- case "row":
- var rowEl = _this49.genereateRowElement(row, setup, styles);
- _this49.mapElementStyles(i % 2 && styles.evenRow ? styles.evenRow : styles.oddRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
- bodyEl.appendChild(rowEl);
- break;
- }
- });
-
- if (headerEl.innerHTML) {
- table.appendChild(headerEl);
- }
-
- table.appendChild(bodyEl);
-
- this.mapElementStyles(this.table.element, table, ["border-top", "border-left", "border-right", "border-bottom"]);
- return table;
- };
-
- Export.prototype.lookupTableStyles = function () {
- var styles = {};
-
- //lookup row styles
- if (this.cloneTableStyle && window.getComputedStyle) {
- styles.oddRow = this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)");
- styles.evenRow = this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)");
- styles.calcRow = this.table.element.querySelector(".tabulator-row.tabulator-calcs");
- styles.firstRow = this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)");
- styles.firstGroup = this.table.element.getElementsByClassName("tabulator-group")[0];
-
- if (styles.firstRow) {
- styles.styleCells = styles.firstRow.getElementsByClassName("tabulator-cell");
- styles.firstCell = styles.styleCells[0];
- styles.lastCell = styles.styleCells[styles.styleCells.length - 1];
- }
- }
-
- return styles;
- };
-
- Export.prototype.genereateHeaderElement = function (row, setup, styles) {
- var _this50 = this;
-
- var rowEl = document.createElement("tr");
-
- row.columns.forEach(function (column) {
- if (column) {
- var cellEl = document.createElement("th");
- var classNames = column.component._column.definition.cssClass ? column.component._column.definition.cssClass.split(" ") : [];
-
- cellEl.colSpan = column.width;
- cellEl.rowSpan = column.height;
-
- cellEl.innerHTML = column.value;
-
- if (_this50.cloneTableStyle) {
- cellEl.style.boxSizing = "border-box";
- }
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- _this50.mapElementStyles(column.component.getElement(), cellEl, ["text-align", "border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
- _this50.mapElementStyles(column.component._column.contentElement, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
-
- if (column.component._column.visible) {
- _this50.mapElementStyles(column.component.getElement(), cellEl, ["width"]);
- } else {
- if (column.component._column.definition.width) {
- cellEl.style.width = column.component._column.definition.width + "px";
- }
- }
-
- if (column.component._column.parent) {
- _this50.mapElementStyles(column.component._column.parent.groupElement, cellEl, ["border-top"]);
- }
-
- rowEl.appendChild(cellEl);
- }
- });
-
- return rowEl;
- };
-
- Export.prototype.genereateGroupElement = function (row, setup, styles) {
-
- var rowEl = document.createElement("tr"),
- cellEl = document.createElement("td"),
- group = row.columns[0];
-
- rowEl.classList.add("tabulator-print-table-row");
-
- if (setup.groupHeader && setup.groupHeader[row.indent]) {
- group.value = setup.groupHeader[row.indent](group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);
- } else {
- if (setup.groupHeader === false) {
- group.value = group.value;
- } else {
- group.value = row.component._group.generator(group.value, row.component._group.getRowCount(), row.component._group.getData(), row.component);
- }
- }
-
- cellEl.colSpan = group.width;
- cellEl.innerHTML = group.value;
-
- rowEl.classList.add("tabulator-print-table-group");
- rowEl.classList.add("tabulator-group-level-" + row.indent);
-
- if (group.component.getVisibility()) {
- rowEl.classList.add("tabulator-group-visible");
- }
-
- this.mapElementStyles(styles.firstGroup, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
- this.mapElementStyles(styles.firstGroup, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom"]);
-
- rowEl.appendChild(cellEl);
-
- return rowEl;
- };
-
- Export.prototype.genereateCalcElement = function (row, setup, styles) {
- var rowEl = this.genereateRowElement(row, setup, styles);
-
- rowEl.classList.add("tabulator-print-table-calcs");
- this.mapElementStyles(styles.calcRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
-
- return rowEl;
- };
-
- Export.prototype.genereateRowElement = function (row, setup, styles) {
- var _this51 = this;
-
- var rowEl = document.createElement("tr");
-
- rowEl.classList.add("tabulator-print-table-row");
-
- row.columns.forEach(function (col) {
-
- if (col) {
- var cellEl = document.createElement("td"),
- column = col.component._column,
- value = col.value;
-
- var cellWrapper = {
- modules: {},
- getValue: function getValue() {
- return value;
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return cellEl;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getData: function getData() {
- return rowData;
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getComponent: function getComponent() {
- return cellWrapper;
- },
- column: column
- };
-
- var classNames = column.definition.cssClass ? column.definition.cssClass.split(" ") : [];
-
- classNames.forEach(function (className) {
- cellEl.classList.add(className);
- });
-
- if (_this51.table.modExists("format") && _this51.config.formatCells !== false) {
- value = _this51.table.modules.format.formatExportValue(cellWrapper, _this51.colVisProp);
- } else {
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "object":
- value = JSON.stringify(value);
- break;
-
- case "undefined":
- case "null":
- value = "";
- break;
-
- default:
- value = value;
- }
- }
-
- if (value instanceof Node) {
- cellEl.appendChild(value);
- } else {
- cellEl.innerHTML = value;
- }
-
- if (styles.firstCell) {
- _this51.mapElementStyles(styles.firstCell, cellEl, ["padding-top", "padding-left", "padding-right", "padding-bottom", "border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
-
- if (column.definition.align) {
- cellEl.style.textAlign = column.definition.align;
- }
- }
-
- if (_this51.table.options.dataTree && _this51.config.dataTree !== false) {
- if (setup.treeElementField && setup.treeElementField == column.field || !setup.treeElementField && i == 0) {
- if (row.component._row.modules.dataTree.controlEl) {
- cellEl.insertBefore(row.component._row.modules.dataTree.controlEl.cloneNode(true), cellEl.firstChild);
- }
- if (row.component._row.modules.dataTree.branchEl) {
- cellEl.insertBefore(row.component._row.modules.dataTree.branchEl.cloneNode(true), cellEl.firstChild);
- }
- }
- }
-
- rowEl.appendChild(cellEl);
-
- if (cellWrapper.modules.format && cellWrapper.modules.format.renderedCallback) {
- cellWrapper.modules.format.renderedCallback();
- }
-
- if (setup.rowFormatter && _this51.config.formatCells !== false) {
- var rowComponent = row.getComponent();
-
- rowComponent.getElement = function () {
- return rowEl;
- };
-
- setup.rowFormatter(rowComponent);
- }
- }
- });
-
- return rowEl;
- };
-
- Export.prototype.genereateHTMLTable = function (list) {
- var holder = document.createElement("div");
-
- holder.appendChild(this.genereateTableElement(list));
-
- return holder.innerHTML;
- };
-
- Export.prototype.getHtml = function (visible, style, config, colVisProp) {
- var list = this.generateExportList(config || this.table.options.htmlOutputConfig, style, visible, colVisProp || "htmlOutput");
-
- return this.genereateHTMLTable(list);
- };
-
- Export.prototype.mapElementStyles = function (from, to, props) {
- if (this.cloneTableStyle && from && to) {
-
- var lookup = {
- "background-color": "backgroundColor",
- "color": "fontColor",
- "width": "width",
- "font-weight": "fontWeight",
- "font-family": "fontFamily",
- "font-size": "fontSize",
- "text-align": "textAlign",
- "border-top": "borderTop",
- "border-left": "borderLeft",
- "border-right": "borderRight",
- "border-bottom": "borderBottom",
- "padding-top": "paddingTop",
- "padding-left": "paddingLeft",
- "padding-right": "paddingRight",
- "padding-bottom": "paddingBottom"
- };
-
- if (window.getComputedStyle) {
- var fromStyle = window.getComputedStyle(from);
-
- props.forEach(function (prop) {
- to.style[lookup[prop]] = fromStyle.getPropertyValue(prop);
- });
- }
- }
- };
-
- Tabulator.prototype.registerModule("export", Export);
-
- var Filter = function Filter(table) {
-
- this.table = table; //hold Tabulator object
-
- this.filterList = []; //hold filter list
- this.headerFilters = {}; //hold column filters
- this.headerFilterColumns = []; //hold columns that use header filters
-
- this.prevHeaderFilterChangeCheck = "";
- this.prevHeaderFilterChangeCheck = "{}";
-
- this.changed = false; //has filtering changed since last render
- };
-
- //initialize column header filter
- Filter.prototype.initializeColumn = function (column, value) {
- var self = this,
- field = column.getField(),
- params;
-
- //handle successfull value change
- function success(value) {
- var filterType = column.modules.filter.tagType == "input" && column.modules.filter.attrType == "text" || column.modules.filter.tagType == "textarea" ? "partial" : "match",
- type = "",
- filterChangeCheck = "",
- filterFunc;
-
- if (typeof column.modules.filter.prevSuccess === "undefined" || column.modules.filter.prevSuccess !== value) {
-
- column.modules.filter.prevSuccess = value;
-
- if (!column.modules.filter.emptyFunc(value)) {
- column.modules.filter.value = value;
-
- switch (_typeof(column.definition.headerFilterFunc)) {
- case "string":
- if (self.filters[column.definition.headerFilterFunc]) {
- type = column.definition.headerFilterFunc;
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return self.filters[column.definition.headerFilterFunc](value, fieldVal, data, params);
- };
- } else {
- console.warn("Header Filter Error - Matching filter function not found: ", column.definition.headerFilterFunc);
- }
- break;
-
- case "function":
- filterFunc = function filterFunc(data) {
- var params = column.definition.headerFilterFuncParams || {};
- var fieldVal = column.getFieldValue(data);
-
- params = typeof params === "function" ? params(value, fieldVal, data) : params;
-
- return column.definition.headerFilterFunc(value, fieldVal, data, params);
- };
-
- type = filterFunc;
- break;
- }
-
- if (!filterFunc) {
- switch (filterType) {
- case "partial":
- filterFunc = function filterFunc(data) {
- var colVal = column.getFieldValue(data);
-
- if (typeof colVal !== 'undefined' && colVal !== null) {
- return String(colVal).toLowerCase().indexOf(String(value).toLowerCase()) > -1;
- } else {
- return false;
- }
- };
- type = "like";
- break;
-
- default:
- filterFunc = function filterFunc(data) {
- return column.getFieldValue(data) == value;
- };
- type = "=";
- }
- }
-
- self.headerFilters[field] = { value: value, func: filterFunc, type: type, params: params || {} };
- } else {
- delete self.headerFilters[field];
- }
-
- filterChangeCheck = JSON.stringify(self.headerFilters);
-
- if (self.prevHeaderFilterChangeCheck !== filterChangeCheck) {
- self.prevHeaderFilterChangeCheck = filterChangeCheck;
-
- self.changed = true;
- self.table.rowManager.filterRefresh();
- }
- }
-
- return true;
- }
-
- column.modules.filter = {
- success: success,
- attrType: false,
- tagType: false,
- emptyFunc: false
- };
-
- this.generateHeaderFilterElement(column);
- };
-
- Filter.prototype.generateHeaderFilterElement = function (column, initialValue, reinitialize) {
- var _this52 = this;
-
- var self = this,
- success = column.modules.filter.success,
- field = column.getField(),
- filterElement,
- editor,
- editorElement,
- cellWrapper,
- typingTimer,
- searchTrigger,
- params;
-
- //handle aborted edit
- function cancel() {}
-
- if (column.modules.filter.headerElement && column.modules.filter.headerElement.parentNode) {
- column.contentElement.removeChild(column.modules.filter.headerElement.parentNode);
- }
-
- if (field) {
-
- //set empty value function
- column.modules.filter.emptyFunc = column.definition.headerFilterEmptyCheck || function (value) {
- return !value && value !== "0";
- };
-
- filterElement = document.createElement("div");
- filterElement.classList.add("tabulator-header-filter");
-
- //set column editor
- switch (_typeof(column.definition.headerFilter)) {
- case "string":
- if (self.table.modules.edit.editors[column.definition.headerFilter]) {
- editor = self.table.modules.edit.editors[column.definition.headerFilter];
-
- if ((column.definition.headerFilter === "tick" || column.definition.headerFilter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- console.warn("Filter Error - Cannot build header filter, No such editor found: ", column.definition.editor);
- }
- break;
-
- case "function":
- editor = column.definition.headerFilter;
- break;
-
- case "boolean":
- if (column.modules.edit && column.modules.edit.editor) {
- editor = column.modules.edit.editor;
- } else {
- if (column.definition.formatter && self.table.modules.edit.editors[column.definition.formatter]) {
- editor = self.table.modules.edit.editors[column.definition.formatter];
-
- if ((column.definition.formatter === "tick" || column.definition.formatter === "tickCross") && !column.definition.headerFilterEmptyCheck) {
- column.modules.filter.emptyFunc = function (value) {
- return value !== true && value !== false;
- };
- }
- } else {
- editor = self.table.modules.edit.editors["input"];
- }
- }
- break;
- }
-
- if (editor) {
-
- cellWrapper = {
- getValue: function getValue() {
- return typeof initialValue !== "undefined" ? initialValue : "";
- },
- getField: function getField() {
- return column.definition.field;
- },
- getElement: function getElement() {
- return filterElement;
- },
- getColumn: function getColumn() {
- return column.getComponent();
- },
- getRow: function getRow() {
- return {
- normalizeHeight: function normalizeHeight() {}
- };
- }
- };
-
- params = column.definition.headerFilterParams || {};
-
- params = typeof params === "function" ? params.call(self.table) : params;
-
- editorElement = editor.call(this.table.modules.edit, cellWrapper, function () {}, success, cancel, params);
-
- if (!editorElement) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor returned a value of false");
- return;
- }
-
- if (!(editorElement instanceof Node)) {
- console.warn("Filter Error - Cannot add filter to " + field + " column, editor should return an instance of Node, the editor returned:", editorElement);
- return;
- }
-
- //set Placeholder Text
- if (field) {
- self.table.modules.localize.bind("headerFilters|columns|" + column.definition.field, function (value) {
- editorElement.setAttribute("placeholder", typeof value !== "undefined" && value ? value : self.table.modules.localize.getText("headerFilters|default"));
- });
- } else {
- self.table.modules.localize.bind("headerFilters|default", function (value) {
- editorElement.setAttribute("placeholder", typeof self.column.definition.headerFilterPlaceholder !== "undefined" && self.column.definition.headerFilterPlaceholder ? self.column.definition.headerFilterPlaceholder : value);
- });
- }
-
- //focus on element on click
- editorElement.addEventListener("click", function (e) {
- e.stopPropagation();
- editorElement.focus();
- });
-
- editorElement.addEventListener("focus", function (e) {
- var left = _this52.table.columnManager.element.scrollLeft;
-
- if (left !== _this52.table.rowManager.element.scrollLeft) {
- _this52.table.rowManager.scrollHorizontal(left);
- _this52.table.columnManager.scrollHorizontal(left);
- }
- });
-
- //live update filters as user types
- typingTimer = false;
-
- searchTrigger = function searchTrigger(e) {
- if (typingTimer) {
- clearTimeout(typingTimer);
- }
-
- typingTimer = setTimeout(function () {
- success(editorElement.value);
- }, self.table.options.headerFilterLiveFilterDelay);
- };
-
- column.modules.filter.headerElement = editorElement;
- column.modules.filter.attrType = editorElement.hasAttribute("type") ? editorElement.getAttribute("type").toLowerCase() : "";
- column.modules.filter.tagType = editorElement.tagName.toLowerCase();
-
- if (column.definition.headerFilterLiveFilter !== false) {
-
- if (!(column.definition.headerFilter === 'autocomplete' || column.definition.headerFilter === 'tickCross' || (column.definition.editor === 'autocomplete' || column.definition.editor === 'tickCross') && column.definition.headerFilter === true)) {
- editorElement.addEventListener("keyup", searchTrigger);
- editorElement.addEventListener("search", searchTrigger);
-
- //update number filtered columns on change
- if (column.modules.filter.attrType == "number") {
- editorElement.addEventListener("change", function (e) {
- success(editorElement.value);
- });
- }
-
- //change text inputs to search inputs to allow for clearing of field
- if (column.modules.filter.attrType == "text" && this.table.browser !== "ie") {
- editorElement.setAttribute("type", "search");
- // editorElement.off("change blur"); //prevent blur from triggering filter and preventing selection click
- }
- }
-
- //prevent input and select elements from propegating click to column sorters etc
- if (column.modules.filter.tagType == "input" || column.modules.filter.tagType == "select" || column.modules.filter.tagType == "textarea") {
- editorElement.addEventListener("mousedown", function (e) {
- e.stopPropagation();
- });
- }
- }
-
- filterElement.appendChild(editorElement);
-
- column.contentElement.appendChild(filterElement);
-
- if (!reinitialize) {
- self.headerFilterColumns.push(column);
- }
- }
- } else {
- console.warn("Filter Error - Cannot add header filter, column has no field set:", column.definition.title);
- }
- };
-
- //hide all header filter elements (used to ensure correct column widths in "fitData" layout mode)
- Filter.prototype.hideHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = 'none';
- }
- });
- };
-
- //show all header filter elements (used to ensure correct column widths in "fitData" layout mode)
- Filter.prototype.showHeaderFilterElements = function () {
- this.headerFilterColumns.forEach(function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.style.display = '';
- }
- });
- };
-
- //programatically set focus of header filter
- Filter.prototype.setHeaderFilterFocus = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- column.modules.filter.headerElement.focus();
- } else {
- console.warn("Column Filter Focus Error - No header filter set on column:", column.getField());
- }
- };
-
- //programmatically get value of header filter
- Filter.prototype.getHeaderFilterValue = function (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- return column.modules.filter.headerElement.value;
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- };
-
- //programatically set value of header filter
- Filter.prototype.setHeaderFilterValue = function (column, value) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, value, true);
- column.modules.filter.success(value);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
- };
-
- Filter.prototype.reloadHeaderFilter = function (column) {
- if (column) {
- if (column.modules.filter && column.modules.filter.headerElement) {
- this.generateHeaderFilterElement(column, column.modules.filter.value, true);
- } else {
- console.warn("Column Filter Error - No header filter set on column:", column.getField());
- }
- }
- };
-
- //check if the filters has changed since last use
- Filter.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
- };
-
- //set standard filters
- Filter.prototype.setFilter = function (field, type, value, params) {
- var self = this;
-
- self.filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value, params: params }];
- }
-
- self.addFilter(field);
- };
-
- //add filter to array
- Filter.prototype.addFilter = function (field, type, value, params) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value, params: params }];
- }
-
- field.forEach(function (filter) {
-
- filter = self.findFilter(filter);
-
- if (filter) {
- self.filterList.push(filter);
-
- self.changed = true;
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
- };
-
- Filter.prototype.findFilter = function (filter) {
- var self = this,
- column;
-
- if (Array.isArray(filter)) {
- return this.findSubFilters(filter);
- }
-
- var filterFunc = false;
-
- if (typeof filter.field == "function") {
- filterFunc = function filterFunc(data) {
- return filter.field(data, filter.type || {}); // pass params to custom filter function
- };
- } else {
-
- if (self.filters[filter.type]) {
-
- column = self.table.columnManager.getColumnByField(filter.field);
-
- if (column) {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, column.getFieldValue(data), data, filter.params || {});
- };
- } else {
- filterFunc = function filterFunc(data) {
- return self.filters[filter.type](filter.value, data[filter.field], data, filter.params || {});
- };
- }
- } else {
- console.warn("Filter Error - No such filter type found, ignoring: ", filter.type);
- }
- }
-
- filter.func = filterFunc;
-
- return filter.func ? filter : false;
- };
-
- Filter.prototype.findSubFilters = function (filters) {
- var self = this,
- output = [];
-
- filters.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- output.push(filter);
- }
- });
-
- return output.length ? output : false;
- };
-
- //get all filters
- Filter.prototype.getFilters = function (all, ajax) {
- var output = [];
-
- if (all) {
- output = this.getHeaderFilters();
- }
-
- if (ajax) {
- output.forEach(function (item) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- });
- }
-
- output = output.concat(this.filtersToArray(this.filterList, ajax));
-
- return output;
- };
-
- //filter to Object
- Filter.prototype.filtersToArray = function (filterList, ajax) {
- var _this53 = this;
-
- var output = [];
-
- filterList.forEach(function (filter) {
- var item;
-
- if (Array.isArray(filter)) {
- output.push(_this53.filtersToArray(filter, ajax));
- } else {
- item = { field: filter.field, type: filter.type, value: filter.value };
-
- if (ajax) {
- if (typeof item.type == "function") {
- item.type = "function";
- }
- }
-
- output.push(item);
- }
- });
-
- return output;
- };
-
- //get all filters
- Filter.prototype.getHeaderFilters = function () {
- var self = this,
- output = [];
-
- for (var key in this.headerFilters) {
- output.push({ field: key, type: this.headerFilters[key].type, value: this.headerFilters[key].value });
- }
-
- return output;
- };
-
- //remove filter from array
- Filter.prototype.removeFilter = function (field, type, value) {
- var self = this;
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- var index = -1;
-
- if (_typeof(filter.field) == "object") {
- index = self.filterList.findIndex(function (element) {
- return filter === element;
- });
- } else {
- index = self.filterList.findIndex(function (element) {
- return filter.field === element.field && filter.type === element.type && filter.value === element.value;
- });
- }
-
- if (index > -1) {
- self.filterList.splice(index, 1);
- self.changed = true;
- } else {
- console.warn("Filter Error - No matching filter type found, ignoring: ", filter.type);
- }
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
- };
-
- //clear filters
- Filter.prototype.clearFilter = function (all) {
- this.filterList = [];
-
- if (all) {
- this.clearHeaderFilter();
- }
-
- this.changed = true;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.filter) {
- this.table.modules.persistence.save("filter");
- }
- };
-
- //clear header filters
- Filter.prototype.clearHeaderFilter = function () {
- var self = this;
-
- this.headerFilters = {};
- self.prevHeaderFilterChangeCheck = "{}";
-
- this.headerFilterColumns.forEach(function (column) {
- column.modules.filter.value = null;
- column.modules.filter.prevSuccess = undefined;
- self.reloadHeaderFilter(column);
- });
-
- this.changed = true;
- };
-
- //search data and return matching rows
- Filter.prototype.search = function (searchType, field, type, value) {
- var self = this,
- activeRows = [],
- filterList = [];
-
- if (!Array.isArray(field)) {
- field = [{ field: field, type: type, value: value }];
- }
-
- field.forEach(function (filter) {
- filter = self.findFilter(filter);
-
- if (filter) {
- filterList.push(filter);
- }
- });
-
- this.table.rowManager.rows.forEach(function (row) {
- var match = true;
-
- filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, row.getData())) {
- match = false;
- }
- });
-
- if (match) {
- activeRows.push(searchType === "data" ? row.getData("data") : row.getComponent());
- }
- });
-
- return activeRows;
- };
-
- //filter row array
- Filter.prototype.filter = function (rowList, filters) {
- var self = this,
- activeRows = [],
- activeRowComponents = [];
-
- if (self.table.options.dataFiltering) {
- self.table.options.dataFiltering.call(self.table, self.getFilters());
- }
-
- if (!self.table.options.ajaxFiltering && (self.filterList.length || Object.keys(self.headerFilters).length)) {
-
- rowList.forEach(function (row) {
- if (self.filterRow(row)) {
- activeRows.push(row);
- }
- });
- } else {
- activeRows = rowList.slice(0);
- }
-
- if (self.table.options.dataFiltered) {
-
- activeRows.forEach(function (row) {
- activeRowComponents.push(row.getComponent());
- });
-
- self.table.options.dataFiltered.call(self.table, self.getFilters(), activeRowComponents);
- }
-
- return activeRows;
- };
-
- //filter individual row
- Filter.prototype.filterRow = function (row, filters) {
- var self = this,
- match = true,
- data = row.getData();
-
- self.filterList.forEach(function (filter) {
- if (!self.filterRecurse(filter, data)) {
- match = false;
- }
- });
-
- for (var field in self.headerFilters) {
- if (!self.headerFilters[field].func(data)) {
- match = false;
- }
- }
-
- return match;
- };
-
- Filter.prototype.filterRecurse = function (filter, data) {
- var self = this,
- match = false;
-
- if (Array.isArray(filter)) {
- filter.forEach(function (subFilter) {
- if (self.filterRecurse(subFilter, data)) {
- match = true;
- }
- });
- } else {
- match = filter.func(data);
- }
-
- return match;
- };
-
- //list of available filters
- Filter.prototype.filters = {
-
- //equal to
- "=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal == filterVal ? true : false;
- },
-
- //less than
- "<": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal < filterVal ? true : false;
- },
-
- //less than or equal to
- "<=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal <= filterVal ? true : false;
- },
-
- //greater than
- ">": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal > filterVal ? true : false;
- },
-
- //greater than or equal to
- ">=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal >= filterVal ? true : false;
- },
-
- //not equal to
- "!=": function _(filterVal, rowVal, rowData, filterParams) {
- return rowVal != filterVal ? true : false;
- },
-
- "regex": function regex(filterVal, rowVal, rowData, filterParams) {
-
- if (typeof filterVal == "string") {
- filterVal = new RegExp(filterVal);
- }
-
- return filterVal.test(rowVal);
- },
-
- //contains the string
- "like": function like(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().indexOf(filterVal.toLowerCase()) > -1;
- } else {
- return false;
- }
- }
- },
-
- //contains the keywords
- "keywords": function keywords(filterVal, rowVal, rowData, filterParams) {
- var keywords = filterVal.toLowerCase().split(typeof filterParams.separator === "undefined" ? " " : filterParams.separator),
- value = String(rowVal === null || typeof rowVal === "undefined" ? "" : rowVal).toLowerCase(),
- matches = [];
-
- keywords.forEach(function (keyword) {
- if (value.includes(keyword)) {
- matches.push(true);
- }
- });
-
- return filterParams.matchAll ? matches.length === keywords.length : !!matches.length;
- },
-
- //starts with the string
- "starts": function starts(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().startsWith(filterVal.toLowerCase());
- } else {
- return false;
- }
- }
- },
-
- //ends with the string
- "ends": function ends(filterVal, rowVal, rowData, filterParams) {
- if (filterVal === null || typeof filterVal === "undefined") {
- return rowVal === filterVal ? true : false;
- } else {
- if (typeof rowVal !== 'undefined' && rowVal !== null) {
- return String(rowVal).toLowerCase().endsWith(filterVal.toLowerCase());
- } else {
- return false;
- }
- }
- },
-
- //in array
- "in": function _in(filterVal, rowVal, rowData, filterParams) {
- if (Array.isArray(filterVal)) {
- return filterVal.indexOf(rowVal) > -1;
- } else {
- console.warn("Filter Error - filter value is not an array:", filterVal);
- return false;
- }
- }
- };
-
- Tabulator.prototype.registerModule("filter", Filter);
-
- var Format = function Format(table) {
- this.table = table; //hold Tabulator object
- };
-
- //initialize column formatter
- Format.prototype.initializeColumn = function (column) {
- column.modules.format = this.lookupFormatter(column, "");
-
- if (typeof column.definition.formatterPrint !== "undefined") {
- column.modules.format.print = this.lookupFormatter(column, "Print");
- }
-
- if (typeof column.definition.formatterClipboard !== "undefined") {
- column.modules.format.clipboard = this.lookupFormatter(column, "Clipboard");
- }
-
- if (typeof column.definition.formatterHtmlOutput !== "undefined") {
- column.modules.format.htmlOutput = this.lookupFormatter(column, "HtmlOutput");
- }
- };
-
- Format.prototype.lookupFormatter = function (column, type) {
- var config = { params: column.definition["formatter" + type + "Params"] || {} },
- formatter = column.definition["formatter" + type];
-
- //set column formatter
- switch (typeof formatter === 'undefined' ? 'undefined' : _typeof(formatter)) {
- case "string":
-
- if (formatter === "tick") {
- formatter = "tickCross";
-
- if (typeof config.params.crossElement == "undefined") {
- config.params.crossElement = false;
- }
-
- console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false");
- }
-
- if (this.formatters[formatter]) {
- config.formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- config.formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- config.formatter = formatter;
- break;
-
- default:
- config.formatter = this.formatters.plaintext;
- break;
- }
-
- return config;
- };
-
- Format.prototype.cellRendered = function (cell) {
- if (cell.modules.format && cell.modules.format.renderedCallback) {
- cell.modules.format.renderedCallback();
- }
- };
-
- //return a formatted value for a cell
- Format.prototype.formatValue = function (cell) {
- var component = cell.getComponent(),
- params = typeof cell.column.modules.format.params === "function" ? cell.column.modules.format.params(component) : cell.column.modules.format.params;
-
- function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- }
-
- return cell.column.modules.format.formatter.call(this, component, params, onRendered);
- };
-
- Format.prototype.formatExportValue = function (cell, type) {
- var formatter = cell.column.modules.format[type],
- params;
-
- if (formatter) {
- var onRendered = function onRendered(callback) {
- if (!cell.modules.format) {
- cell.modules.format = {};
- }
-
- cell.modules.format.renderedCallback = callback;
- };
-
- params = typeof formatter.params === "function" ? formatter.params(component) : formatter.params;
-
- return formatter.formatter.call(this, cell.getComponent(), params, onRendered);
- } else {
- return this.formatValue(cell);
- }
- };
-
- Format.prototype.sanitizeHTML = function (value) {
- if (value) {
- var entityMap = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": ''',
- '/': '/',
- '`': '`',
- '=': '='
- };
-
- return String(value).replace(/[&<>"'`=\/]/g, function (s) {
- return entityMap[s];
- });
- } else {
- return value;
- }
- };
-
- Format.prototype.emptyToSpace = function (value) {
- return value === null || typeof value === "undefined" || value === "" ? " " : value;
- };
-
- //get formatter for cell
- Format.prototype.getFormatter = function (formatter) {
- var formatter;
-
- switch (typeof formatter === 'undefined' ? 'undefined' : _typeof(formatter)) {
- case "string":
- if (this.formatters[formatter]) {
- formatter = this.formatters[formatter];
- } else {
- console.warn("Formatter Error - No such formatter found: ", formatter);
- formatter = this.formatters.plaintext;
- }
- break;
-
- case "function":
- formatter = formatter;
- break;
-
- default:
- formatter = this.formatters.plaintext;
- break;
- }
-
- return formatter;
- };
-
- //default data formatters
- Format.prototype.formatters = {
- //plain text value
- plaintext: function plaintext(cell, formatterParams, onRendered) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //html text value
- html: function html(cell, formatterParams, onRendered) {
- return cell.getValue();
- },
-
- //multiline text area
- textarea: function textarea(cell, formatterParams, onRendered) {
- cell.getElement().style.whiteSpace = "pre-wrap";
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- },
-
- //currency formatting
- money: function money(cell, formatterParams, onRendered) {
- var floatVal = parseFloat(cell.getValue()),
- number,
- integer,
- decimal,
- rgx;
-
- var decimalSym = formatterParams.decimal || ".";
- var thousandSym = formatterParams.thousand || ",";
- var symbol = formatterParams.symbol || "";
- var after = !!formatterParams.symbolAfter;
- var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
-
- if (isNaN(floatVal)) {
- return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
- }
-
- number = precision !== false ? floatVal.toFixed(precision) : floatVal;
- number = String(number).split(".");
-
- integer = number[0];
- decimal = number.length > 1 ? decimalSym + number[1] : "";
-
- rgx = /(\d+)(\d{3})/;
-
- while (rgx.test(integer)) {
- integer = integer.replace(rgx, "$1" + thousandSym + "$2");
- }
-
- return after ? integer + decimal + symbol : symbol + integer + decimal;
- },
-
- //clickable anchor tag
- link: function link(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- urlPrefix = formatterParams.urlPrefix || "",
- download = formatterParams.download,
- label = value,
- el = document.createElement("a"),
- data;
-
- if (formatterParams.labelField) {
- data = cell.getData();
- label = data[formatterParams.labelField];
- }
-
- if (formatterParams.label) {
- switch (_typeof(formatterParams.label)) {
- case "string":
- label = formatterParams.label;
- break;
-
- case "function":
- label = formatterParams.label(cell);
- break;
- }
- }
-
- if (label) {
- if (formatterParams.urlField) {
- data = cell.getData();
- value = data[formatterParams.urlField];
- }
-
- if (formatterParams.url) {
- switch (_typeof(formatterParams.url)) {
- case "string":
- value = formatterParams.url;
- break;
-
- case "function":
- value = formatterParams.url(cell);
- break;
- }
- }
-
- el.setAttribute("href", urlPrefix + value);
-
- if (formatterParams.target) {
- el.setAttribute("target", formatterParams.target);
- }
-
- if (formatterParams.download) {
-
- if (typeof download == "function") {
- download = download(cell);
- } else {
- download = download === true ? "" : download;
- }
-
- el.setAttribute("download", download);
- }
-
- el.innerHTML = this.emptyToSpace(this.sanitizeHTML(label));
-
- return el;
- } else {
- return " ";
- }
- },
-
- //image element
- image: function image(cell, formatterParams, onRendered) {
- var el = document.createElement("img");
- el.setAttribute("src", cell.getValue());
-
- switch (_typeof(formatterParams.height)) {
- case "number":
- el.style.height = formatterParams.height + "px";
- break;
-
- case "string":
- el.style.height = formatterParams.height;
- break;
- }
-
- switch (_typeof(formatterParams.width)) {
- case "number":
- el.style.width = formatterParams.width + "px";
- break;
-
- case "string":
- el.style.width = formatterParams.width;
- break;
- }
-
- el.addEventListener("load", function () {
- cell.getRow().normalizeHeight();
- });
-
- return el;
- },
-
- //tick or cross
- tickCross: function tickCross(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- empty = formatterParams.allowEmpty,
- truthy = formatterParams.allowTruthy,
- tick = typeof formatterParams.tickElement !== "undefined" ? formatterParams.tickElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',
- cross = typeof formatterParams.crossElement !== "undefined" ? formatterParams.crossElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
-
- if (truthy && value || value === true || value === "true" || value === "True" || value === 1 || value === "1") {
- element.setAttribute("aria-checked", true);
- return tick || "";
- } else {
- if (empty && (value === "null" || value === "" || value === null || typeof value === "undefined")) {
- element.setAttribute("aria-checked", "mixed");
- return "";
- } else {
- element.setAttribute("aria-checked", false);
- return cross || "";
- }
- }
- },
-
- datetime: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var outputFormat = formatterParams.outputFormat || "DD/MM/YYYY hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- return formatterParams.timezone ? newDatetime.tz(formatterParams.timezone).format(outputFormat) : newDatetime.format(outputFormat);
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- datetimediff: function datetime(cell, formatterParams, onRendered) {
- var inputFormat = formatterParams.inputFormat || "YYYY-MM-DD hh:mm:ss";
- var invalid = typeof formatterParams.invalidPlaceholder !== "undefined" ? formatterParams.invalidPlaceholder : "";
- var suffix = typeof formatterParams.suffix !== "undefined" ? formatterParams.suffix : false;
- var unit = typeof formatterParams.unit !== "undefined" ? formatterParams.unit : undefined;
- var humanize = typeof formatterParams.humanize !== "undefined" ? formatterParams.humanize : false;
- var date = typeof formatterParams.date !== "undefined" ? formatterParams.date : moment();
- var value = cell.getValue();
-
- var newDatetime = moment(value, inputFormat);
-
- if (newDatetime.isValid()) {
- if (humanize) {
- return moment.duration(newDatetime.diff(date)).humanize(suffix);
- } else {
- return newDatetime.diff(date, unit) + (suffix ? " " + suffix : "");
- }
- } else {
-
- if (invalid === true) {
- return value;
- } else if (typeof invalid === "function") {
- return invalid(value);
- } else {
- return invalid;
- }
- }
- },
-
- //select
- lookup: function lookup(cell, formatterParams, onRendered) {
- var value = cell.getValue();
-
- if (typeof formatterParams[value] === "undefined") {
- console.warn('Missing display value for ' + value);
- return value;
- }
-
- return formatterParams[value];
- },
-
- //star rating
- star: function star(cell, formatterParams, onRendered) {
- var value = cell.getValue(),
- element = cell.getElement(),
- maxStars = formatterParams && formatterParams.stars ? formatterParams.stars : 5,
- stars = document.createElement("span"),
- star = document.createElementNS('http://www.w3.org/2000/svg', "svg"),
- starActive = '<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',
- starInactive = '<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>';
-
- //style stars holder
- stars.style.verticalAlign = "middle";
-
- //style star
- star.setAttribute("width", "14");
- star.setAttribute("height", "14");
- star.setAttribute("viewBox", "0 0 512 512");
- star.setAttribute("xml:space", "preserve");
- star.style.padding = "0 1px";
-
- value = value && !isNaN(value) ? parseInt(value) : 0;
-
- value = Math.max(0, Math.min(value, maxStars));
-
- for (var i = 1; i <= maxStars; i++) {
- var nextStar = star.cloneNode(true);
- nextStar.innerHTML = i <= value ? starActive : starInactive;
-
- stars.appendChild(nextStar);
- }
-
- element.style.whiteSpace = "nowrap";
- element.style.overflow = "hidden";
- element.style.textOverflow = "ellipsis";
-
- element.setAttribute("aria-label", value);
-
- return stars;
- },
-
- traffic: function traffic(cell, formatterParams, onRendered) {
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- el = document.createElement("span"),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- colors = formatterParams && typeof formatterParams.color !== "undefined" ? formatterParams.color : ["red", "orange", "green"],
- color = "#666666",
- percent,
- percentValue;
-
- if (isNaN(value) || typeof cell.getValue() === "undefined") {
- return;
- }
-
- el.classList.add("tabulator-traffic-light");
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set color
- switch (typeof colors === 'undefined' ? 'undefined' : _typeof(colors)) {
- case "string":
- color = colors;
- break;
- case "function":
- color = colors(value);
- break;
- case "object":
- if (Array.isArray(colors)) {
- var unit = 100 / colors.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, colors.length - 1);
- index = Math.max(index, 0);
- color = colors[index];
- break;
- }
- }
-
- el.style.backgroundColor = color;
-
- return el;
- },
-
- //progress bar
- progress: function progress(cell, formatterParams, onRendered) {
- //progress bar
- var value = this.sanitizeHTML(cell.getValue()) || 0,
- element = cell.getElement(),
- max = formatterParams && formatterParams.max ? formatterParams.max : 100,
- min = formatterParams && formatterParams.min ? formatterParams.min : 0,
- legendAlign = formatterParams && formatterParams.legendAlign ? formatterParams.legendAlign : "center",
- percent,
- percentValue,
- color,
- legend,
- legendColor,
- top,
- left,
- right,
- bottom;
-
- //make sure value is in range
- percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
- percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
-
- //workout percentage
- percent = (max - min) / 100;
- percentValue = Math.round((percentValue - min) / percent);
-
- //set bar color
- switch (_typeof(formatterParams.color)) {
- case "string":
- color = formatterParams.color;
- break;
- case "function":
- color = formatterParams.color(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.color)) {
- var unit = 100 / formatterParams.color.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.color.length - 1);
- index = Math.max(index, 0);
- color = formatterParams.color[index];
- break;
- }
- default:
- color = "#2DC214";
- }
-
- //generate legend
- switch (_typeof(formatterParams.legend)) {
- case "string":
- legend = formatterParams.legend;
- break;
- case "function":
- legend = formatterParams.legend(value);
- break;
- case "boolean":
- legend = value;
- break;
- default:
- legend = false;
- }
-
- //set legend color
- switch (_typeof(formatterParams.legendColor)) {
- case "string":
- legendColor = formatterParams.legendColor;
- break;
- case "function":
- legendColor = formatterParams.legendColor(value);
- break;
- case "object":
- if (Array.isArray(formatterParams.legendColor)) {
- var unit = 100 / formatterParams.legendColor.length;
- var index = Math.floor(percentValue / unit);
-
- index = Math.min(index, formatterParams.legendColor.length - 1);
- index = Math.max(index, 0);
- legendColor = formatterParams.legendColor[index];
- }
- break;
- default:
- legendColor = "#000";
- }
-
- element.style.minWidth = "30px";
- element.style.position = "relative";
-
- element.setAttribute("aria-label", percentValue);
-
- var barEl = document.createElement("div");
- barEl.style.display = "inline-block";
- barEl.style.position = "relative";
- barEl.style.width = percentValue + "%";
- barEl.style.backgroundColor = color;
- barEl.style.height = "100%";
-
- barEl.setAttribute('data-max', max);
- barEl.setAttribute('data-min', min);
-
- if (legend) {
- var legendEl = document.createElement("div");
- legendEl.style.position = "absolute";
- legendEl.style.top = "4px";
- legendEl.style.left = 0;
- legendEl.style.textAlign = legendAlign;
- legendEl.style.width = "100%";
- legendEl.style.color = legendColor;
- legendEl.innerHTML = legend;
- }
-
- onRendered(function () {
-
- //handle custom element needed if formatter is to be included in printed/downloaded output
- if (!(cell instanceof CellComponent)) {
- var holderEl = document.createElement("div");
- holderEl.style.position = "absolute";
- holderEl.style.top = "4px";
- holderEl.style.bottom = "4px";
- holderEl.style.left = "4px";
- holderEl.style.right = "4px";
-
- element.appendChild(holderEl);
-
- element = holderEl;
- }
-
- element.appendChild(barEl);
-
- if (legend) {
- element.appendChild(legendEl);
- }
- });
-
- return "";
- },
-
- //background color
- color: function color(cell, formatterParams, onRendered) {
- cell.getElement().style.backgroundColor = this.sanitizeHTML(cell.getValue());
- return "";
- },
-
- //tick icon
- buttonTick: function buttonTick(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>';
- },
-
- //cross icon
- buttonCross: function buttonCross(cell, formatterParams, onRendered) {
- return '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
- },
-
- //current row number
- rownum: function rownum(cell, formatterParams, onRendered) {
- return this.table.rowManager.activeRows.indexOf(cell.getRow()._getSelf()) + 1;
- },
-
- //row handle
- handle: function handle(cell, formatterParams, onRendered) {
- cell.getElement().classList.add("tabulator-row-handle");
- return "<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>";
- },
-
- responsiveCollapse: function responsiveCollapse(cell, formatterParams, onRendered) {
- var self = this,
- open = false,
- el = document.createElement("div"),
- config = cell.getRow()._row.modules.responsiveLayout;
-
- el.classList.add("tabulator-responsive-collapse-toggle");
- el.innerHTML = "<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>";
-
- cell.getElement().classList.add("tabulator-row-handle");
-
- function toggleList(isOpen) {
- var collapseEl = config.element;
-
- config.open = isOpen;
-
- if (collapseEl) {
-
- if (config.open) {
- el.classList.add("open");
- collapseEl.style.display = '';
- } else {
- el.classList.remove("open");
- collapseEl.style.display = 'none';
- }
- }
- }
-
- el.addEventListener("click", function (e) {
- e.stopImmediatePropagation();
- toggleList(!config.open);
- });
-
- toggleList(config.open);
-
- return el;
- },
-
- rowSelection: function rowSelection(cell) {
- var _this54 = this;
-
- var checkbox = document.createElement("input");
-
- checkbox.type = 'checkbox';
-
- if (this.table.modExists("selectRow", true)) {
-
- checkbox.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- if (typeof cell.getRow == 'function') {
- var row = cell.getRow();
-
- checkbox.addEventListener("change", function (e) {
- row.toggleSelect();
- });
-
- checkbox.checked = row.isSelected();
- this.table.modules.selectRow.registerRowSelectCheckbox(row, checkbox);
- } else {
- checkbox.addEventListener("change", function (e) {
- if (_this54.table.modules.selectRow.selectedRows.length) {
- _this54.table.deselectRow();
- } else {
- _this54.table.selectRow();
- }
- });
-
- this.table.modules.selectRow.registerHeaderSelectCheckbox(checkbox);
- }
- }
- return checkbox;
- }
- };
-
- Tabulator.prototype.registerModule("format", Format);
-
- var FrozenColumns = function FrozenColumns(table) {
- this.table = table; //hold Tabulator object
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightPadding = 0;
- this.initializationMode = "left";
- this.active = false;
- this.scrollEndTimer = false;
- };
-
- //reset initial state
- FrozenColumns.prototype.reset = function () {
- this.initializationMode = "left";
- this.leftColumns = [];
- this.rightColumns = [];
- this.leftMargin = 0;
- this.rightMargin = 0;
- this.rightMargin = 0;
- this.active = false;
-
- this.table.columnManager.headersElement.style.marginLeft = 0;
- this.table.columnManager.element.style.paddingRight = 0;
- };
-
- //initialize specific column
- FrozenColumns.prototype.initializeColumn = function (column) {
- var config = { margin: 0, edge: false };
-
- if (!column.isGroup) {
-
- if (this.frozenCheck(column)) {
-
- config.position = this.initializationMode;
-
- if (this.initializationMode == "left") {
- this.leftColumns.push(column);
- } else {
- this.rightColumns.unshift(column);
- }
-
- this.active = true;
-
- column.modules.frozen = config;
- } else {
- this.initializationMode = "right";
- }
- }
- };
-
- FrozenColumns.prototype.frozenCheck = function (column) {
- var frozen = false;
-
- if (column.parent.isGroup && column.definition.frozen) {
- console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups");
- }
-
- if (column.parent.isGroup) {
- return this.frozenCheck(column.parent);
- } else {
- return column.definition.frozen;
- }
-
- return frozen;
- };
-
- //quick layout to smooth horizontal scrolling
- FrozenColumns.prototype.scrollHorizontal = function () {
- var _this55 = this;
-
- var rows;
-
- if (this.active) {
- clearTimeout(this.scrollEndTimer);
-
- //layout all rows after scroll is complete
- this.scrollEndTimer = setTimeout(function () {
- _this55.layout();
- }, 100);
-
- rows = this.table.rowManager.getVisibleRows();
-
- this.calcMargins();
-
- this.layoutColumnPosition();
-
- this.layoutCalcRows();
-
- rows.forEach(function (row) {
- if (row.type === "row") {
- _this55.layoutRow(row);
- }
- });
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
- };
-
- //calculate margins for rows
- FrozenColumns.prototype.calcMargins = function () {
- this.leftMargin = this._calcSpace(this.leftColumns, this.leftColumns.length) + "px";
- this.table.columnManager.headersElement.style.marginLeft = this.leftMargin;
-
- this.rightMargin = this._calcSpace(this.rightColumns, this.rightColumns.length) + "px";
- this.table.columnManager.element.style.paddingRight = this.rightMargin;
-
- //calculate right frozen columns
- this.rightPadding = this.table.rowManager.element.clientWidth + this.table.columnManager.scrollLeft;
- };
-
- //layout calculation rows
- FrozenColumns.prototype.layoutCalcRows = function () {
- if (this.table.modExists("columnCalcs")) {
- if (this.table.modules.columnCalcs.topInitialized && this.table.modules.columnCalcs.topRow) {
- this.layoutRow(this.table.modules.columnCalcs.topRow);
- }
- if (this.table.modules.columnCalcs.botInitialized && this.table.modules.columnCalcs.botRow) {
- this.layoutRow(this.table.modules.columnCalcs.botRow);
- }
- }
- };
-
- //calculate column positions and layout headers
- FrozenColumns.prototype.layoutColumnPosition = function (allCells) {
- var _this56 = this;
-
- var leftParents = [];
-
- this.leftColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this56._calcSpace(_this56.leftColumns, i) + _this56.table.columnManager.scrollLeft + "px";
-
- if (i == _this56.leftColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- var parentEl = _this56.getColGroupParentElement(column);
- if (!leftParents.includes(parentEl)) {
- _this56.layoutElement(parentEl, column);
- leftParents.push(parentEl);
- }
-
- if (column.modules.frozen.edge) {
- parentEl.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- } else {
- _this56.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this56.layoutElement(cell.getElement(), column);
- });
- }
- });
-
- this.rightColumns.forEach(function (column, i) {
- column.modules.frozen.margin = _this56.rightPadding - _this56._calcSpace(_this56.rightColumns, i + 1) + "px";
-
- if (i == _this56.rightColumns.length - 1) {
- column.modules.frozen.edge = true;
- } else {
- column.modules.frozen.edge = false;
- }
-
- if (column.parent.isGroup) {
- _this56.layoutElement(_this56.getColGroupParentElement(column), column);
- } else {
- _this56.layoutElement(column.getElement(), column);
- }
-
- if (allCells) {
- column.cells.forEach(function (cell) {
- _this56.layoutElement(cell.getElement(), column);
- });
- }
- });
- };
-
- FrozenColumns.prototype.getColGroupParentElement = function (column) {
- return column.parent.isGroup ? this.getColGroupParentElement(column.parent) : column.getElement();
- };
-
- //layout columns appropropriatly
- FrozenColumns.prototype.layout = function () {
- var self = this,
- rightMargin = 0;
-
- if (self.active) {
-
- //calculate row padding
- this.calcMargins();
-
- // self.table.rowManager.activeRows.forEach(function(row){
- // self.layoutRow(row);
- // });
-
- // if(self.table.options.dataTree){
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row") {
- self.layoutRow(row);
- }
- });
- // }
-
- this.layoutCalcRows();
-
- //calculate left columns
- this.layoutColumnPosition(true);
-
- // if(tableHolder.scrollHeight > tableHolder.clientHeight){
- // rightMargin -= tableHolder.offsetWidth - tableHolder.clientWidth;
- // }
-
- this.table.rowManager.tableElement.style.marginRight = this.rightMargin;
- }
- };
-
- FrozenColumns.prototype.layoutRow = function (row) {
- var _this57 = this;
-
- var rowEl = row.getElement();
-
- rowEl.style.paddingLeft = this.leftMargin;
- // rowEl.style.paddingRight = this.rightMargin + "px";
-
- this.leftColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this57.layoutElement(cell.getElement(), column);
- }
- });
-
- this.rightColumns.forEach(function (column) {
- var cell = row.getCell(column);
-
- if (cell) {
- _this57.layoutElement(cell.getElement(), column);
- }
- });
- };
-
- FrozenColumns.prototype.layoutElement = function (element, column) {
-
- if (column.modules.frozen) {
- element.style.position = "absolute";
- element.style.left = column.modules.frozen.margin;
-
- element.classList.add("tabulator-frozen");
-
- if (column.modules.frozen.edge) {
- element.classList.add("tabulator-frozen-" + column.modules.frozen.position);
- }
- }
- };
-
- FrozenColumns.prototype._calcSpace = function (columns, index) {
- var width = 0;
-
- for (var _i8 = 0; _i8 < index; _i8++) {
- if (columns[_i8].visible) {
- width += columns[_i8].getWidth();
- }
- }
-
- return width;
- };
-
- Tabulator.prototype.registerModule("frozenColumns", FrozenColumns);
- var FrozenRows = function FrozenRows(table) {
- this.table = table; //hold Tabulator object
- this.topElement = document.createElement("div");
- this.rows = [];
- this.displayIndex = 0; //index in display pipeline
- };
-
- FrozenRows.prototype.initialize = function () {
- this.rows = [];
-
- this.topElement.classList.add("tabulator-frozen-rows-holder");
-
- // this.table.columnManager.element.append(this.topElement);
- this.table.columnManager.getElement().insertBefore(this.topElement, this.table.columnManager.headersElement.nextSibling);
- };
-
- FrozenRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- FrozenRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- FrozenRows.prototype.isFrozen = function () {
- return !!this.rows.length;
- };
-
- //filter frozen rows out of display data
- FrozenRows.prototype.getRows = function (rows) {
- var self = this,
- frozen = [],
- output = rows.slice(0);
-
- this.rows.forEach(function (row) {
- var index = output.indexOf(row);
-
- if (index > -1) {
- output.splice(index, 1);
- }
- });
-
- return output;
- };
-
- FrozenRows.prototype.freezeRow = function (row) {
- if (!row.modules.frozen) {
- row.modules.frozen = true;
- this.topElement.appendChild(row.getElement());
- row.initialize();
- row.normalizeHeight();
- this.table.rowManager.adjustTableSize();
-
- this.rows.push(row);
-
- this.table.rowManager.refreshActiveData("display");
-
- this.styleRows();
- } else {
- console.warn("Freeze Error - Row is already frozen");
- }
- };
-
- FrozenRows.prototype.unfreezeRow = function (row) {
- var index = this.rows.indexOf(row);
-
- if (row.modules.frozen) {
-
- row.modules.frozen = false;
-
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
-
- this.table.rowManager.adjustTableSize();
-
- this.rows.splice(index, 1);
-
- this.table.rowManager.refreshActiveData("display");
-
- if (this.rows.length) {
- this.styleRows();
- }
- } else {
- console.warn("Freeze Error - Row is already unfrozen");
- }
- };
-
- FrozenRows.prototype.styleRows = function (row) {
- var self = this;
-
- this.rows.forEach(function (row, i) {
- self.table.rowManager.styleRow(row, i);
- });
- };
-
- Tabulator.prototype.registerModule("frozenRows", FrozenRows);
-
- //public group object
- var GroupComponent = function GroupComponent(group) {
- this._group = group;
- this.type = "GroupComponent";
- };
-
- GroupComponent.prototype.getKey = function () {
- return this._group.key;
- };
-
- GroupComponent.prototype.getField = function () {
- return this._group.field;
- };
-
- GroupComponent.prototype.getElement = function () {
- return this._group.element;
- };
-
- GroupComponent.prototype.getRows = function () {
- return this._group.getRows(true);
- };
-
- GroupComponent.prototype.getSubGroups = function () {
- return this._group.getSubGroups(true);
- };
-
- GroupComponent.prototype.getParentGroup = function () {
- return this._group.parent ? this._group.parent.getComponent() : false;
- };
-
- GroupComponent.prototype.getVisibility = function () {
- console.warn("getVisibility function is deprecated, you should now use the isVisible function");
- return this._group.visible;
- };
-
- GroupComponent.prototype.isVisible = function () {
- return this._group.visible;
- };
-
- GroupComponent.prototype.show = function () {
- this._group.show();
- };
-
- GroupComponent.prototype.hide = function () {
- this._group.hide();
- };
-
- GroupComponent.prototype.toggle = function () {
- this._group.toggleVisibility();
- };
-
- GroupComponent.prototype._getSelf = function () {
- return this._group;
- };
-
- GroupComponent.prototype.getTable = function () {
- return this._group.groupManager.table;
- };
-
- //////////////////////////////////////////////////
- //////////////// Group Functions /////////////////
- //////////////////////////////////////////////////
-
- var Group = function Group(groupManager, parent, level, key, field, generator, oldGroup) {
-
- this.groupManager = groupManager;
- this.parent = parent;
- this.key = key;
- this.level = level;
- this.field = field;
- this.hasSubGroups = level < groupManager.groupIDLookups.length - 1;
- this.addRow = this.hasSubGroups ? this._addRowToGroup : this._addRow;
- this.type = "group"; //type of element
- this.old = oldGroup;
- this.rows = [];
- this.groups = [];
- this.groupList = [];
- this.generator = generator;
- this.elementContents = false;
- this.height = 0;
- this.outerHeight = 0;
- this.initialized = false;
- this.calcs = {};
- this.initialized = false;
- this.modules = {};
- this.arrowElement = false;
-
- this.visible = oldGroup ? oldGroup.visible : typeof groupManager.startOpen[level] !== "undefined" ? groupManager.startOpen[level] : groupManager.startOpen[0];
-
- this.component = null;
-
- this.createElements();
- this.addBindings();
-
- this.createValueGroups();
- };
-
- Group.prototype.wipe = function () {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
- } else {
- this.element = false;
- this.arrowElement = false;
- this.elementContents = false;
- }
- };
-
- Group.prototype.createElements = function () {
- var arrow = document.createElement("div");
- arrow.classList.add("tabulator-arrow");
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-row");
- this.element.classList.add("tabulator-group");
- this.element.classList.add("tabulator-group-level-" + this.level);
- this.element.setAttribute("role", "rowgroup");
-
- this.arrowElement = document.createElement("div");
- this.arrowElement.classList.add("tabulator-group-toggle");
- this.arrowElement.appendChild(arrow);
-
- //setup movable rows
- if (this.groupManager.table.options.movableRows !== false && this.groupManager.table.modExists("moveRow")) {
- this.groupManager.table.modules.moveRow.initializeGroupHeader(this);
- }
- };
-
- Group.prototype.createValueGroups = function () {
- var _this58 = this;
-
- var level = this.level + 1;
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- this.groupManager.allowedValues[level].forEach(function (value) {
- _this58._createGroup(value, level);
- });
- }
- };
-
- Group.prototype.addBindings = function () {
- var self = this,
- dblTap,
- tapHold,
- tap,
- toggleElement;
-
- //handle group click events
- if (self.groupManager.table.options.groupClick) {
- self.element.addEventListener("click", function (e) {
- self.groupManager.table.options.groupClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupDblClick) {
- self.element.addEventListener("dblclick", function (e) {
- self.groupManager.table.options.groupDblClick.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupContext) {
- self.element.addEventListener("contextmenu", function (e) {
- self.groupManager.table.options.groupContext.call(self.groupManager.table, e, self.getComponent());
- });
- }
-
- if (self.groupManager.table.options.groupContextMenu && self.groupManager.table.modExists("menu")) {
- self.groupManager.table.modules.menu.initializeGroup.call(self.groupManager.table.modules.menu, self);
- }
-
- if (self.groupManager.table.options.groupTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- self.groupManager.table.options.groupTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.groupManager.table.options.groupDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- self.groupManager.table.options.groupDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.groupManager.table.options.groupTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- self.groupManager.table.options.groupTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-
- if (self.groupManager.table.options.groupToggleElement) {
- toggleElement = self.groupManager.table.options.groupToggleElement == "arrow" ? self.arrowElement : self.element;
-
- toggleElement.addEventListener("click", function (e) {
- e.stopPropagation();
- e.stopImmediatePropagation();
- self.toggleVisibility();
- });
- }
- };
-
- Group.prototype._createGroup = function (groupID, level) {
- var groupKey = level + "_" + groupID;
- var group = new Group(this.groupManager, this, level, groupID, this.groupManager.groupIDLookups[level].field, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupKey] : false);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
- };
-
- Group.prototype._addRowToGroup = function (row) {
-
- var level = this.level + 1;
-
- if (this.hasSubGroups) {
- var groupID = this.groupManager.groupIDLookups[level].func(row.getData()),
- groupKey = level + "_" + groupID;
-
- if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
- } else {
- if (!this.groups[groupKey]) {
- this._createGroup(groupID, level);
- }
-
- this.groups[groupKey].addRow(row);
- }
- }
- };
-
- Group.prototype._addRow = function (row) {
- this.rows.push(row);
- row.modules.group = this;
- };
-
- Group.prototype.insertRow = function (row, to, after) {
- var data = this.conformRowData({});
-
- row.updateData(data);
-
- var toIndex = this.rows.indexOf(to);
-
- if (toIndex > -1) {
- if (after) {
- this.rows.splice(toIndex + 1, 0, row);
- } else {
- this.rows.splice(toIndex, 0, row);
- }
- } else {
- if (after) {
- this.rows.push(row);
- } else {
- this.rows.unshift(row);
- }
- }
-
- row.modules.group = this;
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
- };
-
- Group.prototype.scrollHeader = function (left) {
- this.arrowElement.style.marginLeft = left;
-
- this.groupList.forEach(function (child) {
- child.scrollHeader(left);
- });
- };
-
- Group.prototype.getRowIndex = function (row) {};
-
- //update row data to match grouping contraints
- Group.prototype.conformRowData = function (data) {
- if (this.field) {
- data[this.field] = this.key;
- } else {
- console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function");
- }
-
- if (this.parent) {
- data = this.parent.conformRowData(data);
- }
-
- return data;
- };
-
- Group.prototype.removeRow = function (row) {
- var index = this.rows.indexOf(row);
- var el = row.getElement();
-
- if (index > -1) {
- this.rows.splice(index, 1);
- }
-
- if (!this.groupManager.table.options.groupValues && !this.rows.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
-
- this.groupManager.updateGroupRows(true);
- } else {
-
- if (el.parentNode) {
- el.parentNode.removeChild(el);
- }
-
- this.generateGroupHeaderContents();
-
- if (this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.options.columnCalcs != "table") {
- this.groupManager.table.modules.columnCalcs.recalcGroup(this);
- }
- }
- };
-
- Group.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
-
- if (!this.groupList.length) {
- if (this.parent) {
- this.parent.removeGroup(this);
- } else {
- this.groupManager.removeGroup(this);
- }
- }
- }
- };
-
- Group.prototype.getHeadersAndRows = function (noCalc) {
- var output = [];
-
- output.push(this);
-
- this._visSet();
-
- if (this.visible) {
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows(noCalc));
- });
- } else {
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
-
- output = output.concat(this.rows);
-
- if (!noCalc && this.groupManager.table.options.columnCalcs != "table" && this.groupManager.table.modExists("columnCalcs") && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- } else {
- if (!this.groupList.length && this.groupManager.table.options.columnCalcs != "table") {
-
- if (this.groupManager.table.modExists("columnCalcs")) {
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasTopCalcs()) {
- if (this.calcs.top) {
- this.calcs.top.detachElement();
- this.calcs.top.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.top = this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows);
- output.push(this.calcs.top);
- }
- }
-
- if (!noCalc && this.groupManager.table.modules.columnCalcs.hasBottomCalcs()) {
- if (this.calcs.bottom) {
- this.calcs.bottom.detachElement();
- this.calcs.bottom.deleteCells();
- }
-
- if (this.groupManager.table.options.groupClosedShowCalcs) {
- this.calcs.bottom = this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows);
- output.push(this.calcs.bottom);
- }
- }
- }
- }
- }
-
- return output;
- };
-
- Group.prototype.getData = function (visible, transform) {
- var self = this,
- output = [];
-
- this._visSet();
-
- if (!visible || visible && this.visible) {
- this.rows.forEach(function (row) {
- output.push(row.getData(transform || "data"));
- });
- }
-
- return output;
- };
-
- // Group.prototype.getRows = function(){
- // this._visSet();
-
- // return this.visible ? this.rows : [];
- // };
-
- Group.prototype.getRowCount = function () {
- var count = 0;
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- count += group.getRowCount();
- });
- } else {
- count = this.rows.length;
- }
- return count;
- };
-
- Group.prototype.toggleVisibility = function () {
- if (this.visible) {
- this.hide();
- } else {
- this.show();
- }
- };
-
- Group.prototype.hide = function () {
- this.visible = false;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.remove("tabulator-group-visible");
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
-
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- row.detachElement();
- });
- });
- } else {
- this.rows.forEach(function (row) {
- var rowEl = row.getElement();
- rowEl.parentNode.removeChild(rowEl);
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), false);
- };
-
- Group.prototype.show = function () {
- var self = this;
-
- self.visible = true;
-
- if (this.groupManager.table.rowManager.getRenderMode() == "classic" && !this.groupManager.table.options.pagination) {
-
- this.element.classList.add("tabulator-group-visible");
-
- var prev = self.getElement();
-
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var rows = group.getHeadersAndRows();
-
- rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- });
- } else {
- self.rows.forEach(function (row) {
- var rowEl = row.getElement();
- prev.parentNode.insertBefore(rowEl, prev.nextSibling);
- row.initialize();
- prev = rowEl;
- });
- }
-
- this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(), this.groupManager.getDisplayIndex());
-
- this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth();
- } else {
- this.groupManager.updateGroupRows(true);
- }
-
- this.groupManager.table.options.groupVisibilityChanged.call(this.table, this.getComponent(), true);
- };
-
- Group.prototype._visSet = function () {
- var data = [];
-
- if (typeof this.visible == "function") {
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.visible = this.visible(this.key, this.getRowCount(), data, this.getComponent());
- }
- };
-
- Group.prototype.getRowGroup = function (row) {
- var match = false;
- if (this.groupList.length) {
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
- } else {
- if (this.rows.find(function (item) {
- return item === row;
- })) {
- match = this;
- }
- }
-
- return match;
- };
-
- Group.prototype.getSubGroups = function (component) {
- var output = [];
-
- this.groupList.forEach(function (child) {
- output.push(component ? child.getComponent() : child);
- });
-
- return output;
- };
-
- Group.prototype.getRows = function (compoment) {
- var output = [];
-
- this.rows.forEach(function (row) {
- output.push(compoment ? row.getComponent() : row);
- });
-
- return output;
- };
-
- Group.prototype.generateGroupHeaderContents = function () {
- var data = [];
-
- this.rows.forEach(function (row) {
- data.push(row.getData());
- });
-
- this.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent());
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }if (typeof this.elementContents === "string") {
- this.element.innerHTML = this.elementContents;
- } else {
- this.element.appendChild(this.elementContents);
- }
-
- this.element.insertBefore(this.arrowElement, this.element.firstChild);
- };
-
- ////////////// Standard Row Functions //////////////
-
- Group.prototype.getElement = function () {
- this.addBindingsd = false;
-
- this._visSet();
-
- if (this.visible) {
- this.element.classList.add("tabulator-group-visible");
- } else {
- this.element.classList.remove("tabulator-group-visible");
- }
-
- for (var i = 0; i < this.element.childNodes.length; ++i) {
- this.element.childNodes[i].parentNode.removeChild(this.element.childNodes[i]);
- }
-
- this.generateGroupHeaderContents();
-
- // this.addBindings();
-
- return this.element;
- };
-
- Group.prototype.detachElement = function () {
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
- };
-
- //normalize the height of elements in the row
- Group.prototype.normalizeHeight = function () {
- this.setHeight(this.element.clientHeight);
- };
-
- Group.prototype.initialize = function (force) {
- if (!this.initialized || force) {
- this.normalizeHeight();
- this.initialized = true;
- }
- };
-
- Group.prototype.reinitialize = function () {
- this.initialized = false;
- this.height = 0;
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
- this.initialize(true);
- }
- };
-
- Group.prototype.setHeight = function (height) {
- if (this.height != height) {
- this.height = height;
- this.outerHeight = this.element.offsetHeight;
- }
- };
-
- //return rows outer height
- Group.prototype.getHeight = function () {
- return this.outerHeight;
- };
-
- Group.prototype.getGroup = function () {
- return this;
- };
-
- Group.prototype.reinitializeHeight = function () {};
- Group.prototype.calcHeight = function () {};
- Group.prototype.setCellHeight = function () {};
- Group.prototype.clearCellHeight = function () {};
-
- //////////////// Object Generation /////////////////
- Group.prototype.getComponent = function () {
- if (!this.component) {
- this.component = new GroupComponent(this);
- }
-
- return this.component;
- };
-
- //////////////////////////////////////////////////
- ////////////// Group Row Extension ///////////////
- //////////////////////////////////////////////////
-
- var GroupRows = function GroupRows(table) {
-
- this.table = table; //hold Tabulator object
-
- this.groupIDLookups = false; //enable table grouping and set field to group by
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
- this.headerGenerator = [function () {
- return "";
- }];
- this.groupList = []; //ordered list of groups
- this.allowedValues = false;
- this.groups = {}; //hold row groups
- this.displayIndex = 0; //index in display pipeline
- };
-
- //initialize group configuration
- GroupRows.prototype.initialize = function () {
- var self = this,
- groupBy = self.table.options.groupBy,
- startOpen = self.table.options.groupStartOpen,
- groupHeader = self.table.options.groupHeader;
-
- this.allowedValues = self.table.options.groupValues;
-
- if (Array.isArray(groupBy) && Array.isArray(groupHeader) && groupBy.length > groupHeader.length) {
- console.warn("Error creating group headers, groupHeader array is shorter than groupBy array");
- }
-
- self.headerGenerator = [function () {
- return "";
- }];
- this.startOpen = [function () {
- return false;
- }]; //starting state of group
-
- self.table.modules.localize.bind("groups|item", function (langValue, lang) {
- self.headerGenerator[0] = function (value, count, data) {
- //header layout function
- return (typeof value === "undefined" ? "" : value) + "<span>(" + count + " " + (count === 1 ? langValue : lang.groups.items) + ")</span>";
- };
- });
-
- this.groupIDLookups = [];
-
- if (Array.isArray(groupBy) || groupBy) {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "table" && this.table.options.columnCalcs != "both") {
- this.table.modules.columnCalcs.removeCalcs();
- }
- } else {
- if (this.table.modExists("columnCalcs") && this.table.options.columnCalcs != "group") {
-
- var cols = this.table.columnManager.getRealColumns();
-
- cols.forEach(function (col) {
- if (col.definition.topCalc) {
- self.table.modules.columnCalcs.initializeTopRow();
- }
-
- if (col.definition.bottomCalc) {
- self.table.modules.columnCalcs.initializeBottomRow();
- }
- });
- }
- }
-
- if (!Array.isArray(groupBy)) {
- groupBy = [groupBy];
- }
-
- groupBy.forEach(function (group, i) {
- var lookupFunc, column;
-
- if (typeof group == "function") {
- lookupFunc = group;
- } else {
- column = self.table.columnManager.getColumnByField(group);
-
- if (column) {
- lookupFunc = function lookupFunc(data) {
- return column.getFieldValue(data);
- };
- } else {
- lookupFunc = function lookupFunc(data) {
- return data[group];
- };
- }
- }
-
- self.groupIDLookups.push({
- field: typeof group === "function" ? false : group,
- func: lookupFunc,
- values: self.allowedValues ? self.allowedValues[i] : false
- });
- });
-
- if (startOpen) {
-
- if (!Array.isArray(startOpen)) {
- startOpen = [startOpen];
- }
-
- startOpen.forEach(function (level) {
- level = typeof level == "function" ? level : function () {
- return true;
- };
- });
-
- self.startOpen = startOpen;
- }
-
- if (groupHeader) {
- self.headerGenerator = Array.isArray(groupHeader) ? groupHeader : [groupHeader];
- }
-
- this.initialized = true;
- };
-
- GroupRows.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- GroupRows.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- //return appropriate rows with group headers
- GroupRows.prototype.getRows = function (rows) {
- if (this.groupIDLookups.length) {
-
- this.table.options.dataGrouping.call(this.table);
-
- this.generateGroups(rows);
-
- if (this.table.options.dataGrouped) {
- this.table.options.dataGrouped.call(this.table, this.getGroups(true));
- }
-
- return this.updateGroupRows();
- } else {
- return rows.slice(0);
- }
- };
-
- GroupRows.prototype.getGroups = function (compoment) {
- var groupComponents = [];
-
- this.groupList.forEach(function (group) {
- groupComponents.push(compoment ? group.getComponent() : group);
- });
-
- return groupComponents;
- };
-
- GroupRows.prototype.getChildGroups = function (group) {
- var _this59 = this;
-
- var groupComponents = [];
-
- if (!group) {
- group = this;
- }
-
- group.groupList.forEach(function (child) {
- if (child.groupList.length) {
- groupComponents = groupComponents.concat(_this59.getChildGroups(child));
- } else {
- groupComponents.push(child);
- }
- });
-
- return groupComponents;
- };
-
- GroupRows.prototype.wipe = function () {
- this.groupList.forEach(function (group) {
- group.wipe();
- });
- };
-
- GroupRows.prototype.pullGroupListData = function (groupList) {
- var self = this;
- var groupListData = [];
-
- groupList.forEach(function (group) {
- var groupHeader = {};
- groupHeader.level = 0;
- groupHeader.rowCount = 0;
- groupHeader.headerContent = "";
- var childData = [];
-
- if (group.hasSubGroups) {
- childData = self.pullGroupListData(group.groupList);
-
- groupHeader.level = group.level;
- groupHeader.rowCount = childData.length - group.groupList.length; // data length minus number of sub-headers
- groupHeader.headerContent = group.generator(group.key, groupHeader.rowCount, group.rows, group);
-
- groupListData.push(groupHeader);
- groupListData = groupListData.concat(childData);
- } else {
- groupHeader.level = group.level;
- groupHeader.headerContent = group.generator(group.key, group.rows.length, group.rows, group);
- groupHeader.rowCount = group.getRows().length;
-
- groupListData.push(groupHeader);
-
- group.getRows().forEach(function (row) {
- groupListData.push(row.getData("data"));
- });
- }
- });
-
- return groupListData;
- };
-
- GroupRows.prototype.getGroupedData = function () {
-
- return this.pullGroupListData(this.groupList);
- };
-
- GroupRows.prototype.getRowGroup = function (row) {
- var match = false;
-
- this.groupList.forEach(function (group) {
- var result = group.getRowGroup(row);
-
- if (result) {
- match = result;
- }
- });
-
- return match;
- };
-
- GroupRows.prototype.countGroups = function () {
- return this.groupList.length;
- };
-
- GroupRows.prototype.generateGroups = function (rows) {
- var self = this,
- oldGroups = self.groups;
-
- self.groups = {};
- self.groupList = [];
-
- if (this.allowedValues && this.allowedValues[0]) {
- this.allowedValues[0].forEach(function (value) {
- self.createGroup(value, 0, oldGroups);
- });
-
- rows.forEach(function (row) {
- self.assignRowToExistingGroup(row, oldGroups);
- });
- } else {
- rows.forEach(function (row) {
- self.assignRowToGroup(row, oldGroups);
- });
- }
- };
-
- GroupRows.prototype.createGroup = function (groupID, level, oldGroups) {
- var groupKey = level + "_" + groupID,
- group;
-
- oldGroups = oldGroups || [];
-
- group = new Group(this, false, level, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupKey]);
-
- this.groups[groupKey] = group;
- this.groupList.push(group);
- };
-
- // GroupRows.prototype.assignRowToGroup = function(row, oldGroups){
- // var groupID = this.groupIDLookups[0].func(row.getData()),
- // groupKey = "0_" + groupID;
-
- // if(!this.groups[groupKey]){
- // this.createGroup(groupID, 0, oldGroups);
- // }
-
- // this.groups[groupKey].addRow(row);
- // };
-
- GroupRows.prototype.assignRowToExistingGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- groupKey = "0_" + groupID;
-
- if (this.groups[groupKey]) {
- this.groups[groupKey].addRow(row);
- }
- };
-
- GroupRows.prototype.assignRowToGroup = function (row, oldGroups) {
- var groupID = this.groupIDLookups[0].func(row.getData()),
- newGroupNeeded = !this.groups["0_" + groupID];
-
- if (newGroupNeeded) {
- this.createGroup(groupID, 0, oldGroups);
- }
-
- this.groups["0_" + groupID].addRow(row);
-
- return !newGroupNeeded;
- };
-
- GroupRows.prototype.updateGroupRows = function (force) {
- var self = this,
- output = [],
- oldRowCount;
-
- self.groupList.forEach(function (group) {
- output = output.concat(group.getHeadersAndRows());
- });
-
- //force update of table display
- if (force) {
-
- var displayIndex = self.table.rowManager.setDisplayRows(output, this.getDisplayIndex());
-
- if (displayIndex !== true) {
- this.setDisplayIndex(displayIndex);
- }
-
- self.table.rowManager.refreshActiveData("group", true, true);
- }
-
- return output;
- };
-
- GroupRows.prototype.scrollHeaders = function (left) {
- left = left + "px";
-
- this.groupList.forEach(function (group) {
- group.scrollHeader(left);
- });
- };
-
- GroupRows.prototype.removeGroup = function (group) {
- var groupKey = group.level + "_" + group.key,
- index;
-
- if (this.groups[groupKey]) {
- delete this.groups[groupKey];
-
- index = this.groupList.indexOf(group);
-
- if (index > -1) {
- this.groupList.splice(index, 1);
- }
- }
- };
-
- Tabulator.prototype.registerModule("groupRows", GroupRows);
- var History = function History(table) {
- this.table = table; //hold Tabulator object
-
- this.history = [];
- this.index = -1;
- };
-
- History.prototype.clear = function () {
- this.history = [];
- this.index = -1;
- };
-
- History.prototype.action = function (type, component, data) {
-
- this.history = this.history.slice(0, this.index + 1);
-
- this.history.push({
- type: type,
- component: component,
- data: data
- });
-
- this.index++;
- };
-
- History.prototype.getHistoryUndoSize = function () {
- return this.index + 1;
- };
-
- History.prototype.getHistoryRedoSize = function () {
- return this.history.length - (this.index + 1);
- };
-
- History.prototype.undo = function () {
-
- if (this.index > -1) {
- var action = this.history[this.index];
-
- this.undoers[action.type].call(this, action);
-
- this.index--;
-
- this.table.options.historyUndo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Undo Error - No more history to undo");
- return false;
- }
- };
-
- History.prototype.redo = function () {
- if (this.history.length - 1 > this.index) {
-
- this.index++;
-
- var action = this.history[this.index];
-
- this.redoers[action.type].call(this, action);
-
- this.table.options.historyRedo.call(this.table, action.type, action.component.getComponent(), action.data);
-
- return true;
- } else {
- console.warn("History Redo Error - No more history to redo");
- return false;
- }
- };
-
- History.prototype.undoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.oldValue);
- },
-
- rowAdd: function rowAdd(action) {
- action.component.deleteActual();
- },
-
- rowDelete: function rowDelete(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posFrom], !action.data.after);
- this.table.rowManager.redraw();
- }
- };
-
- History.prototype.redoers = {
- cellEdit: function cellEdit(action) {
- action.component.setValueProcessData(action.data.newValue);
- },
-
- rowAdd: function rowAdd(action) {
- var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- }
-
- this._rebindRow(action.component, newRow);
- },
-
- rowDelete: function rowDelete(action) {
- action.component.deleteActual();
- },
-
- rowMove: function rowMove(action) {
- this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.posTo], action.data.after);
- this.table.rowManager.redraw();
- }
- };
-
- //rebind rows to new element after deletion
- History.prototype._rebindRow = function (oldRow, newRow) {
- this.history.forEach(function (action) {
- if (action.component instanceof Row) {
- if (action.component === oldRow) {
- action.component = newRow;
- }
- } else if (action.component instanceof Cell) {
- if (action.component.row === oldRow) {
- var field = action.component.column.getField();
-
- if (field) {
- action.component = newRow.getCell(field);
- }
- }
- }
- });
- };
-
- Tabulator.prototype.registerModule("history", History);
- var HtmlTableImport = function HtmlTableImport(table) {
- this.table = table; //hold Tabulator object
- this.fieldIndex = [];
- this.hasIndex = false;
- };
-
- HtmlTableImport.prototype.parseTable = function () {
- var self = this,
- element = self.table.element,
- options = self.table.options,
- columns = options.columns,
- headers = element.getElementsByTagName("th"),
- rows = element.getElementsByTagName("tbody")[0],
- data = [],
- newTable;
-
- self.hasIndex = false;
-
- self.table.options.htmlImporting.call(this.table);
-
- rows = rows ? rows.getElementsByTagName("tr") : [];
-
- //check for tablator inline options
- self._extractOptions(element, options);
-
- if (headers.length) {
- self._extractHeaders(headers, rows);
- } else {
- self._generateBlankHeaders(headers, rows);
- }
-
- //iterate through table rows and build data set
- for (var index = 0; index < rows.length; index++) {
- var row = rows[index],
- cells = row.getElementsByTagName("td"),
- item = {};
-
- //create index if the dont exist in table
- if (!self.hasIndex) {
- item[options.index] = index;
- }
-
- for (var i = 0; i < cells.length; i++) {
- var cell = cells[i];
- if (typeof this.fieldIndex[i] !== "undefined") {
- item[this.fieldIndex[i]] = cell.innerHTML;
- }
- }
-
- //add row data to item
- data.push(item);
- }
-
- //create new element
- var newElement = document.createElement("div");
-
- //transfer attributes to new element
- var attributes = element.attributes;
-
- // loop through attributes and apply them on div
-
- for (var i in attributes) {
- if (_typeof(attributes[i]) == "object") {
- newElement.setAttribute(attributes[i].name, attributes[i].value);
- }
- }
-
- // replace table with div element
- element.parentNode.replaceChild(newElement, element);
-
- options.data = data;
-
- self.table.options.htmlImported.call(this.table);
-
- // // newElement.tabulator(options);
-
- this.table.element = newElement;
- };
-
- //extract tabulator attribute options
- HtmlTableImport.prototype._extractOptions = function (element, options, defaultOptions) {
- var attributes = element.attributes;
- var optionsArr = defaultOptions ? Object.assign([], defaultOptions) : Object.keys(options);
- var optionsList = {};
-
- optionsArr.forEach(function (item) {
- optionsList[item.toLowerCase()] = item;
- });
-
- for (var index in attributes) {
- var attrib = attributes[index];
- var name;
-
- if (attrib && (typeof attrib === 'undefined' ? 'undefined' : _typeof(attrib)) == "object" && attrib.name && attrib.name.indexOf("tabulator-") === 0) {
- name = attrib.name.replace("tabulator-", "");
-
- if (typeof optionsList[name] !== "undefined") {
- options[optionsList[name]] = this._attribValue(attrib.value);
- }
- }
- }
- };
-
- //get value of attribute
- HtmlTableImport.prototype._attribValue = function (value) {
- if (value === "true") {
- return true;
- }
-
- if (value === "false") {
- return false;
- }
-
- return value;
- };
-
- //find column if it has already been defined
- HtmlTableImport.prototype._findCol = function (title) {
- var match = this.table.options.columns.find(function (column) {
- return column.title === title;
- });
-
- return match || false;
- };
-
- //extract column from headers
- HtmlTableImport.prototype._extractHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- exists = false,
- col = this._findCol(header.textContent),
- width,
- attributes;
-
- if (col) {
- exists = true;
- } else {
- col = { title: header.textContent.trim() };
- }
-
- if (!col.field) {
- col.field = header.textContent.trim().toLowerCase().replace(" ", "_");
- }
-
- width = header.getAttribute("width");
-
- if (width && !col.width) {
- col.width = width;
- }
-
- //check for tablator inline options
- attributes = header.attributes;
-
- // //check for tablator inline options
- this._extractOptions(header, col, Column.prototype.defaultOptionList);
-
- this.fieldIndex[index] = col.field;
-
- if (col.field == this.table.options.index) {
- this.hasIndex = true;
- }
-
- if (!exists) {
- this.table.options.columns.push(col);
- }
- }
- };
-
- //generate blank headers
- HtmlTableImport.prototype._generateBlankHeaders = function (headers, rows) {
- for (var index = 0; index < headers.length; index++) {
- var header = headers[index],
- col = { title: "", field: "col" + index };
-
- this.fieldIndex[index] = col.field;
-
- var width = header.getAttribute("width");
-
- if (width) {
- col.width = width;
- }
-
- this.table.options.columns.push(col);
- }
- };
-
- Tabulator.prototype.registerModule("htmlTableImport", HtmlTableImport);
- var Keybindings = function Keybindings(table) {
- this.table = table; //hold Tabulator object
- this.watchKeys = null;
- this.pressedKeys = null;
- this.keyupBinding = false;
- this.keydownBinding = false;
- };
-
- Keybindings.prototype.initialize = function () {
- var bindings = this.table.options.keybindings,
- mergedBindings = {};
-
- this.watchKeys = {};
- this.pressedKeys = [];
-
- if (bindings !== false) {
-
- for (var key in this.bindings) {
- mergedBindings[key] = this.bindings[key];
- }
-
- if (Object.keys(bindings).length) {
-
- for (var _key in bindings) {
- mergedBindings[_key] = bindings[_key];
- }
- }
-
- this.mapBindings(mergedBindings);
- this.bindEvents();
- }
- };
-
- Keybindings.prototype.mapBindings = function (bindings) {
- var _this60 = this;
-
- var self = this;
-
- var _loop2 = function _loop2(key) {
-
- if (_this60.actions[key]) {
-
- if (bindings[key]) {
-
- if (_typeof(bindings[key]) !== "object") {
- bindings[key] = [bindings[key]];
- }
-
- bindings[key].forEach(function (binding) {
- self.mapBinding(key, binding);
- });
- }
- } else {
- console.warn("Key Binding Error - no such action:", key);
- }
- };
-
- for (var key in bindings) {
- _loop2(key);
- }
- };
-
- Keybindings.prototype.mapBinding = function (action, symbolsList) {
- var self = this;
-
- var binding = {
- action: this.actions[action],
- keys: [],
- ctrl: false,
- shift: false,
- meta: false
- };
-
- var symbols = symbolsList.toString().toLowerCase().split(" ").join("").split("+");
-
- symbols.forEach(function (symbol) {
- switch (symbol) {
- case "ctrl":
- binding.ctrl = true;
- break;
-
- case "shift":
- binding.shift = true;
- break;
-
- case "meta":
- binding.meta = true;
- break;
-
- default:
- symbol = parseInt(symbol);
- binding.keys.push(symbol);
-
- if (!self.watchKeys[symbol]) {
- self.watchKeys[symbol] = [];
- }
-
- self.watchKeys[symbol].push(binding);
- }
- });
- };
-
- Keybindings.prototype.bindEvents = function () {
- var self = this;
-
- this.keyupBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- self.pressedKeys.push(code);
-
- bindings.forEach(function (binding) {
- self.checkBinding(e, binding);
- });
- }
- };
-
- this.keydownBinding = function (e) {
- var code = e.keyCode;
- var bindings = self.watchKeys[code];
-
- if (bindings) {
-
- var index = self.pressedKeys.indexOf(code);
-
- if (index > -1) {
- self.pressedKeys.splice(index, 1);
- }
- }
- };
-
- this.table.element.addEventListener("keydown", this.keyupBinding);
-
- this.table.element.addEventListener("keyup", this.keydownBinding);
- };
-
- Keybindings.prototype.clearBindings = function () {
- if (this.keyupBinding) {
- this.table.element.removeEventListener("keydown", this.keyupBinding);
- }
-
- if (this.keydownBinding) {
- this.table.element.removeEventListener("keyup", this.keydownBinding);
- }
- };
-
- Keybindings.prototype.checkBinding = function (e, binding) {
- var self = this,
- match = true;
-
- if (e.ctrlKey == binding.ctrl && e.shiftKey == binding.shift && e.metaKey == binding.meta) {
- binding.keys.forEach(function (key) {
- var index = self.pressedKeys.indexOf(key);
-
- if (index == -1) {
- match = false;
- }
- });
-
- if (match) {
- binding.action.call(self, e);
- }
-
- return true;
- }
-
- return false;
- };
-
- //default bindings
- Keybindings.prototype.bindings = {
- navPrev: "shift + 9",
- navNext: 9,
- navUp: 38,
- navDown: 40,
- scrollPageUp: 33,
- scrollPageDown: 34,
- scrollToStart: 36,
- scrollToEnd: 35,
- undo: "ctrl + 90",
- redo: "ctrl + 89",
- copyToClipboard: "ctrl + 67"
- };
-
- //default actions
- Keybindings.prototype.actions = {
- keyBlock: function keyBlock(e) {
- e.stopPropagation();
- e.preventDefault();
- },
- scrollPageUp: function scrollPageUp(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop - rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos >= 0) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
- }
-
- this.table.element.focus();
- },
- scrollPageDown: function scrollPageDown(e) {
- var rowManager = this.table.rowManager,
- newPos = rowManager.scrollTop + rowManager.height,
- scrollMax = rowManager.element.scrollHeight;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- if (newPos <= scrollMax) {
- rowManager.element.scrollTop = newPos;
- } else {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
- }
-
- this.table.element.focus();
- },
- scrollToStart: function scrollToStart(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[0]);
- }
-
- this.table.element.focus();
- },
- scrollToEnd: function scrollToEnd(e) {
- var rowManager = this.table.rowManager;
-
- e.preventDefault();
-
- if (rowManager.displayRowsCount) {
- rowManager.scrollToRow(rowManager.getDisplayRows()[rowManager.displayRowsCount - 1]);
- }
-
- this.table.element.focus();
- },
- navPrev: function navPrev(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().prev();
- }
- }
- },
-
- navNext: function navNext(e) {
- var cell = false;
- var newRow = this.table.options.tabEndNewRow;
- var nav;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
-
- nav = cell.nav();
-
- if (!nav.next()) {
- if (newRow) {
-
- cell.getElement().firstChild.blur();
-
- if (newRow === true) {
- newRow = this.table.addRow({});
- } else {
- if (typeof newRow == "function") {
- newRow = this.table.addRow(newRow(cell.row.getComponent()));
- } else {
- newRow = this.table.addRow(Object.assign({}, newRow));
- }
- }
-
- newRow.then(function () {
- setTimeout(function () {
- nav.next();
- });
- });
- }
- }
- }
- }
- },
-
- navLeft: function navLeft(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().left();
- }
- }
- },
-
- navRight: function navRight(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().right();
- }
- }
- },
-
- navUp: function navUp(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().up();
- }
- }
- },
-
- navDown: function navDown(e) {
- var cell = false;
-
- if (this.table.modExists("edit")) {
- cell = this.table.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- cell.nav().down();
- }
- }
- },
-
- undo: function undo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.undo();
- }
- }
- },
-
- redo: function redo(e) {
- var cell = false;
- if (this.table.options.history && this.table.modExists("history") && this.table.modExists("edit")) {
-
- cell = this.table.modules.edit.currentCell;
-
- if (!cell) {
- e.preventDefault();
- this.table.modules.history.redo();
- }
- }
- },
-
- copyToClipboard: function copyToClipboard(e) {
- if (!this.table.modules.edit.currentCell) {
- if (this.table.modExists("clipboard", true)) {
- this.table.modules.clipboard.copy(false, true);
- }
- }
- }
- };
-
- Tabulator.prototype.registerModule("keybindings", Keybindings);
- var Menu = function Menu(table) {
- this.table = table; //hold Tabulator object
- this.menuEl = false;
- this.blurEvent = this.hideMenu.bind(this);
- this.escEvent = this.escMenu.bind(this);
- this.nestedMenuBlock = false;
- };
-
- Menu.prototype.initializeColumnHeader = function (column) {
- var _this61 = this;
-
- var headerMenuEl;
-
- if (column.definition.headerContextMenu) {
- column.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof column.definition.headerContextMenu == "function" ? column.definition.headerContextMenu(column.getComponent()) : column.definition.headerContextMenu;
-
- e.preventDefault();
-
- _this61.loadMenu(e, column, menu);
- });
- }
-
- if (column.definition.headerMenu) {
-
- headerMenuEl = document.createElement("span");
- headerMenuEl.classList.add("tabulator-header-menu-button");
- headerMenuEl.innerHTML = "⋮";
-
- headerMenuEl.addEventListener("click", function (e) {
- var menu = typeof column.definition.headerMenu == "function" ? column.definition.headerMenu(column.getComponent()) : column.definition.headerMenu;
- e.stopPropagation();
- e.preventDefault();
-
- _this61.loadMenu(e, column, menu);
- });
-
- column.titleElement.insertBefore(headerMenuEl, column.titleElement.firstChild);
- }
- };
-
- Menu.prototype.initializeCell = function (cell) {
- var _this62 = this;
-
- cell.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof cell.column.definition.contextMenu == "function" ? cell.column.definition.contextMenu(cell.getComponent()) : cell.column.definition.contextMenu;
-
- e.stopImmediatePropagation();
-
- _this62.loadMenu(e, cell, menu);
- });
- };
-
- Menu.prototype.initializeRow = function (row) {
- var _this63 = this;
-
- row.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof _this63.table.options.rowContextMenu == "function" ? _this63.table.options.rowContextMenu(row.getComponent()) : _this63.table.options.rowContextMenu;
-
- _this63.loadMenu(e, row, menu);
- });
- };
-
- Menu.prototype.initializeGroup = function (group) {
- var _this64 = this;
-
- group.getElement().addEventListener("contextmenu", function (e) {
- var menu = typeof _this64.table.options.groupContextMenu == "function" ? _this64.table.options.groupContextMenu(group.getComponent()) : _this64.table.options.groupContextMenu;
-
- _this64.loadMenu(e, group, menu);
- });
- };
-
- Menu.prototype.loadMenu = function (e, component, menu) {
- var _this65 = this;
-
- var docHeight = Math.max(document.body.offsetHeight, window.innerHeight);
-
- e.preventDefault();
-
- //abort if no menu set
- if (!menu || !menu.length) {
- return;
- }
-
- if (this.nestedMenuBlock) {
- //abort if child menu already open
- if (this.isOpen()) {
- return;
- }
- } else {
- this.nestedMenuBlock = setTimeout(function () {
- _this65.nestedMenuBlock = false;
- }, 100);
- }
-
- this.hideMenu();
-
- this.menuEl = document.createElement("div");
- this.menuEl.classList.add("tabulator-menu");
-
- menu.forEach(function (item) {
- var itemEl = document.createElement("div");
- var label = item.label;
- var disabled = item.disabled;
-
- if (item.separator) {
- itemEl.classList.add("tabulator-menu-separator");
- } else {
- itemEl.classList.add("tabulator-menu-item");
-
- if (typeof label == "function") {
- label = label(component.getComponent());
- }
-
- if (label instanceof Node) {
- itemEl.appendChild(label);
- } else {
- itemEl.innerHTML = label;
- }
-
- if (typeof disabled == "function") {
- disabled = disabled(component.getComponent());
- }
-
- if (disabled) {
- itemEl.classList.add("tabulator-menu-item-disabled");
- itemEl.addEventListener("click", function (e) {
- e.stopPropagation();
- });
- } else {
- itemEl.addEventListener("click", function (e) {
- _this65.hideMenu();
- item.action(e, component.getComponent());
- });
- }
- }
-
- _this65.menuEl.appendChild(itemEl);
- });
-
- this.menuEl.style.top = e.pageY + "px";
- this.menuEl.style.left = e.pageX + "px";
-
- document.body.addEventListener("click", this.blurEvent);
- this.table.rowManager.element.addEventListener("scroll", this.blurEvent);
-
- setTimeout(function () {
- document.body.addEventListener("contextmenu", _this65.blurEvent);
- }, 100);
-
- document.body.addEventListener("keydown", this.escEvent);
-
- document.body.appendChild(this.menuEl);
-
- //move menu to start on right edge if it is too close to the edge of the screen
- if (e.pageX + this.menuEl.offsetWidth >= document.body.offsetWidth) {
- this.menuEl.style.left = "";
- this.menuEl.style.right = document.body.offsetWidth - e.pageX + "px";
- }
-
- //move menu to start on bottom edge if it is too close to the edge of the screen
- if (e.pageY + this.menuEl.offsetHeight >= docHeight) {
- this.menuEl.style.top = "";
- this.menuEl.style.bottom = docHeight - e.pageY + "px";
- }
- };
-
- Menu.prototype.isOpen = function () {
- return !!this.menuEl.parentNode;
- };
-
- Menu.prototype.escMenu = function (e) {
- if (e.keyCode == 27) {
- this.hideMenu();
- }
- };
-
- Menu.prototype.hideMenu = function () {
- if (this.menuEl.parentNode) {
- this.menuEl.parentNode.removeChild(this.menuEl);
- }
-
- if (this.escEvent) {
- document.body.removeEventListener("keydown", this.escEvent);
- }
-
- if (this.blurEvent) {
- document.body.removeEventListener("click", this.blurEvent);
- document.body.removeEventListener("contextmenu", this.blurEvent);
- this.table.rowManager.element.removeEventListener("scroll", this.blurEvent);
- }
- };
-
- //default accessors
- Menu.prototype.menus = {};
-
- Tabulator.prototype.registerModule("menu", Menu);
- var MoveColumns = function MoveColumns(table) {
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating column header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 250; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving column
- this.toCol = false; //destination column
- this.toColAfter = false; //position of moving column relative to the desitnation column
- this.startX = 0; //starting position within header element
- this.autoScrollMargin = 40; //auto scroll on edge when within margin
- this.autoScrollStep = 5; //auto scroll distance in pixels
- this.autoScrollTimeout = false; //auto scroll timeout
- this.touchMove = false;
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
- };
-
- MoveColumns.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
- el.classList.add("tabulator-col-placeholder");
-
- return el;
- };
-
- MoveColumns.prototype.initializeColumn = function (column) {
- var self = this,
- config = {},
- colEl;
-
- if (!column.modules.frozen) {
-
- colEl = column.getElement();
-
- config.mousemove = function (e) {
- if (column.parent === self.moving.parent) {
- if ((self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(colEl).left + self.table.columnManager.element.scrollLeft > column.getWidth() / 2) {
- if (self.toCol !== column || !self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl.nextSibling);
- self.moveColumn(column, true);
- }
- } else {
- if (self.toCol !== column || self.toColAfter) {
- colEl.parentNode.insertBefore(self.placeholderElement, colEl);
- self.moveColumn(column, false);
- }
- }
- }
- }.bind(self);
-
- colEl.addEventListener("mousedown", function (e) {
- self.touchMove = false;
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, column);
- }, self.checkPeriod);
- }
- });
-
- colEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- self.bindTouchEvents(column);
- }
-
- column.modules.moveColumn = config;
- };
-
- MoveColumns.prototype.bindTouchEvents = function (column) {
- var self = this,
- colEl = column.getElement(),
- startXMove = false,
- //shifting center position of the cell
- dir = false,
- currentCol,
- nextCol,
- prevCol,
- nextColWidth,
- prevColWidth,
- nextColWidthLast,
- prevColWidthLast;
-
- colEl.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentCol = column;
- nextCol = column.nextColumn();
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = column.prevColumn();
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- nextColWidthLast = 0;
- prevColWidthLast = 0;
- startXMove = false;
-
- self.startMove(e, column);
- }, self.checkPeriod);
- }, { passive: true });
-
- colEl.addEventListener("touchmove", function (e) {
- var halfCol, diff, moveToCol;
-
- if (self.moving) {
- self.moveHover(e);
-
- if (!startXMove) {
- startXMove = e.touches[0].pageX;
- }
-
- diff = e.touches[0].pageX - startXMove;
-
- if (diff > 0) {
- if (nextCol && diff - nextColWidthLast > nextColWidth) {
- moveToCol = nextCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement().nextSibling);
- self.moveColumn(moveToCol, true);
- }
- }
- } else {
- if (prevCol && -diff - prevColWidthLast > prevColWidth) {
- moveToCol = prevCol;
-
- if (moveToCol !== column) {
- startXMove = e.touches[0].pageX;
- moveToCol.getElement().parentNode.insertBefore(self.placeholderElement, moveToCol.getElement());
- self.moveColumn(moveToCol, false);
- }
- }
- }
-
- if (moveToCol) {
- currentCol = moveToCol;
- nextCol = moveToCol.nextColumn();
- nextColWidthLast = nextColWidth;
- nextColWidth = nextCol ? nextCol.getWidth() / 2 : 0;
- prevCol = moveToCol.prevColumn();
- prevColWidthLast = prevColWidth;
- prevColWidth = prevCol ? prevCol.getWidth() / 2 : 0;
- }
- }
- }, { passive: true });
-
- colEl.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- }
- });
- };
-
- MoveColumns.prototype.startMove = function (e, column) {
- var element = column.getElement();
-
- this.moving = column;
- this.startX = (this.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(element).left;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = column.getWidth() + "px";
- this.placeholderElement.style.height = column.getHeight() + "px";
-
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- this.table.columnManager.getElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.bottom = "0";
-
- if (!this.touchMove) {
- this._bindMouseMove();
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
- }
-
- this.moveHover(e);
- };
-
- MoveColumns.prototype._bindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().addEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
- };
-
- MoveColumns.prototype._unbindMouseMove = function () {
- this.table.columnManager.columnsByIndex.forEach(function (column) {
- if (column.modules.moveColumn.mousemove) {
- column.getElement().removeEventListener("mousemove", column.modules.moveColumn.mousemove);
- }
- });
- };
-
- MoveColumns.prototype.moveColumn = function (column, after) {
- var movingCells = this.moving.getCells();
-
- this.toCol = column;
- this.toColAfter = after;
-
- if (after) {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl.nextSibling);
- });
- } else {
- column.getCells().forEach(function (cell, i) {
- var cellEl = cell.getElement();
- cellEl.parentNode.insertBefore(movingCells[i].getElement(), cellEl);
- });
- }
- };
-
- MoveColumns.prototype.endMove = function (e) {
- if (e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toCol) {
- this.table.columnManager.moveColumnActual(this.moving, this.toCol, this.toColAfter);
- }
-
- this.moving = false;
- this.toCol = false;
- this.toColAfter = false;
-
- if (!this.touchMove) {
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
- }
- }
- };
-
- MoveColumns.prototype.moveHover = function (e) {
- var self = this,
- columnHolder = self.table.columnManager.getElement(),
- scrollLeft = columnHolder.scrollLeft,
- xPos = (self.touchMove ? e.touches[0].pageX : e.pageX) - Tabulator.prototype.helpers.elOffset(columnHolder).left + scrollLeft,
- scrollPos;
-
- self.hoverElement.style.left = xPos - self.startX + "px";
-
- if (xPos - scrollLeft < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.max(0, scrollLeft - 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
-
- if (scrollLeft + columnHolder.clientWidth - xPos < self.autoScrollMargin) {
- if (!self.autoScrollTimeout) {
- self.autoScrollTimeout = setTimeout(function () {
- scrollPos = Math.min(columnHolder.clientWidth, scrollLeft + 5);
- self.table.rowManager.getElement().scrollLeft = scrollPos;
- self.autoScrollTimeout = false;
- }, 1);
- }
- }
- };
-
- Tabulator.prototype.registerModule("moveColumn", MoveColumns);
-
- var MoveRows = function MoveRows(table) {
-
- this.table = table; //hold Tabulator object
- this.placeholderElement = this.createPlaceholderElement();
- this.hoverElement = false; //floating row header element
- this.checkTimeout = false; //click check timeout holder
- this.checkPeriod = 150; //period to wait on mousedown to consider this a move and not a click
- this.moving = false; //currently moving row
- this.toRow = false; //destination row
- this.toRowAfter = false; //position of moving row relative to the desitnation row
- this.hasHandle = false; //row has handle instead of fully movable row
- this.startY = 0; //starting Y position within header element
- this.startX = 0; //starting X position within header element
-
- this.moveHover = this.moveHover.bind(this);
- this.endMove = this.endMove.bind(this);
- this.tableRowDropEvent = false;
-
- this.touchMove = false;
-
- this.connection = false;
- this.connectionSelectorsTables = false;
- this.connectionSelectorsElements = false;
- this.connectionElements = [];
- this.connections = [];
-
- this.connectedTable = false;
- this.connectedRow = false;
- };
-
- MoveRows.prototype.createPlaceholderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
- el.classList.add("tabulator-row-placeholder");
-
- return el;
- };
-
- MoveRows.prototype.initialize = function (handle) {
- this.connectionSelectorsTables = this.table.options.movableRowsConnectedTables;
- this.connectionSelectorsElements = this.table.options.movableRowsConnectedElements;
-
- this.connection = this.connectionSelectorsTables || this.connectionSelectorsElements;
- };
-
- MoveRows.prototype.setHandle = function (handle) {
- this.hasHandle = handle;
- };
-
- MoveRows.prototype.initializeGroupHeader = function (group) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(group.element).top + self.table.rowManager.element.scrollTop > group.getHeight() / 2) {
- if (self.toRow !== group || !self.toRowAfter) {
- var rowEl = group.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(group, true);
- }
- } else {
- if (self.toRow !== group || self.toRowAfter) {
- var rowEl = group.getElement();
- if (rowEl.previousSibling) {
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(group, false);
- }
- }
- }
- }.bind(self);
-
- group.modules.moveRow = config;
- };
-
- MoveRows.prototype.initializeRow = function (row) {
- var self = this,
- config = {},
- rowEl;
-
- //inter table drag drop
- config.mouseup = function (e) {
- self.tableRowDrop(e, row);
- }.bind(self);
-
- //same table drag drop
- config.mousemove = function (e) {
- if (e.pageY - Tabulator.prototype.helpers.elOffset(row.element).top + self.table.rowManager.element.scrollTop > row.getHeight() / 2) {
- if (self.toRow !== row || !self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl.nextSibling);
- self.moveRow(row, true);
- }
- } else {
- if (self.toRow !== row || self.toRowAfter) {
- var rowEl = row.getElement();
- rowEl.parentNode.insertBefore(self.placeholderElement, rowEl);
- self.moveRow(row, false);
- }
- }
- }.bind(self);
-
- if (!this.hasHandle) {
-
- rowEl = row.getElement();
-
- rowEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, row);
- }, self.checkPeriod);
- }
- });
-
- rowEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(row, row.getElement());
- }
-
- row.modules.moveRow = config;
- };
-
- MoveRows.prototype.initializeCell = function (cell) {
- var self = this,
- cellEl = cell.getElement();
-
- cellEl.addEventListener("mousedown", function (e) {
- if (e.which === 1) {
- self.checkTimeout = setTimeout(function () {
- self.startMove(e, cell.row);
- }, self.checkPeriod);
- }
- });
-
- cellEl.addEventListener("mouseup", function (e) {
- if (e.which === 1) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- }
- });
-
- this.bindTouchEvents(cell.row, cell.getElement());
- };
-
- MoveRows.prototype.bindTouchEvents = function (row, element) {
- var self = this,
- startYMove = false,
- //shifting center position of the cell
- dir = false,
- currentRow,
- nextRow,
- prevRow,
- nextRowHeight,
- prevRowHeight,
- nextRowHeightLast,
- prevRowHeightLast;
-
- element.addEventListener("touchstart", function (e) {
- self.checkTimeout = setTimeout(function () {
- self.touchMove = true;
- currentRow = row;
- nextRow = row.nextRow();
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = row.prevRow();
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- nextRowHeightLast = 0;
- prevRowHeightLast = 0;
- startYMove = false;
-
- self.startMove(e, row);
- }, self.checkPeriod);
- }, { passive: true });
- this.moving, this.toRow, this.toRowAfter;
- element.addEventListener("touchmove", function (e) {
-
- var halfCol, diff, moveToRow;
-
- if (self.moving) {
- e.preventDefault();
-
- self.moveHover(e);
-
- if (!startYMove) {
- startYMove = e.touches[0].pageY;
- }
-
- diff = e.touches[0].pageY - startYMove;
-
- if (diff > 0) {
- if (nextRow && diff - nextRowHeightLast > nextRowHeight) {
- moveToRow = nextRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement().nextSibling);
- self.moveRow(moveToRow, true);
- }
- }
- } else {
- if (prevRow && -diff - prevRowHeightLast > prevRowHeight) {
- moveToRow = prevRow;
-
- if (moveToRow !== row) {
- startYMove = e.touches[0].pageY;
- moveToRow.getElement().parentNode.insertBefore(self.placeholderElement, moveToRow.getElement());
- self.moveRow(moveToRow, false);
- }
- }
- }
-
- if (moveToRow) {
- currentRow = moveToRow;
- nextRow = moveToRow.nextRow();
- nextRowHeightLast = nextRowHeight;
- nextRowHeight = nextRow ? nextRow.getHeight() / 2 : 0;
- prevRow = moveToRow.prevRow();
- prevRowHeightLast = prevRowHeight;
- prevRowHeight = prevRow ? prevRow.getHeight() / 2 : 0;
- }
- }
- });
-
- element.addEventListener("touchend", function (e) {
- if (self.checkTimeout) {
- clearTimeout(self.checkTimeout);
- }
- if (self.moving) {
- self.endMove(e);
- self.touchMove = false;
- }
- });
- };
-
- MoveRows.prototype._bindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().addEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
- };
-
- MoveRows.prototype._unbindMouseMove = function () {
- var self = this;
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if ((row.type === "row" || row.type === "group") && row.modules.moveRow.mousemove) {
- row.getElement().removeEventListener("mousemove", row.modules.moveRow.mousemove);
- }
- });
- };
-
- MoveRows.prototype.startMove = function (e, row) {
- var element = row.getElement();
-
- this.setStartPosition(e, row);
-
- this.moving = row;
-
- this.table.element.classList.add("tabulator-block-select");
-
- //create placeholder
- this.placeholderElement.style.width = row.getWidth() + "px";
- this.placeholderElement.style.height = row.getHeight() + "px";
-
- if (!this.connection) {
- element.parentNode.insertBefore(this.placeholderElement, element);
- element.parentNode.removeChild(element);
- } else {
- this.table.element.classList.add("tabulator-movingrow-sending");
- this.connectToTables(row);
- }
-
- //create hover element
- this.hoverElement = element.cloneNode(true);
- this.hoverElement.classList.add("tabulator-moving");
-
- if (this.connection) {
- document.body.appendChild(this.hoverElement);
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
- this.hoverElement.style.width = this.table.element.clientWidth + "px";
- this.hoverElement.style.whiteSpace = "nowrap";
- this.hoverElement.style.overflow = "hidden";
- this.hoverElement.style.pointerEvents = "none";
- } else {
- this.table.rowManager.getTableElement().appendChild(this.hoverElement);
-
- this.hoverElement.style.left = "0";
- this.hoverElement.style.top = "0";
-
- this._bindMouseMove();
- }
-
- document.body.addEventListener("mousemove", this.moveHover);
- document.body.addEventListener("mouseup", this.endMove);
-
- this.moveHover(e);
- };
-
- MoveRows.prototype.setStartPosition = function (e, row) {
- var pageX = this.touchMove ? e.touches[0].pageX : e.pageX,
- pageY = this.touchMove ? e.touches[0].pageY : e.pageY,
- element,
- position;
-
- element = row.getElement();
- if (this.connection) {
- position = element.getBoundingClientRect();
-
- this.startX = position.left - pageX + window.pageXOffset;
- this.startY = position.top - pageY + window.pageYOffset;
- } else {
- this.startY = pageY - element.getBoundingClientRect().top;
- }
- };
-
- MoveRows.prototype.endMove = function (e) {
- if (!e || e.which === 1 || this.touchMove) {
- this._unbindMouseMove();
-
- if (!this.connection) {
- this.placeholderElement.parentNode.insertBefore(this.moving.getElement(), this.placeholderElement.nextSibling);
- this.placeholderElement.parentNode.removeChild(this.placeholderElement);
- }
-
- this.hoverElement.parentNode.removeChild(this.hoverElement);
-
- this.table.element.classList.remove("tabulator-block-select");
-
- if (this.toRow) {
- this.table.rowManager.moveRow(this.moving, this.toRow, this.toRowAfter);
- }
-
- this.moving = false;
- this.toRow = false;
- this.toRowAfter = false;
-
- document.body.removeEventListener("mousemove", this.moveHover);
- document.body.removeEventListener("mouseup", this.endMove);
-
- if (this.connection) {
- this.table.element.classList.remove("tabulator-movingrow-sending");
- this.disconnectFromTables();
- }
- }
- };
-
- MoveRows.prototype.moveRow = function (row, after) {
- this.toRow = row;
- this.toRowAfter = after;
- };
-
- MoveRows.prototype.moveHover = function (e) {
- if (this.connection) {
- this.moveHoverConnections.call(this, e);
- } else {
- this.moveHoverTable.call(this, e);
- }
- };
-
- MoveRows.prototype.moveHoverTable = function (e) {
- var rowHolder = this.table.rowManager.getElement(),
- scrollTop = rowHolder.scrollTop,
- yPos = (this.touchMove ? e.touches[0].pageY : e.pageY) - rowHolder.getBoundingClientRect().top + scrollTop,
- scrollPos;
-
- this.hoverElement.style.top = yPos - this.startY + "px";
- };
-
- MoveRows.prototype.moveHoverConnections = function (e) {
- this.hoverElement.style.left = this.startX + (this.touchMove ? e.touches[0].pageX : e.pageX) + "px";
- this.hoverElement.style.top = this.startY + (this.touchMove ? e.touches[0].pageY : e.pageY) + "px";
- };
-
- MoveRows.prototype.elementRowDrop = function (e, element, row) {
- if (this.table.options.movableRowsElementDrop) {
- this.table.options.movableRowsElementDrop(e, element, row ? row.getComponent() : false);
- }
- };
-
- //establish connection with other tables
- MoveRows.prototype.connectToTables = function (row) {
- var _this66 = this;
-
- var connectionTables;
-
- if (this.connectionSelectorsTables) {
- connectionTables = this.table.modules.comms.getConnections(this.connectionSelectorsTables);
-
- this.table.options.movableRowsSendingStart.call(this.table, connectionTables);
-
- this.table.modules.comms.send(this.connectionSelectorsTables, "moveRow", "connect", {
- row: row
- });
- }
-
- if (this.connectionSelectorsElements) {
-
- this.connectionElements = [];
-
- if (!Array.isArray(this.connectionSelectorsElements)) {
- this.connectionSelectorsElements = [this.connectionSelectorsElements];
- }
-
- this.connectionSelectorsElements.forEach(function (query) {
- if (typeof query === "string") {
- _this66.connectionElements = _this66.connectionElements.concat(Array.prototype.slice.call(document.querySelectorAll(query)));
- } else {
- _this66.connectionElements.push(query);
- }
- });
-
- this.connectionElements.forEach(function (element) {
- var dropEvent = function dropEvent(e) {
- _this66.elementRowDrop(e, element, _this66.moving);
- };
-
- element.addEventListener("mouseup", dropEvent);
- element.tabulatorElementDropEvent = dropEvent;
-
- element.classList.add("tabulator-movingrow-receiving");
- });
- }
- };
-
- //disconnect from other tables
- MoveRows.prototype.disconnectFromTables = function () {
- var connectionTables;
-
- if (this.connectionSelectorsTables) {
- connectionTables = this.table.modules.comms.getConnections(this.connectionSelectorsTables);
-
- this.table.options.movableRowsSendingStop.call(this.table, connectionTables);
-
- this.table.modules.comms.send(this.connectionSelectorsTables, "moveRow", "disconnect");
- }
-
- this.connectionElements.forEach(function (element) {
- element.classList.remove("tabulator-movingrow-receiving");
- element.removeEventListener("mouseup", element.tabulatorElementDropEvent);
- delete element.tabulatorElementDropEvent;
- });
- };
-
- //accept incomming connection
- MoveRows.prototype.connect = function (table, row) {
- var self = this;
- if (!this.connectedTable) {
- this.connectedTable = table;
- this.connectedRow = row;
-
- this.table.element.classList.add("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().addEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.tableRowDropEvent = self.tableRowDrop.bind(self);
-
- self.table.element.addEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStart.call(this.table, row, table);
-
- return true;
- } else {
- console.warn("Move Row Error - Table cannot accept connection, already connected to table:", this.connectedTable);
- return false;
- }
- };
-
- //close incomming connection
- MoveRows.prototype.disconnect = function (table) {
- var self = this;
- if (table === this.connectedTable) {
- this.connectedTable = false;
- this.connectedRow = false;
-
- this.table.element.classList.remove("tabulator-movingrow-receiving");
-
- self.table.rowManager.getDisplayRows().forEach(function (row) {
- if (row.type === "row" && row.modules.moveRow && row.modules.moveRow.mouseup) {
- row.getElement().removeEventListener("mouseup", row.modules.moveRow.mouseup);
- }
- });
-
- self.table.element.removeEventListener("mouseup", self.tableRowDropEvent);
-
- this.table.options.movableRowsReceivingStop.call(this.table, table);
- } else {
- console.warn("Move Row Error - trying to disconnect from non connected table");
- }
- };
-
- MoveRows.prototype.dropComplete = function (table, row, success) {
- var sender = false;
-
- if (success) {
-
- switch (_typeof(this.table.options.movableRowsSender)) {
- case "string":
- sender = this.senders[this.table.options.movableRowsSender];
- break;
-
- case "function":
- sender = this.table.options.movableRowsSender;
- break;
- }
-
- if (sender) {
- sender.call(this, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- if (this.table.options.movableRowsSender) {
- console.warn("Mover Row Error - no matching sender found:", this.table.options.movableRowsSender);
- }
- }
-
- this.table.options.movableRowsSent.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- } else {
- this.table.options.movableRowsSentFailed.call(this.table, this.moving.getComponent(), row ? row.getComponent() : undefined, table);
- }
-
- this.endMove();
- };
-
- MoveRows.prototype.tableRowDrop = function (e, row) {
- var receiver = false,
- success = false;
-
- console.trace("drop");
-
- e.stopImmediatePropagation();
-
- switch (_typeof(this.table.options.movableRowsReceiver)) {
- case "string":
- receiver = this.receivers[this.table.options.movableRowsReceiver];
- break;
-
- case "function":
- receiver = this.table.options.movableRowsReceiver;
- break;
- }
-
- if (receiver) {
- success = receiver.call(this, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- console.warn("Mover Row Error - no matching receiver found:", this.table.options.movableRowsReceiver);
- }
-
- if (success) {
- this.table.options.movableRowsReceived.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- } else {
- this.table.options.movableRowsReceivedFailed.call(this.table, this.connectedRow.getComponent(), row ? row.getComponent() : undefined, this.connectedTable);
- }
-
- this.table.modules.comms.send(this.connectedTable, "moveRow", "dropcomplete", {
- row: row,
- success: success
- });
- };
-
- MoveRows.prototype.receivers = {
- insert: function insert(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- return true;
- },
-
- add: function add(fromRow, toRow, fromTable) {
- this.table.addRow(fromRow.getData());
- return true;
- },
-
- update: function update(fromRow, toRow, fromTable) {
- if (toRow) {
- toRow.update(fromRow.getData());
- return true;
- }
-
- return false;
- },
-
- replace: function replace(fromRow, toRow, fromTable) {
- if (toRow) {
- this.table.addRow(fromRow.getData(), undefined, toRow);
- toRow.delete();
- return true;
- }
-
- return false;
- }
- };
-
- MoveRows.prototype.senders = {
- delete: function _delete(fromRow, toRow, toTable) {
- fromRow.delete();
- }
- };
-
- MoveRows.prototype.commsReceived = function (table, action, data) {
- switch (action) {
- case "connect":
- return this.connect(table, data.row);
- break;
-
- case "disconnect":
- return this.disconnect(table);
- break;
-
- case "dropcomplete":
- return this.dropComplete(table, data.row, data.success);
- break;
- }
- };
-
- Tabulator.prototype.registerModule("moveRow", MoveRows);
- var Mutator = function Mutator(table) {
- this.table = table; //hold Tabulator object
- this.allowedTypes = ["", "data", "edit", "clipboard"]; //list of muatation types
- this.enabled = true;
- };
-
- //initialize column mutator
- Mutator.prototype.initializeColumn = function (column) {
- var self = this,
- match = false,
- config = {};
-
- this.allowedTypes.forEach(function (type) {
- var key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- mutator;
-
- if (column.definition[key]) {
- mutator = self.lookupMutator(column.definition[key]);
-
- if (mutator) {
- match = true;
-
- config[key] = {
- mutator: mutator,
- params: column.definition[key + "Params"] || {}
- };
- }
- }
- });
-
- if (match) {
- column.modules.mutate = config;
- }
- };
-
- Mutator.prototype.lookupMutator = function (value) {
- var mutator = false;
-
- //set column mutator
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "string":
- if (this.mutators[value]) {
- mutator = this.mutators[value];
- } else {
- console.warn("Mutator Error - No such mutator found, ignoring: ", value);
- }
- break;
-
- case "function":
- mutator = value;
- break;
- }
-
- return mutator;
- };
-
- //apply mutator to row
- Mutator.prototype.transformRow = function (data, type, updatedData) {
- var self = this,
- key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
- value;
-
- if (this.enabled) {
-
- self.table.columnManager.traverse(function (column) {
- var mutator, params, component;
-
- if (column.modules.mutate) {
- mutator = column.modules.mutate[key] || column.modules.mutate.mutator || false;
-
- if (mutator) {
- value = column.getFieldValue(typeof updatedData !== "undefined" ? updatedData : data);
-
- if (type == "data" || typeof value !== "undefined") {
- component = column.getComponent();
- params = typeof mutator.params === "function" ? mutator.params(value, data, type, component) : mutator.params;
- column.setFieldValue(data, mutator.mutator(value, data, type, params, component));
- }
- }
- }
- });
- }
-
- return data;
- };
-
- //apply mutator to new cell value
- Mutator.prototype.transformCell = function (cell, value) {
- var mutator = cell.column.modules.mutate.mutatorEdit || cell.column.modules.mutate.mutator || false,
- tempData = {};
-
- if (mutator) {
- tempData = Object.assign(tempData, cell.row.getData());
- cell.column.setFieldValue(tempData, value);
- return mutator.mutator(value, tempData, "edit", mutator.params, cell.getComponent());
- } else {
- return value;
- }
- };
-
- Mutator.prototype.enable = function () {
- this.enabled = true;
- };
-
- Mutator.prototype.disable = function () {
- this.enabled = false;
- };
-
- //default mutators
- Mutator.prototype.mutators = {};
-
- Tabulator.prototype.registerModule("mutator", Mutator);
- var Page = function Page(table) {
-
- this.table = table; //hold Tabulator object
-
- this.mode = "local";
- this.progressiveLoad = false;
-
- this.size = 0;
- this.page = 1;
- this.count = 5;
- this.max = 1;
-
- this.displayIndex = 0; //index in display pipeline
-
- this.initialLoad = true;
-
- this.pageSizes = [];
-
- this.dataReceivedNames = {};
- this.dataSentNames = {};
-
- this.createElements();
- };
-
- Page.prototype.createElements = function () {
-
- var button;
-
- this.element = document.createElement("span");
- this.element.classList.add("tabulator-paginator");
-
- this.pagesElement = document.createElement("span");
- this.pagesElement.classList.add("tabulator-pages");
-
- button = document.createElement("button");
- button.classList.add("tabulator-page");
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
- button.setAttribute("aria-label", "");
- button.setAttribute("title", "");
-
- this.firstBut = button.cloneNode(true);
- this.firstBut.setAttribute("data-page", "first");
-
- this.prevBut = button.cloneNode(true);
- this.prevBut.setAttribute("data-page", "prev");
-
- this.nextBut = button.cloneNode(true);
- this.nextBut.setAttribute("data-page", "next");
-
- this.lastBut = button.cloneNode(true);
- this.lastBut.setAttribute("data-page", "last");
-
- if (this.table.options.paginationSizeSelector) {
- this.pageSizeSelect = document.createElement("select");
- this.pageSizeSelect.classList.add("tabulator-page-size");
- }
- };
-
- Page.prototype.generatePageSizeSelectList = function () {
- var _this67 = this;
-
- var pageSizes = [];
-
- if (this.pageSizeSelect) {
-
- if (Array.isArray(this.table.options.paginationSizeSelector)) {
- pageSizes = this.table.options.paginationSizeSelector;
- this.pageSizes = pageSizes;
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes.unshift(this.size);
- }
- } else {
-
- if (this.pageSizes.indexOf(this.size) == -1) {
- pageSizes = [];
-
- for (var _i9 = 1; _i9 < 5; _i9++) {
- pageSizes.push(this.size * _i9);
- }
-
- this.pageSizes = pageSizes;
- } else {
- pageSizes = this.pageSizes;
- }
- }
-
- while (this.pageSizeSelect.firstChild) {
- this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);
- }pageSizes.forEach(function (item) {
- var itemEl = document.createElement("option");
- itemEl.value = item;
-
- if (item === true) {
- _this67.table.modules.localize.bind("pagination|all", function (value) {
- itemEl.innerHTML = value;
- });
- } else {
- itemEl.innerHTML = item;
- }
-
- _this67.pageSizeSelect.appendChild(itemEl);
- });
-
- this.pageSizeSelect.value = this.size;
- }
- };
-
- //setup pageination
- Page.prototype.initialize = function (hidden) {
- var self = this,
- pageSelectLabel,
- testElRow,
- testElCell;
-
- //update param names
- this.dataSentNames = Object.assign({}, this.paginationDataSentNames);
- this.dataSentNames = Object.assign(this.dataSentNames, this.table.options.paginationDataSent);
-
- this.dataReceivedNames = Object.assign({}, this.paginationDataReceivedNames);
- this.dataReceivedNames = Object.assign(this.dataReceivedNames, this.table.options.paginationDataReceived);
-
- //build pagination element
-
- //bind localizations
- self.table.modules.localize.bind("pagination|first", function (value) {
- self.firstBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|first_title", function (value) {
- self.firstBut.setAttribute("aria-label", value);
- self.firstBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|prev", function (value) {
- self.prevBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|prev_title", function (value) {
- self.prevBut.setAttribute("aria-label", value);
- self.prevBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|next", function (value) {
- self.nextBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|next_title", function (value) {
- self.nextBut.setAttribute("aria-label", value);
- self.nextBut.setAttribute("title", value);
- });
-
- self.table.modules.localize.bind("pagination|last", function (value) {
- self.lastBut.innerHTML = value;
- });
-
- self.table.modules.localize.bind("pagination|last_title", function (value) {
- self.lastBut.setAttribute("aria-label", value);
- self.lastBut.setAttribute("title", value);
- });
-
- //click bindings
- self.firstBut.addEventListener("click", function () {
- self.setPage(1);
- });
-
- self.prevBut.addEventListener("click", function () {
- self.previousPage();
- });
-
- self.nextBut.addEventListener("click", function () {
- self.nextPage().then(function () {}).catch(function () {});
- });
-
- self.lastBut.addEventListener("click", function () {
- self.setPage(self.max);
- });
-
- if (self.table.options.paginationElement) {
- self.element = self.table.options.paginationElement;
- }
-
- if (this.pageSizeSelect) {
- pageSelectLabel = document.createElement("label");
-
- self.table.modules.localize.bind("pagination|page_size", function (value) {
- self.pageSizeSelect.setAttribute("aria-label", value);
- self.pageSizeSelect.setAttribute("title", value);
- pageSelectLabel.innerHTML = value;
- });
-
- self.element.appendChild(pageSelectLabel);
- self.element.appendChild(self.pageSizeSelect);
-
- self.pageSizeSelect.addEventListener("change", function (e) {
- self.setPageSize(self.pageSizeSelect.value == "true" ? true : self.pageSizeSelect.value);
- self.setPage(1).then(function () {}).catch(function () {});
- });
- }
-
- //append to DOM
- self.element.appendChild(self.firstBut);
- self.element.appendChild(self.prevBut);
- self.element.appendChild(self.pagesElement);
- self.element.appendChild(self.nextBut);
- self.element.appendChild(self.lastBut);
-
- if (!self.table.options.paginationElement && !hidden) {
- self.table.footerManager.append(self.element, self);
- }
-
- //set default values
- self.mode = self.table.options.pagination;
-
- if (self.table.options.paginationSize) {
- self.size = self.table.options.paginationSize;
- } else {
- testElRow = document.createElement("div");
- testElRow.classList.add("tabulator-row");
- testElRow.style.visibility = hidden;
-
- testElCell = document.createElement("div");
- testElCell.classList.add("tabulator-cell");
- testElCell.innerHTML = "Page Row Test";
-
- testElRow.appendChild(testElCell);
-
- self.table.rowManager.getTableElement().appendChild(testElRow);
-
- self.size = Math.floor(self.table.rowManager.getElement().clientHeight / testElRow.offsetHeight);
-
- self.table.rowManager.getTableElement().removeChild(testElRow);
- }
-
- // self.page = self.table.options.paginationInitialPage || 1;
- self.count = self.table.options.paginationButtonCount;
-
- self.generatePageSizeSelectList();
- };
-
- Page.prototype.initializeProgressive = function (mode) {
- this.initialize(true);
- this.mode = "progressive_" + mode;
- this.progressiveLoad = true;
- };
-
- Page.prototype.setDisplayIndex = function (index) {
- this.displayIndex = index;
- };
-
- Page.prototype.getDisplayIndex = function () {
- return this.displayIndex;
- };
-
- //calculate maximum page from number of rows
- Page.prototype.setMaxRows = function (rowCount) {
- if (!rowCount) {
- this.max = 1;
- } else {
- this.max = this.size === true ? 1 : Math.ceil(rowCount / this.size);
- }
-
- if (this.page > this.max) {
- this.page = this.max;
- }
- };
-
- //reset to first page without triggering action
- Page.prototype.reset = function (force, columnsChanged) {
- if (this.mode == "local" || force) {
- this.page = 1;
- }
-
- if (columnsChanged) {
- this.initialLoad = true;
- }
-
- return true;
- };
-
- //set the maxmum page
- Page.prototype.setMaxPage = function (max) {
-
- max = parseInt(max);
-
- this.max = max || 1;
-
- if (this.page > this.max) {
- this.page = this.max;
- this.trigger();
- }
- };
-
- //set current page number
- Page.prototype.setPage = function (page) {
- var _this68 = this;
-
- var self = this;
-
- switch (page) {
- case "first":
- return this.setPage(1);
- break;
-
- case "prev":
- return this.previousPage();
- break;
-
- case "next":
- return this.nextPage();
- break;
-
- case "last":
- return this.setPage(this.max);
- break;
- }
-
- return new Promise(function (resolve, reject) {
-
- page = parseInt(page);
-
- if (page > 0 && page <= _this68.max) {
- _this68.page = page;
- _this68.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.page) {
- self.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Requested page is out of range of 1 - " + _this68.max + ":", page);
- reject();
- }
- });
- };
-
- Page.prototype.setPageToRow = function (row) {
- var _this69 = this;
-
- return new Promise(function (resolve, reject) {
-
- var rows = _this69.table.rowManager.getDisplayRows(_this69.displayIndex - 1);
- var index = rows.indexOf(row);
-
- if (index > -1) {
- var page = _this69.size === true ? 1 : Math.ceil((index + 1) / _this69.size);
-
- _this69.setPage(page).then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- } else {
- console.warn("Pagination Error - Requested row is not visible");
- reject();
- }
- });
- };
-
- Page.prototype.setPageSize = function (size) {
- if (size !== true) {
- size = parseInt(size);
- }
-
- if (size > 0) {
- this.size = size;
- }
-
- if (this.pageSizeSelect) {
- // this.pageSizeSelect.value = size;
- this.generatePageSizeSelectList();
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.page) {
- this.table.modules.persistence.save("page");
- }
- };
-
- //setup the pagination buttons
- Page.prototype._setPageButtons = function () {
- var self = this;
-
- var leftSize = Math.floor((this.count - 1) / 2);
- var rightSize = Math.ceil((this.count - 1) / 2);
- var min = this.max - this.page + leftSize + 1 < this.count ? this.max - this.count + 1 : Math.max(this.page - leftSize, 1);
- var max = this.page <= rightSize ? Math.min(this.count, this.max) : Math.min(this.page + rightSize, this.max);
-
- while (self.pagesElement.firstChild) {
- self.pagesElement.removeChild(self.pagesElement.firstChild);
- }if (self.page == 1) {
- self.firstBut.disabled = true;
- self.prevBut.disabled = true;
- } else {
- self.firstBut.disabled = false;
- self.prevBut.disabled = false;
- }
-
- if (self.page == self.max) {
- self.lastBut.disabled = true;
- self.nextBut.disabled = true;
- } else {
- self.lastBut.disabled = false;
- self.nextBut.disabled = false;
- }
-
- for (var _i10 = min; _i10 <= max; _i10++) {
- if (_i10 > 0 && _i10 <= self.max) {
- self.pagesElement.appendChild(self._generatePageButton(_i10));
- }
- }
-
- this.footerRedraw();
- };
-
- Page.prototype._generatePageButton = function (page) {
- var self = this,
- button = document.createElement("button");
-
- button.classList.add("tabulator-page");
- if (page == self.page) {
- button.classList.add("active");
- }
-
- button.setAttribute("type", "button");
- button.setAttribute("role", "button");
-
- self.table.modules.localize.bind("pagination|page_title", function (value) {
- button.setAttribute("aria-label", value + " " + page);
- button.setAttribute("title", value + " " + page);
- });
-
- button.setAttribute("data-page", page);
- button.textContent = page;
-
- button.addEventListener("click", function (e) {
- self.setPage(page);
- });
-
- return button;
- };
-
- //previous page
- Page.prototype.previousPage = function () {
- var _this70 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this70.page > 1) {
- _this70.page--;
- _this70.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this70.table.options.persistence && _this70.table.modExists("persistence", true) && _this70.table.modules.persistence.config.page) {
- _this70.table.modules.persistence.save("page");
- }
- } else {
- console.warn("Pagination Error - Previous page would be less than page 1:", 0);
- reject();
- }
- });
- };
-
- //next page
- Page.prototype.nextPage = function () {
- var _this71 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this71.page < _this71.max) {
- _this71.page++;
- _this71.trigger().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
-
- if (_this71.table.options.persistence && _this71.table.modExists("persistence", true) && _this71.table.modules.persistence.config.page) {
- _this71.table.modules.persistence.save("page");
- }
- } else {
- if (!_this71.progressiveLoad) {
- console.warn("Pagination Error - Next page would be greater than maximum page of " + _this71.max + ":", _this71.max + 1);
- }
- reject();
- }
- });
- };
-
- //return current page number
- Page.prototype.getPage = function () {
- return this.page;
- };
-
- //return max page number
- Page.prototype.getPageMax = function () {
- return this.max;
- };
-
- Page.prototype.getPageSize = function (size) {
- return this.size;
- };
-
- Page.prototype.getMode = function () {
- return this.mode;
- };
-
- //return appropriate rows for current page
- Page.prototype.getRows = function (data) {
- var output, start, end;
-
- if (this.mode == "local") {
- output = [];
-
- if (this.size === true) {
- start = 0;
- end = data.length - 1;
- } else {
- start = this.size * (this.page - 1);
- end = start + parseInt(this.size);
- }
-
- this._setPageButtons();
-
- for (var _i11 = start; _i11 < end; _i11++) {
- if (data[_i11]) {
- output.push(data[_i11]);
- }
- }
-
- return output;
- } else {
-
- this._setPageButtons();
-
- return data.slice(0);
- }
- };
-
- Page.prototype.trigger = function () {
- var _this72 = this;
-
- var left;
-
- return new Promise(function (resolve, reject) {
-
- switch (_this72.mode) {
- case "local":
- left = _this72.table.rowManager.scrollLeft;
-
- _this72.table.rowManager.refreshActiveData("page");
- _this72.table.rowManager.scrollHorizontal(left);
-
- _this72.table.options.pageLoaded.call(_this72.table, _this72.getPage());
- resolve();
- break;
-
- case "remote":
- case "progressive_load":
- case "progressive_scroll":
- _this72.table.modules.ajax.blockActiveRequest();
- _this72._getRemotePage().then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- break;
-
- default:
- console.warn("Pagination Error - no such pagination mode:", _this72.mode);
- reject();
- }
- });
- };
-
- Page.prototype._getRemotePage = function () {
- var _this73 = this;
-
- var self = this,
- oldParams,
- pageParams;
-
- return new Promise(function (resolve, reject) {
-
- if (!self.table.modExists("ajax", true)) {
- reject();
- }
-
- //record old params and restore after request has been made
- oldParams = Tabulator.prototype.helpers.deepClone(self.table.modules.ajax.getParams() || {});
- pageParams = self.table.modules.ajax.getParams();
-
- //configure request params
- pageParams[_this73.dataSentNames.page] = self.page;
-
- //set page size if defined
- if (_this73.size) {
- pageParams[_this73.dataSentNames.size] = _this73.size;
- }
-
- //set sort data if defined
- if (_this73.table.options.ajaxSorting && _this73.table.modExists("sort")) {
- var sorters = self.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
- delete item.column;
- });
-
- pageParams[_this73.dataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
- if (_this73.table.options.ajaxFiltering && _this73.table.modExists("filter")) {
- var filters = self.table.modules.filter.getFilters(true, true);
- pageParams[_this73.dataSentNames.filters] = filters;
- }
-
- self.table.modules.ajax.setParams(pageParams);
-
- self.table.modules.ajax.sendRequest(_this73.progressiveLoad).then(function (data) {
- self._parseRemoteData(data);
- resolve();
- }).catch(function (e) {
- reject();
- });
-
- self.table.modules.ajax.setParams(oldParams);
- });
- };
-
- Page.prototype._parseRemoteData = function (data) {
- var self = this,
- left,
- data,
- margin;
-
- if (typeof data[this.dataReceivedNames.last_page] === "undefined") {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.last_page + "' property");
- }
-
- if (data[this.dataReceivedNames.data]) {
- this.max = parseInt(data[this.dataReceivedNames.last_page]) || 1;
-
- if (this.progressiveLoad) {
- switch (this.mode) {
- case "progressive_load":
-
- if (this.page == 1) {
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
- } else {
- this.table.rowManager.addRows(data[this.dataReceivedNames.data]);
- }
-
- if (this.page < this.max) {
- setTimeout(function () {
- self.nextPage().then(function () {}).catch(function () {});
- }, self.table.options.ajaxProgressiveLoadDelay);
- }
- break;
-
- case "progressive_scroll":
- data = this.table.rowManager.getData().concat(data[this.dataReceivedNames.data]);
-
- this.table.rowManager.setData(data, true, this.initialLoad && this.page == 1);
-
- margin = this.table.options.ajaxProgressiveLoadScrollMargin || this.table.rowManager.element.clientHeight * 2;
-
- if (self.table.rowManager.element.scrollHeight <= self.table.rowManager.element.clientHeight + margin) {
- self.nextPage().then(function () {}).catch(function () {});
- }
- break;
- }
- } else {
- left = this.table.rowManager.scrollLeft;
-
- this.table.rowManager.setData(data[this.dataReceivedNames.data], false, this.initialLoad && this.page == 1);
-
- this.table.rowManager.scrollHorizontal(left);
-
- this.table.columnManager.scrollHorizontal(left);
-
- this.table.options.pageLoaded.call(this.table, this.getPage());
- }
-
- this.initialLoad = false;
- } else {
- console.warn("Remote Pagination Error - Server response missing '" + this.dataReceivedNames.data + "' property");
- }
- };
-
- //handle the footer element being redrawn
- Page.prototype.footerRedraw = function () {
- var footer = this.table.footerManager.element;
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- } else {
- this.pagesElement.style.display = '';
-
- if (Math.ceil(footer.clientWidth) - footer.scrollWidth < 0) {
- this.pagesElement.style.display = 'none';
- }
- }
- };
-
- //set the paramter names for pagination requests
- Page.prototype.paginationDataSentNames = {
- "page": "page",
- "size": "size",
- "sorters": "sorters",
- // "sort_dir":"sort_dir",
- "filters": "filters"
- // "filter_value":"filter_value",
- // "filter_type":"filter_type",
- };
-
- //set the property names for pagination responses
- Page.prototype.paginationDataReceivedNames = {
- "current_page": "current_page",
- "last_page": "last_page",
- "data": "data"
- };
-
- Tabulator.prototype.registerModule("page", Page);
-
- var Persistence = function Persistence(table) {
- this.table = table; //hold Tabulator object
- this.mode = "";
- this.id = "";
- // this.persistProps = ["field", "width", "visible"];
- this.defWatcherBlock = false;
- this.config = {};
- this.readFunc = false;
- this.writeFunc = false;
- };
-
- // Test for whether localStorage is available for use.
- Persistence.prototype.localStorageTest = function () {
- var testKey = "_tabulator_test";
-
- try {
- window.localStorage.setItem(testKey, testKey);
- window.localStorage.removeItem(testKey);
- return true;
- } catch (e) {
- return false;
- }
- };
-
- //setup parameters
- Persistence.prototype.initialize = function () {
- //determine persistent layout storage type
-
- var mode = this.table.options.persistenceMode,
- id = this.table.options.persistenceID,
- retreivedData;
-
- this.mode = mode !== true ? mode : this.localStorageTest() ? "local" : "cookie";
-
- if (this.table.options.persistenceReaderFunc) {
- if (typeof this.table.options.persistenceReaderFunc === "function") {
- this.readFunc = this.table.options.persistenceReaderFunc;
- } else {
- if (this.readers[this.table.options.persistenceReaderFunc]) {
- this.readFunc = this.readers[this.table.options.persistenceReaderFunc];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.table.options.persistenceReaderFunc);
- }
- }
- } else {
- if (this.readers[this.mode]) {
- this.readFunc = this.readers[this.mode];
- } else {
- console.warn("Persistence Read Error - invalid reader set", this.mode);
- }
- }
-
- if (this.table.options.persistenceWriterFunc) {
- if (typeof this.table.options.persistenceWriterFunc === "function") {
- this.writeFunc = this.table.options.persistenceWriterFunc;
- } else {
- if (this.readers[this.table.options.persistenceWriterFunc]) {
- this.writeFunc = this.readers[this.table.options.persistenceWriterFunc];
- } else {
- console.warn("Persistence Write Error - invalid reader set", this.table.options.persistenceWriterFunc);
- }
- }
- } else {
- if (this.writers[this.mode]) {
- this.writeFunc = this.writers[this.mode];
- } else {
- console.warn("Persistence Write Error - invalid writer set", this.mode);
- }
- }
-
- //set storage tag
- this.id = "tabulator-" + (id || this.table.element.getAttribute("id") || "");
-
- this.config = {
- sort: this.table.options.persistence === true || this.table.options.persistence.sort,
- filter: this.table.options.persistence === true || this.table.options.persistence.filter,
- group: this.table.options.persistence === true || this.table.options.persistence.group,
- page: this.table.options.persistence === true || this.table.options.persistence.page,
- columns: this.table.options.persistence === true ? ["title", "width", "visible"] : this.table.options.persistence.columns
- };
-
- //load pagination data if needed
- if (this.config.page) {
- retreivedData = this.retreiveData("page");
-
- if (retreivedData) {
- if (typeof retreivedData.paginationSize !== "undefined" && (this.config.page === true || this.config.page.size)) {
- this.table.options.paginationSize = retreivedData.paginationSize;
- }
-
- if (typeof retreivedData.paginationInitialPage !== "undefined" && (this.config.page === true || this.config.page.page)) {
- this.table.options.paginationInitialPage = retreivedData.paginationInitialPage;
- }
- }
- }
-
- //load group data if needed
- if (this.config.group) {
- retreivedData = this.retreiveData("group");
-
- if (retreivedData) {
- if (typeof retreivedData.groupBy !== "undefined" && (this.config.group === true || this.config.group.groupBy)) {
- this.table.options.groupBy = retreivedData.groupBy;
- }
- if (typeof retreivedData.groupStartOpen !== "undefined" && (this.config.group === true || this.config.group.groupStartOpen)) {
- this.table.options.groupStartOpen = retreivedData.groupStartOpen;
- }
- if (typeof retreivedData.groupHeader !== "undefined" && (this.config.group === true || this.config.group.groupHeader)) {
- this.table.options.groupHeader = retreivedData.groupHeader;
- }
- }
- }
- };
-
- Persistence.prototype.initializeColumn = function (column) {
- var self = this,
- def,
- keys;
-
- if (this.config.columns) {
- this.defWatcherBlock = true;
-
- def = column.getDefinition();
-
- keys = this.config.columns === true ? Object.keys(def) : this.config.columns;
-
- keys.forEach(function (key) {
- var props = Object.getOwnPropertyDescriptor(def, key);
- var value = def[key];
- if (props) {
- Object.defineProperty(def, key, {
- set: function set(newValue) {
- value = newValue;
-
- if (!self.defWatcherBlock) {
- self.save("columns");
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
- if (props.get) {
- props.get();
- }
- return value;
- }
- });
- }
- });
-
- this.defWatcherBlock = false;
- }
- };
-
- //load saved definitions
- Persistence.prototype.load = function (type, current) {
- var data = this.retreiveData(type);
-
- if (current) {
- data = data ? this.mergeDefinition(current, data) : current;
- }
-
- return data;
- };
-
- //retreive data from memory
- Persistence.prototype.retreiveData = function (type) {
- return this.readFunc ? this.readFunc(this.id, type) : false;
- };
-
- //merge old and new column definitions
- Persistence.prototype.mergeDefinition = function (oldCols, newCols) {
- var self = this,
- output = [];
-
- // oldCols = oldCols || [];
- newCols = newCols || [];
-
- newCols.forEach(function (column, to) {
-
- var from = self._findColumn(oldCols, column),
- keys;
-
- if (from) {
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(from);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
- if (typeof column[key] !== "undefined") {
- from[key] = column[key];
- }
- });
-
- if (from.columns) {
- from.columns = self.mergeDefinition(from.columns, column.columns);
- }
-
- output.push(from);
- }
- });
-
- oldCols.forEach(function (column, i) {
- var from = self._findColumn(newCols, column);
- if (!from) {
- if (output.length > i) {
- output.splice(i, 0, column);
- } else {
- output.push(column);
- }
- }
- });
-
- return output;
- };
-
- //find matching columns
- Persistence.prototype._findColumn = function (columns, subject) {
- var type = subject.columns ? "group" : subject.field ? "field" : "object";
-
- return columns.find(function (col) {
- switch (type) {
- case "group":
- return col.title === subject.title && col.columns.length === subject.columns.length;
- break;
-
- case "field":
- return col.field === subject.field;
- break;
-
- case "object":
- return col === subject;
- break;
- }
- });
- };
-
- //save data
- Persistence.prototype.save = function (type) {
- var data = {};
-
- switch (type) {
- case "columns":
- data = this.parseColumns(this.table.columnManager.getColumns());
- break;
-
- case "filter":
- data = this.table.modules.filter.getFilters();
- break;
-
- case "sort":
- data = this.validateSorters(this.table.modules.sort.getSort());
- break;
-
- case "group":
- data = this.getGroupConfig();
- break;
-
- case "page":
- data = this.getPageConfig();
- break;
- }
-
- if (this.writeFunc) {
- this.writeFunc(this.id, type, data);
- }
- };
-
- //ensure sorters contain no function data
- Persistence.prototype.validateSorters = function (data) {
- data.forEach(function (item) {
- item.column = item.field;
- delete item.field;
- });
-
- return data;
- };
-
- Persistence.prototype.getGroupConfig = function () {
- if (this.config.group) {
- if (this.config.group === true || this.config.group.groupBy) {
- data.groupBy = this.table.options.groupBy;
- }
-
- if (this.config.group === true || this.config.group.groupStartOpen) {
- data.groupStartOpen = this.table.options.groupStartOpen;
- }
-
- if (this.config.group === true || this.config.group.groupHeader) {
- data.groupHeader = this.table.options.groupHeader;
- }
- }
-
- return data;
- };
-
- Persistence.prototype.getPageConfig = function () {
- var data = {};
-
- if (this.config.page) {
- if (this.config.page === true || this.config.page.size) {
- data.paginationSize = this.table.modules.page.getPageSize();
- }
-
- if (this.config.page === true || this.config.page.page) {
- data.paginationInitialPage = this.table.modules.page.getPage();
- }
- }
-
- return data;
- };
-
- //parse columns for data to store
- Persistence.prototype.parseColumns = function (columns) {
- var self = this,
- definitions = [];
-
- columns.forEach(function (column) {
- var defStore = {},
- colDef = column.getDefinition(),
- keys;
-
- if (column.isGroup) {
- defStore.title = colDef.title;
- defStore.columns = self.parseColumns(column.getColumns());
- } else {
- defStore.field = column.getField();
-
- if (self.config.columns === true || self.config.columns == undefined) {
- keys = Object.keys(colDef);
- keys.push("width");
- } else {
- keys = self.config.columns;
- }
-
- keys.forEach(function (key) {
-
- switch (key) {
- case "width":
- defStore.width = column.getWidth();
- break;
- case "visible":
- defStore.visible = column.visible;
- break;
-
- default:
- defStore[key] = colDef[key];
- }
- });
- }
-
- definitions.push(defStore);
- });
-
- return definitions;
- };
-
- // read peristence information from storage
- Persistence.prototype.readers = {
- local: function local(id, type) {
- var data = localStorage.getItem(id + "-" + type);
-
- return data ? JSON.parse(data) : false;
- },
- cookie: function cookie(id, type) {
- var cookie = document.cookie,
- key = id + "-" + type,
- cookiePos = cookie.indexOf(key + "="),
- end,
- data;
-
- //if cookie exists, decode and load column data into tabulator
- if (cookiePos > -1) {
- cookie = cookie.substr(cookiePos);
-
- end = cookie.indexOf(";");
-
- if (end > -1) {
- cookie = cookie.substr(0, end);
- }
-
- data = cookie.replace(key + "=", "");
- }
-
- return data ? JSON.parse(data) : false;
- }
- };
-
- //write persistence information to storage
- Persistence.prototype.writers = {
- local: function local(id, type, data) {
- localStorage.setItem(id + "-" + type, JSON.stringify(data));
- },
- cookie: function cookie(id, type, data) {
- var expireDate = new Date();
-
- expireDate.setDate(expireDate.getDate() + 10000);
-
- document.cookie = id + "-" + type + "=" + JSON.stringify(data) + "; expires=" + expireDate.toUTCString();
- }
- };
-
- Tabulator.prototype.registerModule("persistence", Persistence);
-
- var Print = function Print(table) {
- this.table = table; //hold Tabulator object
- this.element = false;
- this.manualBlock = false;
- };
-
- Print.prototype.initialize = function () {
- window.addEventListener("beforeprint", this.replaceTable.bind(this));
- window.addEventListener("afterprint", this.cleanup.bind(this));
- };
-
- Print.prototype.replaceTable = function () {
- if (!this.manualBlock) {
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-table");
-
- this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig, this.table.options.printStyled, this.table.options.printRowRange, "print"));
-
- this.table.element.style.display = "none";
-
- this.table.element.parentNode.insertBefore(this.element, this.table.element);
- }
- };
-
- Print.prototype.cleanup = function () {
- document.body.classList.remove("tabulator-print-fullscreen-hide");
-
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- this.table.element.style.display = "";
- }
- };
-
- Print.prototype.printFullscreen = function (visible, style, config) {
- var scrollX = window.scrollX,
- scrollY = window.scrollY,
- headerEl = document.createElement("div"),
- footerEl = document.createElement("div"),
- tableEl = this.table.modules.export.genereateTable(typeof config != "undefined" ? config : this.table.options.printConfig, typeof style != "undefined" ? style : this.table.options.printStyled, visible, "print"),
- headerContent,
- footerContent;
-
- this.manualBlock = true;
-
- this.element = document.createElement("div");
- this.element.classList.add("tabulator-print-fullscreen");
-
- if (this.table.options.printHeader) {
- headerEl.classList.add("tabulator-print-header");
-
- headerContent = typeof this.table.options.printHeader == "function" ? this.table.options.printHeader.call(this.table) : this.table.options.printHeader;
-
- if (typeof headerContent == "string") {
- headerEl.innerHTML = headerContent;
- } else {
- headerEl.appendChild(headerContent);
- }
-
- this.element.appendChild(headerEl);
- }
-
- this.element.appendChild(tableEl);
-
- if (this.table.options.printFooter) {
- footerEl.classList.add("tabulator-print-footer");
-
- footerContent = typeof this.table.options.printFooter == "function" ? this.table.options.printFooter.call(this.table) : this.table.options.printFooter;
-
- if (typeof footerContent == "string") {
- footerEl.innerHTML = footerContent;
- } else {
- footerEl.appendChild(footerContent);
- }
-
- this.element.appendChild(footerEl);
- }
-
- document.body.classList.add("tabulator-print-fullscreen-hide");
- document.body.appendChild(this.element);
-
- if (this.table.options.printFormatter) {
- this.table.options.printFormatter(this.element, tableEl);
- }
-
- window.print();
-
- this.cleanup();
-
- window.scrollTo(scrollX, scrollY);
-
- this.manualBlock = false;
- };
-
- Tabulator.prototype.registerModule("print", Print);
- var ReactiveData = function ReactiveData(table) {
- this.table = table; //hold Tabulator object
- this.data = false;
- this.blocked = false; //block reactivity while performing update
- this.origFuncs = {}; // hold original data array functions to allow replacement after data is done with
- this.currentVersion = 0;
- };
-
- ReactiveData.prototype.watchData = function (data) {
- var self = this,
- pushFunc,
- version;
-
- this.currentVersion++;
-
- version = this.currentVersion;
-
- self.unwatchData();
-
- self.data = data;
-
- //override array push function
- self.origFuncs.push = data.push;
-
- Object.defineProperty(self.data, "push", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, false);
- });
- }
-
- return self.origFuncs.push.apply(data, arguments);
- }
- });
-
- //override array unshift function
- self.origFuncs.unshift = data.unshift;
-
- Object.defineProperty(self.data, "unshift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments);
-
- if (!self.blocked && version === self.currentVersion) {
- args.forEach(function (arg) {
- self.table.rowManager.addRowActual(arg, true);
- });
- }
-
- return self.origFuncs.unshift.apply(data, arguments);
- }
- });
-
- //override array shift function
- self.origFuncs.shift = data.shift;
-
- Object.defineProperty(self.data, "shift", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
-
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[0]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
-
- return self.origFuncs.shift.call(data);
- }
- });
-
- //override array pop function
- self.origFuncs.pop = data.pop;
-
- Object.defineProperty(self.data, "pop", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var row;
- if (!self.blocked && version === self.currentVersion) {
- if (self.data.length) {
- row = self.table.rowManager.getRowFromDataObject(self.data[self.data.length - 1]);
-
- if (row) {
- row.deleteActual();
- }
- }
- }
- return self.origFuncs.pop.call(data);
- }
- });
-
- //override array splice function
- self.origFuncs.splice = data.splice;
-
- Object.defineProperty(self.data, "splice", {
- enumerable: false,
- configurable: true,
- value: function value() {
- var args = Array.from(arguments),
- start = args[0] < 0 ? data.length + args[0] : args[0],
- end = args[1],
- newRows = args[2] ? args.slice(2) : false,
- startRow;
-
- if (!self.blocked && version === self.currentVersion) {
-
- //add new rows
- if (newRows) {
- startRow = data[start] ? self.table.rowManager.getRowFromDataObject(data[start]) : false;
-
- if (startRow) {
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, startRow, true);
- });
- } else {
- newRows = newRows.slice().reverse();
-
- newRows.forEach(function (rowData) {
- self.table.rowManager.addRowActual(rowData, true, false, true);
- });
- }
- }
-
- //delete removed rows
- if (end !== 0) {
- var oldRows = data.slice(start, typeof args[1] === "undefined" ? args[1] : start + end);
-
- oldRows.forEach(function (rowData, i) {
- var row = self.table.rowManager.getRowFromDataObject(rowData);
-
- if (row) {
- row.deleteActual(i !== oldRows.length - 1);
- }
- });
- }
-
- if (newRows || end !== 0) {
- self.table.rowManager.reRenderInPosition();
- }
- }
-
- return self.origFuncs.splice.apply(data, arguments);
- }
- });
- };
-
- ReactiveData.prototype.unwatchData = function () {
- if (this.data !== false) {
- for (var key in this.origFuncs) {
- Object.defineProperty(this.data, key, {
- enumerable: true,
- configurable: true,
- writable: true,
- value: this.origFuncs.key
- });
- }
- }
- };
-
- ReactiveData.prototype.watchRow = function (row) {
- var self = this,
- data = row.getData();
-
- this.blocked = true;
-
- for (var key in data) {
- this.watchKey(row, data, key);
- }
-
- this.blocked = false;
- };
-
- ReactiveData.prototype.watchKey = function (row, data, key) {
- var self = this,
- props = Object.getOwnPropertyDescriptor(data, key),
- value = data[key],
- version = this.currentVersion;
-
- Object.defineProperty(data, key, {
- set: function set(newValue) {
- value = newValue;
- if (!self.blocked && version === self.currentVersion) {
- var update = {};
- update[key] = newValue;
- row.updateData(update);
- }
-
- if (props.set) {
- props.set(newValue);
- }
- },
- get: function get() {
-
- if (props.get) {
- props.get();
- }
-
- return value;
- }
- });
- };
-
- ReactiveData.prototype.unwatchRow = function (row) {
- var data = row.getData();
-
- for (var key in data) {
- Object.defineProperty(data, key, {
- value: data[key]
- });
- }
- };
-
- ReactiveData.prototype.block = function () {
- this.blocked = true;
- };
-
- ReactiveData.prototype.unblock = function () {
- this.blocked = false;
- };
-
- Tabulator.prototype.registerModule("reactiveData", ReactiveData);
-
- var ResizeColumns = function ResizeColumns(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startX = false;
- this.startWidth = false;
- this.handle = null;
- this.prevHandle = null;
- };
-
- ResizeColumns.prototype.initializeColumn = function (type, column, element) {
- var self = this,
- variableHeight = false,
- mode = this.table.options.resizableColumns;
-
- //set column resize mode
- if (type === "header") {
- variableHeight = column.definition.formatter == "textarea" || column.definition.variableHeight;
- column.modules.resize = { variableHeight: variableHeight };
- }
-
- if (mode === true || mode == type) {
-
- var handle = document.createElement('div');
- handle.className = "tabulator-col-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-col-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- var nearestColumn = column.getLastColumn();
-
- if (nearestColumn && self._checkResizability(nearestColumn)) {
- self.startColumn = column;
- self._mouseDown(e, nearestColumn, handle);
- }
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- //reszie column on double click
- handle.addEventListener("dblclick", function (e) {
- var col = column.getLastColumn();
-
- if (col && self._checkResizability(col)) {
- e.stopPropagation();
- col.reinitializeWidth(true);
- }
- });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- self.startColumn = column;
- self._mouseDown(e, prevColumn, prevHandle);
- }
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- //resize column on double click
- prevHandle.addEventListener("dblclick", function (e) {
- var nearestColumn, colIndex, prevColumn;
-
- nearestColumn = column.getFirstColumn();
-
- if (nearestColumn) {
- colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
- prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
-
- if (prevColumn && self._checkResizability(prevColumn)) {
- e.stopPropagation();
- prevColumn.reinitializeWidth(true);
- }
- }
- });
-
- element.appendChild(handle);
- element.appendChild(prevHandle);
- }
- };
-
- ResizeColumns.prototype._checkResizability = function (column) {
- return typeof column.definition.resizable != "undefined" ? column.definition.resizable : this.table.options.resizableColumns;
- };
-
- ResizeColumns.prototype._mouseDown = function (e, column, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- // self.table.columnManager.tempScrollBlock();
-
- column.setWidth(self.startWidth + ((typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX) - self.startX));
-
- if (!self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
- }
-
- function mouseUp(e) {
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = false;
- }
-
- if (self.table.browserSlow && column.modules.resize && column.modules.resize.variableHeight) {
- column.checkCellHeights();
- }
-
- document.body.removeEventListener("mouseup", mouseUp);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- if (self.table.options.persistence && self.table.modExists("persistence", true) && self.table.modules.persistence.config.columns) {
- self.table.modules.persistence.save("columns");
- }
-
- self.table.options.columnResized.call(self.table, column.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- if (self.startColumn.modules.edit) {
- self.startColumn.modules.edit.blocked = true;
- }
-
- self.startX = typeof e.screenX === "undefined" ? e.touches[0].screenX : e.screenX;
- self.startWidth = column.getWidth();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
- };
-
- Tabulator.prototype.registerModule("resizeColumns", ResizeColumns);
- var ResizeRows = function ResizeRows(table) {
- this.table = table; //hold Tabulator object
- this.startColumn = false;
- this.startY = false;
- this.startHeight = false;
- this.handle = null;
- this.prevHandle = null;
- };
-
- ResizeRows.prototype.initializeRow = function (row) {
- var self = this,
- rowEl = row.getElement();
-
- var handle = document.createElement('div');
- handle.className = "tabulator-row-resize-handle";
-
- var prevHandle = document.createElement('div');
- prevHandle.className = "tabulator-row-resize-handle prev";
-
- handle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var handleDown = function handleDown(e) {
- self.startRow = row;
- self._mouseDown(e, row, handle);
- };
-
- handle.addEventListener("mousedown", handleDown);
- handle.addEventListener("touchstart", handleDown, { passive: true });
-
- prevHandle.addEventListener("click", function (e) {
- e.stopPropagation();
- });
-
- var prevHandleDown = function prevHandleDown(e) {
- var prevRow = self.table.rowManager.prevDisplayRow(row);
-
- if (prevRow) {
- self.startRow = prevRow;
- self._mouseDown(e, prevRow, prevHandle);
- }
- };
-
- prevHandle.addEventListener("mousedown", prevHandleDown);
- prevHandle.addEventListener("touchstart", prevHandleDown, { passive: true });
-
- rowEl.appendChild(handle);
- rowEl.appendChild(prevHandle);
- };
-
- ResizeRows.prototype._mouseDown = function (e, row, handle) {
- var self = this;
-
- self.table.element.classList.add("tabulator-block-select");
-
- function mouseMove(e) {
- row.setHeight(self.startHeight + ((typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY) - self.startY));
- }
-
- function mouseUp(e) {
-
- // //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = false;
- // }
-
- document.body.removeEventListener("mouseup", mouseMove);
- document.body.removeEventListener("mousemove", mouseMove);
-
- handle.removeEventListener("touchmove", mouseMove);
- handle.removeEventListener("touchend", mouseUp);
-
- self.table.element.classList.remove("tabulator-block-select");
-
- self.table.options.rowResized.call(this.table, row.getComponent());
- }
-
- e.stopPropagation(); //prevent resize from interfereing with movable columns
-
- //block editor from taking action while resizing is taking place
- // if(self.startColumn.modules.edit){
- // self.startColumn.modules.edit.blocked = true;
- // }
-
- self.startY = typeof e.screenY === "undefined" ? e.touches[0].screenY : e.screenY;
- self.startHeight = row.getHeight();
-
- document.body.addEventListener("mousemove", mouseMove);
- document.body.addEventListener("mouseup", mouseUp);
-
- handle.addEventListener("touchmove", mouseMove, { passive: true });
- handle.addEventListener("touchend", mouseUp);
- };
-
- Tabulator.prototype.registerModule("resizeRows", ResizeRows);
- var ResizeTable = function ResizeTable(table) {
- this.table = table; //hold Tabulator object
- this.binding = false;
- this.observer = false;
- this.containerObserver = false;
-
- this.tableHeight = 0;
- this.tableWidth = 0;
- this.containerHeight = 0;
- this.containerWidth = 0;
-
- this.autoResize = false;
- };
-
- ResizeTable.prototype.initialize = function (row) {
- var _this74 = this;
-
- var table = this.table,
- tableStyle;
-
- this.tableHeight = table.element.clientHeight;
- this.tableWidth = table.element.clientWidth;
-
- if (table.element.parentNode) {
- this.containerHeight = table.element.parentNode.clientHeight;
- this.containerWidth = table.element.parentNode.clientWidth;
- }
-
- if (typeof ResizeObserver !== "undefined" && table.rowManager.getRenderMode() === "virtual") {
-
- this.autoResize = true;
-
- this.observer = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this74.tableHeight != nodeHeight || _this74.tableWidth != nodeWidth) {
- _this74.tableHeight = nodeHeight;
- _this74.tableWidth = nodeWidth;
-
- if (table.element.parentNode) {
- _this74.containerHeight = table.element.parentNode.clientHeight;
- _this74.containerWidth = table.element.parentNode.clientWidth;
- }
-
- table.redraw();
- }
- }
- });
-
- this.observer.observe(table.element);
-
- tableStyle = window.getComputedStyle(table.element);
-
- if (this.table.element.parentNode && !this.table.rowManager.fixedHeight && (tableStyle.getPropertyValue("max-height") || tableStyle.getPropertyValue("min-height"))) {
-
- this.containerObserver = new ResizeObserver(function (entry) {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
-
- var nodeHeight = Math.floor(entry[0].contentRect.height);
- var nodeWidth = Math.floor(entry[0].contentRect.width);
-
- if (_this74.containerHeight != nodeHeight || _this74.containerWidth != nodeWidth) {
- _this74.containerHeight = nodeHeight;
- _this74.containerWidth = nodeWidth;
- _this74.tableHeight = table.element.clientHeight;
- _this74.tableWidth = table.element.clientWidth;
-
- table.redraw();
- }
-
- table.redraw();
- }
- });
-
- this.containerObserver.observe(this.table.element.parentNode);
- }
- } else {
- this.binding = function () {
- if (!table.browserMobile || table.browserMobile && !table.modules.edit.currentCell) {
- table.redraw();
- }
- };
-
- window.addEventListener("resize", this.binding);
- }
- };
-
- ResizeTable.prototype.clearBindings = function (row) {
- if (this.binding) {
- window.removeEventListener("resize", this.binding);
- }
-
- if (this.observer) {
- this.observer.unobserve(this.table.element);
- }
-
- if (this.containerObserver) {
- this.containerObserver.unobserve(this.table.element.parentNode);
- }
- };
-
- Tabulator.prototype.registerModule("resizeTable", ResizeTable);
- var ResponsiveLayout = function ResponsiveLayout(table) {
- this.table = table; //hold Tabulator object
- this.columns = [];
- this.hiddenColumns = [];
- this.mode = "";
- this.index = 0;
- this.collapseFormatter = [];
- this.collapseStartOpen = true;
- this.collapseHandleColumn = false;
- };
-
- //generate resposive columns list
- ResponsiveLayout.prototype.initialize = function () {
- var self = this,
- columns = [];
-
- this.mode = this.table.options.responsiveLayout;
- this.collapseFormatter = this.table.options.responsiveLayoutCollapseFormatter || this.formatCollapsedData;
- this.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen;
- this.hiddenColumns = [];
-
- //detemine level of responsivity for each column
- this.table.columnManager.columnsByIndex.forEach(function (column, i) {
- if (column.modules.responsive) {
- if (column.modules.responsive.order && column.modules.responsive.visible) {
- column.modules.responsive.index = i;
- columns.push(column);
-
- if (!column.visible && self.mode === "collapse") {
- self.hiddenColumns.push(column);
- }
- }
- }
- });
-
- //sort list by responsivity
- columns = columns.reverse();
- columns = columns.sort(function (a, b) {
- var diff = b.modules.responsive.order - a.modules.responsive.order;
- return diff || b.modules.responsive.index - a.modules.responsive.index;
- });
-
- this.columns = columns;
-
- if (this.mode === "collapse") {
- this.generateCollapsedContent();
- }
-
- //assign collapse column
- for (var _iterator = this.table.columnManager.columnsByIndex, _isArray = Array.isArray(_iterator), _i12 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
- var _ref;
-
- if (_isArray) {
- if (_i12 >= _iterator.length) break;
- _ref = _iterator[_i12++];
- } else {
- _i12 = _iterator.next();
- if (_i12.done) break;
- _ref = _i12.value;
- }
-
- var col = _ref;
-
- if (col.definition.formatter == "responsiveCollapse") {
- this.collapseHandleColumn = col;
- break;
- }
- }
-
- if (this.collapseHandleColumn) {
- if (this.hiddenColumns.length) {
- this.collapseHandleColumn.show();
- } else {
- this.collapseHandleColumn.hide();
- }
- }
- };
-
- //define layout information
- ResponsiveLayout.prototype.initializeColumn = function (column) {
- var def = column.getDefinition();
-
- column.modules.responsive = { order: typeof def.responsive === "undefined" ? 1 : def.responsive, visible: def.visible === false ? false : true };
- };
-
- ResponsiveLayout.prototype.initializeRow = function (row) {
- var el;
-
- if (row.type !== "calc") {
- el = document.createElement("div");
- el.classList.add("tabulator-responsive-collapse");
-
- row.modules.responsiveLayout = {
- element: el,
- open: this.collapseStartOpen
- };
-
- if (!this.collapseStartOpen) {
- el.style.display = 'none';
- }
- }
- };
-
- ResponsiveLayout.prototype.layoutRow = function (row) {
- var rowEl = row.getElement();
-
- if (row.modules.responsiveLayout) {
- rowEl.appendChild(row.modules.responsiveLayout.element);
- this.generateCollapsedRowContent(row);
- }
- };
-
- //update column visibility
- ResponsiveLayout.prototype.updateColumnVisibility = function (column, visible) {
- var index;
- if (column.modules.responsive) {
- column.modules.responsive.visible = visible;
- this.initialize();
- }
- };
-
- ResponsiveLayout.prototype.hideColumn = function (column) {
- var colCount = this.hiddenColumns.length;
-
- column.hide(false, true);
-
- if (this.mode === "collapse") {
- this.hiddenColumns.unshift(column);
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !colCount) {
- this.collapseHandleColumn.show();
- }
- }
- };
-
- ResponsiveLayout.prototype.showColumn = function (column) {
- var index;
-
- column.show(false, true);
- //set column width to prevent calculation loops on uninitialized columns
- column.setWidth(column.getWidth());
-
- if (this.mode === "collapse") {
- index = this.hiddenColumns.indexOf(column);
-
- if (index > -1) {
- this.hiddenColumns.splice(index, 1);
- }
-
- this.generateCollapsedContent();
-
- if (this.collapseHandleColumn && !this.hiddenColumns.length) {
- this.collapseHandleColumn.hide();
- }
- }
- };
-
- //redraw columns to fit space
- ResponsiveLayout.prototype.update = function () {
- var self = this,
- working = true;
-
- while (working) {
-
- var width = self.table.modules.layout.getMode() == "fitColumns" ? self.table.columnManager.getFlexBaseWidth() : self.table.columnManager.getWidth();
-
- var diff = (self.table.options.headerVisible ? self.table.columnManager.element.clientWidth : self.table.element.clientWidth) - width;
-
- if (diff < 0) {
- //table is too wide
- var column = self.columns[self.index];
-
- if (column) {
- self.hideColumn(column);
- self.index++;
- } else {
- working = false;
- }
- } else {
-
- //table has spare space
- var _column = self.columns[self.index - 1];
-
- if (_column) {
- if (diff > 0) {
- if (diff >= _column.getWidth()) {
- self.showColumn(_column);
- self.index--;
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- } else {
- working = false;
- }
- }
-
- if (!self.table.rowManager.activeRowsCount) {
- self.table.rowManager.renderEmptyScroll();
- }
- }
- };
-
- ResponsiveLayout.prototype.generateCollapsedContent = function () {
- var self = this,
- rows = this.table.rowManager.getDisplayRows();
-
- rows.forEach(function (row) {
- self.generateCollapsedRowContent(row);
- });
- };
-
- ResponsiveLayout.prototype.generateCollapsedRowContent = function (row) {
- var el, contents;
-
- if (row.modules.responsiveLayout) {
- el = row.modules.responsiveLayout.element;
-
- while (el.firstChild) {
- el.removeChild(el.firstChild);
- }contents = this.collapseFormatter(this.generateCollapsedRowData(row));
- if (contents) {
- el.appendChild(contents);
- }
- }
- };
-
- ResponsiveLayout.prototype.generateCollapsedRowData = function (row) {
- var self = this,
- data = row.getData(),
- output = [],
- mockCellComponent;
-
- this.hiddenColumns.forEach(function (column) {
- var value = column.getFieldValue(data);
-
- if (column.definition.title && column.field) {
- if (column.modules.format && self.table.options.responsiveLayoutCollapseUseFormatters) {
-
- mockCellComponent = {
- value: false,
- data: {},
- getValue: function getValue() {
- return value;
- },
- getData: function getData() {
- return data;
- },
- getElement: function getElement() {
- return document.createElement("div");
- },
- getRow: function getRow() {
- return row.getComponent();
- },
- getColumn: function getColumn() {
- return column.getComponent();
- }
- };
-
- output.push({
- title: column.definition.title,
- value: column.modules.format.formatter.call(self.table.modules.format, mockCellComponent, column.modules.format.params)
- });
- } else {
- output.push({
- title: column.definition.title,
- value: value
- });
- }
- }
- });
-
- return output;
- };
-
- ResponsiveLayout.prototype.formatCollapsedData = function (data) {
- var list = document.createElement("table"),
- listContents = "";
-
- data.forEach(function (item) {
- var div = document.createElement("div");
-
- if (item.value instanceof Node) {
- div.appendChild(item.value);
- item.value = div.innerHTML;
- }
-
- listContents += "<tr><td><strong>" + item.title + "</strong></td><td>" + item.value + "</td></tr>";
- });
-
- list.innerHTML = listContents;
-
- return Object.keys(data).length ? list : "";
- };
-
- Tabulator.prototype.registerModule("responsiveLayout", ResponsiveLayout);
-
- var SelectRow = function SelectRow(table) {
- this.table = table; //hold Tabulator object
- this.selecting = false; //flag selecting in progress
- this.lastClickedRow = false; //last clicked row
- this.selectPrev = []; //hold previously selected element for drag drop selection
- this.selectedRows = []; //hold selected rows
- this.headerCheckboxElement = null; // hold header select element
- };
-
- SelectRow.prototype.clearSelectionData = function (silent) {
- this.selecting = false;
- this.lastClickedRow = false;
- this.selectPrev = [];
- this.selectedRows = [];
-
- if (!silent) {
- this._rowSelectionChanged();
- }
- };
-
- SelectRow.prototype.initializeRow = function (row) {
- var self = this,
- element = row.getElement();
-
- // trigger end of row selection
- var endSelect = function endSelect() {
-
- setTimeout(function () {
- self.selecting = false;
- }, 50);
-
- document.body.removeEventListener("mouseup", endSelect);
- };
-
- row.modules.select = { selected: false };
-
- //set row selection class
- if (self.table.options.selectableCheck.call(this.table, row.getComponent())) {
- element.classList.add("tabulator-selectable");
- element.classList.remove("tabulator-unselectable");
-
- if (self.table.options.selectable && self.table.options.selectable != "highlight") {
- if (self.table.options.selectableRangeMode === "click") {
- element.addEventListener("click", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
- self.lastClickedRow = self.lastClickedRow || row;
-
- var lastClickedRowIdx = self.table.rowManager.getDisplayRowIndex(self.lastClickedRow);
- var rowIdx = self.table.rowManager.getDisplayRowIndex(row);
-
- var fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx;
- var toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx;
-
- var rows = self.table.rowManager.getDisplayRows().slice(0);
- var toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1);
-
- if (e.ctrlKey || e.metaKey) {
- toggledRows.forEach(function (toggledRow) {
- if (toggledRow !== self.lastClickedRow) {
-
- if (self.table.options.selectable !== true && !self.isRowSelected(row)) {
- if (self.selectedRows.length < self.table.options.selectable) {
- self.toggleRow(toggledRow);
- }
- } else {
- self.toggleRow(toggledRow);
- }
- }
- });
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
-
- if (self.table.options.selectable !== true) {
- if (toggledRows.length > self.table.options.selectable) {
- toggledRows = toggledRows.slice(0, self.table.options.selectable);
- }
- }
-
- self.selectRows(toggledRows);
- }
- self.table._clearSelection();
- } else if (e.ctrlKey || e.metaKey) {
- self.toggleRow(row);
- self.lastClickedRow = row;
- } else {
- self.deselectRows(undefined, true);
- self.selectRows(row);
- self.lastClickedRow = row;
- }
- });
- } else {
- element.addEventListener("click", function (e) {
- if (!self.table.modExists("edit") || !self.table.modules.edit.getCurrentCell()) {
- self.table._clearSelection();
- }
-
- if (!self.selecting) {
- self.toggleRow(row);
- }
- });
-
- element.addEventListener("mousedown", function (e) {
- if (e.shiftKey) {
- self.table._clearSelection();
-
- self.selecting = true;
-
- self.selectPrev = [];
-
- document.body.addEventListener("mouseup", endSelect);
- document.body.addEventListener("keyup", endSelect);
-
- self.toggleRow(row);
-
- return false;
- }
- });
-
- element.addEventListener("mouseenter", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.toggleRow(row);
-
- if (self.selectPrev[1] == row) {
- self.toggleRow(self.selectPrev[0]);
- }
- }
- });
-
- element.addEventListener("mouseout", function (e) {
- if (self.selecting) {
- self.table._clearSelection();
- self.selectPrev.unshift(row);
- }
- });
- }
- }
- } else {
- element.classList.add("tabulator-unselectable");
- element.classList.remove("tabulator-selectable");
- }
- };
-
- //toggle row selection
- SelectRow.prototype.toggleRow = function (row) {
- if (this.table.options.selectableCheck.call(this.table, row.getComponent())) {
- if (row.modules.select && row.modules.select.selected) {
- this._deselectRow(row);
- } else {
- this._selectRow(row);
- }
- }
- };
-
- //select a number of rows
- SelectRow.prototype.selectRows = function (rows) {
- var _this75 = this;
-
- var rowMatch;
-
- switch (typeof rows === 'undefined' ? 'undefined' : _typeof(rows)) {
- case "undefined":
- this.table.rowManager.rows.forEach(function (row) {
- _this75._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- break;
-
- case "string":
-
- rowMatch = this.table.rowManager.findRow(rows);
-
- if (rowMatch) {
- this._selectRow(rowMatch, true, true);
- } else {
- this.table.rowManager.getRows(rows).forEach(function (row) {
- _this75._selectRow(row, true, true);
- });
- }
-
- this._rowSelectionChanged();
- break;
-
- default:
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- _this75._selectRow(row, true, true);
- });
-
- this._rowSelectionChanged();
- } else {
- this._selectRow(rows, false, true);
- }
- break;
- }
- };
-
- //select an individual row
- SelectRow.prototype._selectRow = function (rowInfo, silent, force) {
- var index;
-
- //handle max row count
- if (!isNaN(this.table.options.selectable) && this.table.options.selectable !== true && !force) {
- if (this.selectedRows.length >= this.table.options.selectable) {
- if (this.table.options.selectableRollingSelection) {
- this._deselectRow(this.selectedRows[0]);
- } else {
- return false;
- }
- }
- }
-
- var row = this.table.rowManager.findRow(rowInfo);
-
- if (row) {
- if (this.selectedRows.indexOf(row) == -1) {
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = true;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = true;
- }
- row.getElement().classList.add("tabulator-selected");
-
- this.selectedRows.push(row);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, true);
- }
-
- if (!silent) {
- this.table.options.rowSelected.call(this.table, row.getComponent());
- }
-
- this._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Selection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
- };
-
- SelectRow.prototype.isRowSelected = function (row) {
- return this.selectedRows.indexOf(row) !== -1;
- };
-
- //deselect a number of rows
- SelectRow.prototype.deselectRows = function (rows, silent) {
- var self = this,
- rowCount;
-
- if (typeof rows == "undefined") {
-
- rowCount = self.selectedRows.length;
-
- for (var _i13 = 0; _i13 < rowCount; _i13++) {
- self._deselectRow(self.selectedRows[0], true);
- }
-
- self._rowSelectionChanged(silent);
- } else {
- if (Array.isArray(rows)) {
- rows.forEach(function (row) {
- self._deselectRow(row, true);
- });
-
- self._rowSelectionChanged(silent);
- } else {
- self._deselectRow(rows, silent);
- }
- }
- };
-
- //deselect an individual row
- SelectRow.prototype._deselectRow = function (rowInfo, silent) {
- var self = this,
- row = self.table.rowManager.findRow(rowInfo),
- index;
-
- if (row) {
- index = self.selectedRows.findIndex(function (selectedRow) {
- return selectedRow == row;
- });
-
- if (index > -1) {
-
- if (!row.modules.select) {
- row.modules.select = {};
- }
-
- row.modules.select.selected = false;
- if (row.modules.select.checkboxEl) {
- row.modules.select.checkboxEl.checked = false;
- }
- row.getElement().classList.remove("tabulator-selected");
- self.selectedRows.splice(index, 1);
-
- if (this.table.options.dataTreeSelectPropagate) {
- this.childRowSelection(row, false);
- }
-
- if (!silent) {
- self.table.options.rowDeselected.call(this.table, row.getComponent());
- }
-
- self._rowSelectionChanged(silent);
- }
- } else {
- if (!silent) {
- console.warn("Deselection Error - No such row found, ignoring selection:" + rowInfo);
- }
- }
- };
-
- SelectRow.prototype.getSelectedData = function () {
- var data = [];
-
- this.selectedRows.forEach(function (row) {
- data.push(row.getData());
- });
-
- return data;
- };
-
- SelectRow.prototype.getSelectedRows = function () {
-
- var rows = [];
-
- this.selectedRows.forEach(function (row) {
- rows.push(row.getComponent());
- });
-
- return rows;
- };
-
- SelectRow.prototype._rowSelectionChanged = function (silent) {
- if (this.headerCheckboxElement) {
- if (this.selectedRows.length === 0) {
- this.headerCheckboxElement.checked = false;
- this.headerCheckboxElement.indeterminate = false;
- } else if (this.table.rowManager.rows.length === this.selectedRows.length) {
- this.headerCheckboxElement.checked = true;
- this.headerCheckboxElement.indeterminate = false;
- } else {
- this.headerCheckboxElement.indeterminate = true;
- this.headerCheckboxElement.checked = false;
- }
- }
-
- if (!silent) {
- this.table.options.rowSelectionChanged.call(this.table, this.getSelectedData(), this.getSelectedRows());
- }
- };
-
- SelectRow.prototype.registerRowSelectCheckbox = function (row, element) {
- if (!row._row.modules.select) {
- row._row.modules.select = {};
- }
-
- row._row.modules.select.checkboxEl = element;
- };
-
- SelectRow.prototype.registerHeaderSelectCheckbox = function (element) {
- this.headerCheckboxElement = element;
- };
-
- SelectRow.prototype.childRowSelection = function (row, select) {
- var children = this.table.modules.dataTree.getChildren(row);
-
- if (select) {
- for (var _iterator2 = children, _isArray2 = Array.isArray(_iterator2), _i14 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
- var _ref2;
-
- if (_isArray2) {
- if (_i14 >= _iterator2.length) break;
- _ref2 = _iterator2[_i14++];
- } else {
- _i14 = _iterator2.next();
- if (_i14.done) break;
- _ref2 = _i14.value;
- }
-
- var child = _ref2;
-
- this._selectRow(child, true);
- }
- } else {
- for (var _iterator3 = children, _isArray3 = Array.isArray(_iterator3), _i15 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
- var _ref3;
-
- if (_isArray3) {
- if (_i15 >= _iterator3.length) break;
- _ref3 = _iterator3[_i15++];
- } else {
- _i15 = _iterator3.next();
- if (_i15.done) break;
- _ref3 = _i15.value;
- }
-
- var _child = _ref3;
-
- this._deselectRow(_child, true);
- }
- }
- };
-
- Tabulator.prototype.registerModule("selectRow", SelectRow);
-
- var Sort = function Sort(table) {
- this.table = table; //hold Tabulator object
- this.sortList = []; //holder current sort
- this.changed = false; //has the sort changed since last render
- };
-
- //initialize column header for sorting
- Sort.prototype.initializeColumn = function (column, content) {
- var self = this,
- sorter = false,
- colEl,
- arrowEl;
-
- switch (_typeof(column.definition.sorter)) {
- case "string":
- if (self.sorters[column.definition.sorter]) {
- sorter = self.sorters[column.definition.sorter];
- } else {
- console.warn("Sort Error - No such sorter found: ", column.definition.sorter);
- }
- break;
-
- case "function":
- sorter = column.definition.sorter;
- break;
- }
-
- column.modules.sort = {
- sorter: sorter, dir: "none",
- params: column.definition.sorterParams || {},
- startingDir: column.definition.headerSortStartingDir || "asc",
- tristate: typeof column.definition.headerSortTristate !== "undefined" ? column.definition.headerSortTristate : this.table.options.headerSortTristate
- };
-
- if (typeof column.definition.headerSort === "undefined" ? this.table.options.headerSort !== false : column.definition.headerSort !== false) {
-
- colEl = column.getElement();
-
- colEl.classList.add("tabulator-sortable");
-
- arrowEl = document.createElement("div");
- arrowEl.classList.add("tabulator-arrow");
- //create sorter arrow
- content.appendChild(arrowEl);
-
- //sort on click
- colEl.addEventListener("click", function (e) {
- var dir = "",
- sorters = [],
- match = false;
-
- if (column.modules.sort) {
- if (column.modules.sort.tristate) {
- if (column.modules.sort.dir == "none") {
- dir = column.modules.sort.startingDir;
- } else {
- if (column.modules.sort.dir == column.modules.sort.startingDir) {
- dir = column.modules.sort.dir == "asc" ? "desc" : "asc";
- } else {
- dir = "none";
- }
- }
- } else {
- switch (column.modules.sort.dir) {
- case "asc":
- dir = "desc";
- break;
-
- case "desc":
- dir = "asc";
- break;
-
- default:
- dir = column.modules.sort.startingDir;
- }
- }
-
- if (self.table.options.columnHeaderSortMulti && (e.shiftKey || e.ctrlKey)) {
- sorters = self.getSort();
-
- match = sorters.findIndex(function (sorter) {
- return sorter.field === column.getField();
- });
-
- if (match > -1) {
- sorters[match].dir = dir;
-
- if (match != sorters.length - 1) {
- match = sorters.splice(match, 1)[0];
- if (dir != "none") {
- sorters.push(match);
- }
- }
- } else {
- if (dir != "none") {
- sorters.push({ column: column, dir: dir });
- }
- }
-
- //add to existing sort
- self.setSort(sorters);
- } else {
- if (dir == "none") {
- self.clear();
- } else {
- //sort by column only
- self.setSort(column, dir);
- }
- }
-
- self.table.rowManager.sorterRefresh(!self.sortList.length);
- }
- });
- }
- };
-
- //check if the sorters have changed since last use
- Sort.prototype.hasChanged = function () {
- var changed = this.changed;
- this.changed = false;
- return changed;
- };
-
- //return current sorters
- Sort.prototype.getSort = function () {
- var self = this,
- sorters = [];
-
- self.sortList.forEach(function (item) {
- if (item.column) {
- sorters.push({ column: item.column.getComponent(), field: item.column.getField(), dir: item.dir });
- }
- });
-
- return sorters;
- };
-
- //change sort list and trigger sort
- Sort.prototype.setSort = function (sortList, dir) {
- var self = this,
- newSortList = [];
-
- if (!Array.isArray(sortList)) {
- sortList = [{ column: sortList, dir: dir }];
- }
-
- sortList.forEach(function (item) {
- var column;
-
- column = self.table.columnManager.findColumn(item.column);
-
- if (column) {
- item.column = column;
- newSortList.push(item);
- self.changed = true;
- } else {
- console.warn("Sort Warning - Sort field does not exist and is being ignored: ", item.column);
- }
- });
-
- self.sortList = newSortList;
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.sort) {
- this.table.modules.persistence.save("sort");
- }
- };
-
- //clear sorters
- Sort.prototype.clear = function () {
- this.setSort([]);
- };
-
- //find appropriate sorter for column
- Sort.prototype.findSorter = function (column) {
- var row = this.table.rowManager.activeRows[0],
- sorter = "string",
- field,
- value;
-
- if (row) {
- row = row.getData();
- field = column.getField();
-
- if (field) {
-
- value = column.getFieldValue(row);
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "undefined":
- sorter = "string";
- break;
-
- case "boolean":
- sorter = "boolean";
- break;
-
- default:
- if (!isNaN(value) && value !== "") {
- sorter = "number";
- } else {
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
- sorter = "alphanum";
- }
- }
- break;
- }
- }
- }
-
- return this.sorters[sorter];
- };
-
- //work through sort list sorting data
- Sort.prototype.sort = function (data) {
- var self = this,
- sortList = this.table.options.sortOrderReverse ? self.sortList.slice().reverse() : self.sortList,
- sortListActual = [],
- rowComponents = [],
- lastSort;
-
- if (self.table.options.dataSorting) {
- self.table.options.dataSorting.call(self.table, self.getSort());
- }
-
- self.clearColumnHeaders();
-
- if (!self.table.options.ajaxSorting) {
-
- //build list of valid sorters and trigger column specific callbacks before sort begins
- sortList.forEach(function (item, i) {
- var sortObj = item.column.modules.sort;
-
- if (item.column && sortObj) {
-
- //if no sorter has been defined, take a guess
- if (!sortObj.sorter) {
- sortObj.sorter = self.findSorter(item.column);
- }
-
- item.params = typeof sortObj.params === "function" ? sortObj.params(item.column.getComponent(), item.dir) : sortObj.params;
-
- sortListActual.push(item);
- }
-
- self.setColumnHeader(item.column, item.dir);
- });
-
- //sort data
- if (sortListActual.length) {
- self._sortItems(data, sortListActual);
- }
- } else {
- sortList.forEach(function (item, i) {
- self.setColumnHeader(item.column, item.dir);
- });
- }
-
- if (self.table.options.dataSorted) {
- data.forEach(function (row) {
- rowComponents.push(row.getComponent());
- });
-
- self.table.options.dataSorted.call(self.table, self.getSort(), rowComponents);
- }
- };
-
- //clear sort arrows on columns
- Sort.prototype.clearColumnHeaders = function () {
- this.table.columnManager.getRealColumns().forEach(function (column) {
- if (column.modules.sort) {
- column.modules.sort.dir = "none";
- column.getElement().setAttribute("aria-sort", "none");
- }
- });
- };
-
- //set the column header sort direction
- Sort.prototype.setColumnHeader = function (column, dir) {
- column.modules.sort.dir = dir;
- column.getElement().setAttribute("aria-sort", dir);
- };
-
- //sort each item in sort list
- Sort.prototype._sortItems = function (data, sortList) {
- var _this76 = this;
-
- var sorterCount = sortList.length - 1;
-
- data.sort(function (a, b) {
- var result;
-
- for (var i = sorterCount; i >= 0; i--) {
- var sortItem = sortList[i];
-
- result = _this76._sortRow(a, b, sortItem.column, sortItem.dir, sortItem.params);
-
- if (result !== 0) {
- break;
- }
- }
-
- return result;
- });
- };
-
- //process individual rows for a sort function on active data
- Sort.prototype._sortRow = function (a, b, column, dir, params) {
- var el1Comp, el2Comp, colComp;
-
- //switch elements depending on search direction
- var el1 = dir == "asc" ? a : b;
- var el2 = dir == "asc" ? b : a;
-
- a = column.getFieldValue(el1.getData());
- b = column.getFieldValue(el2.getData());
-
- a = typeof a !== "undefined" ? a : "";
- b = typeof b !== "undefined" ? b : "";
-
- el1Comp = el1.getComponent();
- el2Comp = el2.getComponent();
-
- return column.modules.sort.sorter.call(this, a, b, el1Comp, el2Comp, column.getComponent(), dir, params);
- };
-
- //default data sorters
- Sort.prototype.sorters = {
-
- //sort numbers
- number: function number(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var decimal = params.decimalSeparator || ".";
- var thousand = params.thousandSeparator || ",";
- var emptyAlign = 0;
-
- a = parseFloat(String(a).split(thousand).join("").split(decimal).join("."));
- b = parseFloat(String(b).split(thousand).join("").split(decimal).join("."));
-
- //handle non numeric values
- if (isNaN(a)) {
- emptyAlign = isNaN(b) ? 0 : -1;
- } else if (isNaN(b)) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort strings
- string: function string(a, b, aRow, bRow, column, dir, params) {
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
- var locale;
-
- //handle empty values
- if (!a) {
- emptyAlign = !b ? 0 : -1;
- } else if (!b) {
- emptyAlign = 1;
- } else {
- //compare valid values
- switch (_typeof(params.locale)) {
- case "boolean":
- if (params.locale) {
- locale = this.table.modules.localize.getLocale();
- }
- break;
- case "string":
- locale = params.locale;
- break;
- }
-
- return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort date
- date: function date(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "DD/MM/YYYY";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort HH:mm formatted times
- time: function time(a, b, aRow, bRow, column, dir, params) {
- if (!params.format) {
- params.format = "HH:mm";
- }
-
- return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
- },
-
- //sort datetime
- datetime: function datetime(a, b, aRow, bRow, column, dir, params) {
- var format = params.format || "DD/MM/YYYY HH:mm:ss",
- alignEmptyValues = params.alignEmptyValues,
- emptyAlign = 0;
-
- if (typeof moment != "undefined") {
- a = moment(a, format);
- b = moment(b, format);
-
- if (!a.isValid()) {
- emptyAlign = !b.isValid() ? 0 : -1;
- } else if (!b.isValid()) {
- emptyAlign = 1;
- } else {
- //compare valid values
- return a - b;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- } else {
- console.error("Sort Error - 'datetime' sorter is dependant on moment.js");
- }
- },
-
- //sort booleans
- boolean: function boolean(a, b, aRow, bRow, column, dir, params) {
- var el1 = a === true || a === "true" || a === "True" || a === 1 ? 1 : 0;
- var el2 = b === true || b === "true" || b === "True" || b === 1 ? 1 : 0;
-
- return el1 - el2;
- },
-
- //sort if element contains any data
- array: function array(a, b, aRow, bRow, column, dir, params) {
- var el1 = 0;
- var el2 = 0;
- var type = params.type || "length";
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- function calc(value) {
-
- switch (type) {
- case "length":
- return value.length;
- break;
-
- case "sum":
- return value.reduce(function (c, d) {
- return c + d;
- });
- break;
-
- case "max":
- return Math.max.apply(null, value);
- break;
-
- case "min":
- return Math.min.apply(null, value);
- break;
-
- case "avg":
- return value.reduce(function (c, d) {
- return c + d;
- }) / value.length;
- break;
- }
- }
-
- //handle non array values
- if (!Array.isArray(a)) {
- alignEmptyValues = !Array.isArray(b) ? 0 : -1;
- } else if (!Array.isArray(b)) {
- alignEmptyValues = 1;
- } else {
-
- //compare valid values
- el1 = a ? calc(a) : 0;
- el2 = b ? calc(b) : 0;
-
- return el1 - el2;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- },
-
- //sort if element contains any data
- exists: function exists(a, b, aRow, bRow, column, dir, params) {
- var el1 = typeof a == "undefined" ? 0 : 1;
- var el2 = typeof b == "undefined" ? 0 : 1;
-
- return el1 - el2;
- },
-
- //sort alpha numeric strings
- alphanum: function alphanum(as, bs, aRow, bRow, column, dir, params) {
- var a,
- b,
- a1,
- b1,
- i = 0,
- L,
- rx = /(\d+)|(\D+)/g,
- rd = /\d/;
- var alignEmptyValues = params.alignEmptyValues;
- var emptyAlign = 0;
-
- //handle empty values
- if (!as && as !== 0) {
- emptyAlign = !bs && bs !== 0 ? 0 : -1;
- } else if (!bs && bs !== 0) {
- emptyAlign = 1;
- } else {
-
- if (isFinite(as) && isFinite(bs)) return as - bs;
- a = String(as).toLowerCase();
- b = String(bs).toLowerCase();
- if (a === b) return 0;
- if (!(rd.test(a) && rd.test(b))) return a > b ? 1 : -1;
- a = a.match(rx);
- b = b.match(rx);
- L = a.length > b.length ? b.length : a.length;
- while (i < L) {
- a1 = a[i];
- b1 = b[i++];
- if (a1 !== b1) {
- if (isFinite(a1) && isFinite(b1)) {
- if (a1.charAt(0) === "0") a1 = "." + a1;
- if (b1.charAt(0) === "0") b1 = "." + b1;
- return a1 - b1;
- } else return a1 > b1 ? 1 : -1;
- }
- }
-
- return a.length > b.length;
- }
-
- //fix empty values in position
- if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
- emptyAlign *= -1;
- }
-
- return emptyAlign;
- }
- };
-
- Tabulator.prototype.registerModule("sort", Sort);
-
- var Validate = function Validate(table) {
- this.table = table;
- this.invalidCells = [];
- };
-
- //validate
- Validate.prototype.initializeColumn = function (column) {
- var self = this,
- config = [],
- validator;
-
- if (column.definition.validator) {
-
- if (Array.isArray(column.definition.validator)) {
- column.definition.validator.forEach(function (item) {
- validator = self._extractValidator(item);
-
- if (validator) {
- config.push(validator);
- }
- });
- } else {
- validator = this._extractValidator(column.definition.validator);
-
- if (validator) {
- config.push(validator);
- }
- }
-
- column.modules.validate = config.length ? config : false;
- }
- };
-
- Validate.prototype._extractValidator = function (value) {
- var type, params, pos;
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
- case "string":
- pos = value.indexOf(':');
-
- if (pos > -1) {
- type = value.substring(0, pos);
- params = value.substring(pos + 1);
- } else {
- type = value;
- }
-
- return this._buildValidator(type, params);
- break;
-
- case "function":
- return this._buildValidator(value);
- break;
-
- case "object":
- return this._buildValidator(value.type, value.parameters);
- break;
- }
- };
-
- Validate.prototype._buildValidator = function (type, params) {
-
- var func = typeof type == "function" ? type : this.validators[type];
-
- if (!func) {
- console.warn("Validator Setup Error - No matching validator found:", type);
- return false;
- } else {
- return {
- type: typeof type == "function" ? "function" : type,
- func: func,
- params: params
- };
- }
- };
-
- Validate.prototype.validate = function (validators, cell, value) {
- var self = this,
- valid = [],
- invalidIndex = this.invalidCells.indexOf(cell);
-
- if (validators) {
- validators.forEach(function (item) {
- if (!item.func.call(self, cell.getComponent(), value, item.params)) {
- valid.push({
- type: item.type,
- parameters: item.params
- });
- }
- });
- }
-
- valid = valid.length ? valid : true;
-
- if (!cell.modules.validate) {
- cell.modules.validate = {};
- }
-
- if (valid === true) {
- cell.modules.validate.invalid = false;
- cell.getElement().classList.remove("tabulator-validation-fail");
-
- if (invalidIndex > -1) {
- this.invalidCells.splice(invalidIndex, 1);
- }
- } else {
- cell.modules.validate.invalid = true;
-
- if (this.table.options.validationMode !== "manual") {
- cell.getElement().classList.add("tabulator-validation-fail");
- }
-
- if (invalidIndex == -1) {
- this.invalidCells.push(cell);
- }
- }
-
- return valid;
- };
-
- Validate.prototype.getInvalidCells = function () {
- var output = [];
-
- this.invalidCells.forEach(function (cell) {
- output.push(cell.getComponent());
- });
-
- return output;
- };
-
- Validate.prototype.clearValidation = function (cell) {
- var invalidIndex;
-
- if (cell.modules.validate && cell.modules.validate.invalid) {
-
- cell.element.classList.remove("tabulator-validation-fail");
- cell.modules.validate.invalid = false;
-
- invalidIndex = this.invalidCells.indexOf(cell);
-
- if (invalidIndex > -1) {
- this.invalidCells.splice(invalidIndex, 1);
- }
- }
- };
-
- Validate.prototype.validators = {
-
- //is integer
- integer: function integer(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
- },
-
- //is float
- float: function float(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- value = Number(value);
- return typeof value === 'number' && isFinite(value) && value % 1 !== 0;
- },
-
- //must be a number
- numeric: function numeric(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return !isNaN(value);
- },
-
- //must be a string
- string: function string(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return isNaN(value);
- },
-
- //maximum value
- max: function max(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) <= parameters;
- },
-
- //minimum value
- min: function min(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return parseFloat(value) >= parameters;
- },
-
- //starts with value
- starts: function starts(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).toLowerCase().startsWith(String(parameters).toLowerCase());
- },
-
- //ends with value
- ends: function ends(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).toLowerCase().endsWith(String(parameters).toLowerCase());
- },
-
- //minimum string length
- minLength: function minLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length >= parameters;
- },
-
- //maximum string length
- maxLength: function maxLength(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- return String(value).length <= parameters;
- },
-
- //in provided value list
- in: function _in(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- if (typeof parameters == "string") {
- parameters = parameters.split("|");
- }
-
- return value === "" || parameters.indexOf(value) > -1;
- },
-
- //must match provided regex
- regex: function regex(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var reg = new RegExp(parameters);
-
- return reg.test(value);
- },
-
- //value must be unique in this column
- unique: function unique(cell, value, parameters) {
- if (value === "" || value === null || typeof value === "undefined") {
- return true;
- }
- var unique = true;
-
- var cellData = cell.getData();
- var column = cell.getColumn()._getSelf();
-
- this.table.rowManager.rows.forEach(function (row) {
- var data = row.getData();
-
- if (data !== cellData) {
- if (value == column.getFieldValue(data)) {
- unique = false;
- }
- }
- });
-
- return unique;
- },
-
- //must have a value
- required: function required(cell, value, parameters) {
- return value !== "" && value !== null && typeof value !== "undefined";
- }
- };
-
- Tabulator.prototype.registerModule("validate", Validate);
-
- return Tabulator;
-});
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(e,t){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Tabulator=t()}(this,function(){"use strict";Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),o=t.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var s=t[n];if(e.call(i,s,n,t))return n;n++}return-1}}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),o=t.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var s=t[n];if(e.call(i,s,n,t))return s;n++}}}),String.prototype.includes||(String.prototype.includes=function(e,t){if(e instanceof RegExp)throw TypeError("first argument must not be a RegExp");return void 0===t&&(t=0),-1!==this.indexOf(e,t)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(e,t){if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),i=o.length>>>0;if(0===i)return!1;for(var n=0|t,s=Math.max(n>=0?n:i-Math.abs(n),0);s<i;){if(function(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)}(o[s],e))return!0;s++}return!1}}),"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(e,t){if(null===e||void 0===e)throw new TypeError("Cannot convert undefined or null to object");for(var o=Object(e),i=1;i<arguments.length;i++){var n=arguments[i];if(null!==n&&void 0!==n)for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(o[s]=n[s])}return o},writable:!0,configurable:!0});var t=function(e){this.table=e,this.blockHozScrollEvent=!1,this.headersElement=this.createHeadersElement(),this.element=this.createHeaderElement(),this.rowManager=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.element.insertBefore(this.headersElement,this.element.firstChild)};t.prototype.createHeadersElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-headers"),e},t.prototype.createHeaderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-header"),this.table.options.headerVisible||e.classList.add("tabulator-header-hidden"),e},t.prototype.initialize=function(){},t.prototype.setRowManager=function(e){this.rowManager=e},t.prototype.getElement=function(){return this.element},t.prototype.getHeadersElement=function(){return this.headersElement},t.prototype.scrollHorizontal=function(e){var t=0,o=this.element.scrollWidth-this.table.element.clientWidth;this.element.scrollLeft=e,e>o?(t=e-o,this.element.style.marginLeft=-t+"px"):this.element.style.marginLeft=0,this.scrollLeft=e,this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.scrollHorizontal()},t.prototype.generateColumnsFromRowData=function(e){var t,o,i=[];if(e&&e.length){t=e[0];for(var n in t){var s={field:n,title:n},r=t[n];switch(void 0===r?"undefined":_typeof(r)){case"undefined":o="string";break;case"boolean":o="boolean";break;case"object":o=Array.isArray(r)?"array":"string";break;default:o=isNaN(r)||""===r?r.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)?"alphanum":"string":"number"}s.sorter=o,i.push(s)}this.table.options.columns=i,this.setColumns(this.table.options.columns)}},t.prototype.setColumns=function(e,t){for(var o=this;o.headersElement.firstChild;)o.headersElement.removeChild(o.headersElement.firstChild);o.columns=[],o.columnsByIndex=[],o.columnsByField={},o.table.modExists("frozenColumns")&&o.table.modules.frozenColumns.reset(),e.forEach(function(e,t){o._addColumn(e)}),o._reIndexColumns(),o.table.options.responsiveLayout&&o.table.modExists("responsiveLayout",!0)&&o.table.modules.responsiveLayout.initialize(),o.redraw(!0)},t.prototype._addColumn=function(e,t,o){var i=new n(e,this),s=i.getElement(),r=o?this.findColumnIndex(o):o;if(o&&r>-1){var a=this.columns.indexOf(o.getTopColumn()),l=o.getElement();t?(this.columns.splice(a,0,i),l.parentNode.insertBefore(s,l)):(this.columns.splice(a+1,0,i),l.parentNode.insertBefore(s,l.nextSibling))}else t?(this.columns.unshift(i),this.headersElement.insertBefore(i.getElement(),this.headersElement.firstChild)):(this.columns.push(i),this.headersElement.appendChild(i.getElement())),i.columnRendered();return i},t.prototype.registerColumnField=function(e){e.definition.field&&(this.columnsByField[e.definition.field]=e)},t.prototype.registerColumnPosition=function(e){this.columnsByIndex.push(e)},t.prototype._reIndexColumns=function(){this.columnsByIndex=[],this.columns.forEach(function(e){e.reRegisterPosition()})},t.prototype._verticalAlignHeaders=function(){var e=this,t=0;e.columns.forEach(function(e){var o;e.clearVerticalAlign(),(o=e.getHeight())>t&&(t=o)}),e.columns.forEach(function(o){o.verticalAlign(e.table.options.columnHeaderVertAlign,t)}),e.rowManager.adjustTableSize()},t.prototype.findColumn=function(e){var t=this;if("object"!=(void 0===e?"undefined":_typeof(e)))return this.columnsByField[e]||!1;if(e instanceof n)return e;if(e instanceof o)return e._getSelf()||!1;if("undefined"!=typeof HTMLElement&&e instanceof HTMLElement){return t.columns.find(function(t){return t.element===e})||!1}return!1},t.prototype.getColumnByField=function(e){return this.columnsByField[e]},t.prototype.getColumnsByFieldRoot=function(e){var t=this,o=[];return Object.keys(this.columnsByField).forEach(function(i){i.split(".")[0]===e&&o.push(t.columnsByField[i])}),o},t.prototype.getColumnByIndex=function(e){return this.columnsByIndex[e]},t.prototype.getFirstVisibileColumn=function(e){var e=this.columnsByIndex.findIndex(function(e){return e.visible});return e>-1&&this.columnsByIndex[e]},t.prototype.getColumns=function(){return this.columns},t.prototype.findColumnIndex=function(e){return this.columnsByIndex.findIndex(function(t){return e===t})},t.prototype.getRealColumns=function(){return this.columnsByIndex},t.prototype.traverse=function(e){this.columnsByIndex.forEach(function(t,o){e(t,o)})},t.prototype.getDefinitions=function(e){var t=this,o=[];return t.columnsByIndex.forEach(function(t){(!e||e&&t.visible)&&o.push(t.getDefinition())}),o},t.prototype.getDefinitionTree=function(){var e=this,t=[];return e.columns.forEach(function(e){t.push(e.getDefinition(!0))}),t},t.prototype.getComponents=function(e){var t=this,o=[];return(e?t.columns:t.columnsByIndex).forEach(function(e){o.push(e.getComponent())}),o},t.prototype.getWidth=function(){var e=0;return this.columnsByIndex.forEach(function(t){t.visible&&(e+=t.getWidth())}),e},t.prototype.moveColumn=function(e,t,o){this.moveColumnActual(e,t,o),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),t.element.parentNode.insertBefore(e.element,t.element),o&&t.element.parentNode.insertBefore(t.element,e.element),this._verticalAlignHeaders(),this.table.rowManager.reinitialize()},t.prototype.moveColumnActual=function(e,t,o){e.parent.isGroup?this._moveColumnInArray(e.parent.columns,e,t,o):this._moveColumnInArray(this.columns,e,t,o),this._moveColumnInArray(this.columnsByIndex,e,t,o,!0),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.options.columnMoved&&this.table.options.columnMoved.call(this.table,e.getComponent(),this.table.columnManager.getComponents()),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns")},t.prototype._moveColumnInArray=function(e,t,o,i,n){var s,r=e.indexOf(t);r>-1&&(e.splice(r,1),s=e.indexOf(o),s>-1?i&&(s+=1):s=r,e.splice(s,0,t),n&&this.table.rowManager.rows.forEach(function(e){if(e.cells.length){var t=e.cells.splice(r,1)[0];e.cells.splice(s,0,t)}}))},t.prototype.scrollToColumn=function(e,t,o){var i=this,n=0,s=0,r=0,a=e.getElement();return new Promise(function(l,c){if(void 0===t&&(t=i.table.options.scrollToColumnPosition),void 0===o&&(o=i.table.options.scrollToColumnIfVisible),e.visible){switch(t){case"middle":case"center":r=-i.element.clientWidth/2;break;case"right":r=a.clientWidth-i.headersElement.clientWidth}if(!o&&(s=a.offsetLeft)>0&&s+a.offsetWidth<i.element.clientWidth)return!1;n=a.offsetLeft+i.element.scrollLeft+r,n=Math.max(Math.min(n,i.table.rowManager.element.scrollWidth-i.table.rowManager.element.clientWidth),0),i.table.rowManager.scrollHorizontal(n),i.scrollHorizontal(n),l()}else console.warn("Scroll Error - Column not visible"),c("Scroll Error - Column not visible")})},t.prototype.generateCells=function(e){var t=this,o=[];return t.columnsByIndex.forEach(function(t){o.push(t.generateCell(e))}),o},t.prototype.getFlexBaseWidth=function(){var e=this,t=e.table.element.clientWidth,o=0;return e.rowManager.element.scrollHeight>e.rowManager.element.clientHeight&&(t-=e.rowManager.element.offsetWidth-e.rowManager.element.clientWidth),this.columnsByIndex.forEach(function(i){var n,s,r;i.visible&&(n=i.definition.width||0,s=void 0===i.minWidth?e.table.options.columnMinWidth:parseInt(i.minWidth),r="string"==typeof n?n.indexOf("%")>-1?t/100*parseInt(n):parseInt(n):n,o+=r>s?r:s)}),o},t.prototype.addColumn=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i._addColumn(e,t,o);i._reIndexColumns(),i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout",!0)&&i.table.modules.responsiveLayout.initialize(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.redraw(),"fitColumns"!=i.table.modules.layout.getMode()&&r.reinitializeWidth(),i._verticalAlignHeaders(),i.table.rowManager.reinitialize(),n(r)})},t.prototype.deregisterColumn=function(e){var t,o=e.getField();o&&delete this.columnsByField[o],t=this.columnsByIndex.indexOf(e),t>-1&&this.columnsByIndex.splice(t,1),t=this.columns.indexOf(e),t>-1&&this.columns.splice(t,1),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.redraw()},t.prototype.redraw=function(e){e&&(d.prototype.helpers.elVisible(this.element)&&this._verticalAlignHeaders(),this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize()),["fitColumns","fitDataStretch"].indexOf(this.table.modules.layout.getMode())>-1?this.table.modules.layout.layout():e?this.table.modules.layout.layout():this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),e&&(this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.redraw()),this.table.footerManager.redraw()};var o=function(e){this._column=e,this.type="ColumnComponent"};o.prototype.getElement=function(){return this._column.getElement()},o.prototype.getDefinition=function(){return this._column.getDefinition()},o.prototype.getField=function(){return this._column.getField()},o.prototype.getCells=function(){var e=[];return this._column.cells.forEach(function(t){e.push(t.getComponent())}),e},o.prototype.getVisibility=function(){return console.warn("getVisibility function is deprecated, you should now use the isVisible function"),this._column.visible},o.prototype.isVisible=function(){return this._column.visible},o.prototype.show=function(){this._column.isGroup?this._column.columns.forEach(function(e){e.show()}):this._column.show()},o.prototype.hide=function(){this._column.isGroup?this._column.columns.forEach(function(e){e.hide()}):this._column.hide()},o.prototype.toggle=function(){this._column.visible?this.hide():this.show()},o.prototype.delete=function(){return this._column.delete()},o.prototype.getSubColumns=function(){var e=[];return this._column.columns.length&&this._column.columns.forEach(function(t){e.push(t.getComponent())}),e},o.prototype.getParentColumn=function(){return this._column.parent instanceof n&&this._column.parent.getComponent()},o.prototype._getSelf=function(){return this._column},o.prototype.scrollTo=function(){return this._column.table.columnManager.scrollToColumn(this._column)},o.prototype.getTable=function(){return this._column.table},o.prototype.headerFilterFocus=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterFocus(this._column)},o.prototype.reloadHeaderFilter=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.reloadHeaderFilter(this._column)},o.prototype.getHeaderFilterValue=function(){if(this._column.table.modExists("filter",!0))return this._column.table.modules.filter.getHeaderFilterValue(this._column)},o.prototype.setHeaderFilterValue=function(e){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterValue(this._column,e)},o.prototype.move=function(e,t){var o=this._column.table.columnManager.findColumn(e);o?this._column.table.columnManager.moveColumn(this._column,o,t):console.warn("Move Error - No matching column found:",o)},o.prototype.getNextColumn=function(){var e=this._column.nextColumn();return!!e&&e.getComponent()},o.prototype.getPrevColumn=function(){var e=this._column.prevColumn();return!!e&&e.getComponent()},o.prototype.updateDefinition=function(e){return this._column.updateDefinition(e)},o.prototype.getWidth=function(){return this._column.getWidth()},o.prototype.setWidth=function(e){return!0===e?this._column.reinitializeWidth(!0):this._column.setWidth(e)},o.prototype.validate=function(){return this._column.validate()};var n=function e(t,o){var i=this;this.table=o.table,this.definition=t,this.parent=o,this.type="column",this.columns=[],this.cells=[],this.element=this.createElement(),this.contentElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.isGroup=!1,this.tooltip=!1,this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleFormatterRendered=!1,this.setField(this.definition.field),this.table.options.invalidOptionWarnings&&this.checkDefinition(),this.modules={},this.cellEvents={cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1},this.width=null,this.widthStyled="",this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this.component=null,this._mapDepricatedFunctionality(),t.columns?(this.isGroup=!0,t.columns.forEach(function(t,o){var n=new e(t,i);i.attachColumn(n)}),i.checkColumnVisibility()):o.registerColumnField(this),t.rowHandle&&!1!==this.table.options.movableRows&&this.table.modExists("moveRow")&&this.table.modules.moveRow.setHandle(!0),this._buildHeader(),this.bindModuleColumns()};n.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.setAttribute("role","columnheader"),e.setAttribute("aria-sort","none"),e},n.prototype.createGroupElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col-group-cols"),e},n.prototype.checkDefinition=function(){var e=this;Object.keys(this.definition).forEach(function(t){-1===e.defaultOptionList.indexOf(t)&&console.warn("Invalid column definition option in '"+(e.field||e.definition.title)+"' column:",t)})},n.prototype.setField=function(e){this.field=e,this.fieldStructure=e?this.table.options.nestedFieldSeparator?e.split(this.table.options.nestedFieldSeparator):[e]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData},n.prototype.registerColumnPosition=function(e){this.parent.registerColumnPosition(e)},n.prototype.registerColumnField=function(e){this.parent.registerColumnField(e)},n.prototype.reRegisterPosition=function(){this.isGroup?this.columns.forEach(function(e){e.reRegisterPosition()}):this.registerColumnPosition(this)},n.prototype._mapDepricatedFunctionality=function(){void 0!==this.definition.hideInHtml&&(this.definition.htmlOutput=!this.definition.hideInHtml,console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput")),void 0!==this.definition.align&&(this.definition.hozAlign=this.definition.align,console.warn("align column definition property is deprecated, you should now use hozAlign")),void 0!==this.definition.downloadTitle&&(this.definition.titleDownload=this.definition.downloadTitle,console.warn("downloadTitle definition property is deprecated, you should now use titleDownload"))},n.prototype.setTooltip=function(){var e=this,t=e.definition,o=t.headerTooltip||!1===t.tooltip?t.headerTooltip:e.table.options.tooltipsHeader;o?!0===o?t.field?e.table.modules.localize.bind("columns|"+t.field,function(o){e.element.setAttribute("title",o||t.title)}):e.element.setAttribute("title",t.title):("function"==typeof o&&!1===(o=o(e.getComponent()))&&(o=""),e.element.setAttribute("title",o)):e.element.setAttribute("title","")},n.prototype._buildHeader=function(){for(var e=this,t=e.definition;e.element.firstChild;)e.element.removeChild(e.element.firstChild);t.headerVertical&&(e.element.classList.add("tabulator-col-vertical"),"flip"===t.headerVertical&&e.element.classList.add("tabulator-col-vertical-flip")),e.contentElement=e._bindEvents(),e.contentElement=e._buildColumnHeaderContent(),e.element.appendChild(e.contentElement),e.isGroup?e._buildGroupHeader():e._buildColumnHeader(),e.setTooltip(),e.table.options.resizableColumns&&e.table.modExists("resizeColumns")&&e.table.modules.resizeColumns.initializeColumn("header",e,e.element),t.headerFilter&&e.table.modExists("filter")&&e.table.modExists("edit")&&(void 0!==t.headerFilterPlaceholder&&t.field&&e.table.modules.localize.setHeaderFilterColumnPlaceholder(t.field,t.headerFilterPlaceholder),e.table.modules.filter.initializeColumn(e)),e.table.modExists("frozenColumns")&&e.table.modules.frozenColumns.initializeColumn(e),e.table.options.movableColumns&&!e.isGroup&&e.table.modExists("moveColumn")&&e.table.modules.moveColumn.initializeColumn(e),(t.topCalc||t.bottomCalc)&&e.table.modExists("columnCalcs")&&e.table.modules.columnCalcs.initializeColumn(e),e.table.modExists("persistence")&&e.table.modules.persistence.config.columns&&e.table.modules.persistence.initializeColumn(e),e.element.addEventListener("mouseenter",function(t){e.setTooltip()})},n.prototype._bindEvents=function(){var e,t,o,i=this,n=i.definition;"function"==typeof n.headerClick&&i.element.addEventListener("click",function(e){n.headerClick(e,i.getComponent())}),"function"==typeof n.headerDblClick&&i.element.addEventListener("dblclick",function(e){n.headerDblClick(e,i.getComponent())}),"function"==typeof n.headerContext&&i.element.addEventListener("contextmenu",function(e){n.headerContext(e,i.getComponent())}),"function"==typeof n.headerTap&&(o=!1,i.element.addEventListener("touchstart",function(e){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(e){o&&n.headerTap(e,i.getComponent()),o=!1})),"function"==typeof n.headerDblTap&&(e=null,i.element.addEventListener("touchend",function(t){e?(clearTimeout(e),e=null,n.headerDblTap(t,i.getComponent())):e=setTimeout(function(){clearTimeout(e),e=null},300)})),"function"==typeof n.headerTapHold&&(t=null,i.element.addEventListener("touchstart",function(e){clearTimeout(t),t=setTimeout(function(){clearTimeout(t),t=null,o=!1,n.headerTapHold(e,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(e){clearTimeout(t),t=null})),"function"==typeof n.cellClick&&(i.cellEvents.cellClick=n.cellClick),"function"==typeof n.cellDblClick&&(i.cellEvents.cellDblClick=n.cellDblClick),"function"==typeof n.cellContext&&(i.cellEvents.cellContext=n.cellContext),"function"==typeof n.cellMouseEnter&&(i.cellEvents.cellMouseEnter=n.cellMouseEnter),"function"==typeof n.cellMouseLeave&&(i.cellEvents.cellMouseLeave=n.cellMouseLeave),"function"==typeof n.cellMouseOver&&(i.cellEvents.cellMouseOver=n.cellMouseOver),"function"==typeof n.cellMouseOut&&(i.cellEvents.cellMouseOut=n.cellMouseOut),"function"==typeof n.cellMouseMove&&(i.cellEvents.cellMouseMove=n.cellMouseMove),"function"==typeof n.cellTap&&(i.cellEvents.cellTap=n.cellTap),"function"==typeof n.cellDblTap&&(i.cellEvents.cellDblTap=n.cellDblTap),"function"==typeof n.cellTapHold&&(i.cellEvents.cellTapHold=n.cellTapHold),"function"==typeof n.cellEdited&&(i.cellEvents.cellEdited=n.cellEdited),"function"==typeof n.cellEditing&&(i.cellEvents.cellEditing=n.cellEditing),"function"==typeof n.cellEditCancelled&&(i.cellEvents.cellEditCancelled=n.cellEditCancelled)},n.prototype._buildColumnHeader=function(){var e=this,t=e.definition,o=e.table;if(o.modExists("sort")&&o.modules.sort.initializeColumn(e,e.contentElement),(t.headerContextMenu||t.headerMenu)&&o.modExists("menu")&&o.modules.menu.initializeColumnHeader(e),o.modExists("format")&&o.modules.format.initializeColumn(e),void 0!==t.editor&&o.modExists("edit")&&o.modules.edit.initializeColumn(e),void 0!==t.validator&&o.modExists("validate")&&o.modules.validate.initializeColumn(e),o.modExists("mutator")&&o.modules.mutator.initializeColumn(e),o.modExists("accessor")&&o.modules.accessor.initializeColumn(e),_typeof(o.options.responsiveLayout)&&o.modExists("responsiveLayout")&&o.modules.responsiveLayout.initializeColumn(e),void 0!==t.visible&&(t.visible?e.show(!0):e.hide(!0)),t.cssClass){t.cssClass.split(" ").forEach(function(t){e.element.classList.add(t)})}t.field&&this.element.setAttribute("tabulator-field",t.field),e.setMinWidth(void 0===t.minWidth?e.table.options.columnMinWidth:parseInt(t.minWidth)),e.reinitializeWidth(),e.tooltip=e.definition.tooltip||!1===e.definition.tooltip?e.definition.tooltip:e.table.options.tooltips,e.hozAlign=void 0===e.definition.hozAlign?e.table.options.cellHozAlign:e.definition.hozAlign,e.vertAlign=void 0===e.definition.vertAlign?e.table.options.cellVertAlign:e.definition.vertAlign},n.prototype._buildColumnHeaderContent=function(){var e=(this.definition,this.table,document.createElement("div"));return e.classList.add("tabulator-col-content"),this.titleElement=this._buildColumnHeaderTitle(),e.appendChild(this.titleElement),e},n.prototype._buildColumnHeaderTitle=function(){var e=this,t=e.definition,o=e.table,i=document.createElement("div");if(i.classList.add("tabulator-col-title"),t.editableTitle){var n=document.createElement("input");n.classList.add("tabulator-title-editor"),n.addEventListener("click",function(e){e.stopPropagation(),n.focus()}),n.addEventListener("change",function(){t.title=n.value,o.options.columnTitleChanged.call(e.table,e.getComponent())}),i.appendChild(n),t.field?o.modules.localize.bind("columns|"+t.field,function(e){n.value=e||t.title||" "}):n.value=t.title||" "}else t.field?o.modules.localize.bind("columns|"+t.field,function(o){e._formatColumnHeaderTitle(i,o||t.title||" ")}):e._formatColumnHeaderTitle(i,t.title||" ");return i},n.prototype._formatColumnHeaderTitle=function(e,t){var o,i,n,s,r,a=this;if(this.definition.titleFormatter&&this.table.modExists("format"))switch(o=this.table.modules.format.getFormatter(this.definition.titleFormatter),r=function(e){a.titleFormatterRendered=e},s={getValue:function(){return t},getElement:function(){return e}},n=this.definition.titleFormatterParams||{},n="function"==typeof n?n():n,i=o.call(this.table.modules.format,s,n,r),void 0===i?"undefined":_typeof(i)){case"object":i instanceof Node?e.appendChild(i):(e.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",i));break;case"undefined":case"null":e.innerHTML="";break;default:e.innerHTML=i}else e.innerHTML=t},n.prototype._buildGroupHeader=function(){var e=this;if(this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass){this.definition.cssClass.split(" ").forEach(function(t){e.element.classList.add(t)})}(this.definition.headerContextMenu||this.definition.headerMenu)&&this.table.modExists("menu")&&this.table.modules.menu.initializeColumnHeader(this),this.element.appendChild(this.groupElement)},n.prototype._getFlatData=function(e){return e[this.field]},n.prototype._getNestedData=function(e){for(var t,o=e,i=this.fieldStructure,n=i.length,s=0;s<n&&(o=o[i[s]],t=o,o);s++);return t},n.prototype._setFlatData=function(e,t){this.field&&(e[this.field]=t)},n.prototype._setNestedData=function(e,t){for(var o=e,i=this.fieldStructure,n=i.length,s=0;s<n;s++)if(s==n-1)o[i[s]]=t;else{if(!o[i[s]]){if(void 0===t)break;o[i[s]]={}}o=o[i[s]]}},n.prototype.attachColumn=function(e){var t=this;t.groupElement?(t.columns.push(e),t.groupElement.appendChild(e.getElement())):console.warn("Column Warning - Column being attached to another column instead of column group")},n.prototype.verticalAlign=function(e,t){var o=this.parent.isGroup?this.parent.getGroupElement().clientHeight:t||this.parent.getHeadersElement().clientHeight;this.element.style.height=o+"px",this.isGroup&&(this.groupElement.style.minHeight=o-this.contentElement.offsetHeight+"px"),this.isGroup||"top"===e||(this.element.style.paddingTop="bottom"===e?this.element.clientHeight-this.contentElement.offsetHeight+"px":(this.element.clientHeight-this.contentElement.offsetHeight)/2+"px"),this.columns.forEach(function(t){t.verticalAlign(e)})},n.prototype.clearVerticalAlign=function(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(e){e.clearVerticalAlign()})},n.prototype.bindModuleColumns=function(){"rownum"==this.definition.formatter&&(this.table.rowManager.rowNumColumn=this)},n.prototype.getElement=function(){return this.element},n.prototype.getGroupElement=function(){return this.groupElement},n.prototype.getField=function(){return this.field},n.prototype.getFirstColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[0].getFirstColumn():this},n.prototype.getLastColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[this.columns.length-1].getLastColumn():this},n.prototype.getColumns=function(){return this.columns},n.prototype.getCells=function(){return this.cells},n.prototype.getTopColumn=function(){return this.parent.isGroup?this.parent.getTopColumn():this},n.prototype.getDefinition=function(e){var t=[];return this.isGroup&&e&&(this.columns.forEach(function(e){t.push(e.getDefinition(!0))}),this.definition.columns=t),this.definition},n.prototype.checkColumnVisibility=function(){var e=!1;this.columns.forEach(function(t){t.visible&&(e=!0)}),e?(this.show(),this.parent.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1)):this.hide()},n.prototype.show=function(e,t){this.visible||(this.visible=!0,this.element.style.display="",this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(e){e.show()}),this.isGroup||null!==this.width||this.reinitializeWidth(),this.table.columnManager._verticalAlignHeaders(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!t&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),e||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!0),this.parent.isGroup&&this.parent.matchChildWidths())},n.prototype.hide=function(e,t){this.visible&&(this.visible=!1,this.element.style.display="none",this.table.columnManager._verticalAlignHeaders(),this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(e){e.hide()}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!t&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),e||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1),this.parent.isGroup&&this.parent.matchChildWidths())},n.prototype.matchChildWidths=function(){var e=0;this.contentElement&&this.columns.length&&(this.columns.forEach(function(t){t.visible&&(e+=t.getWidth())}),this.contentElement.style.maxWidth=e-1+"px",this.parent.isGroup&&this.parent.matchChildWidths())},n.prototype.setWidth=function(e){this.widthFixed=!0,this.setWidthActual(e)},n.prototype.setWidthActual=function(e){isNaN(e)&&(e=Math.floor(this.table.element.clientWidth/100*parseInt(e))),e=Math.max(this.minWidth,e),this.width=e,this.widthStyled=e?e+"px":"",this.element.style.width=this.widthStyled,this.isGroup||this.cells.forEach(function(e){e.setWidth()}),this.parent.isGroup&&this.parent.matchChildWidths(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()},n.prototype.checkCellHeights=function(){var e=[];this.cells.forEach(function(t){t.row.heightInitialized&&(null!==t.row.getElement().offsetParent?(e.push(t.row),t.row.clearCellHeight()):t.row.heightInitialized=!1)}),e.forEach(function(e){e.calcHeight()}),e.forEach(function(e){e.setCellHeight()})},n.prototype.getWidth=function(){var e=0;return this.isGroup?this.columns.forEach(function(t){t.visible&&(e+=t.getWidth())}):e=this.width,e},n.prototype.getHeight=function(){return this.element.offsetHeight},n.prototype.setMinWidth=function(e){this.minWidth=e,this.minWidthStyled=e?e+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(e){e.setMinWidth()})},n.prototype.delete=function(){var e=this;return new Promise(function(t,o){e.isGroup&&e.columns.forEach(function(e){e.delete()}),e.table.modExists("edit")&&e.table.modules.edit.currentCell.column===e&&e.table.modules.edit.cancelEdit();for(var i=e.cells.length,n=0;n<i;n++)e.cells[0].delete();e.element.parentNode.removeChild(e.element),e.table.columnManager.deregisterColumn(e),t()})},n.prototype.columnRendered=function(){this.titleFormatterRendered&&this.titleFormatterRendered()},n.prototype.validate=function(){var e=[];return this.cells.forEach(function(t){t.validate()||e.push(t.getComponent())}),!e.length||e},n.prototype.generateCell=function(e){var t=this,o=new c(t,e);return this.cells.push(o),o},n.prototype.nextColumn=function(){var e=this.table.columnManager.findColumnIndex(this);return e>-1&&this._nextVisibleColumn(e+1)},n.prototype._nextVisibleColumn=function(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._nextVisibleColumn(e+1)},n.prototype.prevColumn=function(){var e=this.table.columnManager.findColumnIndex(this);return e>-1&&this._prevVisibleColumn(e-1)},n.prototype._prevVisibleColumn=function(e){var t=this.table.columnManager.getColumnByIndex(e);return!t||t.visible?t:this._prevVisibleColumn(e-1)},n.prototype.reinitializeWidth=function(e){this.widthFixed=!1,
-void 0===this.definition.width||e||this.setWidth(this.definition.width),this.table.modExists("filter")&&this.table.modules.filter.hideHeaderFilterElements(),this.fitToData(),this.table.modExists("filter")&&this.table.modules.filter.showHeaderFilterElements()},n.prototype.fitToData=function(){var e=this;this.widthFixed||(this.element.style.width="",e.cells.forEach(function(e){e.clearWidth()}));var t=this.element.offsetWidth;e.width&&this.widthFixed||(e.cells.forEach(function(e){var o=e.getWidth();o>t&&(t=o)}),t&&e.setWidthActual(t+1))},n.prototype.updateDefinition=function(e){var t=this;return new Promise(function(o,i){var n;t.isGroup?(console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups"),i("Column Update Error - The updateDefintion function is only available on columns, not column groups")):(n=Object.assign({},t.getDefinition()),n=Object.assign(n,e),t.table.columnManager.addColumn(n,!1,t).then(function(e){n.field==t.field&&(t.field=!1),t.delete().then(function(){o(e.getComponent())}).catch(function(e){i(e)})}).catch(function(e){i(e)}))})},n.prototype.deleteCell=function(e){var t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)},n.prototype.defaultOptionList=["title","field","columns","visible","align","hozAlign","vertAlign","width","minWidth","widthGrow","widthShrink","resizable","frozen","responsive","tooltip","cssClass","rowHandle","hideInHtml","print","htmlOutput","sorter","sorterParams","formatter","formatterParams","variableHeight","editable","editor","editorParams","validator","mutator","mutatorParams","mutatorData","mutatorDataParams","mutatorEdit","mutatorEditParams","mutatorClipboard","mutatorClipboardParams","accessor","accessorParams","accessorData","accessorDataParams","accessorDownload","accessorDownloadParams","accessorClipboard","accessorClipboardParams","accessorPrint","accessorPrintParams","accessorHtmlOutput","accessorHtmlOutputParams","clipboard","download","downloadTitle","topCalc","topCalcParams","topCalcFormatter","topCalcFormatterParams","bottomCalc","bottomCalcParams","bottomCalcFormatter","bottomCalcFormatterParams","cellClick","cellDblClick","cellContext","cellTap","cellDblTap","cellTapHold","cellMouseEnter","cellMouseLeave","cellMouseOver","cellMouseOut","cellMouseMove","cellEditing","cellEdited","cellEditCancelled","headerSort","headerSortStartingDir","headerSortTristate","headerClick","headerDblClick","headerContext","headerTap","headerDblTap","headerTapHold","headerTooltip","headerVertical","editableTitle","titleFormatter","titleFormatterParams","headerFilter","headerFilterPlaceholder","headerFilterParams","headerFilterEmptyCheck","headerFilterFunc","headerFilterFuncParams","headerFilterLiveFilter","print","headerContextMenu","headerMenu","contextMenu","formatterPrint","formatterPrintParams","formatterClipboard","formatterClipboardParams","formatterHtmlOutput","formatterHtmlOutputParams","titlePrint","titleClipboard","titleHtmlOutput","titleDownload"],n.prototype.getComponent=function(){return this.component||(this.component=new o(this)),this.component};var s=function(e){this.table=e,this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.columnManager=null,this.height=0,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[],this.rowNumColumn=!1,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRederInPosition=!1};s.prototype.createHolderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-tableHolder"),e.setAttribute("tabindex",0),e},s.prototype.createTableElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-table"),e},s.prototype.getElement=function(){return this.element},s.prototype.getTableElement=function(){return this.tableElement},s.prototype.getRowPosition=function(e,t){return t?this.activeRows.indexOf(e):this.rows.indexOf(e)},s.prototype.setColumnManager=function(e){this.columnManager=e},s.prototype.initialize=function(){var e=this;e.setRenderMode(),e.element.appendChild(e.tableElement),e.firstRender=!0,e.element.addEventListener("scroll",function(){var t=e.element.scrollLeft;e.scrollLeft!=t&&(e.columnManager.scrollHorizontal(t),e.table.options.groupBy&&e.table.modules.groupRows.scrollHeaders(t),e.table.modExists("columnCalcs")&&e.table.modules.columnCalcs.scrollHorizontal(t),e.table.options.scrollHorizontal(t)),e.scrollLeft=t}),"virtual"===this.renderMode&&e.element.addEventListener("scroll",function(){var t=e.element.scrollTop,o=e.scrollTop>t;e.scrollTop!=t?(e.scrollTop=t,e.scrollVertical(o),"scroll"==e.table.options.ajaxProgressiveLoad&&e.table.modules.ajax.nextPage(e.element.scrollHeight-e.element.clientHeight-t),e.table.options.scrollVertical(t)):e.scrollTop=t})},s.prototype.findRow=function(e){var t=this;if("object"!=(void 0===e?"undefined":_typeof(e))){if(void 0===e||null===e)return!1;return t.rows.find(function(o){return o.data[t.table.options.index]==e})||!1}if(e instanceof a)return e;if(e instanceof r)return e._getSelf()||!1;if("undefined"!=typeof HTMLElement&&e instanceof HTMLElement){return t.rows.find(function(t){return t.element===e})||!1}return!1},s.prototype.getRowFromDataObject=function(e){return this.rows.find(function(t){return t.data===e})||!1},s.prototype.getRowFromPosition=function(e,t){return t?this.activeRows[e]:this.rows[e]},s.prototype.scrollToRow=function(e,t,o){var i,n=this,s=this.getDisplayRows().indexOf(e),r=e.getElement(),a=0;return new Promise(function(e,l){if(s>-1){if(void 0===t&&(t=n.table.options.scrollToRowPosition),void 0===o&&(o=n.table.options.scrollToRowIfVisible),"nearest"===t)switch(n.renderMode){case"classic":i=d.prototype.helpers.elOffset(r).top,t=Math.abs(n.element.scrollTop-i)>Math.abs(n.element.scrollTop+n.element.clientHeight-i)?"bottom":"top";break;case"virtual":t=Math.abs(n.vDomTop-s)>Math.abs(n.vDomBottom-s)?"bottom":"top"}if(!o&&d.prototype.helpers.elVisible(r)&&(a=d.prototype.helpers.elOffset(r).top-d.prototype.helpers.elOffset(n.element).top)>0&&a<n.element.clientHeight-r.offsetHeight)return!1;switch(n.renderMode){case"classic":n.element.scrollTop=d.prototype.helpers.elOffset(r).top-d.prototype.helpers.elOffset(n.element).top+n.element.scrollTop;break;case"virtual":n._virtualRenderFill(s,!0)}switch(t){case"middle":case"center":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop+(r.offsetTop-n.element.scrollTop)-(n.element.scrollHeight-r.offsetTop)/2:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight/2;break;case"bottom":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop-(n.element.scrollHeight-r.offsetTop)+r.offsetHeight:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight+r.offsetHeight}e()}else console.warn("Scroll Error - Row not visible"),l("Scroll Error - Row not visible")})},s.prototype.setData=function(e,t,o){var i=this,n=this;return new Promise(function(s,r){t&&i.getDisplayRows().length?n.table.options.pagination?n._setDataActual(e,!0):i.reRenderInPosition(function(){n._setDataActual(e)}):(i.table.options.autoColumns&&o&&i.table.columnManager.generateColumnsFromRowData(e),i.resetScroll(),i._setDataActual(e)),s()})},s.prototype._setDataActual=function(e,t){var o=this;o.table.options.dataLoading.call(this.table,e),this._wipeElements(),this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.clear(),Array.isArray(e)?(this.table.modExists("selectRow")&&this.table.modules.selectRow.clearSelectionData(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchData(e),e.forEach(function(e,t){if(e&&"object"===(void 0===e?"undefined":_typeof(e))){var i=new a(e,o);o.rows.push(i)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",e)}),o.table.options.dataLoaded.call(this.table,e),o.refreshActiveData(!1,!1,t)):console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ",void 0===e?"undefined":_typeof(e),"\nData: ",e)},s.prototype._wipeElements=function(){this.rows.forEach(function(e){e.wipe()}),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.wipe(),this.rows=[]},s.prototype.deleteRow=function(e,t){var o=this.rows.indexOf(e),i=this.activeRows.indexOf(e);i>-1&&this.activeRows.splice(i,1),o>-1&&this.rows.splice(o,1),this.setActiveRows(this.activeRows),this.displayRowIterator(function(t){var o=t.indexOf(e);o>-1&&t.splice(o,1)}),t||this.reRenderInPosition(),this.regenerateRowNumbers(),this.table.options.rowDeleted.call(this.table,e.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.groupRows.updateGroupRows(!0):this.table.options.pagination&&this.table.modExists("page")?this.refreshActiveData(!1,!1,!0):this.table.options.pagination&&this.table.modExists("page")&&this.refreshActiveData("page")},s.prototype.addRow=function(e,t,o,i){var n=this.addRowActual(e,t,o,i);return this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowAdd",n,{data:e,pos:t,index:o}),n},s.prototype.addRows=function(e,t,o){var i=this,n=this,s=0,r=[];return new Promise(function(a,l){t=i.findAddRowPos(t),Array.isArray(e)||(e=[e]),s=e.length-1,(void 0===o&&t||void 0!==o&&!t)&&e.reverse(),e.forEach(function(e,i){var s=n.addRow(e,t,o,!0);r.push(s)}),i.table.options.groupBy&&i.table.modExists("groupRows")?i.table.modules.groupRows.updateGroupRows(!0):i.table.options.pagination&&i.table.modExists("page")?i.refreshActiveData(!1,!1,!0):i.reRenderInPosition(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.regenerateRowNumbers(),a(r)})},s.prototype.findAddRowPos=function(e){return void 0===e&&(e=this.table.options.addRowPos),"pos"===e&&(e=!0),"bottom"===e&&(e=!1),e},s.prototype.addRowActual=function(e,t,o,i){var n,s,r=e instanceof a?e:new a(e||{},this),l=this.findAddRowPos(t),c=-1;if(!o&&this.table.options.pagination&&"page"==this.table.options.paginationAddRow&&(s=this.getDisplayRows(),l?s.length?o=s[0]:this.activeRows.length&&(o=this.activeRows[this.activeRows.length-1],l=!1):s.length&&(o=s[s.length-1],l=!(s.length<this.table.modules.page.getPageSize()))),void 0!==o&&(o=this.findRow(o)),this.table.options.groupBy&&this.table.modExists("groupRows")){this.table.modules.groupRows.assignRowToGroup(r);var u=r.getGroup().rows;u.length>1&&(!o||o&&-1==u.indexOf(o)?l?u[0]!==r&&(o=u[0],this._moveRowInArray(r.getGroup().rows,r,o,!l)):u[u.length-1]!==r&&(o=u[u.length-1],this._moveRowInArray(r.getGroup().rows,r,o,!l)):this._moveRowInArray(r.getGroup().rows,r,o,!l))}return o&&(c=this.rows.indexOf(o)),o&&c>-1?(n=this.activeRows.indexOf(o),this.displayRowIterator(function(e){var t=e.indexOf(o);t>-1&&e.splice(l?t:t+1,0,r)}),n>-1&&this.activeRows.splice(l?n:n+1,0,r),this.rows.splice(l?c:c+1,0,r)):l?(this.displayRowIterator(function(e){e.unshift(r)}),this.activeRows.unshift(r),this.rows.unshift(r)):(this.displayRowIterator(function(e){e.push(r)}),this.activeRows.push(r),this.rows.push(r)),this.setActiveRows(this.activeRows),this.table.options.rowAdded.call(this.table,r.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),i||this.reRenderInPosition(),r},s.prototype.moveRow=function(e,t,o){this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowMove",e,{posFrom:this.getRowPosition(e),posTo:this.getRowPosition(t),to:t,after:o}),this.moveRowActual(e,t,o),this.regenerateRowNumbers(),this.table.options.rowMoved.call(this.table,e.getComponent())},s.prototype.moveRowActual=function(e,t,o){var i=this;if(this._moveRowInArray(this.rows,e,t,o),this._moveRowInArray(this.activeRows,e,t,o),this.displayRowIterator(function(n){i._moveRowInArray(n,e,t,o)}),this.table.options.groupBy&&this.table.modExists("groupRows")){!o&&t instanceof S&&(t=this.table.rowManager.prevDisplayRow(e)||t);var n=t.getGroup(),s=e.getGroup();n===s?this._moveRowInArray(n.rows,e,t,o):(s&&s.removeRow(e),n.insertRow(e,t,o))}},s.prototype._moveRowInArray=function(e,t,o,i){var n,s,r,a;if(t!==o&&(n=e.indexOf(t),n>-1&&(e.splice(n,1),s=e.indexOf(o),s>-1?i?e.splice(s+1,0,t):e.splice(s,0,t):e.splice(n,0,t)),e===this.getDisplayRows())){r=n<s?n:s,a=s>n?s:n+1;for(var l=r;l<=a;l++)e[l]&&this.styleRow(e[l],l)}},s.prototype.clearData=function(){this.setData([])},s.prototype.getRowIndex=function(e){return this.findRowIndex(e,this.rows)},s.prototype.getDisplayRowIndex=function(e){var t=this.getDisplayRows().indexOf(e);return t>-1&&t},s.prototype.nextDisplayRow=function(e,t){var o=this.getDisplayRowIndex(e),i=!1;return!1!==o&&o<this.displayRowsCount-1&&(i=this.getDisplayRows()[o+1]),!i||i instanceof a&&"row"==i.type?i:this.nextDisplayRow(i,t)},s.prototype.prevDisplayRow=function(e,t){var o=this.getDisplayRowIndex(e),i=!1;return o&&(i=this.getDisplayRows()[o-1]),!t||!i||i instanceof a&&"row"==i.type?i:this.prevDisplayRow(i,t)},s.prototype.findRowIndex=function(e,t){var o;return!!((e=this.findRow(e))&&(o=t.indexOf(e))>-1)&&o},s.prototype.getData=function(e,t){var o=[];return this.getRows(e).forEach(function(e){"row"==e.type&&o.push(e.getData(t||"data"))}),o},s.prototype.getComponents=function(e){var t=[];return this.getRows(e).forEach(function(e){t.push(e.getComponent())}),t},s.prototype.getDataCount=function(e){return this.getRows(e).length},s.prototype._genRemoteRequest=function(){var e=this,t=this.table,o=t.options,i={};if(t.modExists("page")){if(o.ajaxSorting){var n=this.table.modules.sort.getSort();n.forEach(function(e){delete e.column}),i[this.table.modules.page.paginationDataSentNames.sorters]=n}if(o.ajaxFiltering){var s=this.table.modules.filter.getFilters(!0,!0);i[this.table.modules.page.paginationDataSentNames.filters]=s}this.table.modules.ajax.setParams(i,!0)}t.modules.ajax.sendRequest().then(function(t){e._setDataActual(t,!0)}).catch(function(e){})},s.prototype.filterRefresh=function(){var e=this.table,t=e.options,o=this.scrollLeft;t.ajaxFiltering?"remote"==t.pagination&&e.modExists("page")?(e.modules.page.reset(!0),e.modules.page.setPage(1).then(function(){}).catch(function(){})):t.ajaxProgressiveLoad?e.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData("filter"),this.scrollHorizontal(o)},s.prototype.sorterRefresh=function(e){var t=this.table,o=this.table.options,i=this.scrollLeft;o.ajaxSorting?("remote"==o.pagination||o.progressiveLoad)&&t.modExists("page")?(t.modules.page.reset(!0),t.modules.page.setPage(1).then(function(){}).catch(function(){})):o.ajaxProgressiveLoad?t.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData(e?"filter":"sort"),this.scrollHorizontal(i)},s.prototype.scrollHorizontal=function(e){this.scrollLeft=e,this.element.scrollLeft=e,this.table.options.groupBy&&this.table.modules.groupRows.scrollHeaders(e),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.scrollHorizontal(e)},s.prototype.refreshActiveData=function(e,t,o){var i,n=this,s=this.table,r=["all","filter","sort","display","freeze","group","tree","page"];if(this.redrawBlock)return void((!this.redrawBlockRestoreConfig||r.indexOf(e)<r.indexOf(this.redrawBlockRestoreConfig.stage))&&(this.redrawBlockRestoreConfig={stage:e,skipStage:t,renderInPosition:o}));switch(n.table.modExists("edit")&&n.table.modules.edit.cancelEdit(),e||(e="all"),s.options.selectable&&!s.options.selectablePersistence&&s.modExists("selectRow")&&s.modules.selectRow.deselectRows(),e){case"all":case"filter":t?t=!1:s.modExists("filter")?n.setActiveRows(s.modules.filter.filter(n.rows)):n.setActiveRows(n.rows.slice(0));case"sort":t?t=!1:s.modExists("sort")&&s.modules.sort.sort(this.activeRows),this.regenerateRowNumbers();case"display":this.resetDisplayRows();case"freeze":t?t=!1:this.table.modExists("frozenRows")&&s.modules.frozenRows.isFrozen()&&(s.modules.frozenRows.getDisplayIndex()||s.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.frozenRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.frozenRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.frozenRows.setDisplayIndex(i));case"group":t?t=!1:s.options.groupBy&&s.modExists("groupRows")&&(s.modules.groupRows.getDisplayIndex()||s.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.groupRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.groupRows.getRows(this.getDisplayRows(i-1)),i))&&s.modules.groupRows.setDisplayIndex(i));case"tree":t?t=!1:s.options.dataTree&&s.modExists("dataTree")&&(s.modules.dataTree.getDisplayIndex()||s.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.dataTree.getDisplayIndex(),!0!==(i=n.setDisplayRows(s.modules.dataTree.getRows(this.getDisplayRows(i-1)),i))&&s.modules.dataTree.setDisplayIndex(i)),s.options.pagination&&s.modExists("page")&&!o&&"local"==s.modules.page.getMode()&&s.modules.page.reset();case"page":t?t=!1:s.options.pagination&&s.modExists("page")&&(s.modules.page.getDisplayIndex()||s.modules.page.setDisplayIndex(this.getNextDisplayIndex()),i=s.modules.page.getDisplayIndex(),"local"==s.modules.page.getMode()&&s.modules.page.setMaxRows(this.getDisplayRows(i-1).length),!0!==(i=n.setDisplayRows(s.modules.page.getRows(this.getDisplayRows(i-1)),i))&&s.modules.page.setDisplayIndex(i))}d.prototype.helpers.elVisible(n.element)&&(o?n.reRenderInPosition():(n.renderTable(),s.options.layoutColumnsOnNewData&&n.table.columnManager.redraw(!0))),s.modExists("columnCalcs")&&s.modules.columnCalcs.recalc(this.activeRows)},s.prototype.regenerateRowNumbers=function(){var e=this;this.rowNumColumn&&this.activeRows.forEach(function(t){var o=t.getCell(e.rowNumColumn);o&&o._generateContents()})},s.prototype.setActiveRows=function(e){this.activeRows=e,this.activeRowsCount=this.activeRows.length},s.prototype.resetDisplayRows=function(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length,this.table.modExists("frozenRows")&&this.table.modules.frozenRows.setDisplayIndex(0),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.setDisplayIndex(0),this.table.options.pagination&&this.table.modExists("page")&&this.table.modules.page.setDisplayIndex(0)},s.prototype.getNextDisplayIndex=function(){return this.displayRows.length},s.prototype.setDisplayRows=function(e,t){var o=!0;return t&&void 0!==this.displayRows[t]?(this.displayRows[t]=e,o=!0):(this.displayRows.push(e),o=t=this.displayRows.length-1),t==this.displayRows.length-1&&(this.displayRowsCount=this.displayRows[this.displayRows.length-1].length),o},s.prototype.getDisplayRows=function(e){return void 0===e?this.displayRows.length?this.displayRows[this.displayRows.length-1]:[]:this.displayRows[e]||[]},s.prototype.getVisibleRows=function(e){var t=this.element.scrollTop,o=this.element.clientHeight+t,i=!1,n=0,s=0,r=this.getDisplayRows();if(e){this.getDisplayRows();for(var a=this.vDomTop;a<=this.vDomBottom;a++)if(r[a])if(i){if(!(o-r[a].getElement().offsetTop>=0))break;s=a}else if(t-r[a].getElement().offsetTop>=0)n=a;else{if(i=!0,!(o-r[a].getElement().offsetTop>=0))break;s=a}}else n=this.vDomTop,s=this.vDomBottom;return r.slice(n,s+1)},s.prototype.displayRowIterator=function(e){this.displayRows.forEach(e),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length},s.prototype.getRows=function(e){var t;switch(e){case"active":t=this.activeRows;break;case"display":t=this.table.rowManager.getDisplayRows();break;case"visible":t=this.getVisibleRows(!0);break;default:t=this.rows}return t},s.prototype.reRenderInPosition=function(e){if("virtual"==this.getRenderMode())if(this.redrawBlock)e?e():this.redrawBlockRederInPosition=!0;else{for(var t=this.element.scrollTop,o=!1,i=!1,n=this.scrollLeft,s=this.getDisplayRows(),r=this.vDomTop;r<=this.vDomBottom;r++)if(s[r]){var a=t-s[r].getElement().offsetTop;if(!(!1===i||Math.abs(a)<i))break;i=a,o=r}e&&e(),this._virtualRenderFill(!1===o?this.displayRowsCount-1:o,!0,i||0),this.scrollHorizontal(n)}else this.renderTable(),e&&e()},s.prototype.setRenderMode=function(){this.table.options.virtualDom?(this.renderMode="virtual",this.table.element.clientHeight||this.table.options.height?this.fixedHeight=!0:this.fixedHeight=!1):this.renderMode="classic"},s.prototype.getRenderMode=function(){return this.renderMode},s.prototype.renderTable=function(){switch(this.table.options.renderStarted.call(this.table),this.element.scrollTop=0,this.renderMode){case"classic":this._simpleRender();break;case"virtual":this._virtualRenderFill()}this.firstRender&&(this.displayRowsCount?(this.firstRender=!1,this.table.modules.layout.layout()):this.renderEmptyScroll()),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.displayRowsCount||this.table.options.placeholder&&(this.table.options.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.table.options.placeholder),this.table.options.placeholder.style.width=this.table.columnManager.getWidth()+"px"),this.table.options.renderComplete.call(this.table)},s.prototype._simpleRender=function(){this._clearVirtualDom(),this.displayRowsCount?this.checkClassicModeGroupHeaderWidth():this.renderEmptyScroll()},s.prototype.checkClassicModeGroupHeaderWidth=function(){var e=this,t=this.tableElement,o=!0;e.getDisplayRows().forEach(function(i,n){e.styleRow(i,n),t.appendChild(i.getElement()),i.initialize(!0),"group"!==i.type&&(o=!1)}),t.style.minWidth=o?e.table.columnManager.getWidth()+"px":""},s.prototype.renderEmptyScroll=function(){this.table.options.placeholder?this.tableElement.style.display="none":(this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px",this.tableElement.style.minHeight="1px",this.tableElement.style.visibility="hidden")},s.prototype._clearVirtualDom=function(){var e=this.tableElement;for(this.table.options.placeholder&&this.table.options.placeholder.parentNode&&this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);e.firstChild;)e.removeChild(e.firstChild);e.style.paddingTop="",e.style.paddingBottom="",e.style.minWidth="",e.style.minHeight="",e.style.display="",e.style.visibility="",this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0},s.prototype.styleRow=function(e,t){var o=e.getElement();t%2?(o.classList.add("tabulator-row-even"),o.classList.remove("tabulator-row-odd")):(o.classList.add("tabulator-row-odd"),o.classList.remove("tabulator-row-even"))},s.prototype._virtualRenderFill=function(e,t,o){var i=this,n=i.tableElement,s=i.element,r=0,a=0,l=0,c=0,u=!0,h=i.getDisplayRows();if(e=e||0,o=o||0,e){for(;n.firstChild;)n.removeChild(n.firstChild);var p=(i.displayRowsCount-e+1)*i.vDomRowHeight;p<i.height&&(e-=Math.ceil((i.height-p)/i.vDomRowHeight))<0&&(e=0),r=Math.min(Math.max(Math.floor(i.vDomWindowBuffer/i.vDomRowHeight),i.vDomWindowMinMarginRows),e),e-=r}else i._clearVirtualDom();if(i.displayRowsCount&&d.prototype.helpers.elVisible(i.element)){for(i.vDomTop=e,i.vDomBottom=e-1;(a<=i.height+i.vDomWindowBuffer||c<i.vDomWindowMinTotalRows)&&i.vDomBottom<i.displayRowsCount-1;){var m=i.vDomBottom+1,f=h[m],g=0;i.styleRow(f,m),n.appendChild(f.getElement()),f.initialized?f.heightInitialized||f.normalizeHeight(!0):f.initialize(!0),g=f.getHeight(),c<r?l+=g:a+=g,g>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*g),"group"!==f.type&&(u=!1),i.vDomBottom++,c++}e?(i.vDomTopPad=t?i.vDomRowHeight*this.vDomTop+o:i.scrollTop-l,i.vDomBottomPad=i.vDomBottom==i.displayRowsCount-1?0:Math.max(i.vDomScrollHeight-i.vDomTopPad-a-l,0)):(this.vDomTopPad=0,i.vDomRowHeight=Math.floor((a+l)/c),i.vDomBottomPad=i.vDomRowHeight*(i.displayRowsCount-i.vDomBottom-1),i.vDomScrollHeight=l+a+i.vDomBottomPad-i.height),n.style.paddingTop=i.vDomTopPad+"px",n.style.paddingBottom=i.vDomBottomPad+"px",t&&(this.scrollTop=i.vDomTopPad+l+o-(this.element.scrollWidth>this.element.clientWidth?this.element.offsetHeight-this.element.clientHeight:0)),this.scrollTop=Math.min(this.scrollTop,this.element.scrollHeight-this.height),this.element.scrollWidth>this.element.offsetWidth&&t&&(this.scrollTop+=this.element.offsetHeight-this.element.clientHeight),this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,s.scrollTop=this.scrollTop,n.style.minWidth=u?i.table.columnManager.getWidth()+"px":"",i.table.options.groupBy&&"fitDataFill"!=i.table.modules.layout.getMode()&&i.displayRowsCount==i.table.modules.groupRows.countGroups()&&(i.tableElement.style.minWidth=i.table.columnManager.getWidth())}else this.renderEmptyScroll();this.fixedHeight||this.adjustTableSize()},s.prototype.scrollVertical=function(e){var t=this.scrollTop-this.vDomScrollPosTop,o=this.scrollTop-this.vDomScrollPosBottom,i=2*this.vDomWindowBuffer;if(-t>i||o>i){var n=this.scrollLeft;this._virtualRenderFill(Math.floor(this.element.scrollTop/this.element.scrollHeight*this.displayRowsCount)),this.scrollHorizontal(n)}else e?(t<0&&this._addTopRow(-t),o<0&&(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer?this._removeBottomRow(-o):this.vDomScrollPosBottom=this.scrollTop)):(t>=0&&(this.scrollTop>this.vDomWindowBuffer?this._removeTopRow(t):this.vDomScrollPosTop=this.scrollTop),o>=0&&this._addBottomRow(o))},s.prototype._addTopRow=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomTop){var n=this.vDomTop-1,s=i[n],r=s.getHeight()||this.vDomRowHeight;e>=r&&(this.styleRow(s,n),o.insertBefore(s.getElement(),o.firstChild),s.initialized&&s.heightInitialized||(this.vDomTopNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomTopPad-=r,this.vDomTopPad<0&&(this.vDomTopPad=n*this.vDomRowHeight),n||(this.vDomTopPad=0),o.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=r,this.vDomTop--),e=-(this.scrollTop-this.vDomScrollPosTop),s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),t<this.vDomMaxRenderChain&&this.vDomTop&&e>=(i[this.vDomTop-1].getHeight()||this.vDomRowHeight)?this._addTopRow(e,t+1):this._quickNormalizeRowHeight(this.vDomTopNewRows)}},s.prototype._removeTopRow=function(e){var t=this.tableElement,o=this.getDisplayRows()[this.vDomTop],i=o.getHeight()||this.vDomRowHeight;if(e>=i){var n=o.getElement();n.parentNode.removeChild(n),this.vDomTopPad+=i,t.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?i:i+this.vDomWindowBuffer,this.vDomTop++,e=this.scrollTop-this.vDomScrollPosTop,this._removeTopRow(e)}},s.prototype._addBottomRow=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomBottom<this.displayRowsCount-1){var n=this.vDomBottom+1,s=i[n],r=s.getHeight()||this.vDomRowHeight;e>=r&&(this.styleRow(s,n),o.appendChild(s.getElement()),s.initialized&&s.heightInitialized||(this.vDomBottomNewRows.push(s),s.heightInitialized||s.clearCellHeight()),s.initialize(),this.vDomBottomPad-=r,(this.vDomBottomPad<0||n==this.displayRowsCount-1)&&(this.vDomBottomPad=0),o.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=r,this.vDomBottom++),e=this.scrollTop-this.vDomScrollPosBottom,s.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*s.getHeight()),t<this.vDomMaxRenderChain&&this.vDomBottom<this.displayRowsCount-1&&e>=(i[this.vDomBottom+1].getHeight()||this.vDomRowHeight)?this._addBottomRow(e,t+1):this._quickNormalizeRowHeight(this.vDomBottomNewRows)}},s.prototype._removeBottomRow=function(e){var t=this.tableElement,o=this.getDisplayRows()[this.vDomBottom],i=o.getHeight()||this.vDomRowHeight;if(e>=i){var n=o.getElement();n.parentNode&&n.parentNode.removeChild(n),this.vDomBottomPad+=i,this.vDomBottomPad<0&&(this.vDomBottomPad=0),t.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=i,this.vDomBottom--,e=-(this.scrollTop-this.vDomScrollPosBottom),this._removeBottomRow(e)}},s.prototype._quickNormalizeRowHeight=function(e){e.forEach(function(e){e.calcHeight()}),e.forEach(function(e){e.setCellHeight()}),e.length=0},s.prototype.normalizeHeight=function(){this.activeRows.forEach(function(e){e.normalizeHeight()})},s.prototype.adjustTableSize=function(){var e,t=this.element.clientHeight;if("virtual"===this.renderMode){var o=this.columnManager.getElement().offsetHeight+(this.table.footerManager&&!this.table.footerManager.external?this.table.footerManager.getElement().offsetHeight:0);this.fixedHeight?(this.element.style.minHeight="calc(100% - "+o+"px)",this.element.style.height="calc(100% - "+o+"px)",this.element.style.maxHeight="calc(100% - "+o+"px)"):(this.element.style.height="",this.element.style.height=this.table.element.clientHeight-o+"px",this.element.scrollTop=this.scrollTop),this.height=this.element.clientHeight,this.vDomWindowBuffer=this.table.options.virtualDomBuffer||this.height,this.fixedHeight||t==this.element.clientHeight||((e=this.table.modExists("resizeTable"))&&!this.table.modules.resizeTable.autoResize||!e)&&this.redraw()}},s.prototype.reinitialize=function(){this.rows.forEach(function(e){e.reinitialize()})},s.prototype.blockRedraw=function(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1},s.prototype.restoreRedraw=function(){this.redrawBlock=!1,this.redrawBlockRestoreConfig?(this.refreshActiveData(this.redrawBlockRestoreConfig.stage,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1):this.redrawBlockRederInPosition&&this.reRenderInPosition(),this.redrawBlockRederInPosition=!1},s.prototype.redraw=function(e){var t=this.scrollLeft;this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,e?this.renderTable():("classic"==this.renderMode?this.table.options.groupBy?this.refreshActiveData("group",!1,!1):this._simpleRender():(this.reRenderInPosition(),this.scrollHorizontal(t)),this.displayRowsCount||this.table.options.placeholder&&this.getElement().appendChild(this.table.options.placeholder))},s.prototype.resetScroll=function(){if(this.element.scrollLeft=0,this.element.scrollTop=0,"ie"===this.table.browser){var e=document.createEvent("Event");e.initEvent("scroll",!1,!0),this.element.dispatchEvent(e)}else this.element.dispatchEvent(new Event("scroll"))};var r=function(e){this._row=e};r.prototype.getData=function(e){return this._row.getData(e)},r.prototype.getElement=function(){return this._row.getElement()},r.prototype.getCells=function(){var e=[];return this._row.getCells().forEach(function(t){e.push(t.getComponent())}),e},r.prototype.getCell=function(e){var t=this._row.getCell(e);return!!t&&t.getComponent()},r.prototype.getIndex=function(){return this._row.getData("data")[this._row.table.options.index]},r.prototype.getPosition=function(e){return this._row.table.rowManager.getRowPosition(this._row,e)},r.prototype.delete=function(){return this._row.delete()},r.prototype.scrollTo=function(){return this._row.table.rowManager.scrollToRow(this._row)},r.prototype.pageTo=function(){if(this._row.table.modExists("page",!0))return this._row.table.modules.page.setPageToRow(this._row)},r.prototype.move=function(e,t){this._row.moveToRow(e,t)},r.prototype.update=function(e){return this._row.updateData(e)},
-r.prototype.normalizeHeight=function(){this._row.normalizeHeight(!0)},r.prototype.select=function(){this._row.table.modules.selectRow.selectRows(this._row)},r.prototype.deselect=function(){this._row.table.modules.selectRow.deselectRows(this._row)},r.prototype.toggleSelect=function(){this._row.table.modules.selectRow.toggleRow(this._row)},r.prototype.isSelected=function(){return this._row.table.modules.selectRow.isRowSelected(this._row)},r.prototype._getSelf=function(){return this._row},r.prototype.validate=function(){return this._row.validate()},r.prototype.freeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.freezeRow(this._row)},r.prototype.unfreeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.unfreezeRow(this._row)},r.prototype.isFrozen=function(){if(this._row.table.modExists("frozenRows",!0)){return this._row.table.modules.frozenRows.rows.indexOf(this._row)>-1}return!1},r.prototype.treeCollapse=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.collapseRow(this._row)},r.prototype.treeExpand=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.expandRow(this._row)},r.prototype.treeToggle=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.toggleRow(this._row)},r.prototype.getTreeParent=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeParent(this._row)},r.prototype.getTreeChildren=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeChildren(this._row)},r.prototype.addTreeChild=function(e,t,o){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.addTreeChildRow(this._row,e,t,o)},r.prototype.reformat=function(){return this._row.reinitialize()},r.prototype.getGroup=function(){return this._row.getGroup().getComponent()},r.prototype.getTable=function(){return this._row.table},r.prototype.getNextRow=function(){var e=this._row.nextRow();return e?e.getComponent():e},r.prototype.getPrevRow=function(){var e=this._row.prevRow();return e?e.getComponent():e};var a=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"row";this.table=t.table,this.parent=t,this.data={},this.type=o,this.element=this.createElement(),this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.component=null,this.setData(e),this.generateElement()};a.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-row"),e.setAttribute("role","row"),e},a.prototype.getElement=function(){return this.element},a.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},a.prototype.generateElement=function(){var e,t,o,i=this;!1!==i.table.options.selectable&&i.table.modExists("selectRow")&&i.table.modules.selectRow.initializeRow(this),!1!==i.table.options.movableRows&&i.table.modExists("moveRow")&&i.table.modules.moveRow.initializeRow(this),!1!==i.table.options.dataTree&&i.table.modExists("dataTree")&&i.table.modules.dataTree.initializeRow(this),"collapse"===i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout")&&i.table.modules.responsiveLayout.initializeRow(this),i.table.options.rowContextMenu&&this.table.modExists("menu")&&i.table.modules.menu.initializeRow(this),i.table.options.rowClick&&i.element.addEventListener("click",function(e){i.table.options.rowClick(e,i.getComponent())}),i.table.options.rowDblClick&&i.element.addEventListener("dblclick",function(e){i.table.options.rowDblClick(e,i.getComponent())}),i.table.options.rowContext&&i.element.addEventListener("contextmenu",function(e){i.table.options.rowContext(e,i.getComponent())}),i.table.options.rowMouseEnter&&i.element.addEventListener("mouseenter",function(e){i.table.options.rowMouseEnter(e,i.getComponent())}),i.table.options.rowMouseLeave&&i.element.addEventListener("mouseleave",function(e){i.table.options.rowMouseLeave(e,i.getComponent())}),i.table.options.rowMouseOver&&i.element.addEventListener("mouseover",function(e){i.table.options.rowMouseOver(e,i.getComponent())}),i.table.options.rowMouseOut&&i.element.addEventListener("mouseout",function(e){i.table.options.rowMouseOut(e,i.getComponent())}),i.table.options.rowMouseMove&&i.element.addEventListener("mousemove",function(e){i.table.options.rowMouseMove(e,i.getComponent())}),i.table.options.rowTap&&(o=!1,i.element.addEventListener("touchstart",function(e){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(e){o&&i.table.options.rowTap(e,i.getComponent()),o=!1})),i.table.options.rowDblTap&&(e=null,i.element.addEventListener("touchend",function(t){e?(clearTimeout(e),e=null,i.table.options.rowDblTap(t,i.getComponent())):e=setTimeout(function(){clearTimeout(e),e=null},300)})),i.table.options.rowTapHold&&(t=null,i.element.addEventListener("touchstart",function(e){clearTimeout(t),t=setTimeout(function(){clearTimeout(t),t=null,o=!1,i.table.options.rowTapHold(e,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(e){clearTimeout(t),t=null}))},a.prototype.generateCells=function(){this.cells=this.table.columnManager.generateCells(this)},a.prototype.initialize=function(e){var t=this;if(!t.initialized||e){for(t.deleteCells();t.element.firstChild;)t.element.removeChild(t.element.firstChild);this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutRow(this),this.generateCells(),t.cells.forEach(function(e){t.element.appendChild(e.getElement()),e.cellRendered()}),e&&t.normalizeHeight(),t.table.options.dataTree&&t.table.modExists("dataTree")&&t.table.modules.dataTree.layoutRow(this),"collapse"===t.table.options.responsiveLayout&&t.table.modExists("responsiveLayout")&&t.table.modules.responsiveLayout.layoutRow(this),t.table.options.rowFormatter&&t.table.options.rowFormatter(t.getComponent()),t.table.options.resizableRows&&t.table.modExists("resizeRows")&&t.table.modules.resizeRows.initializeRow(t),t.initialized=!0}},a.prototype.reinitializeHeight=function(){this.heightInitialized=!1,null!==this.element.offsetParent&&this.normalizeHeight(!0)},a.prototype.reinitialize=function(){this.initialized=!1,this.heightInitialized=!1,this.manualHeight||(this.height=0,this.heightStyled=""),null!==this.element.offsetParent&&this.initialize(!0)},a.prototype.calcHeight=function(e){var t=0,o=this.table.options.resizableRows?this.element.clientHeight:0;this.cells.forEach(function(e){var o=e.getHeight();o>t&&(t=o)}),this.height=e?Math.max(t,o):this.manualHeight?this.height:Math.max(t,o),this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight},a.prototype.setCellHeight=function(){this.cells.forEach(function(e){e.setHeight()}),this.heightInitialized=!0},a.prototype.clearCellHeight=function(){this.cells.forEach(function(e){e.clearHeight()})},a.prototype.normalizeHeight=function(e){e&&this.clearCellHeight(),this.calcHeight(e),this.setCellHeight()},a.prototype.setHeight=function(e,t){(this.height!=e||t)&&(this.manualHeight=!0,this.height=e,this.heightStyled=e?e+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight)},a.prototype.getHeight=function(){return this.outerHeight},a.prototype.getWidth=function(){return this.element.offsetWidth},a.prototype.deleteCell=function(e){var t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)},a.prototype.setData=function(e){this.table.modExists("mutator")&&(e=this.table.modules.mutator.transformRow(e,"data")),this.data=e,this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchRow(this)},a.prototype.updateData=function(e){var t,o=this,i=d.prototype.helpers.elVisible(this.element),n={};return new Promise(function(s,r){"string"==typeof e&&(e=JSON.parse(e)),o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.block(),o.table.modExists("mutator")?(n=Object.assign(n,o.data),n=Object.assign(n,e),t=o.table.modules.mutator.transformRow(n,"data",e)):t=e;for(var a in t)o.data[a]=t[a];o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.unblock();for(var a in e){o.table.columnManager.getColumnsByFieldRoot(a).forEach(function(e){var n=o.getCell(e.getField());if(n){var s=e.getFieldValue(t);n.getValue()!=s&&(n.setValueProcessData(s),i&&n.cellRendered())}})}i?(o.normalizeHeight(!0),o.table.options.rowFormatter&&o.table.options.rowFormatter(o.getComponent())):(o.initialized=!1,o.height=0,o.heightStyled=""),!1!==o.table.options.dataTree&&o.table.modExists("dataTree")&&o.table.modules.dataTree.redrawNeeded(e)&&(o.table.modules.dataTree.initializeRow(o),o.table.modules.dataTree.layoutRow(o),o.table.rowManager.refreshActiveData("tree",!1,!0)),o.table.options.rowUpdated.call(o.table,o.getComponent()),s()})},a.prototype.getData=function(e){var t=this;return e?t.table.modExists("accessor")?t.table.modules.accessor.transformRow(t.data,e):void 0:this.data},a.prototype.getCell=function(e){return e=this.table.columnManager.findColumn(e),this.cells.find(function(t){return t.column===e})},a.prototype.getCellIndex=function(e){return this.cells.findIndex(function(t){return t===e})},a.prototype.findNextEditableCell=function(e){var t=!1;if(e<this.cells.length-1)for(var o=e+1;o<this.cells.length;o++){var i=this.cells[o];if(i.column.modules.edit&&d.prototype.helpers.elVisible(i.getElement())){var n=!0;if("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n){t=i;break}}}return t},a.prototype.findPrevEditableCell=function(e){var t=!1;if(e>0)for(var o=e-1;o>=0;o--){var i=this.cells[o],n=!0;if(i.column.modules.edit&&d.prototype.helpers.elVisible(i.getElement())&&("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n)){t=i;break}}return t},a.prototype.getCells=function(){return this.cells},a.prototype.nextRow=function(){return this.table.rowManager.nextDisplayRow(this,!0)||!1},a.prototype.prevRow=function(){return this.table.rowManager.prevDisplayRow(this,!0)||!1},a.prototype.moveToRow=function(e,t){var o=this.table.rowManager.findRow(e);o?(this.table.rowManager.moveRowActual(this,o,!t),this.table.rowManager.refreshActiveData("display",!1,!0)):console.warn("Move Error - No matching row found:",e)},a.prototype.validate=function(){var e=[];return this.cells.forEach(function(t){t.validate()||e.push(t.getComponent())}),!e.length||e},a.prototype.delete=function(){var e=this;return new Promise(function(t,o){var i,n;e.table.options.history&&e.table.modExists("history")&&(e.table.options.groupBy&&e.table.modExists("groupRows")?(n=e.getGroup().rows,(i=n.indexOf(e))&&(i=n[i-1])):(i=e.table.rowManager.getRowIndex(e))&&(i=e.table.rowManager.rows[i-1]),e.table.modules.history.action("rowDelete",e,{data:e.getData(),pos:!i,index:i})),e.deleteActual(),t()})},a.prototype.deleteActual=function(e){this.table.rowManager.getRowIndex(this);this.table.modExists("selectRow")&&this.table.modules.selectRow._deselectRow(this,!0),this.table.modExists("edit")&&this.table.modules.edit.currentCell.row===this&&this.table.modules.edit.cancelEdit(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0),this.modules.group&&this.modules.group.removeRow(this),this.table.rowManager.deleteRow(this,e),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.table.options.dataTree&&this.table.modExists("dataTree",!0)&&this.table.modules.dataTree.rowDelete(this),this.table.modExists("columnCalcs")&&(this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.columnCalcs.recalcRowGroup(this):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows))},a.prototype.deleteCells=function(){for(var e=this.cells.length,t=0;t<e;t++)this.cells[0].delete()},a.prototype.wipe=function(){for(this.deleteCells();this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element=!1,this.modules={},this.element.parentNode&&this.element.parentNode.removeChild(this.element)},a.prototype.getGroup=function(){return this.modules.group||!1},a.prototype.getComponent=function(){return this.component||(this.component=new r(this)),this.component};var l=function(e){this._cell=e};l.prototype.getValue=function(){return this._cell.getValue()},l.prototype.getOldValue=function(){return this._cell.getOldValue()},l.prototype.getElement=function(){return this._cell.getElement()},l.prototype.getRow=function(){return this._cell.row.getComponent()},l.prototype.getData=function(){return this._cell.row.getData()},l.prototype.getField=function(){return this._cell.column.getField()},l.prototype.getColumn=function(){return this._cell.column.getComponent()},l.prototype.setValue=function(e,t){void 0===t&&(t=!0),this._cell.setValue(e,t)},l.prototype.restoreOldValue=function(){this._cell.setValueActual(this._cell.getOldValue())},l.prototype.edit=function(e){return this._cell.edit(e)},l.prototype.cancelEdit=function(){this._cell.cancelEdit()},l.prototype.isEdited=function(){return!!this._cell.modules.edit&&this._cell.modules.edit.edited},l.prototype.clearEdited=function(){self.table.modExists("edit",!0)&&this._cell.table.modules.edit.clearEdited(this._cell)},l.prototype.isValid=function(){return!this._cell.modules.validate||!this._cell.modules.validate.invalid},l.prototype.validate=function(){return this._cell.validate()},l.prototype.clearValidation=function(){self.table.modExists("validate",!0)&&this._cell.table.modules.validate.clearValidation(this._cell)},l.prototype.nav=function(){return this._cell.nav()},l.prototype.checkHeight=function(){this._cell.checkHeight()},l.prototype.getTable=function(){return this._cell.table},l.prototype._getSelf=function(){return this._cell};var c=function(e,t){this.table=e.table,this.column=e,this.row=t,this.element=null,this.value=null,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.component=null,this.build()};c.prototype.build=function(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data))},c.prototype.generateElement=function(){this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.element=this.element},c.prototype._configureCell=function(){var e=this,t=e.column.cellEvents,o=e.element,i=this.column.getField(),n={top:"flex-start",bottom:"flex-end",middle:"center"},s={left:"flex-start",right:"flex-end",center:"center"};if(o.style.textAlign=e.column.hozAlign,e.column.vertAlign&&(o.style.display="inline-flex",o.style.alignItems=n[e.column.vertAlign]||"",e.column.hozAlign&&(o.style.justifyContent=s[e.column.hozAlign]||"")),i&&o.setAttribute("tabulator-field",i),e.column.definition.cssClass){e.column.definition.cssClass.split(" ").forEach(function(e){o.classList.add(e)})}"hover"===this.table.options.tooltipGenerationMode&&o.addEventListener("mouseenter",function(t){e._generateTooltip()}),e._bindClickEvents(t),e._bindTouchEvents(t),e._bindMouseEvents(t),e.column.modules.edit&&e.table.modules.edit.bindEditor(e),e.column.definition.rowHandle&&!1!==e.table.options.movableRows&&e.table.modExists("moveRow")&&e.table.modules.moveRow.initializeCell(e),e.column.visible||e.hide()},c.prototype._bindClickEvents=function(e){var t=this,o=t.element;(e.cellClick||t.table.options.cellClick)&&o.addEventListener("click",function(o){var i=t.getComponent();e.cellClick&&e.cellClick.call(t.table,o,i),t.table.options.cellClick&&t.table.options.cellClick.call(t.table,o,i)}),e.cellDblClick||this.table.options.cellDblClick?o.addEventListener("dblclick",function(o){var i=t.getComponent();e.cellDblClick&&e.cellDblClick.call(t.table,o,i),t.table.options.cellDblClick&&t.table.options.cellDblClick.call(t.table,o,i)}):o.addEventListener("dblclick",function(e){if(!t.table.modExists("edit")||t.table.modules.edit.currentCell!==t){e.preventDefault();try{if(document.selection){var o=document.body.createTextRange();o.moveToElementText(t.element),o.select()}else if(window.getSelection){var o=document.createRange();o.selectNode(t.element),window.getSelection().removeAllRanges(),window.getSelection().addRange(o)}}catch(e){}}}),(e.cellContext||this.table.options.cellContext)&&o.addEventListener("contextmenu",function(o){var i=t.getComponent();e.cellContext&&e.cellContext.call(t.table,o,i),t.table.options.cellContext&&t.table.options.cellContext.call(t.table,o,i)})},c.prototype._bindMouseEvents=function(e){var t=this,o=t.element;(e.cellMouseEnter||t.table.options.cellMouseEnter)&&o.addEventListener("mouseenter",function(o){var i=t.getComponent();e.cellMouseEnter&&e.cellMouseEnter.call(t.table,o,i),t.table.options.cellMouseEnter&&t.table.options.cellMouseEnter.call(t.table,o,i)}),(e.cellMouseLeave||t.table.options.cellMouseLeave)&&o.addEventListener("mouseleave",function(o){var i=t.getComponent();e.cellMouseLeave&&e.cellMouseLeave.call(t.table,o,i),t.table.options.cellMouseLeave&&t.table.options.cellMouseLeave.call(t.table,o,i)}),(e.cellMouseOver||t.table.options.cellMouseOver)&&o.addEventListener("mouseover",function(o){var i=t.getComponent();e.cellMouseOver&&e.cellMouseOver.call(t.table,o,i),t.table.options.cellMouseOver&&t.table.options.cellMouseOver.call(t.table,o,i)}),(e.cellMouseOut||t.table.options.cellMouseOut)&&o.addEventListener("mouseout",function(o){var i=t.getComponent();e.cellMouseOut&&e.cellMouseOut.call(t.table,o,i),t.table.options.cellMouseOut&&t.table.options.cellMouseOut.call(t.table,o,i)}),(e.cellMouseMove||t.table.options.cellMouseMove)&&o.addEventListener("mousemove",function(o){var i=t.getComponent();e.cellMouseMove&&e.cellMouseMove.call(t.table,o,i),t.table.options.cellMouseMove&&t.table.options.cellMouseMove.call(t.table,o,i)})},c.prototype._bindTouchEvents=function(e){var t,o,i,n=this,s=n.element;(e.cellTap||this.table.options.cellTap)&&(i=!1,s.addEventListener("touchstart",function(e){i=!0},{passive:!0}),s.addEventListener("touchend",function(t){if(i){var o=n.getComponent();e.cellTap&&e.cellTap.call(n.table,t,o),n.table.options.cellTap&&n.table.options.cellTap.call(n.table,t,o)}i=!1})),(e.cellDblTap||this.table.options.cellDblTap)&&(t=null,s.addEventListener("touchend",function(o){if(t){clearTimeout(t),t=null;var i=n.getComponent();e.cellDblTap&&e.cellDblTap.call(n.table,o,i),n.table.options.cellDblTap&&n.table.options.cellDblTap.call(n.table,o,i)}else t=setTimeout(function(){clearTimeout(t),t=null},300)})),(e.cellTapHold||this.table.options.cellTapHold)&&(o=null,s.addEventListener("touchstart",function(t){clearTimeout(o),o=setTimeout(function(){clearTimeout(o),o=null,i=!1;var s=n.getComponent();e.cellTapHold&&e.cellTapHold.call(n.table,t,s),n.table.options.cellTapHold&&n.table.options.cellTapHold.call(n.table,t,s)},1e3)},{passive:!0}),s.addEventListener("touchend",function(e){clearTimeout(o),o=null}))},c.prototype._generateContents=function(){var e;switch(e=this.table.modExists("format")?this.table.modules.format.formatValue(this):this.element.innerHTML=this.value,void 0===e?"undefined":_typeof(e)){case"object":if(e instanceof Node){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.appendChild(e)}else this.element.innerHTML="",null!=e&&console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",e);break;case"undefined":case"null":this.element.innerHTML="";break;default:this.element.innerHTML=e}},c.prototype.cellRendered=function(){this.table.modExists("format")&&this.table.modules.format.cellRendered&&this.table.modules.format.cellRendered(this)},c.prototype._generateTooltip=function(){var e=this.column.tooltip;e?(!0===e?e=this.value:"function"==typeof e&&!1===(e=e(this.getComponent()))&&(e=""),void 0===e&&(e=""),this.element.setAttribute("title",e)):this.element.setAttribute("title","")},c.prototype.getElement=function(){return this.element},c.prototype.getValue=function(){return this.value},c.prototype.getOldValue=function(){return this.oldValue},c.prototype.setValue=function(e,t){var o,i=this.setValueProcessData(e,t);i&&(this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("cellEdit",this,{oldValue:this.oldValue,newValue:this.value}),o=this.getComponent(),this.column.cellEvents.cellEdited&&this.column.cellEvents.cellEdited.call(this.table,o),this.cellRendered(),this.table.options.cellEdited.call(this.table,o),this.table.options.dataEdited.call(this.table,this.table.rowManager.getData()))},c.prototype.setValueProcessData=function(e,t){var o=!1;return this.value!=e&&(o=!0,t&&this.column.modules.mutate&&(e=this.table.modules.mutator.transformCell(this,e))),this.setValueActual(e),o&&this.table.modExists("columnCalcs")&&(this.column.definition.topCalc||this.column.definition.bottomCalc)&&(this.table.options.groupBy&&this.table.modExists("groupRows")?("table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs||this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),"table"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.recalcRowGroup(this.row)):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows)),o},c.prototype.setValueActual=function(e){this.oldValue=this.value,this.value=e,this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.block(),this.column.setFieldValue(this.row.data,e),this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.unblock(),this._generateContents(),this._generateTooltip(),this.table.options.resizableColumns&&this.table.modExists("resizeColumns")&&this.table.modules.resizeColumns.initializeColumn("cell",this.column,this.element),this.column.definition.contextMenu&&this.table.modExists("menu")&&this.table.modules.menu.initializeCell(this),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutElement(this.element,this.column)},c.prototype.setWidth=function(){this.width=this.column.width,this.element.style.width=this.column.widthStyled},c.prototype.clearWidth=function(){this.width="",this.element.style.width=""},c.prototype.getWidth=function(){return this.width||this.element.offsetWidth},c.prototype.setMinWidth=function(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled},c.prototype.checkHeight=function(){this.row.reinitializeHeight()},c.prototype.clearHeight=function(){this.element.style.height="",this.height=null},c.prototype.setHeight=function(){this.height=this.row.height,this.element.style.height=this.row.heightStyled},c.prototype.getHeight=function(){return this.height||this.element.offsetHeight},c.prototype.show=function(){this.element.style.display=""},c.prototype.hide=function(){this.element.style.display="none"},c.prototype.edit=function(e){if(this.table.modExists("edit",!0))return this.table.modules.edit.editCell(this,e)},c.prototype.cancelEdit=function(){if(this.table.modExists("edit",!0)){var e=this.table.modules.edit.getCurrentCell();e&&e._getSelf()===this?this.table.modules.edit.cancelEdit():console.warn("Cancel Editor Error - This cell is not currently being edited ")}},c.prototype.validate=function(){if(this.column.modules.validate&&this.table.modExists("validate",!0)){return!0===this.table.modules.validate.validate(this.column.modules.validate,this,this.getValue())}return!0},c.prototype.delete=function(){this.table.rowManager.redrawBlock||this.element.parentNode.removeChild(this.element),this.modules.validate&&this.modules.validate.invalid&&this.table.modules.validate.clearValidation(this),this.modules.edit&&this.modules.edit.edited&&this.table.modules.edit.clearEdited(this),this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}},c.prototype.nav=function(){var e=this,t=!1,o=this.row.getCellIndex(this);return{next:function(){var t,o=this.right();return!!o||!(!(t=e.table.rowManager.nextDisplayRow(e.row,!0))||!(o=t.findNextEditableCell(-1)))&&(o.edit(),!0)},prev:function(){var t,o=this.left();return!!o||!(!(t=e.table.rowManager.prevDisplayRow(e.row,!0))||!(o=t.findPrevEditableCell(t.cells.length)))&&(o.edit(),!0)},left:function(){return!!(t=e.row.findPrevEditableCell(o))&&(t.edit(),!0)},right:function(){return!!(t=e.row.findNextEditableCell(o))&&(t.edit(),!0)},up:function(){var t=e.table.rowManager.prevDisplayRow(e.row,!0);t&&t.cells[o].edit()},down:function(){var t=e.table.rowManager.nextDisplayRow(e.row,!0);t&&t.cells[o].edit()}}},c.prototype.getIndex=function(){this.row.getCellIndex(this)},c.prototype.getComponent=function(){return this.component||(this.component=new l(this)),this.component};var u=function(e){this.table=e,this.active=!1,this.element=this.createElement(),this.external=!1,this.links=[],this._initialize()};u.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-footer"),e},u.prototype._initialize=function(e){if(this.table.options.footerElement)switch(_typeof(this.table.options.footerElement)){case"string":"<"===this.table.options.footerElement[0]?this.element.innerHTML=this.table.options.footerElement:(this.external=!0,this.element=document.querySelector(this.table.options.footerElement));break;default:this.element=this.table.options.footerElement}},u.prototype.getElement=function(){return this.element},u.prototype.append=function(e,t){this.activate(t),this.element.appendChild(e),this.table.rowManager.adjustTableSize()},u.prototype.prepend=function(e,t){this.activate(t),this.element.insertBefore(e,this.element.firstChild),this.table.rowManager.adjustTableSize()},u.prototype.remove=function(e){e.parentNode.removeChild(e),this.deactivate()},u.prototype.deactivate=function(e){this.element.firstChild&&!e||(this.external||this.element.parentNode.removeChild(this.element),this.active=!1)},u.prototype.activate=function(e){this.active||(this.active=!0,this.external||(this.table.element.appendChild(this.getElement()),this.table.element.style.display="")),e&&this.links.push(e)},u.prototype.redraw=function(){this.links.forEach(function(e){e.footerRedraw()})};var d=function e(t,o){this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.modules={},this.initializeElement(t),this.initializeOptions(o||{}),this._create(),e.prototype.comms.register(this)};d.prototype.defaultOptions={height:!1,minHeight:!1,maxHeight:!1,layout:"fitData",layoutColumnsOnNewData:!1,columnMinWidth:40,columnHeaderVertAlign:"top",columnVertAlign:!1,resizableColumns:!0,resizableRows:!1,autoResize:!0,columns:[],cellHozAlign:"",cellVertAlign:"",data:[],autoColumns:!1,reactiveData:!1,nestedFieldSeparator:".",tooltips:!1,tooltipsHeader:!1,tooltipGenerationMode:"load",initialSort:!1,initialFilter:!1,initialHeaderFilter:!1,columnHeaderSortMulti:!0,sortOrderReverse:!1,headerSort:!0,headerSortTristate:!1,footerElement:!1,index:"id",keybindings:[],tabEndNewRow:!1,invalidOptionWarnings:!0,clipboard:!1,clipboardCopyStyled:!0,clipboardCopyConfig:!1,clipboardCopyFormatter:!1,clipboardCopyRowRange:"active",clipboardPasteParser:"table",clipboardPasteAction:"insert",clipboardCopied:function(){},clipboardPasted:function(){},clipboardPasteError:function(){},downloadDataFormatter:!1,downloadReady:function(e,t){return t},downloadComplete:!1,downloadConfig:{},downloadRowRange:"active",dataTree:!1,dataTreeElementColumn:!1,dataTreeBranchElement:!0,dataTreeChildIndent:9,dataTreeChildField:"_children",dataTreeCollapseElement:!1,dataTreeExpandElement:!1,dataTreeStartExpanded:!1,dataTreeRowExpanded:function(){},dataTreeRowCollapsed:function(){},dataTreeChildColumnCalcs:!1,dataTreeSelectPropagate:!1,printAsHtml:!1,printFormatter:!1,printHeader:!1,printFooter:!1,printCopyStyle:!0,printStyled:!0,printVisibleRows:!0,printRowRange:"visible",printConfig:{},addRowPos:"bottom",selectable:"highlight",selectableRangeMode:"drag",selectableRollingSelection:!0,selectablePersistence:!0,selectableCheck:function(e,t){return!0},headerFilterLiveFilterDelay:300,headerFilterPlaceholder:!1,headerVisible:!0,history:!1,locale:!1,langs:{},virtualDom:!0,virtualDomBuffer:0,persistentLayout:!1,persistentSort:!1,persistentFilter:!1,persistenceID:"",persistenceMode:!0,persistenceReaderFunc:!1,persistenceWriterFunc:!1,persistence:!1,responsiveLayout:!1,responsiveLayoutCollapseStartOpen:!0,responsiveLayoutCollapseUseFormatters:!0,responsiveLayoutCollapseFormatter:!1,pagination:!1,paginationSize:!1,paginationInitialPage:1,paginationButtonCount:5,paginationSizeSelector:!1,paginationElement:!1,paginationDataSent:{},paginationDataReceived:{},paginationAddRow:"page",ajaxURL:!1,ajaxURLGenerator:!1,ajaxParams:{},ajaxConfig:"get",ajaxContentType:"form",ajaxRequestFunc:!1,ajaxLoader:!0,ajaxLoaderLoading:!1,ajaxLoaderError:!1,ajaxFiltering:!1,ajaxSorting:!1,ajaxProgressiveLoad:!1,ajaxProgressiveLoadDelay:0,ajaxProgressiveLoadScrollMargin:0,groupBy:!1,groupStartOpen:!0,groupValues:!1,groupHeader:!1,groupHeaderPrint:null,groupHeaderClipboard:null,groupHeaderHtmlOutput:null,groupHeaderDownload:null,htmlOutputConfig:!1,movableColumns:!1,movableRows:!1,movableRowsConnectedTables:!1,movableRowsConnectedElements:!1,movableRowsSender:!1,movableRowsReceiver:"insert",movableRowsSendingStart:function(){},movableRowsSent:function(){},movableRowsSentFailed:function(){},movableRowsSendingStop:function(){},movableRowsReceivingStart:function(){},movableRowsReceived:function(){},movableRowsReceivedFailed:function(){},movableRowsReceivingStop:function(){},movableRowsElementDrop:function(){},scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,placeholder:!1,tableBuilding:function(){},tableBuilt:function(){},renderStarted:function(){},renderComplete:function(){},rowClick:!1,rowDblClick:!1,rowContext:!1,rowTap:!1,rowDblTap:!1,rowTapHold:!1,rowMouseEnter:!1,rowMouseLeave:!1,rowMouseOver:!1,rowMouseOut:!1,rowMouseMove:!1,rowContextMenu:!1,rowAdded:function(){},rowDeleted:function(){},rowMoved:function(){},rowUpdated:function(){},rowSelectionChanged:function(){},rowSelected:function(){},rowDeselected:function(){},rowResized:function(){},cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1,cellEditing:function(){},cellEdited:function(){},cellEditCancelled:function(){},columnMoved:!1,columnResized:function(){},columnTitleChanged:function(){},columnVisibilityChanged:function(){},htmlImporting:function(){},htmlImported:function(){},dataLoading:function(){},dataLoaded:function(){},dataEdited:function(){},ajaxRequesting:function(){},ajaxResponse:!1,ajaxError:function(){},dataFiltering:!1,dataFiltered:!1,dataSorting:function(){},dataSorted:function(){},groupToggleElement:"arrow",groupClosedShowCalcs:!1,dataGrouping:function(){},dataGrouped:!1,groupVisibilityChanged:function(){},groupClick:!1,groupDblClick:!1,groupContext:!1,groupContextMenu:!1,groupTap:!1,groupDblTap:!1,groupTapHold:!1,columnCalcs:!0,pageLoaded:function(){},localized:function(){},validationMode:"blocking",validationFailed:function(){},historyUndo:function(){},historyRedo:function(){},scrollHorizontal:function(){},scrollVertical:function(){}},d.prototype.initializeOptions=function(e){if(!1!==e.invalidOptionWarnings)for(var t in e)void 0===this.defaultOptions[t]&&console.warn("Invalid table constructor option:",t)
-;for(var t in this.defaultOptions)t in e?this.options[t]=e[t]:Array.isArray(this.defaultOptions[t])?this.options[t]=[]:"object"===_typeof(this.defaultOptions[t])&&null!==this.defaultOptions[t]?this.options[t]={}:this.options[t]=this.defaultOptions[t]},d.prototype.initializeElement=function(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement?(this.element=e,!0):"string"==typeof e?(this.element=document.querySelector(e),!!this.element||(console.error("Tabulator Creation Error - no element found matching selector: ",e),!1)):(console.error("Tabulator Creation Error - Invalid element provided:",e),!1)},d.prototype._mapDepricatedFunctionality=function(){(this.options.persistentLayout||this.options.persistentSort||this.options.persistentFilter)&&(this.options.persistence||(this.options.persistence={})),this.options.downloadDataFormatter&&console.warn("DEPRECATION WARNING - downloadDataFormatter option has been deprecated"),void 0!==this.options.clipboardCopyHeader&&(this.options.columnHeaders=this.options.clipboardCopyHeader,console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option")),!0!==this.options.printVisibleRows&&(console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option"),this.options.persistence.printRowRange="active"),!0!==this.options.printCopyStyle&&(console.warn("printCopyStyle option is deprecated, you should now use the printStyled option"),this.options.persistence.printStyled=this.options.printCopyStyle),this.options.persistentLayout&&(console.warn("persistentLayout option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.columns&&(this.options.persistence.columns=!0)),this.options.persistentSort&&(console.warn("persistentSort option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.sort&&(this.options.persistence.sort=!0)),this.options.persistentFilter&&(console.warn("persistentFilter option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.filter&&(this.options.persistence.filter=!0)),this.options.columnVertAlign&&(console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option"),this.options.columnHeaderVertAlign=this.options.columnVertAlign)},d.prototype._clearSelection=function(){this.element.classList.add("tabulator-block-select"),window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty(),this.element.classList.remove("tabulator-block-select")},d.prototype._create=function(){this._clearObjectPointers(),this._mapDepricatedFunctionality(),this.bindModules(),"TABLE"===this.element.tagName&&this.modExists("htmlTableImport",!0)&&this.modules.htmlTableImport.parseTable(),this.columnManager=new t(this),this.rowManager=new s(this),this.footerManager=new u(this),this.columnManager.setRowManager(this.rowManager),this.rowManager.setColumnManager(this.columnManager),this._buildElement(),this._loadInitialData()},d.prototype._clearObjectPointers=function(){this.options.columns=this.options.columns.slice(0),this.options.reactiveData||(this.options.data=this.options.data.slice(0))},d.prototype._buildElement=function(){var e=this,t=this.element,o=this.modules,i=this.options;for(i.tableBuilding.call(this),t.classList.add("tabulator"),t.setAttribute("role","grid");t.firstChild;)t.removeChild(t.firstChild);i.height&&(i.height=isNaN(i.height)?i.height:i.height+"px",t.style.height=i.height),!1!==i.minHeight&&(i.minHeight=isNaN(i.minHeight)?i.minHeight:i.minHeight+"px",t.style.minHeight=i.minHeight),!1!==i.maxHeight&&(i.maxHeight=isNaN(i.maxHeight)?i.maxHeight:i.maxHeight+"px",t.style.maxHeight=i.maxHeight),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modExists("layout",!0)&&o.layout.initialize(i.layout),!1!==i.headerFilterPlaceholder&&o.localize.setHeaderFilterPlaceholder(i.headerFilterPlaceholder);for(var n in i.langs)o.localize.installLang(n,i.langs[n]);if(o.localize.setLocale(i.locale),"string"==typeof i.placeholder){var s=document.createElement("div");s.classList.add("tabulator-placeholder");var r=document.createElement("span");r.innerHTML=i.placeholder,s.appendChild(r),i.placeholder=s}if(t.appendChild(this.columnManager.getElement()),t.appendChild(this.rowManager.getElement()),i.footerElement&&this.footerManager.activate(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.initialize(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.columns&&(i.columns=o.persistence.load("columns",i.columns)),i.movableRows&&this.modExists("moveRow")&&o.moveRow.initialize(),i.autoColumns&&this.options.data&&this.columnManager.generateColumnsFromRowData(this.options.data),this.modExists("columnCalcs")&&o.columnCalcs.initialize(),this.columnManager.setColumns(i.columns),i.dataTree&&this.modExists("dataTree",!0)&&o.dataTree.initialize(),this.modExists("frozenRows")&&this.modules.frozenRows.initialize(),(i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort||i.initialSort)&&this.modExists("sort",!0)){var a=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort?!1===(a=o.persistence.load("sort"))&&i.initialSort&&(a=i.initialSort):i.initialSort&&(a=i.initialSort),o.sort.setSort(a)}if((i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter||i.initialFilter)&&this.modExists("filter",!0)){var l=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter?!1===(l=o.persistence.load("filter"))&&i.initialFilter&&(l=i.initialFilter):i.initialFilter&&(l=i.initialFilter),o.filter.setFilter(l)}i.initialHeaderFilter&&this.modExists("filter",!0)&&i.initialHeaderFilter.forEach(function(t){var i=e.columnManager.findColumn(t.field);if(!i)return console.warn("Column Filter Error - No matching column found:",t.field),!1;o.filter.setHeaderFilterValue(i,t.value)}),this.modExists("ajax")&&o.ajax.initialize(),i.pagination&&this.modExists("page",!0)&&o.page.initialize(),i.groupBy&&this.modExists("groupRows",!0)&&o.groupRows.initialize(),this.modExists("keybindings")&&o.keybindings.initialize(),this.modExists("selectRow")&&o.selectRow.clearSelectionData(!0),i.autoResize&&this.modExists("resizeTable")&&o.resizeTable.initialize(),this.modExists("clipboard")&&o.clipboard.initialize(),i.printAsHtml&&this.modExists("print")&&o.print.initialize(),i.tableBuilt.call(this)},d.prototype._loadInitialData=function(){var e=this;if(e.options.pagination&&e.modExists("page"))if(e.modules.page.reset(!0,!0),"local"==e.options.pagination){if(e.options.data.length)e.rowManager.setData(e.options.data,!1,!0);else{if((e.options.ajaxURL||e.options.ajaxURLGenerator)&&e.modExists("ajax"))return void e.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){e.options.paginationInitialPage&&e.modules.page.setPage(e.options.paginationInitialPage)});e.rowManager.setData(e.options.data,!1,!0)}e.options.paginationInitialPage&&e.modules.page.setPage(e.options.paginationInitialPage)}else e.options.ajaxURL?e.modules.page.setPage(e.options.paginationInitialPage).then(function(){}).catch(function(){}):e.rowManager.setData([],!1,!0);else e.options.data.length?e.rowManager.setData(e.options.data):(e.options.ajaxURL||e.options.ajaxURLGenerator)&&e.modExists("ajax")?e.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){}):e.rowManager.setData(e.options.data,!1,!0)},d.prototype.destroy=function(){var e=this.element;for(d.prototype.comms.deregister(this),this.options.reactiveData&&this.modExists("reactiveData",!0)&&this.modules.reactiveData.unwatchData(),this.rowManager.rows.forEach(function(e){e.wipe()}),this.rowManager.rows=[],this.rowManager.activeRows=[],this.rowManager.displayRows=[],this.options.autoResize&&this.modExists("resizeTable")&&this.modules.resizeTable.clearBindings(),this.modExists("keybindings")&&this.modules.keybindings.clearBindings();e.firstChild;)e.removeChild(e.firstChild);e.classList.remove("tabulator")},d.prototype._detectBrowser=function(){var e=navigator.userAgent||navigator.vendor||window.opera;e.indexOf("Trident")>-1?(this.browser="ie",this.browserSlow=!0):e.indexOf("Edge")>-1?(this.browser="edge",this.browserSlow=!0):e.indexOf("Firefox")>-1?(this.browser="firefox",this.browserSlow=!1):(this.browser="other",this.browserSlow=!1),this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))},d.prototype.blockRedraw=function(){return this.rowManager.blockRedraw()},d.prototype.restoreRedraw=function(){return this.rowManager.restoreRedraw()},d.prototype.setDataFromLocalFile=function(e){var t=this;return new Promise(function(o,i){var n=document.createElement("input");n.type="file",n.accept=e||".json,application/json",n.addEventListener("change",function(e){var s,r=n.files[0],a=new FileReader;a.readAsText(r),a.onload=function(e){try{s=JSON.parse(a.result)}catch(e){return console.warn("File Load Error - File contents is invalid JSON",e),void i(e)}t._setData(s).then(function(e){o(e)}).catch(function(e){o(e)})},a.onerror=function(e){console.warn("File Load Error - Unable to read file"),i()}}),n.click()})},d.prototype.setData=function(e,t,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(e,t,o,!1,!0)},d.prototype._setData=function(e,t,o,i,n){var s=this;return"string"!=typeof e?e?s.rowManager.setData(e,i,n):s.modExists("ajax")&&(s.modules.ajax.getUrl||s.options.ajaxURLGenerator)?"remote"==s.options.pagination&&s.modExists("page",!0)?(s.modules.page.reset(!0,!0),s.modules.page.setPage(1)):s.modules.ajax.loadData(i,n):s.rowManager.setData([],i,n):0==e.indexOf("{")||0==e.indexOf("[")?s.rowManager.setData(JSON.parse(e),i,n):s.modExists("ajax",!0)?(t&&s.modules.ajax.setParams(t),o&&s.modules.ajax.setConfig(o),s.modules.ajax.setUrl(e),"remote"==s.options.pagination&&s.modExists("page",!0)?(s.modules.page.reset(!0,!0),s.modules.page.setPage(1)):s.modules.ajax.loadData(i,n)):void 0},d.prototype.clearData=function(){this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this.rowManager.clearData()},d.prototype.getData=function(e){return!0===e&&(console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'"),e="active"),this.rowManager.getData(e)},d.prototype.getDataCount=function(e){return!0===e&&(console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'"),e="active"),this.rowManager.getDataCount(e)},d.prototype.searchRows=function(e,t,o){if(this.modExists("filter",!0))return this.modules.filter.search("rows",e,t,o)},d.prototype.searchData=function(e,t,o){if(this.modExists("filter",!0))return this.modules.filter.search("data",e,t,o)},d.prototype.getHtml=function(e,t,o){if(this.modExists("export",!0))return this.modules.export.getHtml(e,t,o)},d.prototype.print=function(e,t,o){if(this.modExists("print",!0))return this.modules.print.printFullscreen(e,t,o)},d.prototype.getAjaxUrl=function(){if(this.modExists("ajax",!0))return this.modules.ajax.getUrl()},d.prototype.replaceData=function(e,t,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(e,t,o,!0)},d.prototype.updateData=function(e){var t=this,o=this,i=0;return new Promise(function(n,s){t.modExists("ajax")&&t.modules.ajax.blockActiveRequest(),"string"==typeof e&&(e=JSON.parse(e)),e?e.forEach(function(e){var t=o.rowManager.findRow(e[o.options.index]);t&&(i++,t.updateData(e).then(function(){--i||n()}))}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},d.prototype.addData=function(e,t,o){var i=this;return new Promise(function(n,s){i.modExists("ajax")&&i.modules.ajax.blockActiveRequest(),"string"==typeof e&&(e=JSON.parse(e)),e?i.rowManager.addRows(e,t,o).then(function(e){var t=[];e.forEach(function(e){t.push(e.getComponent())}),n(t)}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},d.prototype.updateOrAddData=function(e){var t=this,o=this,i=[],n=0;return new Promise(function(s,r){t.modExists("ajax")&&t.modules.ajax.blockActiveRequest(),"string"==typeof e&&(e=JSON.parse(e)),e?e.forEach(function(e){var t=o.rowManager.findRow(e[o.options.index]);n++,t?t.updateData(e).then(function(){n--,i.push(t.getComponent()),n||s(i)}):o.rowManager.addRows(e).then(function(e){n--,i.push(e[0].getComponent()),n||s(i)})}):(console.warn("Update Error - No data provided"),r("Update Error - No data provided"))})},d.prototype.getRow=function(e){var t=this.rowManager.findRow(e);return t?t.getComponent():(console.warn("Find Error - No matching row found:",e),!1)},d.prototype.getRowFromPosition=function(e,t){var o=this.rowManager.getRowFromPosition(e,t);return o?o.getComponent():(console.warn("Find Error - No matching row found:",e),!1)},d.prototype.deleteRow=function(e){var t=this;return new Promise(function(o,i){function n(){++r==e.length&&a&&(s.rowManager.reRenderInPosition(),o())}var s=t,r=0,a=0,l=[];Array.isArray(e)||(e=[e]),e.forEach(function(e){var o=t.rowManager.findRow(e,!0);o?l.push(o):(console.warn("Delete Error - No matching row found:",e),i("Delete Error - No matching row found"),n())}),l.sort(function(e,o){return t.rowManager.rows.indexOf(e)>t.rowManager.rows.indexOf(o)?1:-1}),l.forEach(function(e){e.delete().then(function(){a++,n()}).catch(function(e){n(),i(e)})})})},d.prototype.addRow=function(e,t,o){var i=this;return new Promise(function(n,s){"string"==typeof e&&(e=JSON.parse(e)),i.rowManager.addRows(e,t,o).then(function(e){i.modExists("columnCalcs")&&i.modules.columnCalcs.recalc(i.rowManager.activeRows),n(e[0].getComponent())})})},d.prototype.updateOrAddRow=function(e,t){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(e);"string"==typeof t&&(t=JSON.parse(t)),s?s.updateData(t).then(function(){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(s.getComponent())}).catch(function(e){n(e)}):s=o.rowManager.addRows(t).then(function(e){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(e[0].getComponent())}).catch(function(e){n(e)})})},d.prototype.updateRow=function(e,t){var o=this;return new Promise(function(i,n){var s=o.rowManager.findRow(e);"string"==typeof t&&(t=JSON.parse(t)),s?s.updateData(t).then(function(){i(s.getComponent())}).catch(function(e){n(e)}):(console.warn("Update Error - No matching row found:",e),n("Update Error - No matching row found"))})},d.prototype.scrollToRow=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i.rowManager.findRow(e);r?i.rowManager.scrollToRow(r,t,o).then(function(){n()}).catch(function(e){s(e)}):(console.warn("Scroll Error - No matching row found:",e),s("Scroll Error - No matching row found"))})},d.prototype.moveRow=function(e,t,o){var i=this.rowManager.findRow(e);i?i.moveToRow(t,o):console.warn("Move Error - No matching row found:",e)},d.prototype.getRows=function(e){return!0===e&&(console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'"),e="active"),this.rowManager.getComponents(e)},d.prototype.getRowPosition=function(e,t){var o=this.rowManager.findRow(e);return o?this.rowManager.getRowPosition(o,t):(console.warn("Position Error - No matching row found:",e),!1)},d.prototype.copyToClipboard=function(e){this.modExists("clipboard",!0)&&this.modules.clipboard.copy(e)},d.prototype.setColumns=function(e){this.columnManager.setColumns(e)},d.prototype.getColumns=function(e){return this.columnManager.getComponents(e)},d.prototype.getColumn=function(e){var t=this.columnManager.findColumn(e);return t?t.getComponent():(console.warn("Find Error - No matching column found:",e),!1)},d.prototype.getColumnDefinitions=function(){return this.columnManager.getDefinitionTree()},d.prototype.getColumnLayout=function(){if(this.modExists("persistence",!0))return this.modules.persistence.parseColumns(this.columnManager.getColumns())},d.prototype.setColumnLayout=function(e){return!!this.modExists("persistence",!0)&&(this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns,e)),!0)},d.prototype.showColumn=function(e){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Show Error - No matching column found:",e),!1;t.show(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},d.prototype.hideColumn=function(e){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Hide Error - No matching column found:",e),!1;t.hide(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},d.prototype.toggleColumn=function(e){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Visibility Toggle Error - No matching column found:",e),!1;t.visible?t.hide():t.show()},d.prototype.addColumn=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i.columnManager.findColumn(o);i.columnManager.addColumn(e,t,r).then(function(e){n(e.getComponent())}).catch(function(e){s(e)})})},d.prototype.deleteColumn=function(e){var t=this;return new Promise(function(o,i){var n=t.columnManager.findColumn(e);n?n.delete().then(function(){o()}).catch(function(e){i(e)}):(console.warn("Column Delete Error - No matching column found:",e),i())})},d.prototype.updateColumnDefinition=function(e,t){var o=this;return new Promise(function(i,n){var s=o.columnManager.findColumn(e);s?s.updateDefinition(t).then(function(e){i(e)}).catch(function(e){n(e)}):(console.warn("Column Update Error - No matching column found:",e),n())})},d.prototype.moveColumn=function(e,t,o){var i=this.columnManager.findColumn(e),n=this.columnManager.findColumn(t);i?n?this.columnManager.moveColumn(i,n,o):console.warn("Move Error - No matching column found:",n):console.warn("Move Error - No matching column found:",e)},d.prototype.scrollToColumn=function(e,t,o){var i=this;return new Promise(function(n,s){var r=i.columnManager.findColumn(e);r?i.columnManager.scrollToColumn(r,t,o).then(function(){n()}).catch(function(e){s(e)}):(console.warn("Scroll Error - No matching column found:",e),s("Scroll Error - No matching column found"))})},d.prototype.setLocale=function(e){this.modules.localize.setLocale(e)},d.prototype.getLocale=function(){return this.modules.localize.getLocale()},d.prototype.getLang=function(e){return this.modules.localize.getLang(e)},d.prototype.redraw=function(e){this.columnManager.redraw(e),this.rowManager.redraw(e)},d.prototype.setHeight=function(e){"classic"!==this.rowManager.renderMode?(this.options.height=isNaN(e)?e:e+"px",this.element.style.height=this.options.height,this.rowManager.setRenderMode(),this.rowManager.redraw()):console.warn("setHeight function is not available in classic render mode")},d.prototype.setSort=function(e,t){this.modExists("sort",!0)&&(this.modules.sort.setSort(e,t),this.rowManager.sorterRefresh())},d.prototype.getSorters=function(){if(this.modExists("sort",!0))return this.modules.sort.getSort()},d.prototype.clearSort=function(){this.modExists("sort",!0)&&(this.modules.sort.clear(),this.rowManager.sorterRefresh())},d.prototype.setFilter=function(e,t,o,i){this.modExists("filter",!0)&&(this.modules.filter.setFilter(e,t,o,i),this.rowManager.filterRefresh())},d.prototype.addFilter=function(e,t,o,i){this.modExists("filter",!0)&&(this.modules.filter.addFilter(e,t,o,i),this.rowManager.filterRefresh())},d.prototype.getFilters=function(e){if(this.modExists("filter",!0))return this.modules.filter.getFilters(e)},d.prototype.setHeaderFilterFocus=function(e){if(this.modExists("filter",!0)){var t=this.columnManager.findColumn(e);if(!t)return console.warn("Column Filter Focus Error - No matching column found:",e),!1;this.modules.filter.setHeaderFilterFocus(t)}},d.prototype.getHeaderFilterValue=function(e){if(this.modExists("filter",!0)){var t=this.columnManager.findColumn(e);if(t)return this.modules.filter.getHeaderFilterValue(t);console.warn("Column Filter Error - No matching column found:",e)}},d.prototype.setHeaderFilterValue=function(e,t){if(this.modExists("filter",!0)){var o=this.columnManager.findColumn(e);if(!o)return console.warn("Column Filter Error - No matching column found:",e),!1;this.modules.filter.setHeaderFilterValue(o,t)}},d.prototype.getHeaderFilters=function(){if(this.modExists("filter",!0))return this.modules.filter.getHeaderFilters()},d.prototype.removeFilter=function(e,t,o){this.modExists("filter",!0)&&(this.modules.filter.removeFilter(e,t,o),this.rowManager.filterRefresh())},d.prototype.clearFilter=function(e){this.modExists("filter",!0)&&(this.modules.filter.clearFilter(e),this.rowManager.filterRefresh())},d.prototype.clearHeaderFilter=function(){this.modExists("filter",!0)&&(this.modules.filter.clearHeaderFilter(),this.rowManager.filterRefresh())},d.prototype.selectRow=function(e){this.modExists("selectRow",!0)&&(!0===e&&(console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'"),e="active"),this.modules.selectRow.selectRows(e))},d.prototype.deselectRow=function(e){this.modExists("selectRow",!0)&&this.modules.selectRow.deselectRows(e)},d.prototype.toggleSelectRow=function(e){this.modExists("selectRow",!0)&&this.modules.selectRow.toggleRow(e)},d.prototype.getSelectedRows=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedRows()},d.prototype.getSelectedData=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedData()},d.prototype.getInvalidCells=function(){if(this.modExists("validate",!0))return this.modules.validate.getInvalidCells()},d.prototype.clearCellValidation=function(e){var t=this;this.modExists("validate",!0)&&(e||(e=this.modules.validate.getInvalidCells()),Array.isArray(e)||(e=[e]),e.forEach(function(e){t.modules.validate.clearValidation(e._getSelf())}))},d.prototype.validate=function(e){var t=[];return this.rowManager.rows.forEach(function(e){var o=e.validate();!0!==o&&(t=t.concat(o))}),!t.length||t},d.prototype.setMaxPage=function(e){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setMaxPage(e)},d.prototype.setPage=function(e){return this.options.pagination&&this.modExists("page")?this.modules.page.setPage(e):new Promise(function(e,t){t()})},d.prototype.setPageToRow=function(e){var t=this;return new Promise(function(o,i){t.options.pagination&&t.modExists("page")?(e=t.rowManager.findRow(e),e?t.modules.page.setPageToRow(e).then(function(){o()}).catch(function(){i()}):i()):i()})},d.prototype.setPageSize=function(e){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setPageSize(e),this.modules.page.setPage(1).then(function(){}).catch(function(){})},d.prototype.getPageSize=function(){if(this.options.pagination&&this.modExists("page",!0))return this.modules.page.getPageSize()},d.prototype.previousPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.previousPage()},d.prototype.nextPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.nextPage()},d.prototype.getPage=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPage()},d.prototype.getPageMax=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPageMax()},d.prototype.setGroupBy=function(e){if(!this.modExists("groupRows",!0))return!1;this.options.groupBy=e,this.modules.groupRows.initialize(),this.rowManager.refreshActiveData("display"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")},d.prototype.setGroupStartOpen=function(e){if(!this.modExists("groupRows",!0))return!1;this.options.groupStartOpen=e,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},d.prototype.setGroupHeader=function(e){if(!this.modExists("groupRows",!0))return!1;this.options.groupHeader=e,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},d.prototype.getGroups=function(e){return!!this.modExists("groupRows",!0)&&this.modules.groupRows.getGroups(!0)},d.prototype.getGroupedData=function(){if(this.modExists("groupRows",!0))return this.options.groupBy?this.modules.groupRows.getGroupedData():this.getData()},d.prototype.getEditedCells=function(){if(this.modExists("edit",!0))return this.modules.edit.getEditedCells()},d.prototype.clearCellEdited=function(e){var t=this;this.modExists("edit",!0)&&(e||(e=this.modules.edit.getEditedCells()),Array.isArray(e)||(e=[e]),e.forEach(function(e){t.modules.edit.clearEdited(e._getSelf())}))},d.prototype.getCalcResults=function(){return!!this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.getResults()},d.prototype.recalc=function(){this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.recalcAll(this.rowManager.activeRows)},d.prototype.navigatePrev=function(){var e=!1;return!(!this.modExists("edit",!0)||!(e=this.modules.edit.currentCell))&&e.nav().prev()},d.prototype.navigateNext=function(){var e=!1;return!(!this.modExists("edit",!0)||!(e=this.modules.edit.currentCell))&&e.nav().next()},d.prototype.navigateLeft=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().left())},d.prototype.navigateRight=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().right())},d.prototype.navigateUp=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().up())},d.prototype.navigateDown=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().down())},d.prototype.undo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.undo()},d.prototype.redo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.redo()},d.prototype.getHistoryUndoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryUndoSize()},d.prototype.getHistoryRedoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryRedoSize()},d.prototype.download=function(e,t,o,i){this.modExists("download",!0)&&this.modules.download.download(e,t,o,i)},d.prototype.downloadToTab=function(e,t,o,i){this.modExists("download",!0)&&this.modules.download.download(e,t,o,i,!0)},d.prototype.tableComms=function(e,t,o,i){this.modules.comms.receive(e,t,o,i)},d.prototype.moduleBindings={},d.prototype.extendModule=function(e,t,o){if(d.prototype.moduleBindings[e]){var i=d.prototype.moduleBindings[e].prototype[t];if(i)if("object"==(void 0===o?"undefined":_typeof(o)))for(var n in o)i[n]=o[n];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",t)}else console.warn("Module Error - module does not exist:",e)},d.prototype.registerModule=function(e,t){d.prototype.moduleBindings[e]=t},d.prototype.bindModules=function(){this.modules={};for(var e in d.prototype.moduleBindings)this.modules[e]=new d.prototype.moduleBindings[e](this)},d.prototype.modExists=function(e,t){return!!this.modules[e]||(t&&console.error("Tabulator Module Not Installed: "+e),!1)},d.prototype.helpers={elVisible:function(e){return!(e.offsetWidth<=0&&e.offsetHeight<=0)},elOffset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset-document.documentElement.clientTop,left:t.left+window.pageXOffset-document.documentElement.clientLeft}},deepClone:function(e){var t=Array.isArray(e)?[]:{};for(var o in e)null!=e[o]&&"object"===_typeof(e[o])?e[o]instanceof Date?t[o]=new Date(e[o]):t[o]=this.deepClone(e[o]):t[o]=e[o];return t}},d.prototype.comms={tables:[],register:function(e){d.prototype.comms.tables.push(e)},deregister:function(e){var t=d.prototype.comms.tables.indexOf(e);t>-1&&d.prototype.comms.tables.splice(t,1)},lookupTable:function(e,t){var o,i,n=[];if("string"==typeof e){if(o=document.querySelectorAll(e),o.length)for(var s=0;s<o.length;s++)(i=d.prototype.comms.matchElement(o[s]))&&n.push(i)}else"undefined"!=typeof HTMLElement&&e instanceof HTMLElement||e instanceof d?(i=d.prototype.comms.matchElement(e))&&n.push(i):Array.isArray(e)?e.forEach(function(e){n=n.concat(d.prototype.comms.lookupTable(e))}):t||console.warn("Table Connection Error - Invalid Selector",e);return n},matchElement:function(e){return d.prototype.comms.tables.find(function(t){return e instanceof d?t===e:t.element===e})}},d.prototype.findTable=function(e){var t=d.prototype.comms.lookupTable(e,!0);return!(Array.isArray(t)&&!t.length)&&t};var h=function(e){this.table=e,this.mode=null};h.prototype.initialize=function(e){this.modes[e]?this.mode=e:(console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+e),this.mode="fitData"),this.table.element.setAttribute("tabulator-layout",this.mode)},h.prototype.getMode=function(){return this.mode},h.prototype.layout=function(){this.modes[this.mode].call(this,this.table.columnManager.columnsByIndex)},h.prototype.modes={
-fitData:function(e){e.forEach(function(e){e.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataFill:function(e){e.forEach(function(e){e.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataTable:function(e){e.forEach(function(e){e.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataStretch:function(e){var t=this,o=0,i=this.table.rowManager.element.clientWidth,n=0,s=!1;e.forEach(function(e,i){e.widthFixed||e.reinitializeWidth(),(t.table.options.responsiveLayout?e.modules.responsive.visible:e.visible)&&(s=e),e.visible&&(o+=e.getWidth())}),s?(n=i-o+s.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&(s.setWidth(0),this.table.modules.responsiveLayout.update()),n>0?s.setWidth(n):s.reinitializeWidth()):this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitColumns:function(e){function t(e){return"string"==typeof e?e.indexOf("%")>-1?n/100*parseInt(e):parseInt(e):e}function o(e,i,n,s){function r(e){return n*(e.column.definition.widthGrow||1)}function a(e){return t(e.width)-n*(e.column.definition.widthShrink||0)}var l=[],c=0,u=0,d=0,h=0,p=0,m=[];return e.forEach(function(e,t){var o=s?a(e):r(e);e.column.minWidth>=o?l.push(e):(m.push(e),p+=s?e.column.definition.widthShrink||1:e.column.definition.widthGrow||1)}),l.length?(l.forEach(function(e){c+=s?e.width-e.column.minWidth:e.column.minWidth,e.width=e.column.minWidth}),u=i-c,d=p?Math.floor(u/p):u,h=u-d*p,h+=o(m,u,d,s)):(h=p?i-Math.floor(i/p)*p:i,m.forEach(function(e){e.width=s?a(e):r(e)})),h}var i=this,n=i.table.element.clientWidth,s=0,r=0,a=0,l=0,c=[],u=[],d=0,h=0,p=0;this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(n-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),e.forEach(function(e){var o,i,n;e.visible&&(o=e.definition.width,i=parseInt(e.minWidth),o?(n=t(o),s+=n>i?n:i,e.definition.widthShrink&&(u.push({column:e,width:n>i?n:i}),d+=e.definition.widthShrink)):(c.push({column:e,width:0}),a+=e.definition.widthGrow||1))}),r=n-s,l=Math.floor(r/a);var p=o(c,r,l,!1);c.length&&p>0&&(c[c.length-1].width+=+p),c.forEach(function(e){r-=e.width}),h=Math.abs(p)+r,h>0&&d&&(p=o(u,h,Math.floor(h/d),!0)),u.length&&(u[u.length-1].width-=p),c.forEach(function(e){e.column.setWidth(e.width)}),u.forEach(function(e){e.column.setWidth(e.width)})}},d.prototype.registerModule("layout",h);var p=function(e){this.table=e,this.locale="default",this.lang=!1,this.bindings={}};p.prototype.setHeaderFilterPlaceholder=function(e){this.langs.default.headerFilters.default=e},p.prototype.setHeaderFilterColumnPlaceholder=function(e,t){this.langs.default.headerFilters.columns[e]=t,this.lang&&!this.lang.headerFilters.columns[e]&&(this.lang.headerFilters.columns[e]=t)},p.prototype.installLang=function(e,t){this.langs[e]?this._setLangProp(this.langs[e],t):this.langs[e]=t},p.prototype._setLangProp=function(e,t){for(var o in t)e[o]&&"object"==_typeof(e[o])?this._setLangProp(e[o],t[o]):e[o]=t[o]},p.prototype.setLocale=function(e){function t(e,o){for(var i in e)"object"==_typeof(e[i])?(o[i]||(o[i]={}),t(e[i],o[i])):o[i]=e[i]}var o=this;if(e=e||"default",!0===e&&navigator.language&&(e=navigator.language.toLowerCase()),e&&!o.langs[e]){var i=e.split("-")[0];o.langs[i]?(console.warn("Localization Error - Exact matching locale not found, using closest match: ",e,i),e=i):(console.warn("Localization Error - Matching locale not found, using default: ",e),e="default")}o.locale=e,o.lang=d.prototype.helpers.deepClone(o.langs.default||{}),"default"!=e&&t(o.langs[e],o.lang),o.table.options.localized.call(o.table,o.locale,o.lang),o._executeBindings()},p.prototype.getLocale=function(e){return self.locale},p.prototype.getLang=function(e){return e?this.langs[e]:this.lang},p.prototype.getText=function(e,t){var e=t?e+"|"+t:e,o=e.split("|");return this._getLangElement(o,this.locale)||""},p.prototype._getLangElement=function(e,t){var o=this,i=o.lang;return e.forEach(function(e){var t;i&&(t=i[e],i=void 0!==t&&t)}),i},p.prototype.bind=function(e,t){this.bindings[e]||(this.bindings[e]=[]),this.bindings[e].push(t),t(this.getText(e),this.lang)},p.prototype._executeBindings=function(){var e=this;for(var t in e.bindings)!function(t){e.bindings[t].forEach(function(o){o(e.getText(t),e.lang)})}(t)},p.prototype.langs={default:{groups:{item:"item",items:"items"},columns:{},ajax:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",page_title:"Show Page",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page",all:"All"},headerFilters:{default:"filter column...",columns:{}}}},d.prototype.registerModule("localize",p);var m=function(e){this.table=e};m.prototype.getConnections=function(e){var t,o=this,i=[];return t=d.prototype.comms.lookupTable(e),t.forEach(function(e){o.table!==e&&i.push(e)}),i},m.prototype.send=function(e,t,o,i){var n=this,s=this.getConnections(e);s.forEach(function(e){e.tableComms(n.table.element,t,o,i)}),!s.length&&e&&console.warn("Table Connection Error - No tables matching selector found",e)},m.prototype.receive=function(e,t,o,i){if(this.table.modExists(t))return this.table.modules[t].commsReceived(e,o,i);console.warn("Inter-table Comms Error - no such module:",t)},d.prototype.registerModule("comms",m);var f=function(e){this.table=e,this.allowedTypes=["","data","download","clipboard","print","htmlOutput"]};f.prototype.initializeColumn=function(e){var t=this,o=!1,i={};this.allowedTypes.forEach(function(n){var s,r="accessor"+(n.charAt(0).toUpperCase()+n.slice(1));e.definition[r]&&(s=t.lookupAccessor(e.definition[r]))&&(o=!0,i[r]={accessor:s,params:e.definition[r+"Params"]||{}})}),o&&(e.modules.accessor=i)},f.prototype.lookupAccessor=function(e){var t=!1;switch(void 0===e?"undefined":_typeof(e)){case"string":this.accessors[e]?t=this.accessors[e]:console.warn("Accessor Error - No such accessor found, ignoring: ",e);break;case"function":t=e}return t},f.prototype.transformRow=function(e,t){var o=this,i="accessor"+(t.charAt(0).toUpperCase()+t.slice(1)),n=d.prototype.helpers.deepClone(e||{});return o.table.columnManager.traverse(function(e){var o,s,r,a;e.modules.accessor&&(s=e.modules.accessor[i]||e.modules.accessor.accessor||!1)&&"undefined"!=(o=e.getFieldValue(n))&&(a=e.getComponent(),r="function"==typeof s.params?s.params(o,n,t,a):s.params,e.setFieldValue(n,s.accessor(o,n,t,r,a)))}),n},f.prototype.accessors={},d.prototype.registerModule("accessor",f);var g=function(e){this.table=e,this.config=!1,this.url="",this.urlGenerator=!1,this.params=!1,this.loaderElement=this.createLoaderElement(),this.msgElement=this.createMsgElement(),this.loadingElement=!1,this.errorElement=!1,this.loaderPromise=!1,this.progressiveLoad=!1,this.loading=!1,this.requestOrder=0};g.prototype.initialize=function(){var e;this.loaderElement.appendChild(this.msgElement),this.table.options.ajaxLoaderLoading&&("string"==typeof this.table.options.ajaxLoaderLoading?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderLoading.trim(),this.loadingElement=e.content.firstChild):this.loadingElement=this.table.options.ajaxLoaderLoading),this.loaderPromise=this.table.options.ajaxRequestFunc||this.defaultLoaderPromise,this.urlGenerator=this.table.options.ajaxURLGenerator||this.defaultURLGenerator,this.table.options.ajaxLoaderError&&("string"==typeof this.table.options.ajaxLoaderError?(e=document.createElement("template"),e.innerHTML=this.table.options.ajaxLoaderError.trim(),this.errorElement=e.content.firstChild):this.errorElement=this.table.options.ajaxLoaderError),this.table.options.ajaxParams&&this.setParams(this.table.options.ajaxParams),this.table.options.ajaxConfig&&this.setConfig(this.table.options.ajaxConfig),this.table.options.ajaxURL&&this.setUrl(this.table.options.ajaxURL),this.table.options.ajaxProgressiveLoad&&(this.table.options.pagination?(this.progressiveLoad=!1,console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time")):this.table.modExists("page")?(this.progressiveLoad=this.table.options.ajaxProgressiveLoad,this.table.modules.page.initializeProgressive(this.progressiveLoad)):console.error("Pagination plugin is required for progressive ajax loading"))},g.prototype.createLoaderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader"),e},g.prototype.createMsgElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-loader-msg"),e.setAttribute("role","alert"),e},g.prototype.setParams=function(e,t){if(t){this.params=this.params||{};for(var o in e)this.params[o]=e[o]}else this.params=e},g.prototype.getParams=function(){return this.params||{}},g.prototype.setConfig=function(e){if(this._loadDefaultConfig(),"string"==typeof e)this.config.method=e;else for(var t in e)this.config[t]=e[t]},g.prototype._loadDefaultConfig=function(e){var t=this;if(!t.config||e){t.config={};for(var o in t.defaultConfig)t.config[o]=t.defaultConfig[o]}},g.prototype.setUrl=function(e){this.url=e},g.prototype.getUrl=function(){return this.url},g.prototype.loadData=function(e,t){return this.progressiveLoad?this._loadDataProgressive():this._loadDataStandard(e,t)},g.prototype.nextPage=function(e){var t;this.loading||(t=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.getElement().clientHeight,e<t&&this.table.modules.page.nextPage().then(function(){}).catch(function(){}))},g.prototype.blockActiveRequest=function(){this.requestOrder++},g.prototype._loadDataProgressive=function(){return this.table.rowManager.setData([]),this.table.modules.page.setPage(1)},g.prototype._loadDataStandard=function(e,t){var o=this;return new Promise(function(i,n){o.sendRequest(e).then(function(s){o.table.rowManager.setData(s,e,t).then(function(){i()}).catch(function(e){n(e)})}).catch(function(e){n(e)})})},g.prototype.generateParamsList=function(e,t){var o=this,i=[];if(t=t||"",Array.isArray(e))e.forEach(function(e,n){i=i.concat(o.generateParamsList(e,t?t+"["+n+"]":n))});else if("object"===(void 0===e?"undefined":_typeof(e)))for(var n in e)i=i.concat(o.generateParamsList(e[n],t?t+"["+n+"]":n));else i.push({key:t,value:e});return i},g.prototype.serializeParams=function(e){var t=this.generateParamsList(e),o=[];return t.forEach(function(e){o.push(encodeURIComponent(e.key)+"="+encodeURIComponent(e.value))}),o.join("&")},g.prototype.sendRequest=function(e){var t,o=this,i=this,n=i.url;return i.requestOrder++,t=i.requestOrder,i._loadDefaultConfig(),new Promise(function(s,r){!1!==i.table.options.ajaxRequesting.call(o.table,i.url,i.params)?(i.loading=!0,e||i.showLoader(),o.loaderPromise(n,i.config,i.params).then(function(e){t===i.requestOrder?(i.table.options.ajaxResponse&&(e=i.table.options.ajaxResponse.call(i.table,i.url,i.params,e)),s(e),i.hideLoader(),i.loading=!1):console.warn("Ajax Response Blocked - An active ajax request was blocked by an attempt to change table data while the request was being made")}).catch(function(e){console.error("Ajax Load Error: ",e),i.table.options.ajaxError.call(i.table,e),i.showError(),setTimeout(function(){i.hideLoader()},3e3),i.loading=!1,r()})):r()})},g.prototype.showLoader=function(){if("function"==typeof this.table.options.ajaxLoader?this.table.options.ajaxLoader():this.table.options.ajaxLoader){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-error"),this.msgElement.classList.add("tabulator-loading"),this.loadingElement?this.msgElement.appendChild(this.loadingElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|loading"),this.table.element.appendChild(this.loaderElement)}},g.prototype.showError=function(){for(this.hideLoader();this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.remove("tabulator-loading"),this.msgElement.classList.add("tabulator-error"),this.errorElement?this.msgElement.appendChild(this.errorElement):this.msgElement.innerHTML=this.table.modules.localize.getText("ajax|error"),this.table.element.appendChild(this.loaderElement)},g.prototype.hideLoader=function(){this.loaderElement.parentNode&&this.loaderElement.parentNode.removeChild(this.loaderElement)},g.prototype.defaultConfig={method:"GET"},g.prototype.defaultURLGenerator=function(e,t,o){return e&&o&&Object.keys(o).length&&(t.method&&"get"!=t.method.toLowerCase()||(t.method="get",e+=(e.includes("?")?"&":"?")+this.serializeParams(o))),e},g.prototype.defaultLoaderPromise=function(e,t,o){var i,n=this;return new Promise(function(s,r){if(e=n.urlGenerator(e,t,o),"GET"!=t.method.toUpperCase())if(i="object"===_typeof(n.table.options.ajaxContentType)?n.table.options.ajaxContentType:n.contentTypeFormatters[n.table.options.ajaxContentType]){for(var a in i.headers)t.headers||(t.headers={}),void 0===t.headers[a]&&(t.headers[a]=i.headers[a]);t.body=i.body.call(n,e,t,o)}else console.warn("Ajax Error - Invalid ajaxContentType value:",n.table.options.ajaxContentType);e?(void 0===t.headers&&(t.headers={}),void 0===t.headers.Accept&&(t.headers.Accept="application/json"),void 0===t.headers["X-Requested-With"]&&(t.headers["X-Requested-With"]="XMLHttpRequest"),void 0===t.mode&&(t.mode="cors"),"cors"==t.mode?(void 0===t.headers["Access-Control-Allow-Origin"]&&(t.headers["Access-Control-Allow-Origin"]=window.location.origin),void 0===t.credentials&&(t.credentials="same-origin")):void 0===t.credentials&&(t.credentials="include"),fetch(e,t).then(function(e){e.ok?e.json().then(function(e){s(e)}).catch(function(e){r(e),console.warn("Ajax Load Error - Invalid JSON returned",e)}):(console.error("Ajax Load Error - Connection Error: "+e.status,e.statusText),r(e))}).catch(function(e){console.error("Ajax Load Error - Connection Error: ",e),r(e)})):(console.warn("Ajax Load Error - No URL Set"),s([]))})},g.prototype.contentTypeFormatters={json:{headers:{"Content-Type":"application/json"},body:function(e,t,o){return JSON.stringify(o)}},form:{headers:{},body:function(e,t,o){var i=this.generateParamsList(o),n=new FormData;return i.forEach(function(e){n.append(e.key,e.value)}),n}}},d.prototype.registerModule("ajax",g);var b=function(e){this.table=e,this.topCalcs=[],this.botCalcs=[],this.genColumn=!1,this.topElement=this.createElement(),this.botElement=this.createElement(),this.topRow=!1,this.botRow=!1,this.topInitialized=!1,this.botInitialized=!1,this.initialize()};b.prototype.createElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-calcs-holder"),e},b.prototype.initialize=function(){this.genColumn=new n({field:"value"},this)},b.prototype.registerColumnField=function(){},b.prototype.initializeColumn=function(e){var t=e.definition,o={topCalcParams:t.topCalcParams||{},botCalcParams:t.bottomCalcParams||{}};if(t.topCalc){switch(_typeof(t.topCalc)){case"string":this.calculations[t.topCalc]?o.topCalc=this.calculations[t.topCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",t.topCalc);break;case"function":o.topCalc=t.topCalc}o.topCalc&&(e.modules.columnCalcs=o,this.topCalcs.push(e),"group"!=this.table.options.columnCalcs&&this.initializeTopRow())}if(t.bottomCalc){switch(_typeof(t.bottomCalc)){case"string":this.calculations[t.bottomCalc]?o.botCalc=this.calculations[t.bottomCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",t.bottomCalc);break;case"function":o.botCalc=t.bottomCalc}o.botCalc&&(e.modules.columnCalcs=o,this.botCalcs.push(e),"group"!=this.table.options.columnCalcs&&this.initializeBottomRow())}},b.prototype.removeCalcs=function(){var e=!1;this.topInitialized&&(this.topInitialized=!1,this.topElement.parentNode.removeChild(this.topElement),e=!0),this.botInitialized&&(this.botInitialized=!1,this.table.footerManager.remove(this.botElement),e=!0),e&&this.table.rowManager.adjustTableSize()},b.prototype.initializeTopRow=function(){this.topInitialized||(this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling),this.topInitialized=!0)},b.prototype.initializeBottomRow=function(){this.botInitialized||(this.table.footerManager.prepend(this.botElement),this.botInitialized=!0)},b.prototype.scrollHorizontal=function(e){this.table.columnManager.getElement().scrollWidth,this.table.element.clientWidth;this.botInitialized&&(this.botRow.getElement().style.marginLeft=-e+"px")},b.prototype.recalc=function(e){var t;if(this.topInitialized||this.botInitialized){if(this.rowsToData(e),this.topInitialized){for(this.topRow&&this.topRow.deleteCells(),t=this.generateRow("top",this.rowsToData(e)),this.topRow=t;this.topElement.firstChild;)this.topElement.removeChild(this.topElement.firstChild);this.topElement.appendChild(t.getElement()),t.initialize(!0)}if(this.botInitialized){for(this.botRow&&this.botRow.deleteCells(),t=this.generateRow("bottom",this.rowsToData(e)),this.botRow=t;this.botElement.firstChild;)this.botElement.removeChild(this.botElement.firstChild);this.botElement.appendChild(t.getElement()),t.initialize(!0)}this.table.rowManager.adjustTableSize(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()}},b.prototype.recalcRowGroup=function(e){this.recalcGroup(this.table.modules.groupRows.getRowGroup(e))},b.prototype.recalcAll=function(){var e=this;if((this.topCalcs.length||this.botCalcs.length)&&("group"!==this.table.options.columnCalcs&&this.recalc(this.table.rowManager.activeRows),this.table.options.groupBy&&"table"!==this.table.options.columnCalcs)){table.modules.groupRows.getChildGroups().forEach(function(t){e.recalcGroup(t)})}},b.prototype.recalcGroup=function(e){var t,o;e&&e.calcs&&(e.calcs.bottom&&(t=this.rowsToData(e.rows),o=this.generateRowData("bottom",t),e.calcs.bottom.updateData(o),e.calcs.bottom.reinitialize()),e.calcs.top&&(t=this.rowsToData(e.rows),o=this.generateRowData("top",t),e.calcs.top.updateData(o),e.calcs.top.reinitialize()))},b.prototype.generateTopRow=function(e){return this.generateRow("top",this.rowsToData(e))},b.prototype.generateBottomRow=function(e){return this.generateRow("bottom",this.rowsToData(e))},b.prototype.rowsToData=function(e){var t=this,o=[];return e.forEach(function(e){if(o.push(e.getData()),t.table.options.dataTree&&t.table.options.dataTreeChildColumnCalcs&&e.modules.dataTree.open){var i=t.rowsToData(t.table.modules.dataTree.getFilteredTreeChildren(e));o=o.concat(i)}}),o},b.prototype.generateRow=function(e,t){var o,i=this,n=this.generateRowData(e,t);return i.table.modExists("mutator")&&i.table.modules.mutator.disable(),o=new a(n,this,"calc"),i.table.modExists("mutator")&&i.table.modules.mutator.enable(),o.getElement().classList.add("tabulator-calcs","tabulator-calcs-"+e),o.generateCells=function(){var t=[];i.table.columnManager.columnsByIndex.forEach(function(n){i.genColumn.setField(n.getField()),i.genColumn.hozAlign=n.hozAlign,n.definition[e+"CalcFormatter"]&&i.table.modExists("format")?i.genColumn.modules.format={formatter:i.table.modules.format.getFormatter(n.definition[e+"CalcFormatter"]),params:n.definition[e+"CalcFormatterParams"]}:i.genColumn.modules.format={formatter:i.table.modules.format.getFormatter("plaintext"),params:{}},i.genColumn.definition.cssClass=n.definition.cssClass;var s=new c(i.genColumn,o);s.column=n,s.setWidth(),n.cells.push(s),t.push(s),n.visible||s.hide()}),this.cells=t},o},b.prototype.generateRowData=function(e,t){var o,i,n={},s="top"==e?this.topCalcs:this.botCalcs,r="top"==e?"topCalc":"botCalc";return s.forEach(function(e){var s=[];e.modules.columnCalcs&&e.modules.columnCalcs[r]&&(t.forEach(function(t){s.push(e.getFieldValue(t))}),i=r+"Params",o="function"==typeof e.modules.columnCalcs[i]?e.modules.columnCalcs[i](s,t):e.modules.columnCalcs[i],e.setFieldValue(n,e.modules.columnCalcs[r](s,t,o)))}),n},b.prototype.hasTopCalcs=function(){return!!this.topCalcs.length},b.prototype.hasBottomCalcs=function(){return!!this.botCalcs.length},b.prototype.redraw=function(){this.topRow&&this.topRow.normalizeHeight(!0),this.botRow&&this.botRow.normalizeHeight(!0)},b.prototype.getResults=function(){var e,t=this,o={};return this.table.options.groupBy&&this.table.modExists("groupRows")?(e=this.table.modules.groupRows.getGroups(!0),e.forEach(function(e){o[e.getKey()]=t.getGroupResults(e)})):o={top:this.topRow?this.topRow.getData():{},bottom:this.botRow?this.botRow.getData():{}},o},b.prototype.getGroupResults=function(e){var t=this,o=e._getSelf(),i=e.getSubGroups(),n={};return i.forEach(function(e){n[e.getKey()]=t.getGroupResults(e)}),{top:o.calcs.top?o.calcs.top.getData():{},bottom:o.calcs.bottom?o.calcs.bottom.getData():{},groups:n}},b.prototype.calculations={avg:function(e,t,o){var i=0,n=void 0!==o.precision?o.precision:2;return e.length&&(i=e.reduce(function(e,t){return t=Number(t),e+t}),i/=e.length,i=!1!==n?i.toFixed(n):i),parseFloat(i).toString()},max:function(e,t,o){var i=null,n=void 0!==o.precision&&o.precision;return e.forEach(function(e){((e=Number(e))>i||null===i)&&(i=e)}),null!==i?!1!==n?i.toFixed(n):i:""},min:function(e,t,o){var i=null,n=void 0!==o.precision&&o.precision;return e.forEach(function(e){((e=Number(e))<i||null===i)&&(i=e)}),null!==i?!1!==n?i.toFixed(n):i:""},sum:function(e,t,o){var i=0,n=void 0!==o.precision&&o.precision;return e.length&&e.forEach(function(e){e=Number(e),i+=isNaN(e)?0:Number(e)}),!1!==n?i.toFixed(n):i},concat:function(e,t,o){var i=0;return e.length&&(i=e.reduce(function(e,t){return String(e)+String(t)})),i},count:function(e,t,o){var i=0;return e.length&&e.forEach(function(e){e&&i++}),i}},d.prototype.registerModule("columnCalcs",b);var v=function(e){this.table=e,this.mode=!0,this.pasteParser=function(){},this.pasteAction=function(){},this.customSelection=!1,this.rowRange=!1,this.blocked=!0};v.prototype.initialize=function(){var e=this;this.mode=this.table.options.clipboard,this.rowRange=this.table.options.clipboardCopyRowRange,!0!==this.mode&&"copy"!==this.mode||this.table.element.addEventListener("copy",function(t){var o,i,n;if(!e.blocked){if(t.preventDefault(),e.customSelection)o=e.customSelection,e.table.options.clipboardCopyFormatter&&(o=e.table.options.clipboardCopyFormatter("plain",o));else{var n=e.table.modules.export.generateExportList(e.rowRange,e.table.options.clipboardCopyStyled,e.table.options.clipboardCopyConfig,"clipboard");i=e.table.modules.export.genereateHTMLTable(n),o=i?e.generatePlainContent(n):"",e.table.options.clipboardCopyFormatter&&(o=e.table.options.clipboardCopyFormatter("plain",o),i=e.table.options.clipboardCopyFormatter("html",i))}window.clipboardData&&window.clipboardData.setData?window.clipboardData.setData("Text",o):t.clipboardData&&t.clipboardData.setData?(t.clipboardData.setData("text/plain",o),i&&t.clipboardData.setData("text/html",i)):t.originalEvent&&t.originalEvent.clipboardData.setData&&(t.originalEvent.clipboardData.setData("text/plain",o),i&&t.originalEvent.clipboardData.setData("text/html",i)),e.table.options.clipboardCopied.call(e.table,o,i),e.reset()}}),!0!==this.mode&&"paste"!==this.mode||this.table.element.addEventListener("paste",function(t){e.paste(t)}),this.setPasteParser(this.table.options.clipboardPasteParser),this.setPasteAction(this.table.options.clipboardPasteAction)},v.prototype.reset=function(){this.blocked=!1,this.originalSelectionText=""},v.prototype.generatePlainContent=function(e){var t=[];return e.forEach(function(e){var o=[];e.columns.forEach(function(t){var i="";if(t)switch("group"===e.type&&(t.value=t.component.getKey()),_typeof(t.value)){case"object":i=JSON.stringify(t.value);break;case"undefined":case"null":i="";break;default:i=t.value}o.push(i)}),t.push(o.join("\t"))}),t.join("\n")},v.prototype.copy=function(e,t){var e,o,i;this.blocked=!1,this.customSelection=!1,!0!==this.mode&&"copy"!==this.mode||(this.rowRange=e||this.table.options.clipboardCopyRowRange,void 0!==window.getSelection&&void 0!==document.createRange?(e=document.createRange(),e.selectNodeContents(this.table.element),o=window.getSelection(),o.toString()&&t&&(this.customSelection=o.toString()),o.removeAllRanges(),o.addRange(e)):void 0!==document.selection&&void 0!==document.body.createTextRange&&(i=document.body.createTextRange(),i.moveToElementText(this.table.element),i.select()),document.execCommand("copy"),o&&o.removeAllRanges())},v.prototype.setPasteAction=function(e){switch(void 0===e?"undefined":_typeof(e)){case"string":this.pasteAction=this.pasteActions[e],this.pasteAction||console.warn("Clipboard Error - No such paste action found:",e);break;case"function":this.pasteAction=e}},v.prototype.setPasteParser=function(e){switch(void 0===e?"undefined":_typeof(e)){case"string":this.pasteParser=this.pasteParsers[e],this.pasteParser||console.warn("Clipboard Error - No such paste parser found:",e);break;case"function":this.pasteParser=e}},v.prototype.paste=function(e){var t,o,i;this.checkPaseOrigin(e)&&(t=this.getPasteData(e),o=this.pasteParser.call(this,t),o?(e.preventDefault(),this.table.modExists("mutator")&&(o=this.mutateData(o)),i=this.pasteAction.call(this,o),this.table.options.clipboardPasted.call(this.table,t,o,i)):this.table.options.clipboardPasteError.call(this.table,t))},v.prototype.mutateData=function(e){var t=this,o=[];return Array.isArray(e)?e.forEach(function(e){o.push(t.table.modules.mutator.transformRow(e,"clipboard"))}):o=e,o},v.prototype.checkPaseOrigin=function(e){var t=!0;return("DIV"!=e.target.tagName||this.table.modules.edit.currentCell)&&(t=!1),t},v.prototype.getPasteData=function(e){var t;return window.clipboardData&&window.clipboardData.getData?t=window.clipboardData.getData("Text"):e.clipboardData&&e.clipboardData.getData?t=e.clipboardData.getData("text/plain"):e.originalEvent&&e.originalEvent.clipboardData.getData&&(t=e.originalEvent.clipboardData.getData("text/plain")),t},v.prototype.pasteParsers={table:function(e){var t=[],o=!0,i=this.table.columnManager.columns,n=[],s=[];return e=e.split("\n"),e.forEach(function(e){t.push(e.split("\t"))}),!(!t.length||1===t.length&&t[0].length<2)&&(!0,t[0].forEach(function(e){var t=i.find(function(t){return e&&t.definition.title&&e.trim()&&t.definition.title.trim()===e.trim()});t?n.push(t):o=!1}),o||(o=!0,n=[],t[0].forEach(function(e){var t=i.find(function(t){return e&&t.field&&e.trim()&&t.field.trim()===e.trim()});t?n.push(t):o=!1}),o||(n=this.table.columnManager.columnsByIndex)),o&&t.shift(),t.forEach(function(e){var t={};e.forEach(function(e,o){n[o]&&(t[n[o].field]=e)}),s.push(t)}),s)}},v.prototype.pasteActions={replace:function(e){return this.table.setData(e)},update:function(e){return this.table.updateOrAddData(e)},insert:function(e){return this.table.addData(e)}},d.prototype.registerModule("clipboard",v);var y=function(e){this.table=e,this.indent=10,this.field="",this.collapseEl=null,this.expandEl=null,this.branchEl=null,this.elementField=!1,this.startOpen=function(){},this.displayIndex=0};y.prototype.initialize=function(){var e=null,t=this.table.columnManager.getFirstVisibileColumn(),o=this.table.options;switch(this.field=o.dataTreeChildField,this.indent=o.dataTreeChildIndent,this.elementField=o.dataTreeElementColumn||!!t&&t.field,o.dataTreeBranchElement&&(!0===o.dataTreeBranchElement?(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch")):"string"==typeof o.dataTreeBranchElement?(e=document.createElement("div"),e.innerHTML=o.dataTreeBranchElement,this.branchEl=e.firstChild):this.branchEl=o.dataTreeBranchElement),o.dataTreeCollapseElement?"string"==typeof o.dataTreeCollapseElement?(e=document.createElement("div"),e.innerHTML=o.dataTreeCollapseElement,this.collapseEl=e.firstChild):this.collapseEl=o.dataTreeCollapseElement:(this.collapseEl=document.createElement("div"),this.collapseEl.classList.add("tabulator-data-tree-control"),this.collapseEl.tabIndex=0,this.collapseEl.innerHTML="<div class='tabulator-data-tree-control-collapse'></div>"),o.dataTreeExpandElement?"string"==typeof o.dataTreeExpandElement?(e=document.createElement("div"),e.innerHTML=o.dataTreeExpandElement,this.expandEl=e.firstChild):this.expandEl=o.dataTreeExpandElement:(this.expandEl=document.createElement("div"),this.expandEl.classList.add("tabulator-data-tree-control"),this.expandEl.tabIndex=0,this.expandEl.innerHTML="<div class='tabulator-data-tree-control-expand'></div>"),_typeof(o.dataTreeStartExpanded)){case"boolean":this.startOpen=function(e,t){return o.dataTreeStartExpanded};break;case"function":this.startOpen=o.dataTreeStartExpanded;break;default:this.startOpen=function(e,t){return o.dataTreeStartExpanded[t]}}},y.prototype.initializeRow=function(e){var t=e.getData()[this.field],o=Array.isArray(t),i=o||!o&&"object"===(void 0===t?"undefined":_typeof(t))&&null!==t;!i&&e.modules.dataTree&&e.modules.dataTree.branchEl&&e.modules.dataTree.branchEl.parentNode.removeChild(e.modules.dataTree.branchEl),!i&&e.modules.dataTree&&e.modules.dataTree.controlEl&&e.modules.dataTree.controlEl.parentNode.removeChild(e.modules.dataTree.controlEl),e.modules.dataTree={index:e.modules.dataTree?e.modules.dataTree.index:0,open:!!i&&(e.modules.dataTree?e.modules.dataTree.open:this.startOpen(e.getComponent(),0)),controlEl:!(!e.modules.dataTree||!i)&&e.modules.dataTree.controlEl,branchEl:!(!e.modules.dataTree||!i)&&e.modules.dataTree.branchEl,parent:!!e.modules.dataTree&&e.modules.dataTree.parent,children:i}},y.prototype.layoutRow=function(e){var t=this.elementField?e.getCell(this.elementField):e.getCells()[0],o=t.getElement(),i=e.modules.dataTree;i.branchEl&&(i.branchEl.parentNode&&i.branchEl.parentNode.removeChild(i.branchEl),i.branchEl=!1),i.controlEl&&(i.controlEl.parentNode&&i.controlEl.parentNode.removeChild(i.controlEl),i.controlEl=!1),this.generateControlElement(e,o),e.element.classList.add("tabulator-tree-level-"+i.index),i.index&&(this.branchEl?(i.branchEl=this.branchEl.cloneNode(!0),o.insertBefore(i.branchEl,o.firstChild),i.branchEl.style.marginLeft=(i.branchEl.offsetWidth+i.branchEl.style.marginRight)*(i.index-1)+i.index*this.indent+"px"):o.style.paddingLeft=parseInt(window.getComputedStyle(o,null).getPropertyValue("padding-left"))+i.index*this.indent+"px")},y.prototype.generateControlElement=function(e,t){var o=this,i=e.modules.dataTree,t=t||e.getCells()[0].getElement(),n=i.controlEl;!1!==i.children&&(i.open?(i.controlEl=this.collapseEl.cloneNode(!0),i.controlEl.addEventListener("click",function(t){t.stopPropagation(),o.collapseRow(e)})):(i.controlEl=this.expandEl.cloneNode(!0),i.controlEl.addEventListener("click",function(t){t.stopPropagation(),o.expandRow(e)})),i.controlEl.addEventListener("mousedown",function(e){e.stopPropagation()}),n&&n.parentNode===t?n.parentNode.replaceChild(i.controlEl,n):t.insertBefore(i.controlEl,t.firstChild))},y.prototype.setDisplayIndex=function(e){this.displayIndex=e},y.prototype.getDisplayIndex=function(){return this.displayIndex},y.prototype.getRows=function(e){var t=this,o=[];return e.forEach(function(e,i){var n,s;o.push(e),e instanceof a&&(n=e.modules.dataTree.children,n.index||!1===n.children||(s=t.getChildren(e),s.forEach(function(e){o.push(e)})))}),o},y.prototype.getChildren=function(e){var t=this,o=e.modules.dataTree,i=[],n=[];return!1!==o.children&&o.open&&(Array.isArray(o.children)||(o.children=this.generateChildren(e)),i=this.table.modExists("filter")?this.table.modules.filter.filter(o.children):o.children,this.table.modExists("sort")&&this.table.modules.sort.sort(i),i.forEach(function(e){n.push(e),t.getChildren(e).forEach(function(e){n.push(e)})})),n},
-y.prototype.generateChildren=function(e){var t=this,o=[],i=e.getData()[this.field];return Array.isArray(i)||(i=[i]),i.forEach(function(i){var n=new a(i||{},t.table.rowManager);n.modules.dataTree.index=e.modules.dataTree.index+1,n.modules.dataTree.parent=e,n.modules.dataTree.children&&(n.modules.dataTree.open=t.startOpen(n.getComponent(),n.modules.dataTree.index)),o.push(n)}),o},y.prototype.expandRow=function(e,t){var o=e.modules.dataTree;!1!==o.children&&(o.open=!0,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowExpanded(e.getComponent(),e.modules.dataTree.index))},y.prototype.collapseRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open=!1,e.reinitialize(),this.table.rowManager.refreshActiveData("tree",!1,!0),this.table.options.dataTreeRowCollapsed(e.getComponent(),e.modules.dataTree.index))},y.prototype.toggleRow=function(e){var t=e.modules.dataTree;!1!==t.children&&(t.open?this.collapseRow(e):this.expandRow(e))},y.prototype.getTreeParent=function(e){return!!e.modules.dataTree.parent&&e.modules.dataTree.parent.getComponent()},y.prototype.getFilteredTreeChildren=function(e){var t,o=e.modules.dataTree,i=[];return o.children&&(Array.isArray(o.children)||(o.children=this.generateChildren(e)),t=this.table.modExists("filter")?this.table.modules.filter.filter(o.children):o.children,t.forEach(function(e){e instanceof a&&i.push(e)})),i},y.prototype.rowDelete=function(e){var t,o=e.modules.dataTree.parent;o&&(t=this.findChildIndex(e,o),!1!==t&&o.data[this.field].splice(t,1),o.data[this.field].length||delete o.data[this.field],this.initializeRow(o),this.layoutRow(o)),this.table.rowManager.refreshActiveData("tree",!1,!0)},y.prototype.addTreeChildRow=function(e,t,o,i){var n=!1;"string"==typeof t&&(t=JSON.parse(t)),Array.isArray(e.data[this.field])||(e.data[this.field]=[],e.modules.dataTree.open=this.startOpen(e.getComponent(),e.modules.dataTree.index)),void 0!==i&&!1!==(n=this.findChildIndex(i,e))&&e.data[this.field].splice(o?n:n+1,0,t),!1===n&&(o?e.data[this.field].unshift(t):e.data[this.field].push(t)),this.initializeRow(e),this.layoutRow(e),this.table.rowManager.refreshActiveData("tree",!1,!0)},y.prototype.findChildIndex=function(e,t){var o=this,i=!1;return"object"==(void 0===e?"undefined":_typeof(e))?e instanceof a?i=e.data:e instanceof r?i=e._getSelf().data:"undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&t.modules.dataTree&&(i=t.modules.dataTree.children.find(function(t){return t instanceof a&&t.element===e}))&&(i=i.data):i=void 0!==e&&null!==e&&t.data[this.field].find(function(t){return t.data[o.table.options.index]==e}),i&&(Array.isArray(t.data[this.field])&&(i=t.data[this.field].indexOf(i)),-1==i&&(i=!1)),i},y.prototype.getTreeChildren=function(e){var t=e.modules.dataTree,o=[];return t.children&&(Array.isArray(t.children)||(t.children=this.generateChildren(e)),t.children.forEach(function(e){e instanceof a&&o.push(e.getComponent())})),o},y.prototype.checkForRestyle=function(e){e.row.cells.indexOf(e)||e.row.reinitialize()},y.prototype.getChildField=function(){return this.field},y.prototype.redrawNeeded=function(e){return!!this.field&&void 0!==e[this.field]||!!this.elementField&&void 0!==e[this.elementField]},d.prototype.registerModule("dataTree",y);var w=function(e){this.table=e};w.prototype.download=function(e,t,o,i,n){function s(o,i){n?!0===n?r.triggerDownload(o,i,e,t,!0):n(o):r.triggerDownload(o,i,e,t)}var r=this,a=!1;if("function"==typeof e?a=e:r.downloaders[e]?a=r.downloaders[e]:console.warn("Download Error - No such download type found: ",e),a){var l=this.generateExportList(i);a.call(this.table,l,o||{},s)}},w.prototype.generateExportList=function(e){var t=this.table.modules.export.generateExportList(this.table.options.downloadConfig,!1,e||this.table.options.downloadRowRange,"download"),o=this.table.options.groupHeaderDownload;return o&&!Array.isArray(o)&&(o=[o]),t.forEach(function(e){var t;"group"===e.type&&(t=e.columns[0],o&&o[e.indent]&&(t.value=o[e.indent](t.value,e.component._group.getRowCount(),e.component._group.getData(),e.component)))}),t},w.prototype.triggerDownload=function(e,t,o,i,n){var s=document.createElement("a"),r=new Blob([e],{type:t}),i=i||"Tabulator."+("function"==typeof o?"txt":o);(r=this.table.options.downloadReady.call(this.table,e,r))&&(n?window.open(window.URL.createObjectURL(r)):navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(r,i):(s.setAttribute("href",window.URL.createObjectURL(r)),s.setAttribute("download",i),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)),this.table.options.downloadComplete&&this.table.options.downloadComplete())},w.prototype.commsReceived=function(e,t,o){switch(t){case"intercept":this.download(o.type,"",o.options,o.active,o.intercept)}},w.prototype.downloaders={csv:function(e,t,o){var i=t&&t.delimiter?t.delimiter:",",n=[],s=[];e.forEach(function(e){var t=[];switch(e.type){case"group":console.warn("Download Warning - CSV downloader cannot process row groups");break;case"calc":console.warn("Download Warning - CSV downloader cannot process column calculations");break;case"header":e.columns.forEach(function(e,t){e&&1===e.depth&&(s[t]=void 0===e.value||"null"==typeof e.value?"":e.value)});break;case"row":e.columns.forEach(function(e){if(e){switch(_typeof(e.value)){case"object":e.value=JSON.stringify(e.value);break;case"undefined":case"null":e.value=""}t.push('"'+String(e.value).split('"').join('""')+'"')}}),n.push(t.join(i))}}),s.length&&(n=[s].concat(n)),n=n.join("\n"),t.bom&&(n="\ufeff"+n),o(n,"text/csv")},json:function(e,t,o){var i=[];e.forEach(function(e){var t={};switch(e.type){case"header":break;case"group":console.warn("Download Warning - JSON downloader cannot process row groups");break;case"calc":console.warn("Download Warning - JSON downloader cannot process column calculations");break;case"row":e.columns.forEach(function(e){e&&(t[e.component.getField()]=e.value)}),i.push(t)}}),i=JSON.stringify(i,null,"\t"),o(i,"application/json")},pdf:function(e,t,o){function i(e,t){var o=[];return e.columns.forEach(function(e){var i;if(e){switch(_typeof(e.value)){case"object":e.value=JSON.stringify(e.value);break;case"undefined":case"null":e.value=""}i={content:e.value,colSpan:e.width,rowSpan:e.height},t&&(i.styles=t),o.push(i)}else o.push("")}),o}var n=[],s=[],r={},a=t.rowGroupStyles||{fontStyle:"bold",fontSize:12,cellPadding:6,fillColor:220},l=t.rowCalcStyles||{fontStyle:"bold",fontSize:10,cellPadding:4,fillColor:232},c=t.jsPDF||{},u=t&&t.title?t.title:"";c.orientation||(c.orientation=t.orientation||"landscape"),c.unit||(c.unit="pt"),e.forEach(function(e){switch(e.type){case"header":n.push(i(e));break;case"group":s.push(i(e,a));break;case"calc":s.push(i(e,l));break;case"row":s.push(i(e))}});var d=new jsPDF(c);t&&t.autoTable&&(r="function"==typeof t.autoTable?t.autoTable(d)||{}:t.autoTable),u&&(r.addPageContent=function(e){d.text(u,40,30)}),r.head=n,r.body=s,d.autoTable(r),t&&t.documentProcessing&&t.documentProcessing(d),o(d.output("arraybuffer"),"application/pdf")},xlsx:function(e,t,o){function i(){var t=[],o=[],i={},n={s:{c:0,r:0},e:{c:e[0]?e[0].columns.reduce(function(e,t){return e+(t&&t.width?t.width:1)},0):0,r:e.length}};return e.forEach(function(e,i){var n=[];e.columns.forEach(function(e,t){e?(n.push(e.value instanceof Date||"object"!==_typeof(e.value)?e.value:JSON.stringify(e.value)),(e.width>1||e.height>-1)&&o.push({s:{r:i,c:t},e:{r:i+e.height-1,c:t+e.width-1}})):n.push("")}),t.push(n)}),XLSX.utils.sheet_add_aoa(i,t),i["!ref"]=XLSX.utils.encode_range(n),o.length&&(i["!merges"]=o),i}var n,s=this,r=t.sheetName||"Sheet1",a=XLSX.utils.book_new();if(a.SheetNames=[],a.Sheets={},t.sheetOnly)return void o(i());if(t.sheets)for(var l in t.sheets)!0===t.sheets[l]?(a.SheetNames.push(l),a.Sheets[l]=i()):(a.SheetNames.push(l),this.table.modules.comms.send(t.sheets[l],"download","intercept",{type:"xlsx",options:{sheetOnly:!0},active:s.active,intercept:function(e){a.Sheets[l]=e}}));else a.SheetNames.push(r),a.Sheets[r]=i();t.documentProcessing&&(a=t.documentProcessing(a)),n=XLSX.write(a,{bookType:"xlsx",bookSST:!0,type:"binary"}),o(function(e){for(var t=new ArrayBuffer(e.length),o=new Uint8Array(t),i=0;i!=e.length;++i)o[i]=255&e.charCodeAt(i);return t}(n),"application/octet-stream")},html:function(e,t,o){this.modExists("export",!0)&&o(this.modules.export.genereateHTMLTable(e),"text/html")}},d.prototype.registerModule("download",w);var E=function(e){this.table=e,this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1,this.editedCells=[]};E.prototype.initializeColumn=function(e){var t=this,o={editor:!1,blocked:!1,check:e.definition.editable,params:e.definition.editorParams||{}};switch(_typeof(e.definition.editor)){case"string":"tick"===e.definition.editor&&(e.definition.editor="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.editor]?o.editor=t.editors[e.definition.editor]:console.warn("Editor Error - No such editor found: ",e.definition.editor);break;case"function":o.editor=e.definition.editor;break;case"boolean":!0===e.definition.editor&&("function"!=typeof e.definition.formatter?("tick"===e.definition.formatter&&(e.definition.formatter="tickCross",console.warn("DEPRECATION WARNING - the tick editor has been deprecated, please use the tickCross editor")),t.editors[e.definition.formatter]?o.editor=t.editors[e.definition.formatter]:o.editor=t.editors.input):console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",e.definition.formatter))}o.editor&&(e.modules.edit=o)},E.prototype.getCurrentCell=function(){return!!this.currentCell&&this.currentCell.getComponent()},E.prototype.clearEditor=function(e){var t,o=this.currentCell;if(this.invalidEdit=!1,o){for(this.currentCell=!1,t=o.getElement(),e?o.validate():t.classList.remove("tabulator-validation-fail"),t.classList.remove("tabulator-editing");t.firstChild;)t.removeChild(t.firstChild);o.row.getElement().classList.remove("tabulator-row-editing")}},E.prototype.cancelEdit=function(){if(this.currentCell){var e=this.currentCell,t=this.currentCell.getComponent();this.clearEditor(!0),e.setValueActual(e.getValue()),e.cellRendered(),e.column.cellEvents.cellEditCancelled&&e.column.cellEvents.cellEditCancelled.call(this.table,t),this.table.options.cellEditCancelled.call(this.table,t)}},E.prototype.bindEditor=function(e){var t=this,o=e.getElement();o.setAttribute("tabindex",0),o.addEventListener("click",function(e){o.classList.contains("tabulator-editing")||o.focus({preventScroll:!0})}),o.addEventListener("mousedown",function(e){t.mouseClick=!0}),o.addEventListener("focus",function(o){t.recursionBlock||t.edit(e,o,!1)})},E.prototype.focusCellNoEvent=function(e,t){this.recursionBlock=!0,t&&"ie"===this.table.browser||e.getElement().focus({preventScroll:!0}),this.recursionBlock=!1},E.prototype.editCell=function(e,t){this.focusCellNoEvent(e),this.edit(e,!1,t)},E.prototype.focusScrollAdjust=function(e){if("virtual"==this.table.rowManager.getRenderMode()){var t=this.table.rowManager.element.scrollTop,o=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,i=e.row.getElement();i.offsetTop;i.offsetTop<t?this.table.rowManager.element.scrollTop-=t-i.offsetTop:i.offsetTop+i.offsetHeight>o&&(this.table.rowManager.element.scrollTop+=i.offsetTop+i.offsetHeight-o)}},E.prototype.edit=function(e,t,o){function i(t){if(c.currentCell===e){var o=!0;return e.column.modules.validate&&c.table.modExists("validate")&&"manual"!=c.table.options.validationMode&&(o=c.table.modules.validate.validate(e.column.modules.validate,e,t)),!0===o||"highlight"===c.table.options.validationMode?(c.clearEditor(),e.setValue(t,!0),e.modules.edit||(e.modules.edit={}),e.modules.edit.edited=!0,-1==c.editedCells.indexOf(e)&&c.editedCells.push(e),c.table.options.dataTree&&c.table.modExists("dataTree")&&c.table.modules.dataTree.checkForRestyle(e),!0===o||(h.classList.add("tabulator-validation-fail"),!1)):(c.invalidEdit=!0,h.classList.add("tabulator-validation-fail"),c.focusCellNoEvent(e,!0),d(),c.table.options.validationFailed.call(c.table,e.getComponent(),t,o),!1)}}function n(){c.currentCell===e&&(c.cancelEdit(),c.table.options.dataTree&&c.table.modExists("dataTree")&&c.table.modules.dataTree.checkForRestyle(e))}function s(e){d=e}var r,a,l,c=this,u=!0,d=function(){},h=e.getElement();if(this.currentCell)return void(this.invalidEdit||this.cancelEdit());if(e.column.modules.edit.blocked)return this.mouseClick=!1,h.blur(),!1;switch(t&&t.stopPropagation(),_typeof(e.column.modules.edit.check)){case"function":u=e.column.modules.edit.check(e.getComponent());break;case"boolean":u=e.column.modules.edit.check}if(u||o){if(c.cancelEdit(),c.currentCell=e,this.focusScrollAdjust(e),a=e.getComponent(),this.mouseClick&&(this.mouseClick=!1,e.column.cellEvents.cellClick&&e.column.cellEvents.cellClick.call(this.table,t,a)),e.column.cellEvents.cellEditing&&e.column.cellEvents.cellEditing.call(this.table,a),c.table.options.cellEditing.call(this.table,a),l="function"==typeof e.column.modules.edit.params?e.column.modules.edit.params(a):e.column.modules.edit.params,!1===(r=e.column.modules.edit.editor.call(c,a,s,i,n,l)))return h.blur(),!1;if(!(r instanceof Node))return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",r),h.blur(),!1;for(h.classList.add("tabulator-editing"),e.row.getElement().classList.add("tabulator-row-editing");h.firstChild;)h.removeChild(h.firstChild);h.appendChild(r),d();for(var p=h.children,m=0;m<p.length;m++)p[m].addEventListener("click",function(e){e.stopPropagation()});return!0}return this.mouseClick=!1,h.blur(),!1},E.prototype.maskInput=function(e,t){function o(t){var a=i[t];void 0!==a&&a!==r&&a!==n&&a!==s&&(e.value=e.value+""+a,o(t+1))}var i=t.mask,n=void 0!==t.maskLetterChar?t.maskLetterChar:"A",s=void 0!==t.maskNumberChar?t.maskNumberChar:"9",r=void 0!==t.maskWildcardChar?t.maskWildcardChar:"*",a=!1;e.addEventListener("keydown",function(t){var o=e.value.length,l=t.key;if(t.keyCode>46){if(o>=i.length)return t.preventDefault(),t.stopPropagation(),a=!1,!1;switch(i[o]){case n:if(l.toUpperCase()==l.toLowerCase())return t.preventDefault(),t.stopPropagation(),a=!1,!1;break;case s:if(isNaN(l))return t.preventDefault(),t.stopPropagation(),a=!1,!1;break;case r:break;default:if(l!==i[o])return t.preventDefault(),t.stopPropagation(),a=!1,!1}a=!0}}),e.addEventListener("keyup",function(i){i.keyCode>46&&t.maskAutoFill&&o(e.value.length)}),e.placeholder||(e.placeholder=i),t.maskAutoFill&&o(e.value.length)},E.prototype.getEditedCells=function(){var e=[];return this.editedCells.forEach(function(t){e.push(t.getComponent())}),e},E.prototype.clearEdited=function(e){var t;e.modules.edit&&e.modules.edit.edited&&(e.modules.validate.invalid=!1,(t=this.editedCells.indexOf(e))>-1&&this.editedCells.splice(t,1))},E.prototype.editors={input:function(e,t,o,i,n){function s(e){(null===r||void 0===r)&&""!==a.value||a.value!==r?o(a.value)&&(r=a.value):i()}var r=e.getValue(),a=document.createElement("input");if(a.setAttribute("type",n.search?"search":"text"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var l in n.elementAttributes)"+"==l.charAt(0)?(l=l.slice(1),a.setAttribute(l,a.getAttribute(l)+n.elementAttributes["+"+l])):a.setAttribute(l,n.elementAttributes[l]);return a.value=void 0!==r?r:"",t(function(){a.focus({preventScroll:!0}),a.style.height="100%"}),a.addEventListener("change",s),a.addEventListener("blur",s),a.addEventListener("keydown",function(e){switch(e.keyCode){case 13:s(e);break;case 27:i()}}),n.mask&&this.table.modules.edit.maskInput(a,n),a},textarea:function(e,t,o,i,n){function s(t){(null===r||void 0===r)&&""!==c.value||c.value!==r?(o(c.value)&&(r=c.value),setTimeout(function(){e.getRow().normalizeHeight()},300)):i()}var r=e.getValue(),a=n.verticalNavigation||"hybrid",l=String(null!==r&&void 0!==r?r:""),c=(l.match(/(?:\r\n|\r|\n)/g),document.createElement("textarea")),u=0;if(c.style.display="block",c.style.padding="2px",c.style.height="100%",c.style.width="100%",c.style.boxSizing="border-box",c.style.whiteSpace="pre-wrap",c.style.resize="none",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var d in n.elementAttributes)"+"==d.charAt(0)?(d=d.slice(1),c.setAttribute(d,c.getAttribute(d)+n.elementAttributes["+"+d])):c.setAttribute(d,n.elementAttributes[d]);return c.value=l,t(function(){c.focus({preventScroll:!0}),c.style.height="100%"}),c.addEventListener("change",s),c.addEventListener("blur",s),c.addEventListener("keyup",function(){c.style.height="";var t=c.scrollHeight;c.style.height=t+"px",t!=u&&(u=t,e.getRow().normalizeHeight())}),c.addEventListener("keydown",function(e){switch(e.keyCode){case 27:i();break;case 38:("editor"==a||"hybrid"==a&&c.selectionStart)&&(e.stopImmediatePropagation(),e.stopPropagation());break;case 40:("editor"==a||"hybrid"==a&&c.selectionStart!==c.value.length)&&(e.stopImmediatePropagation(),e.stopPropagation())}}),n.mask&&this.table.modules.edit.maskInput(c,n),c},number:function(e,t,o,i,n){function s(){var e=l.value;isNaN(e)||""===e||(e=Number(e)),e!==r?o(e)&&(r=e):i()}var r=e.getValue(),a=n.verticalNavigation||"editor",l=document.createElement("input");if(l.setAttribute("type","number"),void 0!==n.max&&l.setAttribute("max",n.max),void 0!==n.min&&l.setAttribute("min",n.min),void 0!==n.step&&l.setAttribute("step",n.step),l.style.padding="4px",l.style.width="100%",l.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var c in n.elementAttributes)"+"==c.charAt(0)?(c=c.slice(1),l.setAttribute(c,l.getAttribute(c)+n.elementAttributes["+"+c])):l.setAttribute(c,n.elementAttributes[c]);l.value=r;var u=function(e){s()};return t(function(){l.removeEventListener("blur",u),l.focus({preventScroll:!0}),l.style.height="100%",l.addEventListener("blur",u)}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 13:s();break;case 27:i();break;case 38:case 40:"editor"==a&&(e.stopImmediatePropagation(),e.stopPropagation())}}),n.mask&&this.table.modules.edit.maskInput(l,n),l},range:function(e,t,o,i,n){function s(){var e=a.value;isNaN(e)||""===e||(e=Number(e)),e!=r?o(e)&&(r=e):i()}var r=e.getValue(),a=document.createElement("input");if(a.setAttribute("type","range"),void 0!==n.max&&a.setAttribute("max",n.max),void 0!==n.min&&a.setAttribute("min",n.min),void 0!==n.step&&a.setAttribute("step",n.step),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var l in n.elementAttributes)"+"==l.charAt(0)?(l=l.slice(1),a.setAttribute(l,a.getAttribute(l)+n.elementAttributes["+"+l])):a.setAttribute(l,n.elementAttributes[l]);return a.value=r,t(function(){a.focus({preventScroll:!0}),a.style.height="100%"}),a.addEventListener("blur",function(e){s()}),a.addEventListener("keydown",function(e){switch(e.keyCode){case 13:s();break;case 27:i()}}),a},select:function(e,t,o,i,n){function s(t){var o,i={},s=w.table.getData();return o=t?w.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),o?(s.forEach(function(e){var t=o.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(i[t]=!0)}),i=n.sortValuesList?"asc"==n.sortValuesList?Object.keys(i).sort():Object.keys(i).sort().reverse():Object.keys(i)):console.warn("unable to find matching column to create select lookup list:",t),i}function r(t,o){function i(e){var e={label:e.label,value:e.value,itemParams:e.itemParams,elementAttributes:e.elementAttributes,element:!1};return o.indexOf(e.value)>-1&&c(e),n.push(e),s.push(e),e}var n=[],s=[];if("function"==typeof t&&(t=t(e)),Array.isArray(t))t.forEach(function(e){var t;"object"===(void 0===e?"undefined":_typeof(e))?e.options?(t={label:e.label,group:!0,itemParams:e.itemParams,elementAttributes:e.elementAttributes,element:!1},s.push(t),e.options.forEach(function(e){i(e)})):i(e):(t={label:e,value:e,element:!1},o.indexOf(t.value)>-1&&c(t),n.push(t),s.push(t))});else for(var r in t){var l={label:t[r],value:r,element:!1};o.indexOf(l.value)>-1&&c(l),n.push(l),s.push(l)}D=n,S=s,a()}function a(){for(;L.firstChild;)L.removeChild(L.firstChild);S.forEach(function(t){var o=t.element;if(!o){if(o=document.createElement("div"),t.label=n.listItemFormatter?n.listItemFormatter(t.value,t.label,e,o,t.itemParams):t.label,t.group?(o.classList.add("tabulator-edit-select-list-group"),o.tabIndex=0,o.innerHTML=""===t.label?" ":t.label):(o.classList.add("tabulator-edit-select-list-item"),o.tabIndex=0,o.innerHTML=""===t.label?" ":t.label,o.addEventListener("click",function(){T?(h(t),M.focus()):p(t)}),H.indexOf(t)>-1&&o.classList.add("active")),t.elementAttributes&&"object"==_typeof(t.elementAttributes))for(var i in t.elementAttributes)"+"==i.charAt(0)?(i=i.slice(1),o.setAttribute(i,M.getAttribute(i)+t.elementAttributes["+"+i])):o.setAttribute(i,t.elementAttributes[i]);o.addEventListener("mousedown",function(){z=!1,setTimeout(function(){z=!0},10)}),t.element=o}L.appendChild(o)})}function l(e,t){!T&&k&&k.element&&k.element.classList.remove("active"),k&&k.element&&k.element.classList.remove("focused"),k=e,e.element&&(e.element.classList.add("focused"),t&&e.element.classList.add("active"))}function c(e){-1==H.indexOf(e)&&(H.push(e),l(e,!0)),f()}function u(e){var t=H[e];e>-1&&(H.splice(e,1),t.element&&t.element.classList.remove("active"))}function h(e){e||(e=k);var t=H.indexOf(e);t>-1?u(t):(!0!==T&&H.length>=T&&u(0),c(e)),f()}function p(e){v(),e||(e=k),e&&o(e.value)}function m(){v();var e=[];H.forEach(function(t){e.push(t.value)}),o(e)}function f(){var e=[];H.forEach(function(t){e.push(t.label)}),M.value=e.join(", ")}function g(){v(),i()}function b(){if(!L.parentNode){!0===n.values?r(s(),R):"string"==typeof n.values?r(s(n.values),R):r(n.values||[],R);var e=d.prototype.helpers.elOffset(E);L.style.minWidth=E.offsetWidth+"px",L.style.top=e.top+E.offsetHeight+"px",L.style.left=e.left+"px",L.addEventListener("mousedown",function(e){z=!1,setTimeout(function(){z=!0},10)}),document.body.appendChild(L)}}function v(){L.parentNode&&L.parentNode.removeChild(L),y()}function y(){w.table.rowManager.element.removeEventListener("scroll",g)}var w=this,E=e.getElement(),C=e.getValue(),x=n.verticalNavigation||"editor",R=void 0!==C||null===C?C:void 0!==n.defaultValue?n.defaultValue:[],M=document.createElement("input"),L=document.createElement("div"),T=n.multiselect,D=[],k={},S=[],H=[],z=!0;if(this.table.rowManager.element.addEventListener("scroll",g),(Array.isArray(n)||!Array.isArray(n)&&"object"===(void 0===n?"undefined":_typeof(n))&&!n.values)&&(console.warn("DEPRECATION WARNING - values for the select editor must now be passed into the values property of the editorParams object, not as the editorParams object"),n={values:n}),M.setAttribute("type","text"),M.style.padding="4px",M.style.width="100%",M.style.boxSizing="border-box",M.style.cursor="default",M.readOnly=0!=this.currentCell,n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var A in n.elementAttributes)"+"==A.charAt(0)?(A=A.slice(1),M.setAttribute(A,M.getAttribute(A)+n.elementAttributes["+"+A])):M.setAttribute(A,n.elementAttributes[A]);return M.value=void 0!==C||null===C?C:"",M.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=D.indexOf(k),("editor"==x||"hybrid"==x&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t>0&&l(D[t-1],!T));break;case 40:t=D.indexOf(k),("editor"==x||"hybrid"==x&&t<D.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<D.length-1&&(-1==t?l(D[0],!T):l(D[t+1],!T)));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault();break;case 13:T?h():p();break;case 27:g()}}),M.addEventListener("blur",function(e){z&&(T?m():g())}),M.addEventListener("focus",function(e){b()}),L=document.createElement("div"),L.classList.add("tabulator-edit-select-list"),t(function(){M.style.height="100%",M.focus({preventScroll:!0})}),M},autocomplete:function(e,t,o,i,n){function s(){!0===n.values?S=r():"string"==typeof n.values&&(S=r(n.values))}function r(t){var o,i={},s=w.table.getData();return o=t?w.table.columnManager.getColumnByField(t):e.getColumn()._getSelf(),o?(s.forEach(function(e){var t=o.getFieldValue(e);null!==t&&void 0!==t&&""!==t&&(i[t]=!0)}),i=n.sortValuesList?"asc"==n.sortValuesList?Object.keys(i).sort():Object.keys(i).sort().reverse():Object.keys(i)):console.warn("unable to find matching column to create autocomplete lookup list:",t),i}function a(e,t){var o,i,s=[];o=S||(n.values||[]),n.searchFunc?(s=n.searchFunc(e,o),s instanceof Promise?(l(void 0!==n.searchingPlaceholder?n.searchingPlaceholder:"Searching..."),s.then(function(e){h(c(e),t)}).catch(function(e){console.err("error in autocomplete search promise:",e)})):h(c(s),t)):(i=c(o),""===e?n.showListOnEmpty&&(s=i):i.forEach(function(t){null===t.value&&void 0===t.value||(String(t.value).toLowerCase().indexOf(String(e).toLowerCase())>-1||String(t.title).toLowerCase().indexOf(String(e).toLowerCase())>-1)&&s.push(t)}),h(s,t))}function l(e){var t=document.createElement("div");u(),!1!==e&&(t.classList.add("tabulator-edit-select-list-notice"),t.tabIndex=0,e instanceof Node?t.appendChild(e):t.innerHTML=e,L.appendChild(t))}function c(e){var t=[];if(Array.isArray(e))e.forEach(function(e){var o={};"object"===(void 0===e?"undefined":_typeof(e))?(o.title=n.listItemFormatter?n.listItemFormatter(e.value,e.label):e.label,o.value=e.value):(o.title=n.listItemFormatter?n.listItemFormatter(e,e):e,o.value=e),t.push(o)});else for(var o in e){var i={title:n.listItemFormatter?n.listItemFormatter(o,e[o]):e[o],value:o};t.push(i)}return t}function u(){for(;L.firstChild;)L.removeChild(L.firstChild)}function h(e,t){e.length?p(e,t):n.emptyPlaceholder&&l(n.emptyPlaceholder)}function p(e,t){var o=!1;u(),T=e,T.forEach(function(e){var i=e.element;i||(i=document.createElement("div"),i.classList.add("tabulator-edit-select-list-item"),i.tabIndex=0,i.innerHTML=e.title,i.addEventListener("click",function(t){g(e),m()}),i.addEventListener("mousedown",function(e){k=!1,setTimeout(function(){k=!0},10)}),e.element=i,t&&e.value==C&&(M.value=e.title,e.element.classList.add("active"),o=!0),e===D&&(e.element.classList.add("active"),o=!0)),L.appendChild(i)}),o||g(!1)}function m(){b(),D?C!==D.value?(C=D.value,M.value=D.title,o(D.value)):i():n.freetext?(C=M.value,o(M.value)):n.allowEmpty&&""===M.value?(C=M.value,o(M.value)):i()}function f(){if(!L.parentNode){for(;L.firstChild;)L.removeChild(L.firstChild);var e=d.prototype.helpers.elOffset(E);L.style.minWidth=E.offsetWidth+"px",L.style.top=e.top+E.offsetHeight+"px",L.style.left=e.left+"px",document.body.appendChild(L)}}function g(e,t){D&&D.element&&D.element.classList.remove("active"),D=e,e&&e.element&&e.element.classList.add("active")}function b(){L.parentNode&&L.parentNode.removeChild(L),y()}function v(){b(),i()}function y(){w.table.rowManager.element.removeEventListener("scroll",v)}var w=this,E=e.getElement(),C=e.getValue(),x=n.verticalNavigation||"editor",R=void 0!==C||null===C?C:void 0!==n.defaultValue?n.defaultValue:"",M=document.createElement("input"),L=document.createElement("div"),T=[],D=!1,k=!0,S=!1;if(this.table.rowManager.element.addEventListener("scroll",v),M.setAttribute("type","search"),M.style.padding="4px",M.style.width="100%",M.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var H in n.elementAttributes)"+"==H.charAt(0)?(H=H.slice(1),M.setAttribute(H,M.getAttribute(H)+n.elementAttributes["+"+H])):M.setAttribute(H,n.elementAttributes[H]);return L.classList.add("tabulator-edit-select-list"),L.addEventListener("mousedown",function(e){k=!1,setTimeout(function(){k=!0},10)}),M.addEventListener("keydown",function(e){var t;switch(e.keyCode){case 38:t=T.indexOf(D),("editor"==x||"hybrid"==x&&t)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),g(t>0?T[t-1]:!1));break;case 40:t=T.indexOf(D),("editor"==x||"hybrid"==x&&t<T.length-1)&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault(),t<T.length-1&&g(-1==t?T[0]:T[t+1]));break;case 37:case 39:e.stopImmediatePropagation(),e.stopPropagation();break;case 13:m();break;case 27:v();break;case 36:case 35:e.stopImmediatePropagation()}}),M.addEventListener("keyup",function(e){switch(e.keyCode){case 38:case 37:case 39:case 40:case 13:case 27:break;default:a(M.value)}}),M.addEventListener("search",function(e){a(M.value)}),M.addEventListener("blur",function(e){k&&m()}),M.addEventListener("focus",function(e){var t=R;s(),f(),M.value=t,a(t,!0)}),t(function(){M.style.height="100%",M.focus({preventScroll:!0})}),n.mask&&this.table.modules.edit.maskInput(M,n),M},star:function(e,t,o,i,n){function s(e){h.forEach(function(t,o){o<e?("ie"==a.table.browser?t.setAttribute("class","tabulator-star-active"):t.classList.replace("tabulator-star-inactive","tabulator-star-active"),t.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'):("ie"==a.table.browser?t.setAttribute("class","tabulator-star-inactive"):t.classList.replace("tabulator-star-active","tabulator-star-inactive"),t.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>')})}function r(e){c=e,s(e)}var a=this,l=e.getElement(),c=e.getValue(),u=l.getElementsByTagName("svg").length||5,d=l.getElementsByTagName("svg")[0]?l.getElementsByTagName("svg")[0].getAttribute("width"):14,h=[],p=document.createElement("div"),m=document.createElementNS("http://www.w3.org/2000/svg","svg");if(l.style.whiteSpace="nowrap",l.style.overflow="hidden",l.style.textOverflow="ellipsis",p.style.verticalAlign="middle",p.style.display="inline-block",p.style.padding="4px",m.setAttribute("width",d),m.setAttribute("height",d),m.setAttribute("viewBox","0 0 512 512"),m.setAttribute("xml:space","preserve"),m.style.padding="0 1px",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var f in n.elementAttributes)"+"==f.charAt(0)?(f=f.slice(1),p.setAttribute(f,p.getAttribute(f)+n.elementAttributes["+"+f])):p.setAttribute(f,n.elementAttributes[f]);for(var g=1;g<=u;g++)!function(e){var t=document.createElement("span"),i=m.cloneNode(!0);h.push(i),t.addEventListener("mouseenter",function(t){t.stopPropagation(),t.stopImmediatePropagation(),s(e)}),t.addEventListener("mousemove",function(e){e.stopPropagation(),e.stopImmediatePropagation()}),t.addEventListener("click",function(t){t.stopPropagation(),t.stopImmediatePropagation(),o(e),l.blur()}),t.appendChild(i),p.appendChild(t)}(g);return c=Math.min(parseInt(c),u),s(c),p.addEventListener("mousemove",function(e){s(0)}),p.addEventListener("click",function(e){o(0)}),l.addEventListener("blur",function(e){i()}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 39:r(c+1);break;case 37:r(c-1);break;case 13:o(c);break;case 27:i()}}),p},progress:function(e,t,o,i,n){function s(){var e=d*Math.round(m.offsetWidth/(l.clientWidth/100))+u;o(e),l.setAttribute("aria-valuenow",e),l.setAttribute("aria-label",h)}var r,a,l=e.getElement(),c=void 0===n.max?l.getElementsByTagName("div")[0].getAttribute("max")||100:n.max,u=void 0===n.min?l.getElementsByTagName("div")[0].getAttribute("min")||0:n.min,d=(c-u)/100,h=e.getValue()||0,p=document.createElement("div"),m=document.createElement("div");if(p.style.position="absolute",p.style.right="0",p.style.top="0",p.style.bottom="0",p.style.width="5px",p.classList.add("tabulator-progress-handle"),m.style.display="inline-block",
-m.style.position="relative",m.style.height="100%",m.style.backgroundColor="#488CE9",m.style.maxWidth="100%",m.style.minWidth="0%",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var f in n.elementAttributes)"+"==f.charAt(0)?(f=f.slice(1),m.setAttribute(f,m.getAttribute(f)+n.elementAttributes["+"+f])):m.setAttribute(f,n.elementAttributes[f]);return l.style.padding="4px 4px",h=Math.min(parseFloat(h),c),h=Math.max(parseFloat(h),u),h=Math.round((h-u)/d),m.style.width=h+"%",l.setAttribute("aria-valuemin",u),l.setAttribute("aria-valuemax",c),m.appendChild(p),p.addEventListener("mousedown",function(e){r=e.screenX,a=m.offsetWidth}),p.addEventListener("mouseover",function(){p.style.cursor="ew-resize"}),l.addEventListener("mousemove",function(e){r&&(m.style.width=a+e.screenX-r+"px")}),l.addEventListener("mouseup",function(e){r&&(e.stopPropagation(),e.stopImmediatePropagation(),r=!1,a=!1,s())}),l.addEventListener("keydown",function(e){switch(e.keyCode){case 39:e.preventDefault(),m.style.width=m.clientWidth+l.clientWidth/100+"px";break;case 37:e.preventDefault(),m.style.width=m.clientWidth-l.clientWidth/100+"px";break;case 9:case 13:s();break;case 27:i()}}),l.addEventListener("blur",function(){i()}),m},tickCross:function(e,t,o,i,n){function s(e){return l?e?u?c:a.checked:a.checked&&!u?(a.checked=!1,a.indeterminate=!0,u=!0,c):(u=!1,a.checked):a.checked}var r=e.getValue(),a=document.createElement("input"),l=n.tristate,c=void 0===n.indeterminateValue?null:n.indeterminateValue,u=!1;if(a.setAttribute("type","checkbox"),a.style.marginTop="5px",a.style.boxSizing="border-box",n.elementAttributes&&"object"==_typeof(n.elementAttributes))for(var d in n.elementAttributes)"+"==d.charAt(0)?(d=d.slice(1),a.setAttribute(d,a.getAttribute(d)+n.elementAttributes["+"+d])):a.setAttribute(d,n.elementAttributes[d]);return a.value=r,!l||void 0!==r&&r!==c&&""!==r||(u=!0,a.indeterminate=!0),"firefox"!=this.table.browser&&t(function(){a.focus({preventScroll:!0})}),a.checked=!0===r||"true"===r||"True"===r||1===r,a.addEventListener("change",function(e){o(s())}),a.addEventListener("blur",function(e){o(s(!0))}),a.addEventListener("keydown",function(e){13==e.keyCode&&o(s()),27==e.keyCode&&i()}),a}},d.prototype.registerModule("edit",E);var C=function(e,t,o,i){this.type=e,this.columns=t,this.component=o||!1,this.indent=i||0},x=function(e,t,o,i,n){this.value=e,this.component=t||!1,this.width=o,this.height=i,this.depth=n},R=function(e){this.table=e,this.config={},this.cloneTableStyle=!0,this.colVisProp=""};R.prototype.generateExportList=function(e,t,o,i){this.cloneTableStyle=t,this.config=e||{},this.colVisProp=i;var n=!1!==this.config.columnHeaders?this.headersToExportRows(this.generateColumnGroupHeaders()):[],s=this.bodyToExportRows(this.rowLookup(o));return n.concat(s)},R.prototype.genereateTable=function(e,t,o,i){var n=this.generateExportList(e,t,o,i);return this.genereateTableElement(n)},R.prototype.rowLookup=function(e){var t=this,o=[];if("function"==typeof e)e.call(this.table).forEach(function(e){(e=t.table.rowManager.findRow(e))&&o.push(e)});else switch(e){case!0:case"visible":o=this.table.rowManager.getVisibleRows(!0);break;case"all":o=this.table.rowManager.rows;break;case"selected":o=this.table.modules.selectRow.selectedRows;break;case"active":default:o=this.table.rowManager.getDisplayRows()}return Object.assign([],o)},R.prototype.generateColumnGroupHeaders=function(){var e=this,t=[];return(!1!==this.config.columnGroups?this.table.columnManager.columns:this.table.columnManager.columnsByIndex).forEach(function(o){var i=e.processColumnGroup(o);i&&t.push(i)}),t},R.prototype.processColumnGroup=function(e){var t=this,o=e.columns,i=0,n=e.definition["title"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))]||e.definition.title,s={title:n,column:e,depth:1};if(o.length){if(s.subGroups=[],s.width=0,o.forEach(function(e){var o=t.processColumnGroup(e);o&&(s.width+=o.width,s.subGroups.push(o),o.depth>i&&(i=o.depth))}),s.depth+=i,!s.width)return!1}else{if(!this.columnVisCheck(e))return!1;s.width=1}return s},R.prototype.columnVisCheck=function(e){return!1!==e.definition[this.colVisProp]&&(e.visible||!e.visible&&e.definition[this.colVisProp])},R.prototype.headersToExportRows=function(e){function t(e,n){var s=i-n;if(void 0===o[n]&&(o[n]=[]),e.height=e.subGroups?1:s-e.depth+1,o[n].push(e),e.height>1)for(var r=1;r<e.height;r++)void 0===o[n+r]&&(o[n+r]=[]),o[n+r].push(!1);if(e.width>1)for(var a=1;a<e.width;a++)o[n].push(!1);e.subGroups&&e.subGroups.forEach(function(e){t(e,n+1)})}var o=[],i=0,n=[];return e.forEach(function(e){e.depth>i&&(i=e.depth)}),e.forEach(function(e){t(e,0)}),o.forEach(function(e){var t=[];e.forEach(function(e){e?t.push(new x(e.title,e.column.getComponent(),e.width,e.height,e.depth)):t.push(null)}),n.push(new C("header",t))}),n},R.prototype.bodyToExportRows=function(e){var t=this,o=[],i=[];return this.table.columnManager.columnsByIndex.forEach(function(e){t.columnVisCheck(e)&&o.push(e.getComponent())}),!1!==this.config.columnCalcs&&this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&e.unshift(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&e.push(this.table.modules.columnCalcs.botRow)),e=e.filter(function(e){switch(e.type){case"group":return!1!==t.config.rowGroups;case"calc":return!1!==t.config.columnCalcs;case"row":return!(t.table.options.dataTree&&!1===t.config.dataTree&&e.modules.dataTree.parent)}return!0}),e.forEach(function(e,n){var s=e.getData(t.colVisProp),r=[],a=0;switch(e.type){case"group":a=e.level,r.push(new x(e.key,e.getComponent(),o.length,1));break;case"calc":case"row":o.forEach(function(e){r.push(new x(e._column.getFieldValue(s),e,1,1))}),t.table.options.dataTree&&!1!==t.config.dataTree&&(a=e.modules.dataTree.index)}i.push(new C(e.type,r,e.getComponent(),a))}),i},R.prototype.genereateTableElement=function(e){var t=this,o=document.createElement("table"),i=document.createElement("thead"),n=document.createElement("tbody"),s=this.lookupTableStyles(),r=this.table.options["rowFormatter"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))],a={};return a.rowFormatter=null!==r?r:this.table.options.rowFormatter,this.table.options.dataTree&&!1!==this.config.dataTree&&this.table.modExists("columnCalcs")&&(a.treeElementField=this.table.modules.dataTree.elementField),a.groupHeader=this.table.options["groupHeader"+(this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1))],a.groupHeader&&!Array.isArray(a.groupHeader)&&(a.groupHeader=[a.groupHeader]),o.classList.add("tabulator-print-table"),this.mapElementStyles(this.table.columnManager.getHeadersElement(),i,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),e.length>1e3&&console.warn("It may take a long time to render an HTML table with more than 1000 rows"),e.forEach(function(e,o){switch(e.type){case"header":i.appendChild(t.genereateHeaderElement(e,a,s));break;case"group":n.appendChild(t.genereateGroupElement(e,a,s));break;case"calc":n.appendChild(t.genereateCalcElement(e,a,s));break;case"row":var r=t.genereateRowElement(e,a,s);t.mapElementStyles(o%2&&s.evenRow?s.evenRow:s.oddRow,r,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),n.appendChild(r)}}),i.innerHTML&&o.appendChild(i),o.appendChild(n),this.mapElementStyles(this.table.element,o,["border-top","border-left","border-right","border-bottom"]),o},R.prototype.lookupTableStyles=function(){var e={};return this.cloneTableStyle&&window.getComputedStyle&&(e.oddRow=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),e.evenRow=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),e.calcRow=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),e.firstRow=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),e.firstGroup=this.table.element.getElementsByClassName("tabulator-group")[0],e.firstRow&&(e.styleCells=e.firstRow.getElementsByClassName("tabulator-cell"),e.firstCell=e.styleCells[0],e.lastCell=e.styleCells[e.styleCells.length-1])),e},R.prototype.genereateHeaderElement=function(e,t,o){var i=this,n=document.createElement("tr");return e.columns.forEach(function(e){if(e){var t=document.createElement("th"),o=e.component._column.definition.cssClass?e.component._column.definition.cssClass.split(" "):[];t.colSpan=e.width,t.rowSpan=e.height,t.innerHTML=e.value,i.cloneTableStyle&&(t.style.boxSizing="border-box"),o.forEach(function(e){t.classList.add(e)}),i.mapElementStyles(e.component.getElement(),t,["text-align","border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),i.mapElementStyles(e.component._column.contentElement,t,["padding-top","padding-left","padding-right","padding-bottom"]),e.component._column.visible?i.mapElementStyles(e.component.getElement(),t,["width"]):e.component._column.definition.width&&(t.style.width=e.component._column.definition.width+"px"),e.component._column.parent&&i.mapElementStyles(e.component._column.parent.groupElement,t,["border-top"]),n.appendChild(t)}}),n},R.prototype.genereateGroupElement=function(e,t,o){var i=document.createElement("tr"),n=document.createElement("td"),s=e.columns[0];return i.classList.add("tabulator-print-table-row"),t.groupHeader&&t.groupHeader[e.indent]?s.value=t.groupHeader[e.indent](s.value,e.component._group.getRowCount(),e.component._group.getData(),e.component):!1===t.groupHeader?s.value=s.value:s.value=e.component._group.generator(s.value,e.component._group.getRowCount(),e.component._group.getData(),e.component),n.colSpan=s.width,n.innerHTML=s.value,i.classList.add("tabulator-print-table-group"),i.classList.add("tabulator-group-level-"+e.indent),s.component.getVisibility()&&i.classList.add("tabulator-group-visible"),this.mapElementStyles(o.firstGroup,i,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),this.mapElementStyles(o.firstGroup,n,["padding-top","padding-left","padding-right","padding-bottom"]),i.appendChild(n),i},R.prototype.genereateCalcElement=function(e,t,o){var i=this.genereateRowElement(e,t,o);return i.classList.add("tabulator-print-table-calcs"),this.mapElementStyles(o.calcRow,i,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),i},R.prototype.genereateRowElement=function(e,t,o){var n=this,s=document.createElement("tr");return s.classList.add("tabulator-print-table-row"),e.columns.forEach(function(r){if(r){var a=document.createElement("td"),l=r.component._column,c=r.value,u={modules:{},getValue:function(){return c},getField:function(){return l.definition.field},getElement:function(){return a},getColumn:function(){return l.getComponent()},getData:function(){return rowData},getRow:function(){return e.getComponent()},getComponent:function(){return u},column:l};if((l.definition.cssClass?l.definition.cssClass.split(" "):[]).forEach(function(e){a.classList.add(e)}),n.table.modExists("format")&&!1!==n.config.formatCells)c=n.table.modules.format.formatExportValue(u,n.colVisProp);else switch(void 0===c?"undefined":_typeof(c)){case"object":c=JSON.stringify(c);break;case"undefined":case"null":c="";break;default:c=c}if(c instanceof Node?a.appendChild(c):a.innerHTML=c,o.firstCell&&(n.mapElementStyles(o.firstCell,a,["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size"]),l.definition.align&&(a.style.textAlign=l.definition.align)),n.table.options.dataTree&&!1!==n.config.dataTree&&(t.treeElementField&&t.treeElementField==l.field||!t.treeElementField&&0==i)&&(e.component._row.modules.dataTree.controlEl&&a.insertBefore(e.component._row.modules.dataTree.controlEl.cloneNode(!0),a.firstChild),e.component._row.modules.dataTree.branchEl&&a.insertBefore(e.component._row.modules.dataTree.branchEl.cloneNode(!0),a.firstChild)),s.appendChild(a),u.modules.format&&u.modules.format.renderedCallback&&u.modules.format.renderedCallback(),t.rowFormatter&&!1!==n.config.formatCells){var d=e.getComponent();d.getElement=function(){return s},t.rowFormatter(d)}}}),s},R.prototype.genereateHTMLTable=function(e){var t=document.createElement("div");return t.appendChild(this.genereateTableElement(e)),t.innerHTML},R.prototype.getHtml=function(e,t,o,i){var n=this.generateExportList(o||this.table.options.htmlOutputConfig,t,e,i||"htmlOutput");return this.genereateHTMLTable(n)},R.prototype.mapElementStyles=function(e,t,o){if(this.cloneTableStyle&&e&&t){var i={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var n=window.getComputedStyle(e);o.forEach(function(e){t.style[i[e]]=n.getPropertyValue(e)})}}},d.prototype.registerModule("export",R);var M=function(e){this.table=e,this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1};M.prototype.initializeColumn=function(e,t){function o(t){var o,r="input"==e.modules.filter.tagType&&"text"==e.modules.filter.attrType||"textarea"==e.modules.filter.tagType?"partial":"match",a="",l="";if(void 0===e.modules.filter.prevSuccess||e.modules.filter.prevSuccess!==t){if(e.modules.filter.prevSuccess=t,e.modules.filter.emptyFunc(t))delete n.headerFilters[s];else{switch(e.modules.filter.value=t,_typeof(e.definition.headerFilterFunc)){case"string":n.filters[e.definition.headerFilterFunc]?(a=e.definition.headerFilterFunc,o=function(o){var i=e.definition.headerFilterFuncParams||{},s=e.getFieldValue(o);return i="function"==typeof i?i(t,s,o):i,n.filters[e.definition.headerFilterFunc](t,s,o,i)}):console.warn("Header Filter Error - Matching filter function not found: ",e.definition.headerFilterFunc);break;case"function":o=function(o){var i=e.definition.headerFilterFuncParams||{},n=e.getFieldValue(o);return i="function"==typeof i?i(t,n,o):i,e.definition.headerFilterFunc(t,n,o,i)},a=o}if(!o)switch(r){case"partial":o=function(o){var i=e.getFieldValue(o);return void 0!==i&&null!==i&&String(i).toLowerCase().indexOf(String(t).toLowerCase())>-1},a="like";break;default:o=function(o){return e.getFieldValue(o)==t},a="="}n.headerFilters[s]={value:t,func:o,type:a,params:i||{}}}l=JSON.stringify(n.headerFilters),n.prevHeaderFilterChangeCheck!==l&&(n.prevHeaderFilterChangeCheck=l,n.changed=!0,n.table.rowManager.filterRefresh())}return!0}var i,n=this,s=e.getField();e.modules.filter={success:o,attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(e)},M.prototype.generateHeaderFilterElement=function(e,t,o){function i(){}var n,s,r,a,l,c,u,d=this,h=this,p=e.modules.filter.success,m=e.getField();if(e.modules.filter.headerElement&&e.modules.filter.headerElement.parentNode&&e.contentElement.removeChild(e.modules.filter.headerElement.parentNode),m){switch(e.modules.filter.emptyFunc=e.definition.headerFilterEmptyCheck||function(e){return!e&&"0"!==e},n=document.createElement("div"),n.classList.add("tabulator-header-filter"),_typeof(e.definition.headerFilter)){case"string":h.table.modules.edit.editors[e.definition.headerFilter]?(s=h.table.modules.edit.editors[e.definition.headerFilter],"tick"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):console.warn("Filter Error - Cannot build header filter, No such editor found: ",e.definition.editor);break;case"function":s=e.definition.headerFilter;break;case"boolean":e.modules.edit&&e.modules.edit.editor?s=e.modules.edit.editor:e.definition.formatter&&h.table.modules.edit.editors[e.definition.formatter]?(s=h.table.modules.edit.editors[e.definition.formatter],"tick"!==e.definition.formatter&&"tickCross"!==e.definition.formatter||e.definition.headerFilterEmptyCheck||(e.modules.filter.emptyFunc=function(e){return!0!==e&&!1!==e})):s=h.table.modules.edit.editors.input}if(s){if(a={getValue:function(){return void 0!==t?t:""},getField:function(){return e.definition.field},getElement:function(){return n},getColumn:function(){return e.getComponent()},getRow:function(){return{normalizeHeight:function(){}}}},u=e.definition.headerFilterParams||{},u="function"==typeof u?u.call(h.table):u,!(r=s.call(this.table.modules.edit,a,function(){},p,i,u)))return void console.warn("Filter Error - Cannot add filter to "+m+" column, editor returned a value of false");if(!(r instanceof Node))return void console.warn("Filter Error - Cannot add filter to "+m+" column, editor should return an instance of Node, the editor returned:",r);m?h.table.modules.localize.bind("headerFilters|columns|"+e.definition.field,function(e){r.setAttribute("placeholder",void 0!==e&&e?e:h.table.modules.localize.getText("headerFilters|default"))}):h.table.modules.localize.bind("headerFilters|default",function(e){r.setAttribute("placeholder",void 0!==h.column.definition.headerFilterPlaceholder&&h.column.definition.headerFilterPlaceholder?h.column.definition.headerFilterPlaceholder:e)}),r.addEventListener("click",function(e){e.stopPropagation(),r.focus()}),r.addEventListener("focus",function(e){var t=d.table.columnManager.element.scrollLeft;t!==d.table.rowManager.element.scrollLeft&&(d.table.rowManager.scrollHorizontal(t),d.table.columnManager.scrollHorizontal(t))}),l=!1,c=function(e){l&&clearTimeout(l),l=setTimeout(function(){p(r.value)},h.table.options.headerFilterLiveFilterDelay)},e.modules.filter.headerElement=r,e.modules.filter.attrType=r.hasAttribute("type")?r.getAttribute("type").toLowerCase():"",e.modules.filter.tagType=r.tagName.toLowerCase(),!1!==e.definition.headerFilterLiveFilter&&("autocomplete"!==e.definition.headerFilter&&"tickCross"!==e.definition.headerFilter&&("autocomplete"!==e.definition.editor&&"tickCross"!==e.definition.editor||!0!==e.definition.headerFilter)&&(r.addEventListener("keyup",c),r.addEventListener("search",c),"number"==e.modules.filter.attrType&&r.addEventListener("change",function(e){p(r.value)}),"text"==e.modules.filter.attrType&&"ie"!==this.table.browser&&r.setAttribute("type","search")),"input"!=e.modules.filter.tagType&&"select"!=e.modules.filter.tagType&&"textarea"!=e.modules.filter.tagType||r.addEventListener("mousedown",function(e){e.stopPropagation()})),n.appendChild(r),e.contentElement.appendChild(n),o||h.headerFilterColumns.push(e)}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",e.definition.title)},M.prototype.hideHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="none")})},M.prototype.showHeaderFilterElements=function(){this.headerFilterColumns.forEach(function(e){e.modules.filter&&e.modules.filter.headerElement&&(e.modules.filter.headerElement.style.display="")})},M.prototype.setHeaderFilterFocus=function(e){e.modules.filter&&e.modules.filter.headerElement?e.modules.filter.headerElement.focus():console.warn("Column Filter Focus Error - No header filter set on column:",e.getField())},M.prototype.getHeaderFilterValue=function(e){if(e.modules.filter&&e.modules.filter.headerElement)return e.modules.filter.headerElement.value;console.warn("Column Filter Error - No header filter set on column:",e.getField())},M.prototype.setHeaderFilterValue=function(e,t){e&&(e.modules.filter&&e.modules.filter.headerElement?(this.generateHeaderFilterElement(e,t,!0),e.modules.filter.success(t)):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},M.prototype.reloadHeaderFilter=function(e){e&&(e.modules.filter&&e.modules.filter.headerElement?this.generateHeaderFilterElement(e,e.modules.filter.value,!0):console.warn("Column Filter Error - No header filter set on column:",e.getField()))},M.prototype.hasChanged=function(){var e=this.changed;return this.changed=!1,e},M.prototype.setFilter=function(e,t,o,i){var n=this;n.filterList=[],Array.isArray(e)||(e=[{field:e,type:t,value:o,params:i}]),n.addFilter(e)},M.prototype.addFilter=function(e,t,o,i){var n=this;Array.isArray(e)||(e=[{field:e,type:t,value:o,params:i}]),e.forEach(function(e){(e=n.findFilter(e))&&(n.filterList.push(e),n.changed=!0)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},M.prototype.findFilter=function(e){var t,o=this;if(Array.isArray(e))return this.findSubFilters(e);var i=!1;return"function"==typeof e.field?i=function(t){return e.field(t,e.type||{})}:o.filters[e.type]?(t=o.table.columnManager.getColumnByField(e.field),i=t?function(i){return o.filters[e.type](e.value,t.getFieldValue(i),i,e.params||{})}:function(t){return o.filters[e.type](e.value,t[e.field],t,e.params||{})}):console.warn("Filter Error - No such filter type found, ignoring: ",e.type),e.func=i,!!e.func&&e},M.prototype.findSubFilters=function(e){var t=this,o=[];return e.forEach(function(e){(e=t.findFilter(e))&&o.push(e)}),!!o.length&&o},M.prototype.getFilters=function(e,t){var o=[];return e&&(o=this.getHeaderFilters()),t&&o.forEach(function(e){"function"==typeof e.type&&(e.type="function")}),o=o.concat(this.filtersToArray(this.filterList,t))},M.prototype.filtersToArray=function(e,t){var o=this,i=[];return e.forEach(function(e){var n;Array.isArray(e)?i.push(o.filtersToArray(e,t)):(n={field:e.field,type:e.type,value:e.value},t&&"function"==typeof n.type&&(n.type="function"),i.push(n))}),i},M.prototype.getHeaderFilters=function(){var e=[];for(var t in this.headerFilters)e.push({field:t,type:this.headerFilters[t].type,value:this.headerFilters[t].value});return e},M.prototype.removeFilter=function(e,t,o){var i=this;Array.isArray(e)||(e=[{field:e,type:t,value:o}]),e.forEach(function(e){var t=-1;t="object"==_typeof(e.field)?i.filterList.findIndex(function(t){return e===t}):i.filterList.findIndex(function(t){return e.field===t.field&&e.type===t.type&&e.value===t.value}),t>-1?(i.filterList.splice(t,1),i.changed=!0):console.warn("Filter Error - No matching filter type found, ignoring: ",e.type)}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},M.prototype.clearFilter=function(e){this.filterList=[],e&&this.clearHeaderFilter(),this.changed=!0,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.filter&&this.table.modules.persistence.save("filter")},M.prototype.clearHeaderFilter=function(){var e=this;this.headerFilters={},e.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach(function(t){t.modules.filter.value=null,t.modules.filter.prevSuccess=void 0,e.reloadHeaderFilter(t)}),this.changed=!0},M.prototype.search=function(e,t,o,i){var n=this,s=[],r=[];return Array.isArray(t)||(t=[{field:t,type:o,value:i}]),t.forEach(function(e){(e=n.findFilter(e))&&r.push(e)}),this.table.rowManager.rows.forEach(function(t){var o=!0;r.forEach(function(e){n.filterRecurse(e,t.getData())||(o=!1)}),o&&s.push("data"===e?t.getData("data"):t.getComponent())}),s},M.prototype.filter=function(e,t){var o=this,i=[],n=[];return o.table.options.dataFiltering&&o.table.options.dataFiltering.call(o.table,o.getFilters()),o.table.options.ajaxFiltering||!o.filterList.length&&!Object.keys(o.headerFilters).length?i=e.slice(0):e.forEach(function(e){o.filterRow(e)&&i.push(e)}),o.table.options.dataFiltered&&(i.forEach(function(e){n.push(e.getComponent())}),o.table.options.dataFiltered.call(o.table,o.getFilters(),n)),i},M.prototype.filterRow=function(e,t){var o=this,i=!0,n=e.getData();o.filterList.forEach(function(e){o.filterRecurse(e,n)||(i=!1)});for(var s in o.headerFilters)o.headerFilters[s].func(n)||(i=!1);return i},M.prototype.filterRecurse=function(e,t){var o=this,i=!1;return Array.isArray(e)?e.forEach(function(e){o.filterRecurse(e,t)&&(i=!0)}):i=e.func(t),i},M.prototype.filters={"=":function(e,t,o,i){return t==e},"<":function(e,t,o,i){return t<e},"<=":function(e,t,o,i){return t<=e},">":function(e,t,o,i){return t>e},">=":function(e,t,o,i){return t>=e},"!=":function(e,t,o,i){return t!=e},regex:function(e,t,o,i){return"string"==typeof e&&(e=new RegExp(e)),e.test(t)},like:function(e,t,o,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().indexOf(e.toLowerCase())>-1},keywords:function(e,t,o,i){var n=e.toLowerCase().split(void 0===i.separator?" ":i.separator),s=String(null===t||void 0===t?"":t).toLowerCase(),r=[];return n.forEach(function(e){s.includes(e)&&r.push(!0)}),i.matchAll?r.length===n.length:!!r.length},starts:function(e,t,o,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().startsWith(e.toLowerCase())},ends:function(e,t,o,i){return null===e||void 0===e?t===e:void 0!==t&&null!==t&&String(t).toLowerCase().endsWith(e.toLowerCase())},in:function(e,t,o,i){return Array.isArray(e)?e.indexOf(t)>-1:(console.warn("Filter Error - filter value is not an array:",e),!1)}},d.prototype.registerModule("filter",M);var L=function(e){this.table=e};L.prototype.initializeColumn=function(e){e.modules.format=this.lookupFormatter(e,""),void 0!==e.definition.formatterPrint&&(e.modules.format.print=this.lookupFormatter(e,"Print")),void 0!==e.definition.formatterClipboard&&(e.modules.format.clipboard=this.lookupFormatter(e,"Clipboard")),void 0!==e.definition.formatterHtmlOutput&&(e.modules.format.htmlOutput=this.lookupFormatter(e,"HtmlOutput"))},L.prototype.lookupFormatter=function(e,t){var o={params:e.definition["formatter"+t+"Params"]||{}},i=e.definition["formatter"+t];switch(void 0===i?"undefined":_typeof(i)){case"string":"tick"===i&&(i="tickCross",void 0===o.params.crossElement&&(o.params.crossElement=!1),console.warn("DEPRECATION WARNING - the tick formatter has been deprecated, please use the tickCross formatter with the crossElement param set to false")),this.formatters[i]?o.formatter=this.formatters[i]:(console.warn("Formatter Error - No such formatter found: ",i),o.formatter=this.formatters.plaintext);break;case"function":o.formatter=i;break;default:o.formatter=this.formatters.plaintext}return o},L.prototype.cellRendered=function(e){e.modules.format&&e.modules.format.renderedCallback&&e.modules.format.renderedCallback()},L.prototype.formatValue=function(e){function t(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t}var o=e.getComponent(),i="function"==typeof e.column.modules.format.params?e.column.modules.format.params(o):e.column.modules.format.params;return e.column.modules.format.formatter.call(this,o,i,t)},L.prototype.formatExportValue=function(e,t){var o,i=e.column.modules.format[t];if(i){var n=function(t){e.modules.format||(e.modules.format={}),e.modules.format.renderedCallback=t};return o="function"==typeof i.params?i.params(component):i.params,i.formatter.call(this,e.getComponent(),o,n)}return this.formatValue(e)},L.prototype.sanitizeHTML=function(e){if(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(e).replace(/[&<>"'`=\/]/g,function(e){return t[e]})}return e},L.prototype.emptyToSpace=function(e){return null===e||void 0===e||""===e?" ":e},L.prototype.getFormatter=function(e){var e;switch(void 0===e?"undefined":_typeof(e)){case"string":this.formatters[e]?e=this.formatters[e]:(console.warn("Formatter Error - No such formatter found: ",e),e=this.formatters.plaintext);break;case"function":e=e;break;default:e=this.formatters.plaintext}return e},L.prototype.formatters={plaintext:function(e,t,o){return this.emptyToSpace(this.sanitizeHTML(e.getValue()))},html:function(e,t,o){return e.getValue()},textarea:function(e,t,o){return e.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(e.getValue()))},money:function(e,t,o){var i,n,s,r,a=parseFloat(e.getValue()),l=t.decimal||".",c=t.thousand||",",u=t.symbol||"",d=!!t.symbolAfter,h=void 0!==t.precision?t.precision:2;if(isNaN(a))return this.emptyToSpace(this.sanitizeHTML(e.getValue()));for(i=!1!==h?a.toFixed(h):a,i=String(i).split("."),n=i[0],s=i.length>1?l+i[1]:"",r=/(\d+)(\d{3})/;r.test(n);)n=n.replace(r,"$1"+c+"$2");return d?n+s+u:u+n+s},link:function(e,t,o){var i,n=e.getValue(),s=t.urlPrefix||"",r=t.download,a=n,l=document.createElement("a");if(t.labelField&&(i=e.getData(),a=i[t.labelField]),t.label)switch(_typeof(t.label)){case"string":a=t.label;break;case"function":a=t.label(e)}if(a){if(t.urlField&&(i=e.getData(),n=i[t.urlField]),t.url)switch(_typeof(t.url)){case"string":n=t.url;break;case"function":n=t.url(e)}return l.setAttribute("href",s+n),t.target&&l.setAttribute("target",t.target),t.download&&(r="function"==typeof r?r(e):!0===r?"":r,l.setAttribute("download",r)),l.innerHTML=this.emptyToSpace(this.sanitizeHTML(a)),l}return" "},image:function(e,t,o){var i=document.createElement("img");switch(i.setAttribute("src",e.getValue()),_typeof(t.height)){case"number":i.style.height=t.height+"px";break;case"string":i.style.height=t.height}switch(_typeof(t.width)){case"number":i.style.width=t.width+"px";break;case"string":i.style.width=t.width}return i.addEventListener("load",function(){e.getRow().normalizeHeight()}),i},tickCross:function(e,t,o){var i=e.getValue(),n=e.getElement(),s=t.allowEmpty,r=t.allowTruthy,a=void 0!==t.tickElement?t.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',l=void 0!==t.crossElement?t.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';return r&&i||!0===i||"true"===i||"True"===i||1===i||"1"===i?(n.setAttribute("aria-checked",!0),a||""):!s||"null"!==i&&""!==i&&null!==i&&void 0!==i?(n.setAttribute("aria-checked",!1),l||""):(n.setAttribute("aria-checked","mixed"),"")},datetime:function(e,t,o){var i=t.inputFormat||"YYYY-MM-DD hh:mm:ss",n=t.outputFormat||"DD/MM/YYYY hh:mm:ss",s=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",r=e.getValue(),a=moment(r,i);return a.isValid()?t.timezone?a.tz(t.timezone).format(n):a.format(n):!0===s?r:"function"==typeof s?s(r):s},datetimediff:function(e,t,o){
-var i=t.inputFormat||"YYYY-MM-DD hh:mm:ss",n=void 0!==t.invalidPlaceholder?t.invalidPlaceholder:"",s=void 0!==t.suffix&&t.suffix,r=void 0!==t.unit?t.unit:void 0,a=void 0!==t.humanize&&t.humanize,l=void 0!==t.date?t.date:moment(),c=e.getValue(),u=moment(c,i);return u.isValid()?a?moment.duration(u.diff(l)).humanize(s):u.diff(l,r)+(s?" "+s:""):!0===n?c:"function"==typeof n?n(c):n},lookup:function(e,t,o){var i=e.getValue();return void 0===t[i]?(console.warn("Missing display value for "+i),i):t[i]},star:function(e,t,o){var i=e.getValue(),n=e.getElement(),s=t&&t.stars?t.stars:5,r=document.createElement("span"),a=document.createElementNS("http://www.w3.org/2000/svg","svg");r.style.verticalAlign="middle",a.setAttribute("width","14"),a.setAttribute("height","14"),a.setAttribute("viewBox","0 0 512 512"),a.setAttribute("xml:space","preserve"),a.style.padding="0 1px",i=i&&!isNaN(i)?parseInt(i):0,i=Math.max(0,Math.min(i,s));for(var l=1;l<=s;l++){var c=a.cloneNode(!0);c.innerHTML=l<=i?'<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>':'<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',r.appendChild(c)}return n.style.whiteSpace="nowrap",n.style.overflow="hidden",n.style.textOverflow="ellipsis",n.setAttribute("aria-label",i),r},traffic:function(e,t,o){var i,n,s=this.sanitizeHTML(e.getValue())||0,r=document.createElement("span"),a=t&&t.max?t.max:100,l=t&&t.min?t.min:0,c=t&&void 0!==t.color?t.color:["red","orange","green"],u="#666666";if(!isNaN(s)&&void 0!==e.getValue()){switch(r.classList.add("tabulator-traffic-light"),n=parseFloat(s)<=a?parseFloat(s):a,n=parseFloat(n)>=l?parseFloat(n):l,i=(a-l)/100,n=Math.round((n-l)/i),void 0===c?"undefined":_typeof(c)){case"string":u=c;break;case"function":u=c(s);break;case"object":if(Array.isArray(c)){var d=100/c.length,h=Math.floor(n/d);h=Math.min(h,c.length-1),h=Math.max(h,0),u=c[h];break}}return r.style.backgroundColor=u,r}},progress:function(e,t,o){var i,n,s,r,a,c=this.sanitizeHTML(e.getValue())||0,u=e.getElement(),d=t&&t.max?t.max:100,h=t&&t.min?t.min:0,p=t&&t.legendAlign?t.legendAlign:"center";switch(n=parseFloat(c)<=d?parseFloat(c):d,n=parseFloat(n)>=h?parseFloat(n):h,i=(d-h)/100,n=Math.round((n-h)/i),_typeof(t.color)){case"string":s=t.color;break;case"function":s=t.color(c);break;case"object":if(Array.isArray(t.color)){var m=100/t.color.length,f=Math.floor(n/m);f=Math.min(f,t.color.length-1),f=Math.max(f,0),s=t.color[f];break}default:s="#2DC214"}switch(_typeof(t.legend)){case"string":r=t.legend;break;case"function":r=t.legend(c);break;case"boolean":r=c;break;default:r=!1}switch(_typeof(t.legendColor)){case"string":a=t.legendColor;break;case"function":a=t.legendColor(c);break;case"object":if(Array.isArray(t.legendColor)){var m=100/t.legendColor.length,f=Math.floor(n/m);f=Math.min(f,t.legendColor.length-1),f=Math.max(f,0),a=t.legendColor[f]}break;default:a="#000"}u.style.minWidth="30px",u.style.position="relative",u.setAttribute("aria-label",n);var g=document.createElement("div");if(g.style.display="inline-block",g.style.position="relative",g.style.width=n+"%",g.style.backgroundColor=s,g.style.height="100%",g.setAttribute("data-max",d),g.setAttribute("data-min",h),r){var b=document.createElement("div");b.style.position="absolute",b.style.top="4px",b.style.left=0,b.style.textAlign=p,b.style.width="100%",b.style.color=a,b.innerHTML=r}return o(function(){if(!(e instanceof l)){var t=document.createElement("div");t.style.position="absolute",t.style.top="4px",t.style.bottom="4px",t.style.left="4px",t.style.right="4px",u.appendChild(t),u=t}u.appendChild(g),r&&u.appendChild(b)}),""},color:function(e,t,o){return e.getElement().style.backgroundColor=this.sanitizeHTML(e.getValue()),""},buttonTick:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'},buttonCross:function(e,t,o){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'},rownum:function(e,t,o){return this.table.rowManager.activeRows.indexOf(e.getRow()._getSelf())+1},handle:function(e,t,o){return e.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"},responsiveCollapse:function(e,t,o){function i(e){var t=s.element;s.open=e,t&&(s.open?(n.classList.add("open"),t.style.display=""):(n.classList.remove("open"),t.style.display="none"))}var n=document.createElement("div"),s=e.getRow()._row.modules.responsiveLayout;return n.classList.add("tabulator-responsive-collapse-toggle"),n.innerHTML="<span class='tabulator-responsive-collapse-toggle-open'>+</span><span class='tabulator-responsive-collapse-toggle-close'>-</span>",e.getElement().classList.add("tabulator-row-handle"),n.addEventListener("click",function(e){e.stopImmediatePropagation(),i(!s.open)}),i(s.open),n},rowSelection:function(e){var t=this,o=document.createElement("input");if(o.type="checkbox",this.table.modExists("selectRow",!0))if(o.addEventListener("click",function(e){e.stopPropagation()}),"function"==typeof e.getRow){var i=e.getRow();o.addEventListener("change",function(e){i.toggleSelect()}),o.checked=i.isSelected(),this.table.modules.selectRow.registerRowSelectCheckbox(i,o)}else o.addEventListener("change",function(e){t.table.modules.selectRow.selectedRows.length?t.table.deselectRow():t.table.selectRow()}),this.table.modules.selectRow.registerHeaderSelectCheckbox(o);return o}},d.prototype.registerModule("format",L);var T=function(e){this.table=e,this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightPadding=0,this.initializationMode="left",this.active=!1,this.scrollEndTimer=!1};T.prototype.reset=function(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.leftMargin=0,this.rightMargin=0,this.rightMargin=0,this.active=!1,this.table.columnManager.headersElement.style.marginLeft=0,this.table.columnManager.element.style.paddingRight=0},T.prototype.initializeColumn=function(e){var t={margin:0,edge:!1};e.isGroup||(this.frozenCheck(e)?(t.position=this.initializationMode,"left"==this.initializationMode?this.leftColumns.push(e):this.rightColumns.unshift(e),this.active=!0,e.modules.frozen=t):this.initializationMode="right")},T.prototype.frozenCheck=function(e){return e.parent.isGroup&&e.definition.frozen&&console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups"),e.parent.isGroup?this.frozenCheck(e.parent):e.definition.frozen},T.prototype.scrollHorizontal=function(){var e,t=this;this.active&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=setTimeout(function(){t.layout()},100),e=this.table.rowManager.getVisibleRows(),this.calcMargins(),this.layoutColumnPosition(),this.layoutCalcRows(),e.forEach(function(e){"row"===e.type&&t.layoutRow(e)}),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},T.prototype.calcMargins=function(){this.leftMargin=this._calcSpace(this.leftColumns,this.leftColumns.length)+"px",this.table.columnManager.headersElement.style.marginLeft=this.leftMargin,this.rightMargin=this._calcSpace(this.rightColumns,this.rightColumns.length)+"px",this.table.columnManager.element.style.paddingRight=this.rightMargin,this.rightPadding=this.table.rowManager.element.clientWidth+this.table.columnManager.scrollLeft},T.prototype.layoutCalcRows=function(){this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow&&this.layoutRow(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow&&this.layoutRow(this.table.modules.columnCalcs.botRow))},T.prototype.layoutColumnPosition=function(e){var t=this,o=[];this.leftColumns.forEach(function(i,n){if(i.modules.frozen.margin=t._calcSpace(t.leftColumns,n)+t.table.columnManager.scrollLeft+"px",n==t.leftColumns.length-1?i.modules.frozen.edge=!0:i.modules.frozen.edge=!1,i.parent.isGroup){var s=t.getColGroupParentElement(i);o.includes(s)||(t.layoutElement(s,i),o.push(s)),i.modules.frozen.edge&&s.classList.add("tabulator-frozen-"+i.modules.frozen.position)}else t.layoutElement(i.getElement(),i);e&&i.cells.forEach(function(e){t.layoutElement(e.getElement(),i)})}),this.rightColumns.forEach(function(o,i){o.modules.frozen.margin=t.rightPadding-t._calcSpace(t.rightColumns,i+1)+"px",i==t.rightColumns.length-1?o.modules.frozen.edge=!0:o.modules.frozen.edge=!1,o.parent.isGroup?t.layoutElement(t.getColGroupParentElement(o),o):t.layoutElement(o.getElement(),o),e&&o.cells.forEach(function(e){t.layoutElement(e.getElement(),o)})})},T.prototype.getColGroupParentElement=function(e){return e.parent.isGroup?this.getColGroupParentElement(e.parent):e.getElement()},T.prototype.layout=function(){var e=this;e.active&&(this.calcMargins(),e.table.rowManager.getDisplayRows().forEach(function(t){"row"===t.type&&e.layoutRow(t)}),this.layoutCalcRows(),this.layoutColumnPosition(!0),this.table.rowManager.tableElement.style.marginRight=this.rightMargin)},T.prototype.layoutRow=function(e){var t=this;e.getElement().style.paddingLeft=this.leftMargin,this.leftColumns.forEach(function(o){var i=e.getCell(o);i&&t.layoutElement(i.getElement(),o)}),this.rightColumns.forEach(function(o){var i=e.getCell(o);i&&t.layoutElement(i.getElement(),o)})},T.prototype.layoutElement=function(e,t){t.modules.frozen&&(e.style.position="absolute",e.style.left=t.modules.frozen.margin,e.classList.add("tabulator-frozen"),t.modules.frozen.edge&&e.classList.add("tabulator-frozen-"+t.modules.frozen.position))},T.prototype._calcSpace=function(e,t){for(var o=0,i=0;i<t;i++)e[i].visible&&(o+=e[i].getWidth());return o},d.prototype.registerModule("frozenColumns",T);var D=function(e){this.table=e,this.topElement=document.createElement("div"),this.rows=[],this.displayIndex=0};D.prototype.initialize=function(){this.rows=[],this.topElement.classList.add("tabulator-frozen-rows-holder"),this.table.columnManager.getElement().insertBefore(this.topElement,this.table.columnManager.headersElement.nextSibling)},D.prototype.setDisplayIndex=function(e){this.displayIndex=e},D.prototype.getDisplayIndex=function(){return this.displayIndex},D.prototype.isFrozen=function(){return!!this.rows.length},D.prototype.getRows=function(e){var t=e.slice(0);return this.rows.forEach(function(e){var o=t.indexOf(e);o>-1&&t.splice(o,1)}),t},D.prototype.freezeRow=function(e){e.modules.frozen?console.warn("Freeze Error - Row is already frozen"):(e.modules.frozen=!0,this.topElement.appendChild(e.getElement()),e.initialize(),e.normalizeHeight(),this.table.rowManager.adjustTableSize(),this.rows.push(e),this.table.rowManager.refreshActiveData("display"),this.styleRows())},D.prototype.unfreezeRow=function(e){var t=this.rows.indexOf(e);if(e.modules.frozen){e.modules.frozen=!1;var o=e.getElement();o.parentNode.removeChild(o),this.table.rowManager.adjustTableSize(),this.rows.splice(t,1),this.table.rowManager.refreshActiveData("display"),this.rows.length&&this.styleRows()}else console.warn("Freeze Error - Row is already unfrozen")},D.prototype.styleRows=function(e){var t=this;this.rows.forEach(function(e,o){t.table.rowManager.styleRow(e,o)})},d.prototype.registerModule("frozenRows",D);var k=function(e){this._group=e,this.type="GroupComponent"};k.prototype.getKey=function(){return this._group.key},k.prototype.getField=function(){return this._group.field},k.prototype.getElement=function(){return this._group.element},k.prototype.getRows=function(){return this._group.getRows(!0)},k.prototype.getSubGroups=function(){return this._group.getSubGroups(!0)},k.prototype.getParentGroup=function(){return!!this._group.parent&&this._group.parent.getComponent()},k.prototype.getVisibility=function(){return console.warn("getVisibility function is deprecated, you should now use the isVisible function"),this._group.visible},k.prototype.isVisible=function(){return this._group.visible},k.prototype.show=function(){this._group.show()},k.prototype.hide=function(){this._group.hide()},k.prototype.toggle=function(){this._group.toggleVisibility()},k.prototype._getSelf=function(){return this._group},k.prototype.getTable=function(){return this._group.groupManager.table};var S=function(e,t,o,i,n,s,r){this.groupManager=e,this.parent=t,this.key=i,this.level=o,this.field=n,this.hasSubGroups=o<e.groupIDLookups.length-1,this.addRow=this.hasSubGroups?this._addRowToGroup:this._addRow,this.type="group",this.old=r,this.rows=[],this.groups=[],this.groupList=[],this.generator=s,this.elementContents=!1,this.height=0,this.outerHeight=0,this.initialized=!1,this.calcs={},this.initialized=!1,this.modules={},this.arrowElement=!1,this.visible=r?r.visible:void 0!==e.startOpen[o]?e.startOpen[o]:e.startOpen[0],this.component=null,this.createElements(),this.addBindings(),this.createValueGroups()};S.prototype.wipe=function(){this.groupList.length?this.groupList.forEach(function(e){e.wipe()}):(this.element=!1,this.arrowElement=!1,this.elementContents=!1)},S.prototype.createElements=function(){var e=document.createElement("div");e.classList.add("tabulator-arrow"),this.element=document.createElement("div"),this.element.classList.add("tabulator-row"),this.element.classList.add("tabulator-group"),this.element.classList.add("tabulator-group-level-"+this.level),this.element.setAttribute("role","rowgroup"),this.arrowElement=document.createElement("div"),this.arrowElement.classList.add("tabulator-group-toggle"),this.arrowElement.appendChild(e),!1!==this.groupManager.table.options.movableRows&&this.groupManager.table.modExists("moveRow")&&this.groupManager.table.modules.moveRow.initializeGroupHeader(this)},S.prototype.createValueGroups=function(){var e=this,t=this.level+1;this.groupManager.allowedValues&&this.groupManager.allowedValues[t]&&this.groupManager.allowedValues[t].forEach(function(o){e._createGroup(o,t)})},S.prototype.addBindings=function(){var e,t,o,i,n=this;n.groupManager.table.options.groupClick&&n.element.addEventListener("click",function(e){n.groupManager.table.options.groupClick.call(n.groupManager.table,e,n.getComponent())}),n.groupManager.table.options.groupDblClick&&n.element.addEventListener("dblclick",function(e){n.groupManager.table.options.groupDblClick.call(n.groupManager.table,e,n.getComponent())}),n.groupManager.table.options.groupContext&&n.element.addEventListener("contextmenu",function(e){n.groupManager.table.options.groupContext.call(n.groupManager.table,e,n.getComponent())}),n.groupManager.table.options.groupContextMenu&&n.groupManager.table.modExists("menu")&&n.groupManager.table.modules.menu.initializeGroup.call(n.groupManager.table.modules.menu,n),n.groupManager.table.options.groupTap&&(o=!1,n.element.addEventListener("touchstart",function(e){o=!0},{passive:!0}),n.element.addEventListener("touchend",function(e){o&&n.groupManager.table.options.groupTap(e,n.getComponent()),o=!1})),n.groupManager.table.options.groupDblTap&&(e=null,n.element.addEventListener("touchend",function(t){e?(clearTimeout(e),e=null,n.groupManager.table.options.groupDblTap(t,n.getComponent())):e=setTimeout(function(){clearTimeout(e),e=null},300)})),n.groupManager.table.options.groupTapHold&&(t=null,n.element.addEventListener("touchstart",function(e){clearTimeout(t),t=setTimeout(function(){clearTimeout(t),t=null,o=!1,n.groupManager.table.options.groupTapHold(e,n.getComponent())},1e3)},{passive:!0}),n.element.addEventListener("touchend",function(e){clearTimeout(t),t=null})),n.groupManager.table.options.groupToggleElement&&(i="arrow"==n.groupManager.table.options.groupToggleElement?n.arrowElement:n.element,i.addEventListener("click",function(e){e.stopPropagation(),e.stopImmediatePropagation(),n.toggleVisibility()}))},S.prototype._createGroup=function(e,t){var o=t+"_"+e,i=new S(this.groupManager,this,t,e,this.groupManager.groupIDLookups[t].field,this.groupManager.headerGenerator[t]||this.groupManager.headerGenerator[0],!!this.old&&this.old.groups[o]);this.groups[o]=i,this.groupList.push(i)},S.prototype._addRowToGroup=function(e){var t=this.level+1;if(this.hasSubGroups){var o=this.groupManager.groupIDLookups[t].func(e.getData()),i=t+"_"+o;this.groupManager.allowedValues&&this.groupManager.allowedValues[t]?this.groups[i]&&this.groups[i].addRow(e):(this.groups[i]||this._createGroup(o,t),this.groups[i].addRow(e))}},S.prototype._addRow=function(e){this.rows.push(e),e.modules.group=this},S.prototype.insertRow=function(e,t,o){var i=this.conformRowData({});e.updateData(i);var n=this.rows.indexOf(t);n>-1?o?this.rows.splice(n+1,0,e):this.rows.splice(n,0,e):o?this.rows.push(e):this.rows.unshift(e),e.modules.group=this,this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this),this.groupManager.updateGroupRows(!0)},S.prototype.scrollHeader=function(e){this.arrowElement.style.marginLeft=e,this.groupList.forEach(function(t){t.scrollHeader(e)})},S.prototype.getRowIndex=function(e){},S.prototype.conformRowData=function(e){return this.field?e[this.field]=this.key:console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"),this.parent&&(e=this.parent.conformRowData(e)),e},S.prototype.removeRow=function(e){var t=this.rows.indexOf(e),o=e.getElement();t>-1&&this.rows.splice(t,1),this.groupManager.table.options.groupValues||this.rows.length?(o.parentNode&&o.parentNode.removeChild(o),this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this)):(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this),this.groupManager.updateGroupRows(!0))},S.prototype.removeGroup=function(e){var t,o=e.level+"_"+e.key;this.groups[o]&&(delete this.groups[o],t=this.groupList.indexOf(e),t>-1&&this.groupList.splice(t,1),this.groupList.length||(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this)))},S.prototype.getHeadersAndRows=function(e){var t=[];return t.push(this),this._visSet(),this.visible?this.groupList.length?this.groupList.forEach(function(o){t=t.concat(o.getHeadersAndRows(e))}):(!e&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),t.push(this.calcs.top)),t=t.concat(this.rows),!e&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),t.push(this.calcs.bottom))):this.groupList.length||"table"==this.groupManager.table.options.columnCalcs||this.groupManager.table.modExists("columnCalcs")&&(!e&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),t.push(this.calcs.top))),!e&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),t.push(this.calcs.bottom)))),t},S.prototype.getData=function(e,t){var o=[];return this._visSet(),(!e||e&&this.visible)&&this.rows.forEach(function(e){o.push(e.getData(t||"data"))}),o},S.prototype.getRowCount=function(){var e=0;return this.groupList.length?this.groupList.forEach(function(t){e+=t.getRowCount()}):e=this.rows.length,e},S.prototype.toggleVisibility=function(){this.visible?this.hide():this.show()},S.prototype.hide=function(){this.visible=!1,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination?this.groupManager.updateGroupRows(!0):(this.element.classList.remove("tabulator-group-visible"),this.groupList.length?this.groupList.forEach(function(e){e.getHeadersAndRows().forEach(function(e){e.detachElement()})}):this.rows.forEach(function(e){var t=e.getElement();t.parentNode.removeChild(t)}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()),this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!1)},S.prototype.show=function(){var e=this;if(e.visible=!0,"classic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination)this.groupManager.updateGroupRows(!0);else{this.element.classList.add("tabulator-group-visible");var t=e.getElement();this.groupList.length?this.groupList.forEach(function(e){e.getHeadersAndRows().forEach(function(e){var o=e.getElement();t.parentNode.insertBefore(o,t.nextSibling),e.initialize(),t=o})}):e.rows.forEach(function(e){var o=e.getElement();t.parentNode.insertBefore(o,t.nextSibling),e.initialize(),t=o}),this.groupManager.table.rowManager.setDisplayRows(this.groupManager.updateGroupRows(),this.groupManager.getDisplayIndex()),this.groupManager.table.rowManager.checkClassicModeGroupHeaderWidth()}this.groupManager.table.options.groupVisibilityChanged.call(this.table,this.getComponent(),!0)},S.prototype._visSet=function(){var e=[];"function"==typeof this.visible&&(this.rows.forEach(function(t){e.push(t.getData())}),this.visible=this.visible(this.key,this.getRowCount(),e,this.getComponent()))},S.prototype.getRowGroup=function(e){var t=!1;return this.groupList.length?this.groupList.forEach(function(o){var i=o.getRowGroup(e);i&&(t=i)}):this.rows.find(function(t){return t===e})&&(t=this),t},S.prototype.getSubGroups=function(e){var t=[];return this.groupList.forEach(function(o){t.push(e?o.getComponent():o)}),t},S.prototype.getRows=function(e){var t=[];return this.rows.forEach(function(o){t.push(e?o.getComponent():o)}),t},S.prototype.generateGroupHeaderContents=function(){var e=[];for(this.rows.forEach(function(t){e.push(t.getData())}),this.elementContents=this.generator(this.key,this.getRowCount(),e,this.getComponent());this.element.firstChild;)this.element.removeChild(this.element.firstChild);"string"==typeof this.elementContents?this.element.innerHTML=this.elementContents:this.element.appendChild(this.elementContents),this.element.insertBefore(this.arrowElement,this.element.firstChild)},S.prototype.getElement=function(){this.addBindingsd=!1,this._visSet(),this.visible?this.element.classList.add("tabulator-group-visible"):this.element.classList.remove("tabulator-group-visible");for(var e=0;e<this.element.childNodes.length;++e)this.element.childNodes[e].parentNode.removeChild(this.element.childNodes[e]);return this.generateGroupHeaderContents(),this.element},S.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},S.prototype.normalizeHeight=function(){this.setHeight(this.element.clientHeight)},S.prototype.initialize=function(e){this.initialized&&!e||(this.normalizeHeight(),this.initialized=!0)},S.prototype.reinitialize=function(){this.initialized=!1,this.height=0,d.prototype.helpers.elVisible(this.element)&&this.initialize(!0)},S.prototype.setHeight=function(e){this.height!=e&&(this.height=e,this.outerHeight=this.element.offsetHeight)},S.prototype.getHeight=function(){return this.outerHeight},S.prototype.getGroup=function(){return this},S.prototype.reinitializeHeight=function(){},S.prototype.calcHeight=function(){},S.prototype.setCellHeight=function(){},S.prototype.clearCellHeight=function(){},S.prototype.getComponent=function(){return this.component||(this.component=new k(this)),this.component};var H=function(e){this.table=e,this.groupIDLookups=!1,this.startOpen=[function(){return!1}],this.headerGenerator=[function(){return""}],this.groupList=[],this.allowedValues=!1,this.groups={},this.displayIndex=0};H.prototype.initialize=function(){var e=this,t=e.table.options.groupBy,o=e.table.options.groupStartOpen,i=e.table.options.groupHeader;if(this.allowedValues=e.table.options.groupValues,Array.isArray(t)&&Array.isArray(i)&&t.length>i.length&&console.warn("Error creating group headers, groupHeader array is shorter than groupBy array"),e.headerGenerator=[function(){return""}],this.startOpen=[function(){return!1}],e.table.modules.localize.bind("groups|item",function(t,o){e.headerGenerator[0]=function(e,i,n){return(void 0===e?"":e)+"<span>("+i+" "+(1===i?t:o.groups.items)+")</span>"}}),this.groupIDLookups=[],Array.isArray(t)||t)this.table.modExists("columnCalcs")&&"table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.removeCalcs();else if(this.table.modExists("columnCalcs")&&"group"!=this.table.options.columnCalcs){var n=this.table.columnManager.getRealColumns();n.forEach(function(t){t.definition.topCalc&&e.table.modules.columnCalcs.initializeTopRow(),t.definition.bottomCalc&&e.table.modules.columnCalcs.initializeBottomRow()})}Array.isArray(t)||(t=[t]),t.forEach(function(t,o){var i,n;"function"==typeof t?i=t:(n=e.table.columnManager.getColumnByField(t),i=n?function(e){return n.getFieldValue(e)}:function(e){return e[t]}),e.groupIDLookups.push({field:"function"!=typeof t&&t,func:i,values:!!e.allowedValues&&e.allowedValues[o]})}),o&&(Array.isArray(o)||(o=[o]),o.forEach(function(e){e="function"==typeof e?e:function(){return!0}}),e.startOpen=o),i&&(e.headerGenerator=Array.isArray(i)?i:[i]),this.initialized=!0},H.prototype.setDisplayIndex=function(e){this.displayIndex=e},H.prototype.getDisplayIndex=function(){return this.displayIndex},H.prototype.getRows=function(e){return this.groupIDLookups.length?(this.table.options.dataGrouping.call(this.table),this.generateGroups(e),this.table.options.dataGrouped&&this.table.options.dataGrouped.call(this.table,this.getGroups(!0)),this.updateGroupRows()):e.slice(0)},H.prototype.getGroups=function(e){var t=[];return this.groupList.forEach(function(o){t.push(e?o.getComponent():o)}),t},H.prototype.getChildGroups=function(e){var t=this,o=[];return e||(e=this),e.groupList.forEach(function(e){e.groupList.length?o=o.concat(t.getChildGroups(e)):o.push(e)}),o},H.prototype.wipe=function(){this.groupList.forEach(function(e){e.wipe()})},H.prototype.pullGroupListData=function(e){var t=this,o=[];return e.forEach(function(e){var i={};i.level=0,i.rowCount=0,i.headerContent="";var n=[];e.hasSubGroups?(n=t.pullGroupListData(e.groupList),i.level=e.level,i.rowCount=n.length-e.groupList.length,i.headerContent=e.generator(e.key,i.rowCount,e.rows,e),o.push(i),o=o.concat(n)):(i.level=e.level,i.headerContent=e.generator(e.key,e.rows.length,e.rows,e),i.rowCount=e.getRows().length,o.push(i),e.getRows().forEach(function(e){o.push(e.getData("data"))}))}),o},H.prototype.getGroupedData=function(){return this.pullGroupListData(this.groupList)},H.prototype.getRowGroup=function(e){var t=!1;return this.groupList.forEach(function(o){var i=o.getRowGroup(e);i&&(t=i)}),t},H.prototype.countGroups=function(){return this.groupList.length},H.prototype.generateGroups=function(e){var t=this,o=t.groups;t.groups={},t.groupList=[],this.allowedValues&&this.allowedValues[0]?(this.allowedValues[0].forEach(function(e){t.createGroup(e,0,o)}),e.forEach(function(e){t.assignRowToExistingGroup(e,o)})):e.forEach(function(e){t.assignRowToGroup(e,o)})},H.prototype.createGroup=function(e,t,o){var i,n=t+"_"+e;o=o||[],i=new S(this,!1,t,e,this.groupIDLookups[0].field,this.headerGenerator[0],o[n]),this.groups[n]=i,this.groupList.push(i)},H.prototype.assignRowToExistingGroup=function(e,t){var o=this.groupIDLookups[0].func(e.getData()),i="0_"+o;this.groups[i]&&this.groups[i].addRow(e)},H.prototype.assignRowToGroup=function(e,t){var o=this.groupIDLookups[0].func(e.getData()),i=!this.groups["0_"+o];return i&&this.createGroup(o,0,t),this.groups["0_"+o].addRow(e),!i},H.prototype.updateGroupRows=function(e){var t=this,o=[];if(t.groupList.forEach(function(e){o=o.concat(e.getHeadersAndRows())}),e){var i=t.table.rowManager.setDisplayRows(o,this.getDisplayIndex());!0!==i&&this.setDisplayIndex(i),t.table.rowManager.refreshActiveData("group",!0,!0)}return o},H.prototype.scrollHeaders=function(e){e+="px",this.groupList.forEach(function(t){t.scrollHeader(e)})},H.prototype.removeGroup=function(e){var t,o=e.level+"_"+e.key;this.groups[o]&&(delete this.groups[o],(t=this.groupList.indexOf(e))>-1&&this.groupList.splice(t,1))},d.prototype.registerModule("groupRows",H);var z=function(e){this.table=e,this.history=[],this.index=-1};z.prototype.clear=function(){this.history=[],this.index=-1},z.prototype.action=function(e,t,o){this.history=this.history.slice(0,this.index+1),this.history.push({type:e,component:t,data:o}),this.index++},z.prototype.getHistoryUndoSize=function(){return this.index+1},z.prototype.getHistoryRedoSize=function(){return this.history.length-(this.index+1)},z.prototype.undo=function(){if(this.index>-1){var e=this.history[this.index];return this.undoers[e.type].call(this,e),this.index--,this.table.options.historyUndo.call(this.table,e.type,e.component.getComponent(),e.data),!0}return console.warn("History Undo Error - No more history to undo"),!1},z.prototype.redo=function(){if(this.history.length-1>this.index){this.index++;var e=this.history[this.index];return this.redoers[e.type].call(this,e),this.table.options.historyRedo.call(this.table,e.type,e.component.getComponent(),e.data),!0}return console.warn("History Redo Error - No more history to redo"),!1},z.prototype.undoers={cellEdit:function(e){e.component.setValueProcessData(e.data.oldValue)},rowAdd:function(e){e.component.deleteActual()},rowDelete:function(e){var t=this.table.rowManager.addRowActual(e.data.data,e.data.pos,e.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(e.component,t)},rowMove:function(e){
-this.table.rowManager.moveRowActual(e.component,this.table.rowManager.rows[e.data.posFrom],!e.data.after),this.table.rowManager.redraw()}},z.prototype.redoers={cellEdit:function(e){e.component.setValueProcessData(e.data.newValue)},rowAdd:function(e){var t=this.table.rowManager.addRowActual(e.data.data,e.data.pos,e.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(e.component,t)},rowDelete:function(e){e.component.deleteActual()},rowMove:function(e){this.table.rowManager.moveRowActual(e.component,this.table.rowManager.rows[e.data.posTo],e.data.after),this.table.rowManager.redraw()}},z.prototype._rebindRow=function(e,t){this.history.forEach(function(o){if(o.component instanceof a)o.component===e&&(o.component=t);else if(o.component instanceof c&&o.component.row===e){var i=o.component.column.getField();i&&(o.component=t.getCell(i))}})},d.prototype.registerModule("history",z);var A=function(e){this.table=e,this.fieldIndex=[],this.hasIndex=!1};A.prototype.parseTable=function(){var e=this,t=e.table.element,o=e.table.options,i=(o.columns,t.getElementsByTagName("th")),n=t.getElementsByTagName("tbody")[0],s=[];e.hasIndex=!1,e.table.options.htmlImporting.call(this.table),n=n?n.getElementsByTagName("tr"):[],e._extractOptions(t,o),i.length?e._extractHeaders(i,n):e._generateBlankHeaders(i,n);for(var r=0;r<n.length;r++){var a=n[r],l=a.getElementsByTagName("td"),c={};e.hasIndex||(c[o.index]=r);for(var u=0;u<l.length;u++){var d=l[u];void 0!==this.fieldIndex[u]&&(c[this.fieldIndex[u]]=d.innerHTML)}s.push(c)}var h=document.createElement("div"),p=t.attributes;for(var u in p)"object"==_typeof(p[u])&&h.setAttribute(p[u].name,p[u].value);t.parentNode.replaceChild(h,t),o.data=s,e.table.options.htmlImported.call(this.table),this.table.element=h},A.prototype._extractOptions=function(e,t,o){var i=e.attributes,n=o?Object.assign([],o):Object.keys(t),s={};n.forEach(function(e){s[e.toLowerCase()]=e});for(var r in i){var a,l=i[r];l&&"object"==(void 0===l?"undefined":_typeof(l))&&l.name&&0===l.name.indexOf("tabulator-")&&(a=l.name.replace("tabulator-",""),void 0!==s[a]&&(t[s[a]]=this._attribValue(l.value)))}},A.prototype._attribValue=function(e){return"true"===e||"false"!==e&&e},A.prototype._findCol=function(e){return this.table.options.columns.find(function(t){return t.title===e})||!1},A.prototype._extractHeaders=function(e,t){for(var o=0;o<e.length;o++){var i,s=e[o],r=!1,a=this._findCol(s.textContent);a?r=!0:a={title:s.textContent.trim()},a.field||(a.field=s.textContent.trim().toLowerCase().replace(" ","_")),i=s.getAttribute("width"),i&&!a.width&&(a.width=i),s.attributes,this._extractOptions(s,a,n.prototype.defaultOptionList),this.fieldIndex[o]=a.field,a.field==this.table.options.index&&(this.hasIndex=!0),r||this.table.options.columns.push(a)}},A.prototype._generateBlankHeaders=function(e,t){for(var o=0;o<e.length;o++){var i=e[o],n={title:"",field:"col"+o};this.fieldIndex[o]=n.field;var s=i.getAttribute("width");s&&(n.width=s),this.table.options.columns.push(n)}},d.prototype.registerModule("htmlTableImport",A);var _=function(e){this.table=e,this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1};_.prototype.initialize=function(){var e=this.table.options.keybindings,t={};if(this.watchKeys={},this.pressedKeys=[],!1!==e){for(var o in this.bindings)t[o]=this.bindings[o];if(Object.keys(e).length)for(var i in e)t[i]=e[i];this.mapBindings(t),this.bindEvents()}},_.prototype.mapBindings=function(e){var t=this,o=this;for(var i in e)!function(i){t.actions[i]?e[i]&&("object"!==_typeof(e[i])&&(e[i]=[e[i]]),e[i].forEach(function(e){o.mapBinding(i,e)})):console.warn("Key Binding Error - no such action:",i)}(i)},_.prototype.mapBinding=function(e,t){var o=this,i={action:this.actions[e],keys:[],ctrl:!1,shift:!1,meta:!1};t.toString().toLowerCase().split(" ").join("").split("+").forEach(function(e){switch(e){case"ctrl":i.ctrl=!0;break;case"shift":i.shift=!0;break;case"meta":i.meta=!0;break;default:e=parseInt(e),i.keys.push(e),o.watchKeys[e]||(o.watchKeys[e]=[]),o.watchKeys[e].push(i)}})},_.prototype.bindEvents=function(){var e=this;this.keyupBinding=function(t){var o=t.keyCode,i=e.watchKeys[o];i&&(e.pressedKeys.push(o),i.forEach(function(o){e.checkBinding(t,o)}))},this.keydownBinding=function(t){var o=t.keyCode;if(e.watchKeys[o]){var i=e.pressedKeys.indexOf(o);i>-1&&e.pressedKeys.splice(i,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)},_.prototype.clearBindings=function(){this.keyupBinding&&this.table.element.removeEventListener("keydown",this.keyupBinding),this.keydownBinding&&this.table.element.removeEventListener("keyup",this.keydownBinding)},_.prototype.checkBinding=function(e,t){var o=this,i=!0;return e.ctrlKey==t.ctrl&&e.shiftKey==t.shift&&e.metaKey==t.meta&&(t.keys.forEach(function(e){-1==o.pressedKeys.indexOf(e)&&(i=!1)}),i&&t.action.call(o,e),!0)},_.prototype.bindings={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35,undo:"ctrl + 90",redo:"ctrl + 89",copyToClipboard:"ctrl + 67"},_.prototype.actions={keyBlock:function(e){e.stopPropagation(),e.preventDefault()},scrollPageUp:function(e){var t=this.table.rowManager,o=t.scrollTop-t.height;t.element.scrollHeight;e.preventDefault(),t.displayRowsCount&&(o>=0?t.element.scrollTop=o:t.scrollToRow(t.getDisplayRows()[0])),this.table.element.focus()},scrollPageDown:function(e){var t=this.table.rowManager,o=t.scrollTop+t.height,i=t.element.scrollHeight;e.preventDefault(),t.displayRowsCount&&(o<=i?t.element.scrollTop=o:t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1])),this.table.element.focus()},scrollToStart:function(e){var t=this.table.rowManager;e.preventDefault(),t.displayRowsCount&&t.scrollToRow(t.getDisplayRows()[0]),this.table.element.focus()},scrollToEnd:function(e){var t=this.table.rowManager;e.preventDefault(),t.displayRowsCount&&t.scrollToRow(t.getDisplayRows()[t.displayRowsCount-1]),this.table.element.focus()},navPrev:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().prev())},navNext:function(e){var t,o=!1,i=this.table.options.tabEndNewRow;this.table.modExists("edit")&&(o=this.table.modules.edit.currentCell)&&(e.preventDefault(),t=o.nav(),t.next()||i&&(o.getElement().firstChild.blur(),i=!0===i?this.table.addRow({}):"function"==typeof i?this.table.addRow(i(o.row.getComponent())):this.table.addRow(Object.assign({},i)),i.then(function(){setTimeout(function(){t.next()})})))},navLeft:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().left())},navRight:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().right())},navUp:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().up())},navDown:function(e){var t=!1;this.table.modExists("edit")&&(t=this.table.modules.edit.currentCell)&&(e.preventDefault(),t.nav().down())},undo:function(e){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(e.preventDefault(),this.table.modules.history.undo()))},redo:function(e){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(e.preventDefault(),this.table.modules.history.redo()))},copyToClipboard:function(e){this.table.modules.edit.currentCell||this.table.modExists("clipboard",!0)&&this.table.modules.clipboard.copy(!1,!0)}},d.prototype.registerModule("keybindings",_);var P=function(e){this.table=e,this.menuEl=!1,this.blurEvent=this.hideMenu.bind(this),this.escEvent=this.escMenu.bind(this),this.nestedMenuBlock=!1};P.prototype.initializeColumnHeader=function(e){var t,o=this;e.definition.headerContextMenu&&e.getElement().addEventListener("contextmenu",function(t){var i="function"==typeof e.definition.headerContextMenu?e.definition.headerContextMenu(e.getComponent()):e.definition.headerContextMenu;t.preventDefault(),o.loadMenu(t,e,i)}),e.definition.headerMenu&&(t=document.createElement("span"),t.classList.add("tabulator-header-menu-button"),t.innerHTML="⋮",t.addEventListener("click",function(t){var i="function"==typeof e.definition.headerMenu?e.definition.headerMenu(e.getComponent()):e.definition.headerMenu;t.stopPropagation(),t.preventDefault(),o.loadMenu(t,e,i)}),e.titleElement.insertBefore(t,e.titleElement.firstChild))},P.prototype.initializeCell=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(o){var i="function"==typeof e.column.definition.contextMenu?e.column.definition.contextMenu(e.getComponent()):e.column.definition.contextMenu;o.stopImmediatePropagation(),t.loadMenu(o,e,i)})},P.prototype.initializeRow=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(o){var i="function"==typeof t.table.options.rowContextMenu?t.table.options.rowContextMenu(e.getComponent()):t.table.options.rowContextMenu;t.loadMenu(o,e,i)})},P.prototype.initializeGroup=function(e){var t=this;e.getElement().addEventListener("contextmenu",function(o){var i="function"==typeof t.table.options.groupContextMenu?t.table.options.groupContextMenu(e.getComponent()):t.table.options.groupContextMenu;t.loadMenu(o,e,i)})},P.prototype.loadMenu=function(e,t,o){var i=this,n=Math.max(document.body.offsetHeight,window.innerHeight);if(e.preventDefault(),o&&o.length){if(this.nestedMenuBlock){if(this.isOpen())return}else this.nestedMenuBlock=setTimeout(function(){i.nestedMenuBlock=!1},100);this.hideMenu(),this.menuEl=document.createElement("div"),this.menuEl.classList.add("tabulator-menu"),o.forEach(function(e){var o=document.createElement("div"),n=e.label,s=e.disabled;e.separator?o.classList.add("tabulator-menu-separator"):(o.classList.add("tabulator-menu-item"),"function"==typeof n&&(n=n(t.getComponent())),n instanceof Node?o.appendChild(n):o.innerHTML=n,"function"==typeof s&&(s=s(t.getComponent())),s?(o.classList.add("tabulator-menu-item-disabled"),o.addEventListener("click",function(e){e.stopPropagation()})):o.addEventListener("click",function(o){i.hideMenu(),e.action(o,t.getComponent())})),i.menuEl.appendChild(o)}),this.menuEl.style.top=e.pageY+"px",this.menuEl.style.left=e.pageX+"px",document.body.addEventListener("click",this.blurEvent),this.table.rowManager.element.addEventListener("scroll",this.blurEvent),setTimeout(function(){document.body.addEventListener("contextmenu",i.blurEvent)},100),document.body.addEventListener("keydown",this.escEvent),document.body.appendChild(this.menuEl),e.pageX+this.menuEl.offsetWidth>=document.body.offsetWidth&&(this.menuEl.style.left="",this.menuEl.style.right=document.body.offsetWidth-e.pageX+"px"),e.pageY+this.menuEl.offsetHeight>=n&&(this.menuEl.style.top="",this.menuEl.style.bottom=n-e.pageY+"px")}},P.prototype.isOpen=function(){return!!this.menuEl.parentNode},P.prototype.escMenu=function(e){27==e.keyCode&&this.hideMenu()},P.prototype.hideMenu=function(){this.menuEl.parentNode&&this.menuEl.parentNode.removeChild(this.menuEl),this.escEvent&&document.body.removeEventListener("keydown",this.escEvent),this.blurEvent&&(document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent))},P.prototype.menus={},d.prototype.registerModule("menu",P);var F=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this)};F.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-col"),e.classList.add("tabulator-col-placeholder"),e},F.prototype.initializeColumn=function(e){var t,o=this,i={};e.modules.frozen||(t=e.getElement(),i.mousemove=function(i){e.parent===o.moving.parent&&((o.touchMove?i.touches[0].pageX:i.pageX)-d.prototype.helpers.elOffset(t).left+o.table.columnManager.element.scrollLeft>e.getWidth()/2?o.toCol===e&&o.toColAfter||(t.parentNode.insertBefore(o.placeholderElement,t.nextSibling),o.moveColumn(e,!0)):(o.toCol!==e||o.toColAfter)&&(t.parentNode.insertBefore(o.placeholderElement,t),o.moveColumn(e,!1)))}.bind(o),t.addEventListener("mousedown",function(t){o.touchMove=!1,1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),o.bindTouchEvents(e)),e.modules.moveColumn=i},F.prototype.bindTouchEvents=function(e){var t,o,i,n,s,r,a,l=this,c=e.getElement(),u=!1;c.addEventListener("touchstart",function(c){l.checkTimeout=setTimeout(function(){l.touchMove=!0,t=e,o=e.nextColumn(),n=o?o.getWidth()/2:0,i=e.prevColumn(),s=i?i.getWidth()/2:0,r=0,a=0,u=!1,l.startMove(c,e)},l.checkPeriod)},{passive:!0}),c.addEventListener("touchmove",function(c){var d,h;l.moving&&(l.moveHover(c),u||(u=c.touches[0].pageX),d=c.touches[0].pageX-u,d>0?o&&d-r>n&&(h=o)!==e&&(u=c.touches[0].pageX,h.getElement().parentNode.insertBefore(l.placeholderElement,h.getElement().nextSibling),l.moveColumn(h,!0)):i&&-d-a>s&&(h=i)!==e&&(u=c.touches[0].pageX,h.getElement().parentNode.insertBefore(l.placeholderElement,h.getElement()),l.moveColumn(h,!1)),h&&(t=h,o=h.nextColumn(),r=n,n=o?o.getWidth()/2:0,i=h.prevColumn(),a=s,s=i?i.getWidth()/2:0))},{passive:!0}),c.addEventListener("touchend",function(e){l.checkTimeout&&clearTimeout(l.checkTimeout),l.moving&&l.endMove(e)})},F.prototype.startMove=function(e,t){var o=t.getElement();this.moving=t,this.startX=(this.touchMove?e.touches[0].pageX:e.pageX)-d.prototype.helpers.elOffset(o).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.table.columnManager.getElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom="0",this.touchMove||(this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove)),this.moveHover(e)},F.prototype._bindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().addEventListener("mousemove",e.modules.moveColumn.mousemove)})},F.prototype._unbindMouseMove=function(){this.table.columnManager.columnsByIndex.forEach(function(e){e.modules.moveColumn.mousemove&&e.getElement().removeEventListener("mousemove",e.modules.moveColumn.mousemove)})},F.prototype.moveColumn=function(e,t){var o=this.moving.getCells();this.toCol=e,this.toColAfter=t,t?e.getCells().forEach(function(e,t){var i=e.getElement();i.parentNode.insertBefore(o[t].getElement(),i.nextSibling)}):e.getCells().forEach(function(e,t){var i=e.getElement();i.parentNode.insertBefore(o[t].getElement(),i)})},F.prototype.endMove=function(e){(1===e.which||this.touchMove)&&(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol&&this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter),this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.touchMove||(document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)))},F.prototype.moveHover=function(e){var t,o=this,i=o.table.columnManager.getElement(),n=i.scrollLeft,s=(o.touchMove?e.touches[0].pageX:e.pageX)-d.prototype.helpers.elOffset(i).left+n;o.hoverElement.style.left=s-o.startX+"px",s-n<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.max(0,n-5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1))),n+i.clientWidth-s<o.autoScrollMargin&&(o.autoScrollTimeout||(o.autoScrollTimeout=setTimeout(function(){t=Math.min(i.clientWidth,n+5),o.table.rowManager.getElement().scrollLeft=t,o.autoScrollTimeout=!1},1)))},d.prototype.registerModule("moveColumn",F);var N=function(e){this.table=e,this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=150,this.moving=!1,this.toRow=!1,this.toRowAfter=!1,this.hasHandle=!1,this.startY=0,this.startX=0,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.tableRowDropEvent=!1,this.touchMove=!1,this.connection=!1,this.connectionSelectorsTables=!1,this.connectionSelectorsElements=!1,this.connectionElements=[],this.connections=[],this.connectedTable=!1,this.connectedRow=!1};N.prototype.createPlaceholderElement=function(){var e=document.createElement("div");return e.classList.add("tabulator-row"),e.classList.add("tabulator-row-placeholder"),e},N.prototype.initialize=function(e){this.connectionSelectorsTables=this.table.options.movableRowsConnectedTables,this.connectionSelectorsElements=this.table.options.movableRowsConnectedElements,this.connection=this.connectionSelectorsTables||this.connectionSelectorsElements},N.prototype.setHandle=function(e){this.hasHandle=e},N.prototype.initializeGroupHeader=function(e){var t=this,o={};o.mouseup=function(e){t.tableRowDrop(e,row)}.bind(t),o.mousemove=function(o){if(o.pageY-d.prototype.helpers.elOffset(e.element).top+t.table.rowManager.element.scrollTop>e.getHeight()/2){if(t.toRow!==e||!t.toRowAfter){var i=e.getElement();i.parentNode.insertBefore(t.placeholderElement,i.nextSibling),t.moveRow(e,!0)}}else if(t.toRow!==e||t.toRowAfter){var i=e.getElement();i.previousSibling&&(i.parentNode.insertBefore(t.placeholderElement,i),t.moveRow(e,!1))}}.bind(t),e.modules.moveRow=o},N.prototype.initializeRow=function(e){var t,o=this,i={};i.mouseup=function(t){o.tableRowDrop(t,e)}.bind(o),i.mousemove=function(t){if(t.pageY-d.prototype.helpers.elOffset(e.element).top+o.table.rowManager.element.scrollTop>e.getHeight()/2){if(o.toRow!==e||!o.toRowAfter){var i=e.getElement();i.parentNode.insertBefore(o.placeholderElement,i.nextSibling),o.moveRow(e,!0)}}else if(o.toRow!==e||o.toRowAfter){var i=e.getElement();i.parentNode.insertBefore(o.placeholderElement,i),o.moveRow(e,!1)}}.bind(o),this.hasHandle||(t=e.getElement(),t.addEventListener("mousedown",function(t){1===t.which&&(o.checkTimeout=setTimeout(function(){o.startMove(t,e)},o.checkPeriod))}),t.addEventListener("mouseup",function(e){1===e.which&&o.checkTimeout&&clearTimeout(o.checkTimeout)}),this.bindTouchEvents(e,e.getElement())),e.modules.moveRow=i},N.prototype.initializeCell=function(e){var t=this,o=e.getElement();o.addEventListener("mousedown",function(o){1===o.which&&(t.checkTimeout=setTimeout(function(){t.startMove(o,e.row)},t.checkPeriod))}),o.addEventListener("mouseup",function(e){1===e.which&&t.checkTimeout&&clearTimeout(t.checkTimeout)}),this.bindTouchEvents(e.row,e.getElement())},N.prototype.bindTouchEvents=function(e,t){var o,i,n,s,r,a,l,c=this,u=!1;t.addEventListener("touchstart",function(t){c.checkTimeout=setTimeout(function(){c.touchMove=!0,o=e,i=e.nextRow(),s=i?i.getHeight()/2:0,n=e.prevRow(),r=n?n.getHeight()/2:0,a=0,l=0,u=!1,c.startMove(t,e)},c.checkPeriod)},{passive:!0}),this.moving,this.toRow,this.toRowAfter,t.addEventListener("touchmove",function(t){var d,h;c.moving&&(t.preventDefault(),c.moveHover(t),u||(u=t.touches[0].pageY),d=t.touches[0].pageY-u,d>0?i&&d-a>s&&(h=i)!==e&&(u=t.touches[0].pageY,h.getElement().parentNode.insertBefore(c.placeholderElement,h.getElement().nextSibling),c.moveRow(h,!0)):n&&-d-l>r&&(h=n)!==e&&(u=t.touches[0].pageY,h.getElement().parentNode.insertBefore(c.placeholderElement,h.getElement()),c.moveRow(h,!1)),h&&(o=h,i=h.nextRow(),a=s,s=i?i.getHeight()/2:0,n=h.prevRow(),l=r,r=n?n.getHeight()/2:0))}),t.addEventListener("touchend",function(e){c.checkTimeout&&clearTimeout(c.checkTimeout),c.moving&&(c.endMove(e),c.touchMove=!1)})},N.prototype._bindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().addEventListener("mousemove",e.modules.moveRow.mousemove)})},N.prototype._unbindMouseMove=function(){this.table.rowManager.getDisplayRows().forEach(function(e){"row"!==e.type&&"group"!==e.type||!e.modules.moveRow.mousemove||e.getElement().removeEventListener("mousemove",e.modules.moveRow.mousemove)})},N.prototype.startMove=function(e,t){var o=t.getElement();this.setStartPosition(e,t),this.moving=t,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=t.getWidth()+"px",this.placeholderElement.style.height=t.getHeight()+"px",this.connection?(this.table.element.classList.add("tabulator-movingrow-sending"),this.connectToTables(t)):(o.parentNode.insertBefore(this.placeholderElement,o),o.parentNode.removeChild(o)),this.hoverElement=o.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.connection?(document.body.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this.hoverElement.style.width=this.table.element.clientWidth+"px",this.hoverElement.style.whiteSpace="nowrap",this.hoverElement.style.overflow="hidden",this.hoverElement.style.pointerEvents="none"):(this.table.rowManager.getTableElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this._bindMouseMove()),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove),this.moveHover(e)},N.prototype.setStartPosition=function(e,t){var o,i,n=this.touchMove?e.touches[0].pageX:e.pageX,s=this.touchMove?e.touches[0].pageY:e.pageY;o=t.getElement(),this.connection?(i=o.getBoundingClientRect(),this.startX=i.left-n+window.pageXOffset,this.startY=i.top-s+window.pageYOffset):this.startY=s-o.getBoundingClientRect().top},N.prototype.endMove=function(e){e&&1!==e.which&&!this.touchMove||(this._unbindMouseMove(),this.connection||(this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement)),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toRow&&this.table.rowManager.moveRow(this.moving,this.toRow,this.toRowAfter),this.moving=!1,this.toRow=!1,this.toRowAfter=!1,document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove),this.connection&&(this.table.element.classList.remove("tabulator-movingrow-sending"),this.disconnectFromTables()))},N.prototype.moveRow=function(e,t){this.toRow=e,this.toRowAfter=t},N.prototype.moveHover=function(e){this.connection?this.moveHoverConnections.call(this,e):this.moveHoverTable.call(this,e)},N.prototype.moveHoverTable=function(e){var t=this.table.rowManager.getElement(),o=t.scrollTop,i=(this.touchMove?e.touches[0].pageY:e.pageY)-t.getBoundingClientRect().top+o;this.hoverElement.style.top=i-this.startY+"px"},N.prototype.moveHoverConnections=function(e){this.hoverElement.style.left=this.startX+(this.touchMove?e.touches[0].pageX:e.pageX)+"px",this.hoverElement.style.top=this.startY+(this.touchMove?e.touches[0].pageY:e.pageY)+"px"},N.prototype.elementRowDrop=function(e,t,o){this.table.options.movableRowsElementDrop&&this.table.options.movableRowsElementDrop(e,t,!!o&&o.getComponent())},N.prototype.connectToTables=function(e){var t,o=this;this.connectionSelectorsTables&&(t=this.table.modules.comms.getConnections(this.connectionSelectorsTables),this.table.options.movableRowsSendingStart.call(this.table,t),this.table.modules.comms.send(this.connectionSelectorsTables,"moveRow","connect",{row:e})),this.connectionSelectorsElements&&(this.connectionElements=[],Array.isArray(this.connectionSelectorsElements)||(this.connectionSelectorsElements=[this.connectionSelectorsElements]),this.connectionSelectorsElements.forEach(function(e){"string"==typeof e?o.connectionElements=o.connectionElements.concat(Array.prototype.slice.call(document.querySelectorAll(e))):o.connectionElements.push(e)}),this.connectionElements.forEach(function(e){var t=function(t){o.elementRowDrop(t,e,o.moving)};e.addEventListener("mouseup",t),e.tabulatorElementDropEvent=t,e.classList.add("tabulator-movingrow-receiving")}))},N.prototype.disconnectFromTables=function(){var e;this.connectionSelectorsTables&&(e=this.table.modules.comms.getConnections(this.connectionSelectorsTables),this.table.options.movableRowsSendingStop.call(this.table,e),this.table.modules.comms.send(this.connectionSelectorsTables,"moveRow","disconnect")),this.connectionElements.forEach(function(e){e.classList.remove("tabulator-movingrow-receiving"),e.removeEventListener("mouseup",e.tabulatorElementDropEvent),delete e.tabulatorElementDropEvent})},N.prototype.connect=function(e,t){var o=this;return this.connectedTable?(console.warn("Move Row Error - Table cannot accept connection, already connected to table:",this.connectedTable),!1):(this.connectedTable=e,this.connectedRow=t,this.table.element.classList.add("tabulator-movingrow-receiving"),o.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().addEventListener("mouseup",e.modules.moveRow.mouseup)}),o.tableRowDropEvent=o.tableRowDrop.bind(o),o.table.element.addEventListener("mouseup",o.tableRowDropEvent),this.table.options.movableRowsReceivingStart.call(this.table,t,e),!0)},N.prototype.disconnect=function(e){var t=this;e===this.connectedTable?(this.connectedTable=!1,this.connectedRow=!1,this.table.element.classList.remove("tabulator-movingrow-receiving"),t.table.rowManager.getDisplayRows().forEach(function(e){"row"===e.type&&e.modules.moveRow&&e.modules.moveRow.mouseup&&e.getElement().removeEventListener("mouseup",e.modules.moveRow.mouseup)}),t.table.element.removeEventListener("mouseup",t.tableRowDropEvent),this.table.options.movableRowsReceivingStop.call(this.table,e)):console.warn("Move Row Error - trying to disconnect from non connected table")},N.prototype.dropComplete=function(e,t,o){var i=!1;if(o){switch(_typeof(this.table.options.movableRowsSender)){case"string":i=this.senders[this.table.options.movableRowsSender];break;case"function":i=this.table.options.movableRowsSender}i?i.call(this,this.moving.getComponent(),t?t.getComponent():void 0,e):this.table.options.movableRowsSender&&console.warn("Mover Row Error - no matching sender found:",this.table.options.movableRowsSender),this.table.options.movableRowsSent.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e)}else this.table.options.movableRowsSentFailed.call(this.table,this.moving.getComponent(),t?t.getComponent():void 0,e);this.endMove()},N.prototype.tableRowDrop=function(e,t){var o=!1,i=!1;switch(console.trace("drop"),e.stopImmediatePropagation(),_typeof(this.table.options.movableRowsReceiver)){case"string":o=this.receivers[this.table.options.movableRowsReceiver];break;case"function":o=this.table.options.movableRowsReceiver}o?i=o.call(this,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):console.warn("Mover Row Error - no matching receiver found:",this.table.options.movableRowsReceiver),i?this.table.options.movableRowsReceived.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable):this.table.options.movableRowsReceivedFailed.call(this.table,this.connectedRow.getComponent(),t?t.getComponent():void 0,this.connectedTable),this.table.modules.comms.send(this.connectedTable,"moveRow","dropcomplete",{row:t,success:i})},N.prototype.receivers={insert:function(e,t,o){return this.table.addRow(e.getData(),void 0,t),!0},add:function(e,t,o){return this.table.addRow(e.getData()),!0},update:function(e,t,o){return!!t&&(t.update(e.getData()),!0)},replace:function(e,t,o){return!!t&&(this.table.addRow(e.getData(),void 0,t),t.delete(),!0)}},N.prototype.senders={delete:function(e,t,o){e.delete()}},N.prototype.commsReceived=function(e,t,o){switch(t){case"connect":return this.connect(e,o.row);case"disconnect":return this.disconnect(e);case"dropcomplete":return this.dropComplete(e,o.row,o.success)}},d.prototype.registerModule("moveRow",N);var B=function(e){this.table=e,this.allowedTypes=["","data","edit","clipboard"],this.enabled=!0};B.prototype.initializeColumn=function(e){var t=this,o=!1,i={};this.allowedTypes.forEach(function(n){var s,r="mutator"+(n.charAt(0).toUpperCase()+n.slice(1));e.definition[r]&&(s=t.lookupMutator(e.definition[r]))&&(o=!0,i[r]={mutator:s,params:e.definition[r+"Params"]||{}})}),o&&(e.modules.mutate=i)},B.prototype.lookupMutator=function(e){var t=!1;switch(void 0===e?"undefined":_typeof(e)){case"string":this.mutators[e]?t=this.mutators[e]:console.warn("Mutator Error - No such mutator found, ignoring: ",e);break;case"function":t=e}return t},B.prototype.transformRow=function(e,t,o){var i,n=this,s="mutator"+(t.charAt(0).toUpperCase()+t.slice(1));return this.enabled&&n.table.columnManager.traverse(function(n){var r,a,l;n.modules.mutate&&(r=n.modules.mutate[s]||n.modules.mutate.mutator||!1)&&(i=n.getFieldValue(void 0!==o?o:e),"data"!=t&&void 0===i||(l=n.getComponent(),a="function"==typeof r.params?r.params(i,e,t,l):r.params,n.setFieldValue(e,r.mutator(i,e,t,a,l))))}),e},B.prototype.transformCell=function(e,t){var o=e.column.modules.mutate.mutatorEdit||e.column.modules.mutate.mutator||!1,i={};return o?(i=Object.assign(i,e.row.getData()),e.column.setFieldValue(i,t),o.mutator(t,i,"edit",o.params,e.getComponent())):t},B.prototype.enable=function(){this.enabled=!0},B.prototype.disable=function(){this.enabled=!1},B.prototype.mutators={},d.prototype.registerModule("mutator",B);var O=function(e){this.table=e,this.mode="local",this.progressiveLoad=!1,this.size=0,this.page=1,this.count=5,this.max=1,this.displayIndex=0,this.initialLoad=!0,this.pageSizes=[],this.dataReceivedNames={},this.dataSentNames={},this.createElements()};O.prototype.createElements=function(){var e;this.element=document.createElement("span"),this.element.classList.add("tabulator-paginator"),this.pagesElement=document.createElement("span"),this.pagesElement.classList.add("tabulator-pages"),e=document.createElement("button"),e.classList.add("tabulator-page"),e.setAttribute("type","button"),e.setAttribute("role","button"),e.setAttribute("aria-label",""),e.setAttribute("title",""),this.firstBut=e.cloneNode(!0),this.firstBut.setAttribute("data-page","first"),this.prevBut=e.cloneNode(!0),this.prevBut.setAttribute("data-page","prev"),this.nextBut=e.cloneNode(!0),this.nextBut.setAttribute("data-page","next"),this.lastBut=e.cloneNode(!0),this.lastBut.setAttribute("data-page","last"),this.table.options.paginationSizeSelector&&(this.pageSizeSelect=document.createElement("select"),this.pageSizeSelect.classList.add("tabulator-page-size"))},O.prototype.generatePageSizeSelectList=function(){var e=this,t=[];if(this.pageSizeSelect){if(Array.isArray(this.table.options.paginationSizeSelector))t=this.table.options.paginationSizeSelector,this.pageSizes=t,-1==this.pageSizes.indexOf(this.size)&&t.unshift(this.size);else if(-1==this.pageSizes.indexOf(this.size)){t=[];for(var o=1;o<5;o++)t.push(this.size*o);this.pageSizes=t}else t=this.pageSizes
-;for(;this.pageSizeSelect.firstChild;)this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);t.forEach(function(t){var o=document.createElement("option");o.value=t,!0===t?e.table.modules.localize.bind("pagination|all",function(e){o.innerHTML=e}):o.innerHTML=t,e.pageSizeSelect.appendChild(o)}),this.pageSizeSelect.value=this.size}},O.prototype.initialize=function(e){var t,o,i,n=this;this.dataSentNames=Object.assign({},this.paginationDataSentNames),this.dataSentNames=Object.assign(this.dataSentNames,this.table.options.paginationDataSent),this.dataReceivedNames=Object.assign({},this.paginationDataReceivedNames),this.dataReceivedNames=Object.assign(this.dataReceivedNames,this.table.options.paginationDataReceived),n.table.modules.localize.bind("pagination|first",function(e){n.firstBut.innerHTML=e}),n.table.modules.localize.bind("pagination|first_title",function(e){n.firstBut.setAttribute("aria-label",e),n.firstBut.setAttribute("title",e)}),n.table.modules.localize.bind("pagination|prev",function(e){n.prevBut.innerHTML=e}),n.table.modules.localize.bind("pagination|prev_title",function(e){n.prevBut.setAttribute("aria-label",e),n.prevBut.setAttribute("title",e)}),n.table.modules.localize.bind("pagination|next",function(e){n.nextBut.innerHTML=e}),n.table.modules.localize.bind("pagination|next_title",function(e){n.nextBut.setAttribute("aria-label",e),n.nextBut.setAttribute("title",e)}),n.table.modules.localize.bind("pagination|last",function(e){n.lastBut.innerHTML=e}),n.table.modules.localize.bind("pagination|last_title",function(e){n.lastBut.setAttribute("aria-label",e),n.lastBut.setAttribute("title",e)}),n.firstBut.addEventListener("click",function(){n.setPage(1)}),n.prevBut.addEventListener("click",function(){n.previousPage()}),n.nextBut.addEventListener("click",function(){n.nextPage().then(function(){}).catch(function(){})}),n.lastBut.addEventListener("click",function(){n.setPage(n.max)}),n.table.options.paginationElement&&(n.element=n.table.options.paginationElement),this.pageSizeSelect&&(t=document.createElement("label"),n.table.modules.localize.bind("pagination|page_size",function(e){n.pageSizeSelect.setAttribute("aria-label",e),n.pageSizeSelect.setAttribute("title",e),t.innerHTML=e}),n.element.appendChild(t),n.element.appendChild(n.pageSizeSelect),n.pageSizeSelect.addEventListener("change",function(e){n.setPageSize("true"==n.pageSizeSelect.value||n.pageSizeSelect.value),n.setPage(1).then(function(){}).catch(function(){})})),n.element.appendChild(n.firstBut),n.element.appendChild(n.prevBut),n.element.appendChild(n.pagesElement),n.element.appendChild(n.nextBut),n.element.appendChild(n.lastBut),n.table.options.paginationElement||e||n.table.footerManager.append(n.element,n),n.mode=n.table.options.pagination,n.table.options.paginationSize?n.size=n.table.options.paginationSize:(o=document.createElement("div"),o.classList.add("tabulator-row"),o.style.visibility=e,i=document.createElement("div"),i.classList.add("tabulator-cell"),i.innerHTML="Page Row Test",o.appendChild(i),n.table.rowManager.getTableElement().appendChild(o),n.size=Math.floor(n.table.rowManager.getElement().clientHeight/o.offsetHeight),n.table.rowManager.getTableElement().removeChild(o)),n.count=n.table.options.paginationButtonCount,n.generatePageSizeSelectList()},O.prototype.initializeProgressive=function(e){this.initialize(!0),this.mode="progressive_"+e,this.progressiveLoad=!0},O.prototype.setDisplayIndex=function(e){this.displayIndex=e},O.prototype.getDisplayIndex=function(){return this.displayIndex},O.prototype.setMaxRows=function(e){this.max=e?!0===this.size?1:Math.ceil(e/this.size):1,this.page>this.max&&(this.page=this.max)},O.prototype.reset=function(e,t){return("local"==this.mode||e)&&(this.page=1),t&&(this.initialLoad=!0),!0},O.prototype.setMaxPage=function(e){e=parseInt(e),this.max=e||1,this.page>this.max&&(this.page=this.max,this.trigger())},O.prototype.setPage=function(e){var t=this,o=this;switch(e){case"first":return this.setPage(1);case"prev":return this.previousPage();case"next":return this.nextPage();case"last":return this.setPage(this.max)}return new Promise(function(i,n){e=parseInt(e),e>0&&e<=t.max?(t.page=e,t.trigger().then(function(){i()}).catch(function(){n()}),o.table.options.persistence&&o.table.modExists("persistence",!0)&&o.table.modules.persistence.config.page&&o.table.modules.persistence.save("page")):(console.warn("Pagination Error - Requested page is out of range of 1 - "+t.max+":",e),n())})},O.prototype.setPageToRow=function(e){var t=this;return new Promise(function(o,i){var n=t.table.rowManager.getDisplayRows(t.displayIndex-1),s=n.indexOf(e);if(s>-1){var r=!0===t.size?1:Math.ceil((s+1)/t.size);t.setPage(r).then(function(){o()}).catch(function(){i()})}else console.warn("Pagination Error - Requested row is not visible"),i()})},O.prototype.setPageSize=function(e){!0!==e&&(e=parseInt(e)),e>0&&(this.size=e),this.pageSizeSelect&&this.generatePageSizeSelectList(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.page&&this.table.modules.persistence.save("page")},O.prototype._setPageButtons=function(){for(var e=this,t=Math.floor((this.count-1)/2),o=Math.ceil((this.count-1)/2),i=this.max-this.page+t+1<this.count?this.max-this.count+1:Math.max(this.page-t,1),n=this.page<=o?Math.min(this.count,this.max):Math.min(this.page+o,this.max);e.pagesElement.firstChild;)e.pagesElement.removeChild(e.pagesElement.firstChild);1==e.page?(e.firstBut.disabled=!0,e.prevBut.disabled=!0):(e.firstBut.disabled=!1,e.prevBut.disabled=!1),e.page==e.max?(e.lastBut.disabled=!0,e.nextBut.disabled=!0):(e.lastBut.disabled=!1,e.nextBut.disabled=!1);for(var s=i;s<=n;s++)s>0&&s<=e.max&&e.pagesElement.appendChild(e._generatePageButton(s));this.footerRedraw()},O.prototype._generatePageButton=function(e){var t=this,o=document.createElement("button");return o.classList.add("tabulator-page"),e==t.page&&o.classList.add("active"),o.setAttribute("type","button"),o.setAttribute("role","button"),t.table.modules.localize.bind("pagination|page_title",function(t){o.setAttribute("aria-label",t+" "+e),o.setAttribute("title",t+" "+e)}),o.setAttribute("data-page",e),o.textContent=e,o.addEventListener("click",function(o){t.setPage(e)}),o},O.prototype.previousPage=function(){var e=this;return new Promise(function(t,o){e.page>1?(e.page--,e.trigger().then(function(){t()}).catch(function(){o()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(console.warn("Pagination Error - Previous page would be less than page 1:",0),o())})},O.prototype.nextPage=function(){var e=this;return new Promise(function(t,o){e.page<e.max?(e.page++,e.trigger().then(function(){t()}).catch(function(){o()}),e.table.options.persistence&&e.table.modExists("persistence",!0)&&e.table.modules.persistence.config.page&&e.table.modules.persistence.save("page")):(e.progressiveLoad||console.warn("Pagination Error - Next page would be greater than maximum page of "+e.max+":",e.max+1),o())})},O.prototype.getPage=function(){return this.page},O.prototype.getPageMax=function(){return this.max},O.prototype.getPageSize=function(e){return this.size},O.prototype.getMode=function(){return this.mode},O.prototype.getRows=function(e){var t,o,i;if("local"==this.mode){t=[],!0===this.size?(o=0,i=e.length-1):(o=this.size*(this.page-1),i=o+parseInt(this.size)),this._setPageButtons();for(var n=o;n<i;n++)e[n]&&t.push(e[n]);return t}return this._setPageButtons(),e.slice(0)},O.prototype.trigger=function(){var e,t=this;return new Promise(function(o,i){switch(t.mode){case"local":e=t.table.rowManager.scrollLeft,t.table.rowManager.refreshActiveData("page"),t.table.rowManager.scrollHorizontal(e),t.table.options.pageLoaded.call(t.table,t.getPage()),o();break;case"remote":case"progressive_load":case"progressive_scroll":t.table.modules.ajax.blockActiveRequest(),t._getRemotePage().then(function(){o()}).catch(function(){i()});break;default:console.warn("Pagination Error - no such pagination mode:",t.mode),i()}})},O.prototype._getRemotePage=function(){var e,t,o=this,i=this;return new Promise(function(n,s){if(i.table.modExists("ajax",!0)||s(),e=d.prototype.helpers.deepClone(i.table.modules.ajax.getParams()||{}),t=i.table.modules.ajax.getParams(),t[o.dataSentNames.page]=i.page,o.size&&(t[o.dataSentNames.size]=o.size),o.table.options.ajaxSorting&&o.table.modExists("sort")){var r=i.table.modules.sort.getSort();r.forEach(function(e){delete e.column}),t[o.dataSentNames.sorters]=r}if(o.table.options.ajaxFiltering&&o.table.modExists("filter")){var a=i.table.modules.filter.getFilters(!0,!0);t[o.dataSentNames.filters]=a}i.table.modules.ajax.setParams(t),i.table.modules.ajax.sendRequest(o.progressiveLoad).then(function(e){i._parseRemoteData(e),n()}).catch(function(e){s()}),i.table.modules.ajax.setParams(e)})},O.prototype._parseRemoteData=function(e){var t,e,o,i=this;if(void 0===e[this.dataReceivedNames.last_page]&&console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.last_page+"' property"),e[this.dataReceivedNames.data]){if(this.max=parseInt(e[this.dataReceivedNames.last_page])||1,this.progressiveLoad)switch(this.mode){case"progressive_load":1==this.page?this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page):this.table.rowManager.addRows(e[this.dataReceivedNames.data]),this.page<this.max&&setTimeout(function(){i.nextPage().then(function(){}).catch(function(){})},i.table.options.ajaxProgressiveLoadDelay);break;case"progressive_scroll":e=this.table.rowManager.getData().concat(e[this.dataReceivedNames.data]),this.table.rowManager.setData(e,!0,this.initialLoad&&1==this.page),o=this.table.options.ajaxProgressiveLoadScrollMargin||2*this.table.rowManager.element.clientHeight,i.table.rowManager.element.scrollHeight<=i.table.rowManager.element.clientHeight+o&&i.nextPage().then(function(){}).catch(function(){})}else t=this.table.rowManager.scrollLeft,this.table.rowManager.setData(e[this.dataReceivedNames.data],!1,this.initialLoad&&1==this.page),this.table.rowManager.scrollHorizontal(t),this.table.columnManager.scrollHorizontal(t),this.table.options.pageLoaded.call(this.table,this.getPage());this.initialLoad=!1}else console.warn("Remote Pagination Error - Server response missing '"+this.dataReceivedNames.data+"' property")},O.prototype.footerRedraw=function(){var e=this.table.footerManager.element;Math.ceil(e.clientWidth)-e.scrollWidth<0?this.pagesElement.style.display="none":(this.pagesElement.style.display="",Math.ceil(e.clientWidth)-e.scrollWidth<0&&(this.pagesElement.style.display="none"))},O.prototype.paginationDataSentNames={page:"page",size:"size",sorters:"sorters",filters:"filters"},O.prototype.paginationDataReceivedNames={current_page:"current_page",last_page:"last_page",data:"data"},d.prototype.registerModule("page",O);var I=function(e){this.table=e,this.mode="",this.id="",this.defWatcherBlock=!1,this.config={},this.readFunc=!1,this.writeFunc=!1};I.prototype.localStorageTest=function(){var e="_tabulator_test";try{return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}},I.prototype.initialize=function(){var e,t=this.table.options.persistenceMode,o=this.table.options.persistenceID;this.mode=!0!==t?t:this.localStorageTest()?"local":"cookie",this.table.options.persistenceReaderFunc?"function"==typeof this.table.options.persistenceReaderFunc?this.readFunc=this.table.options.persistenceReaderFunc:this.readers[this.table.options.persistenceReaderFunc]?this.readFunc=this.readers[this.table.options.persistenceReaderFunc]:console.warn("Persistence Read Error - invalid reader set",this.table.options.persistenceReaderFunc):this.readers[this.mode]?this.readFunc=this.readers[this.mode]:console.warn("Persistence Read Error - invalid reader set",this.mode),this.table.options.persistenceWriterFunc?"function"==typeof this.table.options.persistenceWriterFunc?this.writeFunc=this.table.options.persistenceWriterFunc:this.readers[this.table.options.persistenceWriterFunc]?this.writeFunc=this.readers[this.table.options.persistenceWriterFunc]:console.warn("Persistence Write Error - invalid reader set",this.table.options.persistenceWriterFunc):this.writers[this.mode]?this.writeFunc=this.writers[this.mode]:console.warn("Persistence Write Error - invalid writer set",this.mode),this.id="tabulator-"+(o||this.table.element.getAttribute("id")||""),this.config={sort:!0===this.table.options.persistence||this.table.options.persistence.sort,filter:!0===this.table.options.persistence||this.table.options.persistence.filter,group:!0===this.table.options.persistence||this.table.options.persistence.group,page:!0===this.table.options.persistence||this.table.options.persistence.page,columns:!0===this.table.options.persistence?["title","width","visible"]:this.table.options.persistence.columns},this.config.page&&(e=this.retreiveData("page"))&&(void 0===e.paginationSize||!0!==this.config.page&&!this.config.page.size||(this.table.options.paginationSize=e.paginationSize),void 0===e.paginationInitialPage||!0!==this.config.page&&!this.config.page.page||(this.table.options.paginationInitialPage=e.paginationInitialPage)),this.config.group&&(e=this.retreiveData("group"))&&(void 0===e.groupBy||!0!==this.config.group&&!this.config.group.groupBy||(this.table.options.groupBy=e.groupBy),void 0===e.groupStartOpen||!0!==this.config.group&&!this.config.group.groupStartOpen||(this.table.options.groupStartOpen=e.groupStartOpen),void 0===e.groupHeader||!0!==this.config.group&&!this.config.group.groupHeader||(this.table.options.groupHeader=e.groupHeader))},I.prototype.initializeColumn=function(e){var t,o,i=this;this.config.columns&&(this.defWatcherBlock=!0,t=e.getDefinition(),o=!0===this.config.columns?Object.keys(t):this.config.columns,o.forEach(function(e){var o=Object.getOwnPropertyDescriptor(t,e),n=t[e];o&&Object.defineProperty(t,e,{set:function(e){n=e,i.defWatcherBlock||i.save("columns"),o.set&&o.set(e)},get:function(){return o.get&&o.get(),n}})}),this.defWatcherBlock=!1)},I.prototype.load=function(e,t){var o=this.retreiveData(e);return t&&(o=o?this.mergeDefinition(t,o):t),o},I.prototype.retreiveData=function(e){return!!this.readFunc&&this.readFunc(this.id,e)},I.prototype.mergeDefinition=function(e,t){var o=this,i=[];return t=t||[],t.forEach(function(t,n){var s,r=o._findColumn(e,t);r&&(!0===o.config.columns||void 0==o.config.columns?(s=Object.keys(r),s.push("width")):s=o.config.columns,s.forEach(function(e){void 0!==t[e]&&(r[e]=t[e])}),r.columns&&(r.columns=o.mergeDefinition(r.columns,t.columns)),i.push(r))}),e.forEach(function(e,n){o._findColumn(t,e)||(i.length>n?i.splice(n,0,e):i.push(e))}),i},I.prototype._findColumn=function(e,t){var o=t.columns?"group":t.field?"field":"object";return e.find(function(e){switch(o){case"group":return e.title===t.title&&e.columns.length===t.columns.length;case"field":return e.field===t.field;case"object":return e===t}})},I.prototype.save=function(e){var t={};switch(e){case"columns":t=this.parseColumns(this.table.columnManager.getColumns());break;case"filter":t=this.table.modules.filter.getFilters();break;case"sort":t=this.validateSorters(this.table.modules.sort.getSort());break;case"group":t=this.getGroupConfig();break;case"page":t=this.getPageConfig()}this.writeFunc&&this.writeFunc(this.id,e,t)},I.prototype.validateSorters=function(e){return e.forEach(function(e){e.column=e.field,delete e.field}),e},I.prototype.getGroupConfig=function(){return this.config.group&&((!0===this.config.group||this.config.group.groupBy)&&(data.groupBy=this.table.options.groupBy),(!0===this.config.group||this.config.group.groupStartOpen)&&(data.groupStartOpen=this.table.options.groupStartOpen),(!0===this.config.group||this.config.group.groupHeader)&&(data.groupHeader=this.table.options.groupHeader)),data},I.prototype.getPageConfig=function(){var e={};return this.config.page&&((!0===this.config.page||this.config.page.size)&&(e.paginationSize=this.table.modules.page.getPageSize()),(!0===this.config.page||this.config.page.page)&&(e.paginationInitialPage=this.table.modules.page.getPage())),e},I.prototype.parseColumns=function(e){var t=this,o=[];return e.forEach(function(e){var i,n={},s=e.getDefinition();e.isGroup?(n.title=s.title,n.columns=t.parseColumns(e.getColumns())):(n.field=e.getField(),!0===t.config.columns||void 0==t.config.columns?(i=Object.keys(s),i.push("width")):i=t.config.columns,i.forEach(function(t){switch(t){case"width":n.width=e.getWidth();break;case"visible":n.visible=e.visible;break;default:n[t]=s[t]}})),o.push(n)}),o},I.prototype.readers={local:function(e,t){var o=localStorage.getItem(e+"-"+t);return!!o&&JSON.parse(o)},cookie:function(e,t){var o,i,n=document.cookie,s=e+"-"+t,r=n.indexOf(s+"=");return r>-1&&(n=n.substr(r),o=n.indexOf(";"),o>-1&&(n=n.substr(0,o)),i=n.replace(s+"=","")),!!i&&JSON.parse(i)}},I.prototype.writers={local:function(e,t,o){localStorage.setItem(e+"-"+t,JSON.stringify(o))},cookie:function(e,t,o){var i=new Date;i.setDate(i.getDate()+1e4),document.cookie=e+"-"+t+"="+JSON.stringify(o)+"; expires="+i.toUTCString()}},d.prototype.registerModule("persistence",I);var j=function(e){this.table=e,this.element=!1,this.manualBlock=!1};j.prototype.initialize=function(){window.addEventListener("beforeprint",this.replaceTable.bind(this)),window.addEventListener("afterprint",this.cleanup.bind(this))},j.prototype.replaceTable=function(){this.manualBlock||(this.element=document.createElement("div"),this.element.classList.add("tabulator-print-table"),this.element.appendChild(this.table.modules.export.genereateTable(this.table.options.printConfig,this.table.options.printStyled,this.table.options.printRowRange,"print")),this.table.element.style.display="none",this.table.element.parentNode.insertBefore(this.element,this.table.element))},j.prototype.cleanup=function(){document.body.classList.remove("tabulator-print-fullscreen-hide"),this.element&&this.element.parentNode&&(this.element.parentNode.removeChild(this.element),this.table.element.style.display="")},j.prototype.printFullscreen=function(e,t,o){var i,n,s=window.scrollX,r=window.scrollY,a=document.createElement("div"),l=document.createElement("div"),c=this.table.modules.export.genereateTable(void 0!==o?o:this.table.options.printConfig,void 0!==t?t:this.table.options.printStyled,e,"print");this.manualBlock=!0,this.element=document.createElement("div"),this.element.classList.add("tabulator-print-fullscreen"),this.table.options.printHeader&&(a.classList.add("tabulator-print-header"),i="function"==typeof this.table.options.printHeader?this.table.options.printHeader.call(this.table):this.table.options.printHeader,"string"==typeof i?a.innerHTML=i:a.appendChild(i),this.element.appendChild(a)),this.element.appendChild(c),this.table.options.printFooter&&(l.classList.add("tabulator-print-footer"),n="function"==typeof this.table.options.printFooter?this.table.options.printFooter.call(this.table):this.table.options.printFooter,"string"==typeof n?l.innerHTML=n:l.appendChild(n),this.element.appendChild(l)),document.body.classList.add("tabulator-print-fullscreen-hide"),document.body.appendChild(this.element),this.table.options.printFormatter&&this.table.options.printFormatter(this.element,c),window.print(),this.cleanup(),window.scrollTo(s,r),this.manualBlock=!1},d.prototype.registerModule("print",j);var V=function(e){this.table=e,this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0};V.prototype.watchData=function(e){var t,o=this;this.currentVersion++,t=this.currentVersion,o.unwatchData(),o.data=e,o.origFuncs.push=e.push,Object.defineProperty(o.data,"push",{enumerable:!1,configurable:!0,value:function(){var i=Array.from(arguments);return o.blocked||t!==o.currentVersion||i.forEach(function(e){o.table.rowManager.addRowActual(e,!1)}),o.origFuncs.push.apply(e,arguments)}}),o.origFuncs.unshift=e.unshift,Object.defineProperty(o.data,"unshift",{enumerable:!1,configurable:!0,value:function(){var i=Array.from(arguments);return o.blocked||t!==o.currentVersion||i.forEach(function(e){o.table.rowManager.addRowActual(e,!0)}),o.origFuncs.unshift.apply(e,arguments)}}),o.origFuncs.shift=e.shift,Object.defineProperty(o.data,"shift",{enumerable:!1,configurable:!0,value:function(){var i;return o.blocked||t!==o.currentVersion||o.data.length&&(i=o.table.rowManager.getRowFromDataObject(o.data[0]))&&i.deleteActual(),o.origFuncs.shift.call(e)}}),o.origFuncs.pop=e.pop,Object.defineProperty(o.data,"pop",{enumerable:!1,configurable:!0,value:function(){var i;return o.blocked||t!==o.currentVersion||o.data.length&&(i=o.table.rowManager.getRowFromDataObject(o.data[o.data.length-1]))&&i.deleteActual(),o.origFuncs.pop.call(e)}}),o.origFuncs.splice=e.splice,Object.defineProperty(o.data,"splice",{enumerable:!1,configurable:!0,value:function(){var i,n=Array.from(arguments),s=n[0]<0?e.length+n[0]:n[0],r=n[1],a=!!n[2]&&n.slice(2);if(!o.blocked&&t===o.currentVersion){if(a&&(i=!!e[s]&&o.table.rowManager.getRowFromDataObject(e[s]),i?a.forEach(function(e){o.table.rowManager.addRowActual(e,!0,i,!0)}):(a=a.slice().reverse(),a.forEach(function(e){o.table.rowManager.addRowActual(e,!0,!1,!0)}))),0!==r){var l=e.slice(s,void 0===n[1]?n[1]:s+r);l.forEach(function(e,t){var i=o.table.rowManager.getRowFromDataObject(e);i&&i.deleteActual(t!==l.length-1)})}(a||0!==r)&&o.table.rowManager.reRenderInPosition()}return o.origFuncs.splice.apply(e,arguments)}})},V.prototype.unwatchData=function(){if(!1!==this.data)for(var e in this.origFuncs)Object.defineProperty(this.data,e,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs.key})},V.prototype.watchRow=function(e){var t=e.getData();this.blocked=!0;for(var o in t)this.watchKey(e,t,o);this.blocked=!1},V.prototype.watchKey=function(e,t,o){var i=this,n=Object.getOwnPropertyDescriptor(t,o),s=t[o],r=this.currentVersion;Object.defineProperty(t,o,{set:function(t){if(s=t,!i.blocked&&r===i.currentVersion){var a={};a[o]=t,e.updateData(a)}n.set&&n.set(t)},get:function(){return n.get&&n.get(),s}})},V.prototype.unwatchRow=function(e){var t=e.getData();for(var o in t)Object.defineProperty(t,o,{value:t[o]})},V.prototype.block=function(){this.blocked=!0},V.prototype.unblock=function(){this.blocked=!1},d.prototype.registerModule("reactiveData",V);var W=function(e){this.table=e,this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.handle=null,this.prevHandle=null};W.prototype.initializeColumn=function(e,t,o){var i=this,n=!1,s=this.table.options.resizableColumns;if("header"===e&&(n="textarea"==t.definition.formatter||t.definition.variableHeight,t.modules.resize={variableHeight:n}),!0===s||s==e){var r=document.createElement("div");r.className="tabulator-col-resize-handle";var a=document.createElement("div");a.className="tabulator-col-resize-handle prev",r.addEventListener("click",function(e){e.stopPropagation()});var l=function(e){var o=t.getLastColumn();o&&i._checkResizability(o)&&(i.startColumn=t,i._mouseDown(e,o,r))};r.addEventListener("mousedown",l),r.addEventListener("touchstart",l,{passive:!0}),r.addEventListener("dblclick",function(e){var o=t.getLastColumn();o&&i._checkResizability(o)&&(e.stopPropagation(),o.reinitializeWidth(!0))}),a.addEventListener("click",function(e){e.stopPropagation()});var c=function(e){var o,n,s;(o=t.getFirstColumn())&&(n=i.table.columnManager.findColumnIndex(o),(s=n>0&&i.table.columnManager.getColumnByIndex(n-1))&&i._checkResizability(s)&&(i.startColumn=t,i._mouseDown(e,s,a)))};a.addEventListener("mousedown",c),a.addEventListener("touchstart",c,{passive:!0}),a.addEventListener("dblclick",function(e){var o,n,s;(o=t.getFirstColumn())&&(n=i.table.columnManager.findColumnIndex(o),(s=n>0&&i.table.columnManager.getColumnByIndex(n-1))&&i._checkResizability(s)&&(e.stopPropagation(),s.reinitializeWidth(!0)))}),o.appendChild(r),o.appendChild(a)}},W.prototype._checkResizability=function(e){return void 0!==e.definition.resizable?e.definition.resizable:this.table.options.resizableColumns},W.prototype._mouseDown=function(e,t,o){function i(e){t.setWidth(s.startWidth+((void 0===e.screenX?e.touches[0].screenX:e.screenX)-s.startX)),!s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights()}function n(e){s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!1),s.table.browserSlow&&t.modules.resize&&t.modules.resize.variableHeight&&t.checkCellHeights(),document.body.removeEventListener("mouseup",n),document.body.removeEventListener("mousemove",i),o.removeEventListener("touchmove",i),o.removeEventListener("touchend",n),s.table.element.classList.remove("tabulator-block-select"),s.table.options.persistence&&s.table.modExists("persistence",!0)&&s.table.modules.persistence.config.columns&&s.table.modules.persistence.save("columns"),s.table.options.columnResized.call(s.table,t.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),s.startColumn.modules.edit&&(s.startColumn.modules.edit.blocked=!0),s.startX=void 0===e.screenX?e.touches[0].screenX:e.screenX,s.startWidth=t.getWidth(),document.body.addEventListener("mousemove",i),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",i,{passive:!0}),o.addEventListener("touchend",n)},d.prototype.registerModule("resizeColumns",W);var G=function(e){this.table=e,this.startColumn=!1,this.startY=!1,this.startHeight=!1,this.handle=null,this.prevHandle=null};G.prototype.initializeRow=function(e){var t=this,o=e.getElement(),i=document.createElement("div");i.className="tabulator-row-resize-handle";var n=document.createElement("div");n.className="tabulator-row-resize-handle prev",i.addEventListener("click",function(e){e.stopPropagation()});var s=function(o){t.startRow=e,t._mouseDown(o,e,i)};i.addEventListener("mousedown",s),i.addEventListener("touchstart",s,{passive:!0}),n.addEventListener("click",function(e){e.stopPropagation()});var r=function(o){var i=t.table.rowManager.prevDisplayRow(e);i&&(t.startRow=i,t._mouseDown(o,i,n))};n.addEventListener("mousedown",r),n.addEventListener("touchstart",r,{passive:!0}),o.appendChild(i),o.appendChild(n)},G.prototype._mouseDown=function(e,t,o){function i(e){t.setHeight(s.startHeight+((void 0===e.screenY?e.touches[0].screenY:e.screenY)-s.startY))}function n(e){document.body.removeEventListener("mouseup",i),document.body.removeEventListener("mousemove",i),o.removeEventListener("touchmove",i),o.removeEventListener("touchend",n),s.table.element.classList.remove("tabulator-block-select"),s.table.options.rowResized.call(this.table,t.getComponent())}var s=this;s.table.element.classList.add("tabulator-block-select"),e.stopPropagation(),s.startY=void 0===e.screenY?e.touches[0].screenY:e.screenY,s.startHeight=t.getHeight(),document.body.addEventListener("mousemove",i),document.body.addEventListener("mouseup",n),o.addEventListener("touchmove",i,{passive:!0}),o.addEventListener("touchend",n)},d.prototype.registerModule("resizeRows",G);var U=function(e){this.table=e,this.binding=!1,this.observer=!1,this.containerObserver=!1,this.tableHeight=0,this.tableWidth=0,this.containerHeight=0,this.containerWidth=0,this.autoResize=!1};U.prototype.initialize=function(e){var t,o=this,i=this.table;this.tableHeight=i.element.clientHeight,this.tableWidth=i.element.clientWidth,i.element.parentNode&&(this.containerHeight=i.element.parentNode.clientHeight,this.containerWidth=i.element.parentNode.clientWidth),"undefined"!=typeof ResizeObserver&&"virtual"===i.rowManager.getRenderMode()?(this.autoResize=!0,this.observer=new ResizeObserver(function(e){if(!i.browserMobile||i.browserMobile&&!i.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),n=Math.floor(e[0].contentRect.width);o.tableHeight==t&&o.tableWidth==n||(o.tableHeight=t,o.tableWidth=n,i.element.parentNode&&(o.containerHeight=i.element.parentNode.clientHeight,o.containerWidth=i.element.parentNode.clientWidth),i.redraw())}}),this.observer.observe(i.element),t=window.getComputedStyle(i.element),this.table.element.parentNode&&!this.table.rowManager.fixedHeight&&(t.getPropertyValue("max-height")||t.getPropertyValue("min-height"))&&(this.containerObserver=new ResizeObserver(function(e){if(!i.browserMobile||i.browserMobile&&!i.modules.edit.currentCell){var t=Math.floor(e[0].contentRect.height),n=Math.floor(e[0].contentRect.width);o.containerHeight==t&&o.containerWidth==n||(o.containerHeight=t,o.containerWidth=n,o.tableHeight=i.element.clientHeight,o.tableWidth=i.element.clientWidth,i.redraw()),i.redraw()}}),this.containerObserver.observe(this.table.element.parentNode))):(this.binding=function(){(!i.browserMobile||i.browserMobile&&!i.modules.edit.currentCell)&&i.redraw()},window.addEventListener("resize",this.binding))},U.prototype.clearBindings=function(e){this.binding&&window.removeEventListener("resize",this.binding),this.observer&&this.observer.unobserve(this.table.element),this.containerObserver&&this.containerObserver.unobserve(this.table.element.parentNode)},d.prototype.registerModule("resizeTable",U);var Y=function(e){this.table=e,this.columns=[],this.hiddenColumns=[],this.mode="",this.index=0,this.collapseFormatter=[],this.collapseStartOpen=!0,this.collapseHandleColumn=!1};Y.prototype.initialize=function(){var e=this,t=[];this.mode=this.table.options.responsiveLayout,this.collapseFormatter=this.table.options.responsiveLayoutCollapseFormatter||this.formatCollapsedData,this.collapseStartOpen=this.table.options.responsiveLayoutCollapseStartOpen,this.hiddenColumns=[],this.table.columnManager.columnsByIndex.forEach(function(o,i){o.modules.responsive&&o.modules.responsive.order&&o.modules.responsive.visible&&(o.modules.responsive.index=i,t.push(o),o.visible||"collapse"!==e.mode||e.hiddenColumns.push(o))}),t=t.reverse(),t=t.sort(function(e,t){return t.modules.responsive.order-e.modules.responsive.order||t.modules.responsive.index-e.modules.responsive.index}),this.columns=t,"collapse"===this.mode&&this.generateCollapsedContent();for(var o=this.table.columnManager.columnsByIndex,i=Array.isArray(o),n=0,o=i?o:o[Symbol.iterator]();;){var s;if(i){if(n>=o.length)break;s=o[n++]}else{if(n=o.next(),n.done)break;s=n.value}var r=s;if("responsiveCollapse"==r.definition.formatter){this.collapseHandleColumn=r;break}}this.collapseHandleColumn&&(this.hiddenColumns.length?this.collapseHandleColumn.show():this.collapseHandleColumn.hide())},Y.prototype.initializeColumn=function(e){var t=e.getDefinition();e.modules.responsive={order:void 0===t.responsive?1:t.responsive,visible:!1!==t.visible}},Y.prototype.initializeRow=function(e){var t;"calc"!==e.type&&(t=document.createElement("div"),t.classList.add("tabulator-responsive-collapse"),e.modules.responsiveLayout={element:t,open:this.collapseStartOpen},this.collapseStartOpen||(t.style.display="none"))},Y.prototype.layoutRow=function(e){var t=e.getElement();e.modules.responsiveLayout&&(t.appendChild(e.modules.responsiveLayout.element),this.generateCollapsedRowContent(e))},Y.prototype.updateColumnVisibility=function(e,t){e.modules.responsive&&(e.modules.responsive.visible=t,this.initialize())},Y.prototype.hideColumn=function(e){var t=this.hiddenColumns.length;e.hide(!1,!0),"collapse"===this.mode&&(this.hiddenColumns.unshift(e),this.generateCollapsedContent(),this.collapseHandleColumn&&!t&&this.collapseHandleColumn.show())},Y.prototype.showColumn=function(e){var t;e.show(!1,!0),e.setWidth(e.getWidth()),"collapse"===this.mode&&(t=this.hiddenColumns.indexOf(e),t>-1&&this.hiddenColumns.splice(t,1),this.generateCollapsedContent(),this.collapseHandleColumn&&!this.hiddenColumns.length&&this.collapseHandleColumn.hide())},Y.prototype.update=function(){for(var e=this,t=!0;t;){var o="fitColumns"==e.table.modules.layout.getMode()?e.table.columnManager.getFlexBaseWidth():e.table.columnManager.getWidth(),i=(e.table.options.headerVisible?e.table.columnManager.element.clientWidth:e.table.element.clientWidth)-o;if(i<0){var n=e.columns[e.index];n?(e.hideColumn(n),e.index++):t=!1}else{var s=e.columns[e.index-1]
-;s&&i>0&&i>=s.getWidth()?(e.showColumn(s),e.index--):t=!1}e.table.rowManager.activeRowsCount||e.table.rowManager.renderEmptyScroll()}},Y.prototype.generateCollapsedContent=function(){var e=this;this.table.rowManager.getDisplayRows().forEach(function(t){e.generateCollapsedRowContent(t)})},Y.prototype.generateCollapsedRowContent=function(e){var t,o;if(e.modules.responsiveLayout){for(t=e.modules.responsiveLayout.element;t.firstChild;)t.removeChild(t.firstChild);o=this.collapseFormatter(this.generateCollapsedRowData(e)),o&&t.appendChild(o)}},Y.prototype.generateCollapsedRowData=function(e){var t,o=this,i=e.getData(),n=[];return this.hiddenColumns.forEach(function(s){var r=s.getFieldValue(i);s.definition.title&&s.field&&(s.modules.format&&o.table.options.responsiveLayoutCollapseUseFormatters?(t={value:!1,data:{},getValue:function(){return r},getData:function(){return i},getElement:function(){return document.createElement("div")},getRow:function(){return e.getComponent()},getColumn:function(){return s.getComponent()}},n.push({title:s.definition.title,value:s.modules.format.formatter.call(o.table.modules.format,t,s.modules.format.params)})):n.push({title:s.definition.title,value:r}))}),n},Y.prototype.formatCollapsedData=function(e){var t=document.createElement("table"),o="";return e.forEach(function(e){var t=document.createElement("div");e.value instanceof Node&&(t.appendChild(e.value),e.value=t.innerHTML),o+="<tr><td><strong>"+e.title+"</strong></td><td>"+e.value+"</td></tr>"}),t.innerHTML=o,Object.keys(e).length?t:""},d.prototype.registerModule("responsiveLayout",Y);var q=function(e){this.table=e,this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],this.headerCheckboxElement=null};q.prototype.clearSelectionData=function(e){this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],e||this._rowSelectionChanged()},q.prototype.initializeRow=function(e){var t=this,o=e.getElement(),i=function e(){setTimeout(function(){t.selecting=!1},50),document.body.removeEventListener("mouseup",e)};e.modules.select={selected:!1},t.table.options.selectableCheck.call(this.table,e.getComponent())?(o.classList.add("tabulator-selectable"),o.classList.remove("tabulator-unselectable"),t.table.options.selectable&&"highlight"!=t.table.options.selectable&&("click"===t.table.options.selectableRangeMode?o.addEventListener("click",function(o){if(o.shiftKey){t.table._clearSelection(),t.lastClickedRow=t.lastClickedRow||e;var i=t.table.rowManager.getDisplayRowIndex(t.lastClickedRow),n=t.table.rowManager.getDisplayRowIndex(e),s=i<=n?i:n,r=i>=n?i:n,a=t.table.rowManager.getDisplayRows().slice(0),l=a.splice(s,r-s+1);o.ctrlKey||o.metaKey?(l.forEach(function(o){o!==t.lastClickedRow&&(!0===t.table.options.selectable||t.isRowSelected(e)?t.toggleRow(o):t.selectedRows.length<t.table.options.selectable&&t.toggleRow(o))}),t.lastClickedRow=e):(t.deselectRows(void 0,!0),!0!==t.table.options.selectable&&l.length>t.table.options.selectable&&(l=l.slice(0,t.table.options.selectable)),t.selectRows(l)),t.table._clearSelection()}else o.ctrlKey||o.metaKey?(t.toggleRow(e),t.lastClickedRow=e):(t.deselectRows(void 0,!0),t.selectRows(e),t.lastClickedRow=e)}):(o.addEventListener("click",function(o){t.table.modExists("edit")&&t.table.modules.edit.getCurrentCell()||t.table._clearSelection(),t.selecting||t.toggleRow(e)}),o.addEventListener("mousedown",function(o){if(o.shiftKey)return t.table._clearSelection(),t.selecting=!0,t.selectPrev=[],document.body.addEventListener("mouseup",i),document.body.addEventListener("keyup",i),t.toggleRow(e),!1}),o.addEventListener("mouseenter",function(o){t.selecting&&(t.table._clearSelection(),t.toggleRow(e),t.selectPrev[1]==e&&t.toggleRow(t.selectPrev[0]))}),o.addEventListener("mouseout",function(o){t.selecting&&(t.table._clearSelection(),t.selectPrev.unshift(e))})))):(o.classList.add("tabulator-unselectable"),o.classList.remove("tabulator-selectable"))},q.prototype.toggleRow=function(e){this.table.options.selectableCheck.call(this.table,e.getComponent())&&(e.modules.select&&e.modules.select.selected?this._deselectRow(e):this._selectRow(e))},q.prototype.selectRows=function(e){var t,o=this;switch(void 0===e?"undefined":_typeof(e)){case"undefined":this.table.rowManager.rows.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;case"string":t=this.table.rowManager.findRow(e),t?this._selectRow(t,!0,!0):this.table.rowManager.getRows(e).forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged();break;default:Array.isArray(e)?(e.forEach(function(e){o._selectRow(e,!0,!0)}),this._rowSelectionChanged()):this._selectRow(e,!1,!0)}},q.prototype._selectRow=function(e,t,o){if(!isNaN(this.table.options.selectable)&&!0!==this.table.options.selectable&&!o&&this.selectedRows.length>=this.table.options.selectable){if(!this.table.options.selectableRollingSelection)return!1;this._deselectRow(this.selectedRows[0])}var i=this.table.rowManager.findRow(e);i?-1==this.selectedRows.indexOf(i)&&(i.modules.select||(i.modules.select={}),i.modules.select.selected=!0,i.modules.select.checkboxEl&&(i.modules.select.checkboxEl.checked=!0),i.getElement().classList.add("tabulator-selected"),this.selectedRows.push(i),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(i,!0),t||this.table.options.rowSelected.call(this.table,i.getComponent()),this._rowSelectionChanged(t)):t||console.warn("Selection Error - No such row found, ignoring selection:"+e)},q.prototype.isRowSelected=function(e){return-1!==this.selectedRows.indexOf(e)},q.prototype.deselectRows=function(e,t){var o,i=this;if(void 0===e){o=i.selectedRows.length;for(var n=0;n<o;n++)i._deselectRow(i.selectedRows[0],!0);i._rowSelectionChanged(t)}else Array.isArray(e)?(e.forEach(function(e){i._deselectRow(e,!0)}),i._rowSelectionChanged(t)):i._deselectRow(e,t)},q.prototype._deselectRow=function(e,t){var o,i=this,n=i.table.rowManager.findRow(e);n?(o=i.selectedRows.findIndex(function(e){return e==n}))>-1&&(n.modules.select||(n.modules.select={}),n.modules.select.selected=!1,n.modules.select.checkboxEl&&(n.modules.select.checkboxEl.checked=!1),n.getElement().classList.remove("tabulator-selected"),i.selectedRows.splice(o,1),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(n,!1),t||i.table.options.rowDeselected.call(this.table,n.getComponent()),i._rowSelectionChanged(t)):t||console.warn("Deselection Error - No such row found, ignoring selection:"+e)},q.prototype.getSelectedData=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getData())}),e},q.prototype.getSelectedRows=function(){var e=[];return this.selectedRows.forEach(function(t){e.push(t.getComponent())}),e},q.prototype._rowSelectionChanged=function(e){this.headerCheckboxElement&&(0===this.selectedRows.length?(this.headerCheckboxElement.checked=!1,this.headerCheckboxElement.indeterminate=!1):this.table.rowManager.rows.length===this.selectedRows.length?(this.headerCheckboxElement.checked=!0,this.headerCheckboxElement.indeterminate=!1):(this.headerCheckboxElement.indeterminate=!0,this.headerCheckboxElement.checked=!1)),e||this.table.options.rowSelectionChanged.call(this.table,this.getSelectedData(),this.getSelectedRows())},q.prototype.registerRowSelectCheckbox=function(e,t){e._row.modules.select||(e._row.modules.select={}),e._row.modules.select.checkboxEl=t},q.prototype.registerHeaderSelectCheckbox=function(e){this.headerCheckboxElement=e},q.prototype.childRowSelection=function(e,t){var o=this.table.modules.dataTree.getChildren(e);if(t)for(var i=o,n=Array.isArray(i),s=0,i=n?i:i[Symbol.iterator]();;){var r;if(n){if(s>=i.length)break;r=i[s++]}else{if(s=i.next(),s.done)break;r=s.value}var a=r;this._selectRow(a,!0)}else for(var l=o,c=Array.isArray(l),u=0,l=c?l:l[Symbol.iterator]();;){var d;if(c){if(u>=l.length)break;d=l[u++]}else{if(u=l.next(),u.done)break;d=u.value}var h=d;this._deselectRow(h,!0)}},d.prototype.registerModule("selectRow",q);var X=function(e){this.table=e,this.sortList=[],this.changed=!1};X.prototype.initializeColumn=function(e,t){var o,i,n=this,s=!1;switch(_typeof(e.definition.sorter)){case"string":n.sorters[e.definition.sorter]?s=n.sorters[e.definition.sorter]:console.warn("Sort Error - No such sorter found: ",e.definition.sorter);break;case"function":s=e.definition.sorter}e.modules.sort={sorter:s,dir:"none",params:e.definition.sorterParams||{},startingDir:e.definition.headerSortStartingDir||"asc",tristate:void 0!==e.definition.headerSortTristate?e.definition.headerSortTristate:this.table.options.headerSortTristate},(void 0===e.definition.headerSort?!1!==this.table.options.headerSort:!1!==e.definition.headerSort)&&(o=e.getElement(),o.classList.add("tabulator-sortable"),i=document.createElement("div"),i.classList.add("tabulator-arrow"),t.appendChild(i),o.addEventListener("click",function(t){var o="",i=[],s=!1;if(e.modules.sort){if(e.modules.sort.tristate)o="none"==e.modules.sort.dir?e.modules.sort.startingDir:e.modules.sort.dir==e.modules.sort.startingDir?"asc"==e.modules.sort.dir?"desc":"asc":"none";else switch(e.modules.sort.dir){case"asc":o="desc";break;case"desc":o="asc";break;default:o=e.modules.sort.startingDir}n.table.options.columnHeaderSortMulti&&(t.shiftKey||t.ctrlKey)?(i=n.getSort(),s=i.findIndex(function(t){return t.field===e.getField()}),s>-1?(i[s].dir=o,s!=i.length-1&&(s=i.splice(s,1)[0],"none"!=o&&i.push(s))):"none"!=o&&i.push({column:e,dir:o}),n.setSort(i)):"none"==o?n.clear():n.setSort(e,o),n.table.rowManager.sorterRefresh(!n.sortList.length)}}))},X.prototype.hasChanged=function(){var e=this.changed;return this.changed=!1,e},X.prototype.getSort=function(){var e=this,t=[];return e.sortList.forEach(function(e){e.column&&t.push({column:e.column.getComponent(),field:e.column.getField(),dir:e.dir})}),t},X.prototype.setSort=function(e,t){var o=this,i=[];Array.isArray(e)||(e=[{column:e,dir:t}]),e.forEach(function(e){var t;t=o.table.columnManager.findColumn(e.column),t?(e.column=t,i.push(e),o.changed=!0):console.warn("Sort Warning - Sort field does not exist and is being ignored: ",e.column)}),o.sortList=i,this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.sort&&this.table.modules.persistence.save("sort")},X.prototype.clear=function(){this.setSort([])},X.prototype.findSorter=function(e){var t,o=this.table.rowManager.activeRows[0],i="string";if(o&&(o=o.getData(),e.getField()))switch(t=e.getFieldValue(o),void 0===t?"undefined":_typeof(t)){case"undefined":i="string";break;case"boolean":i="boolean";break;default:isNaN(t)||""===t?t.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)&&(i="alphanum"):i="number"}return this.sorters[i]},X.prototype.sort=function(e){var t=this,o=this.table.options.sortOrderReverse?t.sortList.slice().reverse():t.sortList,i=[],n=[];t.table.options.dataSorting&&t.table.options.dataSorting.call(t.table,t.getSort()),t.clearColumnHeaders(),t.table.options.ajaxSorting?o.forEach(function(e,o){t.setColumnHeader(e.column,e.dir)}):(o.forEach(function(e,o){var n=e.column.modules.sort;e.column&&n&&(n.sorter||(n.sorter=t.findSorter(e.column)),e.params="function"==typeof n.params?n.params(e.column.getComponent(),e.dir):n.params,i.push(e)),t.setColumnHeader(e.column,e.dir)}),i.length&&t._sortItems(e,i)),t.table.options.dataSorted&&(e.forEach(function(e){n.push(e.getComponent())}),t.table.options.dataSorted.call(t.table,t.getSort(),n))},X.prototype.clearColumnHeaders=function(){this.table.columnManager.getRealColumns().forEach(function(e){e.modules.sort&&(e.modules.sort.dir="none",e.getElement().setAttribute("aria-sort","none"))})},X.prototype.setColumnHeader=function(e,t){e.modules.sort.dir=t,e.getElement().setAttribute("aria-sort",t)},X.prototype._sortItems=function(e,t){var o=this,i=t.length-1;e.sort(function(e,n){for(var s,r=i;r>=0;r--){var a=t[r];if(0!==(s=o._sortRow(e,n,a.column,a.dir,a.params)))break}return s})},X.prototype._sortRow=function(e,t,o,i,n){var s,r,a="asc"==i?e:t,l="asc"==i?t:e;return e=o.getFieldValue(a.getData()),t=o.getFieldValue(l.getData()),e=void 0!==e?e:"",t=void 0!==t?t:"",s=a.getComponent(),r=l.getComponent(),o.modules.sort.sorter.call(this,e,t,s,r,o.getComponent(),i,n)},X.prototype.sorters={number:function(e,t,o,i,n,s,r){var a=r.alignEmptyValues,l=r.decimalSeparator||".",c=r.thousandSeparator||",",u=0;if(e=parseFloat(String(e).split(c).join("").split(l).join(".")),t=parseFloat(String(t).split(c).join("").split(l).join(".")),isNaN(e))u=isNaN(t)?0:-1;else{if(!isNaN(t))return e-t;u=1}return("top"===a&&"desc"===s||"bottom"===a&&"asc"===s)&&(u*=-1),u},string:function(e,t,o,i,n,s,r){var a,l=r.alignEmptyValues,c=0;if(e){if(t){switch(_typeof(r.locale)){case"boolean":r.locale&&(a=this.table.modules.localize.getLocale());break;case"string":a=r.locale}return String(e).toLowerCase().localeCompare(String(t).toLowerCase(),a)}c=1}else c=t?-1:0;return("top"===l&&"desc"===s||"bottom"===l&&"asc"===s)&&(c*=-1),c},date:function(e,t,o,i,n,s,r){return r.format||(r.format="DD/MM/YYYY"),this.sorters.datetime.call(this,e,t,o,i,n,s,r)},time:function(e,t,o,i,n,s,r){return r.format||(r.format="HH:mm"),this.sorters.datetime.call(this,e,t,o,i,n,s,r)},datetime:function(e,t,o,i,n,s,r){var a=r.format||"DD/MM/YYYY HH:mm:ss",l=r.alignEmptyValues,c=0;if("undefined"!=typeof moment){if(e=moment(e,a),t=moment(t,a),e.isValid()){if(t.isValid())return e-t;c=1}else c=t.isValid()?-1:0;return("top"===l&&"desc"===s||"bottom"===l&&"asc"===s)&&(c*=-1),c}console.error("Sort Error - 'datetime' sorter is dependant on moment.js")},boolean:function(e,t,o,i,n,s,r){return(!0===e||"true"===e||"True"===e||1===e?1:0)-(!0===t||"true"===t||"True"===t||1===t?1:0)},array:function(e,t,o,i,n,s,r){function a(e){switch(u){case"length":return e.length;case"sum":return e.reduce(function(e,t){return e+t});case"max":return Math.max.apply(null,e);case"min":return Math.min.apply(null,e);case"avg":return e.reduce(function(e,t){return e+t})/e.length}}var l=0,c=0,u=r.type||"length",d=r.alignEmptyValues,h=0;if(Array.isArray(e)){if(Array.isArray(t))return l=e?a(e):0,c=t?a(t):0,l-c;d=1}else d=Array.isArray(t)?-1:0;return("top"===d&&"desc"===s||"bottom"===d&&"asc"===s)&&(h*=-1),h},exists:function(e,t,o,i,n,s,r){return(void 0===e?0:1)-(void 0===t?0:1)},alphanum:function(e,t,o,i,n,s,r){var a,l,c,u,d,h=0,p=/(\d+)|(\D+)/g,m=/\d/,f=r.alignEmptyValues,g=0;if(e||0===e){if(t||0===t){if(isFinite(e)&&isFinite(t))return e-t;if(a=String(e).toLowerCase(),l=String(t).toLowerCase(),a===l)return 0;if(!m.test(a)||!m.test(l))return a>l?1:-1;for(a=a.match(p),l=l.match(p),d=a.length>l.length?l.length:a.length;h<d;)if(c=a[h],u=l[h++],c!==u)return isFinite(c)&&isFinite(u)?("0"===c.charAt(0)&&(c="."+c),"0"===u.charAt(0)&&(u="."+u),c-u):c>u?1:-1;return a.length>l.length}g=1}else g=t||0===t?-1:0;return("top"===f&&"desc"===s||"bottom"===f&&"asc"===s)&&(g*=-1),g}},d.prototype.registerModule("sort",X);var K=function(e){this.table=e,this.invalidCells=[]};return K.prototype.initializeColumn=function(e){var t,o=this,i=[];e.definition.validator&&(Array.isArray(e.definition.validator)?e.definition.validator.forEach(function(e){(t=o._extractValidator(e))&&i.push(t)}):(t=this._extractValidator(e.definition.validator))&&i.push(t),e.modules.validate=!!i.length&&i)},K.prototype._extractValidator=function(e){var t,o,i;switch(void 0===e?"undefined":_typeof(e)){case"string":return i=e.indexOf(":"),i>-1?(t=e.substring(0,i),o=e.substring(i+1)):t=e,this._buildValidator(t,o);case"function":return this._buildValidator(e);case"object":return this._buildValidator(e.type,e.parameters)}},K.prototype._buildValidator=function(e,t){var o="function"==typeof e?e:this.validators[e];return o?{type:"function"==typeof e?"function":e,func:o,params:t}:(console.warn("Validator Setup Error - No matching validator found:",e),!1)},K.prototype.validate=function(e,t,o){var i=this,n=[],s=this.invalidCells.indexOf(t);return e&&e.forEach(function(e){e.func.call(i,t.getComponent(),o,e.params)||n.push({type:e.type,parameters:e.params})}),n=!n.length||n,t.modules.validate||(t.modules.validate={}),!0===n?(t.modules.validate.invalid=!1,t.getElement().classList.remove("tabulator-validation-fail"),s>-1&&this.invalidCells.splice(s,1)):(t.modules.validate.invalid=!0,"manual"!==this.table.options.validationMode&&t.getElement().classList.add("tabulator-validation-fail"),-1==s&&this.invalidCells.push(t)),n},K.prototype.getInvalidCells=function(){var e=[];return this.invalidCells.forEach(function(t){e.push(t.getComponent())}),e},K.prototype.clearValidation=function(e){var t;e.modules.validate&&e.modules.validate.invalid&&(e.element.classList.remove("tabulator-validation-fail"),e.modules.validate.invalid=!1,(t=this.invalidCells.indexOf(e))>-1&&this.invalidCells.splice(t,1))},K.prototype.validators={integer:function(e,t,o){return""===t||null===t||void 0===t||"number"==typeof(t=Number(t))&&isFinite(t)&&Math.floor(t)===t},float:function(e,t,o){return""===t||null===t||void 0===t||"number"==typeof(t=Number(t))&&isFinite(t)&&t%1!=0},numeric:function(e,t,o){return""===t||null===t||void 0===t||!isNaN(t)},string:function(e,t,o){return""===t||null===t||void 0===t||isNaN(t)},max:function(e,t,o){return""===t||null===t||void 0===t||parseFloat(t)<=o},min:function(e,t,o){return""===t||null===t||void 0===t||parseFloat(t)>=o},starts:function(e,t,o){return""===t||null===t||void 0===t||String(t).toLowerCase().startsWith(String(o).toLowerCase())},ends:function(e,t,o){return""===t||null===t||void 0===t||String(t).toLowerCase().endsWith(String(o).toLowerCase())},minLength:function(e,t,o){return""===t||null===t||void 0===t||String(t).length>=o},maxLength:function(e,t,o){return""===t||null===t||void 0===t||String(t).length<=o},in:function(e,t,o){return""===t||null===t||void 0===t||("string"==typeof o&&(o=o.split("|")),""===t||o.indexOf(t)>-1)},regex:function(e,t,o){return""===t||null===t||void 0===t||new RegExp(o).test(t)},unique:function(e,t,o){if(""===t||null===t||void 0===t)return!0;var i=!0,n=e.getData(),s=e.getColumn()._getSelf();return this.table.rowManager.rows.forEach(function(e){var o=e.getData();o!==n&&t==s.getFieldValue(o)&&(i=!1)}),i},required:function(e,t,o){return""!==t&&null!==t&&void 0!==t}},d.prototype.registerModule("validate",K),d});
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-
-'use strict';
-
-// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-if (!Array.prototype.findIndex) {
-
- Object.defineProperty(Array.prototype, 'findIndex', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
- // b. Let kValue be ? Get(O, Pk).
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
- // d. If testResult is true, return k.
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return k;
- }
-
- // e. Increase k by 1.
-
- k++;
- }
-
- // 7. Return -1.
-
- return -1;
- }
-
- });
-}
-
-// https://tc39.github.io/ecma262/#sec-array.prototype.find
-
-if (!Array.prototype.find) {
-
- Object.defineProperty(Array.prototype, 'find', {
-
- value: function value(predicate) {
-
- // 1. Let O be ? ToObject(this value).
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
- var len = o.length >>> 0;
-
- // 3. If IsCallable(predicate) is false, throw a TypeError exception.
-
- if (typeof predicate !== 'function') {
-
- throw new TypeError('predicate must be a function');
- }
-
- // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
-
- var thisArg = arguments[1];
-
- // 5. Let k be 0.
-
- var k = 0;
-
- // 6. Repeat, while k < len
-
- while (k < len) {
-
- // a. Let Pk be ! ToString(k).
-
- // b. Let kValue be ? Get(O, Pk).
-
- // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
-
- // d. If testResult is true, return kValue.
-
- var kValue = o[k];
-
- if (predicate.call(thisArg, kValue, k, o)) {
-
- return kValue;
- }
-
- // e. Increase k by 1.
-
- k++;
- }
-
- // 7. Return undefined.
-
- return undefined;
- }
-
- });
-}
-
-// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill
-
-if (!String.prototype.includes) {
-
- String.prototype.includes = function (search, start) {
-
- 'use strict';
-
- if (search instanceof RegExp) {
-
- throw TypeError('first argument must not be a RegExp');
- }
-
- if (start === undefined) {
- start = 0;
- }
-
- return this.indexOf(search, start) !== -1;
- };
-}
-
-// https://tc39.github.io/ecma262/#sec-array.prototype.includes
-
-if (!Array.prototype.includes) {
-
- Object.defineProperty(Array.prototype, 'includes', {
-
- value: function value(searchElement, fromIndex) {
-
- if (this == null) {
-
- throw new TypeError('"this" is null or not defined');
- }
-
- // 1. Let O be ? ToObject(this value).
-
- var o = Object(this);
-
- // 2. Let len be ? ToLength(? Get(O, "length")).
-
- var len = o.length >>> 0;
-
- // 3. If len is 0, return false.
-
- if (len === 0) {
-
- return false;
- }
-
- // 4. Let n be ? ToInteger(fromIndex).
-
- // (If fromIndex is undefined, this step produces the value 0.)
-
- var n = fromIndex | 0;
-
- // 5. If n ≥ 0, then
-
- // a. Let k be n.
-
- // 6. Else n < 0,
-
- // a. Let k be len + n.
-
- // b. If k < 0, let k be 0.
-
- var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
-
- function sameValueZero(x, y) {
-
- return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);
- }
-
- // 7. Repeat, while k < len
-
- while (k < len) {
-
- // a. Let elementK be the result of ? Get(O, ! ToString(k)).
-
- // b. If SameValueZero(searchElement, elementK) is true, return true.
-
- if (sameValueZero(o[k], searchElement)) {
-
- return true;
- }
-
- // c. Increase k by 1.
-
- k++;
- }
-
- // 8. Return false
-
- return false;
- }
-
- });
-}
-
-// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill
-
-if (typeof Object.assign !== 'function') {
-
- // Must be writable: true, enumerable: false, configurable: true
-
- Object.defineProperty(Object, "assign", {
-
- value: function assign(target, varArgs) {
- // .length of function is 2
-
- 'use strict';
-
- if (target === null || target === undefined) {
-
- throw new TypeError('Cannot convert undefined or null to object');
- }
-
- var to = Object(target);
-
- for (var index = 1; index < arguments.length; index++) {
-
- var nextSource = arguments[index];
-
- if (nextSource !== null && nextSource !== undefined) {
-
- for (var nextKey in nextSource) {
-
- // Avoid bugs when hasOwnProperty is shadowed
-
- if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
-
- to[nextKey] = nextSource[nextKey];
- }
- }
- }
- }
-
- return to;
- },
-
- writable: true,
-
- configurable: true
-
- });
-}
-
-var ColumnManager = function ColumnManager(table) {
-
- this.table = table; //hold parent table
-
- this.blockHozScrollEvent = false;
-
- this.headersElement = this.createHeadersElement();
-
- this.element = this.createHeaderElement(); //containing element
-
- this.rowManager = null; //hold row manager object
-
- this.columns = []; // column definition object
-
- this.columnsByIndex = []; //columns by index
-
- this.columnsByField = {}; //columns by field
-
- this.scrollLeft = 0;
-
- this.element.insertBefore(this.headersElement, this.element.firstChild);
-};
-
-////////////// Setup Functions /////////////////
-
-
-ColumnManager.prototype.createHeadersElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-headers");
-
- return el;
-};
-
-ColumnManager.prototype.createHeaderElement = function () {
-
- var el = document.createElement("div");
-
- el.classList.add("tabulator-header");
-
- if (!this.table.options.headerVisible) {
-
- el.classList.add("tabulator-header-hidden");
- }
-
- return el;
-};
-
-ColumnManager.prototype.initialize = function () {
-
- var self = this;
-
- //scroll body along with header
-
- // self.element.addEventListener("scroll", function(e){
-
- // if(!self.blockHozScrollEvent){
-
- // self.table.rowManager.scrollHorizontal(self.element.scrollLeft);
-
- // }
-
- // });
-};
-
-//link to row manager
-
-ColumnManager.prototype.setRowManager = function (manager) {
-
- this.rowManager = manager;
-};
-
-//return containing element
-
-ColumnManager.prototype.getElement = function () {
-
- return this.element;
-};
-
-//return header containing element
-
-ColumnManager.prototype.getHeadersElement = function () {
-
- return this.headersElement;
-};
-
-// ColumnManager.prototype.tempScrollBlock = function(){
-
-// clearTimeout(this.blockHozScrollEvent);
-
-// this.blockHozScrollEvent = setTimeout(() => {this.blockHozScrollEvent = false;}, 50);
-
-// }
-
-
-//scroll horizontally to match table body
-
-ColumnManager.prototype.scrollHorizontal = function (left) {
-
- var hozAdjust = 0,
- scrollWidth = this.element.scrollWidth - this.table.element.clientWidth;
-
- // this.tempScrollBlock();
-
- this.element.scrollLeft = left;
-
- //adjust for vertical scrollbar moving table when present
-
- if (left > scrollWidth) {
-
- hozAdjust = left - scrollWidth;
-
- this.element.style.marginLeft = -hozAdjust + "px";
- } else {
-
- this.element.style.marginLeft = 0;
- }
-
- //keep frozen columns fixed in position
-
- //this._calcFrozenColumnsPos(hozAdjust + 3);
-
-
- this.scrollLeft = left;
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.scrollHorizontal();
- }
-};
-
-///////////// Column Setup Functions /////////////
-
-
-ColumnManager.prototype.generateColumnsFromRowData = function (data) {
-
- var cols = [],
- row,
- sorter;
-
- if (data && data.length) {
-
- row = data[0];
-
- for (var key in row) {
-
- var col = {
-
- field: key,
-
- title: key
-
- };
-
- var value = row[key];
-
- switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
-
- case "undefined":
-
- sorter = "string";
-
- break;
-
- case "boolean":
-
- sorter = "boolean";
-
- break;
-
- case "object":
-
- if (Array.isArray(value)) {
-
- sorter = "array";
- } else {
-
- sorter = "string";
- }
-
- break;
-
- default:
-
- if (!isNaN(value) && value !== "") {
-
- sorter = "number";
- } else {
-
- if (value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)) {
-
- sorter = "alphanum";
- } else {
-
- sorter = "string";
- }
- }
-
- break;
-
- }
-
- col.sorter = sorter;
-
- cols.push(col);
- }
-
- this.table.options.columns = cols;
-
- this.setColumns(this.table.options.columns);
- }
-};
-
-ColumnManager.prototype.setColumns = function (cols, row) {
-
- var self = this;
-
- while (self.headersElement.firstChild) {
- self.headersElement.removeChild(self.headersElement.firstChild);
- }self.columns = [];
-
- self.columnsByIndex = [];
-
- self.columnsByField = {};
-
- //reset frozen columns
-
- if (self.table.modExists("frozenColumns")) {
-
- self.table.modules.frozenColumns.reset();
- }
-
- cols.forEach(function (def, i) {
-
- self._addColumn(def);
- });
-
- self._reIndexColumns();
-
- if (self.table.options.responsiveLayout && self.table.modExists("responsiveLayout", true)) {
-
- self.table.modules.responsiveLayout.initialize();
- }
-
- self.redraw(true);
-};
-
-ColumnManager.prototype._addColumn = function (definition, before, nextToColumn) {
-
- var column = new Column(definition, this),
- colEl = column.getElement(),
- index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
-
- if (nextToColumn && index > -1) {
-
- var parentIndex = this.columns.indexOf(nextToColumn.getTopColumn());
-
- var nextEl = nextToColumn.getElement();
-
- if (before) {
-
- this.columns.splice(parentIndex, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl);
- } else {
-
- this.columns.splice(parentIndex + 1, 0, column);
-
- nextEl.parentNode.insertBefore(colEl, nextEl.nextSibling);
- }
- } else {
-
- if (before) {
-
- this.columns.unshift(column);
-
- this.headersElement.insertBefore(column.getElement(), this.headersElement.firstChild);
- } else {
-
- this.columns.push(column);
-
- this.headersElement.appendChild(column.getElement());
- }
-
- column.columnRendered();
- }
-
- return column;
-};
-
-ColumnManager.prototype.registerColumnField = function (col) {
-
- if (col.definition.field) {
-
- this.columnsByField[col.definition.field] = col;
- }
-};
-
-ColumnManager.prototype.registerColumnPosition = function (col) {
-
- this.columnsByIndex.push(col);
-};
-
-ColumnManager.prototype._reIndexColumns = function () {
-
- this.columnsByIndex = [];
-
- this.columns.forEach(function (column) {
-
- column.reRegisterPosition();
- });
-};
-
-//ensure column headers take up the correct amount of space in column groups
-
-ColumnManager.prototype._verticalAlignHeaders = function () {
-
- var self = this,
- minHeight = 0;
-
- self.columns.forEach(function (column) {
-
- var height;
-
- column.clearVerticalAlign();
-
- height = column.getHeight();
-
- if (height > minHeight) {
-
- minHeight = height;
- }
- });
-
- self.columns.forEach(function (column) {
-
- column.verticalAlign(self.table.options.columnHeaderVertAlign, minHeight);
- });
-
- self.rowManager.adjustTableSize();
-};
-
-//////////////// Column Details /////////////////
-
-
-ColumnManager.prototype.findColumn = function (subject) {
-
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Column) {
-
- //subject is column element
-
- return subject;
- } else if (subject instanceof ColumnComponent) {
-
- //subject is public column component
-
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
-
- //subject is a HTML element of the column header
-
- var match = self.columns.find(function (column) {
-
- return column.element === subject;
- });
-
- return match || false;
- }
- } else {
-
- //subject should be treated as the field name of the column
-
- return this.columnsByField[subject] || false;
- }
-
- //catch all for any other type of input
-
-
- return false;
-};
-
-ColumnManager.prototype.getColumnByField = function (field) {
-
- return this.columnsByField[field];
-};
-
-ColumnManager.prototype.getColumnsByFieldRoot = function (root) {
- var _this = this;
-
- var matches = [];
-
- Object.keys(this.columnsByField).forEach(function (field) {
-
- var fieldRoot = field.split(".")[0];
-
- if (fieldRoot === root) {
-
- matches.push(_this.columnsByField[field]);
- }
- });
-
- return matches;
-};
-
-ColumnManager.prototype.getColumnByIndex = function (index) {
-
- return this.columnsByIndex[index];
-};
-
-ColumnManager.prototype.getFirstVisibileColumn = function (index) {
-
- var index = this.columnsByIndex.findIndex(function (col) {
-
- return col.visible;
- });
-
- return index > -1 ? this.columnsByIndex[index] : false;
-};
-
-ColumnManager.prototype.getColumns = function () {
-
- return this.columns;
-};
-
-ColumnManager.prototype.findColumnIndex = function (column) {
-
- return this.columnsByIndex.findIndex(function (col) {
-
- return column === col;
- });
-};
-
-//return all columns that are not groups
-
-ColumnManager.prototype.getRealColumns = function () {
-
- return this.columnsByIndex;
-};
-
-//travers across columns and call action
-
-ColumnManager.prototype.traverse = function (callback) {
-
- var self = this;
-
- self.columnsByIndex.forEach(function (column, i) {
-
- callback(column, i);
- });
-};
-
-//get defintions of actual columns
-
-ColumnManager.prototype.getDefinitions = function (active) {
-
- var self = this,
- output = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- if (!active || active && column.visible) {
-
- output.push(column.getDefinition());
- }
- });
-
- return output;
-};
-
-//get full nested definition tree
-
-ColumnManager.prototype.getDefinitionTree = function () {
-
- var self = this,
- output = [];
-
- self.columns.forEach(function (column) {
-
- output.push(column.getDefinition(true));
- });
-
- return output;
-};
-
-ColumnManager.prototype.getComponents = function (structured) {
-
- var self = this,
- output = [],
- columns = structured ? self.columns : self.columnsByIndex;
-
- columns.forEach(function (column) {
-
- output.push(column.getComponent());
- });
-
- return output;
-};
-
-ColumnManager.prototype.getWidth = function () {
-
- var width = 0;
-
- this.columnsByIndex.forEach(function (column) {
-
- if (column.visible) {
-
- width += column.getWidth();
- }
- });
-
- return width;
-};
-
-ColumnManager.prototype.moveColumn = function (from, to, after) {
-
- this.moveColumnActual(from, to, after);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- to.element.parentNode.insertBefore(from.element, to.element);
-
- if (after) {
-
- to.element.parentNode.insertBefore(to.element, from.element);
- }
-
- this._verticalAlignHeaders();
-
- this.table.rowManager.reinitialize();
-};
-
-ColumnManager.prototype.moveColumnActual = function (from, to, after) {
-
- if (from.parent.isGroup) {
-
- this._moveColumnInArray(from.parent.columns, from, to, after);
- } else {
-
- this._moveColumnInArray(this.columns, from, to, after);
- }
-
- this._moveColumnInArray(this.columnsByIndex, from, to, after, true);
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- if (this.table.options.columnMoved) {
-
- this.table.options.columnMoved.call(this.table, from.getComponent(), this.table.columnManager.getComponents());
- }
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-};
-
-ColumnManager.prototype._moveColumnInArray = function (columns, from, to, after, updateRows) {
-
- var fromIndex = columns.indexOf(from),
- toIndex;
-
- if (fromIndex > -1) {
-
- columns.splice(fromIndex, 1);
-
- toIndex = columns.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
-
- toIndex = toIndex + 1;
- }
- } else {
-
- toIndex = fromIndex;
- }
-
- columns.splice(toIndex, 0, from);
-
- if (updateRows) {
-
- this.table.rowManager.rows.forEach(function (row) {
-
- if (row.cells.length) {
-
- var cell = row.cells.splice(fromIndex, 1)[0];
-
- row.cells.splice(toIndex, 0, cell);
- }
- });
- }
- }
-};
-
-ColumnManager.prototype.scrollToColumn = function (column, position, ifVisible) {
- var _this2 = this;
-
- var left = 0,
- offset = 0,
- adjust = 0,
- colEl = column.getElement();
-
- return new Promise(function (resolve, reject) {
-
- if (typeof position === "undefined") {
-
- position = _this2.table.options.scrollToColumnPosition;
- }
-
- if (typeof ifVisible === "undefined") {
-
- ifVisible = _this2.table.options.scrollToColumnIfVisible;
- }
-
- if (column.visible) {
-
- //align to correct position
-
- switch (position) {
-
- case "middle":
-
- case "center":
-
- adjust = -_this2.element.clientWidth / 2;
-
- break;
-
- case "right":
-
- adjust = colEl.clientWidth - _this2.headersElement.clientWidth;
-
- break;
-
- }
-
- //check column visibility
-
- if (!ifVisible) {
-
- offset = colEl.offsetLeft;
-
- if (offset > 0 && offset + colEl.offsetWidth < _this2.element.clientWidth) {
-
- return false;
- }
- }
-
- //calculate scroll position
-
- left = colEl.offsetLeft + _this2.element.scrollLeft + adjust;
-
- left = Math.max(Math.min(left, _this2.table.rowManager.element.scrollWidth - _this2.table.rowManager.element.clientWidth), 0);
-
- _this2.table.rowManager.scrollHorizontal(left);
-
- _this2.scrollHorizontal(left);
-
- resolve();
- } else {
-
- console.warn("Scroll Error - Column not visible");
-
- reject("Scroll Error - Column not visible");
- }
- });
-};
-
-//////////////// Cell Management /////////////////
-
-
-ColumnManager.prototype.generateCells = function (row) {
-
- var self = this;
-
- var cells = [];
-
- self.columnsByIndex.forEach(function (column) {
-
- cells.push(column.generateCell(row));
- });
-
- return cells;
-};
-
-//////////////// Column Management /////////////////
-
-
-ColumnManager.prototype.getFlexBaseWidth = function () {
-
- var self = this,
- totalWidth = self.table.element.clientWidth,
- //table element width
-
- fixedWidth = 0;
-
- //adjust for vertical scrollbar if present
-
- if (self.rowManager.element.scrollHeight > self.rowManager.element.clientHeight) {
-
- totalWidth -= self.rowManager.element.offsetWidth - self.rowManager.element.clientWidth;
- }
-
- this.columnsByIndex.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width || 0;
-
- minWidth = typeof column.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(column.minWidth);
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
- }
- });
-
- return fixedWidth;
-};
-
-ColumnManager.prototype.addColumn = function (definition, before, nextToColumn) {
- var _this3 = this;
-
- return new Promise(function (resolve, reject) {
-
- var column = _this3._addColumn(definition, before, nextToColumn);
-
- _this3._reIndexColumns();
-
- if (_this3.table.options.responsiveLayout && _this3.table.modExists("responsiveLayout", true)) {
-
- _this3.table.modules.responsiveLayout.initialize();
- }
-
- if (_this3.table.modExists("columnCalcs")) {
-
- _this3.table.modules.columnCalcs.recalc(_this3.table.rowManager.activeRows);
- }
-
- _this3.redraw();
-
- if (_this3.table.modules.layout.getMode() != "fitColumns") {
-
- column.reinitializeWidth();
- }
-
- _this3._verticalAlignHeaders();
-
- _this3.table.rowManager.reinitialize();
-
- resolve(column);
- });
-};
-
-//remove column from system
-
-ColumnManager.prototype.deregisterColumn = function (column) {
-
- var field = column.getField(),
- index;
-
- //remove from field list
-
- if (field) {
-
- delete this.columnsByField[field];
- }
-
- //remove from index list
-
- index = this.columnsByIndex.indexOf(column);
-
- if (index > -1) {
-
- this.columnsByIndex.splice(index, 1);
- }
-
- //remove from column list
-
- index = this.columns.indexOf(column);
-
- if (index > -1) {
-
- this.columns.splice(index, 1);
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.initialize();
- }
-
- this.redraw();
-};
-
-//redraw columns
-
-ColumnManager.prototype.redraw = function (force) {
-
- if (force) {
-
- if (Tabulator.prototype.helpers.elVisible(this.element)) {
-
- this._verticalAlignHeaders();
- }
-
- this.table.rowManager.resetScroll();
-
- this.table.rowManager.reinitialize();
- }
-
- if (["fitColumns", "fitDataStretch"].indexOf(this.table.modules.layout.getMode()) > -1) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (force) {
-
- this.table.modules.layout.layout();
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
-
- this.table.modules.frozenColumns.layout();
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (force) {
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
-
- this.table.modules.persistence.save("columns");
- }
-
- if (this.table.modExists("columnCalcs")) {
-
- this.table.modules.columnCalcs.redraw();
- }
- }
-
- this.table.footerManager.redraw();
-};
-
-//public column object
-var ColumnComponent = function ColumnComponent(column) {
- this._column = column;
- this.type = "ColumnComponent";
-};
-
-ColumnComponent.prototype.getElement = function () {
- return this._column.getElement();
-};
-
-ColumnComponent.prototype.getDefinition = function () {
- return this._column.getDefinition();
-};
-
-ColumnComponent.prototype.getField = function () {
- return this._column.getField();
-};
-
-ColumnComponent.prototype.getCells = function () {
- var cells = [];
-
- this._column.cells.forEach(function (cell) {
- cells.push(cell.getComponent());
- });
-
- return cells;
-};
-
-ColumnComponent.prototype.getVisibility = function () {
- console.warn("getVisibility function is deprecated, you should now use the isVisible function");
- return this._column.visible;
-};
-
-ColumnComponent.prototype.isVisible = function () {
- return this._column.visible;
-};
-
-ColumnComponent.prototype.show = function () {
- if (this._column.isGroup) {
- this._column.columns.forEach(function (column) {
- column.show();
- });
- } else {
- this._column.show();
- }
-};
-
-ColumnComponent.prototype.hide = function () {
- if (this._column.isGroup) {
- this._column.columns.forEach(function (column) {
- column.hide();
- });
- } else {
- this._column.hide();
- }
-};
-
-ColumnComponent.prototype.toggle = function () {
- if (this._column.visible) {
- this.hide();
- } else {
- this.show();
- }
-};
-
-ColumnComponent.prototype.delete = function () {
- return this._column.delete();
-};
-
-ColumnComponent.prototype.getSubColumns = function () {
- var output = [];
-
- if (this._column.columns.length) {
- this._column.columns.forEach(function (column) {
- output.push(column.getComponent());
- });
- }
-
- return output;
-};
-
-ColumnComponent.prototype.getParentColumn = function () {
- return this._column.parent instanceof Column ? this._column.parent.getComponent() : false;
-};
-
-ColumnComponent.prototype._getSelf = function () {
- return this._column;
-};
-
-ColumnComponent.prototype.scrollTo = function () {
- return this._column.table.columnManager.scrollToColumn(this._column);
-};
-
-ColumnComponent.prototype.getTable = function () {
- return this._column.table;
-};
-
-ColumnComponent.prototype.headerFilterFocus = function () {
- if (this._column.table.modExists("filter", true)) {
- this._column.table.modules.filter.setHeaderFilterFocus(this._column);
- }
-};
-
-ColumnComponent.prototype.reloadHeaderFilter = function () {
- if (this._column.table.modExists("filter", true)) {
- this._column.table.modules.filter.reloadHeaderFilter(this._column);
- }
-};
-
-ColumnComponent.prototype.getHeaderFilterValue = function () {
- if (this._column.table.modExists("filter", true)) {
- return this._column.table.modules.filter.getHeaderFilterValue(this._column);
- }
-};
-
-ColumnComponent.prototype.setHeaderFilterValue = function (value) {
- if (this._column.table.modExists("filter", true)) {
- this._column.table.modules.filter.setHeaderFilterValue(this._column, value);
- }
-};
-
-ColumnComponent.prototype.move = function (to, after) {
- var toColumn = this._column.table.columnManager.findColumn(to);
-
- if (toColumn) {
- this._column.table.columnManager.moveColumn(this._column, toColumn, after);
- } else {
- console.warn("Move Error - No matching column found:", toColumn);
- }
-};
-
-ColumnComponent.prototype.getNextColumn = function () {
- var nextCol = this._column.nextColumn();
-
- return nextCol ? nextCol.getComponent() : false;
-};
-
-ColumnComponent.prototype.getPrevColumn = function () {
- var prevCol = this._column.prevColumn();
-
- return prevCol ? prevCol.getComponent() : false;
-};
-
-ColumnComponent.prototype.updateDefinition = function (updates) {
- return this._column.updateDefinition(updates);
-};
-
-ColumnComponent.prototype.getWidth = function () {
- return this._column.getWidth();
-};
-
-ColumnComponent.prototype.setWidth = function (width) {
- if (width === true) {
- return this._column.reinitializeWidth(true);
- } else {
- return this._column.setWidth(width);
- }
-};
-
-ColumnComponent.prototype.validate = function () {
- return this._column.validate();
-};
-
-var Column = function Column(def, parent) {
- var self = this;
-
- this.table = parent.table;
- this.definition = def; //column definition
- this.parent = parent; //hold parent object
- this.type = "column"; //type of element
- this.columns = []; //child columns
- this.cells = []; //cells bound to this column
- this.element = this.createElement(); //column header element
- this.contentElement = false;
- this.titleElement = false;
- this.groupElement = this.createGroupElement(); //column group holder element
- this.isGroup = false;
- this.tooltip = false; //hold column tooltip
- this.hozAlign = ""; //horizontal text alignment
- this.vertAlign = ""; //vert text alignment
-
- //multi dimensional filed handling
- this.field = "";
- this.fieldStructure = "";
- this.getFieldValue = "";
- this.setFieldValue = "";
-
- this.titleFormatterRendered = false;
-
- this.setField(this.definition.field);
-
- if (this.table.options.invalidOptionWarnings) {
- this.checkDefinition();
- }
-
- this.modules = {}; //hold module variables;
-
- this.cellEvents = {
- cellClick: false,
- cellDblClick: false,
- cellContext: false,
- cellTap: false,
- cellDblTap: false,
- cellTapHold: false,
- cellMouseEnter: false,
- cellMouseLeave: false,
- cellMouseOver: false,
- cellMouseOut: false,
- cellMouseMove: false
- };
-
- this.width = null; //column width
- this.widthStyled = ""; //column width prestyled to improve render efficiency
- this.minWidth = null; //column minimum width
- this.minWidthStyled = ""; //column minimum prestyled to improve render efficiency
- this.widthFixed = false; //user has specified a width for this column
-
- this.visible = true; //default visible state
-
- this.component = null;
-
- this._mapDepricatedFunctionality();
-
- //initialize column
- if (def.columns) {
-
- this.isGroup = true;
-
- def.columns.forEach(function (def, i) {
- var newCol = new Column(def, self);
- self.attachColumn(newCol);
- });
-
- self.checkColumnVisibility();
- } else {
- parent.registerColumnField(this);
- }
-
- if (def.rowHandle && this.table.options.movableRows !== false && this.table.modExists("moveRow")) {
- this.table.modules.moveRow.setHandle(true);
- }
-
- this._buildHeader();
-
- this.bindModuleColumns();
-};
-
-Column.prototype.createElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col");
- el.setAttribute("role", "columnheader");
- el.setAttribute("aria-sort", "none");
-
- return el;
-};
-
-Column.prototype.createGroupElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-col-group-cols");
-
- return el;
-};
-
-Column.prototype.checkDefinition = function () {
- var _this4 = this;
-
- Object.keys(this.definition).forEach(function (key) {
- if (_this4.defaultOptionList.indexOf(key) === -1) {
- console.warn("Invalid column definition option in '" + (_this4.field || _this4.definition.title) + "' column:", key);
- }
- });
-};
-
-Column.prototype.setField = function (field) {
- this.field = field;
- this.fieldStructure = field ? this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator) : [field] : [];
- this.getFieldValue = this.fieldStructure.length > 1 ? this._getNestedData : this._getFlatData;
- this.setFieldValue = this.fieldStructure.length > 1 ? this._setNestedData : this._setFlatData;
-};
-
-//register column position with column manager
-Column.prototype.registerColumnPosition = function (column) {
- this.parent.registerColumnPosition(column);
-};
-
-//register column position with column manager
-Column.prototype.registerColumnField = function (column) {
- this.parent.registerColumnField(column);
-};
-
-//trigger position registration
-Column.prototype.reRegisterPosition = function () {
- if (this.isGroup) {
- this.columns.forEach(function (column) {
- column.reRegisterPosition();
- });
- } else {
- this.registerColumnPosition(this);
- }
-};
-
-Column.prototype._mapDepricatedFunctionality = function () {
- if (typeof this.definition.hideInHtml !== "undefined") {
- this.definition.htmlOutput = !this.definition.hideInHtml;
- console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput");
- }
-
- if (typeof this.definition.align !== "undefined") {
- this.definition.hozAlign = this.definition.align;
- console.warn("align column definition property is deprecated, you should now use hozAlign");
- }
-
- if (typeof this.definition.downloadTitle !== "undefined") {
- this.definition.titleDownload = this.definition.downloadTitle;
- console.warn("downloadTitle definition property is deprecated, you should now use titleDownload");
- }
-};
-
-Column.prototype.setTooltip = function () {
- var self = this,
- def = self.definition;
-
- //set header tooltips
- var tooltip = def.headerTooltip || def.tooltip === false ? def.headerTooltip : self.table.options.tooltipsHeader;
-
- if (tooltip) {
- if (tooltip === true) {
- if (def.field) {
- self.table.modules.localize.bind("columns|" + def.field, function (value) {
- self.element.setAttribute("title", value || def.title);
- });
- } else {
- self.element.setAttribute("title", def.title);
- }
- } else {
- if (typeof tooltip == "function") {
- tooltip = tooltip(self.getComponent());
-
- if (tooltip === false) {
- tooltip = "";
- }
- }
-
- self.element.setAttribute("title", tooltip);
- }
- } else {
- self.element.setAttribute("title", "");
- }
-};
-
-//build header element
-Column.prototype._buildHeader = function () {
- var self = this,
- def = self.definition;
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- }if (def.headerVertical) {
- self.element.classList.add("tabulator-col-vertical");
-
- if (def.headerVertical === "flip") {
- self.element.classList.add("tabulator-col-vertical-flip");
- }
- }
-
- self.contentElement = self._bindEvents();
-
- self.contentElement = self._buildColumnHeaderContent();
-
- self.element.appendChild(self.contentElement);
-
- if (self.isGroup) {
- self._buildGroupHeader();
- } else {
- self._buildColumnHeader();
- }
-
- self.setTooltip();
-
- //set resizable handles
- if (self.table.options.resizableColumns && self.table.modExists("resizeColumns")) {
- self.table.modules.resizeColumns.initializeColumn("header", self, self.element);
- }
-
- //set resizable handles
- if (def.headerFilter && self.table.modExists("filter") && self.table.modExists("edit")) {
- if (typeof def.headerFilterPlaceholder !== "undefined" && def.field) {
- self.table.modules.localize.setHeaderFilterColumnPlaceholder(def.field, def.headerFilterPlaceholder);
- }
-
- self.table.modules.filter.initializeColumn(self);
- }
-
- //set resizable handles
- if (self.table.modExists("frozenColumns")) {
- self.table.modules.frozenColumns.initializeColumn(self);
- }
-
- //set movable column
- if (self.table.options.movableColumns && !self.isGroup && self.table.modExists("moveColumn")) {
- self.table.modules.moveColumn.initializeColumn(self);
- }
-
- //set calcs column
- if ((def.topCalc || def.bottomCalc) && self.table.modExists("columnCalcs")) {
- self.table.modules.columnCalcs.initializeColumn(self);
- }
-
- //handle persistence
- if (self.table.modExists("persistence") && self.table.modules.persistence.config.columns) {
- self.table.modules.persistence.initializeColumn(self);
- }
-
- //update header tooltip on mouse enter
- self.element.addEventListener("mouseenter", function (e) {
- self.setTooltip();
- });
-};
-
-Column.prototype._bindEvents = function () {
-
- var self = this,
- def = self.definition,
- dblTap,
- tapHold,
- tap;
-
- //setup header click event bindings
- if (typeof def.headerClick == "function") {
- self.element.addEventListener("click", function (e) {
- def.headerClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerDblClick == "function") {
- self.element.addEventListener("dblclick", function (e) {
- def.headerDblClick(e, self.getComponent());
- });
- }
-
- if (typeof def.headerContext == "function") {
- self.element.addEventListener("contextmenu", function (e) {
- def.headerContext(e, self.getComponent());
- });
- }
-
- //setup header tap event bindings
- if (typeof def.headerTap == "function") {
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- def.headerTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (typeof def.headerDblTap == "function") {
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- def.headerDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (typeof def.headerTapHold == "function") {
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- def.headerTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-
- //store column cell click event bindings
- if (typeof def.cellClick == "function") {
- self.cellEvents.cellClick = def.cellClick;
- }
-
- if (typeof def.cellDblClick == "function") {
- self.cellEvents.cellDblClick = def.cellDblClick;
- }
-
- if (typeof def.cellContext == "function") {
- self.cellEvents.cellContext = def.cellContext;
- }
-
- //store column mouse event bindings
- if (typeof def.cellMouseEnter == "function") {
- self.cellEvents.cellMouseEnter = def.cellMouseEnter;
- }
-
- if (typeof def.cellMouseLeave == "function") {
- self.cellEvents.cellMouseLeave = def.cellMouseLeave;
- }
-
- if (typeof def.cellMouseOver == "function") {
- self.cellEvents.cellMouseOver = def.cellMouseOver;
- }
-
- if (typeof def.cellMouseOut == "function") {
- self.cellEvents.cellMouseOut = def.cellMouseOut;
- }
-
- if (typeof def.cellMouseMove == "function") {
- self.cellEvents.cellMouseMove = def.cellMouseMove;
- }
-
- //setup column cell tap event bindings
- if (typeof def.cellTap == "function") {
- self.cellEvents.cellTap = def.cellTap;
- }
-
- if (typeof def.cellDblTap == "function") {
- self.cellEvents.cellDblTap = def.cellDblTap;
- }
-
- if (typeof def.cellTapHold == "function") {
- self.cellEvents.cellTapHold = def.cellTapHold;
- }
-
- //setup column cell edit callbacks
- if (typeof def.cellEdited == "function") {
- self.cellEvents.cellEdited = def.cellEdited;
- }
-
- if (typeof def.cellEditing == "function") {
- self.cellEvents.cellEditing = def.cellEditing;
- }
-
- if (typeof def.cellEditCancelled == "function") {
- self.cellEvents.cellEditCancelled = def.cellEditCancelled;
- }
-};
-
-//build header element for header
-Column.prototype._buildColumnHeader = function () {
- var self = this,
- def = self.definition,
- table = self.table,
- sortable;
-
- //set column sorter
- if (table.modExists("sort")) {
- table.modules.sort.initializeColumn(self, self.contentElement);
- }
-
- //set column header context menu
- if ((def.headerContextMenu || def.headerMenu) && table.modExists("menu")) {
- table.modules.menu.initializeColumnHeader(self);
- }
-
- //set column formatter
- if (table.modExists("format")) {
- table.modules.format.initializeColumn(self);
- }
-
- //set column editor
- if (typeof def.editor != "undefined" && table.modExists("edit")) {
- table.modules.edit.initializeColumn(self);
- }
-
- //set colum validator
- if (typeof def.validator != "undefined" && table.modExists("validate")) {
- table.modules.validate.initializeColumn(self);
- }
-
- //set column mutator
- if (table.modExists("mutator")) {
- table.modules.mutator.initializeColumn(self);
- }
-
- //set column accessor
- if (table.modExists("accessor")) {
- table.modules.accessor.initializeColumn(self);
- }
-
- //set respoviveLayout
- if (_typeof(table.options.responsiveLayout) && table.modExists("responsiveLayout")) {
- table.modules.responsiveLayout.initializeColumn(self);
- }
-
- //set column visibility
- if (typeof def.visible != "undefined") {
- if (def.visible) {
- self.show(true);
- } else {
- self.hide(true);
- }
- }
-
- //asign additional css classes to column header
- if (def.cssClass) {
- var classeNames = def.cssClass.split(" ");
- classeNames.forEach(function (className) {
- self.element.classList.add(className);
- });
- }
-
- if (def.field) {
- this.element.setAttribute("tabulator-field", def.field);
- }
-
- //set min width if present
- self.setMinWidth(typeof def.minWidth == "undefined" ? self.table.options.columnMinWidth : parseInt(def.minWidth));
-
- self.reinitializeWidth();
-
- //set tooltip if present
- self.tooltip = self.definition.tooltip || self.definition.tooltip === false ? self.definition.tooltip : self.table.options.tooltips;
-
- //set orizontal text alignment
- self.hozAlign = typeof self.definition.hozAlign == "undefined" ? self.table.options.cellHozAlign : self.definition.hozAlign;
- self.vertAlign = typeof self.definition.vertAlign == "undefined" ? self.table.options.cellVertAlign : self.definition.vertAlign;
-};
-
-Column.prototype._buildColumnHeaderContent = function () {
- var def = this.definition,
- table = this.table;
-
- var contentElement = document.createElement("div");
- contentElement.classList.add("tabulator-col-content");
-
- this.titleElement = this._buildColumnHeaderTitle();
-
- contentElement.appendChild(this.titleElement);
-
- return contentElement;
-};
-
-//build title element of column
-Column.prototype._buildColumnHeaderTitle = function () {
- var self = this,
- def = self.definition,
- table = self.table,
- title;
-
- var titleHolderElement = document.createElement("div");
- titleHolderElement.classList.add("tabulator-col-title");
-
- if (def.editableTitle) {
- var titleElement = document.createElement("input");
- titleElement.classList.add("tabulator-title-editor");
-
- titleElement.addEventListener("click", function (e) {
- e.stopPropagation();
- titleElement.focus();
- });
-
- titleElement.addEventListener("change", function () {
- def.title = titleElement.value;
- table.options.columnTitleChanged.call(self.table, self.getComponent());
- });
-
- titleHolderElement.appendChild(titleElement);
-
- if (def.field) {
- table.modules.localize.bind("columns|" + def.field, function (text) {
- titleElement.value = text || def.title || " ";
- });
- } else {
- titleElement.value = def.title || " ";
- }
- } else {
- if (def.field) {
- table.modules.localize.bind("columns|" + def.field, function (text) {
- self._formatColumnHeaderTitle(titleHolderElement, text || def.title || " ");
- });
- } else {
- self._formatColumnHeaderTitle(titleHolderElement, def.title || " ");
- }
- }
-
- return titleHolderElement;
-};
-
-Column.prototype._formatColumnHeaderTitle = function (el, title) {
- var _this5 = this;
-
- var formatter, contents, params, mockCell, onRendered;
-
- if (this.definition.titleFormatter && this.table.modExists("format")) {
-
- formatter = this.table.modules.format.getFormatter(this.definition.titleFormatter);
-
- onRendered = function onRendered(callback) {
- _this5.titleFormatterRendered = callback;
- };
-
- mockCell = {
- getValue: function getValue() {
- return title;
- },
- getElement: function getElement() {
- return el;
- }
- };
-
- params = this.definition.titleFormatterParams || {};
-
- params = typeof params === "function" ? params() : params;
-
- contents = formatter.call(this.table.modules.format, mockCell, params, onRendered);
-
- switch (typeof contents === 'undefined' ? 'undefined' : _typeof(contents)) {
- case "object":
- if (contents instanceof Node) {
- el.appendChild(contents);
- } else {
- el.innerHTML = "";
- console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents);
- }
- break;
- case "undefined":
- case "null":
- el.innerHTML = "";
- break;
- default:
- el.innerHTML = contents;
- }
- } else {
- el.innerHTML = title;
- }
-};
-
-//build header element for column group
-Column.prototype._buildGroupHeader = function () {
- var _this6 = this;
-
- this.element.classList.add("tabulator-col-group");
- this.element.setAttribute("role", "columngroup");
- this.element.setAttribute("aria-title", this.definition.title);
-
- //asign additional css classes to column header
- if (this.definition.cssClass) {
- var classeNames = this.definition.cssClass.split(" ");
- classeNames.forEach(function (className) {
- _this6.element.classList.add(className);
- });
- }
-
- //set column header context menu
- if ((this.definition.headerContextMenu || this.definition.headerMenu) && this.table.modExists("menu")) {
- this.table.modules.menu.initializeColumnHeader(this);
- }
-
- this.element.appendChild(this.groupElement);
-};
-
-//flat field lookup
-Column.prototype._getFlatData = function (data) {
- return data[this.field];
-};
-
-//nested field lookup
-Column.prototype._getNestedData = function (data) {
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length,
- output;
-
- for (var i = 0; i < length; i++) {
-
- dataObj = dataObj[structure[i]];
-
- output = dataObj;
-
- if (!dataObj) {
- break;
- }
- }
-
- return output;
-};
-
-//flat field set
-Column.prototype._setFlatData = function (data, value) {
- if (this.field) {
- data[this.field] = value;
- }
-};
-
-//nested field set
-Column.prototype._setNestedData = function (data, value) {
- var dataObj = data,
- structure = this.fieldStructure,
- length = structure.length;
-
- for (var i = 0; i < length; i++) {
-
- if (i == length - 1) {
- dataObj[structure[i]] = value;
- } else {
- if (!dataObj[structure[i]]) {
- if (typeof value !== "undefined") {
- dataObj[structure[i]] = {};
- } else {
- break;
- }
- }
-
- dataObj = dataObj[structure[i]];
- }
- }
-};
-
-//attach column to this group
-Column.prototype.attachColumn = function (column) {
- var self = this;
-
- if (self.groupElement) {
- self.columns.push(column);
- self.groupElement.appendChild(column.getElement());
- } else {
- console.warn("Column Warning - Column being attached to another column instead of column group");
- }
-};
-
-//vertically align header in column
-Column.prototype.verticalAlign = function (alignment, height) {
-
- //calculate height of column header and group holder element
- var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : height || this.parent.getHeadersElement().clientHeight;
- // var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().clientHeight : this.parent.getHeadersElement().clientHeight;
-
- this.element.style.height = parentHeight + "px";
-
- if (this.isGroup) {
- this.groupElement.style.minHeight = parentHeight - this.contentElement.offsetHeight + "px";
- }
-
- //vertically align cell contents
- if (!this.isGroup && alignment !== "top") {
- if (alignment === "bottom") {
- this.element.style.paddingTop = this.element.clientHeight - this.contentElement.offsetHeight + "px";
- } else {
- this.element.style.paddingTop = (this.element.clientHeight - this.contentElement.offsetHeight) / 2 + "px";
- }
- }
-
- this.columns.forEach(function (column) {
- column.verticalAlign(alignment);
- });
-};
-
-//clear vertical alignmenet
-Column.prototype.clearVerticalAlign = function () {
- this.element.style.paddingTop = "";
- this.element.style.height = "";
- this.element.style.minHeight = "";
- this.groupElement.style.minHeight = "";
-
- this.columns.forEach(function (column) {
- column.clearVerticalAlign();
- });
-};
-
-Column.prototype.bindModuleColumns = function () {
- //check if rownum formatter is being used on a column
- if (this.definition.formatter == "rownum") {
- this.table.rowManager.rowNumColumn = this;
- }
-};
-
-//// Retreive Column Information ////
-
-//return column header element
-Column.prototype.getElement = function () {
- return this.element;
-};
-
-//return colunm group element
-Column.prototype.getGroupElement = function () {
- return this.groupElement;
-};
-
-//return field name
-Column.prototype.getField = function () {
- return this.field;
-};
-
-//return the first column in a group
-Column.prototype.getFirstColumn = function () {
- if (!this.isGroup) {
- return this;
- } else {
- if (this.columns.length) {
- return this.columns[0].getFirstColumn();
- } else {
- return false;
- }
- }
-};
-
-//return the last column in a group
-Column.prototype.getLastColumn = function () {
- if (!this.isGroup) {
- return this;
- } else {
- if (this.columns.length) {
- return this.columns[this.columns.length - 1].getLastColumn();
- } else {
- return false;
- }
- }
-};
-
-//return all columns in a group
-Column.prototype.getColumns = function () {
- return this.columns;
-};
-
-//return all columns in a group
-Column.prototype.getCells = function () {
- return this.cells;
-};
-
-//retreive the top column in a group of columns
-Column.prototype.getTopColumn = function () {
- if (this.parent.isGroup) {
- return this.parent.getTopColumn();
- } else {
- return this;
- }
-};
-
-//return column definition object
-Column.prototype.getDefinition = function (updateBranches) {
- var colDefs = [];
-
- if (this.isGroup && updateBranches) {
- this.columns.forEach(function (column) {
- colDefs.push(column.getDefinition(true));
- });
-
- this.definition.columns = colDefs;
- }
-
- return this.definition;
-};
-
-//////////////////// Actions ////////////////////
-
-Column.prototype.checkColumnVisibility = function () {
- var visible = false;
-
- this.columns.forEach(function (column) {
- if (column.visible) {
- visible = true;
- }
- });
-
- if (visible) {
- this.show();
- this.parent.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- } else {
- this.hide();
- }
-};
-
-//show column
-Column.prototype.show = function (silent, responsiveToggle) {
- if (!this.visible) {
- this.visible = true;
-
- this.element.style.display = "";
-
- if (this.parent.isGroup) {
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
- cell.show();
- });
-
- if (!this.isGroup && this.width === null) {
- this.reinitializeWidth();
- }
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), true);
- }
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
- }
-};
-
-//hide column
-Column.prototype.hide = function (silent, responsiveToggle) {
- if (this.visible) {
- this.visible = false;
-
- this.element.style.display = "none";
-
- this.table.columnManager._verticalAlignHeaders();
-
- if (this.parent.isGroup) {
- this.parent.checkColumnVisibility();
- }
-
- this.cells.forEach(function (cell) {
- cell.hide();
- });
-
- if (this.table.options.persistence && this.table.modExists("persistence", true) && this.table.modules.persistence.config.columns) {
- this.table.modules.persistence.save("columns");
- }
-
- if (!responsiveToggle && this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
- this.table.modules.responsiveLayout.updateColumnVisibility(this, this.visible);
- }
-
- if (!silent) {
- this.table.options.columnVisibilityChanged.call(this.table, this.getComponent(), false);
- }
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
- }
-};
-
-Column.prototype.matchChildWidths = function () {
- var childWidth = 0;
-
- if (this.contentElement && this.columns.length) {
- this.columns.forEach(function (column) {
- if (column.visible) {
- childWidth += column.getWidth();
- }
- });
-
- this.contentElement.style.maxWidth = childWidth - 1 + "px";
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
- }
-};
-
-Column.prototype.setWidth = function (width) {
- this.widthFixed = true;
- this.setWidthActual(width);
-};
-
-Column.prototype.setWidthActual = function (width) {
- if (isNaN(width)) {
- width = Math.floor(this.table.element.clientWidth / 100 * parseInt(width));
- }
-
- width = Math.max(this.minWidth, width);
-
- this.width = width;
- this.widthStyled = width ? width + "px" : "";
-
- this.element.style.width = this.widthStyled;
-
- if (!this.isGroup) {
- this.cells.forEach(function (cell) {
- cell.setWidth();
- });
- }
-
- if (this.parent.isGroup) {
- this.parent.matchChildWidths();
- }
-
- //set resizable handles
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
-};
-
-Column.prototype.checkCellHeights = function () {
- var rows = [];
-
- this.cells.forEach(function (cell) {
- if (cell.row.heightInitialized) {
- if (cell.row.getElement().offsetParent !== null) {
- rows.push(cell.row);
- cell.row.clearCellHeight();
- } else {
- cell.row.heightInitialized = false;
- }
- }
- });
-
- rows.forEach(function (row) {
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
- row.setCellHeight();
- });
-};
-
-Column.prototype.getWidth = function () {
- var width = 0;
-
- if (this.isGroup) {
- this.columns.forEach(function (column) {
- if (column.visible) {
- width += column.getWidth();
- }
- });
- } else {
- width = this.width;
- }
-
- return width;
-};
-
-Column.prototype.getHeight = function () {
- return this.element.offsetHeight;
-};
-
-Column.prototype.setMinWidth = function (minWidth) {
- this.minWidth = minWidth;
- this.minWidthStyled = minWidth ? minWidth + "px" : "";
-
- this.element.style.minWidth = this.minWidthStyled;
-
- this.cells.forEach(function (cell) {
- cell.setMinWidth();
- });
-};
-
-Column.prototype.delete = function () {
- var _this7 = this;
-
- return new Promise(function (resolve, reject) {
-
- if (_this7.isGroup) {
- _this7.columns.forEach(function (column) {
- column.delete();
- });
- }
-
- //cancel edit if column is currently being edited
- if (_this7.table.modExists("edit")) {
- if (_this7.table.modules.edit.currentCell.column === _this7) {
- _this7.table.modules.edit.cancelEdit();
- }
- }
-
- var cellCount = _this7.cells.length;
-
- for (var i = 0; i < cellCount; i++) {
- _this7.cells[0].delete();
- }
-
- _this7.element.parentNode.removeChild(_this7.element);
-
- _this7.table.columnManager.deregisterColumn(_this7);
-
- resolve();
- });
-};
-
-Column.prototype.columnRendered = function () {
- if (this.titleFormatterRendered) {
- this.titleFormatterRendered();
- }
-};
-
-Column.prototype.validate = function () {
- var invalid = [];
-
- this.cells.forEach(function (cell) {
- if (!cell.validate()) {
- invalid.push(cell.getComponent());
- }
- });
-
- return invalid.length ? invalid : true;
-};
-
-//////////////// Cell Management /////////////////
-
-//generate cell for this column
-Column.prototype.generateCell = function (row) {
- var self = this;
-
- var cell = new Cell(self, row);
-
- this.cells.push(cell);
-
- return cell;
-};
-
-Column.prototype.nextColumn = function () {
- var index = this.table.columnManager.findColumnIndex(this);
- return index > -1 ? this._nextVisibleColumn(index + 1) : false;
-};
-
-Column.prototype._nextVisibleColumn = function (index) {
- var column = this.table.columnManager.getColumnByIndex(index);
- return !column || column.visible ? column : this._nextVisibleColumn(index + 1);
-};
-
-Column.prototype.prevColumn = function () {
- var index = this.table.columnManager.findColumnIndex(this);
- return index > -1 ? this._prevVisibleColumn(index - 1) : false;
-};
-
-Column.prototype._prevVisibleColumn = function (index) {
- var column = this.table.columnManager.getColumnByIndex(index);
- return !column || column.visible ? column : this._prevVisibleColumn(index - 1);
-};
-
-Column.prototype.reinitializeWidth = function (force) {
- this.widthFixed = false;
-
- //set width if present
- if (typeof this.definition.width !== "undefined" && !force) {
- this.setWidth(this.definition.width);
- }
-
- //hide header filters to prevent them altering column width
- if (this.table.modExists("filter")) {
- this.table.modules.filter.hideHeaderFilterElements();
- }
-
- this.fitToData();
-
- //show header filters again after layout is complete
- if (this.table.modExists("filter")) {
- this.table.modules.filter.showHeaderFilterElements();
- }
-};
-
-//set column width to maximum cell width
-Column.prototype.fitToData = function () {
- var self = this;
-
- if (!this.widthFixed) {
- this.element.style.width = "";
-
- self.cells.forEach(function (cell) {
- cell.clearWidth();
- });
- }
-
- var maxWidth = this.element.offsetWidth;
-
- if (!self.width || !this.widthFixed) {
- self.cells.forEach(function (cell) {
- var width = cell.getWidth();
-
- if (width > maxWidth) {
- maxWidth = width;
- }
- });
-
- if (maxWidth) {
- self.setWidthActual(maxWidth + 1);
- }
- }
-};
-
-Column.prototype.updateDefinition = function (updates) {
- var _this8 = this;
-
- return new Promise(function (resolve, reject) {
- var definition;
-
- if (!_this8.isGroup) {
- definition = Object.assign({}, _this8.getDefinition());
- definition = Object.assign(definition, updates);
-
- _this8.table.columnManager.addColumn(definition, false, _this8).then(function (column) {
-
- if (definition.field == _this8.field) {
- _this8.field = false; //cleair field name to prevent deletion of duplicate column from arrays
- }
-
- _this8.delete().then(function () {
- resolve(column.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups");
- reject("Column Update Error - The updateDefintion function is only available on columns, not column groups");
- }
- });
-};
-
-Column.prototype.deleteCell = function (cell) {
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
- this.cells.splice(index, 1);
- }
-};
-
-Column.prototype.defaultOptionList = ["title", "field", "columns", "visible", "align", "hozAlign", "vertAlign", "width", "minWidth", "widthGrow", "widthShrink", "resizable", "frozen", "responsive", "tooltip", "cssClass", "rowHandle", "hideInHtml", "print", "htmlOutput", "sorter", "sorterParams", "formatter", "formatterParams", "variableHeight", "editable", "editor", "editorParams", "validator", "mutator", "mutatorParams", "mutatorData", "mutatorDataParams", "mutatorEdit", "mutatorEditParams", "mutatorClipboard", "mutatorClipboardParams", "accessor", "accessorParams", "accessorData", "accessorDataParams", "accessorDownload", "accessorDownloadParams", "accessorClipboard", "accessorClipboardParams", "accessorPrint", "accessorPrintParams", "accessorHtmlOutput", "accessorHtmlOutputParams", "clipboard", "download", "downloadTitle", "topCalc", "topCalcParams", "topCalcFormatter", "topCalcFormatterParams", "bottomCalc", "bottomCalcParams", "bottomCalcFormatter", "bottomCalcFormatterParams", "cellClick", "cellDblClick", "cellContext", "cellTap", "cellDblTap", "cellTapHold", "cellMouseEnter", "cellMouseLeave", "cellMouseOver", "cellMouseOut", "cellMouseMove", "cellEditing", "cellEdited", "cellEditCancelled", "headerSort", "headerSortStartingDir", "headerSortTristate", "headerClick", "headerDblClick", "headerContext", "headerTap", "headerDblTap", "headerTapHold", "headerTooltip", "headerVertical", "editableTitle", "titleFormatter", "titleFormatterParams", "headerFilter", "headerFilterPlaceholder", "headerFilterParams", "headerFilterEmptyCheck", "headerFilterFunc", "headerFilterFuncParams", "headerFilterLiveFilter", "print", "headerContextMenu", "headerMenu", "contextMenu", "formatterPrint", "formatterPrintParams", "formatterClipboard", "formatterClipboardParams", "formatterHtmlOutput", "formatterHtmlOutputParams", "titlePrint", "titleClipboard", "titleHtmlOutput", "titleDownload"];
-
-//////////////// Event Bindings /////////////////
-
-//////////////// Object Generation /////////////////
-Column.prototype.getComponent = function () {
- if (!this.component) {
- this.component = new ColumnComponent(this);
- }
-
- return this.component;
-};
-
-var RowManager = function RowManager(table) {
-
- this.table = table;
- this.element = this.createHolderElement(); //containing element
- this.tableElement = this.createTableElement(); //table element
- this.heightFixer = this.createTableElement(); //table element
- this.columnManager = null; //hold column manager object
- this.height = 0; //hold height of table element
-
- this.firstRender = false; //handle first render
- this.renderMode = "virtual"; //current rendering mode
- this.fixedHeight = false; //current rendering mode
-
- this.rows = []; //hold row data objects
- this.activeRows = []; //rows currently available to on display in the table
- this.activeRowsCount = 0; //count of active rows
-
- this.displayRows = []; //rows currently on display in the table
- this.displayRowsCount = 0; //count of display rows
-
- this.scrollTop = 0;
- this.scrollLeft = 0;
-
- this.vDomRowHeight = 20; //approximation of row heights for padding
-
- this.vDomTop = 0; //hold position for first rendered row in the virtual DOM
- this.vDomBottom = 0; //hold possition for last rendered row in the virtual DOM
-
- this.vDomScrollPosTop = 0; //last scroll position of the vDom top;
- this.vDomScrollPosBottom = 0; //last scroll position of the vDom bottom;
-
- this.vDomTopPad = 0; //hold value of padding for top of virtual DOM
- this.vDomBottomPad = 0; //hold value of padding for bottom of virtual DOM
-
- this.vDomMaxRenderChain = 90; //the maximum number of dom elements that can be rendered in 1 go
-
- this.vDomWindowBuffer = 0; //window row buffer before removing elements, to smooth scrolling
-
- this.vDomWindowMinTotalRows = 20; //minimum number of rows to be generated in virtual dom (prevent buffering issues on tables with tall rows)
- this.vDomWindowMinMarginRows = 5; //minimum number of rows to be generated in virtual dom margin
-
- this.vDomTopNewRows = []; //rows to normalize after appending to optimize render speed
- this.vDomBottomNewRows = []; //rows to normalize after appending to optimize render speed
-
- this.rowNumColumn = false; //hold column component for row number column
-
- this.redrawBlock = false; //prevent redraws to allow multiple data manipulations becore continuing
- this.redrawBlockRestoreConfig = false; //store latest redraw function calls for when redraw is needed
- this.redrawBlockRederInPosition = false; //store latest redraw function calls for when redraw is needed
-};
-
-//////////////// Setup Functions /////////////////
-
-RowManager.prototype.createHolderElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-tableHolder");
- el.setAttribute("tabindex", 0);
-
- return el;
-};
-
-RowManager.prototype.createTableElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-table");
-
- return el;
-};
-
-//return containing element
-RowManager.prototype.getElement = function () {
- return this.element;
-};
-
-//return table element
-RowManager.prototype.getTableElement = function () {
- return this.tableElement;
-};
-
-//return position of row in table
-RowManager.prototype.getRowPosition = function (row, active) {
- if (active) {
- return this.activeRows.indexOf(row);
- } else {
- return this.rows.indexOf(row);
- }
-};
-
-//link to column manager
-RowManager.prototype.setColumnManager = function (manager) {
- this.columnManager = manager;
-};
-
-RowManager.prototype.initialize = function () {
- var self = this;
-
- self.setRenderMode();
-
- //initialize manager
- self.element.appendChild(self.tableElement);
-
- self.firstRender = true;
-
- //scroll header along with table body
- self.element.addEventListener("scroll", function () {
- var left = self.element.scrollLeft;
-
- //handle horizontal scrolling
- if (self.scrollLeft != left) {
- self.columnManager.scrollHorizontal(left);
-
- if (self.table.options.groupBy) {
- self.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (self.table.modExists("columnCalcs")) {
- self.table.modules.columnCalcs.scrollHorizontal(left);
- }
-
- self.table.options.scrollHorizontal(left);
- }
-
- self.scrollLeft = left;
- });
-
- //handle virtual dom scrolling
- if (this.renderMode === "virtual") {
-
- self.element.addEventListener("scroll", function () {
- var top = self.element.scrollTop;
- var dir = self.scrollTop > top;
-
- //handle verical scrolling
- if (self.scrollTop != top) {
- self.scrollTop = top;
- self.scrollVertical(dir);
-
- if (self.table.options.ajaxProgressiveLoad == "scroll") {
- self.table.modules.ajax.nextPage(self.element.scrollHeight - self.element.clientHeight - top);
- }
-
- self.table.options.scrollVertical(top);
- } else {
- self.scrollTop = top;
- }
- });
- }
-};
-
-////////////////// Row Manipulation //////////////////
-
-RowManager.prototype.findRow = function (subject) {
- var self = this;
-
- if ((typeof subject === 'undefined' ? 'undefined' : _typeof(subject)) == "object") {
-
- if (subject instanceof Row) {
- //subject is row element
- return subject;
- } else if (subject instanceof RowComponent) {
- //subject is public row component
- return subject._getSelf() || false;
- } else if (typeof HTMLElement !== "undefined" && subject instanceof HTMLElement) {
- //subject is a HTML element of the row
- var match = self.rows.find(function (row) {
- return row.element === subject;
- });
-
- return match || false;
- }
- } else if (typeof subject == "undefined" || subject === null) {
- return false;
- } else {
- //subject should be treated as the index of the row
- var _match = self.rows.find(function (row) {
- return row.data[self.table.options.index] == subject;
- });
-
- return _match || false;
- }
-
- //catch all for any other type of input
-
- return false;
-};
-
-RowManager.prototype.getRowFromDataObject = function (data) {
- var match = this.rows.find(function (row) {
- return row.data === data;
- });
-
- return match || false;
-};
-
-RowManager.prototype.getRowFromPosition = function (position, active) {
- if (active) {
- return this.activeRows[position];
- } else {
- return this.rows[position];
- }
-};
-
-RowManager.prototype.scrollToRow = function (row, position, ifVisible) {
- var _this9 = this;
-
- var rowIndex = this.getDisplayRows().indexOf(row),
- rowEl = row.getElement(),
- rowTop,
- offset = 0;
-
- return new Promise(function (resolve, reject) {
- if (rowIndex > -1) {
-
- if (typeof position === "undefined") {
- position = _this9.table.options.scrollToRowPosition;
- }
-
- if (typeof ifVisible === "undefined") {
- ifVisible = _this9.table.options.scrollToRowIfVisible;
- }
-
- if (position === "nearest") {
- switch (_this9.renderMode) {
- case "classic":
- rowTop = Tabulator.prototype.helpers.elOffset(rowEl).top;
- position = Math.abs(_this9.element.scrollTop - rowTop) > Math.abs(_this9.element.scrollTop + _this9.element.clientHeight - rowTop) ? "bottom" : "top";
- break;
- case "virtual":
- position = Math.abs(_this9.vDomTop - rowIndex) > Math.abs(_this9.vDomBottom - rowIndex) ? "bottom" : "top";
- break;
- }
- }
-
- //check row visibility
- if (!ifVisible) {
- if (Tabulator.prototype.helpers.elVisible(rowEl)) {
- offset = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top;
-
- if (offset > 0 && offset < _this9.element.clientHeight - rowEl.offsetHeight) {
- return false;
- }
- }
- }
-
- //scroll to row
- switch (_this9.renderMode) {
- case "classic":
- _this9.element.scrollTop = Tabulator.prototype.helpers.elOffset(rowEl).top - Tabulator.prototype.helpers.elOffset(_this9.element).top + _this9.element.scrollTop;
- break;
- case "virtual":
- _this9._virtualRenderFill(rowIndex, true);
- break;
- }
-
- //align to correct position
- switch (position) {
- case "middle":
- case "center":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
- _this9.element.scrollTop = _this9.element.scrollTop + (rowEl.offsetTop - _this9.element.scrollTop) - (_this9.element.scrollHeight - rowEl.offsetTop) / 2;
- } else {
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight / 2;
- }
-
- break;
-
- case "bottom":
-
- if (_this9.element.scrollHeight - _this9.element.scrollTop == _this9.element.clientHeight) {
- _this9.element.scrollTop = _this9.element.scrollTop - (_this9.element.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;
- } else {
- _this9.element.scrollTop = _this9.element.scrollTop - _this9.element.clientHeight + rowEl.offsetHeight;
- }
-
- break;
- }
-
- resolve();
- } else {
- console.warn("Scroll Error - Row not visible");
- reject("Scroll Error - Row not visible");
- }
- });
-};
-
-////////////////// Data Handling //////////////////
-
-RowManager.prototype.setData = function (data, renderInPosition, columnsChanged) {
- var _this10 = this;
-
- var self = this;
-
- return new Promise(function (resolve, reject) {
- if (renderInPosition && _this10.getDisplayRows().length) {
- if (self.table.options.pagination) {
- self._setDataActual(data, true);
- } else {
- _this10.reRenderInPosition(function () {
- self._setDataActual(data);
- });
- }
- } else {
- if (_this10.table.options.autoColumns && columnsChanged) {
- _this10.table.columnManager.generateColumnsFromRowData(data);
- }
- _this10.resetScroll();
- _this10._setDataActual(data);
- }
-
- resolve();
- });
-};
-
-RowManager.prototype._setDataActual = function (data, renderInPosition) {
- var self = this;
-
- self.table.options.dataLoading.call(this.table, data);
-
- this._wipeElements();
-
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.clear();
- }
-
- if (Array.isArray(data)) {
-
- if (this.table.modExists("selectRow")) {
- this.table.modules.selectRow.clearSelectionData();
- }
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
- this.table.modules.reactiveData.watchData(data);
- }
-
- data.forEach(function (def, i) {
- if (def && (typeof def === 'undefined' ? 'undefined' : _typeof(def)) === "object") {
- var row = new Row(def, self);
- self.rows.push(row);
- } else {
- console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:", def);
- }
- });
-
- self.table.options.dataLoaded.call(this.table, data);
-
- self.refreshActiveData(false, false, renderInPosition);
- } else {
- console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ", typeof data === 'undefined' ? 'undefined' : _typeof(data), "\nData: ", data);
- }
-};
-
-RowManager.prototype._wipeElements = function () {
- this.rows.forEach(function (row) {
- row.wipe();
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.wipe();
- }
-
- this.rows = [];
-};
-
-RowManager.prototype.deleteRow = function (row, blockRedraw) {
- var allIndex = this.rows.indexOf(row),
- activeIndex = this.activeRows.indexOf(row);
-
- if (activeIndex > -1) {
- this.activeRows.splice(activeIndex, 1);
- }
-
- if (allIndex > -1) {
- this.rows.splice(allIndex, 1);
- }
-
- this.setActiveRows(this.activeRows);
-
- this.displayRowIterator(function (rows) {
- var displayIndex = rows.indexOf(row);
-
- if (displayIndex > -1) {
- rows.splice(displayIndex, 1);
- }
- });
-
- if (!blockRedraw) {
- this.reRenderInPosition();
- }
-
- this.regenerateRowNumbers();
-
- this.table.options.rowDeleted.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.updateGroupRows(true);
- } else if (this.table.options.pagination && this.table.modExists("page")) {
- this.refreshActiveData(false, false, true);
- } else {
- if (this.table.options.pagination && this.table.modExists("page")) {
- this.refreshActiveData("page");
- }
- }
-};
-
-RowManager.prototype.addRow = function (data, pos, index, blockRedraw) {
-
- var row = this.addRowActual(data, pos, index, blockRedraw);
-
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.action("rowAdd", row, { data: data, pos: pos, index: index });
- }
-
- return row;
-};
-
-//add multiple rows
-RowManager.prototype.addRows = function (data, pos, index) {
- var _this11 = this;
-
- var self = this,
- length = 0,
- rows = [];
-
- return new Promise(function (resolve, reject) {
- pos = _this11.findAddRowPos(pos);
-
- if (!Array.isArray(data)) {
- data = [data];
- }
-
- length = data.length - 1;
-
- if (typeof index == "undefined" && pos || typeof index !== "undefined" && !pos) {
- data.reverse();
- }
-
- data.forEach(function (item, i) {
- var row = self.addRow(item, pos, index, true);
- rows.push(row);
- });
-
- if (_this11.table.options.groupBy && _this11.table.modExists("groupRows")) {
- _this11.table.modules.groupRows.updateGroupRows(true);
- } else if (_this11.table.options.pagination && _this11.table.modExists("page")) {
- _this11.refreshActiveData(false, false, true);
- } else {
- _this11.reRenderInPosition();
- }
-
- //recalc column calculations if present
- if (_this11.table.modExists("columnCalcs")) {
- _this11.table.modules.columnCalcs.recalc(_this11.table.rowManager.activeRows);
- }
-
- _this11.regenerateRowNumbers();
- resolve(rows);
- });
-};
-
-RowManager.prototype.findAddRowPos = function (pos) {
- if (typeof pos === "undefined") {
- pos = this.table.options.addRowPos;
- }
-
- if (pos === "pos") {
- pos = true;
- }
-
- if (pos === "bottom") {
- pos = false;
- }
-
- return pos;
-};
-
-RowManager.prototype.addRowActual = function (data, pos, index, blockRedraw) {
- var row = data instanceof Row ? data : new Row(data || {}, this),
- top = this.findAddRowPos(pos),
- allIndex = -1,
- activeIndex,
- dispRows;
-
- if (!index && this.table.options.pagination && this.table.options.paginationAddRow == "page") {
- dispRows = this.getDisplayRows();
-
- if (top) {
- if (dispRows.length) {
- index = dispRows[0];
- } else {
- if (this.activeRows.length) {
- index = this.activeRows[this.activeRows.length - 1];
- top = false;
- }
- }
- } else {
- if (dispRows.length) {
- index = dispRows[dispRows.length - 1];
- top = dispRows.length < this.table.modules.page.getPageSize() ? false : true;
- }
- }
- }
-
- if (typeof index !== "undefined") {
- index = this.findRow(index);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.assignRowToGroup(row);
-
- var groupRows = row.getGroup().rows;
-
- if (groupRows.length > 1) {
-
- if (!index || index && groupRows.indexOf(index) == -1) {
- if (top) {
- if (groupRows[0] !== row) {
- index = groupRows[0];
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- } else {
- if (groupRows[groupRows.length - 1] !== row) {
- index = groupRows[groupRows.length - 1];
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- } else {
- this._moveRowInArray(row.getGroup().rows, row, index, !top);
- }
- }
- }
-
- if (index) {
- allIndex = this.rows.indexOf(index);
- }
-
- if (index && allIndex > -1) {
- activeIndex = this.activeRows.indexOf(index);
-
- this.displayRowIterator(function (rows) {
- var displayIndex = rows.indexOf(index);
-
- if (displayIndex > -1) {
- rows.splice(top ? displayIndex : displayIndex + 1, 0, row);
- }
- });
-
- if (activeIndex > -1) {
- this.activeRows.splice(top ? activeIndex : activeIndex + 1, 0, row);
- }
-
- this.rows.splice(top ? allIndex : allIndex + 1, 0, row);
- } else {
-
- if (top) {
-
- this.displayRowIterator(function (rows) {
- rows.unshift(row);
- });
-
- this.activeRows.unshift(row);
- this.rows.unshift(row);
- } else {
- this.displayRowIterator(function (rows) {
- rows.push(row);
- });
-
- this.activeRows.push(row);
- this.rows.push(row);
- }
- }
-
- this.setActiveRows(this.activeRows);
-
- this.table.options.rowAdded.call(this.table, row.getComponent());
-
- this.table.options.dataEdited.call(this.table, this.getData());
-
- if (!blockRedraw) {
- this.reRenderInPosition();
- }
-
- return row;
-};
-
-RowManager.prototype.moveRow = function (from, to, after) {
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.action("rowMove", from, { posFrom: this.getRowPosition(from), posTo: this.getRowPosition(to), to: to, after: after });
- }
-
- this.moveRowActual(from, to, after);
-
- this.regenerateRowNumbers();
-
- this.table.options.rowMoved.call(this.table, from.getComponent());
-};
-
-RowManager.prototype.moveRowActual = function (from, to, after) {
- var _this12 = this;
-
- this._moveRowInArray(this.rows, from, to, after);
- this._moveRowInArray(this.activeRows, from, to, after);
-
- this.displayRowIterator(function (rows) {
- _this12._moveRowInArray(rows, from, to, after);
- });
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (!after && to instanceof Group) {
- to = this.table.rowManager.prevDisplayRow(from) || to;
- }
-
- var toGroup = to.getGroup();
- var fromGroup = from.getGroup();
-
- if (toGroup === fromGroup) {
- this._moveRowInArray(toGroup.rows, from, to, after);
- } else {
- if (fromGroup) {
- fromGroup.removeRow(from);
- }
-
- toGroup.insertRow(from, to, after);
- }
- }
-};
-
-RowManager.prototype._moveRowInArray = function (rows, from, to, after) {
- var fromIndex, toIndex, start, end;
-
- if (from !== to) {
-
- fromIndex = rows.indexOf(from);
-
- if (fromIndex > -1) {
-
- rows.splice(fromIndex, 1);
-
- toIndex = rows.indexOf(to);
-
- if (toIndex > -1) {
-
- if (after) {
- rows.splice(toIndex + 1, 0, from);
- } else {
- rows.splice(toIndex, 0, from);
- }
- } else {
- rows.splice(fromIndex, 0, from);
- }
- }
-
- //restyle rows
- if (rows === this.getDisplayRows()) {
-
- start = fromIndex < toIndex ? fromIndex : toIndex;
- end = toIndex > fromIndex ? toIndex : fromIndex + 1;
-
- for (var i = start; i <= end; i++) {
- if (rows[i]) {
- this.styleRow(rows[i], i);
- }
- }
- }
- }
-};
-
-RowManager.prototype.clearData = function () {
- this.setData([]);
-};
-
-RowManager.prototype.getRowIndex = function (row) {
- return this.findRowIndex(row, this.rows);
-};
-
-RowManager.prototype.getDisplayRowIndex = function (row) {
- var index = this.getDisplayRows().indexOf(row);
- return index > -1 ? index : false;
-};
-
-RowManager.prototype.nextDisplayRow = function (row, rowOnly) {
- var index = this.getDisplayRowIndex(row),
- nextRow = false;
-
- if (index !== false && index < this.displayRowsCount - 1) {
- nextRow = this.getDisplayRows()[index + 1];
- }
-
- if (nextRow && (!(nextRow instanceof Row) || nextRow.type != "row")) {
- return this.nextDisplayRow(nextRow, rowOnly);
- }
-
- return nextRow;
-};
-
-RowManager.prototype.prevDisplayRow = function (row, rowOnly) {
- var index = this.getDisplayRowIndex(row),
- prevRow = false;
-
- if (index) {
- prevRow = this.getDisplayRows()[index - 1];
- }
-
- if (rowOnly && prevRow && (!(prevRow instanceof Row) || prevRow.type != "row")) {
- return this.prevDisplayRow(prevRow, rowOnly);
- }
-
- return prevRow;
-};
-
-RowManager.prototype.findRowIndex = function (row, list) {
- var rowIndex;
-
- row = this.findRow(row);
-
- if (row) {
- rowIndex = list.indexOf(row);
-
- if (rowIndex > -1) {
- return rowIndex;
- }
- }
-
- return false;
-};
-
-RowManager.prototype.getData = function (active, transform) {
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
- if (row.type == "row") {
- output.push(row.getData(transform || "data"));
- }
- });
-
- return output;
-};
-
-RowManager.prototype.getComponents = function (active) {
- var output = [],
- rows = this.getRows(active);
-
- rows.forEach(function (row) {
- output.push(row.getComponent());
- });
-
- return output;
-};
-
-RowManager.prototype.getDataCount = function (active) {
- var rows = this.getRows(active);
-
- return rows.length;
-};
-
-RowManager.prototype._genRemoteRequest = function () {
- var _this13 = this;
-
- var table = this.table,
- options = table.options,
- params = {};
-
- if (table.modExists("page")) {
- //set sort data if defined
- if (options.ajaxSorting) {
- var sorters = this.table.modules.sort.getSort();
-
- sorters.forEach(function (item) {
- delete item.column;
- });
-
- params[this.table.modules.page.paginationDataSentNames.sorters] = sorters;
- }
-
- //set filter data if defined
- if (options.ajaxFiltering) {
- var filters = this.table.modules.filter.getFilters(true, true);
-
- params[this.table.modules.page.paginationDataSentNames.filters] = filters;
- }
-
- this.table.modules.ajax.setParams(params, true);
- }
-
- table.modules.ajax.sendRequest().then(function (data) {
- _this13._setDataActual(data, true);
- }).catch(function (e) {});
-};
-
-//choose the path to refresh data after a filter update
-RowManager.prototype.filterRefresh = function () {
- var table = this.table,
- options = table.options,
- left = this.scrollLeft;
-
- if (options.ajaxFiltering) {
- if (options.pagination == "remote" && table.modExists("page")) {
- table.modules.page.reset(true);
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
- //assume data is url, make ajax call to url to get data
- this._genRemoteRequest();
- }
- } else {
- this.refreshActiveData("filter");
- }
-
- this.scrollHorizontal(left);
-};
-
-//choose the path to refresh data after a sorter update
-RowManager.prototype.sorterRefresh = function (loadOrignalData) {
- var table = this.table,
- options = this.table.options,
- left = this.scrollLeft;
-
- if (options.ajaxSorting) {
- if ((options.pagination == "remote" || options.progressiveLoad) && table.modExists("page")) {
- table.modules.page.reset(true);
- table.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else if (options.ajaxProgressiveLoad) {
- table.modules.ajax.loadData().then(function () {}).catch(function () {});
- } else {
- //assume data is url, make ajax call to url to get data
- this._genRemoteRequest();
- }
- } else {
- this.refreshActiveData(loadOrignalData ? "filter" : "sort");
- }
-
- this.scrollHorizontal(left);
-};
-
-RowManager.prototype.scrollHorizontal = function (left) {
- this.scrollLeft = left;
- this.element.scrollLeft = left;
-
- if (this.table.options.groupBy) {
- this.table.modules.groupRows.scrollHeaders(left);
- }
-
- if (this.table.modExists("columnCalcs")) {
- this.table.modules.columnCalcs.scrollHorizontal(left);
- }
-};
-
-//set active data set
-RowManager.prototype.refreshActiveData = function (stage, skipStage, renderInPosition) {
- var self = this,
- table = this.table,
- cascadeOrder = ["all", "filter", "sort", "display", "freeze", "group", "tree", "page"],
- displayIndex;
-
- if (this.redrawBlock) {
-
- if (!this.redrawBlockRestoreConfig || cascadeOrder.indexOf(stage) < cascadeOrder.indexOf(this.redrawBlockRestoreConfig.stage)) {
- this.redrawBlockRestoreConfig = {
- stage: stage,
- skipStage: skipStage,
- renderInPosition: renderInPosition
- };
- }
-
- return;
- } else {
-
- if (self.table.modExists("edit")) {
- self.table.modules.edit.cancelEdit();
- }
-
- if (!stage) {
- stage = "all";
- }
-
- if (table.options.selectable && !table.options.selectablePersistence && table.modExists("selectRow")) {
- table.modules.selectRow.deselectRows();
- }
-
- //cascade through data refresh stages
- switch (stage) {
- case "all":
-
- case "filter":
- if (!skipStage) {
- if (table.modExists("filter")) {
- self.setActiveRows(table.modules.filter.filter(self.rows));
- } else {
- self.setActiveRows(self.rows.slice(0));
- }
- } else {
- skipStage = false;
- }
-
- case "sort":
- if (!skipStage) {
- if (table.modExists("sort")) {
- table.modules.sort.sort(this.activeRows);
- }
- } else {
- skipStage = false;
- }
-
- //regenerate row numbers for row number formatter if in use
- this.regenerateRowNumbers();
-
- //generic stage to allow for pipeline trigger after the data manipulation stage
- case "display":
- this.resetDisplayRows();
-
- case "freeze":
- if (!skipStage) {
- if (this.table.modExists("frozenRows")) {
- if (table.modules.frozenRows.isFrozen()) {
- if (!table.modules.frozenRows.getDisplayIndex()) {
- table.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.frozenRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.frozenRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.frozenRows.setDisplayIndex(displayIndex);
- }
- }
- }
- } else {
- skipStage = false;
- }
-
- case "group":
- if (!skipStage) {
- if (table.options.groupBy && table.modExists("groupRows")) {
-
- if (!table.modules.groupRows.getDisplayIndex()) {
- table.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.groupRows.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.groupRows.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.groupRows.setDisplayIndex(displayIndex);
- }
- }
- } else {
- skipStage = false;
- }
-
- case "tree":
-
- if (!skipStage) {
- if (table.options.dataTree && table.modExists("dataTree")) {
- if (!table.modules.dataTree.getDisplayIndex()) {
- table.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.dataTree.getDisplayIndex();
-
- displayIndex = self.setDisplayRows(table.modules.dataTree.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.dataTree.setDisplayIndex(displayIndex);
- }
- }
- } else {
- skipStage = false;
- }
-
- if (table.options.pagination && table.modExists("page") && !renderInPosition) {
- if (table.modules.page.getMode() == "local") {
- table.modules.page.reset();
- }
- }
-
- case "page":
- if (!skipStage) {
- if (table.options.pagination && table.modExists("page")) {
-
- if (!table.modules.page.getDisplayIndex()) {
- table.modules.page.setDisplayIndex(this.getNextDisplayIndex());
- }
-
- displayIndex = table.modules.page.getDisplayIndex();
-
- if (table.modules.page.getMode() == "local") {
- table.modules.page.setMaxRows(this.getDisplayRows(displayIndex - 1).length);
- }
-
- displayIndex = self.setDisplayRows(table.modules.page.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
-
- if (displayIndex !== true) {
- table.modules.page.setDisplayIndex(displayIndex);
- }
- }
- } else {
- skipStage = false;
- }
- }
-
- if (Tabulator.prototype.helpers.elVisible(self.element)) {
- if (renderInPosition) {
- self.reRenderInPosition();
- } else {
- self.renderTable();
- if (table.options.layoutColumnsOnNewData) {
- self.table.columnManager.redraw(true);
- }
- }
- }
-
- if (table.modExists("columnCalcs")) {
- table.modules.columnCalcs.recalc(this.activeRows);
- }
- }
-};
-
-//regenerate row numbers for row number formatter if in use
-RowManager.prototype.regenerateRowNumbers = function () {
- var _this14 = this;
-
- if (this.rowNumColumn) {
- this.activeRows.forEach(function (row) {
- var cell = row.getCell(_this14.rowNumColumn);
-
- if (cell) {
- cell._generateContents();
- }
- });
- }
-};
-
-RowManager.prototype.setActiveRows = function (activeRows) {
- this.activeRows = activeRows;
- this.activeRowsCount = this.activeRows.length;
-};
-
-//reset display rows array
-RowManager.prototype.resetDisplayRows = function () {
- this.displayRows = [];
-
- this.displayRows.push(this.activeRows.slice(0));
-
- this.displayRowsCount = this.displayRows[0].length;
-
- if (this.table.modExists("frozenRows")) {
- this.table.modules.frozenRows.setDisplayIndex(0);
- }
-
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.groupRows.setDisplayIndex(0);
- }
-
- if (this.table.options.pagination && this.table.modExists("page")) {
- this.table.modules.page.setDisplayIndex(0);
- }
-};
-
-RowManager.prototype.getNextDisplayIndex = function () {
- return this.displayRows.length;
-};
-
-//set display row pipeline data
-RowManager.prototype.setDisplayRows = function (displayRows, index) {
-
- var output = true;
-
- if (index && typeof this.displayRows[index] != "undefined") {
- this.displayRows[index] = displayRows;
- output = true;
- } else {
- this.displayRows.push(displayRows);
- output = index = this.displayRows.length - 1;
- }
-
- if (index == this.displayRows.length - 1) {
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
- }
-
- return output;
-};
-
-RowManager.prototype.getDisplayRows = function (index) {
- if (typeof index == "undefined") {
- return this.displayRows.length ? this.displayRows[this.displayRows.length - 1] : [];
- } else {
- return this.displayRows[index] || [];
- }
-};
-
-RowManager.prototype.getVisibleRows = function (viewable) {
- var topEdge = this.element.scrollTop,
- bottomEdge = this.element.clientHeight + topEdge,
- topFound = false,
- topRow = 0,
- bottomRow = 0,
- rows = this.getDisplayRows();
-
- if (viewable) {
-
- this.getDisplayRows();
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
- if (rows[i]) {
- if (!topFound) {
- if (topEdge - rows[i].getElement().offsetTop >= 0) {
- topRow = i;
- } else {
- topFound = true;
-
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
- bottomRow = i;
- } else {
- break;
- }
- }
- } else {
- if (bottomEdge - rows[i].getElement().offsetTop >= 0) {
- bottomRow = i;
- } else {
- break;
- }
- }
- }
- }
- } else {
- topRow = this.vDomTop;
- bottomRow = this.vDomBottom;
- }
-
- return rows.slice(topRow, bottomRow + 1);
-};
-
-//repeat action accross display rows
-RowManager.prototype.displayRowIterator = function (callback) {
- this.displayRows.forEach(callback);
-
- this.displayRowsCount = this.displayRows[this.displayRows.length - 1].length;
-};
-
-//return only actual rows (not group headers etc)
-RowManager.prototype.getRows = function (active) {
- var rows;
-
- switch (active) {
- case "active":
- rows = this.activeRows;
- break;
-
- case "display":
- rows = this.table.rowManager.getDisplayRows();
- break;
-
- case "visible":
- rows = this.getVisibleRows(true);
- break;
-
- default:
- rows = this.rows;
- }
-
- return rows;
-};
-
-///////////////// Table Rendering /////////////////
-
-//trigger rerender of table in current position
-RowManager.prototype.reRenderInPosition = function (callback) {
- if (this.getRenderMode() == "virtual") {
-
- if (this.redrawBlock) {
- if (callback) {
- callback();
- } else {
- this.redrawBlockRederInPosition = true;
- }
- } else {
- var scrollTop = this.element.scrollTop;
- var topRow = false;
- var topOffset = false;
-
- var left = this.scrollLeft;
-
- var rows = this.getDisplayRows();
-
- for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
-
- if (rows[i]) {
- var diff = scrollTop - rows[i].getElement().offsetTop;
-
- if (topOffset === false || Math.abs(diff) < topOffset) {
- topOffset = diff;
- topRow = i;
- } else {
- break;
- }
- }
- }
-
- if (callback) {
- callback();
- }
-
- this._virtualRenderFill(topRow === false ? this.displayRowsCount - 1 : topRow, true, topOffset || 0);
-
- this.scrollHorizontal(left);
- }
- } else {
- this.renderTable();
-
- if (callback) {
- callback();
- }
- }
-};
-
-RowManager.prototype.setRenderMode = function () {
-
- if (this.table.options.virtualDom) {
-
- this.renderMode = "virtual";
-
- if (this.table.element.clientHeight || this.table.options.height) {
- this.fixedHeight = true;
- } else {
- this.fixedHeight = false;
- }
- } else {
- this.renderMode = "classic";
- }
-};
-
-RowManager.prototype.getRenderMode = function () {
- return this.renderMode;
-};
-
-RowManager.prototype.renderTable = function () {
-
- this.table.options.renderStarted.call(this.table);
-
- this.element.scrollTop = 0;
-
- switch (this.renderMode) {
- case "classic":
- this._simpleRender();
- break;
-
- case "virtual":
- this._virtualRenderFill();
- break;
- }
-
- if (this.firstRender) {
- if (this.displayRowsCount) {
- this.firstRender = false;
- this.table.modules.layout.layout();
- } else {
- this.renderEmptyScroll();
- }
- }
-
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layout();
- }
-
- if (!this.displayRowsCount) {
- if (this.table.options.placeholder) {
-
- this.table.options.placeholder.setAttribute("tabulator-render-mode", this.renderMode);
-
- this.getElement().appendChild(this.table.options.placeholder);
- this.table.options.placeholder.style.width = this.table.columnManager.getWidth() + "px";
- }
- }
-
- this.table.options.renderComplete.call(this.table);
-};
-
-//simple render on heightless table
-RowManager.prototype._simpleRender = function () {
- this._clearVirtualDom();
-
- if (this.displayRowsCount) {
- this.checkClassicModeGroupHeaderWidth();
- } else {
- this.renderEmptyScroll();
- }
-};
-
-RowManager.prototype.checkClassicModeGroupHeaderWidth = function () {
- var self = this,
- element = this.tableElement,
- onlyGroupHeaders = true;
-
- self.getDisplayRows().forEach(function (row, index) {
- self.styleRow(row, index);
- element.appendChild(row.getElement());
- row.initialize(true);
-
- if (row.type !== "group") {
- onlyGroupHeaders = false;
- }
- });
-
- if (onlyGroupHeaders) {
- element.style.minWidth = self.table.columnManager.getWidth() + "px";
- } else {
- element.style.minWidth = "";
- }
-};
-
-//show scrollbars on empty table div
-RowManager.prototype.renderEmptyScroll = function () {
- if (this.table.options.placeholder) {
- this.tableElement.style.display = "none";
- } else {
- this.tableElement.style.minWidth = this.table.columnManager.getWidth() + "px";
- this.tableElement.style.minHeight = "1px";
- this.tableElement.style.visibility = "hidden";
- }
-};
-
-RowManager.prototype._clearVirtualDom = function () {
- var element = this.tableElement;
-
- if (this.table.options.placeholder && this.table.options.placeholder.parentNode) {
- this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);
- }
-
- // element.children.detach();
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.style.paddingTop = "";
- element.style.paddingBottom = "";
- element.style.minWidth = "";
- element.style.minHeight = "";
- element.style.display = "";
- element.style.visibility = "";
-
- this.scrollTop = 0;
- this.scrollLeft = 0;
- this.vDomTop = 0;
- this.vDomBottom = 0;
- this.vDomTopPad = 0;
- this.vDomBottomPad = 0;
-};
-
-RowManager.prototype.styleRow = function (row, index) {
- var rowEl = row.getElement();
-
- if (index % 2) {
- rowEl.classList.add("tabulator-row-even");
- rowEl.classList.remove("tabulator-row-odd");
- } else {
- rowEl.classList.add("tabulator-row-odd");
- rowEl.classList.remove("tabulator-row-even");
- }
-};
-
-//full virtual render
-RowManager.prototype._virtualRenderFill = function (position, forceMove, offset) {
- var self = this,
- element = self.tableElement,
- holder = self.element,
- topPad = 0,
- rowsHeight = 0,
- topPadHeight = 0,
- i = 0,
- onlyGroupHeaders = true,
- rows = self.getDisplayRows();
-
- position = position || 0;
-
- offset = offset || 0;
-
- if (!position) {
- self._clearVirtualDom();
- } else {
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //check if position is too close to bottom of table
- var heightOccupied = (self.displayRowsCount - position + 1) * self.vDomRowHeight;
-
- if (heightOccupied < self.height) {
- position -= Math.ceil((self.height - heightOccupied) / self.vDomRowHeight);
-
- if (position < 0) {
- position = 0;
- }
- }
-
- //calculate initial pad
- topPad = Math.min(Math.max(Math.floor(self.vDomWindowBuffer / self.vDomRowHeight), self.vDomWindowMinMarginRows), position);
- position -= topPad;
- }
-
- if (self.displayRowsCount && Tabulator.prototype.helpers.elVisible(self.element)) {
-
- self.vDomTop = position;
-
- self.vDomBottom = position - 1;
-
- while ((rowsHeight <= self.height + self.vDomWindowBuffer || i < self.vDomWindowMinTotalRows) && self.vDomBottom < self.displayRowsCount - 1) {
- var index = self.vDomBottom + 1,
- row = rows[index],
- rowHeight = 0;
-
- self.styleRow(row, index);
-
- element.appendChild(row.getElement());
- if (!row.initialized) {
- row.initialize(true);
- } else {
- if (!row.heightInitialized) {
- row.normalizeHeight(true);
- }
- }
-
- rowHeight = row.getHeight();
-
- if (i < topPad) {
- topPadHeight += rowHeight;
- } else {
- rowsHeight += rowHeight;
- }
-
- if (rowHeight > this.vDomWindowBuffer) {
- this.vDomWindowBuffer = rowHeight * 2;
- }
-
- if (row.type !== "group") {
- onlyGroupHeaders = false;
- }
-
- self.vDomBottom++;
- i++;
- }
-
- if (!position) {
- this.vDomTopPad = 0;
- //adjust rowheight to match average of rendered elements
- self.vDomRowHeight = Math.floor((rowsHeight + topPadHeight) / i);
- self.vDomBottomPad = self.vDomRowHeight * (self.displayRowsCount - self.vDomBottom - 1);
-
- self.vDomScrollHeight = topPadHeight + rowsHeight + self.vDomBottomPad - self.height;
- } else {
- self.vDomTopPad = !forceMove ? self.scrollTop - topPadHeight : self.vDomRowHeight * this.vDomTop + offset;
- self.vDomBottomPad = self.vDomBottom == self.displayRowsCount - 1 ? 0 : Math.max(self.vDomScrollHeight - self.vDomTopPad - rowsHeight - topPadHeight, 0);
- }
-
- element.style.paddingTop = self.vDomTopPad + "px";
- element.style.paddingBottom = self.vDomBottomPad + "px";
-
- if (forceMove) {
- this.scrollTop = self.vDomTopPad + topPadHeight + offset - (this.element.scrollWidth > this.element.clientWidth ? this.element.offsetHeight - this.element.clientHeight : 0);
- }
-
- this.scrollTop = Math.min(this.scrollTop, this.element.scrollHeight - this.height);
-
- //adjust for horizontal scrollbar if present (and not at top of table)
- if (this.element.scrollWidth > this.element.offsetWidth && forceMove) {
- this.scrollTop += this.element.offsetHeight - this.element.clientHeight;
- }
-
- this.vDomScrollPosTop = this.scrollTop;
- this.vDomScrollPosBottom = this.scrollTop;
-
- holder.scrollTop = this.scrollTop;
-
- element.style.minWidth = onlyGroupHeaders ? self.table.columnManager.getWidth() + "px" : "";
-
- if (self.table.options.groupBy) {
- if (self.table.modules.layout.getMode() != "fitDataFill" && self.displayRowsCount == self.table.modules.groupRows.countGroups()) {
- self.tableElement.style.minWidth = self.table.columnManager.getWidth();
- }
- }
- } else {
- this.renderEmptyScroll();
- }
-
- if (!this.fixedHeight) {
- this.adjustTableSize();
- }
-};
-
-//handle vertical scrolling
-RowManager.prototype.scrollVertical = function (dir) {
- var topDiff = this.scrollTop - this.vDomScrollPosTop;
- var bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
- var margin = this.vDomWindowBuffer * 2;
-
- if (-topDiff > margin || bottomDiff > margin) {
- //if big scroll redraw table;
- var left = this.scrollLeft;
- this._virtualRenderFill(Math.floor(this.element.scrollTop / this.element.scrollHeight * this.displayRowsCount));
- this.scrollHorizontal(left);
- } else {
-
- if (dir) {
- //scrolling up
- if (topDiff < 0) {
-
- this._addTopRow(-topDiff);
- }
-
- if (bottomDiff < 0) {
-
- //hide bottom row if needed
- if (this.vDomScrollHeight - this.scrollTop > this.vDomWindowBuffer) {
- this._removeBottomRow(-bottomDiff);
- } else {
- this.vDomScrollPosBottom = this.scrollTop;
- }
- }
- } else {
- //scrolling down
- if (topDiff >= 0) {
-
- //hide top row if needed
- if (this.scrollTop > this.vDomWindowBuffer) {
-
- this._removeTopRow(topDiff);
- } else {
- this.vDomScrollPosTop = this.scrollTop;
- }
- }
-
- if (bottomDiff >= 0) {
-
- this._addBottomRow(bottomDiff);
- }
- }
- }
-};
-
-RowManager.prototype._addTopRow = function (topDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomTop) {
- var index = this.vDomTop - 1,
- topRow = rows[index],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- //hide top row if needed
- if (topDiff >= topRowHeight) {
- this.styleRow(topRow, index);
- table.insertBefore(topRow.getElement(), table.firstChild);
- if (!topRow.initialized || !topRow.heightInitialized) {
- this.vDomTopNewRows.push(topRow);
-
- if (!topRow.heightInitialized) {
- topRow.clearCellHeight();
- }
- }
- topRow.initialize();
-
- this.vDomTopPad -= topRowHeight;
-
- if (this.vDomTopPad < 0) {
- this.vDomTopPad = index * this.vDomRowHeight;
- }
-
- if (!index) {
- this.vDomTopPad = 0;
- }
-
- table.style.paddingTop = this.vDomTopPad + "px";
- this.vDomScrollPosTop -= topRowHeight;
- this.vDomTop--;
- }
-
- topDiff = -(this.scrollTop - this.vDomScrollPosTop);
-
- if (topRow.getHeight() > this.vDomWindowBuffer) {
- this.vDomWindowBuffer = topRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomTop && topDiff >= (rows[this.vDomTop - 1].getHeight() || this.vDomRowHeight)) {
- this._addTopRow(topDiff, i + 1);
- } else {
- this._quickNormalizeRowHeight(this.vDomTopNewRows);
- }
- }
-};
-
-RowManager.prototype._removeTopRow = function (topDiff) {
- var table = this.tableElement,
- topRow = this.getDisplayRows()[this.vDomTop],
- topRowHeight = topRow.getHeight() || this.vDomRowHeight;
-
- if (topDiff >= topRowHeight) {
-
- var rowEl = topRow.getElement();
- rowEl.parentNode.removeChild(rowEl);
-
- this.vDomTopPad += topRowHeight;
- table.style.paddingTop = this.vDomTopPad + "px";
- this.vDomScrollPosTop += this.vDomTop ? topRowHeight : topRowHeight + this.vDomWindowBuffer;
- this.vDomTop++;
-
- topDiff = this.scrollTop - this.vDomScrollPosTop;
-
- this._removeTopRow(topDiff);
- }
-};
-
-RowManager.prototype._addBottomRow = function (bottomDiff) {
- var i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
- var table = this.tableElement,
- rows = this.getDisplayRows();
-
- if (this.vDomBottom < this.displayRowsCount - 1) {
- var index = this.vDomBottom + 1,
- bottomRow = rows[index],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- //hide bottom row if needed
- if (bottomDiff >= bottomRowHeight) {
- this.styleRow(bottomRow, index);
- table.appendChild(bottomRow.getElement());
-
- if (!bottomRow.initialized || !bottomRow.heightInitialized) {
- this.vDomBottomNewRows.push(bottomRow);
-
- if (!bottomRow.heightInitialized) {
- bottomRow.clearCellHeight();
- }
- }
-
- bottomRow.initialize();
-
- this.vDomBottomPad -= bottomRowHeight;
-
- if (this.vDomBottomPad < 0 || index == this.displayRowsCount - 1) {
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
- this.vDomScrollPosBottom += bottomRowHeight;
- this.vDomBottom++;
- }
-
- bottomDiff = this.scrollTop - this.vDomScrollPosBottom;
-
- if (bottomRow.getHeight() > this.vDomWindowBuffer) {
- this.vDomWindowBuffer = bottomRow.getHeight() * 2;
- }
-
- if (i < this.vDomMaxRenderChain && this.vDomBottom < this.displayRowsCount - 1 && bottomDiff >= (rows[this.vDomBottom + 1].getHeight() || this.vDomRowHeight)) {
- this._addBottomRow(bottomDiff, i + 1);
- } else {
- this._quickNormalizeRowHeight(this.vDomBottomNewRows);
- }
- }
-};
-
-RowManager.prototype._removeBottomRow = function (bottomDiff) {
- var table = this.tableElement,
- bottomRow = this.getDisplayRows()[this.vDomBottom],
- bottomRowHeight = bottomRow.getHeight() || this.vDomRowHeight;
-
- if (bottomDiff >= bottomRowHeight) {
-
- var rowEl = bottomRow.getElement();
-
- if (rowEl.parentNode) {
- rowEl.parentNode.removeChild(rowEl);
- }
-
- this.vDomBottomPad += bottomRowHeight;
-
- if (this.vDomBottomPad < 0) {
- this.vDomBottomPad = 0;
- }
-
- table.style.paddingBottom = this.vDomBottomPad + "px";
- this.vDomScrollPosBottom -= bottomRowHeight;
- this.vDomBottom--;
-
- bottomDiff = -(this.scrollTop - this.vDomScrollPosBottom);
-
- this._removeBottomRow(bottomDiff);
- }
-};
-
-RowManager.prototype._quickNormalizeRowHeight = function (rows) {
- rows.forEach(function (row) {
- row.calcHeight();
- });
-
- rows.forEach(function (row) {
- row.setCellHeight();
- });
-
- rows.length = 0;
-};
-
-//normalize height of active rows
-RowManager.prototype.normalizeHeight = function () {
- this.activeRows.forEach(function (row) {
- row.normalizeHeight();
- });
-};
-
-//adjust the height of the table holder to fit in the Tabulator element
-RowManager.prototype.adjustTableSize = function () {
- var initialHeight = this.element.clientHeight,
- modExists;
-
- if (this.renderMode === "virtual") {
- var otherHeight = this.columnManager.getElement().offsetHeight + (this.table.footerManager && !this.table.footerManager.external ? this.table.footerManager.getElement().offsetHeight : 0);
-
- if (this.fixedHeight) {
- this.element.style.minHeight = "calc(100% - " + otherHeight + "px)";
- this.element.style.height = "calc(100% - " + otherHeight + "px)";
- this.element.style.maxHeight = "calc(100% - " + otherHeight + "px)";
- } else {
- this.element.style.height = "";
- this.element.style.height = this.table.element.clientHeight - otherHeight + "px";
- this.element.scrollTop = this.scrollTop;
- }
-
- this.height = this.element.clientHeight;
- this.vDomWindowBuffer = this.table.options.virtualDomBuffer || this.height;
-
- //check if the table has changed size when dealing with variable height tables
- if (!this.fixedHeight && initialHeight != this.element.clientHeight) {
- modExists = this.table.modExists("resizeTable");
-
- if (modExists && !this.table.modules.resizeTable.autoResize || !modExists) {
- this.redraw();
- }
- }
- }
-};
-
-//renitialize all rows
-RowManager.prototype.reinitialize = function () {
- this.rows.forEach(function (row) {
- row.reinitialize();
- });
-};
-
-//prevent table from being redrawn
-RowManager.prototype.blockRedraw = function () {
- this.redrawBlock = true;
- this.redrawBlockRestoreConfig = false;
-};
-
-//restore table redrawing
-RowManager.prototype.restoreRedraw = function () {
- this.redrawBlock = false;
-
- if (this.redrawBlockRestoreConfig) {
- this.refreshActiveData(this.redrawBlockRestoreConfig.stage, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition);
-
- this.redrawBlockRestoreConfig = false;
- } else {
- if (this.redrawBlockRederInPosition) {
- this.reRenderInPosition();
- }
- }
-
- this.redrawBlockRederInPosition = false;
-};
-
-//redraw table
-RowManager.prototype.redraw = function (force) {
- var pos = 0,
- left = this.scrollLeft;
-
- this.adjustTableSize();
-
- this.table.tableWidth = this.table.element.clientWidth;
-
- if (!force) {
- if (this.renderMode == "classic") {
-
- if (this.table.options.groupBy) {
- this.refreshActiveData("group", false, false);
- } else {
- this._simpleRender();
- }
- } else {
- this.reRenderInPosition();
- this.scrollHorizontal(left);
- }
-
- if (!this.displayRowsCount) {
- if (this.table.options.placeholder) {
- this.getElement().appendChild(this.table.options.placeholder);
- }
- }
- } else {
- this.renderTable();
- }
-};
-
-RowManager.prototype.resetScroll = function () {
- this.element.scrollLeft = 0;
- this.element.scrollTop = 0;
-
- if (this.table.browser === "ie") {
- var event = document.createEvent("Event");
- event.initEvent("scroll", false, true);
- this.element.dispatchEvent(event);
- } else {
- this.element.dispatchEvent(new Event('scroll'));
- }
-};
-
-//public row object
-var RowComponent = function RowComponent(row) {
- this._row = row;
-};
-
-RowComponent.prototype.getData = function (transform) {
- return this._row.getData(transform);
-};
-
-RowComponent.prototype.getElement = function () {
- return this._row.getElement();
-};
-
-RowComponent.prototype.getCells = function () {
- var cells = [];
-
- this._row.getCells().forEach(function (cell) {
- cells.push(cell.getComponent());
- });
-
- return cells;
-};
-
-RowComponent.prototype.getCell = function (column) {
- var cell = this._row.getCell(column);
- return cell ? cell.getComponent() : false;
-};
-
-RowComponent.prototype.getIndex = function () {
- return this._row.getData("data")[this._row.table.options.index];
-};
-
-RowComponent.prototype.getPosition = function (active) {
- return this._row.table.rowManager.getRowPosition(this._row, active);
-};
-
-RowComponent.prototype.delete = function () {
- return this._row.delete();
-};
-
-RowComponent.prototype.scrollTo = function () {
- return this._row.table.rowManager.scrollToRow(this._row);
-};
-
-RowComponent.prototype.pageTo = function () {
- if (this._row.table.modExists("page", true)) {
- return this._row.table.modules.page.setPageToRow(this._row);
- }
-};
-
-RowComponent.prototype.move = function (to, after) {
- this._row.moveToRow(to, after);
-};
-
-RowComponent.prototype.update = function (data) {
- return this._row.updateData(data);
-};
-
-RowComponent.prototype.normalizeHeight = function () {
- this._row.normalizeHeight(true);
-};
-
-RowComponent.prototype.select = function () {
- this._row.table.modules.selectRow.selectRows(this._row);
-};
-
-RowComponent.prototype.deselect = function () {
- this._row.table.modules.selectRow.deselectRows(this._row);
-};
-
-RowComponent.prototype.toggleSelect = function () {
- this._row.table.modules.selectRow.toggleRow(this._row);
-};
-
-RowComponent.prototype.isSelected = function () {
- return this._row.table.modules.selectRow.isRowSelected(this._row);
-};
-
-RowComponent.prototype._getSelf = function () {
- return this._row;
-};
-
-RowComponent.prototype.validate = function () {
- return this._row.validate();
-};
-
-RowComponent.prototype.freeze = function () {
- if (this._row.table.modExists("frozenRows", true)) {
- this._row.table.modules.frozenRows.freezeRow(this._row);
- }
-};
-
-RowComponent.prototype.unfreeze = function () {
- if (this._row.table.modExists("frozenRows", true)) {
- this._row.table.modules.frozenRows.unfreezeRow(this._row);
- }
-};
-
-RowComponent.prototype.isFrozen = function () {
- if (this._row.table.modExists("frozenRows", true)) {
- var index = this._row.table.modules.frozenRows.rows.indexOf(this._row);
- return index > -1;
- }
-
- return false;
-};
-
-RowComponent.prototype.treeCollapse = function () {
- if (this._row.table.modExists("dataTree", true)) {
- this._row.table.modules.dataTree.collapseRow(this._row);
- }
-};
-
-RowComponent.prototype.treeExpand = function () {
- if (this._row.table.modExists("dataTree", true)) {
- this._row.table.modules.dataTree.expandRow(this._row);
- }
-};
-
-RowComponent.prototype.treeToggle = function () {
- if (this._row.table.modExists("dataTree", true)) {
- this._row.table.modules.dataTree.toggleRow(this._row);
- }
-};
-
-RowComponent.prototype.getTreeParent = function () {
- if (this._row.table.modExists("dataTree", true)) {
- return this._row.table.modules.dataTree.getTreeParent(this._row);
- }
-
- return false;
-};
-
-RowComponent.prototype.getTreeChildren = function () {
- if (this._row.table.modExists("dataTree", true)) {
- return this._row.table.modules.dataTree.getTreeChildren(this._row);
- }
-
- return false;
-};
-
-RowComponent.prototype.addTreeChild = function (data, pos, index) {
- if (this._row.table.modExists("dataTree", true)) {
- return this._row.table.modules.dataTree.addTreeChildRow(this._row, data, pos, index);
- }
-
- return false;
-};
-
-RowComponent.prototype.reformat = function () {
- return this._row.reinitialize();
-};
-
-RowComponent.prototype.getGroup = function () {
- return this._row.getGroup().getComponent();
-};
-
-RowComponent.prototype.getTable = function () {
- return this._row.table;
-};
-
-RowComponent.prototype.getNextRow = function () {
- var row = this._row.nextRow();
- return row ? row.getComponent() : row;
-};
-
-RowComponent.prototype.getPrevRow = function () {
- var row = this._row.prevRow();
- return row ? row.getComponent() : row;
-};
-
-var Row = function Row(data, parent) {
- var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "row";
-
- this.table = parent.table;
- this.parent = parent;
- this.data = {};
- this.type = type; //type of element
- this.element = this.createElement();
- this.modules = {}; //hold module variables;
- this.cells = [];
- this.height = 0; //hold element height
- this.heightStyled = ""; //hold element height prestyled to improve render efficiency
- this.manualHeight = false; //user has manually set row height
- this.outerHeight = 0; //holde lements outer height
- this.initialized = false; //element has been rendered
- this.heightInitialized = false; //element has resized cells to fit
-
- this.component = null;
-
- this.setData(data);
- this.generateElement();
-};
-
-Row.prototype.createElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-row");
- el.setAttribute("role", "row");
-
- return el;
-};
-
-Row.prototype.getElement = function () {
- return this.element;
-};
-
-Row.prototype.detachElement = function () {
- if (this.element && this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
-};
-
-Row.prototype.generateElement = function () {
- var self = this,
- dblTap,
- tapHold,
- tap;
-
- //set row selection characteristics
- if (self.table.options.selectable !== false && self.table.modExists("selectRow")) {
- self.table.modules.selectRow.initializeRow(this);
- }
-
- //setup movable rows
- if (self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
- self.table.modules.moveRow.initializeRow(this);
- }
-
- //setup data tree
- if (self.table.options.dataTree !== false && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.initializeRow(this);
- }
-
- //setup column colapse container
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
- self.table.modules.responsiveLayout.initializeRow(this);
- }
-
- //set column menu
- if (self.table.options.rowContextMenu && this.table.modExists("menu")) {
- self.table.modules.menu.initializeRow(this);
- }
-
- //handle row click events
- if (self.table.options.rowClick) {
- self.element.addEventListener("click", function (e) {
- self.table.options.rowClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowDblClick) {
- self.element.addEventListener("dblclick", function (e) {
- self.table.options.rowDblClick(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowContext) {
- self.element.addEventListener("contextmenu", function (e) {
- self.table.options.rowContext(e, self.getComponent());
- });
- }
-
- //handle mouse events
- if (self.table.options.rowMouseEnter) {
- self.element.addEventListener("mouseenter", function (e) {
- self.table.options.rowMouseEnter(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseLeave) {
- self.element.addEventListener("mouseleave", function (e) {
- self.table.options.rowMouseLeave(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOver) {
- self.element.addEventListener("mouseover", function (e) {
- self.table.options.rowMouseOver(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseOut) {
- self.element.addEventListener("mouseout", function (e) {
- self.table.options.rowMouseOut(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowMouseMove) {
- self.element.addEventListener("mousemove", function (e) {
- self.table.options.rowMouseMove(e, self.getComponent());
- });
- }
-
- if (self.table.options.rowTap) {
-
- tap = false;
-
- self.element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- if (tap) {
- self.table.options.rowTap(e, self.getComponent());
- }
-
- tap = false;
- });
- }
-
- if (self.table.options.rowDblTap) {
-
- dblTap = null;
-
- self.element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- self.table.options.rowDblTap(e, self.getComponent());
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (self.table.options.rowTapHold) {
-
- tapHold = null;
-
- self.element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- self.table.options.rowTapHold(e, self.getComponent());
- }, 1000);
- }, { passive: true });
-
- self.element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-};
-
-Row.prototype.generateCells = function () {
- this.cells = this.table.columnManager.generateCells(this);
-};
-
-//functions to setup on first render
-Row.prototype.initialize = function (force) {
- var self = this;
-
- if (!self.initialized || force) {
-
- self.deleteCells();
-
- while (self.element.firstChild) {
- self.element.removeChild(self.element.firstChild);
- } //handle frozen cells
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layoutRow(this);
- }
-
- this.generateCells();
-
- self.cells.forEach(function (cell) {
- self.element.appendChild(cell.getElement());
- cell.cellRendered();
- });
-
- if (force) {
- self.normalizeHeight();
- }
-
- //setup movable rows
- if (self.table.options.dataTree && self.table.modExists("dataTree")) {
- self.table.modules.dataTree.layoutRow(this);
- }
-
- //setup column colapse container
- if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
- self.table.modules.responsiveLayout.layoutRow(this);
- }
-
- if (self.table.options.rowFormatter) {
- self.table.options.rowFormatter(self.getComponent());
- }
-
- //set resizable handles
- if (self.table.options.resizableRows && self.table.modExists("resizeRows")) {
- self.table.modules.resizeRows.initializeRow(self);
- }
-
- self.initialized = true;
- }
-};
-
-Row.prototype.reinitializeHeight = function () {
- this.heightInitialized = false;
-
- if (this.element.offsetParent !== null) {
- this.normalizeHeight(true);
- }
-};
-
-Row.prototype.reinitialize = function () {
- this.initialized = false;
- this.heightInitialized = false;
-
- if (!this.manualHeight) {
- this.height = 0;
- this.heightStyled = "";
- }
-
- if (this.element.offsetParent !== null) {
- this.initialize(true);
- }
-};
-
-//get heights when doing bulk row style calcs in virtual DOM
-Row.prototype.calcHeight = function (force) {
-
- var maxHeight = 0,
- minHeight = this.table.options.resizableRows ? this.element.clientHeight : 0;
-
- this.cells.forEach(function (cell) {
- var height = cell.getHeight();
- if (height > maxHeight) {
- maxHeight = height;
- }
- });
-
- if (force) {
- this.height = Math.max(maxHeight, minHeight);
- } else {
- this.height = this.manualHeight ? this.height : Math.max(maxHeight, minHeight);
- }
-
- this.heightStyled = this.height ? this.height + "px" : "";
- this.outerHeight = this.element.offsetHeight;
-};
-
-//set of cells
-Row.prototype.setCellHeight = function () {
- this.cells.forEach(function (cell) {
- cell.setHeight();
- });
-
- this.heightInitialized = true;
-};
-
-Row.prototype.clearCellHeight = function () {
- this.cells.forEach(function (cell) {
- cell.clearHeight();
- });
-};
-
-//normalize the height of elements in the row
-Row.prototype.normalizeHeight = function (force) {
-
- if (force) {
- this.clearCellHeight();
- }
-
- this.calcHeight(force);
-
- this.setCellHeight();
-};
-
-// Row.prototype.setHeight = function(height){
-// this.height = height;
-
-// this.setCellHeight();
-// };
-
-//set height of rows
-Row.prototype.setHeight = function (height, force) {
- if (this.height != height || force) {
-
- this.manualHeight = true;
-
- this.height = height;
- this.heightStyled = height ? height + "px" : "";
-
- this.setCellHeight();
-
- // this.outerHeight = this.element.outerHeight();
- this.outerHeight = this.element.offsetHeight;
- }
-};
-
-//return rows outer height
-Row.prototype.getHeight = function () {
- return this.outerHeight;
-};
-
-//return rows outer Width
-Row.prototype.getWidth = function () {
- return this.element.offsetWidth;
-};
-
-//////////////// Cell Management /////////////////
-
-Row.prototype.deleteCell = function (cell) {
- var index = this.cells.indexOf(cell);
-
- if (index > -1) {
- this.cells.splice(index, 1);
- }
-};
-
-//////////////// Data Management /////////////////
-
-Row.prototype.setData = function (data) {
- if (this.table.modExists("mutator")) {
- data = this.table.modules.mutator.transformRow(data, "data");
- }
-
- this.data = data;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {
- this.table.modules.reactiveData.watchRow(this);
- }
-};
-
-//update the rows data
-Row.prototype.updateData = function (updatedData) {
- var _this15 = this;
-
- var visible = Tabulator.prototype.helpers.elVisible(this.element),
- tempData = {},
- newRowData;
-
- return new Promise(function (resolve, reject) {
-
- if (typeof updatedData === "string") {
- updatedData = JSON.parse(updatedData);
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
- _this15.table.modules.reactiveData.block();
- }
-
- //mutate incomming data if needed
- if (_this15.table.modExists("mutator")) {
-
- tempData = Object.assign(tempData, _this15.data);
- tempData = Object.assign(tempData, updatedData);
-
- newRowData = _this15.table.modules.mutator.transformRow(tempData, "data", updatedData);
- } else {
- newRowData = updatedData;
- }
-
- //set data
- for (var attrname in newRowData) {
- _this15.data[attrname] = newRowData[attrname];
- }
-
- if (_this15.table.options.reactiveData && _this15.table.modExists("reactiveData", true)) {
- _this15.table.modules.reactiveData.unblock();
- }
-
- //update affected cells only
- for (var attrname in updatedData) {
-
- var columns = _this15.table.columnManager.getColumnsByFieldRoot(attrname);
-
- columns.forEach(function (column) {
- var cell = _this15.getCell(column.getField());
-
- if (cell) {
- var value = column.getFieldValue(newRowData);
- if (cell.getValue() != value) {
- cell.setValueProcessData(value);
-
- if (visible) {
- cell.cellRendered();
- }
- }
- }
- });
- }
-
- //Partial reinitialization if visible
- if (visible) {
- _this15.normalizeHeight(true);
-
- if (_this15.table.options.rowFormatter) {
- _this15.table.options.rowFormatter(_this15.getComponent());
- }
- } else {
- _this15.initialized = false;
- _this15.height = 0;
- _this15.heightStyled = "";
- }
-
- if (_this15.table.options.dataTree !== false && _this15.table.modExists("dataTree") && _this15.table.modules.dataTree.redrawNeeded(updatedData)) {
- _this15.table.modules.dataTree.initializeRow(_this15);
- _this15.table.modules.dataTree.layoutRow(_this15);
- _this15.table.rowManager.refreshActiveData("tree", false, true);
- }
-
- //this.reinitialize();
-
- _this15.table.options.rowUpdated.call(_this15.table, _this15.getComponent());
-
- resolve();
- });
-};
-
-Row.prototype.getData = function (transform) {
- var self = this;
-
- if (transform) {
- if (self.table.modExists("accessor")) {
- return self.table.modules.accessor.transformRow(self.data, transform);
- }
- } else {
- return this.data;
- }
-};
-
-Row.prototype.getCell = function (column) {
- var match = false;
-
- column = this.table.columnManager.findColumn(column);
-
- match = this.cells.find(function (cell) {
- return cell.column === column;
- });
-
- return match;
-};
-
-Row.prototype.getCellIndex = function (findCell) {
- return this.cells.findIndex(function (cell) {
- return cell === findCell;
- });
-};
-
-Row.prototype.findNextEditableCell = function (index) {
- var nextCell = false;
-
- if (index < this.cells.length - 1) {
- for (var i = index + 1; i < this.cells.length; i++) {
- var cell = this.cells[i];
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
- var allowEdit = true;
-
- if (typeof cell.column.modules.edit.check == "function") {
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
- nextCell = cell;
- break;
- }
- }
- }
- }
-
- return nextCell;
-};
-
-Row.prototype.findPrevEditableCell = function (index) {
- var prevCell = false;
-
- if (index > 0) {
- for (var i = index - 1; i >= 0; i--) {
- var cell = this.cells[i],
- allowEdit = true;
-
- if (cell.column.modules.edit && Tabulator.prototype.helpers.elVisible(cell.getElement())) {
- if (typeof cell.column.modules.edit.check == "function") {
- allowEdit = cell.column.modules.edit.check(cell.getComponent());
- }
-
- if (allowEdit) {
- prevCell = cell;
- break;
- }
- }
- }
- }
-
- return prevCell;
-};
-
-Row.prototype.getCells = function () {
- return this.cells;
-};
-
-Row.prototype.nextRow = function () {
- var row = this.table.rowManager.nextDisplayRow(this, true);
- return row || false;
-};
-
-Row.prototype.prevRow = function () {
- var row = this.table.rowManager.prevDisplayRow(this, true);
- return row || false;
-};
-
-Row.prototype.moveToRow = function (to, before) {
- var toRow = this.table.rowManager.findRow(to);
-
- if (toRow) {
- this.table.rowManager.moveRowActual(this, toRow, !before);
- this.table.rowManager.refreshActiveData("display", false, true);
- } else {
- console.warn("Move Error - No matching row found:", to);
- }
-};
-
-Row.prototype.validate = function () {
- var invalid = [];
-
- this.cells.forEach(function (cell) {
- if (!cell.validate()) {
- invalid.push(cell.getComponent());
- }
- });
-
- return invalid.length ? invalid : true;
-};
-
-///////////////////// Actions /////////////////////
-
-Row.prototype.delete = function () {
- var _this16 = this;
-
- return new Promise(function (resolve, reject) {
- var index, rows;
-
- if (_this16.table.options.history && _this16.table.modExists("history")) {
-
- if (_this16.table.options.groupBy && _this16.table.modExists("groupRows")) {
- rows = _this16.getGroup().rows;
- index = rows.indexOf(_this16);
-
- if (index) {
- index = rows[index - 1];
- }
- } else {
- index = _this16.table.rowManager.getRowIndex(_this16);
-
- if (index) {
- index = _this16.table.rowManager.rows[index - 1];
- }
- }
-
- _this16.table.modules.history.action("rowDelete", _this16, { data: _this16.getData(), pos: !index, index: index });
- }
-
- _this16.deleteActual();
-
- resolve();
- });
-};
-
-Row.prototype.deleteActual = function (blockRedraw) {
- var index = this.table.rowManager.getRowIndex(this);
-
- //deselect row if it is selected
- if (this.table.modExists("selectRow")) {
- this.table.modules.selectRow._deselectRow(this, true);
- }
-
- //cancel edit if row is currently being edited
- if (this.table.modExists("edit")) {
- if (this.table.modules.edit.currentCell.row === this) {
- this.table.modules.edit.cancelEdit();
- }
- }
-
- // if(this.table.options.dataTree && this.table.modExists("dataTree")){
- // this.table.modules.dataTree.collapseRow(this, true);
- // }
-
- //remove any reactive data watchers from row object
- if (this.table.options.reactiveData && this.table.modExists("reactiveData", true)) {}
- // this.table.modules.reactiveData.unwatchRow(this);
-
-
- //remove from group
- if (this.modules.group) {
- this.modules.group.removeRow(this);
- }
-
- this.table.rowManager.deleteRow(this, blockRedraw);
-
- this.deleteCells();
-
- this.initialized = false;
- this.heightInitialized = false;
-
- if (this.table.options.dataTree && this.table.modExists("dataTree", true)) {
- this.table.modules.dataTree.rowDelete(this);
- }
-
- //recalc column calculations if present
- if (this.table.modExists("columnCalcs")) {
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
- this.table.modules.columnCalcs.recalcRowGroup(this);
- } else {
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
-};
-
-Row.prototype.deleteCells = function () {
- var cellCount = this.cells.length;
-
- for (var i = 0; i < cellCount; i++) {
- this.cells[0].delete();
- }
-};
-
-Row.prototype.wipe = function () {
- this.deleteCells();
-
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element = false;
- this.modules = {};
-
- if (this.element.parentNode) {
- this.element.parentNode.removeChild(this.element);
- }
-};
-
-Row.prototype.getGroup = function () {
- return this.modules.group || false;
-};
-
-//////////////// Object Generation /////////////////
-Row.prototype.getComponent = function () {
- if (!this.component) {
- this.component = new RowComponent(this);
- }
-
- return this.component;
-};
-
-//public row object
-var CellComponent = function CellComponent(cell) {
- this._cell = cell;
-};
-
-CellComponent.prototype.getValue = function () {
- return this._cell.getValue();
-};
-
-CellComponent.prototype.getOldValue = function () {
- return this._cell.getOldValue();
-};
-
-CellComponent.prototype.getElement = function () {
- return this._cell.getElement();
-};
-
-CellComponent.prototype.getRow = function () {
- return this._cell.row.getComponent();
-};
-
-CellComponent.prototype.getData = function () {
- return this._cell.row.getData();
-};
-
-CellComponent.prototype.getField = function () {
- return this._cell.column.getField();
-};
-
-CellComponent.prototype.getColumn = function () {
- return this._cell.column.getComponent();
-};
-
-CellComponent.prototype.setValue = function (value, mutate) {
- if (typeof mutate == "undefined") {
- mutate = true;
- }
-
- this._cell.setValue(value, mutate);
-};
-
-CellComponent.prototype.restoreOldValue = function () {
- this._cell.setValueActual(this._cell.getOldValue());
-};
-
-CellComponent.prototype.edit = function (force) {
- return this._cell.edit(force);
-};
-
-CellComponent.prototype.cancelEdit = function () {
- this._cell.cancelEdit();
-};
-
-CellComponent.prototype.isEdited = function () {
- return !!this._cell.modules.edit && this._cell.modules.edit.edited;
-};
-
-CellComponent.prototype.clearEdited = function () {
- if (self.table.modExists("edit", true)) {
- this._cell.table.modules.edit.clearEdited(this._cell);
- }
-};
-
-CellComponent.prototype.isValid = function () {
- return this._cell.modules.validate ? !this._cell.modules.validate.invalid : true;
-};
-
-CellComponent.prototype.validate = function () {
- return this._cell.validate();
-};
-
-CellComponent.prototype.clearValidation = function () {
- if (self.table.modExists("validate", true)) {
- this._cell.table.modules.validate.clearValidation(this._cell);
- }
-};
-
-CellComponent.prototype.nav = function () {
- return this._cell.nav();
-};
-
-CellComponent.prototype.checkHeight = function () {
- this._cell.checkHeight();
-};
-
-CellComponent.prototype.getTable = function () {
- return this._cell.table;
-};
-
-CellComponent.prototype._getSelf = function () {
- return this._cell;
-};
-
-var Cell = function Cell(column, row) {
-
- this.table = column.table;
- this.column = column;
- this.row = row;
- this.element = null;
- this.value = null;
- this.oldValue = null;
- this.modules = {};
-
- this.height = null;
- this.width = null;
- this.minWidth = null;
-
- this.component = null;
-
- this.build();
-};
-
-//////////////// Setup Functions /////////////////
-
-//generate element
-Cell.prototype.build = function () {
- this.generateElement();
-
- this.setWidth();
-
- this._configureCell();
-
- this.setValueActual(this.column.getFieldValue(this.row.data));
-};
-
-Cell.prototype.generateElement = function () {
- this.element = document.createElement('div');
- this.element.className = "tabulator-cell";
- this.element.setAttribute("role", "gridcell");
- this.element = this.element;
-};
-
-Cell.prototype._configureCell = function () {
- var self = this,
- cellEvents = self.column.cellEvents,
- element = self.element,
- field = this.column.getField(),
- vertAligns = {
- top: "flex-start",
- bottom: "flex-end",
- middle: "center"
- },
- hozAligns = {
- left: "flex-start",
- right: "flex-end",
- center: "center"
- };
-
- //set text alignment
- element.style.textAlign = self.column.hozAlign;
-
- if (self.column.vertAlign) {
- element.style.display = "inline-flex";
-
- element.style.alignItems = vertAligns[self.column.vertAlign] || "";
-
- if (self.column.hozAlign) {
- element.style.justifyContent = hozAligns[self.column.hozAlign] || "";
- }
- }
-
- if (field) {
- element.setAttribute("tabulator-field", field);
- }
-
- //add class to cell if needed
- if (self.column.definition.cssClass) {
- var classNames = self.column.definition.cssClass.split(" ");
- classNames.forEach(function (className) {
- element.classList.add(className);
- });
- }
-
- //update tooltip on mouse enter
- if (this.table.options.tooltipGenerationMode === "hover") {
- element.addEventListener("mouseenter", function (e) {
- self._generateTooltip();
- });
- }
-
- self._bindClickEvents(cellEvents);
-
- self._bindTouchEvents(cellEvents);
-
- self._bindMouseEvents(cellEvents);
-
- if (self.column.modules.edit) {
- self.table.modules.edit.bindEditor(self);
- }
-
- if (self.column.definition.rowHandle && self.table.options.movableRows !== false && self.table.modExists("moveRow")) {
- self.table.modules.moveRow.initializeCell(self);
- }
-
- //hide cell if not visible
- if (!self.column.visible) {
- self.hide();
- }
-};
-
-Cell.prototype._bindClickEvents = function (cellEvents) {
- var self = this,
- element = self.element;
-
- //set event bindings
- if (cellEvents.cellClick || self.table.options.cellClick) {
- element.addEventListener("click", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellClick) {
- cellEvents.cellClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellClick) {
- self.table.options.cellClick.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellDblClick || this.table.options.cellDblClick) {
- element.addEventListener("dblclick", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellDblClick) {
- cellEvents.cellDblClick.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblClick) {
- self.table.options.cellDblClick.call(self.table, e, component);
- }
- });
- } else {
- element.addEventListener("dblclick", function (e) {
-
- if (self.table.modExists("edit")) {
- if (self.table.modules.edit.currentCell === self) {
- return; //prevent instant selection of editor content
- }
- }
-
- e.preventDefault();
-
- try {
- if (document.selection) {
- // IE
- var range = document.body.createTextRange();
- range.moveToElementText(self.element);
- range.select();
- } else if (window.getSelection) {
- var range = document.createRange();
- range.selectNode(self.element);
- window.getSelection().removeAllRanges();
- window.getSelection().addRange(range);
- }
- } catch (e) {}
- });
- }
-
- if (cellEvents.cellContext || this.table.options.cellContext) {
- element.addEventListener("contextmenu", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellContext) {
- cellEvents.cellContext.call(self.table, e, component);
- }
-
- if (self.table.options.cellContext) {
- self.table.options.cellContext.call(self.table, e, component);
- }
- });
- }
-};
-
-Cell.prototype._bindMouseEvents = function (cellEvents) {
- var self = this,
- element = self.element;
-
- if (cellEvents.cellMouseEnter || self.table.options.cellMouseEnter) {
- element.addEventListener("mouseenter", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseEnter) {
- cellEvents.cellMouseEnter.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseEnter) {
- self.table.options.cellMouseEnter.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseLeave || self.table.options.cellMouseLeave) {
- element.addEventListener("mouseleave", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseLeave) {
- cellEvents.cellMouseLeave.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseLeave) {
- self.table.options.cellMouseLeave.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOver || self.table.options.cellMouseOver) {
- element.addEventListener("mouseover", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOver) {
- cellEvents.cellMouseOver.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOver) {
- self.table.options.cellMouseOver.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseOut || self.table.options.cellMouseOut) {
- element.addEventListener("mouseout", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseOut) {
- cellEvents.cellMouseOut.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseOut) {
- self.table.options.cellMouseOut.call(self.table, e, component);
- }
- });
- }
-
- if (cellEvents.cellMouseMove || self.table.options.cellMouseMove) {
- element.addEventListener("mousemove", function (e) {
- var component = self.getComponent();
-
- if (cellEvents.cellMouseMove) {
- cellEvents.cellMouseMove.call(self.table, e, component);
- }
-
- if (self.table.options.cellMouseMove) {
- self.table.options.cellMouseMove.call(self.table, e, component);
- }
- });
- }
-};
-
-Cell.prototype._bindTouchEvents = function (cellEvents) {
- var self = this,
- element = self.element,
- dblTap,
- tapHold,
- tap;
-
- if (cellEvents.cellTap || this.table.options.cellTap) {
- tap = false;
-
- element.addEventListener("touchstart", function (e) {
- tap = true;
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
- if (tap) {
- var component = self.getComponent();
-
- if (cellEvents.cellTap) {
- cellEvents.cellTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellTap) {
- self.table.options.cellTap.call(self.table, e, component);
- }
- }
-
- tap = false;
- });
- }
-
- if (cellEvents.cellDblTap || this.table.options.cellDblTap) {
- dblTap = null;
-
- element.addEventListener("touchend", function (e) {
-
- if (dblTap) {
- clearTimeout(dblTap);
- dblTap = null;
-
- var component = self.getComponent();
-
- if (cellEvents.cellDblTap) {
- cellEvents.cellDblTap.call(self.table, e, component);
- }
-
- if (self.table.options.cellDblTap) {
- self.table.options.cellDblTap.call(self.table, e, component);
- }
- } else {
-
- dblTap = setTimeout(function () {
- clearTimeout(dblTap);
- dblTap = null;
- }, 300);
- }
- });
- }
-
- if (cellEvents.cellTapHold || this.table.options.cellTapHold) {
- tapHold = null;
-
- element.addEventListener("touchstart", function (e) {
- clearTimeout(tapHold);
-
- tapHold = setTimeout(function () {
- clearTimeout(tapHold);
- tapHold = null;
- tap = false;
- var component = self.getComponent();
-
- if (cellEvents.cellTapHold) {
- cellEvents.cellTapHold.call(self.table, e, component);
- }
-
- if (self.table.options.cellTapHold) {
- self.table.options.cellTapHold.call(self.table, e, component);
- }
- }, 1000);
- }, { passive: true });
-
- element.addEventListener("touchend", function (e) {
- clearTimeout(tapHold);
- tapHold = null;
- });
- }
-};
-
-//generate cell contents
-Cell.prototype._generateContents = function () {
- var val;
-
- if (this.table.modExists("format")) {
- val = this.table.modules.format.formatValue(this);
- } else {
- val = this.element.innerHTML = this.value;
- }
-
- switch (typeof val === 'undefined' ? 'undefined' : _typeof(val)) {
- case "object":
- if (val instanceof Node) {
-
- //clear previous cell contents
- while (this.element.firstChild) {
- this.element.removeChild(this.element.firstChild);
- }this.element.appendChild(val);
- } else {
- this.element.innerHTML = "";
-
- if (val != null) {
- console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val);
- }
- }
- break;
- case "undefined":
- case "null":
- this.element.innerHTML = "";
- break;
- default:
- this.element.innerHTML = val;
- }
-};
-
-Cell.prototype.cellRendered = function () {
- if (this.table.modExists("format") && this.table.modules.format.cellRendered) {
- this.table.modules.format.cellRendered(this);
- }
-};
-
-//generate tooltip text
-Cell.prototype._generateTooltip = function () {
- var tooltip = this.column.tooltip;
-
- if (tooltip) {
- if (tooltip === true) {
- tooltip = this.value;
- } else if (typeof tooltip == "function") {
- tooltip = tooltip(this.getComponent());
-
- if (tooltip === false) {
- tooltip = "";
- }
- }
-
- if (typeof tooltip === "undefined") {
- tooltip = "";
- }
-
- this.element.setAttribute("title", tooltip);
- } else {
- this.element.setAttribute("title", "");
- }
-};
-
-//////////////////// Getters ////////////////////
-Cell.prototype.getElement = function () {
- return this.element;
-};
-
-Cell.prototype.getValue = function () {
- return this.value;
-};
-
-Cell.prototype.getOldValue = function () {
- return this.oldValue;
-};
-
-//////////////////// Actions ////////////////////
-
-Cell.prototype.setValue = function (value, mutate) {
-
- var changed = this.setValueProcessData(value, mutate),
- component;
-
- if (changed) {
- if (this.table.options.history && this.table.modExists("history")) {
- this.table.modules.history.action("cellEdit", this, { oldValue: this.oldValue, newValue: this.value });
- }
-
- component = this.getComponent();
-
- if (this.column.cellEvents.cellEdited) {
- this.column.cellEvents.cellEdited.call(this.table, component);
- }
-
- this.cellRendered();
-
- this.table.options.cellEdited.call(this.table, component);
-
- this.table.options.dataEdited.call(this.table, this.table.rowManager.getData());
- }
-};
-
-Cell.prototype.setValueProcessData = function (value, mutate) {
- var changed = false;
-
- if (this.value != value) {
-
- changed = true;
-
- if (mutate) {
- if (this.column.modules.mutate) {
- value = this.table.modules.mutator.transformCell(this, value);
- }
- }
- }
-
- this.setValueActual(value);
-
- if (changed && this.table.modExists("columnCalcs")) {
- if (this.column.definition.topCalc || this.column.definition.bottomCalc) {
- if (this.table.options.groupBy && this.table.modExists("groupRows")) {
-
- if (this.table.options.columnCalcs == "table" || this.table.options.columnCalcs == "both") {
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
-
- if (this.table.options.columnCalcs != "table") {
- this.table.modules.columnCalcs.recalcRowGroup(this.row);
- }
- } else {
- this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows);
- }
- }
- }
-
- return changed;
-};
-
-Cell.prototype.setValueActual = function (value) {
- this.oldValue = this.value;
-
- this.value = value;
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
- this.table.modules.reactiveData.block();
- }
-
- this.column.setFieldValue(this.row.data, value);
-
- if (this.table.options.reactiveData && this.table.modExists("reactiveData")) {
- this.table.modules.reactiveData.unblock();
- }
-
- this._generateContents();
- this._generateTooltip();
-
- //set resizable handles
- if (this.table.options.resizableColumns && this.table.modExists("resizeColumns")) {
- this.table.modules.resizeColumns.initializeColumn("cell", this.column, this.element);
- }
-
- //set column menu
- if (this.column.definition.contextMenu && this.table.modExists("menu")) {
- this.table.modules.menu.initializeCell(this);
- }
-
- //handle frozen cells
- if (this.table.modExists("frozenColumns")) {
- this.table.modules.frozenColumns.layoutElement(this.element, this.column);
- }
-};
-
-Cell.prototype.setWidth = function () {
- this.width = this.column.width;
- this.element.style.width = this.column.widthStyled;
-};
-
-Cell.prototype.clearWidth = function () {
- this.width = "";
- this.element.style.width = "";
-};
-
-Cell.prototype.getWidth = function () {
- return this.width || this.element.offsetWidth;
-};
-
-Cell.prototype.setMinWidth = function () {
- this.minWidth = this.column.minWidth;
- this.element.style.minWidth = this.column.minWidthStyled;
-};
-
-Cell.prototype.checkHeight = function () {
- // var height = this.element.css("height");
- this.row.reinitializeHeight();
-};
-
-Cell.prototype.clearHeight = function () {
- this.element.style.height = "";
- this.height = null;
-};
-
-Cell.prototype.setHeight = function () {
- this.height = this.row.height;
- this.element.style.height = this.row.heightStyled;
-};
-
-Cell.prototype.getHeight = function () {
- return this.height || this.element.offsetHeight;
-};
-
-Cell.prototype.show = function () {
- this.element.style.display = "";
-};
-
-Cell.prototype.hide = function () {
- this.element.style.display = "none";
-};
-
-Cell.prototype.edit = function (force) {
- if (this.table.modExists("edit", true)) {
- return this.table.modules.edit.editCell(this, force);
- }
-};
-
-Cell.prototype.cancelEdit = function () {
- if (this.table.modExists("edit", true)) {
- var editing = this.table.modules.edit.getCurrentCell();
-
- if (editing && editing._getSelf() === this) {
- this.table.modules.edit.cancelEdit();
- } else {
- console.warn("Cancel Editor Error - This cell is not currently being edited ");
- }
- }
-};
-
-Cell.prototype.validate = function () {
- if (this.column.modules.validate && this.table.modExists("validate", true)) {
- var valid = this.table.modules.validate.validate(this.column.modules.validate, this, this.getValue());
-
- return valid === true;
- } else {
- return true;
- }
-};
-
-Cell.prototype.delete = function () {
- if (!this.table.rowManager.redrawBlock) {
- this.element.parentNode.removeChild(this.element);
- }
-
- if (this.modules.validate && this.modules.validate.invalid) {
- this.table.modules.validate.clearValidation(this);
- }
-
- if (this.modules.edit && this.modules.edit.edited) {
- this.table.modules.edit.clearEdited(this);
- }
-
- this.element = false;
- this.column.deleteCell(this);
- this.row.deleteCell(this);
- this.calcs = {};
-};
-
-//////////////// Navigation /////////////////
-
-Cell.prototype.nav = function () {
-
- var self = this,
- nextCell = false,
- index = this.row.getCellIndex(this);
-
- return {
- next: function next() {
- var nextCell = this.right(),
- nextRow;
-
- if (!nextCell) {
- nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
- nextCell = nextRow.findNextEditableCell(-1);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- }
- }
- } else {
- return true;
- }
-
- return false;
- },
- prev: function prev() {
- var nextCell = this.left(),
- prevRow;
-
- if (!nextCell) {
- prevRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (prevRow) {
- nextCell = prevRow.findPrevEditableCell(prevRow.cells.length);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- }
- }
- } else {
- return true;
- }
-
- return false;
- },
- left: function left() {
-
- nextCell = self.row.findPrevEditableCell(index);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- } else {
- return false;
- }
- },
- right: function right() {
- nextCell = self.row.findNextEditableCell(index);
-
- if (nextCell) {
- nextCell.edit();
- return true;
- } else {
- return false;
- }
- },
- up: function up() {
- var nextRow = self.table.rowManager.prevDisplayRow(self.row, true);
-
- if (nextRow) {
- nextRow.cells[index].edit();
- }
- },
- down: function down() {
- var nextRow = self.table.rowManager.nextDisplayRow(self.row, true);
-
- if (nextRow) {
- nextRow.cells[index].edit();
- }
- }
-
- };
-};
-
-Cell.prototype.getIndex = function () {
- this.row.getCellIndex(this);
-};
-
-//////////////// Object Generation /////////////////
-Cell.prototype.getComponent = function () {
-
- if (!this.component) {
- this.component = new CellComponent(this);
- }
-
- return this.component;
-};
-var FooterManager = function FooterManager(table) {
- this.table = table;
- this.active = false;
- this.element = this.createElement(); //containing element
- this.external = false;
- this.links = [];
-
- this._initialize();
-};
-
-FooterManager.prototype.createElement = function () {
- var el = document.createElement("div");
-
- el.classList.add("tabulator-footer");
-
- return el;
-};
-
-FooterManager.prototype._initialize = function (element) {
- if (this.table.options.footerElement) {
-
- switch (_typeof(this.table.options.footerElement)) {
- case "string":
-
- if (this.table.options.footerElement[0] === "<") {
- this.element.innerHTML = this.table.options.footerElement;
- } else {
- this.external = true;
- this.element = document.querySelector(this.table.options.footerElement);
- }
- break;
- default:
- this.element = this.table.options.footerElement;
- break;
- }
- }
-};
-
-FooterManager.prototype.getElement = function () {
- return this.element;
-};
-
-FooterManager.prototype.append = function (element, parent) {
- this.activate(parent);
-
- this.element.appendChild(element);
- this.table.rowManager.adjustTableSize();
-};
-
-FooterManager.prototype.prepend = function (element, parent) {
- this.activate(parent);
-
- this.element.insertBefore(element, this.element.firstChild);
- this.table.rowManager.adjustTableSize();
-};
-
-FooterManager.prototype.remove = function (element) {
- element.parentNode.removeChild(element);
- this.deactivate();
-};
-
-FooterManager.prototype.deactivate = function (force) {
- if (!this.element.firstChild || force) {
- if (!this.external) {
- this.element.parentNode.removeChild(this.element);
- }
- this.active = false;
- }
-
- // this.table.rowManager.adjustTableSize();
-};
-
-FooterManager.prototype.activate = function (parent) {
- if (!this.active) {
- this.active = true;
- if (!this.external) {
- this.table.element.appendChild(this.getElement());
- this.table.element.style.display = '';
- }
- }
-
- if (parent) {
- this.links.push(parent);
- }
-};
-
-FooterManager.prototype.redraw = function () {
- this.links.forEach(function (link) {
- link.footerRedraw();
- });
-};
-
-var Tabulator = function Tabulator(element, options) {
-
- this.options = {};
-
- this.columnManager = null; // hold Column Manager
- this.rowManager = null; //hold Row Manager
- this.footerManager = null; //holder Footer Manager
- this.browser = ""; //hold current browser type
- this.browserSlow = false; //handle reduced functionality for slower browsers
- this.browserMobile = false; //check if running on moble, prevent resize cancelling edit on keyboard appearence
-
- this.modules = {}; //hold all modules bound to this table
-
- this.initializeElement(element);
- this.initializeOptions(options || {});
- this._create();
-
- Tabulator.prototype.comms.register(this); //register table for inderdevice communication
-};
-
-//default setup options
-Tabulator.prototype.defaultOptions = {
-
- height: false, //height of tabulator
- minHeight: false, //minimum height of tabulator
- maxHeight: false, //maximum height of tabulator
-
- layout: "fitData", ///layout type "fitColumns" | "fitData"
- layoutColumnsOnNewData: false, //update column widths on setData
-
- columnMinWidth: 40, //minimum global width for a column
- columnHeaderVertAlign: "top", //vertical alignment of column headers
- columnVertAlign: false, // DEPRECATED - Left to allow warning
-
- resizableColumns: true, //resizable columns
- resizableRows: false, //resizable rows
- autoResize: true, //auto resize table
-
- columns: [], //store for colum header info
-
- cellHozAlign: "", //horizontal align columns
- cellVertAlign: "", //certical align columns
-
-
- data: [], //default starting data
-
- autoColumns: false, //build columns from data row structure
-
- reactiveData: false, //enable data reactivity
-
- nestedFieldSeparator: ".", //seperatpr for nested data
-
- tooltips: false, //Tool tip value
- tooltipsHeader: false, //Tool tip for headers
- tooltipGenerationMode: "load", //when to generate tooltips
-
- initialSort: false, //initial sorting criteria
- initialFilter: false, //initial filtering criteria
- initialHeaderFilter: false, //initial header filtering criteria
-
- columnHeaderSortMulti: true, //multiple or single column sorting
-
- sortOrderReverse: false, //reverse internal sort ordering
-
- headerSort: true, //set default global header sort
- headerSortTristate: false, //set default tristate header sorting
-
- footerElement: false, //hold footer element
-
- index: "id", //filed for row index
-
- keybindings: [], //array for keybindings
-
- tabEndNewRow: false, //create new row when tab to end of table
-
- invalidOptionWarnings: true, //allow toggling of invalid option warnings
-
- clipboard: false, //enable clipboard
- clipboardCopyStyled: true, //formatted table data
- clipboardCopyConfig: false, //clipboard config
- clipboardCopyFormatter: false, //DEPRICATED - REMOVE in 5.0
- clipboardCopyRowRange: "active", //restrict clipboard to visible rows only
- clipboardPasteParser: "table", //convert pasted clipboard data to rows
- clipboardPasteAction: "insert", //how to insert pasted data into the table
-
- clipboardCopied: function clipboardCopied() {}, //data has been copied to the clipboard
- clipboardPasted: function clipboardPasted() {}, //data has been pasted into the table
- clipboardPasteError: function clipboardPasteError() {}, //data has not successfully been pasted into the table
-
- downloadDataFormatter: false, //function to manipulate table data before it is downloaded
- downloadReady: function downloadReady(data, blob) {
- return blob;
- }, //function to manipulate download data
- downloadComplete: false, //function to manipulate download data
- downloadConfig: {}, //download config
- downloadRowRange: "active", //restrict download to active rows only
-
- dataTree: false, //enable data tree
- dataTreeElementColumn: false,
- dataTreeBranchElement: true, //show data tree branch element
- dataTreeChildIndent: 9, //data tree child indent in px
- dataTreeChildField: "_children", //data tre column field to look for child rows
- dataTreeCollapseElement: false, //data tree row collapse element
- dataTreeExpandElement: false, //data tree row expand element
- dataTreeStartExpanded: false,
- dataTreeRowExpanded: function dataTreeRowExpanded() {}, //row has been expanded
- dataTreeRowCollapsed: function dataTreeRowCollapsed() {}, //row has been collapsed
- dataTreeChildColumnCalcs: false, //include visible data tree rows in column calculations
- dataTreeSelectPropagate: false, //seleccting a parent row selects its children
-
- printAsHtml: false, //enable print as html
- printFormatter: false, //printing page formatter
- printHeader: false, //page header contents
- printFooter: false, //page footer contents
- printCopyStyle: true, //DEPRICATED - REMOVE in 5.0
- printStyled: true, //enable print as html styling
- printVisibleRows: true, //DEPRICATED - REMOVE in 5.0
- printRowRange: "visible", //restrict print to visible rows only
- printConfig: {}, //print config options
-
- addRowPos: "bottom", //position to insert blank rows, top|bottom
-
- selectable: "highlight", //highlight rows on hover
- selectableRangeMode: "drag", //highlight rows on hover
- selectableRollingSelection: true, //roll selection once maximum number of selectable rows is reached
- selectablePersistence: true, // maintain selection when table view is updated
- selectableCheck: function selectableCheck(data, row) {
- return true;
- }, //check wheather row is selectable
-
- headerFilterLiveFilterDelay: 300, //delay before updating column after user types in header filter
- headerFilterPlaceholder: false, //placeholder text to display in header filters
-
- headerVisible: true, //hide header
-
- history: false, //enable edit history
-
- locale: false, //current system language
- langs: {},
-
- virtualDom: true, //enable DOM virtualization
- virtualDomBuffer: 0, // set virtual DOM buffer size
-
- persistentLayout: false, //DEPRICATED - REMOVE in 5.0
- persistentSort: false, //DEPRICATED - REMOVE in 5.0
- persistentFilter: false, //DEPRICATED - REMOVE in 5.0
- persistenceID: "", //key for persistent storage
- persistenceMode: true, //mode for storing persistence information
- persistenceReaderFunc: false, //function for handling persistence data reading
- persistenceWriterFunc: false, //function for handling persistence data writing
-
- persistence: false,
-
- responsiveLayout: false, //responsive layout flags
- responsiveLayoutCollapseStartOpen: true, //start showing collapsed data
- responsiveLayoutCollapseUseFormatters: true, //responsive layout collapse formatter
- responsiveLayoutCollapseFormatter: false, //responsive layout collapse formatter
-
- pagination: false, //set pagination type
- paginationSize: false, //set number of rows to a page
- paginationInitialPage: 1, //initail page to show on load
- paginationButtonCount: 5, // set count of page button
- paginationSizeSelector: false, //add pagination size selector element
- paginationElement: false, //element to hold pagination numbers
- paginationDataSent: {}, //pagination data sent to the server
- paginationDataReceived: {}, //pagination data received from the server
- paginationAddRow: "page", //add rows on table or page
-
- ajaxURL: false, //url for ajax loading
- ajaxURLGenerator: false,
- ajaxParams: {}, //params for ajax loading
- ajaxConfig: "get", //ajax request type
- ajaxContentType: "form", //ajax request type
- ajaxRequestFunc: false, //promise function
- ajaxLoader: true, //show loader
- ajaxLoaderLoading: false, //loader element
- ajaxLoaderError: false, //loader element
- ajaxFiltering: false,
- ajaxSorting: false,
- ajaxProgressiveLoad: false, //progressive loading
- ajaxProgressiveLoadDelay: 0, //delay between requests
- ajaxProgressiveLoadScrollMargin: 0, //margin before scroll begins
-
- groupBy: false, //enable table grouping and set field to group by
- groupStartOpen: true, //starting state of group
- groupValues: false,
-
- groupHeader: false, //header generation function
- groupHeaderPrint: null,
- groupHeaderClipboard: null,
- groupHeaderHtmlOutput: null,
- groupHeaderDownload: null,
-
- htmlOutputConfig: false, //html outypu config
-
- movableColumns: false, //enable movable columns
-
- movableRows: false, //enable movable rows
- movableRowsConnectedTables: false, //tables for movable rows to be connected to
- movableRowsConnectedElements: false, //other elements for movable rows to be connected to
- movableRowsSender: false,
- movableRowsReceiver: "insert",
- movableRowsSendingStart: function movableRowsSendingStart() {},
- movableRowsSent: function movableRowsSent() {},
- movableRowsSentFailed: function movableRowsSentFailed() {},
- movableRowsSendingStop: function movableRowsSendingStop() {},
- movableRowsReceivingStart: function movableRowsReceivingStart() {},
- movableRowsReceived: function movableRowsReceived() {},
- movableRowsReceivedFailed: function movableRowsReceivedFailed() {},
- movableRowsReceivingStop: function movableRowsReceivingStop() {},
- movableRowsElementDrop: function movableRowsElementDrop() {},
-
- scrollToRowPosition: "top",
- scrollToRowIfVisible: true,
-
- scrollToColumnPosition: "left",
- scrollToColumnIfVisible: true,
-
- rowFormatter: false,
- rowFormatterPrint: null,
- rowFormatterClipboard: null,
- rowFormatterHtmlOutput: null,
-
- placeholder: false,
-
- //table building callbacks
- tableBuilding: function tableBuilding() {},
- tableBuilt: function tableBuilt() {},
-
- //render callbacks
- renderStarted: function renderStarted() {},
- renderComplete: function renderComplete() {},
-
- //row callbacks
- rowClick: false,
- rowDblClick: false,
- rowContext: false,
- rowTap: false,
- rowDblTap: false,
- rowTapHold: false,
- rowMouseEnter: false,
- rowMouseLeave: false,
- rowMouseOver: false,
- rowMouseOut: false,
- rowMouseMove: false,
- rowContextMenu: false,
- rowAdded: function rowAdded() {},
- rowDeleted: function rowDeleted() {},
- rowMoved: function rowMoved() {},
- rowUpdated: function rowUpdated() {},
- rowSelectionChanged: function rowSelectionChanged() {},
- rowSelected: function rowSelected() {},
- rowDeselected: function rowDeselected() {},
- rowResized: function rowResized() {},
-
- //cell callbacks
- //row callbacks
- cellClick: false,
- cellDblClick: false,
- cellContext: false,
- cellTap: false,
- cellDblTap: false,
- cellTapHold: false,
- cellMouseEnter: false,
- cellMouseLeave: false,
- cellMouseOver: false,
- cellMouseOut: false,
- cellMouseMove: false,
- cellEditing: function cellEditing() {},
- cellEdited: function cellEdited() {},
- cellEditCancelled: function cellEditCancelled() {},
-
- //column callbacks
- columnMoved: false,
- columnResized: function columnResized() {},
- columnTitleChanged: function columnTitleChanged() {},
- columnVisibilityChanged: function columnVisibilityChanged() {},
-
- //HTML iport callbacks
- htmlImporting: function htmlImporting() {},
- htmlImported: function htmlImported() {},
-
- //data callbacks
- dataLoading: function dataLoading() {},
- dataLoaded: function dataLoaded() {},
- dataEdited: function dataEdited() {},
-
- //ajax callbacks
- ajaxRequesting: function ajaxRequesting() {},
- ajaxResponse: false,
- ajaxError: function ajaxError() {},
-
- //filtering callbacks
- dataFiltering: false,
- dataFiltered: false,
-
- //sorting callbacks
- dataSorting: function dataSorting() {},
- dataSorted: function dataSorted() {},
-
- //grouping callbacks
- groupToggleElement: "arrow",
- groupClosedShowCalcs: false,
- dataGrouping: function dataGrouping() {},
- dataGrouped: false,
- groupVisibilityChanged: function groupVisibilityChanged() {},
- groupClick: false,
- groupDblClick: false,
- groupContext: false,
- groupContextMenu: false,
- groupTap: false,
- groupDblTap: false,
- groupTapHold: false,
-
- columnCalcs: true,
-
- //pagination callbacks
- pageLoaded: function pageLoaded() {},
-
- //localization callbacks
- localized: function localized() {},
-
- //validation callbacks
- validationMode: "blocking",
- validationFailed: function validationFailed() {},
-
- //history callbacks
- historyUndo: function historyUndo() {},
- historyRedo: function historyRedo() {},
-
- //scroll callbacks
- scrollHorizontal: function scrollHorizontal() {},
- scrollVertical: function scrollVertical() {}
-};
-
-Tabulator.prototype.initializeOptions = function (options) {
-
- //warn user if option is not available
- if (options.invalidOptionWarnings !== false) {
- for (var key in options) {
- if (typeof this.defaultOptions[key] === "undefined") {
- console.warn("Invalid table constructor option:", key);
- }
- }
- }
-
- //assign options to table
- for (var key in this.defaultOptions) {
- if (key in options) {
- this.options[key] = options[key];
- } else {
- if (Array.isArray(this.defaultOptions[key])) {
- this.options[key] = [];
- } else if (_typeof(this.defaultOptions[key]) === "object" && this.defaultOptions[key] !== null) {
- this.options[key] = {};
- } else {
- this.options[key] = this.defaultOptions[key];
- }
- }
- }
-};
-
-Tabulator.prototype.initializeElement = function (element) {
-
- if (typeof HTMLElement !== "undefined" && element instanceof HTMLElement) {
- this.element = element;
- return true;
- } else if (typeof element === "string") {
- this.element = document.querySelector(element);
-
- if (this.element) {
- return true;
- } else {
- console.error("Tabulator Creation Error - no element found matching selector: ", element);
- return false;
- }
- } else {
- console.error("Tabulator Creation Error - Invalid element provided:", element);
- return false;
- }
-};
-
-//convert depricated functionality to new functions
-Tabulator.prototype._mapDepricatedFunctionality = function () {
-
- //map depricated persistance setup options
- if (this.options.persistentLayout || this.options.persistentSort || this.options.persistentFilter) {
- if (!this.options.persistence) {
- this.options.persistence = {};
- }
- }
-
- if (this.options.downloadDataFormatter) {
- console.warn("DEPRECATION WARNING - downloadDataFormatter option has been deprecated");
- }
-
- if (typeof this.options.clipboardCopyHeader !== "undefined") {
- this.options.columnHeaders = this.options.clipboardCopyHeader;
- console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option");
- }
-
- if (this.options.printVisibleRows !== true) {
- console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option");
-
- this.options.persistence.printRowRange = "active";
- }
-
- if (this.options.printCopyStyle !== true) {
- console.warn("printCopyStyle option is deprecated, you should now use the printStyled option");
-
- this.options.persistence.printStyled = this.options.printCopyStyle;
- }
-
- if (this.options.persistentLayout) {
- console.warn("persistentLayout option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.columns === "undefined") {
- this.options.persistence.columns = true;
- }
- }
-
- if (this.options.persistentSort) {
- console.warn("persistentSort option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.sort === "undefined") {
- this.options.persistence.sort = true;
- }
- }
-
- if (this.options.persistentFilter) {
- console.warn("persistentFilter option is deprecated, you should now use the persistence option");
-
- if (this.options.persistence !== true && typeof this.options.persistence.filter === "undefined") {
- this.options.persistence.filter = true;
- }
- }
-
- if (this.options.columnVertAlign) {
- console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option");
-
- this.options.columnHeaderVertAlign = this.options.columnVertAlign;
- }
-};
-
-Tabulator.prototype._clearSelection = function () {
-
- this.element.classList.add("tabulator-block-select");
-
- if (window.getSelection) {
- if (window.getSelection().empty) {
- // Chrome
- window.getSelection().empty();
- } else if (window.getSelection().removeAllRanges) {
- // Firefox
- window.getSelection().removeAllRanges();
- }
- } else if (document.selection) {
- // IE?
- document.selection.empty();
- }
-
- this.element.classList.remove("tabulator-block-select");
-};
-
-//concreate table
-Tabulator.prototype._create = function () {
- this._clearObjectPointers();
-
- this._mapDepricatedFunctionality();
-
- this.bindModules();
-
- if (this.element.tagName === "TABLE") {
- if (this.modExists("htmlTableImport", true)) {
- this.modules.htmlTableImport.parseTable();
- }
- }
-
- this.columnManager = new ColumnManager(this);
- this.rowManager = new RowManager(this);
- this.footerManager = new FooterManager(this);
-
- this.columnManager.setRowManager(this.rowManager);
- this.rowManager.setColumnManager(this.columnManager);
-
- this._buildElement();
-
- this._loadInitialData();
-};
-
-//clear pointers to objects in default config object
-Tabulator.prototype._clearObjectPointers = function () {
- this.options.columns = this.options.columns.slice(0);
-
- if (!this.options.reactiveData) {
- this.options.data = this.options.data.slice(0);
- }
-};
-
-//build tabulator element
-Tabulator.prototype._buildElement = function () {
- var _this17 = this;
-
- var element = this.element,
- mod = this.modules,
- options = this.options;
-
- options.tableBuilding.call(this);
-
- element.classList.add("tabulator");
- element.setAttribute("role", "grid");
-
- //empty element
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- } //set table height
- if (options.height) {
- options.height = isNaN(options.height) ? options.height : options.height + "px";
- element.style.height = options.height;
- }
-
- //set table min height
- if (options.minHeight !== false) {
- options.minHeight = isNaN(options.minHeight) ? options.minHeight : options.minHeight + "px";
- element.style.minHeight = options.minHeight;
- }
-
- //set table maxHeight
- if (options.maxHeight !== false) {
- options.maxHeight = isNaN(options.maxHeight) ? options.maxHeight : options.maxHeight + "px";
- element.style.maxHeight = options.maxHeight;
- }
-
- this.columnManager.initialize();
- this.rowManager.initialize();
-
- this._detectBrowser();
-
- if (this.modExists("layout", true)) {
- mod.layout.initialize(options.layout);
- }
-
- //set localization
- if (options.headerFilterPlaceholder !== false) {
- mod.localize.setHeaderFilterPlaceholder(options.headerFilterPlaceholder);
- }
-
- for (var locale in options.langs) {
- mod.localize.installLang(locale, options.langs[locale]);
- }
-
- mod.localize.setLocale(options.locale);
-
- //configure placeholder element
- if (typeof options.placeholder == "string") {
-
- var el = document.createElement("div");
- el.classList.add("tabulator-placeholder");
-
- var span = document.createElement("span");
- span.innerHTML = options.placeholder;
-
- el.appendChild(span);
-
- options.placeholder = el;
- }
-
- //build table elements
- element.appendChild(this.columnManager.getElement());
- element.appendChild(this.rowManager.getElement());
-
- if (options.footerElement) {
- this.footerManager.activate();
- }
-
- if (options.persistence && this.modExists("persistence", true)) {
- mod.persistence.initialize();
- }
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.columns) {
- options.columns = mod.persistence.load("columns", options.columns);
- }
-
- if (options.movableRows && this.modExists("moveRow")) {
- mod.moveRow.initialize();
- }
-
- if (options.autoColumns && this.options.data) {
- this.columnManager.generateColumnsFromRowData(this.options.data);
- }
-
- if (this.modExists("columnCalcs")) {
- mod.columnCalcs.initialize();
- }
-
- this.columnManager.setColumns(options.columns);
-
- if (options.dataTree && this.modExists("dataTree", true)) {
- mod.dataTree.initialize();
- }
-
- if (this.modExists("frozenRows")) {
- this.modules.frozenRows.initialize();
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort || options.initialSort) && this.modExists("sort", true)) {
- var sorters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.sort) {
- sorters = mod.persistence.load("sort");
-
- if (sorters === false && options.initialSort) {
- sorters = options.initialSort;
- }
- } else if (options.initialSort) {
- sorters = options.initialSort;
- }
-
- mod.sort.setSort(sorters);
- }
-
- if ((options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter || options.initialFilter) && this.modExists("filter", true)) {
- var filters = [];
-
- if (options.persistence && this.modExists("persistence", true) && mod.persistence.config.filter) {
- filters = mod.persistence.load("filter");
-
- if (filters === false && options.initialFilter) {
- filters = options.initialFilter;
- }
- } else if (options.initialFilter) {
- filters = options.initialFilter;
- }
-
- mod.filter.setFilter(filters);
- }
-
- if (options.initialHeaderFilter && this.modExists("filter", true)) {
- options.initialHeaderFilter.forEach(function (item) {
-
- var column = _this17.columnManager.findColumn(item.field);
-
- if (column) {
- mod.filter.setHeaderFilterValue(column, item.value);
- } else {
- console.warn("Column Filter Error - No matching column found:", item.field);
- return false;
- }
- });
- }
-
- if (this.modExists("ajax")) {
- mod.ajax.initialize();
- }
-
- if (options.pagination && this.modExists("page", true)) {
- mod.page.initialize();
- }
-
- if (options.groupBy && this.modExists("groupRows", true)) {
- mod.groupRows.initialize();
- }
-
- if (this.modExists("keybindings")) {
- mod.keybindings.initialize();
- }
-
- if (this.modExists("selectRow")) {
- mod.selectRow.clearSelectionData(true);
- }
-
- if (options.autoResize && this.modExists("resizeTable")) {
- mod.resizeTable.initialize();
- }
-
- if (this.modExists("clipboard")) {
- mod.clipboard.initialize();
- }
-
- if (options.printAsHtml && this.modExists("print")) {
- mod.print.initialize();
- }
-
- options.tableBuilt.call(this);
-};
-
-Tabulator.prototype._loadInitialData = function () {
- var self = this;
-
- if (self.options.pagination && self.modExists("page")) {
- self.modules.page.reset(true, true);
-
- if (self.options.pagination == "local") {
- if (self.options.data.length) {
- self.rowManager.setData(self.options.data, false, true);
- } else {
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {
- if (self.options.paginationInitialPage) {
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- });
-
- return;
- } else {
- self.rowManager.setData(self.options.data, false, true);
- }
- }
-
- if (self.options.paginationInitialPage) {
- self.modules.page.setPage(self.options.paginationInitialPage);
- }
- } else {
- if (self.options.ajaxURL) {
- self.modules.page.setPage(self.options.paginationInitialPage).then(function () {}).catch(function () {});
- } else {
- self.rowManager.setData([], false, true);
- }
- }
- } else {
- if (self.options.data.length) {
- self.rowManager.setData(self.options.data);
- } else {
- if ((self.options.ajaxURL || self.options.ajaxURLGenerator) && self.modExists("ajax")) {
- self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {});
- } else {
- self.rowManager.setData(self.options.data, false, true);
- }
- }
- }
-};
-
-//deconstructor
-Tabulator.prototype.destroy = function () {
- var element = this.element;
-
- Tabulator.prototype.comms.deregister(this); //deregister table from inderdevice communication
-
- if (this.options.reactiveData && this.modExists("reactiveData", true)) {
- this.modules.reactiveData.unwatchData();
- }
-
- //clear row data
- this.rowManager.rows.forEach(function (row) {
- row.wipe();
- });
-
- this.rowManager.rows = [];
- this.rowManager.activeRows = [];
- this.rowManager.displayRows = [];
-
- //clear event bindings
- if (this.options.autoResize && this.modExists("resizeTable")) {
- this.modules.resizeTable.clearBindings();
- }
-
- if (this.modExists("keybindings")) {
- this.modules.keybindings.clearBindings();
- }
-
- //clear DOM
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }element.classList.remove("tabulator");
-};
-
-Tabulator.prototype._detectBrowser = function () {
- var ua = navigator.userAgent || navigator.vendor || window.opera;
-
- if (ua.indexOf("Trident") > -1) {
- this.browser = "ie";
- this.browserSlow = true;
- } else if (ua.indexOf("Edge") > -1) {
- this.browser = "edge";
- this.browserSlow = true;
- } else if (ua.indexOf("Firefox") > -1) {
- this.browser = "firefox";
- this.browserSlow = false;
- } else {
- this.browser = "other";
- this.browserSlow = false;
- }
-
- this.browserMobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0, 4));
-};
-
-////////////////// Data Handling //////////////////
-
-//block table redrawing
-Tabulator.prototype.blockRedraw = function () {
- return this.rowManager.blockRedraw();
-};
-
-//restore table redrawing
-Tabulator.prototype.restoreRedraw = function () {
- return this.rowManager.restoreRedraw();
-};
-
-//local data from local file
-Tabulator.prototype.setDataFromLocalFile = function (extensions) {
- var _this18 = this;
-
- return new Promise(function (resolve, reject) {
- var input = document.createElement("input");
- input.type = "file";
- input.accept = extensions || ".json,application/json";
-
- input.addEventListener("change", function (e) {
- var file = input.files[0],
- reader = new FileReader(),
- data;
-
- reader.readAsText(file);
-
- reader.onload = function (e) {
-
- try {
- data = JSON.parse(reader.result);
- } catch (e) {
- console.warn("File Load Error - File contents is invalid JSON", e);
- reject(e);
- return;
- }
-
- _this18._setData(data).then(function (data) {
- resolve(data);
- }).catch(function (err) {
- resolve(err);
- });
- };
-
- reader.onerror = function (e) {
- console.warn("File Load Error - Unable to read file");
- reject();
- };
- });
-
- input.click();
- });
-};
-
-//load data
-Tabulator.prototype.setData = function (data, params, config) {
- if (this.modExists("ajax")) {
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, false, true);
-};
-
-Tabulator.prototype._setData = function (data, params, config, inPosition, columnsChanged) {
- var self = this;
-
- if (typeof data === "string") {
- if (data.indexOf("{") == 0 || data.indexOf("[") == 0) {
- //data is a json encoded string
- return self.rowManager.setData(JSON.parse(data), inPosition, columnsChanged);
- } else {
-
- if (self.modExists("ajax", true)) {
- if (params) {
- self.modules.ajax.setParams(params);
- }
-
- if (config) {
- self.modules.ajax.setConfig(config);
- }
-
- self.modules.ajax.setUrl(data);
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
- self.modules.page.reset(true, true);
- return self.modules.page.setPage(1);
- } else {
- //assume data is url, make ajax call to url to get data
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- }
- }
- } else {
- if (data) {
- //asume data is already an object
- return self.rowManager.setData(data, inPosition, columnsChanged);
- } else {
-
- //no data provided, check if ajaxURL is present;
- if (self.modExists("ajax") && (self.modules.ajax.getUrl || self.options.ajaxURLGenerator)) {
-
- if (self.options.pagination == "remote" && self.modExists("page", true)) {
- self.modules.page.reset(true, true);
- return self.modules.page.setPage(1);
- } else {
- return self.modules.ajax.loadData(inPosition, columnsChanged);
- }
- } else {
- //empty data
- return self.rowManager.setData([], inPosition, columnsChanged);
- }
- }
- }
-};
-
-//clear data
-Tabulator.prototype.clearData = function () {
- if (this.modExists("ajax")) {
- this.modules.ajax.blockActiveRequest();
- }
-
- this.rowManager.clearData();
-};
-
-//get table data array
-Tabulator.prototype.getData = function (active) {
-
- if (active === true) {
- console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'");
- active = "active";
- }
-
- return this.rowManager.getData(active);
-};
-
-//get table data array count
-Tabulator.prototype.getDataCount = function (active) {
-
- if (active === true) {
- console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'");
- active = "active";
- }
-
- return this.rowManager.getDataCount(active);
-};
-
-//search for specific row components
-Tabulator.prototype.searchRows = function (field, type, value) {
- if (this.modExists("filter", true)) {
- return this.modules.filter.search("rows", field, type, value);
- }
-};
-
-//search for specific data
-Tabulator.prototype.searchData = function (field, type, value) {
- if (this.modExists("filter", true)) {
- return this.modules.filter.search("data", field, type, value);
- }
-};
-
-//get table html
-Tabulator.prototype.getHtml = function (visible, style, config) {
- if (this.modExists("export", true)) {
- return this.modules.export.getHtml(visible, style, config);
- }
-};
-
-//get print html
-Tabulator.prototype.print = function (visible, style, config) {
- if (this.modExists("print", true)) {
- return this.modules.print.printFullscreen(visible, style, config);
- }
-};
-
-//retrieve Ajax URL
-Tabulator.prototype.getAjaxUrl = function () {
- if (this.modExists("ajax", true)) {
- return this.modules.ajax.getUrl();
- }
-};
-
-//replace data, keeping table in position with same sort
-Tabulator.prototype.replaceData = function (data, params, config) {
- if (this.modExists("ajax")) {
- this.modules.ajax.blockActiveRequest();
- }
-
- return this._setData(data, params, config, true);
-};
-
-//update table data
-Tabulator.prototype.updateData = function (data) {
- var _this19 = this;
-
- var self = this;
- var responses = 0;
-
- return new Promise(function (resolve, reject) {
- if (_this19.modExists("ajax")) {
- _this19.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (data) {
- data.forEach(function (item) {
- var row = self.rowManager.findRow(item[self.options.index]);
-
- if (row) {
- responses++;
-
- row.updateData(item).then(function () {
- responses--;
-
- if (!responses) {
- resolve();
- }
- });
- }
- });
- } else {
- console.warn("Update Error - No data provided");
- reject("Update Error - No data provided");
- }
- });
-};
-
-Tabulator.prototype.addData = function (data, pos, index) {
- var _this20 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this20.modExists("ajax")) {
- _this20.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (data) {
- _this20.rowManager.addRows(data, pos, index).then(function (rows) {
- var output = [];
-
- rows.forEach(function (row) {
- output.push(row.getComponent());
- });
-
- resolve(output);
- });
- } else {
- console.warn("Update Error - No data provided");
- reject("Update Error - No data provided");
- }
- });
-};
-
-//update table data
-Tabulator.prototype.updateOrAddData = function (data) {
- var _this21 = this;
-
- var self = this,
- rows = [],
- responses = 0;
-
- return new Promise(function (resolve, reject) {
- if (_this21.modExists("ajax")) {
- _this21.modules.ajax.blockActiveRequest();
- }
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (data) {
- data.forEach(function (item) {
- var row = self.rowManager.findRow(item[self.options.index]);
-
- responses++;
-
- if (row) {
- row.updateData(item).then(function () {
- responses--;
- rows.push(row.getComponent());
-
- if (!responses) {
- resolve(rows);
- }
- });
- } else {
- self.rowManager.addRows(item).then(function (newRows) {
- responses--;
- rows.push(newRows[0].getComponent());
-
- if (!responses) {
- resolve(rows);
- }
- });
- }
- });
- } else {
- console.warn("Update Error - No data provided");
- reject("Update Error - No data provided");
- }
- });
-};
-
-//get row object
-Tabulator.prototype.getRow = function (index) {
- var row = this.rowManager.findRow(index);
-
- if (row) {
- return row.getComponent();
- } else {
- console.warn("Find Error - No matching row found:", index);
- return false;
- }
-};
-
-//get row object
-Tabulator.prototype.getRowFromPosition = function (position, active) {
- var row = this.rowManager.getRowFromPosition(position, active);
-
- if (row) {
- return row.getComponent();
- } else {
- console.warn("Find Error - No matching row found:", position);
- return false;
- }
-};
-
-//delete row from table
-Tabulator.prototype.deleteRow = function (index) {
- var _this22 = this;
-
- return new Promise(function (resolve, reject) {
- var self = _this22,
- count = 0,
- successCount = 0,
- foundRows = [];
-
- function doneCheck() {
- count++;
-
- if (count == index.length) {
- if (successCount) {
- self.rowManager.reRenderInPosition();
- resolve();
- }
- }
- }
-
- if (!Array.isArray(index)) {
- index = [index];
- }
-
- //find matching rows
- index.forEach(function (item) {
- var row = _this22.rowManager.findRow(item, true);
-
- if (row) {
- foundRows.push(row);
- } else {
- console.warn("Delete Error - No matching row found:", item);
- reject("Delete Error - No matching row found");
- doneCheck();
- }
- });
-
- //sort rows into correct order to ensure smooth delete from table
- foundRows.sort(function (a, b) {
- return _this22.rowManager.rows.indexOf(a) > _this22.rowManager.rows.indexOf(b) ? 1 : -1;
- });
-
- foundRows.forEach(function (row) {
- row.delete().then(function () {
- successCount++;
- doneCheck();
- }).catch(function (err) {
- doneCheck();
- reject(err);
- });
- });
- });
-};
-
-//add row to table
-Tabulator.prototype.addRow = function (data, pos, index) {
- var _this23 = this;
-
- return new Promise(function (resolve, reject) {
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- _this23.rowManager.addRows(data, pos, index).then(function (rows) {
- //recalc column calculations if present
- if (_this23.modExists("columnCalcs")) {
- _this23.modules.columnCalcs.recalc(_this23.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- });
- });
-};
-
-//update a row if it exitsts otherwise create it
-Tabulator.prototype.updateOrAddRow = function (index, data) {
- var _this24 = this;
-
- return new Promise(function (resolve, reject) {
- var row = _this24.rowManager.findRow(index);
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (row) {
- row.updateData(data).then(function () {
- //recalc column calculations if present
- if (_this24.modExists("columnCalcs")) {
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(row.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- } else {
- row = _this24.rowManager.addRows(data).then(function (rows) {
- //recalc column calculations if present
- if (_this24.modExists("columnCalcs")) {
- _this24.modules.columnCalcs.recalc(_this24.rowManager.activeRows);
- }
-
- resolve(rows[0].getComponent());
- }).catch(function (err) {
- reject(err);
- });
- }
- });
-};
-
-//update row data
-Tabulator.prototype.updateRow = function (index, data) {
- var _this25 = this;
-
- return new Promise(function (resolve, reject) {
- var row = _this25.rowManager.findRow(index);
-
- if (typeof data === "string") {
- data = JSON.parse(data);
- }
-
- if (row) {
- row.updateData(data).then(function () {
- resolve(row.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Update Error - No matching row found:", index);
- reject("Update Error - No matching row found");
- }
- });
-};
-
-//scroll to row in DOM
-Tabulator.prototype.scrollToRow = function (index, position, ifVisible) {
- var _this26 = this;
-
- return new Promise(function (resolve, reject) {
- var row = _this26.rowManager.findRow(index);
-
- if (row) {
- _this26.rowManager.scrollToRow(row, position, ifVisible).then(function () {
- resolve();
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Scroll Error - No matching row found:", index);
- reject("Scroll Error - No matching row found");
- }
- });
-};
-
-Tabulator.prototype.moveRow = function (from, to, after) {
- var fromRow = this.rowManager.findRow(from);
-
- if (fromRow) {
- fromRow.moveToRow(to, after);
- } else {
- console.warn("Move Error - No matching row found:", from);
- }
-};
-
-Tabulator.prototype.getRows = function (active) {
-
- if (active === true) {
- console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'");
- active = "active";
- }
-
- return this.rowManager.getComponents(active);
-};
-
-//get position of row in table
-Tabulator.prototype.getRowPosition = function (index, active) {
- var row = this.rowManager.findRow(index);
-
- if (row) {
- return this.rowManager.getRowPosition(row, active);
- } else {
- console.warn("Position Error - No matching row found:", index);
- return false;
- }
-};
-
-//copy table data to clipboard
-Tabulator.prototype.copyToClipboard = function (selector) {
- if (this.modExists("clipboard", true)) {
- this.modules.clipboard.copy(selector);
- }
-};
-
-/////////////// Column Functions ///////////////
-
-Tabulator.prototype.setColumns = function (definition) {
- this.columnManager.setColumns(definition);
-};
-
-Tabulator.prototype.getColumns = function (structured) {
- return this.columnManager.getComponents(structured);
-};
-
-Tabulator.prototype.getColumn = function (field) {
- var col = this.columnManager.findColumn(field);
-
- if (col) {
- return col.getComponent();
- } else {
- console.warn("Find Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.getColumnDefinitions = function () {
- return this.columnManager.getDefinitionTree();
-};
-
-Tabulator.prototype.getColumnLayout = function () {
- if (this.modExists("persistence", true)) {
- return this.modules.persistence.parseColumns(this.columnManager.getColumns());
- }
-};
-
-Tabulator.prototype.setColumnLayout = function (layout) {
- if (this.modExists("persistence", true)) {
- this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns, layout));
- return true;
- }
- return false;
-};
-
-Tabulator.prototype.showColumn = function (field) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- column.show();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
- this.modules.responsiveLayout.update();
- }
- } else {
- console.warn("Column Show Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.hideColumn = function (field) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- column.hide();
-
- if (this.options.responsiveLayout && this.modExists("responsiveLayout", true)) {
- this.modules.responsiveLayout.update();
- }
- } else {
- console.warn("Column Hide Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.toggleColumn = function (field) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- if (column.visible) {
- column.hide();
- } else {
- column.show();
- }
- } else {
- console.warn("Column Visibility Toggle Error - No matching column found:", field);
- return false;
- }
-};
-
-Tabulator.prototype.addColumn = function (definition, before, field) {
- var _this27 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this27.columnManager.findColumn(field);
-
- _this27.columnManager.addColumn(definition, before, column).then(function (column) {
- resolve(column.getComponent());
- }).catch(function (err) {
- reject(err);
- });
- });
-};
-
-Tabulator.prototype.deleteColumn = function (field) {
- var _this28 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this28.columnManager.findColumn(field);
-
- if (column) {
- column.delete().then(function () {
- resolve();
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Column Delete Error - No matching column found:", field);
- reject();
- }
- });
-};
-
-Tabulator.prototype.updateColumnDefinition = function (field, definition) {
- var _this29 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this29.columnManager.findColumn(field);
-
- if (column) {
- column.updateDefinition(definition).then(function (col) {
- resolve(col);
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Column Update Error - No matching column found:", field);
- reject();
- }
- });
-};
-
-Tabulator.prototype.moveColumn = function (from, to, after) {
- var fromColumn = this.columnManager.findColumn(from);
- var toColumn = this.columnManager.findColumn(to);
-
- if (fromColumn) {
- if (toColumn) {
- this.columnManager.moveColumn(fromColumn, toColumn, after);
- } else {
- console.warn("Move Error - No matching column found:", toColumn);
- }
- } else {
- console.warn("Move Error - No matching column found:", from);
- }
-};
-
-//scroll to column in DOM
-Tabulator.prototype.scrollToColumn = function (field, position, ifVisible) {
- var _this30 = this;
-
- return new Promise(function (resolve, reject) {
- var column = _this30.columnManager.findColumn(field);
-
- if (column) {
- _this30.columnManager.scrollToColumn(column, position, ifVisible).then(function () {
- resolve();
- }).catch(function (err) {
- reject(err);
- });
- } else {
- console.warn("Scroll Error - No matching column found:", field);
- reject("Scroll Error - No matching column found");
- }
- });
-};
-
-//////////// Localization Functions ////////////
-Tabulator.prototype.setLocale = function (locale) {
- this.modules.localize.setLocale(locale);
-};
-
-Tabulator.prototype.getLocale = function () {
- return this.modules.localize.getLocale();
-};
-
-Tabulator.prototype.getLang = function (locale) {
- return this.modules.localize.getLang(locale);
-};
-
-//////////// General Public Functions ////////////
-
-//redraw list without updating data
-Tabulator.prototype.redraw = function (force) {
- this.columnManager.redraw(force);
- this.rowManager.redraw(force);
-};
-
-Tabulator.prototype.setHeight = function (height) {
-
- if (this.rowManager.renderMode !== "classic") {
- this.options.height = isNaN(height) ? height : height + "px";
- this.element.style.height = this.options.height;
- this.rowManager.setRenderMode();
- this.rowManager.redraw();
- } else {
- console.warn("setHeight function is not available in classic render mode");
- }
-};
-
-///////////////////// Sorting ////////////////////
-
-//trigger sort
-Tabulator.prototype.setSort = function (sortList, dir) {
- if (this.modExists("sort", true)) {
- this.modules.sort.setSort(sortList, dir);
- this.rowManager.sorterRefresh();
- }
-};
-
-Tabulator.prototype.getSorters = function () {
- if (this.modExists("sort", true)) {
- return this.modules.sort.getSort();
- }
-};
-
-Tabulator.prototype.clearSort = function () {
- if (this.modExists("sort", true)) {
- this.modules.sort.clear();
- this.rowManager.sorterRefresh();
- }
-};
-
-///////////////////// Filtering ////////////////////
-
-//set standard filters
-Tabulator.prototype.setFilter = function (field, type, value, params) {
- if (this.modExists("filter", true)) {
- this.modules.filter.setFilter(field, type, value, params);
- this.rowManager.filterRefresh();
- }
-};
-
-//add filter to array
-Tabulator.prototype.addFilter = function (field, type, value, params) {
- if (this.modExists("filter", true)) {
- this.modules.filter.addFilter(field, type, value, params);
- this.rowManager.filterRefresh();
- }
-};
-
-//get all filters
-Tabulator.prototype.getFilters = function (all) {
- if (this.modExists("filter", true)) {
- return this.modules.filter.getFilters(all);
- }
-};
-
-Tabulator.prototype.setHeaderFilterFocus = function (field) {
- if (this.modExists("filter", true)) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- this.modules.filter.setHeaderFilterFocus(column);
- } else {
- console.warn("Column Filter Focus Error - No matching column found:", field);
- return false;
- }
- }
-};
-
-Tabulator.prototype.getHeaderFilterValue = function (field) {
- if (this.modExists("filter", true)) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- return this.modules.filter.getHeaderFilterValue(column);
- } else {
- console.warn("Column Filter Error - No matching column found:", field);
- }
- }
-};
-
-Tabulator.prototype.setHeaderFilterValue = function (field, value) {
- if (this.modExists("filter", true)) {
- var column = this.columnManager.findColumn(field);
-
- if (column) {
- this.modules.filter.setHeaderFilterValue(column, value);
- } else {
- console.warn("Column Filter Error - No matching column found:", field);
- return false;
- }
- }
-};
-
-Tabulator.prototype.getHeaderFilters = function () {
- if (this.modExists("filter", true)) {
- return this.modules.filter.getHeaderFilters();
- }
-};
-
-//remove filter from array
-Tabulator.prototype.removeFilter = function (field, type, value) {
- if (this.modExists("filter", true)) {
- this.modules.filter.removeFilter(field, type, value);
- this.rowManager.filterRefresh();
- }
-};
-
-//clear filters
-Tabulator.prototype.clearFilter = function (all) {
- if (this.modExists("filter", true)) {
- this.modules.filter.clearFilter(all);
- this.rowManager.filterRefresh();
- }
-};
-
-//clear header filters
-Tabulator.prototype.clearHeaderFilter = function () {
- if (this.modExists("filter", true)) {
- this.modules.filter.clearHeaderFilter();
- this.rowManager.filterRefresh();
- }
-};
-
-///////////////////// select ////////////////////
-Tabulator.prototype.selectRow = function (rows) {
- if (this.modExists("selectRow", true)) {
- if (rows === true) {
- console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'");
- rows = "active";
- }
- this.modules.selectRow.selectRows(rows);
- }
-};
-
-Tabulator.prototype.deselectRow = function (rows) {
- if (this.modExists("selectRow", true)) {
- this.modules.selectRow.deselectRows(rows);
- }
-};
-
-Tabulator.prototype.toggleSelectRow = function (row) {
- if (this.modExists("selectRow", true)) {
- this.modules.selectRow.toggleRow(row);
- }
-};
-
-Tabulator.prototype.getSelectedRows = function () {
- if (this.modExists("selectRow", true)) {
- return this.modules.selectRow.getSelectedRows();
- }
-};
-
-Tabulator.prototype.getSelectedData = function () {
- if (this.modExists("selectRow", true)) {
- return this.modules.selectRow.getSelectedData();
- }
-};
-
-///////////////////// validation ////////////////////
-Tabulator.prototype.getInvalidCells = function () {
- if (this.modExists("validate", true)) {
- return this.modules.validate.getInvalidCells();
- }
-};
-
-Tabulator.prototype.clearCellValidation = function (cells) {
- var _this31 = this;
-
- if (this.modExists("validate", true)) {
-
- if (!cells) {
- cells = this.modules.validate.getInvalidCells();
- }
-
- if (!Array.isArray(cells)) {
- cells = [cells];
- }
-
- cells.forEach(function (cell) {
- _this31.modules.validate.clearValidation(cell._getSelf());
- });
- }
-};
-
-Tabulator.prototype.validate = function (cells) {
- var output = [];
-
- //clear row data
- this.rowManager.rows.forEach(function (row) {
- var valid = row.validate();
-
- if (valid !== true) {
- output = output.concat(valid);
- }
- });
-
- return output.length ? output : true;
-};
-
-//////////// Pagination Functions ////////////
-
-Tabulator.prototype.setMaxPage = function (max) {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.setMaxPage(max);
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.setPage = function (page) {
- if (this.options.pagination && this.modExists("page")) {
- return this.modules.page.setPage(page);
- } else {
- return new Promise(function (resolve, reject) {
- reject();
- });
- }
-};
-
-Tabulator.prototype.setPageToRow = function (row) {
- var _this32 = this;
-
- return new Promise(function (resolve, reject) {
- if (_this32.options.pagination && _this32.modExists("page")) {
- row = _this32.rowManager.findRow(row);
-
- if (row) {
- _this32.modules.page.setPageToRow(row).then(function () {
- resolve();
- }).catch(function () {
- reject();
- });
- } else {
- reject();
- }
- } else {
- reject();
- }
- });
-};
-
-Tabulator.prototype.setPageSize = function (size) {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.setPageSize(size);
- this.modules.page.setPage(1).then(function () {}).catch(function () {});
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getPageSize = function () {
- if (this.options.pagination && this.modExists("page", true)) {
- return this.modules.page.getPageSize();
- }
-};
-
-Tabulator.prototype.previousPage = function () {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.previousPage();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.nextPage = function () {
- if (this.options.pagination && this.modExists("page")) {
- this.modules.page.nextPage();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getPage = function () {
- if (this.options.pagination && this.modExists("page")) {
- return this.modules.page.getPage();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getPageMax = function () {
- if (this.options.pagination && this.modExists("page")) {
- return this.modules.page.getPageMax();
- } else {
- return false;
- }
-};
-
-///////////////// Grouping Functions ///////////////
-
-Tabulator.prototype.setGroupBy = function (groups) {
- if (this.modExists("groupRows", true)) {
- this.options.groupBy = groups;
- this.modules.groupRows.initialize();
- this.rowManager.refreshActiveData("display");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
- this.modules.persistence.save("group");
- }
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.setGroupStartOpen = function (values) {
- if (this.modExists("groupRows", true)) {
- this.options.groupStartOpen = values;
- this.modules.groupRows.initialize();
- if (this.options.groupBy) {
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
- this.modules.persistence.save("group");
- }
- } else {
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.setGroupHeader = function (values) {
- if (this.modExists("groupRows", true)) {
- this.options.groupHeader = values;
- this.modules.groupRows.initialize();
- if (this.options.groupBy) {
- this.rowManager.refreshActiveData("group");
-
- if (this.options.persistence && this.modExists("persistence", true) && this.modules.persistence.config.group) {
- this.modules.persistence.save("group");
- }
- } else {
- console.warn("Grouping Update - cant refresh view, no groups have been set");
- }
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getGroups = function (values) {
- if (this.modExists("groupRows", true)) {
- return this.modules.groupRows.getGroups(true);
- } else {
- return false;
- }
-};
-
-// get grouped table data in the same format as getData()
-Tabulator.prototype.getGroupedData = function () {
- if (this.modExists("groupRows", true)) {
- return this.options.groupBy ? this.modules.groupRows.getGroupedData() : this.getData();
- }
-};
-
-Tabulator.prototype.getEditedCells = function () {
- if (this.modExists("edit", true)) {
- return this.modules.edit.getEditedCells();
- }
-};
-
-Tabulator.prototype.clearCellEdited = function (cells) {
- var _this33 = this;
-
- if (this.modExists("edit", true)) {
-
- if (!cells) {
- cells = this.modules.edit.getEditedCells();
- }
-
- if (!Array.isArray(cells)) {
- cells = [cells];
- }
-
- cells.forEach(function (cell) {
- _this33.modules.edit.clearEdited(cell._getSelf());
- });
- }
-};
-
-///////////////// Column Calculation Functions ///////////////
-Tabulator.prototype.getCalcResults = function () {
- if (this.modExists("columnCalcs", true)) {
- return this.modules.columnCalcs.getResults();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.recalc = function () {
- if (this.modExists("columnCalcs", true)) {
- this.modules.columnCalcs.recalcAll(this.rowManager.activeRows);
- }
-};
-
-/////////////// Navigation Management //////////////
-
-Tabulator.prototype.navigatePrev = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- return cell.nav().prev();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateNext = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- return cell.nav().next();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateLeft = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().left();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateRight = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().right();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateUp = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().up();
- }
- }
-
- return false;
-};
-
-Tabulator.prototype.navigateDown = function () {
- var cell = false;
-
- if (this.modExists("edit", true)) {
- cell = this.modules.edit.currentCell;
-
- if (cell) {
- e.preventDefault();
- return cell.nav().down();
- }
- }
-
- return false;
-};
-
-/////////////// History Management //////////////
-Tabulator.prototype.undo = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.undo();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.redo = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.redo();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getHistoryUndoSize = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.getHistoryUndoSize();
- } else {
- return false;
- }
-};
-
-Tabulator.prototype.getHistoryRedoSize = function () {
- if (this.options.history && this.modExists("history", true)) {
- return this.modules.history.getHistoryRedoSize();
- } else {
- return false;
- }
-};
-
-/////////////// Download Management //////////////
-
-Tabulator.prototype.download = function (type, filename, options, active) {
- if (this.modExists("download", true)) {
- this.modules.download.download(type, filename, options, active);
- }
-};
-
-Tabulator.prototype.downloadToTab = function (type, filename, options, active) {
- if (this.modExists("download", true)) {
- this.modules.download.download(type, filename, options, active, true);
- }
-};
-
-/////////// Inter Table Communications ///////////
-
-Tabulator.prototype.tableComms = function (table, module, action, data) {
- this.modules.comms.receive(table, module, action, data);
-};
-
-////////////// Extension Management //////////////
-
-//object to hold module
-Tabulator.prototype.moduleBindings = {};
-
-//extend module
-Tabulator.prototype.extendModule = function (name, property, values) {
-
- if (Tabulator.prototype.moduleBindings[name]) {
- var source = Tabulator.prototype.moduleBindings[name].prototype[property];
-
- if (source) {
- if ((typeof values === 'undefined' ? 'undefined' : _typeof(values)) == "object") {
- for (var key in values) {
- source[key] = values[key];
- }
- } else {
- console.warn("Module Error - Invalid value type, it must be an object");
- }
- } else {
- console.warn("Module Error - property does not exist:", property);
- }
- } else {
- console.warn("Module Error - module does not exist:", name);
- }
-};
-
-//add module to tabulator
-Tabulator.prototype.registerModule = function (name, module) {
- var self = this;
- Tabulator.prototype.moduleBindings[name] = module;
-};
-
-//ensure that module are bound to instantiated function
-Tabulator.prototype.bindModules = function () {
- this.modules = {};
-
- for (var name in Tabulator.prototype.moduleBindings) {
- this.modules[name] = new Tabulator.prototype.moduleBindings[name](this);
- }
-};
-
-//Check for module
-Tabulator.prototype.modExists = function (plugin, required) {
- if (this.modules[plugin]) {
- return true;
- } else {
- if (required) {
- console.error("Tabulator Module Not Installed: " + plugin);
- }
- return false;
- }
-};
-
-Tabulator.prototype.helpers = {
-
- elVisible: function elVisible(el) {
- return !(el.offsetWidth <= 0 && el.offsetHeight <= 0);
- },
-
- elOffset: function elOffset(el) {
- var box = el.getBoundingClientRect();
-
- return {
- top: box.top + window.pageYOffset - document.documentElement.clientTop,
- left: box.left + window.pageXOffset - document.documentElement.clientLeft
- };
- },
-
- deepClone: function deepClone(obj) {
- var clone = Array.isArray(obj) ? [] : {};
-
- for (var i in obj) {
- if (obj[i] != null && _typeof(obj[i]) === "object") {
- if (obj[i] instanceof Date) {
- clone[i] = new Date(obj[i]);
- } else {
- clone[i] = this.deepClone(obj[i]);
- }
- } else {
- clone[i] = obj[i];
- }
- }
- return clone;
- }
-};
-
-Tabulator.prototype.comms = {
- tables: [],
- register: function register(table) {
- Tabulator.prototype.comms.tables.push(table);
- },
- deregister: function deregister(table) {
- var index = Tabulator.prototype.comms.tables.indexOf(table);
-
- if (index > -1) {
- Tabulator.prototype.comms.tables.splice(index, 1);
- }
- },
- lookupTable: function lookupTable(query, silent) {
- var results = [],
- matches,
- match;
-
- if (typeof query === "string") {
- matches = document.querySelectorAll(query);
-
- if (matches.length) {
- for (var i = 0; i < matches.length; i++) {
- match = Tabulator.prototype.comms.matchElement(matches[i]);
-
- if (match) {
- results.push(match);
- }
- }
- }
- } else if (typeof HTMLElement !== "undefined" && query instanceof HTMLElement || query instanceof Tabulator) {
- match = Tabulator.prototype.comms.matchElement(query);
-
- if (match) {
- results.push(match);
- }
- } else if (Array.isArray(query)) {
- query.forEach(function (item) {
- results = results.concat(Tabulator.prototype.comms.lookupTable(item));
- });
- } else {
- if (!silent) {
- console.warn("Table Connection Error - Invalid Selector", query);
- }
- }
-
- return results;
- },
- matchElement: function matchElement(element) {
- return Tabulator.prototype.comms.tables.find(function (table) {
- return element instanceof Tabulator ? table === element : table.element === element;
- });
- }
-};
-
-Tabulator.prototype.findTable = function (query) {
- var results = Tabulator.prototype.comms.lookupTable(query, true);
- return Array.isArray(results) && !results.length ? false : results;
-};
-
-var Layout = function Layout(table) {
-
- this.table = table;
-
- this.mode = null;
-};
-
-//initialize layout system
-
-Layout.prototype.initialize = function (layout) {
-
- if (this.modes[layout]) {
-
- this.mode = layout;
- } else {
-
- console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : " + layout);
-
- this.mode = 'fitData';
- }
-
- this.table.element.setAttribute("tabulator-layout", this.mode);
-};
-
-Layout.prototype.getMode = function () {
-
- return this.mode;
-};
-
-//trigger table layout
-
-Layout.prototype.layout = function () {
-
- this.modes[this.mode].call(this, this.table.columnManager.columnsByIndex);
-};
-
-//layout render functions
-
-Layout.prototype.modes = {
-
- //resize columns to fit data they contain
-
- "fitData": function fitData(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data they contain and stretch row to fill table
-
- "fitDataFill": function fitDataFill(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data they contain
-
- "fitDataTable": function fitDataTable(columns) {
-
- columns.forEach(function (column) {
-
- column.reinitializeWidth();
- });
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- },
-
- //resize columns to fit data the contain and stretch last column to fill table
-
- "fitDataStretch": function fitDataStretch(columns) {
- var _this34 = this;
-
- var colsWidth = 0,
- tableWidth = this.table.rowManager.element.clientWidth,
- gap = 0,
- lastCol = false;
-
- columns.forEach(function (column, i) {
-
- if (!column.widthFixed) {
-
- column.reinitializeWidth();
- }
-
- if (_this34.table.options.responsiveLayout ? column.modules.responsive.visible : column.visible) {
-
- lastCol = column;
- }
-
- if (column.visible) {
-
- colsWidth += column.getWidth();
- }
- });
-
- if (lastCol) {
-
- gap = tableWidth - colsWidth + lastCol.getWidth();
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- lastCol.setWidth(0);
-
- this.table.modules.responsiveLayout.update();
- }
-
- if (gap > 0) {
-
- lastCol.setWidth(gap);
- } else {
-
- lastCol.reinitializeWidth();
- }
- } else {
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
- }
- },
-
- //resize columns to fit
-
- "fitColumns": function fitColumns(columns) {
-
- var self = this;
-
- var totalWidth = self.table.element.clientWidth; //table element width
-
- var fixedWidth = 0; //total width of columns with a defined width
-
- var flexWidth = 0; //total width available to flexible columns
-
- var flexGrowUnits = 0; //total number of widthGrow blocks accross all columns
-
- var flexColWidth = 0; //desired width of flexible columns
-
- var flexColumns = []; //array of flexible width columns
-
- var fixedShrinkColumns = []; //array of fixed width columns that can shrink
-
- var flexShrinkUnits = 0; //total number of widthShrink blocks accross all columns
-
- var overflowWidth = 0; //horizontal overflow width
-
- var gapFill = 0; //number of pixels to be added to final column to close and half pixel gaps
-
-
- function calcWidth(width) {
-
- var colWidth;
-
- if (typeof width == "string") {
-
- if (width.indexOf("%") > -1) {
-
- colWidth = totalWidth / 100 * parseInt(width);
- } else {
-
- colWidth = parseInt(width);
- }
- } else {
-
- colWidth = width;
- }
-
- return colWidth;
- }
-
- //ensure columns resize to take up the correct amount of space
-
- function scaleColumns(columns, freeSpace, colWidth, shrinkCols) {
-
- var oversizeCols = [],
- oversizeSpace = 0,
- remainingSpace = 0,
- nextColWidth = 0,
- gap = 0,
- changeUnits = 0,
- undersizeCols = [];
-
- function calcGrow(col) {
-
- return colWidth * (col.column.definition.widthGrow || 1);
- }
-
- function calcShrink(col) {
-
- return calcWidth(col.width) - colWidth * (col.column.definition.widthShrink || 0);
- }
-
- columns.forEach(function (col, i) {
-
- var width = shrinkCols ? calcShrink(col) : calcGrow(col);
-
- if (col.column.minWidth >= width) {
-
- oversizeCols.push(col);
- } else {
-
- undersizeCols.push(col);
-
- changeUnits += shrinkCols ? col.column.definition.widthShrink || 1 : col.column.definition.widthGrow || 1;
- }
- });
-
- if (oversizeCols.length) {
-
- oversizeCols.forEach(function (col) {
-
- oversizeSpace += shrinkCols ? col.width - col.column.minWidth : col.column.minWidth;
-
- col.width = col.column.minWidth;
- });
-
- remainingSpace = freeSpace - oversizeSpace;
-
- nextColWidth = changeUnits ? Math.floor(remainingSpace / changeUnits) : remainingSpace;
-
- gap = remainingSpace - nextColWidth * changeUnits;
-
- gap += scaleColumns(undersizeCols, remainingSpace, nextColWidth, shrinkCols);
- } else {
-
- gap = changeUnits ? freeSpace - Math.floor(freeSpace / changeUnits) * changeUnits : freeSpace;
-
- undersizeCols.forEach(function (column) {
-
- column.width = shrinkCols ? calcShrink(column) : calcGrow(column);
- });
- }
-
- return gap;
- }
-
- if (this.table.options.responsiveLayout && this.table.modExists("responsiveLayout", true)) {
-
- this.table.modules.responsiveLayout.update();
- }
-
- //adjust for vertical scrollbar if present
-
- if (this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight) {
-
- totalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth;
- }
-
- columns.forEach(function (column) {
-
- var width, minWidth, colWidth;
-
- if (column.visible) {
-
- width = column.definition.width;
-
- minWidth = parseInt(column.minWidth);
-
- if (width) {
-
- colWidth = calcWidth(width);
-
- fixedWidth += colWidth > minWidth ? colWidth : minWidth;
-
- if (column.definition.widthShrink) {
-
- fixedShrinkColumns.push({
-
- column: column,
-
- width: colWidth > minWidth ? colWidth : minWidth
-
- });
-
- flexShrinkUnits += column.definition.widthShrink;
- }
- } else {
-
- flexColumns.push({
-
- column: column,
-
- width: 0
-
- });
-
- flexGrowUnits += column.definition.widthGrow || 1;
- }
- }
- });
-
- //calculate available space
-
- flexWidth = totalWidth - fixedWidth;
-
- //calculate correct column size
-
- flexColWidth = Math.floor(flexWidth / flexGrowUnits);
-
- //generate column widths
-
- var gapFill = scaleColumns(flexColumns, flexWidth, flexColWidth, false);
-
- //increase width of last column to account for rounding errors
-
- if (flexColumns.length && gapFill > 0) {
-
- flexColumns[flexColumns.length - 1].width += +gapFill;
- }
-
- //caculate space for columns to be shrunk into
-
- flexColumns.forEach(function (col) {
-
- flexWidth -= col.width;
- });
-
- overflowWidth = Math.abs(gapFill) + flexWidth;
-
- //shrink oversize columns if there is no available space
-
- if (overflowWidth > 0 && flexShrinkUnits) {
-
- gapFill = scaleColumns(fixedShrinkColumns, overflowWidth, Math.floor(overflowWidth / flexShrinkUnits), true);
- }
-
- //decrease width of last column to account for rounding errors
-
- if (fixedShrinkColumns.length) {
-
- fixedShrinkColumns[fixedShrinkColumns.length - 1].width -= gapFill;
- }
-
- flexColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
-
- fixedShrinkColumns.forEach(function (col) {
-
- col.column.setWidth(col.width);
- });
- }
-
-};
-
-Tabulator.prototype.registerModule("layout", Layout);
-var Localize = function Localize(table) {
- this.table = table; //hold Tabulator object
- this.locale = "default"; //current locale
- this.lang = false; //current language
- this.bindings = {}; //update events to call when locale is changed
-};
-
-//set header placehoder
-Localize.prototype.setHeaderFilterPlaceholder = function (placeholder) {
- this.langs.default.headerFilters.default = placeholder;
-};
-
-//set header filter placeholder by column
-Localize.prototype.setHeaderFilterColumnPlaceholder = function (column, placeholder) {
- this.langs.default.headerFilters.columns[column] = placeholder;
-
- if (this.lang && !this.lang.headerFilters.columns[column]) {
- this.lang.headerFilters.columns[column] = placeholder;
- }
-};
-
-//setup a lang description object
-Localize.prototype.installLang = function (locale, lang) {
- if (this.langs[locale]) {
- this._setLangProp(this.langs[locale], lang);
- } else {
- this.langs[locale] = lang;
- }
-};
-
-Localize.prototype._setLangProp = function (lang, values) {
- for (var key in values) {
- if (lang[key] && _typeof(lang[key]) == "object") {
- this._setLangProp(lang[key], values[key]);
- } else {
- lang[key] = values[key];
- }
- }
-};
-
-//set current locale
-Localize.prototype.setLocale = function (desiredLocale) {
- var self = this;
-
- desiredLocale = desiredLocale || "default";
-
- //fill in any matching languge values
- function traverseLang(trans, path) {
- for (var prop in trans) {
-
- if (_typeof(trans[prop]) == "object") {
- if (!path[prop]) {
- path[prop] = {};
- }
- traverseLang(trans[prop], path[prop]);
- } else {
- path[prop] = trans[prop];
- }
- }
- }
-
- //determing correct locale to load
- if (desiredLocale === true && navigator.language) {
- //get local from system
- desiredLocale = navigator.language.toLowerCase();
- }
-
- if (desiredLocale) {
-
- //if locale is not set, check for matching top level locale else use default
- if (!self.langs[desiredLocale]) {
- var prefix = desiredLocale.split("-")[0];
-
- if (self.langs[prefix]) {
- console.warn("Localization Error - Exact matching locale not found, using closest match: ", desiredLocale, prefix);
- desiredLocale = prefix;
- } else {
- console.warn("Localization Error - Matching locale not found, using default: ", desiredLocale);
- desiredLocale = "default";
- }
- }
- }
-
- self.locale = desiredLocale;
-
- //load default lang template
- self.lang = Tabulator.prototype.helpers.deepClone(self.langs.default || {});
-
- if (desiredLocale != "default") {
- traverseLang(self.langs[desiredLocale], self.lang);
- }
-
- self.table.options.localized.call(self.table, self.locale, self.lang);
-
- self._executeBindings();
-};
-
-//get current locale
-Localize.prototype.getLocale = function (locale) {
- return self.locale;
-};
-
-//get lang object for given local or current if none provided
-Localize.prototype.getLang = function (locale) {
- return locale ? this.langs[locale] : this.lang;
-};
-
-//get text for current locale
-Localize.prototype.getText = function (path, value) {
- var path = value ? path + "|" + value : path,
- pathArray = path.split("|"),
- text = this._getLangElement(pathArray, this.locale);
-
- // if(text === false){
- // console.warn("Localization Error - Matching localized text not found for given path: ", path);
- // }
-
- return text || "";
-};
-
-//traverse langs object and find localized copy
-Localize.prototype._getLangElement = function (path, locale) {
- var self = this;
- var root = self.lang;
-
- path.forEach(function (level) {
- var rootPath;
-
- if (root) {
- rootPath = root[level];
-
- if (typeof rootPath != "undefined") {
- root = rootPath;
- } else {
- root = false;
- }
- }
- });
-
- return root;
-};
-
-//set update binding
-Localize.prototype.bind = function (path, callback) {
- if (!this.bindings[path]) {
- this.bindings[path] = [];
- }
-
- this.bindings[path].push(callback);
-
- callback(this.getText(path), this.lang);
-};
-
-//itterate through bindings and trigger updates
-Localize.prototype._executeBindings = function () {
- var self = this;
-
- var _loop = function _loop(path) {
- self.bindings[path].forEach(function (binding) {
- binding(self.getText(path), self.lang);
- });
- };
-
- for (var path in self.bindings) {
- _loop(path);
- }
-};
-
-//Localized text listings
-Localize.prototype.langs = {
- "default": { //hold default locale text
- "groups": {
- "item": "item",
- "items": "items"
- },
- "columns": {},
- "ajax": {
- "loading": "Loading",
- "error": "Error"
- },
- "pagination": {
- "page_size": "Page Size",
- "page_title": "Show Page",
- "first": "First",
- "first_title": "First Page",
- "last": "Last",
- "last_title": "Last Page",
- "prev": "Prev",
- "prev_title": "Prev Page",
- "next": "Next",
- "next_title": "Next Page",
- "all": "All"
- },
- "headerFilters": {
- "default": "filter column...",
- "columns": {}
- }
- }
-};
-
-Tabulator.prototype.registerModule("localize", Localize);
-var Comms = function Comms(table) {
- this.table = table;
-};
-
-Comms.prototype.getConnections = function (selectors) {
- var self = this,
- connections = [],
- connection;
-
- connection = Tabulator.prototype.comms.lookupTable(selectors);
-
- connection.forEach(function (con) {
- if (self.table !== con) {
- connections.push(con);
- }
- });
-
- return connections;
-};
-
-Comms.prototype.send = function (selectors, module, action, data) {
- var self = this,
- connections = this.getConnections(selectors);
-
- connections.forEach(function (connection) {
- connection.tableComms(self.table.element, module, action, data);
- });
-
- if (!connections.length && selectors) {
- console.warn("Table Connection Error - No tables matching selector found", selectors);
- }
-};
-
-Comms.prototype.receive = function (table, module, action, data) {
- if (this.table.modExists(module)) {
- return this.table.modules[module].commsReceived(table, action, data);
- } else {
- console.warn("Inter-table Comms Error - no such module:", module);
- }
-};
-
-Tabulator.prototype.registerModule("comms", Comms);
\ No newline at end of file
+++ /dev/null
-/* Tabulator v4.7.0 (c) Oliver Folkerd */
-"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),o=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var l=e[n];if(t.call(i,l,n,e))return n;n++}return-1}}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),o=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var i=arguments[1],n=0;n<o;){var l=e[n];if(t.call(i,l,n,e))return l;n++}}}),String.prototype.includes||(String.prototype.includes=function(t,e){if(t instanceof RegExp)throw TypeError("first argument must not be a RegExp");return void 0===e&&(e=0),-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),i=o.length>>>0;if(0===i)return!1;for(var n=0|e,l=Math.max(n>=0?n:i-Math.abs(n),0);l<i;){if(function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(o[l],t))return!0;l++}return!1}}),"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(t,e){if(null===t||void 0===t)throw new TypeError("Cannot convert undefined or null to object");for(var o=Object(t),i=1;i<arguments.length;i++){var n=arguments[i];if(null!==n&&void 0!==n)for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(o[l]=n[l])}return o},writable:!0,configurable:!0});var ColumnManager=function(t){this.table=t,this.blockHozScrollEvent=!1,this.headersElement=this.createHeadersElement(),this.element=this.createHeaderElement(),this.rowManager=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.element.insertBefore(this.headersElement,this.element.firstChild)};ColumnManager.prototype.createHeadersElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-headers"),t},ColumnManager.prototype.createHeaderElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-header"),this.table.options.headerVisible||t.classList.add("tabulator-header-hidden"),t},ColumnManager.prototype.initialize=function(){},ColumnManager.prototype.setRowManager=function(t){this.rowManager=t},ColumnManager.prototype.getElement=function(){return this.element},ColumnManager.prototype.getHeadersElement=function(){return this.headersElement},ColumnManager.prototype.scrollHorizontal=function(t){var e=0,o=this.element.scrollWidth-this.table.element.clientWidth;this.element.scrollLeft=t,t>o?(e=t-o,this.element.style.marginLeft=-e+"px"):this.element.style.marginLeft=0,this.scrollLeft=t,this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.scrollHorizontal()},ColumnManager.prototype.generateColumnsFromRowData=function(t){var e,o,i=[];if(t&&t.length){e=t[0];for(var n in e){var l={field:n,title:n},s=e[n];switch(void 0===s?"undefined":_typeof(s)){case"undefined":o="string";break;case"boolean":o="boolean";break;case"object":o=Array.isArray(s)?"array":"string";break;default:o=isNaN(s)||""===s?s.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)?"alphanum":"string":"number"}l.sorter=o,i.push(l)}this.table.options.columns=i,this.setColumns(this.table.options.columns)}},ColumnManager.prototype.setColumns=function(t,e){for(var o=this;o.headersElement.firstChild;)o.headersElement.removeChild(o.headersElement.firstChild);o.columns=[],o.columnsByIndex=[],o.columnsByField={},o.table.modExists("frozenColumns")&&o.table.modules.frozenColumns.reset(),t.forEach(function(t,e){o._addColumn(t)}),o._reIndexColumns(),o.table.options.responsiveLayout&&o.table.modExists("responsiveLayout",!0)&&o.table.modules.responsiveLayout.initialize(),o.redraw(!0)},ColumnManager.prototype._addColumn=function(t,e,o){var i=new Column(t,this),n=i.getElement(),l=o?this.findColumnIndex(o):o;if(o&&l>-1){var s=this.columns.indexOf(o.getTopColumn()),a=o.getElement();e?(this.columns.splice(s,0,i),a.parentNode.insertBefore(n,a)):(this.columns.splice(s+1,0,i),a.parentNode.insertBefore(n,a.nextSibling))}else e?(this.columns.unshift(i),this.headersElement.insertBefore(i.getElement(),this.headersElement.firstChild)):(this.columns.push(i),this.headersElement.appendChild(i.getElement())),i.columnRendered();return i},ColumnManager.prototype.registerColumnField=function(t){t.definition.field&&(this.columnsByField[t.definition.field]=t)},ColumnManager.prototype.registerColumnPosition=function(t){this.columnsByIndex.push(t)},ColumnManager.prototype._reIndexColumns=function(){this.columnsByIndex=[],this.columns.forEach(function(t){t.reRegisterPosition()})},ColumnManager.prototype._verticalAlignHeaders=function(){var t=this,e=0;t.columns.forEach(function(t){var o;t.clearVerticalAlign(),(o=t.getHeight())>e&&(e=o)}),t.columns.forEach(function(o){o.verticalAlign(t.table.options.columnHeaderVertAlign,e)}),t.rowManager.adjustTableSize()},ColumnManager.prototype.findColumn=function(t){var e=this;if("object"!=(void 0===t?"undefined":_typeof(t)))return this.columnsByField[t]||!1;if(t instanceof Column)return t;if(t instanceof ColumnComponent)return t._getSelf()||!1;if("undefined"!=typeof HTMLElement&&t instanceof HTMLElement){return e.columns.find(function(e){return e.element===t})||!1}return!1},ColumnManager.prototype.getColumnByField=function(t){return this.columnsByField[t]},ColumnManager.prototype.getColumnsByFieldRoot=function(t){var e=this,o=[];return Object.keys(this.columnsByField).forEach(function(i){i.split(".")[0]===t&&o.push(e.columnsByField[i])}),o},ColumnManager.prototype.getColumnByIndex=function(t){return this.columnsByIndex[t]},ColumnManager.prototype.getFirstVisibileColumn=function(t){var t=this.columnsByIndex.findIndex(function(t){return t.visible});return t>-1&&this.columnsByIndex[t]},ColumnManager.prototype.getColumns=function(){return this.columns},ColumnManager.prototype.findColumnIndex=function(t){return this.columnsByIndex.findIndex(function(e){return t===e})},ColumnManager.prototype.getRealColumns=function(){return this.columnsByIndex},ColumnManager.prototype.traverse=function(t){this.columnsByIndex.forEach(function(e,o){t(e,o)})},ColumnManager.prototype.getDefinitions=function(t){var e=this,o=[];return e.columnsByIndex.forEach(function(e){(!t||t&&e.visible)&&o.push(e.getDefinition())}),o},ColumnManager.prototype.getDefinitionTree=function(){var t=this,e=[];return t.columns.forEach(function(t){e.push(t.getDefinition(!0))}),e},ColumnManager.prototype.getComponents=function(t){var e=this,o=[];return(t?e.columns:e.columnsByIndex).forEach(function(t){o.push(t.getComponent())}),o},ColumnManager.prototype.getWidth=function(){var t=0;return this.columnsByIndex.forEach(function(e){e.visible&&(t+=e.getWidth())}),t},ColumnManager.prototype.moveColumn=function(t,e,o){this.moveColumnActual(t,e,o),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),e.element.parentNode.insertBefore(t.element,e.element),o&&e.element.parentNode.insertBefore(e.element,t.element),this._verticalAlignHeaders(),this.table.rowManager.reinitialize()},ColumnManager.prototype.moveColumnActual=function(t,e,o){t.parent.isGroup?this._moveColumnInArray(t.parent.columns,t,e,o):this._moveColumnInArray(this.columns,t,e,o),this._moveColumnInArray(this.columnsByIndex,t,e,o,!0),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.table.options.columnMoved&&this.table.options.columnMoved.call(this.table,t.getComponent(),this.table.columnManager.getComponents()),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns")},ColumnManager.prototype._moveColumnInArray=function(t,e,o,i,n){var l,s=t.indexOf(e);s>-1&&(t.splice(s,1),l=t.indexOf(o),l>-1?i&&(l+=1):l=s,t.splice(l,0,e),n&&this.table.rowManager.rows.forEach(function(t){if(t.cells.length){var e=t.cells.splice(s,1)[0];t.cells.splice(l,0,e)}}))},ColumnManager.prototype.scrollToColumn=function(t,e,o){var i=this,n=0,l=0,s=0,a=t.getElement();return new Promise(function(r,u){if(void 0===e&&(e=i.table.options.scrollToColumnPosition),void 0===o&&(o=i.table.options.scrollToColumnIfVisible),t.visible){switch(e){case"middle":case"center":s=-i.element.clientWidth/2;break;case"right":s=a.clientWidth-i.headersElement.clientWidth}if(!o&&(l=a.offsetLeft)>0&&l+a.offsetWidth<i.element.clientWidth)return!1;n=a.offsetLeft+i.element.scrollLeft+s,n=Math.max(Math.min(n,i.table.rowManager.element.scrollWidth-i.table.rowManager.element.clientWidth),0),i.table.rowManager.scrollHorizontal(n),i.scrollHorizontal(n),r()}else console.warn("Scroll Error - Column not visible"),u("Scroll Error - Column not visible")})},ColumnManager.prototype.generateCells=function(t){var e=this,o=[];return e.columnsByIndex.forEach(function(e){o.push(e.generateCell(t))}),o},ColumnManager.prototype.getFlexBaseWidth=function(){var t=this,e=t.table.element.clientWidth,o=0;return t.rowManager.element.scrollHeight>t.rowManager.element.clientHeight&&(e-=t.rowManager.element.offsetWidth-t.rowManager.element.clientWidth),this.columnsByIndex.forEach(function(i){var n,l,s;i.visible&&(n=i.definition.width||0,l=void 0===i.minWidth?t.table.options.columnMinWidth:parseInt(i.minWidth),s="string"==typeof n?n.indexOf("%")>-1?e/100*parseInt(n):parseInt(n):n,o+=s>l?s:l)}),o},ColumnManager.prototype.addColumn=function(t,e,o){var i=this;return new Promise(function(n,l){var s=i._addColumn(t,e,o);i._reIndexColumns(),i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout",!0)&&i.table.modules.responsiveLayout.initialize(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.redraw(),"fitColumns"!=i.table.modules.layout.getMode()&&s.reinitializeWidth(),i._verticalAlignHeaders(),i.table.rowManager.reinitialize(),n(s)})},ColumnManager.prototype.deregisterColumn=function(t){var e,o=t.getField();o&&delete this.columnsByField[o],e=this.columnsByIndex.indexOf(t),e>-1&&this.columnsByIndex.splice(e,1),e=this.columns.indexOf(t),e>-1&&this.columns.splice(e,1),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.initialize(),this.redraw()},ColumnManager.prototype.redraw=function(t){t&&(Tabulator.prototype.helpers.elVisible(this.element)&&this._verticalAlignHeaders(),this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize()),["fitColumns","fitDataStretch"].indexOf(this.table.modules.layout.getMode())>-1?this.table.modules.layout.layout():t?this.table.modules.layout.layout():this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),t&&(this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.redraw()),this.table.footerManager.redraw()};var ColumnComponent=function(t){this._column=t,this.type="ColumnComponent"};ColumnComponent.prototype.getElement=function(){return this._column.getElement()},ColumnComponent.prototype.getDefinition=function(){return this._column.getDefinition()},ColumnComponent.prototype.getField=function(){return this._column.getField()},ColumnComponent.prototype.getCells=function(){var t=[];return this._column.cells.forEach(function(e){t.push(e.getComponent())}),t},ColumnComponent.prototype.getVisibility=function(){return console.warn("getVisibility function is deprecated, you should now use the isVisible function"),this._column.visible},ColumnComponent.prototype.isVisible=function(){return this._column.visible},ColumnComponent.prototype.show=function(){this._column.isGroup?this._column.columns.forEach(function(t){t.show()}):this._column.show()},ColumnComponent.prototype.hide=function(){this._column.isGroup?this._column.columns.forEach(function(t){t.hide()}):this._column.hide()},ColumnComponent.prototype.toggle=function(){this._column.visible?this.hide():this.show()},ColumnComponent.prototype.delete=function(){return this._column.delete()},ColumnComponent.prototype.getSubColumns=function(){var t=[];return this._column.columns.length&&this._column.columns.forEach(function(e){t.push(e.getComponent())}),t},ColumnComponent.prototype.getParentColumn=function(){return this._column.parent instanceof Column&&this._column.parent.getComponent()},ColumnComponent.prototype._getSelf=function(){return this._column},ColumnComponent.prototype.scrollTo=function(){return this._column.table.columnManager.scrollToColumn(this._column)},ColumnComponent.prototype.getTable=function(){return this._column.table},ColumnComponent.prototype.headerFilterFocus=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterFocus(this._column)},ColumnComponent.prototype.reloadHeaderFilter=function(){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.reloadHeaderFilter(this._column)},ColumnComponent.prototype.getHeaderFilterValue=function(){if(this._column.table.modExists("filter",!0))return this._column.table.modules.filter.getHeaderFilterValue(this._column)},ColumnComponent.prototype.setHeaderFilterValue=function(t){this._column.table.modExists("filter",!0)&&this._column.table.modules.filter.setHeaderFilterValue(this._column,t)},ColumnComponent.prototype.move=function(t,e){var o=this._column.table.columnManager.findColumn(t);o?this._column.table.columnManager.moveColumn(this._column,o,e):console.warn("Move Error - No matching column found:",o)},ColumnComponent.prototype.getNextColumn=function(){var t=this._column.nextColumn();return!!t&&t.getComponent()},ColumnComponent.prototype.getPrevColumn=function(){var t=this._column.prevColumn();return!!t&&t.getComponent()},ColumnComponent.prototype.updateDefinition=function(t){return this._column.updateDefinition(t)},ColumnComponent.prototype.getWidth=function(){return this._column.getWidth()},ColumnComponent.prototype.setWidth=function(t){return!0===t?this._column.reinitializeWidth(!0):this._column.setWidth(t)},ColumnComponent.prototype.validate=function(){return this._column.validate()};var Column=function t(e,o){var i=this;this.table=o.table,this.definition=e,this.parent=o,this.type="column",this.columns=[],this.cells=[],this.element=this.createElement(),this.contentElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.isGroup=!1,this.tooltip=!1,this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleFormatterRendered=!1,this.setField(this.definition.field),this.table.options.invalidOptionWarnings&&this.checkDefinition(),this.modules={},this.cellEvents={cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1},this.width=null,this.widthStyled="",this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this.component=null,this._mapDepricatedFunctionality(),e.columns?(this.isGroup=!0,e.columns.forEach(function(e,o){var n=new t(e,i);i.attachColumn(n)}),i.checkColumnVisibility()):o.registerColumnField(this),e.rowHandle&&!1!==this.table.options.movableRows&&this.table.modExists("moveRow")&&this.table.modules.moveRow.setHandle(!0),this._buildHeader(),this.bindModuleColumns()};Column.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-col"),t.setAttribute("role","columnheader"),t.setAttribute("aria-sort","none"),t},Column.prototype.createGroupElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-col-group-cols"),t},Column.prototype.checkDefinition=function(){var t=this;Object.keys(this.definition).forEach(function(e){-1===t.defaultOptionList.indexOf(e)&&console.warn("Invalid column definition option in '"+(t.field||t.definition.title)+"' column:",e)})},Column.prototype.setField=function(t){this.field=t,this.fieldStructure=t?this.table.options.nestedFieldSeparator?t.split(this.table.options.nestedFieldSeparator):[t]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData},Column.prototype.registerColumnPosition=function(t){this.parent.registerColumnPosition(t)},Column.prototype.registerColumnField=function(t){this.parent.registerColumnField(t)},Column.prototype.reRegisterPosition=function(){this.isGroup?this.columns.forEach(function(t){t.reRegisterPosition()}):this.registerColumnPosition(this)},Column.prototype._mapDepricatedFunctionality=function(){void 0!==this.definition.hideInHtml&&(this.definition.htmlOutput=!this.definition.hideInHtml,console.warn("hideInHtml column definition property is deprecated, you should now use htmlOutput")),void 0!==this.definition.align&&(this.definition.hozAlign=this.definition.align,console.warn("align column definition property is deprecated, you should now use hozAlign")),void 0!==this.definition.downloadTitle&&(this.definition.titleDownload=this.definition.downloadTitle,console.warn("downloadTitle definition property is deprecated, you should now use titleDownload"))},Column.prototype.setTooltip=function(){var t=this,e=t.definition,o=e.headerTooltip||!1===e.tooltip?e.headerTooltip:t.table.options.tooltipsHeader;o?!0===o?e.field?t.table.modules.localize.bind("columns|"+e.field,function(o){t.element.setAttribute("title",o||e.title)}):t.element.setAttribute("title",e.title):("function"==typeof o&&!1===(o=o(t.getComponent()))&&(o=""),t.element.setAttribute("title",o)):t.element.setAttribute("title","")},Column.prototype._buildHeader=function(){for(var t=this,e=t.definition;t.element.firstChild;)t.element.removeChild(t.element.firstChild);e.headerVertical&&(t.element.classList.add("tabulator-col-vertical"),"flip"===e.headerVertical&&t.element.classList.add("tabulator-col-vertical-flip")),t.contentElement=t._bindEvents(),t.contentElement=t._buildColumnHeaderContent(),t.element.appendChild(t.contentElement),t.isGroup?t._buildGroupHeader():t._buildColumnHeader(),t.setTooltip(),t.table.options.resizableColumns&&t.table.modExists("resizeColumns")&&t.table.modules.resizeColumns.initializeColumn("header",t,t.element),e.headerFilter&&t.table.modExists("filter")&&t.table.modExists("edit")&&(void 0!==e.headerFilterPlaceholder&&e.field&&t.table.modules.localize.setHeaderFilterColumnPlaceholder(e.field,e.headerFilterPlaceholder),t.table.modules.filter.initializeColumn(t)),t.table.modExists("frozenColumns")&&t.table.modules.frozenColumns.initializeColumn(t),t.table.options.movableColumns&&!t.isGroup&&t.table.modExists("moveColumn")&&t.table.modules.moveColumn.initializeColumn(t),(e.topCalc||e.bottomCalc)&&t.table.modExists("columnCalcs")&&t.table.modules.columnCalcs.initializeColumn(t),t.table.modExists("persistence")&&t.table.modules.persistence.config.columns&&t.table.modules.persistence.initializeColumn(t),t.element.addEventListener("mouseenter",function(e){t.setTooltip()})},Column.prototype._bindEvents=function(){var t,e,o,i=this,n=i.definition;"function"==typeof n.headerClick&&i.element.addEventListener("click",function(t){n.headerClick(t,i.getComponent())}),"function"==typeof n.headerDblClick&&i.element.addEventListener("dblclick",function(t){n.headerDblClick(t,i.getComponent())}),"function"==typeof n.headerContext&&i.element.addEventListener("contextmenu",function(t){n.headerContext(t,i.getComponent())}),"function"==typeof n.headerTap&&(o=!1,i.element.addEventListener("touchstart",function(t){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(t){o&&n.headerTap(t,i.getComponent()),o=!1})),"function"==typeof n.headerDblTap&&(t=null,i.element.addEventListener("touchend",function(e){t?(clearTimeout(t),t=null,n.headerDblTap(e,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),"function"==typeof n.headerTapHold&&(e=null,i.element.addEventListener("touchstart",function(t){clearTimeout(e),e=setTimeout(function(){clearTimeout(e),e=null,o=!1,n.headerTapHold(t,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(t){clearTimeout(e),e=null})),"function"==typeof n.cellClick&&(i.cellEvents.cellClick=n.cellClick),"function"==typeof n.cellDblClick&&(i.cellEvents.cellDblClick=n.cellDblClick),"function"==typeof n.cellContext&&(i.cellEvents.cellContext=n.cellContext),"function"==typeof n.cellMouseEnter&&(i.cellEvents.cellMouseEnter=n.cellMouseEnter),"function"==typeof n.cellMouseLeave&&(i.cellEvents.cellMouseLeave=n.cellMouseLeave),"function"==typeof n.cellMouseOver&&(i.cellEvents.cellMouseOver=n.cellMouseOver),"function"==typeof n.cellMouseOut&&(i.cellEvents.cellMouseOut=n.cellMouseOut),"function"==typeof n.cellMouseMove&&(i.cellEvents.cellMouseMove=n.cellMouseMove),"function"==typeof n.cellTap&&(i.cellEvents.cellTap=n.cellTap),"function"==typeof n.cellDblTap&&(i.cellEvents.cellDblTap=n.cellDblTap),"function"==typeof n.cellTapHold&&(i.cellEvents.cellTapHold=n.cellTapHold),"function"==typeof n.cellEdited&&(i.cellEvents.cellEdited=n.cellEdited),"function"==typeof n.cellEditing&&(i.cellEvents.cellEditing=n.cellEditing),"function"==typeof n.cellEditCancelled&&(i.cellEvents.cellEditCancelled=n.cellEditCancelled)},Column.prototype._buildColumnHeader=function(){var t=this,e=t.definition,o=t.table;if(o.modExists("sort")&&o.modules.sort.initializeColumn(t,t.contentElement),(e.headerContextMenu||e.headerMenu)&&o.modExists("menu")&&o.modules.menu.initializeColumnHeader(t),o.modExists("format")&&o.modules.format.initializeColumn(t),void 0!==e.editor&&o.modExists("edit")&&o.modules.edit.initializeColumn(t),void 0!==e.validator&&o.modExists("validate")&&o.modules.validate.initializeColumn(t),o.modExists("mutator")&&o.modules.mutator.initializeColumn(t),o.modExists("accessor")&&o.modules.accessor.initializeColumn(t),_typeof(o.options.responsiveLayout)&&o.modExists("responsiveLayout")&&o.modules.responsiveLayout.initializeColumn(t),void 0!==e.visible&&(e.visible?t.show(!0):t.hide(!0)),e.cssClass){e.cssClass.split(" ").forEach(function(e){t.element.classList.add(e)})}e.field&&this.element.setAttribute("tabulator-field",e.field),t.setMinWidth(void 0===e.minWidth?t.table.options.columnMinWidth:parseInt(e.minWidth)),t.reinitializeWidth(),t.tooltip=t.definition.tooltip||!1===t.definition.tooltip?t.definition.tooltip:t.table.options.tooltips,t.hozAlign=void 0===t.definition.hozAlign?t.table.options.cellHozAlign:t.definition.hozAlign,t.vertAlign=void 0===t.definition.vertAlign?t.table.options.cellVertAlign:t.definition.vertAlign},Column.prototype._buildColumnHeaderContent=function(){var t=(this.definition,this.table,document.createElement("div"));return t.classList.add("tabulator-col-content"),this.titleElement=this._buildColumnHeaderTitle(),t.appendChild(this.titleElement),t},Column.prototype._buildColumnHeaderTitle=function(){var t=this,e=t.definition,o=t.table,i=document.createElement("div");if(i.classList.add("tabulator-col-title"),e.editableTitle){var n=document.createElement("input");n.classList.add("tabulator-title-editor"),n.addEventListener("click",function(t){t.stopPropagation(),n.focus()}),n.addEventListener("change",function(){e.title=n.value,o.options.columnTitleChanged.call(t.table,t.getComponent())}),i.appendChild(n),e.field?o.modules.localize.bind("columns|"+e.field,function(t){n.value=t||e.title||" "}):n.value=e.title||" "}else e.field?o.modules.localize.bind("columns|"+e.field,function(o){t._formatColumnHeaderTitle(i,o||e.title||" ")}):t._formatColumnHeaderTitle(i,e.title||" ");return i},Column.prototype._formatColumnHeaderTitle=function(t,e){var o,i,n,l,s,a=this;if(this.definition.titleFormatter&&this.table.modExists("format"))switch(o=this.table.modules.format.getFormatter(this.definition.titleFormatter),s=function(t){a.titleFormatterRendered=t},l={getValue:function(){return e},getElement:function(){return t}},n=this.definition.titleFormatterParams||{},n="function"==typeof n?n():n,i=o.call(this.table.modules.format,l,n,s),void 0===i?"undefined":_typeof(i)){case"object":i instanceof Node?t.appendChild(i):(t.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",i));break;case"undefined":case"null":t.innerHTML="";break;default:t.innerHTML=i}else t.innerHTML=e},Column.prototype._buildGroupHeader=function(){var t=this;if(this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass){this.definition.cssClass.split(" ").forEach(function(e){t.element.classList.add(e)})}(this.definition.headerContextMenu||this.definition.headerMenu)&&this.table.modExists("menu")&&this.table.modules.menu.initializeColumnHeader(this),this.element.appendChild(this.groupElement)},Column.prototype._getFlatData=function(t){return t[this.field]},Column.prototype._getNestedData=function(t){for(var e,o=t,i=this.fieldStructure,n=i.length,l=0;l<n&&(o=o[i[l]],e=o,o);l++);return e},Column.prototype._setFlatData=function(t,e){this.field&&(t[this.field]=e)},Column.prototype._setNestedData=function(t,e){for(var o=t,i=this.fieldStructure,n=i.length,l=0;l<n;l++)if(l==n-1)o[i[l]]=e;else{if(!o[i[l]]){if(void 0===e)break;o[i[l]]={}}o=o[i[l]]}},Column.prototype.attachColumn=function(t){var e=this;e.groupElement?(e.columns.push(t),e.groupElement.appendChild(t.getElement())):console.warn("Column Warning - Column being attached to another column instead of column group")},Column.prototype.verticalAlign=function(t,e){var o=this.parent.isGroup?this.parent.getGroupElement().clientHeight:e||this.parent.getHeadersElement().clientHeight;this.element.style.height=o+"px",this.isGroup&&(this.groupElement.style.minHeight=o-this.contentElement.offsetHeight+"px"),this.isGroup||"top"===t||(this.element.style.paddingTop="bottom"===t?this.element.clientHeight-this.contentElement.offsetHeight+"px":(this.element.clientHeight-this.contentElement.offsetHeight)/2+"px"),this.columns.forEach(function(e){e.verticalAlign(t)})},Column.prototype.clearVerticalAlign=function(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(t){t.clearVerticalAlign()})},Column.prototype.bindModuleColumns=function(){"rownum"==this.definition.formatter&&(this.table.rowManager.rowNumColumn=this)},Column.prototype.getElement=function(){return this.element},Column.prototype.getGroupElement=function(){return this.groupElement},Column.prototype.getField=function(){return this.field},Column.prototype.getFirstColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[0].getFirstColumn():this},Column.prototype.getLastColumn=function(){return this.isGroup?!!this.columns.length&&this.columns[this.columns.length-1].getLastColumn():this},Column.prototype.getColumns=function(){return this.columns},Column.prototype.getCells=function(){return this.cells},Column.prototype.getTopColumn=function(){return this.parent.isGroup?this.parent.getTopColumn():this},Column.prototype.getDefinition=function(t){var e=[];return this.isGroup&&t&&(this.columns.forEach(function(t){e.push(t.getDefinition(!0))}),this.definition.columns=e),this.definition},Column.prototype.checkColumnVisibility=function(){var t=!1;this.columns.forEach(function(e){e.visible&&(t=!0)}),t?(this.show(),this.parent.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1)):this.hide()},Column.prototype.show=function(t,e){this.visible||(this.visible=!0,this.element.style.display="",this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(t){t.show()}),this.isGroup||null!==this.width||this.reinitializeWidth(),this.table.columnManager._verticalAlignHeaders(),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!e&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),t||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!0),this.parent.isGroup&&this.parent.matchChildWidths())},Column.prototype.hide=function(t,e){this.visible&&(this.visible=!1,this.element.style.display="none",this.table.columnManager._verticalAlignHeaders(),this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(t){t.hide()}),this.table.options.persistence&&this.table.modExists("persistence",!0)&&this.table.modules.persistence.config.columns&&this.table.modules.persistence.save("columns"),!e&&this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.updateColumnVisibility(this,this.visible),t||this.table.options.columnVisibilityChanged.call(this.table,this.getComponent(),!1),this.parent.isGroup&&this.parent.matchChildWidths())},Column.prototype.matchChildWidths=function(){var t=0;this.contentElement&&this.columns.length&&(this.columns.forEach(function(e){e.visible&&(t+=e.getWidth())}),this.contentElement.style.maxWidth=t-1+"px",this.parent.isGroup&&this.parent.matchChildWidths())},Column.prototype.setWidth=function(t){this.widthFixed=!0,this.setWidthActual(t)},Column.prototype.setWidthActual=function(t){isNaN(t)&&(t=Math.floor(this.table.element.clientWidth/100*parseInt(t))),t=Math.max(this.minWidth,t),this.width=t,this.widthStyled=t?t+"px":"",this.element.style.width=this.widthStyled,this.isGroup||this.cells.forEach(function(t){t.setWidth()}),this.parent.isGroup&&this.parent.matchChildWidths(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()},Column.prototype.checkCellHeights=function(){var t=[];this.cells.forEach(function(e){e.row.heightInitialized&&(null!==e.row.getElement().offsetParent?(t.push(e.row),e.row.clearCellHeight()):e.row.heightInitialized=!1)}),t.forEach(function(t){t.calcHeight()}),t.forEach(function(t){t.setCellHeight()})},Column.prototype.getWidth=function(){var t=0;return this.isGroup?this.columns.forEach(function(e){e.visible&&(t+=e.getWidth())}):t=this.width,t},Column.prototype.getHeight=function(){return this.element.offsetHeight},Column.prototype.setMinWidth=function(t){this.minWidth=t,this.minWidthStyled=t?t+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(t){t.setMinWidth()})},Column.prototype.delete=function(){var t=this;return new Promise(function(e,o){t.isGroup&&t.columns.forEach(function(t){t.delete()}),t.table.modExists("edit")&&t.table.modules.edit.currentCell.column===t&&t.table.modules.edit.cancelEdit();for(var i=t.cells.length,n=0;n<i;n++)t.cells[0].delete();t.element.parentNode.removeChild(t.element),t.table.columnManager.deregisterColumn(t),e()})},Column.prototype.columnRendered=function(){
-this.titleFormatterRendered&&this.titleFormatterRendered()},Column.prototype.validate=function(){var t=[];return this.cells.forEach(function(e){e.validate()||t.push(e.getComponent())}),!t.length||t},Column.prototype.generateCell=function(t){var e=this,o=new Cell(e,t);return this.cells.push(o),o},Column.prototype.nextColumn=function(){var t=this.table.columnManager.findColumnIndex(this);return t>-1&&this._nextVisibleColumn(t+1)},Column.prototype._nextVisibleColumn=function(t){var e=this.table.columnManager.getColumnByIndex(t);return!e||e.visible?e:this._nextVisibleColumn(t+1)},Column.prototype.prevColumn=function(){var t=this.table.columnManager.findColumnIndex(this);return t>-1&&this._prevVisibleColumn(t-1)},Column.prototype._prevVisibleColumn=function(t){var e=this.table.columnManager.getColumnByIndex(t);return!e||e.visible?e:this._prevVisibleColumn(t-1)},Column.prototype.reinitializeWidth=function(t){this.widthFixed=!1,void 0===this.definition.width||t||this.setWidth(this.definition.width),this.table.modExists("filter")&&this.table.modules.filter.hideHeaderFilterElements(),this.fitToData(),this.table.modExists("filter")&&this.table.modules.filter.showHeaderFilterElements()},Column.prototype.fitToData=function(){var t=this;this.widthFixed||(this.element.style.width="",t.cells.forEach(function(t){t.clearWidth()}));var e=this.element.offsetWidth;t.width&&this.widthFixed||(t.cells.forEach(function(t){var o=t.getWidth();o>e&&(e=o)}),e&&t.setWidthActual(e+1))},Column.prototype.updateDefinition=function(t){var e=this;return new Promise(function(o,i){var n;e.isGroup?(console.warn("Column Update Error - The updateDefintion function is only available on columns, not column groups"),i("Column Update Error - The updateDefintion function is only available on columns, not column groups")):(n=Object.assign({},e.getDefinition()),n=Object.assign(n,t),e.table.columnManager.addColumn(n,!1,e).then(function(t){n.field==e.field&&(e.field=!1),e.delete().then(function(){o(t.getComponent())}).catch(function(t){i(t)})}).catch(function(t){i(t)}))})},Column.prototype.deleteCell=function(t){var e=this.cells.indexOf(t);e>-1&&this.cells.splice(e,1)},Column.prototype.defaultOptionList=["title","field","columns","visible","align","hozAlign","vertAlign","width","minWidth","widthGrow","widthShrink","resizable","frozen","responsive","tooltip","cssClass","rowHandle","hideInHtml","print","htmlOutput","sorter","sorterParams","formatter","formatterParams","variableHeight","editable","editor","editorParams","validator","mutator","mutatorParams","mutatorData","mutatorDataParams","mutatorEdit","mutatorEditParams","mutatorClipboard","mutatorClipboardParams","accessor","accessorParams","accessorData","accessorDataParams","accessorDownload","accessorDownloadParams","accessorClipboard","accessorClipboardParams","accessorPrint","accessorPrintParams","accessorHtmlOutput","accessorHtmlOutputParams","clipboard","download","downloadTitle","topCalc","topCalcParams","topCalcFormatter","topCalcFormatterParams","bottomCalc","bottomCalcParams","bottomCalcFormatter","bottomCalcFormatterParams","cellClick","cellDblClick","cellContext","cellTap","cellDblTap","cellTapHold","cellMouseEnter","cellMouseLeave","cellMouseOver","cellMouseOut","cellMouseMove","cellEditing","cellEdited","cellEditCancelled","headerSort","headerSortStartingDir","headerSortTristate","headerClick","headerDblClick","headerContext","headerTap","headerDblTap","headerTapHold","headerTooltip","headerVertical","editableTitle","titleFormatter","titleFormatterParams","headerFilter","headerFilterPlaceholder","headerFilterParams","headerFilterEmptyCheck","headerFilterFunc","headerFilterFuncParams","headerFilterLiveFilter","print","headerContextMenu","headerMenu","contextMenu","formatterPrint","formatterPrintParams","formatterClipboard","formatterClipboardParams","formatterHtmlOutput","formatterHtmlOutputParams","titlePrint","titleClipboard","titleHtmlOutput","titleDownload"],Column.prototype.getComponent=function(){return this.component||(this.component=new ColumnComponent(this)),this.component};var RowManager=function(t){this.table=t,this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.columnManager=null,this.height=0,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[],this.rowNumColumn=!1,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRederInPosition=!1};RowManager.prototype.createHolderElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-tableHolder"),t.setAttribute("tabindex",0),t},RowManager.prototype.createTableElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-table"),t},RowManager.prototype.getElement=function(){return this.element},RowManager.prototype.getTableElement=function(){return this.tableElement},RowManager.prototype.getRowPosition=function(t,e){return e?this.activeRows.indexOf(t):this.rows.indexOf(t)},RowManager.prototype.setColumnManager=function(t){this.columnManager=t},RowManager.prototype.initialize=function(){var t=this;t.setRenderMode(),t.element.appendChild(t.tableElement),t.firstRender=!0,t.element.addEventListener("scroll",function(){var e=t.element.scrollLeft;t.scrollLeft!=e&&(t.columnManager.scrollHorizontal(e),t.table.options.groupBy&&t.table.modules.groupRows.scrollHeaders(e),t.table.modExists("columnCalcs")&&t.table.modules.columnCalcs.scrollHorizontal(e),t.table.options.scrollHorizontal(e)),t.scrollLeft=e}),"virtual"===this.renderMode&&t.element.addEventListener("scroll",function(){var e=t.element.scrollTop,o=t.scrollTop>e;t.scrollTop!=e?(t.scrollTop=e,t.scrollVertical(o),"scroll"==t.table.options.ajaxProgressiveLoad&&t.table.modules.ajax.nextPage(t.element.scrollHeight-t.element.clientHeight-e),t.table.options.scrollVertical(e)):t.scrollTop=e})},RowManager.prototype.findRow=function(t){var e=this;if("object"!=(void 0===t?"undefined":_typeof(t))){if(void 0===t||null===t)return!1;return e.rows.find(function(o){return o.data[e.table.options.index]==t})||!1}if(t instanceof Row)return t;if(t instanceof RowComponent)return t._getSelf()||!1;if("undefined"!=typeof HTMLElement&&t instanceof HTMLElement){return e.rows.find(function(e){return e.element===t})||!1}return!1},RowManager.prototype.getRowFromDataObject=function(t){return this.rows.find(function(e){return e.data===t})||!1},RowManager.prototype.getRowFromPosition=function(t,e){return e?this.activeRows[t]:this.rows[t]},RowManager.prototype.scrollToRow=function(t,e,o){var i,n=this,l=this.getDisplayRows().indexOf(t),s=t.getElement(),a=0;return new Promise(function(t,r){if(l>-1){if(void 0===e&&(e=n.table.options.scrollToRowPosition),void 0===o&&(o=n.table.options.scrollToRowIfVisible),"nearest"===e)switch(n.renderMode){case"classic":i=Tabulator.prototype.helpers.elOffset(s).top,e=Math.abs(n.element.scrollTop-i)>Math.abs(n.element.scrollTop+n.element.clientHeight-i)?"bottom":"top";break;case"virtual":e=Math.abs(n.vDomTop-l)>Math.abs(n.vDomBottom-l)?"bottom":"top"}if(!o&&Tabulator.prototype.helpers.elVisible(s)&&(a=Tabulator.prototype.helpers.elOffset(s).top-Tabulator.prototype.helpers.elOffset(n.element).top)>0&&a<n.element.clientHeight-s.offsetHeight)return!1;switch(n.renderMode){case"classic":n.element.scrollTop=Tabulator.prototype.helpers.elOffset(s).top-Tabulator.prototype.helpers.elOffset(n.element).top+n.element.scrollTop;break;case"virtual":n._virtualRenderFill(l,!0)}switch(e){case"middle":case"center":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop+(s.offsetTop-n.element.scrollTop)-(n.element.scrollHeight-s.offsetTop)/2:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight/2;break;case"bottom":n.element.scrollHeight-n.element.scrollTop==n.element.clientHeight?n.element.scrollTop=n.element.scrollTop-(n.element.scrollHeight-s.offsetTop)+s.offsetHeight:n.element.scrollTop=n.element.scrollTop-n.element.clientHeight+s.offsetHeight}t()}else console.warn("Scroll Error - Row not visible"),r("Scroll Error - Row not visible")})},RowManager.prototype.setData=function(t,e,o){var i=this,n=this;return new Promise(function(l,s){e&&i.getDisplayRows().length?n.table.options.pagination?n._setDataActual(t,!0):i.reRenderInPosition(function(){n._setDataActual(t)}):(i.table.options.autoColumns&&o&&i.table.columnManager.generateColumnsFromRowData(t),i.resetScroll(),i._setDataActual(t)),l()})},RowManager.prototype._setDataActual=function(t,e){var o=this;o.table.options.dataLoading.call(this.table,t),this._wipeElements(),this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.clear(),Array.isArray(t)?(this.table.modExists("selectRow")&&this.table.modules.selectRow.clearSelectionData(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchData(t),t.forEach(function(t,e){if(t&&"object"===(void 0===t?"undefined":_typeof(t))){var i=new Row(t,o);o.rows.push(i)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",t)}),o.table.options.dataLoaded.call(this.table,t),o.refreshActiveData(!1,!1,e)):console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ",void 0===t?"undefined":_typeof(t),"\nData: ",t)},RowManager.prototype._wipeElements=function(){this.rows.forEach(function(t){t.wipe()}),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.wipe(),this.rows=[]},RowManager.prototype.deleteRow=function(t,e){var o=this.rows.indexOf(t),i=this.activeRows.indexOf(t);i>-1&&this.activeRows.splice(i,1),o>-1&&this.rows.splice(o,1),this.setActiveRows(this.activeRows),this.displayRowIterator(function(e){var o=e.indexOf(t);o>-1&&e.splice(o,1)}),e||this.reRenderInPosition(),this.regenerateRowNumbers(),this.table.options.rowDeleted.call(this.table,t.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.groupRows.updateGroupRows(!0):this.table.options.pagination&&this.table.modExists("page")?this.refreshActiveData(!1,!1,!0):this.table.options.pagination&&this.table.modExists("page")&&this.refreshActiveData("page")},RowManager.prototype.addRow=function(t,e,o,i){var n=this.addRowActual(t,e,o,i);return this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowAdd",n,{data:t,pos:e,index:o}),n},RowManager.prototype.addRows=function(t,e,o){var i=this,n=this,l=0,s=[];return new Promise(function(a,r){e=i.findAddRowPos(e),Array.isArray(t)||(t=[t]),l=t.length-1,(void 0===o&&e||void 0!==o&&!e)&&t.reverse(),t.forEach(function(t,i){var l=n.addRow(t,e,o,!0);s.push(l)}),i.table.options.groupBy&&i.table.modExists("groupRows")?i.table.modules.groupRows.updateGroupRows(!0):i.table.options.pagination&&i.table.modExists("page")?i.refreshActiveData(!1,!1,!0):i.reRenderInPosition(),i.table.modExists("columnCalcs")&&i.table.modules.columnCalcs.recalc(i.table.rowManager.activeRows),i.regenerateRowNumbers(),a(s)})},RowManager.prototype.findAddRowPos=function(t){return void 0===t&&(t=this.table.options.addRowPos),"pos"===t&&(t=!0),"bottom"===t&&(t=!1),t},RowManager.prototype.addRowActual=function(t,e,o,i){var n,l,s=t instanceof Row?t:new Row(t||{},this),a=this.findAddRowPos(e),r=-1;if(!o&&this.table.options.pagination&&"page"==this.table.options.paginationAddRow&&(l=this.getDisplayRows(),a?l.length?o=l[0]:this.activeRows.length&&(o=this.activeRows[this.activeRows.length-1],a=!1):l.length&&(o=l[l.length-1],a=!(l.length<this.table.modules.page.getPageSize()))),void 0!==o&&(o=this.findRow(o)),this.table.options.groupBy&&this.table.modExists("groupRows")){this.table.modules.groupRows.assignRowToGroup(s);var u=s.getGroup().rows;u.length>1&&(!o||o&&-1==u.indexOf(o)?a?u[0]!==s&&(o=u[0],this._moveRowInArray(s.getGroup().rows,s,o,!a)):u[u.length-1]!==s&&(o=u[u.length-1],this._moveRowInArray(s.getGroup().rows,s,o,!a)):this._moveRowInArray(s.getGroup().rows,s,o,!a))}return o&&(r=this.rows.indexOf(o)),o&&r>-1?(n=this.activeRows.indexOf(o),this.displayRowIterator(function(t){var e=t.indexOf(o);e>-1&&t.splice(a?e:e+1,0,s)}),n>-1&&this.activeRows.splice(a?n:n+1,0,s),this.rows.splice(a?r:r+1,0,s)):a?(this.displayRowIterator(function(t){t.unshift(s)}),this.activeRows.unshift(s),this.rows.unshift(s)):(this.displayRowIterator(function(t){t.push(s)}),this.activeRows.push(s),this.rows.push(s)),this.setActiveRows(this.activeRows),this.table.options.rowAdded.call(this.table,s.getComponent()),this.table.options.dataEdited.call(this.table,this.getData()),i||this.reRenderInPosition(),s},RowManager.prototype.moveRow=function(t,e,o){this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("rowMove",t,{posFrom:this.getRowPosition(t),posTo:this.getRowPosition(e),to:e,after:o}),this.moveRowActual(t,e,o),this.regenerateRowNumbers(),this.table.options.rowMoved.call(this.table,t.getComponent())},RowManager.prototype.moveRowActual=function(t,e,o){var i=this;if(this._moveRowInArray(this.rows,t,e,o),this._moveRowInArray(this.activeRows,t,e,o),this.displayRowIterator(function(n){i._moveRowInArray(n,t,e,o)}),this.table.options.groupBy&&this.table.modExists("groupRows")){!o&&e instanceof Group&&(e=this.table.rowManager.prevDisplayRow(t)||e);var n=e.getGroup(),l=t.getGroup();n===l?this._moveRowInArray(n.rows,t,e,o):(l&&l.removeRow(t),n.insertRow(t,e,o))}},RowManager.prototype._moveRowInArray=function(t,e,o,i){var n,l,s,a;if(e!==o&&(n=t.indexOf(e),n>-1&&(t.splice(n,1),l=t.indexOf(o),l>-1?i?t.splice(l+1,0,e):t.splice(l,0,e):t.splice(n,0,e)),t===this.getDisplayRows())){s=n<l?n:l,a=l>n?l:n+1;for(var r=s;r<=a;r++)t[r]&&this.styleRow(t[r],r)}},RowManager.prototype.clearData=function(){this.setData([])},RowManager.prototype.getRowIndex=function(t){return this.findRowIndex(t,this.rows)},RowManager.prototype.getDisplayRowIndex=function(t){var e=this.getDisplayRows().indexOf(t);return e>-1&&e},RowManager.prototype.nextDisplayRow=function(t,e){var o=this.getDisplayRowIndex(t),i=!1;return!1!==o&&o<this.displayRowsCount-1&&(i=this.getDisplayRows()[o+1]),!i||i instanceof Row&&"row"==i.type?i:this.nextDisplayRow(i,e)},RowManager.prototype.prevDisplayRow=function(t,e){var o=this.getDisplayRowIndex(t),i=!1;return o&&(i=this.getDisplayRows()[o-1]),!e||!i||i instanceof Row&&"row"==i.type?i:this.prevDisplayRow(i,e)},RowManager.prototype.findRowIndex=function(t,e){var o;return!!((t=this.findRow(t))&&(o=e.indexOf(t))>-1)&&o},RowManager.prototype.getData=function(t,e){var o=[];return this.getRows(t).forEach(function(t){"row"==t.type&&o.push(t.getData(e||"data"))}),o},RowManager.prototype.getComponents=function(t){var e=[];return this.getRows(t).forEach(function(t){e.push(t.getComponent())}),e},RowManager.prototype.getDataCount=function(t){return this.getRows(t).length},RowManager.prototype._genRemoteRequest=function(){var t=this,e=this.table,o=e.options,i={};if(e.modExists("page")){if(o.ajaxSorting){var n=this.table.modules.sort.getSort();n.forEach(function(t){delete t.column}),i[this.table.modules.page.paginationDataSentNames.sorters]=n}if(o.ajaxFiltering){var l=this.table.modules.filter.getFilters(!0,!0);i[this.table.modules.page.paginationDataSentNames.filters]=l}this.table.modules.ajax.setParams(i,!0)}e.modules.ajax.sendRequest().then(function(e){t._setDataActual(e,!0)}).catch(function(t){})},RowManager.prototype.filterRefresh=function(){var t=this.table,e=t.options,o=this.scrollLeft;e.ajaxFiltering?"remote"==e.pagination&&t.modExists("page")?(t.modules.page.reset(!0),t.modules.page.setPage(1).then(function(){}).catch(function(){})):e.ajaxProgressiveLoad?t.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData("filter"),this.scrollHorizontal(o)},RowManager.prototype.sorterRefresh=function(t){var e=this.table,o=this.table.options,i=this.scrollLeft;o.ajaxSorting?("remote"==o.pagination||o.progressiveLoad)&&e.modExists("page")?(e.modules.page.reset(!0),e.modules.page.setPage(1).then(function(){}).catch(function(){})):o.ajaxProgressiveLoad?e.modules.ajax.loadData().then(function(){}).catch(function(){}):this._genRemoteRequest():this.refreshActiveData(t?"filter":"sort"),this.scrollHorizontal(i)},RowManager.prototype.scrollHorizontal=function(t){this.scrollLeft=t,this.element.scrollLeft=t,this.table.options.groupBy&&this.table.modules.groupRows.scrollHeaders(t),this.table.modExists("columnCalcs")&&this.table.modules.columnCalcs.scrollHorizontal(t)},RowManager.prototype.refreshActiveData=function(t,e,o){var i,n=this,l=this.table,s=["all","filter","sort","display","freeze","group","tree","page"];if(this.redrawBlock)return void((!this.redrawBlockRestoreConfig||s.indexOf(t)<s.indexOf(this.redrawBlockRestoreConfig.stage))&&(this.redrawBlockRestoreConfig={stage:t,skipStage:e,renderInPosition:o}));switch(n.table.modExists("edit")&&n.table.modules.edit.cancelEdit(),t||(t="all"),l.options.selectable&&!l.options.selectablePersistence&&l.modExists("selectRow")&&l.modules.selectRow.deselectRows(),t){case"all":case"filter":e?e=!1:l.modExists("filter")?n.setActiveRows(l.modules.filter.filter(n.rows)):n.setActiveRows(n.rows.slice(0));case"sort":e?e=!1:l.modExists("sort")&&l.modules.sort.sort(this.activeRows),this.regenerateRowNumbers();case"display":this.resetDisplayRows();case"freeze":e?e=!1:this.table.modExists("frozenRows")&&l.modules.frozenRows.isFrozen()&&(l.modules.frozenRows.getDisplayIndex()||l.modules.frozenRows.setDisplayIndex(this.getNextDisplayIndex()),i=l.modules.frozenRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(l.modules.frozenRows.getRows(this.getDisplayRows(i-1)),i))&&l.modules.frozenRows.setDisplayIndex(i));case"group":e?e=!1:l.options.groupBy&&l.modExists("groupRows")&&(l.modules.groupRows.getDisplayIndex()||l.modules.groupRows.setDisplayIndex(this.getNextDisplayIndex()),i=l.modules.groupRows.getDisplayIndex(),!0!==(i=n.setDisplayRows(l.modules.groupRows.getRows(this.getDisplayRows(i-1)),i))&&l.modules.groupRows.setDisplayIndex(i));case"tree":e?e=!1:l.options.dataTree&&l.modExists("dataTree")&&(l.modules.dataTree.getDisplayIndex()||l.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex()),i=l.modules.dataTree.getDisplayIndex(),!0!==(i=n.setDisplayRows(l.modules.dataTree.getRows(this.getDisplayRows(i-1)),i))&&l.modules.dataTree.setDisplayIndex(i)),l.options.pagination&&l.modExists("page")&&!o&&"local"==l.modules.page.getMode()&&l.modules.page.reset();case"page":e?e=!1:l.options.pagination&&l.modExists("page")&&(l.modules.page.getDisplayIndex()||l.modules.page.setDisplayIndex(this.getNextDisplayIndex()),i=l.modules.page.getDisplayIndex(),"local"==l.modules.page.getMode()&&l.modules.page.setMaxRows(this.getDisplayRows(i-1).length),!0!==(i=n.setDisplayRows(l.modules.page.getRows(this.getDisplayRows(i-1)),i))&&l.modules.page.setDisplayIndex(i))}Tabulator.prototype.helpers.elVisible(n.element)&&(o?n.reRenderInPosition():(n.renderTable(),l.options.layoutColumnsOnNewData&&n.table.columnManager.redraw(!0))),l.modExists("columnCalcs")&&l.modules.columnCalcs.recalc(this.activeRows)},RowManager.prototype.regenerateRowNumbers=function(){var t=this;this.rowNumColumn&&this.activeRows.forEach(function(e){var o=e.getCell(t.rowNumColumn);o&&o._generateContents()})},RowManager.prototype.setActiveRows=function(t){this.activeRows=t,this.activeRowsCount=this.activeRows.length},RowManager.prototype.resetDisplayRows=function(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length,this.table.modExists("frozenRows")&&this.table.modules.frozenRows.setDisplayIndex(0),this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.setDisplayIndex(0),this.table.options.pagination&&this.table.modExists("page")&&this.table.modules.page.setDisplayIndex(0)},RowManager.prototype.getNextDisplayIndex=function(){return this.displayRows.length},RowManager.prototype.setDisplayRows=function(t,e){var o=!0;return e&&void 0!==this.displayRows[e]?(this.displayRows[e]=t,o=!0):(this.displayRows.push(t),o=e=this.displayRows.length-1),e==this.displayRows.length-1&&(this.displayRowsCount=this.displayRows[this.displayRows.length-1].length),o},RowManager.prototype.getDisplayRows=function(t){return void 0===t?this.displayRows.length?this.displayRows[this.displayRows.length-1]:[]:this.displayRows[t]||[]},RowManager.prototype.getVisibleRows=function(t){var e=this.element.scrollTop,o=this.element.clientHeight+e,i=!1,n=0,l=0,s=this.getDisplayRows();if(t){this.getDisplayRows();for(var a=this.vDomTop;a<=this.vDomBottom;a++)if(s[a])if(i){if(!(o-s[a].getElement().offsetTop>=0))break;l=a}else if(e-s[a].getElement().offsetTop>=0)n=a;else{if(i=!0,!(o-s[a].getElement().offsetTop>=0))break;l=a}}else n=this.vDomTop,l=this.vDomBottom;return s.slice(n,l+1)},RowManager.prototype.displayRowIterator=function(t){this.displayRows.forEach(t),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length},RowManager.prototype.getRows=function(t){var e;switch(t){case"active":e=this.activeRows;break;case"display":e=this.table.rowManager.getDisplayRows();break;case"visible":e=this.getVisibleRows(!0);break;default:e=this.rows}return e},RowManager.prototype.reRenderInPosition=function(t){if("virtual"==this.getRenderMode())if(this.redrawBlock)t?t():this.redrawBlockRederInPosition=!0;else{for(var e=this.element.scrollTop,o=!1,i=!1,n=this.scrollLeft,l=this.getDisplayRows(),s=this.vDomTop;s<=this.vDomBottom;s++)if(l[s]){var a=e-l[s].getElement().offsetTop;if(!(!1===i||Math.abs(a)<i))break;i=a,o=s}t&&t(),this._virtualRenderFill(!1===o?this.displayRowsCount-1:o,!0,i||0),this.scrollHorizontal(n)}else this.renderTable(),t&&t()},RowManager.prototype.setRenderMode=function(){this.table.options.virtualDom?(this.renderMode="virtual",this.table.element.clientHeight||this.table.options.height?this.fixedHeight=!0:this.fixedHeight=!1):this.renderMode="classic"},RowManager.prototype.getRenderMode=function(){return this.renderMode},RowManager.prototype.renderTable=function(){switch(this.table.options.renderStarted.call(this.table),this.element.scrollTop=0,this.renderMode){case"classic":this._simpleRender();break;case"virtual":this._virtualRenderFill()}this.firstRender&&(this.displayRowsCount?(this.firstRender=!1,this.table.modules.layout.layout()):this.renderEmptyScroll()),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout(),this.displayRowsCount||this.table.options.placeholder&&(this.table.options.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.table.options.placeholder),this.table.options.placeholder.style.width=this.table.columnManager.getWidth()+"px"),this.table.options.renderComplete.call(this.table)},RowManager.prototype._simpleRender=function(){this._clearVirtualDom(),this.displayRowsCount?this.checkClassicModeGroupHeaderWidth():this.renderEmptyScroll()},RowManager.prototype.checkClassicModeGroupHeaderWidth=function(){var t=this,e=this.tableElement,o=!0;t.getDisplayRows().forEach(function(i,n){t.styleRow(i,n),e.appendChild(i.getElement()),i.initialize(!0),"group"!==i.type&&(o=!1)}),e.style.minWidth=o?t.table.columnManager.getWidth()+"px":""},RowManager.prototype.renderEmptyScroll=function(){this.table.options.placeholder?this.tableElement.style.display="none":(this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px",this.tableElement.style.minHeight="1px",this.tableElement.style.visibility="hidden")},RowManager.prototype._clearVirtualDom=function(){var t=this.tableElement;for(this.table.options.placeholder&&this.table.options.placeholder.parentNode&&this.table.options.placeholder.parentNode.removeChild(this.table.options.placeholder);t.firstChild;)t.removeChild(t.firstChild);t.style.paddingTop="",t.style.paddingBottom="",t.style.minWidth="",t.style.minHeight="",t.style.display="",t.style.visibility="",this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0},RowManager.prototype.styleRow=function(t,e){var o=t.getElement();e%2?(o.classList.add("tabulator-row-even"),o.classList.remove("tabulator-row-odd")):(o.classList.add("tabulator-row-odd"),o.classList.remove("tabulator-row-even"))},RowManager.prototype._virtualRenderFill=function(t,e,o){var i=this,n=i.tableElement,l=i.element,s=0,a=0,r=0,u=0,c=!0,h=i.getDisplayRows();if(t=t||0,o=o||0,t){for(;n.firstChild;)n.removeChild(n.firstChild);var d=(i.displayRowsCount-t+1)*i.vDomRowHeight;d<i.height&&(t-=Math.ceil((i.height-d)/i.vDomRowHeight))<0&&(t=0),s=Math.min(Math.max(Math.floor(i.vDomWindowBuffer/i.vDomRowHeight),i.vDomWindowMinMarginRows),t),t-=s}else i._clearVirtualDom();if(i.displayRowsCount&&Tabulator.prototype.helpers.elVisible(i.element)){for(i.vDomTop=t,i.vDomBottom=t-1;(a<=i.height+i.vDomWindowBuffer||u<i.vDomWindowMinTotalRows)&&i.vDomBottom<i.displayRowsCount-1;){var p=i.vDomBottom+1,m=h[p],f=0;i.styleRow(m,p),n.appendChild(m.getElement()),m.initialized?m.heightInitialized||m.normalizeHeight(!0):m.initialize(!0),f=m.getHeight(),u<s?r+=f:a+=f,f>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*f),"group"!==m.type&&(c=!1),i.vDomBottom++,u++}t?(i.vDomTopPad=e?i.vDomRowHeight*this.vDomTop+o:i.scrollTop-r,i.vDomBottomPad=i.vDomBottom==i.displayRowsCount-1?0:Math.max(i.vDomScrollHeight-i.vDomTopPad-a-r,0)):(this.vDomTopPad=0,i.vDomRowHeight=Math.floor((a+r)/u),i.vDomBottomPad=i.vDomRowHeight*(i.displayRowsCount-i.vDomBottom-1),i.vDomScrollHeight=r+a+i.vDomBottomPad-i.height),n.style.paddingTop=i.vDomTopPad+"px",n.style.paddingBottom=i.vDomBottomPad+"px",e&&(this.scrollTop=i.vDomTopPad+r+o-(this.element.scrollWidth>this.element.clientWidth?this.element.offsetHeight-this.element.clientHeight:0)),this.scrollTop=Math.min(this.scrollTop,this.element.scrollHeight-this.height),this.element.scrollWidth>this.element.offsetWidth&&e&&(this.scrollTop+=this.element.offsetHeight-this.element.clientHeight),this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,l.scrollTop=this.scrollTop,n.style.minWidth=c?i.table.columnManager.getWidth()+"px":"",i.table.options.groupBy&&"fitDataFill"!=i.table.modules.layout.getMode()&&i.displayRowsCount==i.table.modules.groupRows.countGroups()&&(i.tableElement.style.minWidth=i.table.columnManager.getWidth())}else this.renderEmptyScroll();this.fixedHeight||this.adjustTableSize()},RowManager.prototype.scrollVertical=function(t){var e=this.scrollTop-this.vDomScrollPosTop,o=this.scrollTop-this.vDomScrollPosBottom,i=2*this.vDomWindowBuffer;if(-e>i||o>i){var n=this.scrollLeft;this._virtualRenderFill(Math.floor(this.element.scrollTop/this.element.scrollHeight*this.displayRowsCount)),this.scrollHorizontal(n)}else t?(e<0&&this._addTopRow(-e),o<0&&(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer?this._removeBottomRow(-o):this.vDomScrollPosBottom=this.scrollTop)):(e>=0&&(this.scrollTop>this.vDomWindowBuffer?this._removeTopRow(e):this.vDomScrollPosTop=this.scrollTop),o>=0&&this._addBottomRow(o))},RowManager.prototype._addTopRow=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomTop){var n=this.vDomTop-1,l=i[n],s=l.getHeight()||this.vDomRowHeight;t>=s&&(this.styleRow(l,n),o.insertBefore(l.getElement(),o.firstChild),l.initialized&&l.heightInitialized||(this.vDomTopNewRows.push(l),l.heightInitialized||l.clearCellHeight()),l.initialize(),this.vDomTopPad-=s,this.vDomTopPad<0&&(this.vDomTopPad=n*this.vDomRowHeight),n||(this.vDomTopPad=0),o.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=s,this.vDomTop--),t=-(this.scrollTop-this.vDomScrollPosTop),l.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*l.getHeight()),e<this.vDomMaxRenderChain&&this.vDomTop&&t>=(i[this.vDomTop-1].getHeight()||this.vDomRowHeight)?this._addTopRow(t,e+1):this._quickNormalizeRowHeight(this.vDomTopNewRows)}},RowManager.prototype._removeTopRow=function(t){var e=this.tableElement,o=this.getDisplayRows()[this.vDomTop],i=o.getHeight()||this.vDomRowHeight;if(t>=i){var n=o.getElement();n.parentNode.removeChild(n),this.vDomTopPad+=i,e.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?i:i+this.vDomWindowBuffer,this.vDomTop++,t=this.scrollTop-this.vDomScrollPosTop,this._removeTopRow(t)}},RowManager.prototype._addBottomRow=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.tableElement,i=this.getDisplayRows();if(this.vDomBottom<this.displayRowsCount-1){var n=this.vDomBottom+1,l=i[n],s=l.getHeight()||this.vDomRowHeight;t>=s&&(this.styleRow(l,n),o.appendChild(l.getElement()),l.initialized&&l.heightInitialized||(this.vDomBottomNewRows.push(l),l.heightInitialized||l.clearCellHeight()),l.initialize(),this.vDomBottomPad-=s,(this.vDomBottomPad<0||n==this.displayRowsCount-1)&&(this.vDomBottomPad=0),o.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=s,this.vDomBottom++),t=this.scrollTop-this.vDomScrollPosBottom,l.getHeight()>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*l.getHeight()),e<this.vDomMaxRenderChain&&this.vDomBottom<this.displayRowsCount-1&&t>=(i[this.vDomBottom+1].getHeight()||this.vDomRowHeight)?this._addBottomRow(t,e+1):this._quickNormalizeRowHeight(this.vDomBottomNewRows)}},RowManager.prototype._removeBottomRow=function(t){var e=this.tableElement,o=this.getDisplayRows()[this.vDomBottom],i=o.getHeight()||this.vDomRowHeight;if(t>=i){var n=o.getElement();n.parentNode&&n.parentNode.removeChild(n),this.vDomBottomPad+=i,this.vDomBottomPad<0&&(this.vDomBottomPad=0),e.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=i,this.vDomBottom--,t=-(this.scrollTop-this.vDomScrollPosBottom),this._removeBottomRow(t)}},RowManager.prototype._quickNormalizeRowHeight=function(t){t.forEach(function(t){t.calcHeight()}),t.forEach(function(t){t.setCellHeight()}),t.length=0},RowManager.prototype.normalizeHeight=function(){this.activeRows.forEach(function(t){t.normalizeHeight()})},RowManager.prototype.adjustTableSize=function(){var t,e=this.element.clientHeight;if("virtual"===this.renderMode){var o=this.columnManager.getElement().offsetHeight+(this.table.footerManager&&!this.table.footerManager.external?this.table.footerManager.getElement().offsetHeight:0);this.fixedHeight?(this.element.style.minHeight="calc(100% - "+o+"px)",this.element.style.height="calc(100% - "+o+"px)",this.element.style.maxHeight="calc(100% - "+o+"px)"):(this.element.style.height="",this.element.style.height=this.table.element.clientHeight-o+"px",this.element.scrollTop=this.scrollTop),this.height=this.element.clientHeight,this.vDomWindowBuffer=this.table.options.virtualDomBuffer||this.height,this.fixedHeight||e==this.element.clientHeight||((t=this.table.modExists("resizeTable"))&&!this.table.modules.resizeTable.autoResize||!t)&&this.redraw()}},RowManager.prototype.reinitialize=function(){this.rows.forEach(function(t){t.reinitialize()})},RowManager.prototype.blockRedraw=function(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1},RowManager.prototype.restoreRedraw=function(){this.redrawBlock=!1,this.redrawBlockRestoreConfig?(this.refreshActiveData(this.redrawBlockRestoreConfig.stage,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1):this.redrawBlockRederInPosition&&this.reRenderInPosition(),this.redrawBlockRederInPosition=!1},
-RowManager.prototype.redraw=function(t){var e=this.scrollLeft;this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,t?this.renderTable():("classic"==this.renderMode?this.table.options.groupBy?this.refreshActiveData("group",!1,!1):this._simpleRender():(this.reRenderInPosition(),this.scrollHorizontal(e)),this.displayRowsCount||this.table.options.placeholder&&this.getElement().appendChild(this.table.options.placeholder))},RowManager.prototype.resetScroll=function(){if(this.element.scrollLeft=0,this.element.scrollTop=0,"ie"===this.table.browser){var t=document.createEvent("Event");t.initEvent("scroll",!1,!0),this.element.dispatchEvent(t)}else this.element.dispatchEvent(new Event("scroll"))};var RowComponent=function(t){this._row=t};RowComponent.prototype.getData=function(t){return this._row.getData(t)},RowComponent.prototype.getElement=function(){return this._row.getElement()},RowComponent.prototype.getCells=function(){var t=[];return this._row.getCells().forEach(function(e){t.push(e.getComponent())}),t},RowComponent.prototype.getCell=function(t){var e=this._row.getCell(t);return!!e&&e.getComponent()},RowComponent.prototype.getIndex=function(){return this._row.getData("data")[this._row.table.options.index]},RowComponent.prototype.getPosition=function(t){return this._row.table.rowManager.getRowPosition(this._row,t)},RowComponent.prototype.delete=function(){return this._row.delete()},RowComponent.prototype.scrollTo=function(){return this._row.table.rowManager.scrollToRow(this._row)},RowComponent.prototype.pageTo=function(){if(this._row.table.modExists("page",!0))return this._row.table.modules.page.setPageToRow(this._row)},RowComponent.prototype.move=function(t,e){this._row.moveToRow(t,e)},RowComponent.prototype.update=function(t){return this._row.updateData(t)},RowComponent.prototype.normalizeHeight=function(){this._row.normalizeHeight(!0)},RowComponent.prototype.select=function(){this._row.table.modules.selectRow.selectRows(this._row)},RowComponent.prototype.deselect=function(){this._row.table.modules.selectRow.deselectRows(this._row)},RowComponent.prototype.toggleSelect=function(){this._row.table.modules.selectRow.toggleRow(this._row)},RowComponent.prototype.isSelected=function(){return this._row.table.modules.selectRow.isRowSelected(this._row)},RowComponent.prototype._getSelf=function(){return this._row},RowComponent.prototype.validate=function(){return this._row.validate()},RowComponent.prototype.freeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.freezeRow(this._row)},RowComponent.prototype.unfreeze=function(){this._row.table.modExists("frozenRows",!0)&&this._row.table.modules.frozenRows.unfreezeRow(this._row)},RowComponent.prototype.isFrozen=function(){if(this._row.table.modExists("frozenRows",!0)){return this._row.table.modules.frozenRows.rows.indexOf(this._row)>-1}return!1},RowComponent.prototype.treeCollapse=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.collapseRow(this._row)},RowComponent.prototype.treeExpand=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.expandRow(this._row)},RowComponent.prototype.treeToggle=function(){this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.toggleRow(this._row)},RowComponent.prototype.getTreeParent=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeParent(this._row)},RowComponent.prototype.getTreeChildren=function(){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.getTreeChildren(this._row)},RowComponent.prototype.addTreeChild=function(t,e,o){return!!this._row.table.modExists("dataTree",!0)&&this._row.table.modules.dataTree.addTreeChildRow(this._row,t,e,o)},RowComponent.prototype.reformat=function(){return this._row.reinitialize()},RowComponent.prototype.getGroup=function(){return this._row.getGroup().getComponent()},RowComponent.prototype.getTable=function(){return this._row.table},RowComponent.prototype.getNextRow=function(){var t=this._row.nextRow();return t?t.getComponent():t},RowComponent.prototype.getPrevRow=function(){var t=this._row.prevRow();return t?t.getComponent():t};var Row=function(t,e){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"row";this.table=e.table,this.parent=e,this.data={},this.type=o,this.element=this.createElement(),this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.component=null,this.setData(t),this.generateElement()};Row.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-row"),t.setAttribute("role","row"),t},Row.prototype.getElement=function(){return this.element},Row.prototype.detachElement=function(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},Row.prototype.generateElement=function(){var t,e,o,i=this;!1!==i.table.options.selectable&&i.table.modExists("selectRow")&&i.table.modules.selectRow.initializeRow(this),!1!==i.table.options.movableRows&&i.table.modExists("moveRow")&&i.table.modules.moveRow.initializeRow(this),!1!==i.table.options.dataTree&&i.table.modExists("dataTree")&&i.table.modules.dataTree.initializeRow(this),"collapse"===i.table.options.responsiveLayout&&i.table.modExists("responsiveLayout")&&i.table.modules.responsiveLayout.initializeRow(this),i.table.options.rowContextMenu&&this.table.modExists("menu")&&i.table.modules.menu.initializeRow(this),i.table.options.rowClick&&i.element.addEventListener("click",function(t){i.table.options.rowClick(t,i.getComponent())}),i.table.options.rowDblClick&&i.element.addEventListener("dblclick",function(t){i.table.options.rowDblClick(t,i.getComponent())}),i.table.options.rowContext&&i.element.addEventListener("contextmenu",function(t){i.table.options.rowContext(t,i.getComponent())}),i.table.options.rowMouseEnter&&i.element.addEventListener("mouseenter",function(t){i.table.options.rowMouseEnter(t,i.getComponent())}),i.table.options.rowMouseLeave&&i.element.addEventListener("mouseleave",function(t){i.table.options.rowMouseLeave(t,i.getComponent())}),i.table.options.rowMouseOver&&i.element.addEventListener("mouseover",function(t){i.table.options.rowMouseOver(t,i.getComponent())}),i.table.options.rowMouseOut&&i.element.addEventListener("mouseout",function(t){i.table.options.rowMouseOut(t,i.getComponent())}),i.table.options.rowMouseMove&&i.element.addEventListener("mousemove",function(t){i.table.options.rowMouseMove(t,i.getComponent())}),i.table.options.rowTap&&(o=!1,i.element.addEventListener("touchstart",function(t){o=!0},{passive:!0}),i.element.addEventListener("touchend",function(t){o&&i.table.options.rowTap(t,i.getComponent()),o=!1})),i.table.options.rowDblTap&&(t=null,i.element.addEventListener("touchend",function(e){t?(clearTimeout(t),t=null,i.table.options.rowDblTap(e,i.getComponent())):t=setTimeout(function(){clearTimeout(t),t=null},300)})),i.table.options.rowTapHold&&(e=null,i.element.addEventListener("touchstart",function(t){clearTimeout(e),e=setTimeout(function(){clearTimeout(e),e=null,o=!1,i.table.options.rowTapHold(t,i.getComponent())},1e3)},{passive:!0}),i.element.addEventListener("touchend",function(t){clearTimeout(e),e=null}))},Row.prototype.generateCells=function(){this.cells=this.table.columnManager.generateCells(this)},Row.prototype.initialize=function(t){var e=this;if(!e.initialized||t){for(e.deleteCells();e.element.firstChild;)e.element.removeChild(e.element.firstChild);this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutRow(this),this.generateCells(),e.cells.forEach(function(t){e.element.appendChild(t.getElement()),t.cellRendered()}),t&&e.normalizeHeight(),e.table.options.dataTree&&e.table.modExists("dataTree")&&e.table.modules.dataTree.layoutRow(this),"collapse"===e.table.options.responsiveLayout&&e.table.modExists("responsiveLayout")&&e.table.modules.responsiveLayout.layoutRow(this),e.table.options.rowFormatter&&e.table.options.rowFormatter(e.getComponent()),e.table.options.resizableRows&&e.table.modExists("resizeRows")&&e.table.modules.resizeRows.initializeRow(e),e.initialized=!0}},Row.prototype.reinitializeHeight=function(){this.heightInitialized=!1,null!==this.element.offsetParent&&this.normalizeHeight(!0)},Row.prototype.reinitialize=function(){this.initialized=!1,this.heightInitialized=!1,this.manualHeight||(this.height=0,this.heightStyled=""),null!==this.element.offsetParent&&this.initialize(!0)},Row.prototype.calcHeight=function(t){var e=0,o=this.table.options.resizableRows?this.element.clientHeight:0;this.cells.forEach(function(t){var o=t.getHeight();o>e&&(e=o)}),this.height=t?Math.max(e,o):this.manualHeight?this.height:Math.max(e,o),this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight},Row.prototype.setCellHeight=function(){this.cells.forEach(function(t){t.setHeight()}),this.heightInitialized=!0},Row.prototype.clearCellHeight=function(){this.cells.forEach(function(t){t.clearHeight()})},Row.prototype.normalizeHeight=function(t){t&&this.clearCellHeight(),this.calcHeight(t),this.setCellHeight()},Row.prototype.setHeight=function(t,e){(this.height!=t||e)&&(this.manualHeight=!0,this.height=t,this.heightStyled=t?t+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight)},Row.prototype.getHeight=function(){return this.outerHeight},Row.prototype.getWidth=function(){return this.element.offsetWidth},Row.prototype.deleteCell=function(t){var e=this.cells.indexOf(t);e>-1&&this.cells.splice(e,1)},Row.prototype.setData=function(t){this.table.modExists("mutator")&&(t=this.table.modules.mutator.transformRow(t,"data")),this.data=t,this.table.options.reactiveData&&this.table.modExists("reactiveData",!0)&&this.table.modules.reactiveData.watchRow(this)},Row.prototype.updateData=function(t){var e,o=this,i=Tabulator.prototype.helpers.elVisible(this.element),n={};return new Promise(function(l,s){"string"==typeof t&&(t=JSON.parse(t)),o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.block(),o.table.modExists("mutator")?(n=Object.assign(n,o.data),n=Object.assign(n,t),e=o.table.modules.mutator.transformRow(n,"data",t)):e=t;for(var a in e)o.data[a]=e[a];o.table.options.reactiveData&&o.table.modExists("reactiveData",!0)&&o.table.modules.reactiveData.unblock();for(var a in t){o.table.columnManager.getColumnsByFieldRoot(a).forEach(function(t){var n=o.getCell(t.getField());if(n){var l=t.getFieldValue(e);n.getValue()!=l&&(n.setValueProcessData(l),i&&n.cellRendered())}})}i?(o.normalizeHeight(!0),o.table.options.rowFormatter&&o.table.options.rowFormatter(o.getComponent())):(o.initialized=!1,o.height=0,o.heightStyled=""),!1!==o.table.options.dataTree&&o.table.modExists("dataTree")&&o.table.modules.dataTree.redrawNeeded(t)&&(o.table.modules.dataTree.initializeRow(o),o.table.modules.dataTree.layoutRow(o),o.table.rowManager.refreshActiveData("tree",!1,!0)),o.table.options.rowUpdated.call(o.table,o.getComponent()),l()})},Row.prototype.getData=function(t){var e=this;return t?e.table.modExists("accessor")?e.table.modules.accessor.transformRow(e.data,t):void 0:this.data},Row.prototype.getCell=function(t){return t=this.table.columnManager.findColumn(t),this.cells.find(function(e){return e.column===t})},Row.prototype.getCellIndex=function(t){return this.cells.findIndex(function(e){return e===t})},Row.prototype.findNextEditableCell=function(t){var e=!1;if(t<this.cells.length-1)for(var o=t+1;o<this.cells.length;o++){var i=this.cells[o];if(i.column.modules.edit&&Tabulator.prototype.helpers.elVisible(i.getElement())){var n=!0;if("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n){e=i;break}}}return e},Row.prototype.findPrevEditableCell=function(t){var e=!1;if(t>0)for(var o=t-1;o>=0;o--){var i=this.cells[o],n=!0;if(i.column.modules.edit&&Tabulator.prototype.helpers.elVisible(i.getElement())&&("function"==typeof i.column.modules.edit.check&&(n=i.column.modules.edit.check(i.getComponent())),n)){e=i;break}}return e},Row.prototype.getCells=function(){return this.cells},Row.prototype.nextRow=function(){return this.table.rowManager.nextDisplayRow(this,!0)||!1},Row.prototype.prevRow=function(){return this.table.rowManager.prevDisplayRow(this,!0)||!1},Row.prototype.moveToRow=function(t,e){var o=this.table.rowManager.findRow(t);o?(this.table.rowManager.moveRowActual(this,o,!e),this.table.rowManager.refreshActiveData("display",!1,!0)):console.warn("Move Error - No matching row found:",t)},Row.prototype.validate=function(){var t=[];return this.cells.forEach(function(e){e.validate()||t.push(e.getComponent())}),!t.length||t},Row.prototype.delete=function(){var t=this;return new Promise(function(e,o){var i,n;t.table.options.history&&t.table.modExists("history")&&(t.table.options.groupBy&&t.table.modExists("groupRows")?(n=t.getGroup().rows,(i=n.indexOf(t))&&(i=n[i-1])):(i=t.table.rowManager.getRowIndex(t))&&(i=t.table.rowManager.rows[i-1]),t.table.modules.history.action("rowDelete",t,{data:t.getData(),pos:!i,index:i})),t.deleteActual(),e()})},Row.prototype.deleteActual=function(t){this.table.rowManager.getRowIndex(this);this.table.modExists("selectRow")&&this.table.modules.selectRow._deselectRow(this,!0),this.table.modExists("edit")&&this.table.modules.edit.currentCell.row===this&&this.table.modules.edit.cancelEdit(),this.table.options.reactiveData&&this.table.modExists("reactiveData",!0),this.modules.group&&this.modules.group.removeRow(this),this.table.rowManager.deleteRow(this,t),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.table.options.dataTree&&this.table.modExists("dataTree",!0)&&this.table.modules.dataTree.rowDelete(this),this.table.modExists("columnCalcs")&&(this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.columnCalcs.recalcRowGroup(this):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows))},Row.prototype.deleteCells=function(){for(var t=this.cells.length,e=0;e<t;e++)this.cells[0].delete()},Row.prototype.wipe=function(){for(this.deleteCells();this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element=!1,this.modules={},this.element.parentNode&&this.element.parentNode.removeChild(this.element)},Row.prototype.getGroup=function(){return this.modules.group||!1},Row.prototype.getComponent=function(){return this.component||(this.component=new RowComponent(this)),this.component};var CellComponent=function(t){this._cell=t};CellComponent.prototype.getValue=function(){return this._cell.getValue()},CellComponent.prototype.getOldValue=function(){return this._cell.getOldValue()},CellComponent.prototype.getElement=function(){return this._cell.getElement()},CellComponent.prototype.getRow=function(){return this._cell.row.getComponent()},CellComponent.prototype.getData=function(){return this._cell.row.getData()},CellComponent.prototype.getField=function(){return this._cell.column.getField()},CellComponent.prototype.getColumn=function(){return this._cell.column.getComponent()},CellComponent.prototype.setValue=function(t,e){void 0===e&&(e=!0),this._cell.setValue(t,e)},CellComponent.prototype.restoreOldValue=function(){this._cell.setValueActual(this._cell.getOldValue())},CellComponent.prototype.edit=function(t){return this._cell.edit(t)},CellComponent.prototype.cancelEdit=function(){this._cell.cancelEdit()},CellComponent.prototype.isEdited=function(){return!!this._cell.modules.edit&&this._cell.modules.edit.edited},CellComponent.prototype.clearEdited=function(){self.table.modExists("edit",!0)&&this._cell.table.modules.edit.clearEdited(this._cell)},CellComponent.prototype.isValid=function(){return!this._cell.modules.validate||!this._cell.modules.validate.invalid},CellComponent.prototype.validate=function(){return this._cell.validate()},CellComponent.prototype.clearValidation=function(){self.table.modExists("validate",!0)&&this._cell.table.modules.validate.clearValidation(this._cell)},CellComponent.prototype.nav=function(){return this._cell.nav()},CellComponent.prototype.checkHeight=function(){this._cell.checkHeight()},CellComponent.prototype.getTable=function(){return this._cell.table},CellComponent.prototype._getSelf=function(){return this._cell};var Cell=function(t,e){this.table=t.table,this.column=t,this.row=e,this.element=null,this.value=null,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.component=null,this.build()};Cell.prototype.build=function(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data))},Cell.prototype.generateElement=function(){this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.element=this.element},Cell.prototype._configureCell=function(){var t=this,e=t.column.cellEvents,o=t.element,i=this.column.getField(),n={top:"flex-start",bottom:"flex-end",middle:"center"},l={left:"flex-start",right:"flex-end",center:"center"};if(o.style.textAlign=t.column.hozAlign,t.column.vertAlign&&(o.style.display="inline-flex",o.style.alignItems=n[t.column.vertAlign]||"",t.column.hozAlign&&(o.style.justifyContent=l[t.column.hozAlign]||"")),i&&o.setAttribute("tabulator-field",i),t.column.definition.cssClass){t.column.definition.cssClass.split(" ").forEach(function(t){o.classList.add(t)})}"hover"===this.table.options.tooltipGenerationMode&&o.addEventListener("mouseenter",function(e){t._generateTooltip()}),t._bindClickEvents(e),t._bindTouchEvents(e),t._bindMouseEvents(e),t.column.modules.edit&&t.table.modules.edit.bindEditor(t),t.column.definition.rowHandle&&!1!==t.table.options.movableRows&&t.table.modExists("moveRow")&&t.table.modules.moveRow.initializeCell(t),t.column.visible||t.hide()},Cell.prototype._bindClickEvents=function(t){var e=this,o=e.element;(t.cellClick||e.table.options.cellClick)&&o.addEventListener("click",function(o){var i=e.getComponent();t.cellClick&&t.cellClick.call(e.table,o,i),e.table.options.cellClick&&e.table.options.cellClick.call(e.table,o,i)}),t.cellDblClick||this.table.options.cellDblClick?o.addEventListener("dblclick",function(o){var i=e.getComponent();t.cellDblClick&&t.cellDblClick.call(e.table,o,i),e.table.options.cellDblClick&&e.table.options.cellDblClick.call(e.table,o,i)}):o.addEventListener("dblclick",function(t){if(!e.table.modExists("edit")||e.table.modules.edit.currentCell!==e){t.preventDefault();try{if(document.selection){var o=document.body.createTextRange();o.moveToElementText(e.element),o.select()}else if(window.getSelection){var o=document.createRange();o.selectNode(e.element),window.getSelection().removeAllRanges(),window.getSelection().addRange(o)}}catch(t){}}}),(t.cellContext||this.table.options.cellContext)&&o.addEventListener("contextmenu",function(o){var i=e.getComponent();t.cellContext&&t.cellContext.call(e.table,o,i),e.table.options.cellContext&&e.table.options.cellContext.call(e.table,o,i)})},Cell.prototype._bindMouseEvents=function(t){var e=this,o=e.element;(t.cellMouseEnter||e.table.options.cellMouseEnter)&&o.addEventListener("mouseenter",function(o){var i=e.getComponent();t.cellMouseEnter&&t.cellMouseEnter.call(e.table,o,i),e.table.options.cellMouseEnter&&e.table.options.cellMouseEnter.call(e.table,o,i)}),(t.cellMouseLeave||e.table.options.cellMouseLeave)&&o.addEventListener("mouseleave",function(o){var i=e.getComponent();t.cellMouseLeave&&t.cellMouseLeave.call(e.table,o,i),e.table.options.cellMouseLeave&&e.table.options.cellMouseLeave.call(e.table,o,i)}),(t.cellMouseOver||e.table.options.cellMouseOver)&&o.addEventListener("mouseover",function(o){var i=e.getComponent();t.cellMouseOver&&t.cellMouseOver.call(e.table,o,i),e.table.options.cellMouseOver&&e.table.options.cellMouseOver.call(e.table,o,i)}),(t.cellMouseOut||e.table.options.cellMouseOut)&&o.addEventListener("mouseout",function(o){var i=e.getComponent();t.cellMouseOut&&t.cellMouseOut.call(e.table,o,i),e.table.options.cellMouseOut&&e.table.options.cellMouseOut.call(e.table,o,i)}),(t.cellMouseMove||e.table.options.cellMouseMove)&&o.addEventListener("mousemove",function(o){var i=e.getComponent();t.cellMouseMove&&t.cellMouseMove.call(e.table,o,i),e.table.options.cellMouseMove&&e.table.options.cellMouseMove.call(e.table,o,i)})},Cell.prototype._bindTouchEvents=function(t){var e,o,i,n=this,l=n.element;(t.cellTap||this.table.options.cellTap)&&(i=!1,l.addEventListener("touchstart",function(t){i=!0},{passive:!0}),l.addEventListener("touchend",function(e){if(i){var o=n.getComponent();t.cellTap&&t.cellTap.call(n.table,e,o),n.table.options.cellTap&&n.table.options.cellTap.call(n.table,e,o)}i=!1})),(t.cellDblTap||this.table.options.cellDblTap)&&(e=null,l.addEventListener("touchend",function(o){if(e){clearTimeout(e),e=null;var i=n.getComponent();t.cellDblTap&&t.cellDblTap.call(n.table,o,i),n.table.options.cellDblTap&&n.table.options.cellDblTap.call(n.table,o,i)}else e=setTimeout(function(){clearTimeout(e),e=null},300)})),(t.cellTapHold||this.table.options.cellTapHold)&&(o=null,l.addEventListener("touchstart",function(e){clearTimeout(o),o=setTimeout(function(){clearTimeout(o),o=null,i=!1;var l=n.getComponent();t.cellTapHold&&t.cellTapHold.call(n.table,e,l),n.table.options.cellTapHold&&n.table.options.cellTapHold.call(n.table,e,l)},1e3)},{passive:!0}),l.addEventListener("touchend",function(t){clearTimeout(o),o=null}))},Cell.prototype._generateContents=function(){var t;switch(t=this.table.modExists("format")?this.table.modules.format.formatValue(this):this.element.innerHTML=this.value,void 0===t?"undefined":_typeof(t)){case"object":if(t instanceof Node){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.appendChild(t)}else this.element.innerHTML="",null!=t&&console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",t);break;case"undefined":case"null":this.element.innerHTML="";break;default:this.element.innerHTML=t}},Cell.prototype.cellRendered=function(){this.table.modExists("format")&&this.table.modules.format.cellRendered&&this.table.modules.format.cellRendered(this)},Cell.prototype._generateTooltip=function(){var t=this.column.tooltip;t?(!0===t?t=this.value:"function"==typeof t&&!1===(t=t(this.getComponent()))&&(t=""),void 0===t&&(t=""),this.element.setAttribute("title",t)):this.element.setAttribute("title","")},Cell.prototype.getElement=function(){return this.element},Cell.prototype.getValue=function(){return this.value},Cell.prototype.getOldValue=function(){return this.oldValue},Cell.prototype.setValue=function(t,e){var o,i=this.setValueProcessData(t,e);i&&(this.table.options.history&&this.table.modExists("history")&&this.table.modules.history.action("cellEdit",this,{oldValue:this.oldValue,newValue:this.value}),o=this.getComponent(),this.column.cellEvents.cellEdited&&this.column.cellEvents.cellEdited.call(this.table,o),this.cellRendered(),this.table.options.cellEdited.call(this.table,o),this.table.options.dataEdited.call(this.table,this.table.rowManager.getData()))},Cell.prototype.setValueProcessData=function(t,e){var o=!1;return this.value!=t&&(o=!0,e&&this.column.modules.mutate&&(t=this.table.modules.mutator.transformCell(this,t))),this.setValueActual(t),o&&this.table.modExists("columnCalcs")&&(this.column.definition.topCalc||this.column.definition.bottomCalc)&&(this.table.options.groupBy&&this.table.modExists("groupRows")?("table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs||this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows),"table"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.recalcRowGroup(this.row)):this.table.modules.columnCalcs.recalc(this.table.rowManager.activeRows)),o},Cell.prototype.setValueActual=function(t){this.oldValue=this.value,this.value=t,this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.block(),this.column.setFieldValue(this.row.data,t),this.table.options.reactiveData&&this.table.modExists("reactiveData")&&this.table.modules.reactiveData.unblock(),this._generateContents(),this._generateTooltip(),this.table.options.resizableColumns&&this.table.modExists("resizeColumns")&&this.table.modules.resizeColumns.initializeColumn("cell",this.column,this.element),this.column.definition.contextMenu&&this.table.modExists("menu")&&this.table.modules.menu.initializeCell(this),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layoutElement(this.element,this.column)},Cell.prototype.setWidth=function(){this.width=this.column.width,this.element.style.width=this.column.widthStyled},Cell.prototype.clearWidth=function(){this.width="",this.element.style.width=""},Cell.prototype.getWidth=function(){return this.width||this.element.offsetWidth},Cell.prototype.setMinWidth=function(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled},Cell.prototype.checkHeight=function(){this.row.reinitializeHeight()},Cell.prototype.clearHeight=function(){this.element.style.height="",this.height=null},Cell.prototype.setHeight=function(){this.height=this.row.height,this.element.style.height=this.row.heightStyled},Cell.prototype.getHeight=function(){return this.height||this.element.offsetHeight},Cell.prototype.show=function(){this.element.style.display=""},Cell.prototype.hide=function(){this.element.style.display="none"},Cell.prototype.edit=function(t){if(this.table.modExists("edit",!0))return this.table.modules.edit.editCell(this,t)},Cell.prototype.cancelEdit=function(){if(this.table.modExists("edit",!0)){var t=this.table.modules.edit.getCurrentCell();t&&t._getSelf()===this?this.table.modules.edit.cancelEdit():console.warn("Cancel Editor Error - This cell is not currently being edited ")}},Cell.prototype.validate=function(){if(this.column.modules.validate&&this.table.modExists("validate",!0)){return!0===this.table.modules.validate.validate(this.column.modules.validate,this,this.getValue())}return!0},Cell.prototype.delete=function(){this.table.rowManager.redrawBlock||this.element.parentNode.removeChild(this.element),this.modules.validate&&this.modules.validate.invalid&&this.table.modules.validate.clearValidation(this),this.modules.edit&&this.modules.edit.edited&&this.table.modules.edit.clearEdited(this),this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}},Cell.prototype.nav=function(){var t=this,e=!1,o=this.row.getCellIndex(this);return{next:function(){var e,o=this.right();return!!o||!(!(e=t.table.rowManager.nextDisplayRow(t.row,!0))||!(o=e.findNextEditableCell(-1)))&&(o.edit(),!0)},prev:function(){var e,o=this.left();return!!o||!(!(e=t.table.rowManager.prevDisplayRow(t.row,!0))||!(o=e.findPrevEditableCell(e.cells.length)))&&(o.edit(),!0)},left:function(){return!!(e=t.row.findPrevEditableCell(o))&&(e.edit(),!0)},right:function(){return!!(e=t.row.findNextEditableCell(o))&&(e.edit(),!0)},up:function(){var e=t.table.rowManager.prevDisplayRow(t.row,!0);e&&e.cells[o].edit()},down:function(){var e=t.table.rowManager.nextDisplayRow(t.row,!0);e&&e.cells[o].edit()}}},Cell.prototype.getIndex=function(){this.row.getCellIndex(this)},Cell.prototype.getComponent=function(){return this.component||(this.component=new CellComponent(this)),this.component};var FooterManager=function(t){this.table=t,this.active=!1,this.element=this.createElement(),this.external=!1,this.links=[],this._initialize()};FooterManager.prototype.createElement=function(){var t=document.createElement("div");return t.classList.add("tabulator-footer"),t},FooterManager.prototype._initialize=function(t){if(this.table.options.footerElement)switch(_typeof(this.table.options.footerElement)){case"string":"<"===this.table.options.footerElement[0]?this.element.innerHTML=this.table.options.footerElement:(this.external=!0,this.element=document.querySelector(this.table.options.footerElement));break;default:this.element=this.table.options.footerElement}},FooterManager.prototype.getElement=function(){return this.element},FooterManager.prototype.append=function(t,e){this.activate(e),this.element.appendChild(t),this.table.rowManager.adjustTableSize()},FooterManager.prototype.prepend=function(t,e){this.activate(e),this.element.insertBefore(t,this.element.firstChild),this.table.rowManager.adjustTableSize()},FooterManager.prototype.remove=function(t){t.parentNode.removeChild(t),this.deactivate()},FooterManager.prototype.deactivate=function(t){this.element.firstChild&&!t||(this.external||this.element.parentNode.removeChild(this.element),this.active=!1)},FooterManager.prototype.activate=function(t){this.active||(this.active=!0,this.external||(this.table.element.appendChild(this.getElement()),this.table.element.style.display="")),t&&this.links.push(t)},FooterManager.prototype.redraw=function(){this.links.forEach(function(t){t.footerRedraw()})};var Tabulator=function t(e,o){this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.modules={},this.initializeElement(e),this.initializeOptions(o||{}),this._create(),t.prototype.comms.register(this)};Tabulator.prototype.defaultOptions={height:!1,minHeight:!1,maxHeight:!1,layout:"fitData",layoutColumnsOnNewData:!1,columnMinWidth:40,columnHeaderVertAlign:"top",columnVertAlign:!1,resizableColumns:!0,resizableRows:!1,autoResize:!0,columns:[],cellHozAlign:"",cellVertAlign:"",data:[],autoColumns:!1,reactiveData:!1,nestedFieldSeparator:".",tooltips:!1,tooltipsHeader:!1,tooltipGenerationMode:"load",initialSort:!1,initialFilter:!1,initialHeaderFilter:!1,columnHeaderSortMulti:!0,sortOrderReverse:!1,headerSort:!0,headerSortTristate:!1,footerElement:!1,index:"id",keybindings:[],tabEndNewRow:!1,invalidOptionWarnings:!0,clipboard:!1,clipboardCopyStyled:!0,clipboardCopyConfig:!1,clipboardCopyFormatter:!1,clipboardCopyRowRange:"active",clipboardPasteParser:"table",clipboardPasteAction:"insert",clipboardCopied:function(){},clipboardPasted:function(){},clipboardPasteError:function(){},downloadDataFormatter:!1,downloadReady:function(t,e){return e},downloadComplete:!1,downloadConfig:{},downloadRowRange:"active",dataTree:!1,dataTreeElementColumn:!1,dataTreeBranchElement:!0,dataTreeChildIndent:9,dataTreeChildField:"_children",dataTreeCollapseElement:!1,dataTreeExpandElement:!1,dataTreeStartExpanded:!1,dataTreeRowExpanded:function(){},dataTreeRowCollapsed:function(){},dataTreeChildColumnCalcs:!1,dataTreeSelectPropagate:!1,printAsHtml:!1,printFormatter:!1,printHeader:!1,printFooter:!1,printCopyStyle:!0,printStyled:!0,printVisibleRows:!0,printRowRange:"visible",printConfig:{},addRowPos:"bottom",selectable:"highlight",selectableRangeMode:"drag",selectableRollingSelection:!0,selectablePersistence:!0,selectableCheck:function(t,e){return!0},headerFilterLiveFilterDelay:300,headerFilterPlaceholder:!1,headerVisible:!0,history:!1,locale:!1,langs:{},virtualDom:!0,virtualDomBuffer:0,persistentLayout:!1,persistentSort:!1,persistentFilter:!1,persistenceID:"",persistenceMode:!0,persistenceReaderFunc:!1,persistenceWriterFunc:!1,persistence:!1,responsiveLayout:!1,responsiveLayoutCollapseStartOpen:!0,responsiveLayoutCollapseUseFormatters:!0,responsiveLayoutCollapseFormatter:!1,pagination:!1,paginationSize:!1,paginationInitialPage:1,paginationButtonCount:5,paginationSizeSelector:!1,paginationElement:!1,paginationDataSent:{},paginationDataReceived:{},paginationAddRow:"page",ajaxURL:!1,ajaxURLGenerator:!1,ajaxParams:{},ajaxConfig:"get",ajaxContentType:"form",ajaxRequestFunc:!1,ajaxLoader:!0,ajaxLoaderLoading:!1,ajaxLoaderError:!1,ajaxFiltering:!1,ajaxSorting:!1,ajaxProgressiveLoad:!1,ajaxProgressiveLoadDelay:0,ajaxProgressiveLoadScrollMargin:0,groupBy:!1,groupStartOpen:!0,groupValues:!1,groupHeader:!1,groupHeaderPrint:null,
-groupHeaderClipboard:null,groupHeaderHtmlOutput:null,groupHeaderDownload:null,htmlOutputConfig:!1,movableColumns:!1,movableRows:!1,movableRowsConnectedTables:!1,movableRowsConnectedElements:!1,movableRowsSender:!1,movableRowsReceiver:"insert",movableRowsSendingStart:function(){},movableRowsSent:function(){},movableRowsSentFailed:function(){},movableRowsSendingStop:function(){},movableRowsReceivingStart:function(){},movableRowsReceived:function(){},movableRowsReceivedFailed:function(){},movableRowsReceivingStop:function(){},movableRowsElementDrop:function(){},scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,placeholder:!1,tableBuilding:function(){},tableBuilt:function(){},renderStarted:function(){},renderComplete:function(){},rowClick:!1,rowDblClick:!1,rowContext:!1,rowTap:!1,rowDblTap:!1,rowTapHold:!1,rowMouseEnter:!1,rowMouseLeave:!1,rowMouseOver:!1,rowMouseOut:!1,rowMouseMove:!1,rowContextMenu:!1,rowAdded:function(){},rowDeleted:function(){},rowMoved:function(){},rowUpdated:function(){},rowSelectionChanged:function(){},rowSelected:function(){},rowDeselected:function(){},rowResized:function(){},cellClick:!1,cellDblClick:!1,cellContext:!1,cellTap:!1,cellDblTap:!1,cellTapHold:!1,cellMouseEnter:!1,cellMouseLeave:!1,cellMouseOver:!1,cellMouseOut:!1,cellMouseMove:!1,cellEditing:function(){},cellEdited:function(){},cellEditCancelled:function(){},columnMoved:!1,columnResized:function(){},columnTitleChanged:function(){},columnVisibilityChanged:function(){},htmlImporting:function(){},htmlImported:function(){},dataLoading:function(){},dataLoaded:function(){},dataEdited:function(){},ajaxRequesting:function(){},ajaxResponse:!1,ajaxError:function(){},dataFiltering:!1,dataFiltered:!1,dataSorting:function(){},dataSorted:function(){},groupToggleElement:"arrow",groupClosedShowCalcs:!1,dataGrouping:function(){},dataGrouped:!1,groupVisibilityChanged:function(){},groupClick:!1,groupDblClick:!1,groupContext:!1,groupContextMenu:!1,groupTap:!1,groupDblTap:!1,groupTapHold:!1,columnCalcs:!0,pageLoaded:function(){},localized:function(){},validationMode:"blocking",validationFailed:function(){},historyUndo:function(){},historyRedo:function(){},scrollHorizontal:function(){},scrollVertical:function(){}},Tabulator.prototype.initializeOptions=function(t){if(!1!==t.invalidOptionWarnings)for(var e in t)void 0===this.defaultOptions[e]&&console.warn("Invalid table constructor option:",e);for(var e in this.defaultOptions)e in t?this.options[e]=t[e]:Array.isArray(this.defaultOptions[e])?this.options[e]=[]:"object"===_typeof(this.defaultOptions[e])&&null!==this.defaultOptions[e]?this.options[e]={}:this.options[e]=this.defaultOptions[e]},Tabulator.prototype.initializeElement=function(t){return"undefined"!=typeof HTMLElement&&t instanceof HTMLElement?(this.element=t,!0):"string"==typeof t?(this.element=document.querySelector(t),!!this.element||(console.error("Tabulator Creation Error - no element found matching selector: ",t),!1)):(console.error("Tabulator Creation Error - Invalid element provided:",t),!1)},Tabulator.prototype._mapDepricatedFunctionality=function(){(this.options.persistentLayout||this.options.persistentSort||this.options.persistentFilter)&&(this.options.persistence||(this.options.persistence={})),this.options.downloadDataFormatter&&console.warn("DEPRECATION WARNING - downloadDataFormatter option has been deprecated"),void 0!==this.options.clipboardCopyHeader&&(this.options.columnHeaders=this.options.clipboardCopyHeader,console.warn("DEPRECATION WARNING - clipboardCopyHeader option has been deprecated, please use the columnHeaders property on the clipboardCopyConfig option")),!0!==this.options.printVisibleRows&&(console.warn("printVisibleRows option is deprecated, you should now use the printRowRange option"),this.options.persistence.printRowRange="active"),!0!==this.options.printCopyStyle&&(console.warn("printCopyStyle option is deprecated, you should now use the printStyled option"),this.options.persistence.printStyled=this.options.printCopyStyle),this.options.persistentLayout&&(console.warn("persistentLayout option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.columns&&(this.options.persistence.columns=!0)),this.options.persistentSort&&(console.warn("persistentSort option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.sort&&(this.options.persistence.sort=!0)),this.options.persistentFilter&&(console.warn("persistentFilter option is deprecated, you should now use the persistence option"),!0!==this.options.persistence&&void 0===this.options.persistence.filter&&(this.options.persistence.filter=!0)),this.options.columnVertAlign&&(console.warn("columnVertAlign option is deprecated, you should now use the columnHeaderVertAlign option"),this.options.columnHeaderVertAlign=this.options.columnVertAlign)},Tabulator.prototype._clearSelection=function(){this.element.classList.add("tabulator-block-select"),window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty(),this.element.classList.remove("tabulator-block-select")},Tabulator.prototype._create=function(){this._clearObjectPointers(),this._mapDepricatedFunctionality(),this.bindModules(),"TABLE"===this.element.tagName&&this.modExists("htmlTableImport",!0)&&this.modules.htmlTableImport.parseTable(),this.columnManager=new ColumnManager(this),this.rowManager=new RowManager(this),this.footerManager=new FooterManager(this),this.columnManager.setRowManager(this.rowManager),this.rowManager.setColumnManager(this.columnManager),this._buildElement(),this._loadInitialData()},Tabulator.prototype._clearObjectPointers=function(){this.options.columns=this.options.columns.slice(0),this.options.reactiveData||(this.options.data=this.options.data.slice(0))},Tabulator.prototype._buildElement=function(){var t=this,e=this.element,o=this.modules,i=this.options;for(i.tableBuilding.call(this),e.classList.add("tabulator"),e.setAttribute("role","grid");e.firstChild;)e.removeChild(e.firstChild);i.height&&(i.height=isNaN(i.height)?i.height:i.height+"px",e.style.height=i.height),!1!==i.minHeight&&(i.minHeight=isNaN(i.minHeight)?i.minHeight:i.minHeight+"px",e.style.minHeight=i.minHeight),!1!==i.maxHeight&&(i.maxHeight=isNaN(i.maxHeight)?i.maxHeight:i.maxHeight+"px",e.style.maxHeight=i.maxHeight),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modExists("layout",!0)&&o.layout.initialize(i.layout),!1!==i.headerFilterPlaceholder&&o.localize.setHeaderFilterPlaceholder(i.headerFilterPlaceholder);for(var n in i.langs)o.localize.installLang(n,i.langs[n]);if(o.localize.setLocale(i.locale),"string"==typeof i.placeholder){var l=document.createElement("div");l.classList.add("tabulator-placeholder");var s=document.createElement("span");s.innerHTML=i.placeholder,l.appendChild(s),i.placeholder=l}if(e.appendChild(this.columnManager.getElement()),e.appendChild(this.rowManager.getElement()),i.footerElement&&this.footerManager.activate(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.initialize(),i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.columns&&(i.columns=o.persistence.load("columns",i.columns)),i.movableRows&&this.modExists("moveRow")&&o.moveRow.initialize(),i.autoColumns&&this.options.data&&this.columnManager.generateColumnsFromRowData(this.options.data),this.modExists("columnCalcs")&&o.columnCalcs.initialize(),this.columnManager.setColumns(i.columns),i.dataTree&&this.modExists("dataTree",!0)&&o.dataTree.initialize(),this.modExists("frozenRows")&&this.modules.frozenRows.initialize(),(i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort||i.initialSort)&&this.modExists("sort",!0)){var a=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.sort?!1===(a=o.persistence.load("sort"))&&i.initialSort&&(a=i.initialSort):i.initialSort&&(a=i.initialSort),o.sort.setSort(a)}if((i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter||i.initialFilter)&&this.modExists("filter",!0)){var r=[];i.persistence&&this.modExists("persistence",!0)&&o.persistence.config.filter?!1===(r=o.persistence.load("filter"))&&i.initialFilter&&(r=i.initialFilter):i.initialFilter&&(r=i.initialFilter),o.filter.setFilter(r)}i.initialHeaderFilter&&this.modExists("filter",!0)&&i.initialHeaderFilter.forEach(function(e){var i=t.columnManager.findColumn(e.field);if(!i)return console.warn("Column Filter Error - No matching column found:",e.field),!1;o.filter.setHeaderFilterValue(i,e.value)}),this.modExists("ajax")&&o.ajax.initialize(),i.pagination&&this.modExists("page",!0)&&o.page.initialize(),i.groupBy&&this.modExists("groupRows",!0)&&o.groupRows.initialize(),this.modExists("keybindings")&&o.keybindings.initialize(),this.modExists("selectRow")&&o.selectRow.clearSelectionData(!0),i.autoResize&&this.modExists("resizeTable")&&o.resizeTable.initialize(),this.modExists("clipboard")&&o.clipboard.initialize(),i.printAsHtml&&this.modExists("print")&&o.print.initialize(),i.tableBuilt.call(this)},Tabulator.prototype._loadInitialData=function(){var t=this;if(t.options.pagination&&t.modExists("page"))if(t.modules.page.reset(!0,!0),"local"==t.options.pagination){if(t.options.data.length)t.rowManager.setData(t.options.data,!1,!0);else{if((t.options.ajaxURL||t.options.ajaxURLGenerator)&&t.modExists("ajax"))return void t.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){t.options.paginationInitialPage&&t.modules.page.setPage(t.options.paginationInitialPage)});t.rowManager.setData(t.options.data,!1,!0)}t.options.paginationInitialPage&&t.modules.page.setPage(t.options.paginationInitialPage)}else t.options.ajaxURL?t.modules.page.setPage(t.options.paginationInitialPage).then(function(){}).catch(function(){}):t.rowManager.setData([],!1,!0);else t.options.data.length?t.rowManager.setData(t.options.data):(t.options.ajaxURL||t.options.ajaxURLGenerator)&&t.modExists("ajax")?t.modules.ajax.loadData(!1,!0).then(function(){}).catch(function(){}):t.rowManager.setData(t.options.data,!1,!0)},Tabulator.prototype.destroy=function(){var t=this.element;for(Tabulator.prototype.comms.deregister(this),this.options.reactiveData&&this.modExists("reactiveData",!0)&&this.modules.reactiveData.unwatchData(),this.rowManager.rows.forEach(function(t){t.wipe()}),this.rowManager.rows=[],this.rowManager.activeRows=[],this.rowManager.displayRows=[],this.options.autoResize&&this.modExists("resizeTable")&&this.modules.resizeTable.clearBindings(),this.modExists("keybindings")&&this.modules.keybindings.clearBindings();t.firstChild;)t.removeChild(t.firstChild);t.classList.remove("tabulator")},Tabulator.prototype._detectBrowser=function(){var t=navigator.userAgent||navigator.vendor||window.opera;t.indexOf("Trident")>-1?(this.browser="ie",this.browserSlow=!0):t.indexOf("Edge")>-1?(this.browser="edge",this.browserSlow=!0):t.indexOf("Firefox")>-1?(this.browser="firefox",this.browserSlow=!1):(this.browser="other",this.browserSlow=!1),this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))},Tabulator.prototype.blockRedraw=function(){return this.rowManager.blockRedraw()},Tabulator.prototype.restoreRedraw=function(){return this.rowManager.restoreRedraw()},Tabulator.prototype.setDataFromLocalFile=function(t){var e=this;return new Promise(function(o,i){var n=document.createElement("input");n.type="file",n.accept=t||".json,application/json",n.addEventListener("change",function(t){var l,s=n.files[0],a=new FileReader;a.readAsText(s),a.onload=function(t){try{l=JSON.parse(a.result)}catch(t){return console.warn("File Load Error - File contents is invalid JSON",t),void i(t)}e._setData(l).then(function(t){o(t)}).catch(function(t){o(t)})},a.onerror=function(t){console.warn("File Load Error - Unable to read file"),i()}}),n.click()})},Tabulator.prototype.setData=function(t,e,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(t,e,o,!1,!0)},Tabulator.prototype._setData=function(t,e,o,i,n){var l=this;return"string"!=typeof t?t?l.rowManager.setData(t,i,n):l.modExists("ajax")&&(l.modules.ajax.getUrl||l.options.ajaxURLGenerator)?"remote"==l.options.pagination&&l.modExists("page",!0)?(l.modules.page.reset(!0,!0),l.modules.page.setPage(1)):l.modules.ajax.loadData(i,n):l.rowManager.setData([],i,n):0==t.indexOf("{")||0==t.indexOf("[")?l.rowManager.setData(JSON.parse(t),i,n):l.modExists("ajax",!0)?(e&&l.modules.ajax.setParams(e),o&&l.modules.ajax.setConfig(o),l.modules.ajax.setUrl(t),"remote"==l.options.pagination&&l.modExists("page",!0)?(l.modules.page.reset(!0,!0),l.modules.page.setPage(1)):l.modules.ajax.loadData(i,n)):void 0},Tabulator.prototype.clearData=function(){this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this.rowManager.clearData()},Tabulator.prototype.getData=function(t){return!0===t&&(console.warn("passing a boolean to the getData function is deprecated, you should now pass the string 'active'"),t="active"),this.rowManager.getData(t)},Tabulator.prototype.getDataCount=function(t){return!0===t&&(console.warn("passing a boolean to the getDataCount function is deprecated, you should now pass the string 'active'"),t="active"),this.rowManager.getDataCount(t)},Tabulator.prototype.searchRows=function(t,e,o){if(this.modExists("filter",!0))return this.modules.filter.search("rows",t,e,o)},Tabulator.prototype.searchData=function(t,e,o){if(this.modExists("filter",!0))return this.modules.filter.search("data",t,e,o)},Tabulator.prototype.getHtml=function(t,e,o){if(this.modExists("export",!0))return this.modules.export.getHtml(t,e,o)},Tabulator.prototype.print=function(t,e,o){if(this.modExists("print",!0))return this.modules.print.printFullscreen(t,e,o)},Tabulator.prototype.getAjaxUrl=function(){if(this.modExists("ajax",!0))return this.modules.ajax.getUrl()},Tabulator.prototype.replaceData=function(t,e,o){return this.modExists("ajax")&&this.modules.ajax.blockActiveRequest(),this._setData(t,e,o,!0)},Tabulator.prototype.updateData=function(t){var e=this,o=this,i=0;return new Promise(function(n,l){e.modExists("ajax")&&e.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?t.forEach(function(t){var e=o.rowManager.findRow(t[o.options.index]);e&&(i++,e.updateData(t).then(function(){--i||n()}))}):(console.warn("Update Error - No data provided"),l("Update Error - No data provided"))})},Tabulator.prototype.addData=function(t,e,o){var i=this;return new Promise(function(n,l){i.modExists("ajax")&&i.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?i.rowManager.addRows(t,e,o).then(function(t){var e=[];t.forEach(function(t){e.push(t.getComponent())}),n(e)}):(console.warn("Update Error - No data provided"),l("Update Error - No data provided"))})},Tabulator.prototype.updateOrAddData=function(t){var e=this,o=this,i=[],n=0;return new Promise(function(l,s){e.modExists("ajax")&&e.modules.ajax.blockActiveRequest(),"string"==typeof t&&(t=JSON.parse(t)),t?t.forEach(function(t){var e=o.rowManager.findRow(t[o.options.index]);n++,e?e.updateData(t).then(function(){n--,i.push(e.getComponent()),n||l(i)}):o.rowManager.addRows(t).then(function(t){n--,i.push(t[0].getComponent()),n||l(i)})}):(console.warn("Update Error - No data provided"),s("Update Error - No data provided"))})},Tabulator.prototype.getRow=function(t){var e=this.rowManager.findRow(t);return e?e.getComponent():(console.warn("Find Error - No matching row found:",t),!1)},Tabulator.prototype.getRowFromPosition=function(t,e){var o=this.rowManager.getRowFromPosition(t,e);return o?o.getComponent():(console.warn("Find Error - No matching row found:",t),!1)},Tabulator.prototype.deleteRow=function(t){var e=this;return new Promise(function(o,i){function n(){++s==t.length&&a&&(l.rowManager.reRenderInPosition(),o())}var l=e,s=0,a=0,r=[];Array.isArray(t)||(t=[t]),t.forEach(function(t){var o=e.rowManager.findRow(t,!0);o?r.push(o):(console.warn("Delete Error - No matching row found:",t),i("Delete Error - No matching row found"),n())}),r.sort(function(t,o){return e.rowManager.rows.indexOf(t)>e.rowManager.rows.indexOf(o)?1:-1}),r.forEach(function(t){t.delete().then(function(){a++,n()}).catch(function(t){n(),i(t)})})})},Tabulator.prototype.addRow=function(t,e,o){var i=this;return new Promise(function(n,l){"string"==typeof t&&(t=JSON.parse(t)),i.rowManager.addRows(t,e,o).then(function(t){i.modExists("columnCalcs")&&i.modules.columnCalcs.recalc(i.rowManager.activeRows),n(t[0].getComponent())})})},Tabulator.prototype.updateOrAddRow=function(t,e){var o=this;return new Promise(function(i,n){var l=o.rowManager.findRow(t);"string"==typeof e&&(e=JSON.parse(e)),l?l.updateData(e).then(function(){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(l.getComponent())}).catch(function(t){n(t)}):l=o.rowManager.addRows(e).then(function(t){o.modExists("columnCalcs")&&o.modules.columnCalcs.recalc(o.rowManager.activeRows),i(t[0].getComponent())}).catch(function(t){n(t)})})},Tabulator.prototype.updateRow=function(t,e){var o=this;return new Promise(function(i,n){var l=o.rowManager.findRow(t);"string"==typeof e&&(e=JSON.parse(e)),l?l.updateData(e).then(function(){i(l.getComponent())}).catch(function(t){n(t)}):(console.warn("Update Error - No matching row found:",t),n("Update Error - No matching row found"))})},Tabulator.prototype.scrollToRow=function(t,e,o){var i=this;return new Promise(function(n,l){var s=i.rowManager.findRow(t);s?i.rowManager.scrollToRow(s,e,o).then(function(){n()}).catch(function(t){l(t)}):(console.warn("Scroll Error - No matching row found:",t),l("Scroll Error - No matching row found"))})},Tabulator.prototype.moveRow=function(t,e,o){var i=this.rowManager.findRow(t);i?i.moveToRow(e,o):console.warn("Move Error - No matching row found:",t)},Tabulator.prototype.getRows=function(t){return!0===t&&(console.warn("passing a boolean to the getRows function is deprecated, you should now pass the string 'active'"),t="active"),this.rowManager.getComponents(t)},Tabulator.prototype.getRowPosition=function(t,e){var o=this.rowManager.findRow(t);return o?this.rowManager.getRowPosition(o,e):(console.warn("Position Error - No matching row found:",t),!1)},Tabulator.prototype.copyToClipboard=function(t){this.modExists("clipboard",!0)&&this.modules.clipboard.copy(t)},Tabulator.prototype.setColumns=function(t){this.columnManager.setColumns(t)},Tabulator.prototype.getColumns=function(t){return this.columnManager.getComponents(t)},Tabulator.prototype.getColumn=function(t){var e=this.columnManager.findColumn(t);return e?e.getComponent():(console.warn("Find Error - No matching column found:",t),!1)},Tabulator.prototype.getColumnDefinitions=function(){return this.columnManager.getDefinitionTree()},Tabulator.prototype.getColumnLayout=function(){if(this.modExists("persistence",!0))return this.modules.persistence.parseColumns(this.columnManager.getColumns())},Tabulator.prototype.setColumnLayout=function(t){return!!this.modExists("persistence",!0)&&(this.columnManager.setColumns(this.modules.persistence.mergeDefinition(this.options.columns,t)),!0)},Tabulator.prototype.showColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Show Error - No matching column found:",t),!1;e.show(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},Tabulator.prototype.hideColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Hide Error - No matching column found:",t),!1;e.hide(),this.options.responsiveLayout&&this.modExists("responsiveLayout",!0)&&this.modules.responsiveLayout.update()},Tabulator.prototype.toggleColumn=function(t){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Visibility Toggle Error - No matching column found:",t),!1;e.visible?e.hide():e.show()},Tabulator.prototype.addColumn=function(t,e,o){var i=this;return new Promise(function(n,l){var s=i.columnManager.findColumn(o);i.columnManager.addColumn(t,e,s).then(function(t){n(t.getComponent())}).catch(function(t){l(t)})})},Tabulator.prototype.deleteColumn=function(t){var e=this;return new Promise(function(o,i){var n=e.columnManager.findColumn(t);n?n.delete().then(function(){o()}).catch(function(t){i(t)}):(console.warn("Column Delete Error - No matching column found:",t),i())})},Tabulator.prototype.updateColumnDefinition=function(t,e){var o=this;return new Promise(function(i,n){var l=o.columnManager.findColumn(t);l?l.updateDefinition(e).then(function(t){i(t)}).catch(function(t){n(t)}):(console.warn("Column Update Error - No matching column found:",t),n())})},Tabulator.prototype.moveColumn=function(t,e,o){var i=this.columnManager.findColumn(t),n=this.columnManager.findColumn(e);i?n?this.columnManager.moveColumn(i,n,o):console.warn("Move Error - No matching column found:",n):console.warn("Move Error - No matching column found:",t)},Tabulator.prototype.scrollToColumn=function(t,e,o){var i=this;return new Promise(function(n,l){var s=i.columnManager.findColumn(t);s?i.columnManager.scrollToColumn(s,e,o).then(function(){n()}).catch(function(t){l(t)}):(console.warn("Scroll Error - No matching column found:",t),l("Scroll Error - No matching column found"))})},Tabulator.prototype.setLocale=function(t){this.modules.localize.setLocale(t)},Tabulator.prototype.getLocale=function(){return this.modules.localize.getLocale()},Tabulator.prototype.getLang=function(t){return this.modules.localize.getLang(t)},Tabulator.prototype.redraw=function(t){this.columnManager.redraw(t),this.rowManager.redraw(t)},Tabulator.prototype.setHeight=function(t){"classic"!==this.rowManager.renderMode?(this.options.height=isNaN(t)?t:t+"px",this.element.style.height=this.options.height,this.rowManager.setRenderMode(),this.rowManager.redraw()):console.warn("setHeight function is not available in classic render mode")},Tabulator.prototype.setSort=function(t,e){this.modExists("sort",!0)&&(this.modules.sort.setSort(t,e),this.rowManager.sorterRefresh())},Tabulator.prototype.getSorters=function(){if(this.modExists("sort",!0))return this.modules.sort.getSort()},Tabulator.prototype.clearSort=function(){this.modExists("sort",!0)&&(this.modules.sort.clear(),this.rowManager.sorterRefresh())},Tabulator.prototype.setFilter=function(t,e,o,i){this.modExists("filter",!0)&&(this.modules.filter.setFilter(t,e,o,i),this.rowManager.filterRefresh())},Tabulator.prototype.addFilter=function(t,e,o,i){this.modExists("filter",!0)&&(this.modules.filter.addFilter(t,e,o,i),this.rowManager.filterRefresh())},Tabulator.prototype.getFilters=function(t){if(this.modExists("filter",!0))return this.modules.filter.getFilters(t)},Tabulator.prototype.setHeaderFilterFocus=function(t){if(this.modExists("filter",!0)){var e=this.columnManager.findColumn(t);if(!e)return console.warn("Column Filter Focus Error - No matching column found:",t),!1;this.modules.filter.setHeaderFilterFocus(e)}},Tabulator.prototype.getHeaderFilterValue=function(t){if(this.modExists("filter",!0)){var e=this.columnManager.findColumn(t);if(e)return this.modules.filter.getHeaderFilterValue(e);console.warn("Column Filter Error - No matching column found:",t)}},Tabulator.prototype.setHeaderFilterValue=function(t,e){if(this.modExists("filter",!0)){var o=this.columnManager.findColumn(t);if(!o)return console.warn("Column Filter Error - No matching column found:",t),!1;this.modules.filter.setHeaderFilterValue(o,e)}},Tabulator.prototype.getHeaderFilters=function(){if(this.modExists("filter",!0))return this.modules.filter.getHeaderFilters()},Tabulator.prototype.removeFilter=function(t,e,o){this.modExists("filter",!0)&&(this.modules.filter.removeFilter(t,e,o),this.rowManager.filterRefresh())},Tabulator.prototype.clearFilter=function(t){this.modExists("filter",!0)&&(this.modules.filter.clearFilter(t),this.rowManager.filterRefresh())},Tabulator.prototype.clearHeaderFilter=function(){this.modExists("filter",!0)&&(this.modules.filter.clearHeaderFilter(),this.rowManager.filterRefresh())},Tabulator.prototype.selectRow=function(t){this.modExists("selectRow",!0)&&(!0===t&&(console.warn("passing a boolean to the selectRowselectRow function is deprecated, you should now pass the string 'active'"),t="active"),this.modules.selectRow.selectRows(t))},Tabulator.prototype.deselectRow=function(t){this.modExists("selectRow",!0)&&this.modules.selectRow.deselectRows(t)},Tabulator.prototype.toggleSelectRow=function(t){this.modExists("selectRow",!0)&&this.modules.selectRow.toggleRow(t)},Tabulator.prototype.getSelectedRows=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedRows()},Tabulator.prototype.getSelectedData=function(){if(this.modExists("selectRow",!0))return this.modules.selectRow.getSelectedData()},Tabulator.prototype.getInvalidCells=function(){if(this.modExists("validate",!0))return this.modules.validate.getInvalidCells()},Tabulator.prototype.clearCellValidation=function(t){var e=this;this.modExists("validate",!0)&&(t||(t=this.modules.validate.getInvalidCells()),Array.isArray(t)||(t=[t]),t.forEach(function(t){e.modules.validate.clearValidation(t._getSelf())}))},Tabulator.prototype.validate=function(t){var e=[];return this.rowManager.rows.forEach(function(t){var o=t.validate();!0!==o&&(e=e.concat(o))}),!e.length||e},Tabulator.prototype.setMaxPage=function(t){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setMaxPage(t)},Tabulator.prototype.setPage=function(t){return this.options.pagination&&this.modExists("page")?this.modules.page.setPage(t):new Promise(function(t,e){e()})},Tabulator.prototype.setPageToRow=function(t){var e=this;return new Promise(function(o,i){e.options.pagination&&e.modExists("page")?(t=e.rowManager.findRow(t),t?e.modules.page.setPageToRow(t).then(function(){o()}).catch(function(){i()}):i()):i()})},Tabulator.prototype.setPageSize=function(t){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.setPageSize(t),this.modules.page.setPage(1).then(function(){}).catch(function(){})},Tabulator.prototype.getPageSize=function(){if(this.options.pagination&&this.modExists("page",!0))return this.modules.page.getPageSize()},Tabulator.prototype.previousPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.previousPage()},Tabulator.prototype.nextPage=function(){if(!this.options.pagination||!this.modExists("page"))return!1;this.modules.page.nextPage()},Tabulator.prototype.getPage=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPage()},Tabulator.prototype.getPageMax=function(){return!(!this.options.pagination||!this.modExists("page"))&&this.modules.page.getPageMax()},Tabulator.prototype.setGroupBy=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupBy=t,this.modules.groupRows.initialize(),this.rowManager.refreshActiveData("display"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")},Tabulator.prototype.setGroupStartOpen=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupStartOpen=t,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},Tabulator.prototype.setGroupHeader=function(t){if(!this.modExists("groupRows",!0))return!1;this.options.groupHeader=t,this.modules.groupRows.initialize(),this.options.groupBy?(this.rowManager.refreshActiveData("group"),this.options.persistence&&this.modExists("persistence",!0)&&this.modules.persistence.config.group&&this.modules.persistence.save("group")):console.warn("Grouping Update - cant refresh view, no groups have been set")},Tabulator.prototype.getGroups=function(t){return!!this.modExists("groupRows",!0)&&this.modules.groupRows.getGroups(!0)},Tabulator.prototype.getGroupedData=function(){if(this.modExists("groupRows",!0))return this.options.groupBy?this.modules.groupRows.getGroupedData():this.getData()},Tabulator.prototype.getEditedCells=function(){if(this.modExists("edit",!0))return this.modules.edit.getEditedCells()},Tabulator.prototype.clearCellEdited=function(t){var e=this;this.modExists("edit",!0)&&(t||(t=this.modules.edit.getEditedCells()),Array.isArray(t)||(t=[t]),t.forEach(function(t){e.modules.edit.clearEdited(t._getSelf())}))},Tabulator.prototype.getCalcResults=function(){return!!this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.getResults()},Tabulator.prototype.recalc=function(){this.modExists("columnCalcs",!0)&&this.modules.columnCalcs.recalcAll(this.rowManager.activeRows)},Tabulator.prototype.navigatePrev=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&t.nav().prev()},Tabulator.prototype.navigateNext=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&t.nav().next()},Tabulator.prototype.navigateLeft=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().left())},Tabulator.prototype.navigateRight=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().right())},Tabulator.prototype.navigateUp=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().up())},Tabulator.prototype.navigateDown=function(){var t=!1;return!(!this.modExists("edit",!0)||!(t=this.modules.edit.currentCell))&&(e.preventDefault(),t.nav().down())},Tabulator.prototype.undo=function(){
-return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.undo()},Tabulator.prototype.redo=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.redo()},Tabulator.prototype.getHistoryUndoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryUndoSize()},Tabulator.prototype.getHistoryRedoSize=function(){return!(!this.options.history||!this.modExists("history",!0))&&this.modules.history.getHistoryRedoSize()},Tabulator.prototype.download=function(t,e,o,i){this.modExists("download",!0)&&this.modules.download.download(t,e,o,i)},Tabulator.prototype.downloadToTab=function(t,e,o,i){this.modExists("download",!0)&&this.modules.download.download(t,e,o,i,!0)},Tabulator.prototype.tableComms=function(t,e,o,i){this.modules.comms.receive(t,e,o,i)},Tabulator.prototype.moduleBindings={},Tabulator.prototype.extendModule=function(t,e,o){if(Tabulator.prototype.moduleBindings[t]){var i=Tabulator.prototype.moduleBindings[t].prototype[e];if(i)if("object"==(void 0===o?"undefined":_typeof(o)))for(var n in o)i[n]=o[n];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",e)}else console.warn("Module Error - module does not exist:",t)},Tabulator.prototype.registerModule=function(t,e){Tabulator.prototype.moduleBindings[t]=e},Tabulator.prototype.bindModules=function(){this.modules={};for(var t in Tabulator.prototype.moduleBindings)this.modules[t]=new Tabulator.prototype.moduleBindings[t](this)},Tabulator.prototype.modExists=function(t,e){return!!this.modules[t]||(e&&console.error("Tabulator Module Not Installed: "+t),!1)},Tabulator.prototype.helpers={elVisible:function(t){return!(t.offsetWidth<=0&&t.offsetHeight<=0)},elOffset:function(t){var e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset-document.documentElement.clientTop,left:e.left+window.pageXOffset-document.documentElement.clientLeft}},deepClone:function(t){var e=Array.isArray(t)?[]:{};for(var o in t)null!=t[o]&&"object"===_typeof(t[o])?t[o]instanceof Date?e[o]=new Date(t[o]):e[o]=this.deepClone(t[o]):e[o]=t[o];return e}},Tabulator.prototype.comms={tables:[],register:function(t){Tabulator.prototype.comms.tables.push(t)},deregister:function(t){var e=Tabulator.prototype.comms.tables.indexOf(t);e>-1&&Tabulator.prototype.comms.tables.splice(e,1)},lookupTable:function(t,e){var o,i,n=[];if("string"==typeof t){if(o=document.querySelectorAll(t),o.length)for(var l=0;l<o.length;l++)(i=Tabulator.prototype.comms.matchElement(o[l]))&&n.push(i)}else"undefined"!=typeof HTMLElement&&t instanceof HTMLElement||t instanceof Tabulator?(i=Tabulator.prototype.comms.matchElement(t))&&n.push(i):Array.isArray(t)?t.forEach(function(t){n=n.concat(Tabulator.prototype.comms.lookupTable(t))}):e||console.warn("Table Connection Error - Invalid Selector",t);return n},matchElement:function(t){return Tabulator.prototype.comms.tables.find(function(e){return t instanceof Tabulator?e===t:e.element===t})}},Tabulator.prototype.findTable=function(t){var e=Tabulator.prototype.comms.lookupTable(t,!0);return!(Array.isArray(e)&&!e.length)&&e};var Layout=function(t){this.table=t,this.mode=null};Layout.prototype.initialize=function(t){this.modes[t]?this.mode=t:(console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+t),this.mode="fitData"),this.table.element.setAttribute("tabulator-layout",this.mode)},Layout.prototype.getMode=function(){return this.mode},Layout.prototype.layout=function(){this.modes[this.mode].call(this,this.table.columnManager.columnsByIndex)},Layout.prototype.modes={fitData:function(t){t.forEach(function(t){t.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataFill:function(t){t.forEach(function(t){t.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataTable:function(t){t.forEach(function(t){t.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataStretch:function(t){var e=this,o=0,i=this.table.rowManager.element.clientWidth,n=0,l=!1;t.forEach(function(t,i){t.widthFixed||t.reinitializeWidth(),(e.table.options.responsiveLayout?t.modules.responsive.visible:t.visible)&&(l=t),t.visible&&(o+=t.getWidth())}),l?(n=i-o+l.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&(l.setWidth(0),this.table.modules.responsiveLayout.update()),n>0?l.setWidth(n):l.reinitializeWidth()):this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitColumns:function(t){function e(t){return"string"==typeof t?t.indexOf("%")>-1?n/100*parseInt(t):parseInt(t):t}function o(t,i,n,l){function s(t){return n*(t.column.definition.widthGrow||1)}function a(t){return e(t.width)-n*(t.column.definition.widthShrink||0)}var r=[],u=0,c=0,h=0,d=0,p=0,m=[];return t.forEach(function(t,e){var o=l?a(t):s(t);t.column.minWidth>=o?r.push(t):(m.push(t),p+=l?t.column.definition.widthShrink||1:t.column.definition.widthGrow||1)}),r.length?(r.forEach(function(t){u+=l?t.width-t.column.minWidth:t.column.minWidth,t.width=t.column.minWidth}),c=i-u,h=p?Math.floor(c/p):c,d=c-h*p,d+=o(m,c,h,l)):(d=p?i-Math.floor(i/p)*p:i,m.forEach(function(t){t.width=l?a(t):s(t)})),d}var i=this,n=i.table.element.clientWidth,l=0,s=0,a=0,r=0,u=[],c=[],h=0,d=0,p=0;this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(n-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),t.forEach(function(t){var o,i,n;t.visible&&(o=t.definition.width,i=parseInt(t.minWidth),o?(n=e(o),l+=n>i?n:i,t.definition.widthShrink&&(c.push({column:t,width:n>i?n:i}),h+=t.definition.widthShrink)):(u.push({column:t,width:0}),a+=t.definition.widthGrow||1))}),s=n-l,r=Math.floor(s/a);var p=o(u,s,r,!1);u.length&&p>0&&(u[u.length-1].width+=+p),u.forEach(function(t){s-=t.width}),d=Math.abs(p)+s,d>0&&h&&(p=o(c,d,Math.floor(d/h),!0)),c.length&&(c[c.length-1].width-=p),u.forEach(function(t){t.column.setWidth(t.width)}),c.forEach(function(t){t.column.setWidth(t.width)})}},Tabulator.prototype.registerModule("layout",Layout);var Localize=function(t){this.table=t,this.locale="default",this.lang=!1,this.bindings={}};Localize.prototype.setHeaderFilterPlaceholder=function(t){this.langs.default.headerFilters.default=t},Localize.prototype.setHeaderFilterColumnPlaceholder=function(t,e){this.langs.default.headerFilters.columns[t]=e,this.lang&&!this.lang.headerFilters.columns[t]&&(this.lang.headerFilters.columns[t]=e)},Localize.prototype.installLang=function(t,e){this.langs[t]?this._setLangProp(this.langs[t],e):this.langs[t]=e},Localize.prototype._setLangProp=function(t,e){for(var o in e)t[o]&&"object"==_typeof(t[o])?this._setLangProp(t[o],e[o]):t[o]=e[o]},Localize.prototype.setLocale=function(t){function e(t,o){for(var i in t)"object"==_typeof(t[i])?(o[i]||(o[i]={}),e(t[i],o[i])):o[i]=t[i]}var o=this;if(t=t||"default",!0===t&&navigator.language&&(t=navigator.language.toLowerCase()),t&&!o.langs[t]){var i=t.split("-")[0];o.langs[i]?(console.warn("Localization Error - Exact matching locale not found, using closest match: ",t,i),t=i):(console.warn("Localization Error - Matching locale not found, using default: ",t),t="default")}o.locale=t,o.lang=Tabulator.prototype.helpers.deepClone(o.langs.default||{}),"default"!=t&&e(o.langs[t],o.lang),o.table.options.localized.call(o.table,o.locale,o.lang),o._executeBindings()},Localize.prototype.getLocale=function(t){return self.locale},Localize.prototype.getLang=function(t){return t?this.langs[t]:this.lang},Localize.prototype.getText=function(t,e){var t=e?t+"|"+e:t,o=t.split("|");return this._getLangElement(o,this.locale)||""},Localize.prototype._getLangElement=function(t,e){var o=this,i=o.lang;return t.forEach(function(t){var e;i&&(e=i[t],i=void 0!==e&&e)}),i},Localize.prototype.bind=function(t,e){this.bindings[t]||(this.bindings[t]=[]),this.bindings[t].push(e),e(this.getText(t),this.lang)},Localize.prototype._executeBindings=function(){var t=this;for(var e in t.bindings)!function(e){t.bindings[e].forEach(function(o){o(t.getText(e),t.lang)})}(e)},Localize.prototype.langs={default:{groups:{item:"item",items:"items"},columns:{},ajax:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",page_title:"Show Page",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page",all:"All"},headerFilters:{default:"filter column...",columns:{}}}},Tabulator.prototype.registerModule("localize",Localize);var Comms=function(t){this.table=t};Comms.prototype.getConnections=function(t){var e,o=this,i=[];return e=Tabulator.prototype.comms.lookupTable(t),e.forEach(function(t){o.table!==t&&i.push(t)}),i},Comms.prototype.send=function(t,e,o,i){var n=this,l=this.getConnections(t);l.forEach(function(t){t.tableComms(n.table.element,e,o,i)}),!l.length&&t&&console.warn("Table Connection Error - No tables matching selector found",t)},Comms.prototype.receive=function(t,e,o,i){if(this.table.modExists(e))return this.table.modules[e].commsReceived(t,o,i);console.warn("Inter-table Comms Error - no such module:",e)},Tabulator.prototype.registerModule("comms",Comms);
\ No newline at end of file
+++ /dev/null
-Version 5.1.3 (2019-12-04)
- Fixed sticky toolbar not undocking when fullscreen mode is activated #TINY-4390
- Fixed the "Current Window" target not applying when updating links using the link dialog #TINY-4063
- Fixed disabled menu items not highlighting when focused #TINY-4339
- Fixed touch events passing through dialog collection items to the content underneath on Android devices #TINY-4431
- Fixed keyboard navigation of the Help dialog's Keyboard Navigation tab #TINY-4391
- Fixed search and replace dialog disappearing when finding offscreen matches on iOS devices #TINY-4350
- Fixed performance issues where sticky toolbar was jumping while scrolling on slower browsers #TINY-4475
-Version 5.1.2 (2019-11-19)
- Fixed desktop touch devices using `mobile` configuration overrides #TINY-4345
- Fixed unable to disable the new scrolling toolbar feature #TINY-4345
- Fixed touch events passing through any pop-up items to the content underneath on Android devices #TINY-4367
- Fixed the table selector handles throwing JavaScript exceptions for non-table selections #TINY-4338
- Fixed `cut` operations not removing selected content on Android devices when the `paste` plugin is enabled #TINY-4362
- Fixed inline toolbar not constrained to the window width by default #TINY-4314
- Fixed context toolbar split button chevrons pointing right when they should be pointing down #TINY-4257
- Fixed unable to access the dialog footer in tabbed dialogs on small screens #TINY-4360
- Fixed mobile table selectors were hard to select with touch by increasing the size #TINY-4366
- Fixed mobile table selectors moving when moving outside the editor #TINY-4366
- Fixed inline toolbars collapsing when using sliding toolbars #TINY-4389
- Fixed block textpatterns not treating NBSPs as spaces #TINY-4378
- Fixed backspace not merging blocks when the last element in the preceding block was a `contenteditable="false"` element #TINY-4235
- Fixed toolbar buttons that only contain text labels overlapping on mobile devices #TINY-4395
- Fixed quickbars quickimage picker not working on mobile #TINY-4377
- Fixed fullscreen not resizing in an iOS WKWebView component #TINY-4413
-Version 5.1.1 (2019-10-28)
- Fixed font formats containing spaces being wrapped in `"` entities instead of single quotes #TINY-4275
- Fixed alert and confirm dialogs losing focus when clicked #TINY-4248
- Fixed clicking outside a modal dialog focusing on the document body #TINY-4249
- Fixed the context toolbar not hiding when scrolled out of view #TINY-4265
-Version 5.1.0 (2019-10-17)
- Added touch selector handles for table selections on touch devices #TINY-4097
- Added border width field to Table Cell dialog #TINY-4028
- Added touch event listener to media plugin to make embeds playable #TINY-4093
- Added oxide styling options to notifications and tweaked the default variables #TINY-4153
- Added additional padding to split button chevrons on touch devices, to make them easier to interact with #TINY-4223
- Added new platform detection functions to `Env` and deprecated older detection properties #TINY-4184
- Added `inputMode` config field to specify inputmode attribute of `input` dialog components #TINY-4062
- Added new `inputMode` property to relevant plugins/dialogs #TINY-4102
- Added new `toolbar_sticky` setting to allow the iframe menubar/toolbar to stick to the top of the window when scrolling #TINY-3982
- Changed default setting for `toolbar_drawer` to `floating` #TINY-3634
- Changed mobile phones to use the `silver` theme by default #TINY-3634
- Changed some editor settings to default to `false` on touch devices:
- - `menubar`(phones only) #TINY-4077
- - `table_grid` #TINY-4075
- - `resize` #TINY-4157
- - `object_resizing` #TINY-4157
- Changed toolbars and context toolbars to sidescroll on mobile #TINY-3894 #TINY-4107
- Changed context menus to render as horizontal menus on touch devices #TINY-4107
- Changed the editor to use the `VisualViewport` API of the browser where possible #TINY-4078
- Changed visualblocks toolbar button icon and renamed `paragraph` icon to `visualchars` #TINY-4074
- Changed Oxide default for `@toolbar-button-chevron-color` to follow toolbar button icon color #TINY-4153
- Changed the `urlinput` dialog component to use the `url` type attribute #TINY-4102
- Fixed Safari desktop visual viewport fires resize on fullscreen breaking the restore function #TINY-3976
- Fixed scroll issues on mobile devices #TINY-3976
- Fixed context toolbar unable to refresh position on iOS12 #TINY-4107
- Fixed ctrl+left click not opening links on readonly mode and the preview dialog #TINY-4138
- Fixed Slider UI component not firing `onChange` event on touch devices #TINY-4092
- Fixed notifications overlapping instead of stacking #TINY-3478
- Fixed inline dialogs positioning incorrectly when the page is scrolled #TINY-4018
- Fixed inline dialogs and menus not repositioning when resizing #TINY-3227
- Fixed inline toolbar incorrectly stretching to the full width when a width value was provided #TINY-4066
- Fixed menu chevrons color to follow the menu text color #TINY-4153
- Fixed table menu selection grid from staying black when using dark skins, now follows border color #TINY-4153
- Fixed Oxide using the wrong text color variable for menubar button focused state #TINY-4146
- Fixed the autoresize plugin not keeping the selection in view when resizing #TINY-4094
- Fixed textpattern plugin throwing exceptions when using `forced_root_block: false` #TINY-4172
- Fixed missing CSS fill styles for toolbar button icon active state #TINY-4147
- Fixed an issue where the editor selection could end up inside a short ended element (such as `br`) #TINY-3999
- Fixed browser selection being lost in inline mode when opening split dropdowns #TINY-4197
- Fixed backspace throwing an exception when using `forced_root_block: false` #TINY-4099
- Fixed floating toolbar drawer expanding outside the bounds of the editor #TINY-3941
- Fixed the autocompleter not activating immediately after a `br` or `contenteditable=false` element #TINY-4194
- Fixed an issue where the autocompleter would incorrectly close on IE 11 in certain edge cases #TINY-4205
-Version 5.0.16 (2019-09-24)
- Added new `referrer_policy` setting to add the `referrerpolicy` attribute when loading scripts or stylesheets #TINY-3978
- Added a slight background color to dialog tab links when focused to aid keyboard navigation #TINY-3877
- Fixed media poster value not updating on change #TINY-4013
- Fixed openlink was not registered as a toolbar button #TINY-4024
- Fixed failing to initialize if a script tag was used inside a SVG #TINY-4087
- Fixed double top border showing on toolbar without menubar when toolbar_drawer is enabled #TINY-4118
- Fixed unable to drag inline dialogs to the bottom of the screen when scrolled #TINY-4154
- Fixed notifications appearing on top of the toolbar when scrolled in inline mode #TINY-4159
- Fixed notifications displaying incorrectly on IE 11 #TINY-4169
-Version 5.0.15 (2019-09-02)
- Added a dark `content_css` skin to go with the dark UI skin #TINY-3743
- Changed the enabled state on toolbar buttons so they don't get the hover effect #TINY-3974
- Fixed missing CSS active state on toolbar buttons #TINY-3966
- Fixed `onChange` callback not firing for the colorinput dialog component #TINY-3968
- Fixed context toolbars not showing in fullscreen mode #TINY-4023
-Version 5.0.14 (2019-08-19)
- Added an API to reload the autocompleter menu with additional fetch metadata #MENTIONS-17
- Fixed missing toolbar button border styling options #TINY-3965
- Fixed image upload progress notification closing before the upload is complete #TINY-3963
- Fixed inline dialogs not closing on escape when no dialog component is in focus #TINY-3936
- Fixed plugins not being filtered when defaulting to mobile on phones #TINY-3537
- Fixed toolbar more drawer showing the content behind it when transitioning between opened and closed states #TINY-3878
- Fixed focus not returning to the dialog after pressing the "Replace all" button in the search and replace dialog #TINY-3961
- Removed Oxide variable `@menubar-select-disabled-border-color` and replaced it with `@menubar-select-disabled-border` #TINY-3965
-Version 5.0.13 (2019-08-06)
- Changed modal dialogs to prevent dragging by default and added new `draggable_modal` setting to restore dragging #TINY-3873
- Changed the nonbreaking plugin to insert nbsp characters wrapped in spans to aid in filtering. This can be disabled using the `nonbreaking_wrap` setting #TINY-3647
- Changed backspace behaviour in lists to outdent nested list items when the cursor is at the start of the list item #TINY-3651
- Fixed sidebar growing beyond editor bounds in IE 11 #TINY-3937
- Fixed issue with being unable to keyboard navigate disabled toolbar buttons #TINY-3350
- Fixed issues with backspace and delete in nested contenteditable true and false elements #TINY-3868
- Fixed issue with losing keyboard navigation in dialogs due to disabled buttons #TINY-3914
- Fixed `MouseEvent.mozPressure is deprecated` warning in Firefox #TINY-3919
- Fixed `default_link_target` not being respected when `target_list` is disabled #TINY-3757
- Fixed mobile plugin filter to only apply to the mobile theme, rather than all mobile platforms #TINY-3405
- Fixed focus switching to another editor during mode changes #TINY-3852
- Fixed an exception being thrown when clicking on an uninitialized inline editor #TINY-3925
- Fixed unable to keyboard navigate to dialog menu buttons #TINY-3933
- Fixed dialogs being able to be dragged outside the window viewport #TINY-3787
- Fixed inline dialogs appearing above modal dialogs #TINY-3932
-Version 5.0.12 (2019-07-18)
- Added ability to utilize UI dialog panels inside other panels #TINY-3305
- Added help dialog tab explaining keyboard navigation of the editor #TINY-3603
- Changed the "Find and Replace" design to an inline dialog #TINY-3054
- Fixed issue where autolink spacebar event was not being fired on Edge #TINY-3891
- Fixed table selection missing the background color #TINY-3892
- Fixed removing shortcuts not working for function keys #TINY-3871
- Fixed non-descriptive UI component type names #TINY-3349
- Fixed UI registry components rendering as the wrong type when manually specifying a different type #TINY-3385
- Fixed an issue where dialog checkbox, input, selectbox, textarea and urlinput components couldn't be disabled #TINY-3708
- Fixed the context toolbar not using viable screen space in inline/distraction free mode #TINY-3717
- Fixed the context toolbar overlapping the toolbar in various conditions #TINY-3205
- Fixed IE11 edge case where items were being inserted into the wrong location #TINY-3884
-Version 5.0.11 (2019-07-04)
- Fixed packaging errors caused by a rollup treeshaking bug (https://github.com/rollup/rollup/issues/2970) #TINY-3866
- Fixed the customeditor component not able to get data from the dialog api #TINY-3866
- Fixed collection component tooltips not being translated #TINY-3855
-Version 5.0.10 (2019-07-02)
- Added support for all HTML color formats in `color_map` setting #TINY-3837
- Changed backspace key handling to outdent content in appropriate circumstances #TINY-3685
- Changed default palette for forecolor and backcolor to include some lighter colors suitable for highlights #TINY-2865
- Changed the search and replace plugin to cycle through results #TINY-3800
- Fixed inconsistent types causing some properties to be unable to be used in dialog components #TINY-3778
- Fixed an issue in the Oxide skin where dialog content like outlines and shadows were clipped because of overflow hidden #TINY-3566
- Fixed the search and replace plugin not resetting state when changing the search query #TINY-3800
- Fixed backspace in lists not creating an undo level #TINY-3814
- Fixed the editor to cancel loading in quirks mode where the UI is not supported #TINY-3391
- Fixed applying fonts not working when the name contained spaces and numbers #TINY-3801
- Fixed so that initial content is retained when initializing on list items #TINY-3796
- Fixed inefficient font name and font size current value lookup during rendering #TINY-3813
- Fixed mobile font copied into the wrong folder for the oxide-dark skin #TINY-3816
- Fixed an issue where resizing the width of tables would produce inaccurate results #TINY-3827
- Fixed a memory leak in the Silver theme #TINY-3797
- Fixed alert and confirm dialogs using incorrect markup causing inconsistent padding #TINY-3835
- Fixed an issue in the Table plugin with `table_responsive_width` not enforcing units when resizing #TINY-3790
- Fixed leading, trailing and sequential spaces being lost when pasting plain text #TINY-3726
- Fixed exception being thrown when creating relative URIs #TINY-3851
- Fixed focus is no longer set to the editor content during mode changes unless the editor already had focus #TINY-3852
-Version 5.0.9 (2019-06-26)
- Fixed print plugin not working in Firefox #TINY-3834
-Version 5.0.8 (2019-06-18)
- Added back support for multiple toolbars #TINY-2195
- Added support for .m4a files to the media plugin #TINY-3750
- Added new base_url and suffix editor init options #TINY-3681
- Fixed incorrect padding for select boxes with visible values #TINY-3780
- Fixed selection incorrectly changing when programmatically setting selection on contenteditable false elements #TINY-3766
- Fixed sidebar background being transparent #TINY-3727
- Fixed the build to remove duplicate iife wrappers #TINY-3689
- Fixed bogus autocompleter span appearing in content when the autocompleter menu is shown #TINY-3752
- Fixed toolbar font size select not working with legacyoutput plugin #TINY-2921
- Fixed the legacyoutput plugin incorrectly aligning images #TINY-3660
- Fixed remove color not working when using the legacyoutput plugin #TINY-3756
- Fixed the font size menu applying incorrect sizes when using the legacyoutput plugin #TINY-3773
- Fixed scrollIntoView not working when the parent window was out of view #TINY-3663
- Fixed the print plugin printing from the wrong window in IE11 #TINY-3762
- Fixed content CSS loaded over CORS not loading in the preview plugin with content_css_cors enabled #TINY-3769
- Fixed the link plugin missing the default "None" option for link list #TINY-3738
- Fixed small dot visible with menubar and toolbar disabled in inline mode #TINY-3623
- Fixed space key properly inserts a nbsp before/after block elements #TINY-3745
- Fixed native context menu not showing with images in IE11 #TINY-3392
- Fixed inconsistent browser context menu image selection #TINY-3789
-Version 5.0.7 (2019-06-05)
- Added new toolbar button and menu item for inserting tables via dialog #TINY-3636
- Added new API for adding/removing/changing tabs in the Help dialog #TINY-3535
- Added highlighting of matched text in autocompleter items #TINY-3687
- Added the ability for autocompleters to work with matches that include spaces #TINY-3704
- Added new `imagetools_fetch_image` callback to allow custom implementations for cors loading of images #TINY-3658
- Added `'http'` and `https` options to `link_assume_external_targets` to prepend `http://` or `https://` prefixes when URL does not contain a protocol prefix. Patch contributed by francoisfreitag. #GH-4335
- Changed annotations navigation to work the same as inline boundaries #TINY-3396
- Changed tabpanel API by adding a `name` field and changing relevant methods to use it #TINY-3535
- Fixed text color not updating all color buttons when choosing a color #TINY-3602
- Fixed the autocompleter not working with fragmented text #TINY-3459
- Fixed the autosave plugin no longer overwrites window.onbeforeunload #TINY-3688
- Fixed infinite loop in the paste plugin when IE11 takes a long time to process paste events. Patch contributed by lRawd. #GH-4987
- Fixed image handle locations when using `fixed_toolbar_container`. Patch contributed by t00. #GH-4966
- Fixed the autoresize plugin not firing `ResizeEditor` events #TINY-3587
- Fixed editor in fullscreen mode not extending to the bottom of the screen #TINY-3701
- Fixed list removal when pressing backspace after the start of the list item #TINY-3697
- Fixed autocomplete not triggering from compositionend events #TINY-3711
- Fixed `file_picker_callback` could not set the caption field on the insert image dialog #TINY-3172
- Fixed the autocompleter menu showing up after a selection had been made #TINY-3718
- Fixed an exception being thrown when a file or number input has focus during initialization. Patch contributed by t00 #GH-2194
-Version 5.0.6 (2019-05-22)
- Added `icons_url` editor settings to enable icon packs to be loaded from a custom url #TINY-3585
- Added `image_uploadtab` editor setting to control the visibility of the upload tab in the image dialog #TINY-3606
- Added new api endpoints to the wordcount plugin and improved character count logic #TINY-3578
- Changed plugin, language and icon loading errors to log in the console instead of a notification #TINY-3585
- Fixed the textpattern plugin not working with fragmented text #TINY-3089
- Fixed various toolbar drawer accessibility issues and added an animation #TINY-3554
- Fixed issues with selection and ui components when toggling readonly mode #TINY-3592
- Fixed so readonly mode works with inline editors #TINY-3592
- Fixed docked inline toolbar positioning when scrolled #TINY-3621
- Fixed initial value not being set on bespoke select in quickbars and toolbar drawer #TINY-3591
- Fixed so that nbsp entities aren't trimmed in white-space: pre-line elements #TINY-3642
- Fixed `mceInsertLink` command inserting spaces instead of url encoded characters #GH-4990
- Fixed text content floating on top of dialogs in IE11 #TINY-3640
-Version 5.0.5 (2019-05-09)
- Added menu items to match the forecolor/backcolor toolbar buttons #TINY-2878
- Added default directionality based on the configured language #TINY-2621
- Added styles, icons and tests for rtl mode #TINY-2621
- Fixed autoresize not working with floating elements or when media elements finished loading #TINY-3545
- Fixed incorrect vertical caret positioning in IE 11 #TINY-3188
- Fixed submenu anchoring hiding overflowed content #TINY-3564
- Removed unused and hidden validation icons to avoid displaying phantom tooltips #TINY-2329
-Version 5.0.4 (2019-04-23)
- Added back URL dialog functionality, which is now available via `editor.windowManager.openUrl()` #TINY-3382
- Added the missing throbber functionality when calling `editor.setProgressState(true)` #TINY-3453
- Added function to reset the editor content and undo/dirty state via `editor.resetContent()` #TINY-3435
- Added the ability to set menu buttons as active #TINY-3274
- Added `editor.mode` API, featuring a custom editor mode API #TINY-3406
- Added better styling to floating toolbar drawer #TINY-3479
- Added the new premium plugins to the Help dialog plugins tab #TINY-3496
- Added the linkchecker context menu items to the default configuration #TINY-3543
- Fixed image context menu items showing on placeholder images #TINY-3280
- Fixed dialog labels and text color contrast within notifications/alert banners to satisfy WCAG 4.5:1 contrast ratio for accessibility #TINY-3351
- Fixed selectbox and colorpicker items not being translated #TINY-3546
- Fixed toolbar drawer sliding mode to correctly focus the editor when tabbing via keyboard navigation #TINY-3533
- Fixed positioning of the styleselect menu in iOS while using the mobile theme #TINY-3505
- Fixed the menubutton `onSetup` callback to be correctly executed when rendering the menu buttons #TINY-3547
- Fixed `default_link_target` setting to be correctly utilized when creating a link #TINY-3508
- Fixed colorpicker floating marginally outside its container #TINY-3026
- Fixed disabled menu items displaying as active when hovered #TINY-3027
- Removed redundant mobile wrapper #TINY-3480
-Version 5.0.3 (2019-03-19)
- Changed empty nested-menu items within the style formats menu to be disabled or hidden if the value of `style_formats_autohide` is `true` #TINY-3310
- Changed the entire phrase 'Powered by Tiny' in the status bar to be a link instead of just the word 'Tiny' #TINY-3366
- Changed `formatselect`, `styleselect` and `align` menus to use the `mceToggleFormat` command internally #TINY-3428
- Fixed toolbar keyboard navigation to work as expected when `toolbar_drawer` is configured #TINY-3432
- Fixed text direction buttons to display the correct pressed state in selections that have no explicit `dir` property #TINY-3138
- Fixed the mobile editor to clean up properly when removed #TINY-3445
- Fixed quickbar toolbars to add an empty box to the screen when it is set to `false` #TINY-3439
- Fixed an issue where pressing the **Delete/Backspace** key at the edge of tables was creating incorrect selections #TINY-3371
- Fixed an issue where dialog collection items (emoticon and special character dialogs) couldn't be selected with touch devices #TINY-3444
- Fixed a type error introduced in TinyMCE version 5.0.2 when calling `editor.getContent()` with nested bookmarks #TINY-3400
- Fixed an issue that prevented default icons from being overridden #TINY-3449
- Fixed an issue where **Home/End** keys wouldn't move the caret correctly before or after `contenteditable=false` inline elements #TINY-2995
- Fixed styles to be preserved in IE 11 when editing via the `fullpage` plugin #TINY-3464
- Fixed the `link` plugin context toolbar missing the open link button #TINY-3461
- Fixed inconsistent dialog component spacing #TINY-3436
-Version 5.0.2 (2019-03-05)
- Added presentation and document presets to `htmlpanel` dialog component #TINY-2694
- Added missing fixed_toolbar_container setting has been reimplemented in the Silver theme #TINY-2712
- Added a new toolbar setting `toolbar_drawer` that moves toolbar groups which overflow the editor width into either a `sliding` or `floating` toolbar section #TINY-2874
- Updated the build process to include package lock files in the dev distribution archive #TINY-2870
- Fixed inline dialogs did not have aria attributes #TINY-2694
- Fixed default icons are now available in the UI registry, allowing use outside of toolbar buttons #TINY-3307
- Fixed a memory leak related to select toolbar items #TINY-2874
- Fixed a memory leak due to format changed listeners that were never unbound #TINY-3191
- Fixed an issue where content may have been lost when using permanent bookmarks #TINY-3400
- Fixed the quicklink toolbar button not rendering in the quickbars plugin #TINY-3125
- Fixed an issue where menus were generating invalid HTML in some cases #TINY-3323
- Fixed an issue that could cause the mobile theme to show a blank white screen when the editor was inside an `overflow:hidden` element #TINY-3407
- Fixed mobile theme using a transparent background and not taking up the full width on iOS #TINY-3414
- Fixed the template plugin dialog missing the description field #TINY-3337
- Fixed input dialog components using an invalid default type attribute #TINY-3424
- Fixed an issue where backspace/delete keys after/before pagebreak elements wouldn't move the caret #TINY-3097
- Fixed an issue in the table plugin where menu items and toolbar buttons weren't showing correctly based on the selection #TINY-3423
- Fixed inconsistent button focus styles in Firefox #TINY-3377
- Fixed the resize icon floating left when all status bar elements were disabled #TINY-3340
- Fixed the resize handle to not show in fullscreen mode #TINY-3404
-Version 5.0.1 (2019-02-21)
- Removed paste as text notification banner and paste_plaintext_inform setting #POW-102
- Fixed an issue where adding links to images would replace the image with text #TINY-3356
- Fixed an issue where the inline editor could use fractional pixels for positioning #TINY-3202
- Fixed an issue where uploading non-image files in the Image Plugin upload tab threw an error. #TINY-3244
- Added H1-H6 toggle button registration to the silver theme #TINY-3070
- Fixed an issue in the media plugin that was causing the source url and height/width to be lost in certain circumstances #TINY-2858
- Fixed an issue with the Context Toolbar not being removed when clicking outside of the editor #TINY-2804
- Fixed an issue where clicking 'Remove link' wouldn't remove the link in certain circumstances #TINY-3199
- Added code sample toolbar button will now toggle on when the cursor is in a code section #TINY-3040
- Fixed an issue where the media plugin would fail when parsing dialog data #TINY-3218
- Fixed an issue where retrieving the selected content as text didn't create newlines #TINY-3197
- Fixed incorrect keyboard shortcuts in the Help dialog for Windows #TINY-3292
- Fixed an issue where JSON serialization could produce invalid JSON #TINY-3281
- Fixed production CSS including references to source maps #TINY-3920
- Fixed development CSS was not included in the development zip #TINY-3920
- Fixed the autocompleter matches predicate not matching on the start of words by default #TINY-3306
- Added new settings to the emoticons plugin to allow additional emoticons to be added #TINY-3088
- Fixed an issue where the page could be scrolled with modal dialogs open #TINY-2252
- Fixed an issue where autocomplete menus would show an icon margin when no items had icons #TINY-3329
- Fixed an issue in the quickbars plugin where images incorrectly showed the text selection toolbar #TINY-3338
- Fixed an issue that caused the inline editor to fail to render when the target element already had focus #TINY-3353
-Version 5.0.0 (2019-02-04)
- Full documentation for the version 5 features and changes is available at https://www.tiny.cloud/docs/release-notes/
-
- Changes since RC2:
- Fixed an issue where tab panel heights weren't sizing properly on smaller screens and weren't updating on resize #TINY-3242
- Added links and registered names with * to denote premium plugins in Plugins tab of Help dialog #TINY-3223
- Changed Tiny 5 mobile skin to look more uniform with desktop #TINY-2650
- Fixed image tools not having any padding between the label and slider #TINY-3220
- Blacklisted table, th and td as inline editor target #TINY-717
- Fixed context toolbar toggle buttons not showing the correct state #TINY-3022
- Fixed missing separators in the spellchecker context menu between the suggestions and actions #TINY-3217
- Fixed notification icon positioning in alert banners #TINY-2196
- Fixed a typo in the word count plugin name #TINY-3062
- Fixed charmap and emoticons dialogs not having a primary button #TINY-3233
- Fixed an issue where resizing wouldn't work correctly depending on the box-sizing model #TINY-3278
-Version 5.0.0-rc-2 (2019-01-22)
- Fixed the link dialog such that it will now retain class attributes when updating links #TINY-2825
- Added screen reader accessibility for sidebar and statusbar #TINY-2699
- Updated Emoticons and Charmap dialogs to be screen reader accessible #TINY-2693
- Fixed "Find and replace" not showing in the "Edit" menu by default #TINY-3061
- Updated the textpattern plugin to properly support nested patterns and to allow running a command with a value for a pattern with a start and an end #TINY-2991
- Removed unnecessary 'flex' and unused 'colspan' properties from the new dialog APIs #TINY-2973
- Changed checkboxes to use a boolean for its state, instead of a string #TINY-2848
- Fixed dropdown buttons missing the 'type' attribute, which could cause forms to be incorrectly submitted #TINY-2826
- Fixed emoticon and charmap search not returning expected results in certain cases #TINY-3084
- Changed formatting menus so they are registered and made the align toolbar button use an icon instead of text #TINY-2880
- Fixed blank rel_list values throwing an exception in the link plugin #TINY-3149
-Version 5.0.0-rc-1 (2019-01-08)
- Updated the font select dropdown logic to try to detect the system font stack and show "System Font" as the font name #TINY-2710
- Fixed readonly mode not fully disabling editing content #TINY-2287
- Updated the autocompleter to only show when it has matched items #TINY-2350
- Added editor settings functionality to specify title attributes for toolbar groups #TINY-2690
- Added icons instead of button text to improve Search and Replace dialog footer appearance #TINY-2654
- Added `tox-dialog__table` instead of `mce-table-striped` class to enhance Help dialog appearance #TINY-2360
- Added title attribute to iframes so, screen readers can announce iframe labels #TINY-2692
- Updated SizeInput labels to "Height" and "Width" instead of Dimensions #TINY-2833
- Fixed accessibility issues with the font select, font size, style select and format select toolbar dropdowns #TINY-2713
- Fixed accessibility issues with split dropdowns #TINY-2697
- Added a wordcount menu item, that defaults to appearing in the tools menu #TINY-2877
- Fixed the legacyoutput plugin to be compatible with TinyMCE 5.0 #TINY-2301
- Updated the build process to minify and generate ASCII only output for the emoticons database #TINY-2744
- Fixed icons not showing correctly in the autocompleter popup #TINY-3029
- Fixed an issue where preview wouldn't show anything in Edge under certain circumstances #TINY-3035
- Fixed the height being incorrectly calculated for the autoresize plugin #TINY-2807
-Version 5.0.0-beta-1 (2018-11-30)
- Changed the name of the "inlite" plugin to "quickbars" #TINY-2831
- Fixed an inline mode issue where the save plugin upon saving can cause content loss #TINY-2659
- Changed the background color icon to highlight background icon #TINY-2258
- Added a new `addNestedMenuItem()` UI registry function and changed all nested menu items to use the new registry functions #TINY-2230
- Changed Help dialog to be accessible to screen readers #TINY-2687
- Changed the color swatch to save selected custom colors to local storage for use across sessions #TINY-2722
- Added title attribute to color swatch colors #TINY-2669
- Added anchorbar component to anchor inline toolbar dialogs to instead of the toolbar #TINY-2040
- Added support for toolbar<n> and toolbar array config options to be squashed into a single toolbar and not create multiple toolbars #TINY-2195
- Added error handling for when forced_root_block config option is set to true #TINY-2261
- Added functionality for the removed_menuitems config option #TINY-2184
- Fixed an issue in IE 11 where calling selection.getContent() would return an empty string when the editor didn't have focus #TINY-2325
- Added the ability to use a string to reference menu items in menu buttons and submenu items #TINY-2253
- Removed compat3x plugin #TINY-2815
- Changed `WindowManager` API - methods `getParams`, `setParams` and `getWindows`, and the legacy `windows` property, have been removed. `alert` and `confirm` dialogs are no longer tracked in the window list. #TINY-2603
-Version 5.0.0-preview-4 (2018-11-12)
- Fixed distraction free plugin #AP-470
- Removed the tox-custom-editor class that was added to the wrapping element of codemirror #TINY-2211
- Fixed contents of the input field being selected on focus instead of just recieving an outline highlight #AP-464
- Added width and height placeholder text to image and media dialog dimensions input #AP-296
- Fixed styling issues with dialogs and menus in IE 11 #AP-456
- Fixed custom style format control not honoring custom formats #AP-393
- Fixed context menu not appearing when clicking an image with a caption #AP-382
- Fixed directionality of UI when using an RTL language #AP-423
- Fixed page responsiveness with multiple inline editors #AP-430
- Added the ability to keyboard navigate through menus, toolbars, sidebar and the status bar sequentially #AP-381
- Fixed empty toolbar groups appearing through invalid configuration of the `toolbar` property #AP-450
- Fixed text not being retained when updating links through the link dialog #AP-293
- Added translation capability back to the editor's UI #AP-282
- Fixed edit image context menu, context toolbar and toolbar items being incorrectly enabled when selecting invalid images #AP-323
- Fixed emoji type ahead being shown when typing URLs #AP-366
- Fixed toolbar configuration properties incorrectly expecting string arrays instead of strings #AP-342
- Changed the editor resize handle so that it should be disabled when the autoresize plugin is turned on #AP-424
- Fixed the block formatting toolbar item not showing a "Formatting" title when there is no selection #AP-321
- Fixed clicking disabled toolbar buttons hiding the toolbar in inline mode #AP-380
- Fixed `EditorResize` event not being fired upon editor resize #AP-327
- Fixed tables losing styles when updating through the dialog #AP-368
- Fixed context toolbar positioning to be more consistent near the edges of the editor #AP-318
- Added `label` component type for dialogs to group components under a label
- Fixed table of contents plugin now works with v5 toolbar APIs correctly #AP-347
- Fixed the `link_context_toolbar` configuration not disabling the context toolbar #AP-458
- Fixed the link context toolbar showing incorrect relative links #AP-435
- Fixed the alignment of the icon in alert banner dialog components #TINY-2220
- Changed UI text for microcopy improvements #TINY-2281
- Fixed the visual blocks and visual char menu options not displaying their toggled state #TINY-2238
- Fixed the editor not displaying as fullscreen when toggled #TINY-2237
-Version 5.0.0-preview-3 (2018-10-18)
- Changed editor layout to use modern CSS properties over manually calculating dimensions #AP-324
- Changed `autoresize_min_height` and `autoresize_max_height` configurations to `min_height` and `max_height` #AP-324
- Fixed bugs with editor width jumping when resizing and the iframe not resizing to smaller than 150px in height #AP-324
- Fixed mobile theme bug that prevented the editor from loading #AP-404
- Fixed long toolbar groups extending outside of the editor instead of wrapping
- Changed `Whole word` label in Search and Replace dialog to `Find whole words only` #AP-387
- Fixed dialog titles so they are now proper case #AP-384
- Fixed color picker default to be #000000 instead of #ff00ff #AP-216
- Fixed "match case" option on the Find and Replace dialog is no longer selected by default #AP-298
- Fixed vertical alignment of toolbar icons #DES-134
- Fixed toolbar icons not appearing on IE11 #DES-133
-Version 5.0.0-preview-2 (2018-10-10)
- Changed configuration of color options has been simplified to `color_map`, `color_cols`, and `custom_colors` #AP-328
- Added swatch is now shown for colorinput fields, instead of the colorpicker directly #AP-328
- Removed `colorpicker` plugin, it is now in the theme #AP-328
- Removed `textcolor` plugin, it is now in the theme #AP-328
- Fixed styleselect not updating the displayed item as the cursor moved #AP-388
- Changed `height` configuration to apply to the editor frame (including menubar, toolbar, status bar) instead of the content area #AP-324
- Added fontformats and fontsizes menu items #AP-390
- Fixed preview iframe not expanding to the dialog size #AP-252
- Fixed 'meta' shortcuts not translated into platform-specific text #AP-270
- Fixed tabbed dialogs (Charmap and Emoticons) shrinking when no search results returned
- Fixed a bug where alert banner icons were not retrieved from icon pack. #AP-330
- Fixed component styles to flex so they fill large dialogs. #AP-252
- Fixed editor flashing unstyled during load (still in progress). #AP-349
-Version 5.0.0-preview-1 (2018-10-01)
- Developer preview 1
- Initial list of features and changes is available at https://tiny.cloud/docs-preview/release-notes/new-features/
-Version 4.9.3 (2019-01-31)
- Added a visualchars_default_state setting to the Visualchars Plugin. Patch contributed by mat3e.
- Fixed a bug where scrolling on a page with more than one editor would cause a ResizeWindow event to fire. #TINY-3247
- Fixed a bug where if a plugin threw an error during initialisation the whole editor would fail to load. #TINY-3243
- Fixed a bug where getContent would include bogus elements when valid_elements setting was set up in a specific way. #TINY-3213
- Fixed a bug where only a few function key names could be used when creating keyboard shortcuts. #TINY-3146
- Fixed a bug where it wasn't possible to enter spaces into an editor after pressing shift+enter. #TINY-3099
- Fixed a bug where no caret would be rendered after backspacing to a contenteditable false element. #TINY-2998
- Fixed a bug where deletion to/from indented lists would leave list fragments in the editor. #TINY-2981
-Version 4.9.2 (2018-12-17)
- Fixed a bug with pressing the space key on IE 11 would result in nbsp characters being inserted between words at the end of a block. #TINY-2996
- Fixed a bug where character composition using quote and space on US International keyboards would produce a space instead of a quote. #TINY-2999
- Fixed a bug where remove format wouldn't remove the inner most inline element in some situations. #TINY-2982
- Fixed a bug where outdenting an list item would affect attributes on other list items within the same list. #TINY-2971
- Fixed a bug where the DomParser filters wouldn't be applied for elements created when parsing invalid html. #TINY-2978
- Fixed a bug where setProgressState wouldn't automatically close floating ui elements like menus. #TINY-2896
- Fixed a bug where it wasn't possible to navigate out of a figcaption element using the arrow keys. #TINY-2894
- Fixed a bug where enter key before an image inside a link would remove the image. #TINY-2780
-Version 4.9.1 (2018-12-04)
- Added functionality to insert html to the replacement feature of the Textpattern Plugin. #TINY-2839
- Fixed a bug where `editor.selection.getContent({format: 'text'})` didn't work as expected in IE11 on an unfocused editor. #TINY-2862
- Fixed a bug in the Textpattern Plugin where the editor would get an incorrect selection after inserting a text pattern on Safari. #TINY-2838
- Fixed a bug where the space bar didn't work correctly in editors with the forced_root_block setting set to false. #TINY-2816
-Version 4.9.0 (2018-11-27)
- Added a replace feature to the Textpattern Plugin. #TINY-1908
- Added functionality to the Lists Plugin that improves the indentation logic. #TINY-1790
- Fixed a bug where it wasn't possible to delete/backspace when the caret was between a contentEditable=false element and a BR. #TINY-2372
- Fixed a bug where copying table cells without a text selection would fail to copy anything. #TINY-1789
- Implemented missing `autosave_restore_when_empty` functionality in the Autosave Plugin. Patch contributed by gzzo. #GH-4447
- Reduced insertion of unnecessary nonbreaking spaces in the editor. #TINY-1879
-Version 4.8.5 (2018-10-30)
- Added a content_css_cors setting to the editor that adds the crossorigin="anonymous" attribute to link tags added by the StyleSheetLoader. #TINY-1909
- Fixed a bug where trying to remove formatting with a collapsed selection range would throw an exception. #GH-4636
- Fixed a bug in the image plugin that caused updating figures to split contenteditable elements. #GH-4563
- Fixed a bug that was causing incorrect viewport calculations for fixed position UI elements. #TINY-1897
- Fixed a bug where inline formatting would cause the delete key to do nothing. #TINY-1900
-Version 4.8.4 (2018-10-23)
- Added support for the HTML5 `main` element. #TINY-1877
- Changed the keyboard shortcut to move focus to contextual toolbars to Ctrl+F9. #TINY-1812
- Fixed a bug where content css could not be loaded from another domain. #TINY-1891
- Fixed a bug on FireFox where the cursor would get stuck between two contenteditable false inline elements located inside of the same block element divided by a BR. #TINY-1878
- Fixed a bug with the insertContent method where nonbreaking spaces would be inserted incorrectly. #TINY-1868
- Fixed a bug where the toolbar of the inline editor would not be visible in some scenarios. #TINY-1862
- Fixed a bug where removing the editor while more than one notification was open would throw an error. #TINY-1845
- Fixed a bug where the menubutton would be rendered on top of the menu if the viewport didn't have enough height. #TINY-1678
- Fixed a bug with the annotations api where annotating collapsed selections caused problems. #TBS-2449
- Fixed a bug where wbr elements were being transformed into whitespace when using the Paste Plugin's paste as text setting. #GH-4638
- Fixed a bug where the Search and Replace didn't replace spaces correctly. #GH-4632
- Fixed a bug with sublist items not persisting selection. #GH-4628
- Fixed a bug with mceInsertRawHTML command not working as expected. #GH-4625
-Version 4.8.3 (2018-09-13)
- Fixed a bug where the Wordcount Plugin didn't correctly count words within tables on IE11. #TINY-1770
- Fixed a bug where it wasn't possible to move the caret out of a table on IE11 and Firefox. #TINY-1682
- Fixed a bug where merging empty blocks didn't work as expected, sometimes causing content to be deleted. #TINY-1781
- Fixed a bug where the Textcolor Plugin didn't show the correct current color. #TINY-1810
- Fixed a bug where clear formatting with a collapsed selection would sometimes clear formatting from more content than expected. #TINY-1813 #TINY-1821
- Fixed a bug with the Table Plugin where it wasn't possible to keyboard navigate to the caption. #TINY-1818
-Version 4.8.2 (2018-08-09)
- Moved annotator from "experimental" to "annotator" object on editor. #TBS-2398
- Improved the multiclick normalization across browsers. #TINY-1788
- Fixed a bug where running getSelectedBlocks with a collapsed selection between block elements would produce incorrect results. #TINY-1787
- Fixed a bug where the ScriptLoaders loadScript method would not work as expected in FireFox when loaded on the same page as a ShadowDOM polyfill. #TINY-1786
- Removed reference to ShadowDOM event.path as Blink based browsers now support event.composedPath. #TINY-1785
- Fixed a bug where a reference to localStorage would throw an "access denied" error in IE11 with strict security settings. #TINY-1782
- Fixed a bug where pasting using the toolbar button on an inline editor in IE11 would cause a looping behaviour. #TINY-1768
-Version 4.8.1 (2018-07-26)
- Fixed a bug where the content of inline editors was being cleaned on every call of `editor.save()`. #TINY-1783
- Fixed a bug where the arrow of the Inlite Theme toolbar was being rendered incorrectly in RTL mode. #TINY-1776
- Fixed a bug with the Paste Plugin where pasting after inline contenteditable false elements moved the caret to the end of the line. #TINY-1758
-Version 4.8.0 (2018-06-27)
- Added new "experimental" object in editor, with initial Annotator API. #TBS-2374
- Fixed a bug where deleting paragraphs inside of table cells would delete the whole table cell. #TINY-1759
- Fixed a bug in the Table Plugin where removing row height set on the row properties dialog did not update the table. #TINY-1730
- Fixed a bug with the font select toolbar item didn't update correctly. #TINY-1683
- Fixed a bug where all bogus elements would not be deleted when removing an inline editor. #TINY-1669
-Version 4.7.13 (2018-05-16)
- Fixed a bug where Edge 17 wouldn't be able to select images or tables. #TINY-1679
- Fixed issue where whitespace wasn't preserved when the editor was initialized on pre elements. #TINY-1649
- Fixed a bug with the fontselect dropdowns throwing an error if the editor was hidden in Firefox. #TINY-1664
- Fixed a bug where it wasn't possible to merge table cells on IE 11. #TINY-1671
- Fixed a bug where textcolor wasn't applying properly on IE 11 in some situations. #TINY-1663
- Fixed a bug where the justifyfull command state wasn't working correctly. #TINY-1677
- Fixed a bug where the styles wasn't updated correctly when resizing some tables. #TINY-1668
- Added missing code menu item from the default menu config. #TINY-1648
- Added new align button for combining the separate align buttons into a menu button. #TINY-1652
-Version 4.7.12 (2018-05-03)
- Added an option to filter out image svg data urls.
- Added support for html5 details and summary elements.
- Changed so the mce-abs-layout-item css rule targets html instead of body. Patch contributed by nazar-pc.
- Fixed a bug where the "read" step on the mobile theme was still present on android mobile browsers.
- Fixed a bug where all images in the editor document would reload on any editor change.
- Fixed a bug with the Table Plugin where ObjectResized event wasn't being triggered on column resize.
- Fixed so the selection is set to the first suitable caret position after editor.setContent called.
- Fixed so links with xlink:href attributes are filtered correctly to prevent XSS.
- Fixed a bug on IE11 where pasting content into an inline editor initialized on a heading element would create new editable elements.
- Fixed a bug where readonly mode would not work as expected when the editor contained contentEditable=true elements.
- Fixed a bug where the Link Plugin would throw an error when used together with the webcomponents polyfill. Patch contributed by 4esnog.
- Fixed a bug where the "Powered by TinyMCE" branding link would break on XHTML pages. Patch contributed by tistre.
- Fixed a bug where the same id would be used in the blobcache for all pasted images. Patch contributed by thorn0.
-Version 4.7.11 (2018-04-11)
- Added a new imagetools_credentials_hosts option to the Imagetools Plugin.
- Fixed a bug where toggling a list containing empty LIs would throw an error. Patch contributed by bradleyke.
- Fixed a bug where applying block styles to a text with the caret at the end of the paragraph would select all text in the paragraph.
- Fixed a bug where toggling on the Spellchecker Plugin would trigger isDirty on the editor.
- Fixed a bug where it was possible to enter content into selection bookmark spans.
- Fixed a bug where if a non paragraph block was configured in forced_root_block the editor.getContent method would return incorrect values with an empty editor.
- Fixed a bug where dropdown menu panels stayed open and fixed in position when dragging dialog windows.
- Fixed a bug where it wasn't possible to extend table cells with the space button in Safari.
- Fixed a bug where the setupeditor event would thrown an error when using the Compat3x Plugin.
- Fixed a bug where an error was thrown in FontInfo when called on a detached element.
-Version 4.7.10 (2018-04-03)
- Removed the "read" step from the mobile theme.
- Added normalization of triple clicks across browsers in the editor.
- Added a `hasFocus` method to the editor that checks if the editor has focus.
- Added correct icon to the Nonbreaking Plugin menu item.
- Fixed so the `getContent`/`setContent` methods work even if the editor is not initialized.
- Fixed a bug with the Media Plugin where query strings were being stripped from youtube links.
- Fixed a bug where image styles were changed/removed when opening and closing the Image Plugin dialog.
- Fixed a bug in the Table Plugin where some table cell styles were not correctly added to the content html.
- Fixed a bug in the Spellchecker Plugin where it wasn't possible to change the spellchecker language.
- Fixed so the the unlink action in the Link Plugin has a menu item and can be added to the contextmenu.
- Fixed a bug where it wasn't possible to keyboard navigate to the start of an inline element on a new line within the same block element.
- Fixed a bug with the Text Color Plugin where if used with an inline editor located at the bottom of the screen the colorpicker could appear off screen.
- Fixed a bug with the UndoManager where undo levels were being added for nbzwsp characters.
- Fixed a bug with the Table Plugin where the caret would sometimes be lost when keyboard navigating up through a table.
- Fixed a bug where FontInfo.getFontFamily would throw an error when called on a removed editor.
- Fixed a bug in Firefox where undo levels were not being added correctly for some specific operations.
- Fixed a bug where initializing an inline editor inside of a table would make the whole table resizeable.
- Fixed a bug where the fake cursor that appears next to tables on Firefox was positioned incorrectly when switching to fullscreen.
- Fixed a bug where zwsp's weren't trimmed from the output from `editor.getContent({ format: 'text' })`.
- Fixed a bug where the fontsizeselect/fontselect toolbar items showed the body info rather than the first possible caret position info on init.
- Fixed a bug where it wasn't possible to select all content if the editor only contained an inline boundary element.
- Fixed a bug where `content_css` urls with query strings wasn't working.
- Fixed a bug in the Table Plugin where some table row styles were removed when changing other styles in the row properties dialog.
-Version 4.7.9 (2018-02-27)
- Fixed a bug where the editor target element didn't get the correct style when removing the editor.
-Version 4.7.8 (2018-02-26)
- Fixed an issue with the Help Plugin where the menuitem name wasn't lowercase.
- Fixed an issue on MacOS where text and bold text did not have the same line-height in the autocomplete dropdown in the Link Plugin dialog.
- Fixed a bug where the "paste as text" option in the Paste Plugin didn't work.
- Fixed a bug where dialog list boxes didn't get positioned correctly in documents with scroll.
- Fixed a bug where the Inlite Theme didn't use the Table Plugin api to insert correct tables.
- Fixed a bug where the Inlite Theme panel didn't hide on blur in a correct way.
- Fixed a bug where placing the cursor before a table in Firefox would scroll to the bottom of the table.
- Fixed a bug where selecting partial text in table cells with rowspans and deleting would produce faulty tables.
- Fixed a bug where the Preview Plugin didn't work on Safari due to sandbox security.
- Fixed a bug where table cell selection using the keyboard threw an error.
- Fixed so the font size and font family doesn't toggle the text but only sets the selected format on the selected text.
- Fixed so the built-in spellchecking on Chrome and Safari creates an undo level when replacing words.
-Version 4.7.7 (2018-02-19)
- Added a border style selector to the advanced tab of the Image Plugin.
- Added better controls for default table inserted by the Table Plugin.
- Added new `table_responsive_width` option to the Table Plugin that controls whether to use pixel or percentage widths.
- Fixed a bug where the Link Plugin text didn't update when a URL was pasted using the context menu.
- Fixed a bug with the Spellchecker Plugin where using "Add to dictionary" in the context menu threw an error.
- Fixed a bug in the Media Plugin where the preview node for iframes got default width and height attributes that interfered with width/height styles.
- Fixed a bug where backslashes were being added to some font family names in Firefox in the fontselect toolbar item.
- Fixed a bug where errors would be thrown when trying to remove an editor that had not yet been fully initialized.
- Fixed a bug where the Imagetools Plugin didn't update the images atomically.
- Fixed a bug where the Fullscreen Plugin was throwing errors when being used on an inline editor.
- Fixed a bug where drop down menus weren't positioned correctly in inline editors on scroll.
- Fixed a bug with a semicolon missing at the end of the bundled javascript files.
- Fixed a bug in the Table Plugin with cursor navigation inside of tables where the cursor would sometimes jump into an incorrect table cells.
- Fixed a bug where indenting a table that is a list item using the "Increase indent" button would create a nested table.
- Fixed a bug where text nodes containing only whitespace were being wrapped by paragraph elements.
- Fixed a bug where whitespace was being inserted after br tags inside of paragraph tags.
- Fixed a bug where converting an indented paragraph to a list item would cause the list item to have extra padding.
- Fixed a bug where Copy/Paste in an editor with a lot of content would cause the editor to scroll to the top of the content in IE11.
- Fixed a bug with a memory leak in the DragHelper. Path contributed by ben-mckernan.
- Fixed a bug where the advanced tab in the Media Plugin was being shown even if it didn't contain anything. Patch contributed by gabrieeel.
- Fixed an outdated eventname in the EventUtils. Patch contributed by nazar-pc.
- Fixed an issue where the Json.parse function would throw an error when being used on a page with strict CSP settings.
- Fixed so you can place the curser before and after table elements within the editor in Firefox and Edge/IE.
-Version 4.7.6 (2018-01-29)
- Fixed a bug in the jquery integration where it threw an error saying that "global is not defined".
- Fixed a bug where deleting a table cell whose previous sibling was set to contenteditable false would create a corrupted table.
- Fixed a bug where highlighting text in an unfocused editor did not work correctly in IE11/Edge.
- Fixed a bug where the table resize handles were not being repositioned when activating the Fullscreen Plugin.
- Fixed a bug where the Imagetools Plugin dialog didn't honor editor RTL settings.
- Fixed a bug where block elements weren't being merged correctly if you deleted from after a contenteditable false element to the beginning of another block element.
- Fixed a bug where TinyMCE didn't work with module loaders like webpack.
-Version 4.7.5 (2018-01-22)
- Fixed bug with the Codesample Plugin where it wasn't possible to edit codesamples when the editor was in inline mode.
- Fixed bug where focusing on the status bar broke the keyboard navigation functionality.
- Fixed bug where an error would be thrown on Edge by the Table Plugin when pasting using the PowerPaste Plugin.
- Fixed bug in the Table Plugin where selecting row border style from the dropdown menu in advanced row properties would throw an error.
- Fixed bug with icons being rendered incorrectly on Chrome on Mac OS.
- Fixed bug in the Textcolor Plugin where the font color and background color buttons wouldn't trigger an ExecCommand event.
- Fixed bug in the Link Plugin where the url field wasn't forced LTR.
- Fixed bug where the Nonbreaking Plugin incorrectly inserted spaces into tables.
- Fixed bug with the inline theme where the toolbar wasn't repositioned on window resize.
-Version 4.7.4 (2017-12-05)
- Fixed bug in the Nonbreaking Plugin where the nonbreaking_force_tab setting was being ignored.
- Fixed bug in the Table Plugin where changing row height incorrectly converted column widths to pixels.
- Fixed bug in the Table Plugin on Edge and IE11 where resizing the last column after resizing the table would cause invalid column heights.
- Fixed bug in the Table Plugin where keyboard navigation was not normalized between browsers.
- Fixed bug in the Table Plugin where the colorpicker button would show even without defining the colorpicker_callback.
- Fixed bug in the Table Plugin where it wasn't possible to set the cell background color.
- Fixed bug where Firefox would throw an error when intialising an editor on an element that is hidden or not yet added to the DOM.
- Fixed bug where Firefox would throw an error when intialising an editor inside of a hidden iframe.
-Version 4.7.3 (2017-11-23)
- Added functionality to open the Codesample Plugin dialog when double clicking on a codesample. Patch contributed by dakuzen.
- Fixed bug where undo/redo didn't work correctly with some formats and caret positions.
- Fixed bug where the color picker didn't show up in Table Plugin dialogs.
- Fixed bug where it wasn't possible to change the width of a table through the Table Plugin dialog.
- Fixed bug where the Charmap Plugin couldn't insert some special characters.
- Fixed bug where editing a newly inserted link would not actually edit the link but insert a new link next to it.
- Fixed bug where deleting all content in a table cell made it impossible to place the caret into it.
- Fixed bug where the vertical alignment field in the Table Plugin cell properties dialog didn't do anything.
- Fixed bug where an image with a caption showed two sets of resize handles in IE11.
- Fixed bug where pressing the enter button inside of an h1 with contenteditable set to true would sometimes produce a p tag.
- Fixed bug with backspace not working as expected before a noneditable element.
- Fixed bug where operating on tables with invalid rowspans would cause an error to be thrown.
- Fixed so a real base64 representation of the image is available on the blobInfo that the images_upload_handler gets called with.
- Fixed so the image upload tab is available when the images_upload_handler is defined (and not only when the images_upload_url is defined).
-Version 4.7.2 (2017-11-07)
- Added newly rewritten Table Plugin.
- Added support for attributes with colon in valid_elements and addValidElements.
- Added support for dailymotion short url in the Media Plugin. Patch contributed by maat8.
- Added support for converting to half pt when converting font size from px to pt. Patch contributed by danny6514.
- Added support for location hash to the Autosave plugin to make it work better with SPAs using hash routing.
- Added support for merging table cells when pasting a table into another table.
- Changed so the language packs are only loaded once. Patch contributed by 0xor1.
- Simplified the css for inline boundaries selection by switching to an attribute selector.
- Fixed bug where an error would be thrown on editor initialization if the window.getSelection() returned null.
- Fixed bug where holding down control or alt keys made the keyboard navigation inside an inline boundary not work as expected.
- Fixed bug where applying formats in IE11 produced extra, empty paragraphs in the editor.
- Fixed bug where the Word Count Plugin didn't count some mathematical operators correctly.
- Fixed bug where removing an inline editor removed the element that the editor had been initialized on.
- Fixed bug where setting the selection to the end of an editable container caused some formatting problems.
- Fixed bug where an error would be thrown sometimes when an editor was removed because of the selection bookmark was being stored asynchronously.
- Fixed a bug where an editor initialized on an empty list did not contain any valid cursor positions.
- Fixed a bug with the Context Menu Plugin and webkit browsers on Mac where right-clicking inside a table would produce an incorrect selection.
- Fixed bug where the Image Plugin constrain proportions setting wasn't working as expected.
- Fixed bug where deleting the last character in a span with decorations produced an incorrect element when typing.
- Fixed bug where focusing on inline editors made the toolbar flicker when moving between elements quickly.
- Fixed bug where the selection would be stored incorrectly in inline editors when the mouseup event was fired outside the editor body.
- Fixed bug where toggling bold at the end of an inline boundary would toggle off the whole word.
- Fixed bug where setting the skin to false would not stop the loading of some skin css files.
- Fixed bug in mobile theme where pinch-to-zoom would break after exiting the editor.
- Fixed bug where sublists of a fully selected list would not be switched correctly when changing list style.
- Fixed bug where inserting media by source would break the UndoManager.
- Fixed bug where inserting some content into the editor with a specific selection would replace some content incorrectly.
- Fixed bug where selecting all content with ctrl+a in IE11 caused problems with untoggling some formatting.
- Fixed bug where the Search and Replace Plugin left some marker spans in the editor when undoing and redoing after replacing some content.
- Fixed bug where the editor would not get a scrollbar when using the Fullscreen and Autoresize plugins together.
- Fixed bug where the font selector would stop working correctly after selecting fonts three times.
- Fixed so pressing the enter key inside of an inline boundary inserts a br after the inline boundary element.
- Fixed a bug where it wasn't possible to use tab navigation inside of a table that was inside of a list.
- Fixed bug where end_container_on_empty_block would incorrectly remove elements.
- Fixed bug where content_styles weren't added to the Preview Plugin iframe.
- Fixed so the beforeSetContent/beforeGetContent events are preventable.
- Fixed bug where changing height value in Table Plugin advanced tab didn't do anything.
- Fixed bug where it wasn't possible to remove formatting from content in beginning of table cell.
-Version 4.7.1 (2017-10-09)
- Fixed bug where theme set to false on an inline editor produced an extra div element after the target element.
- Fixed bug where the editor drag icon was misaligned with the branding set to false.
- Fixed bug where doubled menu items were not being removed as expected with the removed_menuitems setting.
- Fixed bug where the Table of contents plugin threw an error when initialized.
- Fixed bug where it wasn't possible to add inline formats to text selected right to left.
- Fixed bug where the paste from plain text mode did not work as expected.
- Fixed so the style previews do not set color and background color when selected.
- Fixed bug where the Autolink plugin didn't work as expected with some formats applied on an empty editor.
- Fixed bug where the Textpattern plugin were throwing errors on some patterns.
- Fixed bug where the Save plugin saved all editors instead of only the active editor. Patch contributed by dannoe.
-Version 4.7.0 (2017-10-03)
- Added new mobile ui that is specifically designed for mobile devices.
- Updated the default skin to be more modern and white since white is preferred by most implementations.
- Restructured the default menus to be more similar to common office suites like Google Docs.
- Fixed so theme can be set to false on both inline and iframe editor modes.
- Fixed bug where inline editor would add/remove the visualblocks css multiple times.
- Fixed bug where selection wouldn't be properly restored when editor lost focus and commands where invoked.
- Fixed bug where toc plugin would generate id:s for headers even though a toc wasn't inserted into the content.
- Fixed bug where is wasn't possible to drag/drop contents within the editor if paste_data_images where set to true.
- Fixed bug where getParam and close in WindowManager would get the first opened window instead of the last opened window.
- Fixed bug where delete would delete between cells inside a table in Firefox.
-Version 4.6.7 (2017-09-18)
- Fixed bug where paste wasn't working in IOS.
- Fixed bug where the Word Count Plugin didn't count some mathematical operators correctly.
- Fixed bug where inserting a list in a table caused the cell to expand in height.
- Fixed bug where pressing enter in a list located inside of a table deleted list items instead of inserting new list item.
- Fixed bug where copy and pasting table cells produced inconsistent results.
- Fixed bug where initializing an editor with an ID of 'length' would throw an exception.
- Fixed bug where it was possible to split a non merged table cell.
- Fixed bug where copy and pasting a list with a very specific selection into another list would produce a nested list.
- Fixed bug where copy and pasting ordered lists sometimes produced unordered lists.
- Fixed bug where padded elements inside other elements would be treated as empty.
- Added some missing translations to Image, Link and Help plugins.
- Fixed so you can resize images inside a figure element.
- Fixed bug where an inline TinyMCE editor initialized on a table did not set selection on load in Chrome.
- Fixed the positioning of the inlite toolbar when the target element wasn't big enough to fit the toolbar.
-Version 4.6.6 (2017-08-30)
- Fixed so that notifications wrap long text content instead of bleeding outside the notification element.
- Fixed so the content_style css is added after the skin and custom stylesheets.
- Fixed bug where it wasn't possible to remove a table with the Cut button.
- Fixed bug where the center format wasn't getting the same font size as the other formats in the format preview.
- Fixed bug where the wordcount plugin wasn't counting hyphenated words correctly.
- Fixed bug where all content pasted into the editor was added to the end of the editor.
- Fixed bug where enter keydown on list item selection only deleted content and didn't create a new line.
- Fixed bug where destroying the editor while the content css was still loading caused error notifications on Firefox.
- Fixed bug where undoing cut operation in IE11 left some unwanted html in the editor content.
- Fixed bug where enter keydown would throw an error in IE11.
- Fixed bug where duplicate instances of an editor were added to the editors array when using the createEditor API.
- Fixed bug where the formatter applied formats on the wrong content when spellchecker was activated.
- Fixed bug where switching formats would reset font size on child nodes.
- Fixed bug where the table caption element weren't always the first descendant to the table tag.
- Fixed bug where pasting some content into the editor on chrome some newlines were removed.
- Fixed bug where it wasn't possible to remove a list if a list item was a table element.
- Fixed bug where copy/pasting partial selections of tables wouldn't produce a proper table.
- Fixed bug where the searchreplace plugin could not find consecutive spaces.
- Fixed bug where background color wasn't applied correctly on some partially selected contents.
-Version 4.6.5 (2017-08-02)
- Added new inline_boundaries_selector that allows you to specify the elements that should have boundaries.
- Added new local upload feature this allows the user to upload images directly from the image dialog.
- Added a new api for providing meta data for plugins. It will show up in the help dialog if it's provided.
- Fixed so that the notifications created by the notification manager are more screen reader accessible.
- Fixed bug where changing the list format on multiple selected lists didn't change all of the lists.
- Fixed bug where the nonbreaking plugin would insert multiple undo levels when pressing the tab key.
- Fixed bug where delete/backspace wouldn't render a caret when all editor contents where deleted.
- Fixed bug where delete/backspace wouldn't render a caret if the deleted element was a single contentEditable false element.
- Fixed bug where the wordcount plugin wouldn't count words correctly if word where typed after applying a style format.
- Fixed bug where the wordcount plugin would count mathematical formulas as multiple words for example 1+1=2.
- Fixed bug where formatting of triple clicked blocks on Chrome/Safari would result in styles being added outside the visual selection.
- Fixed bug where paste would add the contents to the end of the editor area when inline mode was used.
- Fixed bug where toggling off bold formatting on text entered in a new paragraph would add an extra line break.
- Fixed bug where autolink plugin would only produce a link on every other consecutive link on Firefox.
- Fixed bug where it wasn't possible to select all contents if the content only had one pre element.
- Fixed bug where sizzle would produce lagging behavior on some sites due to repaints caused by feature detection.
- Fixed bug where toggling off inline formats wouldn't include the space on selected contents with leading or trailing spaces.
- Fixed bug where the cut operation in UI wouldn't work in Chrome.
- Fixed bug where some legacy editor initialization logic would throw exceptions about editor settings not being defined.
- Fixed bug where it wasn't possible to apply text color to links if they where part of a non collapsed selection.
- Fixed bug where an exception would be thrown if the user selected a video element and then moved the focus outside the editor.
- Fixed bug where list operations didn't work if there where block elements inside the list items.
- Fixed bug where applying block formats to lists wrapped in block elements would apply to all elements in that wrapped block.
-Version 4.6.4 (2017-06-13)
- Fixed bug where the editor would move the caret when clicking on the scrollbar next to a content editable false block.
- Fixed bug where the text color select dropdowns wasn't placed correctly when they didn't fit the width of the screen.
- Fixed bug where the default editor line height wasn't working for mixed font size contents.
- Fixed bug where the content css files for inline editors were loaded multiple times for multiple editor instances.
- Fixed bug where the initial value of the font size/font family dropdowns wasn't displayed.
- Fixed bug where the I18n api was not supporting arrays as the translation replacement values.
- Fixed bug where chrome would display "The given range isn't in document." errors for invalid ranges passed to setRng.
- Fixed bug where the compat3x plugin wasn't working since the global tinymce references wasn't resolved correctly.
- Fixed bug where the preview plugin wasn't encoding the base url passed into the iframe contents producing a xss bug.
- Fixed bug where the dom parser/serializer wasn't handling some special elements like noframes, title and xmp.
- Fixed bug where the dom parser/serializer wasn't handling cdata sections with comments inside.
- Fixed bug where the editor would scroll to the top of the editable area if a dialog was closed in inline mode.
- Fixed bug where the link dialog would not display the right rel value if rel_list was configured.
- Fixed bug where the context menu would select images on some platforms but not others.
- Fixed bug where the filenames of images were not retained on dragged and drop into the editor from the desktop.
- Fixed bug where the paste plugin would misrepresent newlines when pasting plain text and having forced_root_block configured.
- Fixed so that the error messages for the imagetools plugin is more human readable.
- Fixed so the internal validate setting for the parser/serializer can't be set from editor initialization settings.
-Version 4.6.3 (2017-05-30)
- Fixed bug where the arrow keys didn't work correctly when navigating on nested inline boundary elements.
- Fixed bug where delete/backspace didn't work correctly on nested inline boundary elements.
- Fixed bug where image editing didn't work on subsequent edits of the same image.
- Fixed bug where charmap descriptions wouldn't properly wrap if they exceeded the width of the box.
- Fixed bug where the default image upload handler only accepted 200 as a valid http status code.
- Fixed so rel on target=_blank links gets forced with only noopener instead of both noopener and noreferrer.
-Version 4.6.2 (2017-05-23)
- Fixed bug where the SaxParser would run out of memory on very large documents.
- Fixed bug with formatting like font size wasn't applied to del elements.
- Fixed bug where various api calls would be throwing exceptions if they where invoked on a removed editor instance.
- Fixed bug where the branding position would be incorrect if the editor was inside a hidden tab and then later showed.
- Fixed bug where the color levels feature in the imagetools dialog wasn't working properly.
- Fixed bug where imagetools dialog wouldn't pre-load images from CORS domains, before trying to prepare them for editing.
- Fixed bug where the tab key would move the caret to the next table cell if being pressed inside a list inside a table.
- Fixed bug where the cut/copy operations would loose parent context like the current format etc.
- Fixed bug with format preview not working on invalid elements excluded by valid_elements.
- Fixed bug where blocks would be merged in incorrect order on backspace/delete.
- Fixed bug where zero length text nodes would cause issues with the undo logic if there where iframes present.
- Fixed bug where the font size/family select lists would throw errors if the first node was a comment.
- Fixed bug with csp having to allow local script evaluation since it was used to detect global scope.
- Fixed bug where CSP required a relaxed option for javascript: URLs in unsupported legacy browsers.
- Fixed bug where a fake caret would be rendered for td with the contenteditable=false.
- Fixed bug where typing would be blocked on IE 11 when within a nested contenteditable=true/false structure.
-Version 4.6.1 (2017-05-10)
- Added configuration option to list plugin to disable tab indentation.
- Fixed bug where format change on very specific content could cause the selection to change.
- Fixed bug where TinyMCE could not be lazyloaded through jquery integration.
- Fixed bug where entities in style attributes weren't decoded correctly on paste in webkit.
- Fixed bug where fontsize_formats option had been renamed incorrectly.
- Fixed bug with broken backspace/delete behaviour between contenteditable=false blocks.
- Fixed bug where it wasn't possible to backspace to the previous line with the inline boundaries functionality turned on.
- Fixed bug where is wasn't possible to move caret left and right around a linked image with the inline boundaries functionality turned on.
- Fixed bug where pressing enter after/before hr element threw exception. Patch contributed bradleyke.
- Fixed so the CSS in the visualblocks plugin doesn't overwrite background color. Patch contributed by Christian Rank.
- Fixed bug where multibyte characters weren't encoded correctly. Patch contributed by James Tarkenton.
- Fixed bug where shift-click to select within contenteditable=true fields wasn't working.
-Version 4.6.0 (2017-05-04)
- Dropped support for IE 8-10 due to market share and lack of support from Microsoft. See tinymce docs for details.
- Added an inline boundary caret position feature that makes it easier to type at the beginning/end of links/code elements.
- Added a help plugin that adds a button and a dialog showing the editor shortcuts and loaded plugins.
- Added an inline_boundaries option that allows you to disable the inline boundary feature if it's not desired.
- Added a new ScrollIntoView event that allows you to override the default scroll to element behavior.
- Added role and aria- attributes as valid elements in the default valid elements config.
- Added new internal flag for PastePreProcess/PastePostProcess this is useful to know if the paste was coming from an external source.
- Added new ignore function to UndoManager this works similar to transact except that it doesn't add an undo level by default.
- Fixed so that urls gets retained for images when being edited. This url is then passed on to the upload handler.
- Fixed so that the editors would be initialized on readyState interactive instead of complete.
- Fixed so that the init event of the editor gets fired once all contentCSS files have been properly loaded.
- Fixed so that width/height of the editor gets taken from the textarea element if it's explicitly specified in styles.
- Fixed so that keep_styles set to false no longer clones class/style from the previous paragraph on enter.
- Fixed so that the default line-height is 1.2em to avoid zwnbsp characters from producing text rendering glitches on Windows.
- Fixed so that loading errors of content css gets presented by a notification message.
- Fixed so figure image elements can be linked when selected this wraps the figure image in a anchor element.
- Fixed bug where it wasn't possible to copy/paste rows with colspans by using the table copy/paste feature.
- Fixed bug where the protect setting wasn't properly applied to header/footer parts when using the fullpage plugin.
- Fixed bug where custom formats that specified upper case element names where not applied correctly.
- Fixed bug where some screen readers weren't reading buttons due to an aria specific fix for IE 8.
- Fixed bug where cut wasn't working correctly on iOS due to it's clipboard API not working correctly.
- Fixed bug where Edge would paste div elements instead of paragraphs when pasting plain text.
- Fixed bug where the textpattern plugin wasn't dealing with trailing punctuations correctly.
- Fixed bug where image editing would some times change the image format from jpg to png.
- Fixed bug where some UI elements could be inserted into the toolbar even if they where not registered.
- Fixed bug where it was possible to click the TD instead of the character in the character map and that caused an exception.
- Fixed bug where the font size/font family dropdowns would sometimes show an incorrect value due to css not being loaded in time.
- Fixed bug with the media plugin inserting undefined instead of retaining size when media_dimensions was set to false.
- Fixed bug with deleting images when forced_root_blocks where set to false.
- Fixed bug where input focus wasn't properly handled on nested content editable elements.
- Fixed bug where Chrome/Firefox would throw an exception when selecting images due to recent change of setBaseAndExtent support.
- Fixed bug where malformed blobs would throw exceptions now they are simply ignored.
- Fixed bug where backspace/delete wouldn't work properly in some cases where all contents was selected in WebKit.
- Fixed bug with Angular producing errors since it was expecting events objects to be patched with their custom properties.
- Fixed bug where the formatter would apply formatting to spellchecker errors now all bogus elements are excluded.
- Fixed bug with backspace/delete inside table caption elements wouldn't behave properly on IE 11.
- Fixed bug where typing after a contenteditable false inline element could move the caret to the end of that element.
- Fixed bug where backspace before/after contenteditable false blocks wouldn't properly remove the right element.
- Fixed bug where backspace before/after contenteditable false inline elements wouldn't properly empty the current block element.
- Fixed bug where vertical caret navigation with a custom line-height would sometimes match incorrect positions.
- Fixed bug with paste on Edge where character encoding wasn't handled properly due to a browser bug.
- Fixed bug with paste on Edge where extra fragment data was inserted into the contents when pasting.
- Fixed bug with pasting contents when having a whole block element selected on WebKit could cause WebKit spans to appear.
- Fixed bug where the visualchars plugin wasn't working correctly showing invisible nbsp characters.
- Fixed bug where browsers would hang if you tried to load some malformed html contents.
- Fixed bug where the init call promise wouldn't resolve if the specified selector didn't find any matching elements.
- Fixed bug where the Schema isValidChild function was case sensitive.
-Version 4.5.3 (2017-02-01)
- Added keyboard navigation for menu buttons when the menu is in focus.
- Added api to the list plugin for setting custom classes/attributes on lists.
- Added validation for the anchor plugin input field according to W3C id naming specifications.
- Fixed bug where media placeholders were removed after resize with the forced_root_block setting set to false.
- Fixed bug where deleting selections with similar sibling nodes sometimes deleted the whole document.
- Fixed bug with inlite theme where several toolbars would appear scrolling when more than one instance of the editor was in use.
- Fixed bug where the editor would throw error with the fontselect plugin on hidden editor instances in Firefox.
- Fixed bug where the background color would not stretch to the font size.
- Fixed bug where font size would be removed when changing background color.
- Fixed bug where the undomanager trimmed away whitespace between nodes on undo/redo.
- Fixed bug where media_dimensions=false in media plugin caused the editor to throw an error.
- Fixed bug where IE was producing font/u elements within links on paste.
- Fixed bug where some button tooltips were broken when compat3x was in use.
- Fixed bug where backspace/delete/typeover would remove the caption element.
- Fixed bug where powerspell failed to function when compat3x was enabled.
- Fixed bug where it wasn't possible to apply sub/sup on text with large font size.
- Fixed bug where pre tags with spaces weren't treated as content.
- Fixed bug where Meta+A would select the entire document instead of all contents in nested ce=true elements.
-Version 4.5.2 (2017-01-04)
- Added missing keyboard shortcut description for the underline menu item in the format menu.
- Fixed bug where external blob urls wasn't properly handled by editor upload logic. Patch contributed by David Oviedo.
- Fixed bug where urls wasn't treated as a single word by the wordcount plugin.
- Fixed bug where nbsp characters wasn't treated as word delimiters by the wordcount plugin.
- Fixed bug where editor instance wasn't properly passed to the format preview logic. Patch contributed by NullQuery.
- Fixed bug where the fake caret wasn't hidden when you moved selection to a cE=false element.
- Fixed bug where it wasn't possible to edit existing code sample blocks.
- Fixed bug where it wasn't possible to delete editor contents if the selection included an empty block.
- Fixed bug where the formatter wasn't expanding words on some international characters. Patch contributed by Martin Larochelle.
- Fixed bug where the open link feature wasn't working correctly on IE 11.
- Fixed bug where enter before/after a cE=false block wouldn't properly padd the paragraph with an br element.
- Fixed so font size and font family select boxes always displays a value by using the runtime style as a fallback.
- Fixed so missing plugins will be logged to console as warnings rather than halting the initialization of the editor.
- Fixed so splitbuttons become normal buttons in advlist plugin if styles are empty. Patch contributed by René Schleusner.
- Fixed so you can multi insert rows/cols by selecting table cells and using insert rows/columns.
-Version 4.5.1 (2016-12-07)
- Fixed bug where the lists plugin wouldn't initialize without the advlist plugins if served from cdn.
- Fixed bug where selectors with "*" would cause the style format preview to throw an error.
- Fixed bug with toggling lists off on lists with empty list items would throw an error.
- Fixed bug where editing images would produce non existing blob uris.
- Fixed bug where the offscreen toc selection would be treated as the real toc element.
- Fixed bug where the aria level attribute for element path would have an incorrect start index.
- Fixed bug where the offscreen selection of cE=false that where very wide would be shown onscreen. Patch contributed by Steven Bufton.
- Fixed so the default_link_target gets applied to links created by the autolink plugin.
- Fixed so that the name attribute gets removed by the anchor plugin if editing anchors.
-Version 4.5.0 (2016-11-23)
- Added new toc plugin allows you to insert table of contents based on editor headings.
- Added new auto complete menu to all url fields. Adds history, link to anchors etc.
- Added new sidebar api that allows you to add custom sidebar panels and buttons to toggle these.
- Added new insert menu button that allows you to have multiple insert functions under the same menu button.
- Added new open link feature to ctrl+click, alt+enter and context menu.
- Added new media_embed_handler option to allow the media plugin to be populated with custom embeds.
- Added new support for editing transparent images using the image tools dialog.
- Added new images_reuse_filename option to allow filenames of images to be retained for upload.
- Added new security feature where links with target="_blank" will by default get rel="noopener noreferrer".
- Added new allow_unsafe_link_target to allow you to opt-out of the target="_blank" security feature.
- Added new style_formats_autohide option to automatically hide styles based on context.
- Added new codesample_content_css option to specify where the code sample prism css is loaded from.
- Added new support for Japanese/Chinese word count following the unicode standards on this.
- Added new fragmented undo levels this dramatically reduces flicker on contents with iframes.
- Added new live previews for complex elements like table or lists.
- Fixed bug where it wasn't possible to properly tab between controls in a dialog with a disabled form item control.
- Fixed bug where firefox would generate a rectangle on elements produced after/before a cE=false elements.
- Fixed bug with advlist plugin not switching list element format properly in some edge cases.
- Fixed bug where col/rowspans wasn't correctly computed by the table plugin in some cases.
- Fixed bug where the table plugin would thrown an error if object_resizing was disabled.
- Fixed bug where some invalid markup would cause issues when running in XHTML mode. Patch contributed by Charles Bourasseau.
- Fixed bug where the fullscreen class wouldn't be removed properly when closing dialogs.
- Fixed bug where the PastePlainTextToggle event wasn't fired by the paste plugin when the state changed.
- Fixed bug where table the row type wasn't properly updated in table row dialog. Patch contributed by Matthias Balmer.
- Fixed bug where select all and cut wouldn't place caret focus back to the editor in WebKit. Patch contributed by Daniel Jalkut.
- Fixed bug where applying cell/row properties to multiple cells/rows would reset other unchanged properties.
- Fixed bug where some elements in the schema would have redundant/incorrect children.
- Fixed bug where selector and target options would cause issues if used together.
- Fixed bug where drag/drop of images from desktop on chrome would thrown an error.
- Fixed bug where cut on WebKit/Blink wouldn't add an undo level.
- Fixed bug where IE 11 would scroll to the cE=false elements when they where selected.
- Fixed bug where keys like F5 wouldn't work when a cE=false element was selected.
- Fixed bug where the undo manager wouldn't stop the typing state when commands where executed.
- Fixed bug where unlink on wrapped links wouldn't work properly.
- Fixed bug with drag/drop of images on WebKit where the image would be deleted form the source editor.
- Fixed bug where the visual characters mode would be disabled when contents was extracted from the editor.
- Fixed bug where some browsers would toggle of formats applied to the caret when clicking in the editor toolbar.
- Fixed bug where the custom theme function wasn't working correctly.
- Fixed bug where image option for custom buttons required you to have icon specified as well.
- Fixed bug where the context menu and contextual toolbars would be visible at the same time and sometimes overlapping.
- Fixed bug where the noneditable plugin would double wrap elements when using the noneditable_regexp option.
- Fixed bug where tables would get padding instead of margin when you used the indent button.
- Fixed bug where the charmap plugin wouldn't properly insert non breaking spaces.
- Fixed bug where the color previews in color input boxes wasn't properly updated.
- Fixed bug where the list items of previous lists wasn't merged in the right order.
- Fixed bug where it wasn't possible to drag/drop inline-block cE=false elements on IE 11.
- Fixed bug where some table cell merges would produce incorrect rowspan/colspan.
- Fixed so the font size of the editor defaults to 14px instead of 11px this can be overridden by custom css.
- Fixed so wordcount is debounced to reduce cpu hogging on larger texts.
- Fixed so tinymce global gets properly exported as a module when used with some module bundlers.
- Fixed so it's possible to specify what css properties you want to preview on specific formats.
- Fixed so anchors are contentEditable=false while within the editor.
- Fixed so selected contents gets wrapped in a inline code element by the codesample plugin.
- Fixed so conditional comments gets properly stripped independent of case. Patch contributed by Georgii Dolzhykov.
- Fixed so some escaped css sequences gets properly handled. Patch contributed by Georgii Dolzhykov.
- Fixed so notifications with the same message doesn't get displayed at the same time.
- Fixed so F10 can be used as an alternative key to focus to the toolbar.
- Fixed various api documentation issues and typos.
- Removed layer plugin since it wasn't really ported from 3.x and there doesn't seem to be much use for it.
- Removed moxieplayer.swf from the media plugin since it wasn't used by the media plugin.
- Removed format state from the advlist plugin to be more consistent with common word processors.
-Version 4.4.3 (2016-09-01)
- Fixed bug where copy would produce an exception on Chrome.
- Fixed bug where deleting lists on IE 11 would merge in correct text nodes.
- Fixed bug where deleting partial lists with indentation wouldn't cause proper normalization.
-Version 4.4.2 (2016-08-25)
- Added new importcss_exclusive option to disable unique selectors per group.
- Added new group specific selector_converter option to importcss plugin.
- Added new codesample_languages option to apply custom languages to codesample plugin.
- Added new codesample_dialog_width/codesample_dialog_height options.
- Fixed bug where fullscreen button had an incorrect keyboard shortcut.
- Fixed bug where backspace/delete wouldn't work correctly from a block to a cE=false element.
- Fixed bug where smartpaste wasn't detecting links with special characters in them like tilde.
- Fixed bug where the editor wouldn't get proper focus if you clicked on a cE=false element.
- Fixed bug where it wasn't possible to copy/paste table rows that had merged cells.
- Fixed bug where merging cells could some times produce invalid col/rowspan attibute values.
- Fixed bug where getBody would sometimes thrown an exception now it just returns null if the iframe is clobbered.
- Fixed bug where drag/drop of cE=false element wasn't properly constrained to viewport.
- Fixed bug where contextmenu on Mac would collapse any selection to a caret.
- Fixed bug where rtl mode wasn't rendered properly when loading a language pack with the rtl flag.
- Fixed bug where Kamer word bounderies would be stripped from contents.
- Fixed bug where lists would sometimes render two dots or numbers on the same line.
- Fixed bug where the skin_url wasn't used by the inlite theme.
- Fixed so data attributes are ignored when comparing formats in the formatter.
- Fixed so it's possible to disable inline toolbars in the inlite theme.
- Fixed so template dialog gets resized if it doesn't fit the window viewport.
-Version 4.4.1 (2016-07-26)
- Added smart_paste option to paste plugin to allow disabling the paste behavior if needed.
- Fixed bug where png urls wasn't properly detected by the smart paste logic.
- Fixed bug where the element path wasn't working properly when multiple editor instances where used.
- Fixed bug with creating lists out of multiple paragraphs would just create one list item instead of multiple.
- Fixed bug where scroll position wasn't properly handled by the inlite theme to place the toolbar properly.
- Fixed bug where multiple instances of the editor using the inlite theme didn't render the toolbar properly.
- Fixed bug where the shortcut label for fullscreen mode didn't match the actual shortcut key.
- Fixed bug where it wasn't possible to select cE=false blocks using touch devices on for example iOS.
- Fixed bug where it was possible to select the child image within a cE=false on IE 11.
- Fixed so inserts of html containing lists doesn't merge with any existing lists unless it's a paste operation.
-Version 4.4.0 (2016-06-30)
- Added new inlite theme this is a more lightweight inline UI.
- Added smarter paste logic that auto detects urls in the clipboard and inserts images/links based on that.
- Added a better image resize algorithm for better image quality in the imagetools plugin.
- Fixed bug where it wasn't possible to drag/dropping cE=false elements on FF.
- Fixed bug where backspace/delete before/after a cE=false block would produce a new paragraph.
- Fixed bug where list style type css property wasn't preserved when indenting lists.
- Fixed bug where merging of lists where done even if the list style type was different.
- Fixed bug where the image_dataimg_filter function wasn't used when pasting images.
- Fixed bug where nested editable within a non editable element would cause scroll on focus in Chrome.
- Fixed so invalid targets for inline mode is blocked on initialization. We only support elements that can have children.
-Version 4.3.13 (2016-06-08)
- Added characters with a diacritical mark to charmap plugin. Patch contributed by Dominik Schilling.
- Added better error handling if the image proxy service would produce errors.
- Fixed issue with pasting list items into list items would produce nested list rather than a merged list.
- Fixed bug where table selection could get stuck in selection mode for inline editors.
- Fixed bug where it was possible to place the caret inside the resize grid elements.
- Fixed bug where it wasn't possible to place in elements horizontally adjacent cE=false blocks.
- Fixed bug where multiple notifications wouldn't be properly placed on screen.
- Fixed bug where multiple editor instance of the same id could be produces in some specific integrations.
-Version 4.3.12 (2016-05-10)
- Fixed bug where focus calls couldn't be made inside the editors PostRender event handler.
- Fixed bug where some translations wouldn't work as expected due to a bug in editor.translate.
- Fixed bug where the node change event could fire with a node out side the root of the editor.
- Fixed bug where Chrome wouldn't properly present the keyboard paste clipboard details when paste was clicked.
- Fixed bug where merged cells in tables couldn't be selected from right to left.
- Fixed bug where insert row wouldn't properly update a merged cells rowspan property.
- Fixed bug where the color input boxes preview field wasn't properly set on initialization.
- Fixed bug where IME composition inside table cells wouldn't work as expected on IE 11.
- Fixed so all shadow dom support is under and experimental flag due to flaky browser support.
-Version 4.3.11 (2016-04-25)
- Fixed bug where it wasn't possible to insert empty blocks though the API unless they where padded.
- Fixed bug where you couldn't type the Euro character on Windows.
- Fixed bug where backspace/delete from a cE=false element to a text block didn't work properly.
- Fixed bug where the text color default grid would render incorrectly.
- Fixed bug where the codesample plugin wouldn't load the css in the editor for multiple editors.
- Fixed so the codesample plugin textarea gets focused by default.
-Version 4.3.10 (2016-04-12)
- Fixed bug where the key "y" on WebKit couldn't be entered due to conflict with keycode for F10 on keypress.
-Version 4.3.9 (2016-04-12)
- Added support for focusing the contextual toolbars using keyboard.
- Added keyboard support for slider UI controls. You can no increase/decrease using arrow keys.
- Added url pattern matching for Dailymotion to media plugin. Patch contributed by Bertrand Darbon.
- Added body_class to template plugin preview. Patch contributed by Milen Petrinski.
- Added options to better override textcolor pickers with custom colors. Patch contributed by Xavier Boubert.
- Added visual arrows to inline contextual toolbars so that they point to the element being active.
- Fixed so toolbars for tables or other larger elements get better positioned below the scrollable viewport.
- Fixed bug where it was possible to click links inside cE=false blocks.
- Fixed bug where event targets wasn't properly handled in Safari Technical Preview.
- Fixed bug where drag/drop text in FF 45 would make the editor caret invisible.
- Fixed bug where the remove state wasn't properly set on editor instances when detected as clobbered.
- Fixed bug where offscreen selection of some cE=false elements would render onscreen. Patch contributed by Steven Bufton
- Fixed bug where enter would clone styles out side the root on editors inside a span. Patch contributed by ChristophKaser.
- Fixed bug where drag/drop of images into the editor didn't work correctly in FF.
- Fixed so the first item in panels for the imagetools dialog gets proper keyboard focus.
- Changed the Meta+Shift+F shortcut to Ctrl+Shift+F since Czech, Slovak, Polish languages used the first one for input.
-Version 4.3.8 (2016-03-15)
- Fixed bug where inserting HR at the end of a block element would produce an extra empty block.
- Fixed bug where links would be clickable when readonly mode was enabled.
- Fixed bug where the formatter would normalize to the wrong node on very specific content.
- Fixed bug where some nested list items couldn't be indented properly.
- Fixed bug where links where clickable in the preview dialog.
- Fixed so the alt attribute doesn't get padded with an empty value by default.
- Fixed so nested alignment works more correctly. You will now alter the alignment to the closest block parent.
-Version 4.3.7 (2016-03-02)
- Fixed bug where incorrect icons would be rendered for imagetools edit and color levels.
- Fixed bug where navigation using arrow keys inside a SelectBox didn't move up/down.
- Fixed bug where the visualblocks plugin would render borders round internal UI elements.
-Version 4.3.6 (2016-03-01)
- Added new paste_remember_plaintext_info option to allow a global disable of the plain text mode notification.
- Added new PastePlainTextToggle event that fires when plain text mode toggles on/off.
- Fixed bug where it wasn't possible to select media elements since the drag logic would snap it to mouse cursor.
- Fixed bug where it was hard to place the caret inside nested cE=true elements when the outer cE=false element was focused.
- Fixed bug where editors wouldn't properly initialize if both selector and mode where used.
- Fixed bug where IME input inside table cells would switch the IME off.
- Fixed bug where selection inside the first table cell would cause the whole table cell to get selected.
- Fixed bug where error handling of images being uploaded wouldn't properly handle faulty statuses.
- Fixed bug where inserting contents before a HR would cause an exception to be thrown.
- Fixed bug where copy/paste of Excel data would be inserted as an image.
- Fixed caret position issues with copy/paste of inline block cE=false elements.
- Fixed issues with various menu item focus bugs in Chrome. Where the focused menu bar item wasn't properly blurred.
- Fixed so the notifications have a solid background since it would be hard to read if there where text under it.
- Fixed so notifications gets animated similar to the ones used by dialogs.
- Fixed so larger images that gets pasted is handled better.
- Fixed so the window close button is more uniform on various platform and also increased it's hit area.
-Version 4.3.5 (2016-02-11)
- Npm version bump due to package not being fully updated.
-Version 4.3.4 (2016-02-11)
- Added new OpenWindow/CloseWindow events that gets fired when windows open/close.
- Added new NewCell/NewRow events that gets fired when table cells/rows are created.
- Added new Promise return value to tinymce.init makes it easier to handle initialization.
- Removed the jQuery version the jQuery plugin is now moved into the main package.
- Removed jscs from build process since eslint can now handle code style checking.
- Fixed various bugs with drag/drop of contentEditable:false elements.
- Fixed bug where deleting of very specific nested list items would result in an odd list.
- Fixed bug where lists would get merged with adjacent lists outside the editable inline root.
- Fixed bug where MS Edge would crash when closing a dialog then clicking a menu item.
- Fixed bug where table cell selection would add undo levels.
- Fixed bug where table cell selection wasn't removed when inline editor where removed.
- Fixed bug where table cell selection wouldn't work properly on nested tables.
- Fixed bug where table merge menu would be available when merging between thead and tbody.
- Fixed bug where table row/column resize wouldn't get properly removed when the editor was removed.
- Fixed bug where Chrome would scroll to the editor if there where a empty hash value in document url.
- Fixed bug where the cache suffix wouldn't work correctly with the importcss plugin.
- Fixed bug where selection wouldn't work properly on MS Edge on Windows Phone 10.
- Fixed so adjacent pre blocks gets joined into one pre block since that seems like the user intent.
- Fixed so events gets properly dispatched in shadow dom. Patch provided by Nazar Mokrynskyi.
-Version 4.3.3 (2016-01-14)
- Added new table_resize_bars configuration setting. This setting allows you to disable the table resize bars.
- Added new beforeInitialize event to tinymce.util.XHR lets you modify XHR properties before open. Patch contributed by Brent Clintel.
- Added new autolink_pattern setting to autolink plugin. Enables you to override the default autolink formats. Patch contributed by Ben Tiedt.
- Added new charmap option that lets you override the default charmap of the charmap plugin.
- Added new charmap_append option that lets you add new characters to the default charmap of the charmap plugin.
- Added new insertCustomChar event that gets fired when a character is inserted by the charmap plugin.
- Fixed bug where table cells started with a superfluous in IE10+.
- Fixed bug where table plugin would retain all BR tags when cells were merged.
- Fixed bug where media plugin would strip underscores from youtube urls.
- Fixed bug where IME input would fail on IE 11 if you typed within a table.
- Fixed bug where double click selection of a word would remove the space before the word on insert contents.
- Fixed bug where table plugin would produce exceptions when hovering tables with invalid structure.
- Fixed bug where fullscreen wouldn't scroll back to it's original position when untoggled.
- Fixed so the template plugins templates setting can be a function that gets a callback that can provide templates.
-Version 4.3.2 (2015-12-14)
- Fixed bug where the resize bars for table cells were not affected by the object_resizing property.
- Fixed bug where the contextual table toolbar would appear incorrectly if TinyMCE was initialized inline inside a table.
- Fixed bug where resizing table cells did not fire a node change event or add an undo level.
- Fixed bug where double click selection of text on IE 11 wouldn't work properly.
- Fixed bug where codesample plugin would incorrectly produce br elements inside code elements.
- Fixed bug where media plugin would strip dashes from youtube urls.
- Fixed bug where it was possible to move the caret into the table resize bars.
- Fixed bug where drag/drop into a cE=false element was possible on IE.
-Version 4.3.1 (2015-11-30)
- Fixed so it's possible to disable the table inline toolbar by setting it to false or an empty string.
- Fixed bug where it wasn't possible to resize some tables using the drag handles.
- Fixed bug where unique id:s would clash for multiple editor instances and cE=false selections.
- Fixed bug where the same plugin could be initialized multiple times.
- Fixed bug where the table inline toolbars would be displayed at the same time as the image toolbars.
- Fixed bug where the table selection rect wouldn't be removed when selecting another control element.
-Version 4.3.0 (2015-11-23)
- Added new table column/row resize support. Makes it a lot more easy to resize the columns/rows in a table.
- Added new table inline toolbar. Makes it easier to for example add new rows or columns to a table.
- Added new notification API. Lets you display floating notifications to the end user.
- Added new codesample plugin that lets you insert syntax highlighted pre elements into the editor.
- Added new image_caption to images. Lets you create images with captions using a HTML5 figure/figcaption elements.
- Added new live previews of embeded videos. Lets you play the video right inside the editor.
- Added new setDirty method and "dirty" event to the editor. Makes it easier to track the dirty state change.
- Added new setMode method to Editor instances that lets you dynamically switch between design/readonly.
- Added new core support for contentEditable=false elements within the editor overrides the browsers broken behavior.
- Rewrote the noneditable plugin to use the new contentEditable false core logic.
- Fixed so the dirty state doesn't set to false automatically when the undo index is set to 0.
- Fixed the Selection.placeCaretAt so it works better on IE when the coordinate is between paragraphs.
- Fixed bug where data-mce-bogus="all" element contents where counted by the word count plugin.
- Fixed bug where contentEditable=false elements would be indented by the indent buttons.
- Fixed bug where images within contentEditable=false would be selected in WebKit on mouse click.
- Fixed bug in DOMUntils split method where the replacement parameter wouldn't work on specific cases.
- Fixed bug where the importcss plugin would import classes from the skin content css file.
- Fixed so all button variants have a wrapping span for it's text to make it easier to skin.
- Fixed so it's easier to exit pre block using the arrow keys.
- Fixed bug where listboxes with fix widths didn't render correctly.
-Version 4.2.8 (2015-11-13)
- Fixed bug where it was possible to delete tables as the inline root element if all columns where selected.
- Fixed bug where the UI buttons active state wasn't properly updated due to recent refactoring of that logic.
-Version 4.2.7 (2015-10-27)
- Fixed bug where backspace/delete would remove all formats on the last paragraph character in WebKit/Blink.
- Fixed bug where backspace within a inline format element with a bogus caret container would move the caret.
- Fixed bug where backspace/delete on selected table cells wouldn't add an undo level.
- Fixed bug where script tags embedded within the editor could sometimes get a mce- prefix prepended to them
- Fixed bug where validate: false option could produce an error to be thrown from the Serialization step.
- Fixed bug where inline editing of a table as the root element could let the user delete that table.
- Fixed bug where inline editing of a table as the root element wouldn't properly handle enter key.
- Fixed bug where inline editing of a table as the root element would normalize the selection incorrectly.
- Fixed bug where inline editing of a list as the root element could let the user delete that list.
- Fixed bug where inline editing of a list as the root element could let the user split that list.
- Fixed bug where resize handles would be rendered on editable root elements such as table.
-Version 4.2.6 (2015-09-28)
- Added capability to set request headers when using XHRs.
- Added capability to upload local images automatically default delay is set to 30 seconds after editing images.
- Added commands ids mceEditImage, mceAchor and mceMedia to be avaiable from execCommand.
- Added Edge browser to saucelabs grunt task. Patch contributed by John-David Dalton.
- Fixed bug where blob uris not produced by tinymce would produce HTML invalid markup.
- Fixed bug where selection of contents of a nearly empty editor in Edge would sometimes fail.
- Fixed bug where color styles woudln't be retained on copy/paste in Blink/Webkit.
- Fixed bug where the table plugin would throw an error when inserting rows after a child table.
- Fixed bug where the template plugin wouldn't handle functions as variable replacements.
- Fixed bug where undo/redo sometimes wouldn't work properly when applying formatting collapsed ranges.
- Fixed bug where shift+delete wouldn't do a cut operation on Blink/WebKit.
- Fixed bug where cut action wouldn't properly store the before selection bookmark for the undo level.
- Fixed bug where backspace in side an empty list element on IE would loose editor focus.
- Fixed bug where the save plugin wouldn't enable the buttons when a change occurred.
- Fixed bug where Edge wouldn't initialize the editor if a document.domain was specified.
- Fixed bug where enter key before nested images would sometimes not properly expand the previous block.
- Fixed bug where the inline toolbars wouldn't get properly hidden when blurring the editor instance.
- Fixed bug where Edge would paste Chinese characters on some Windows 10 installations.
- Fixed bug where IME would loose focus on IE 11 due to the double trailing br bug fix.
- Fixed bug where the proxy url in imagetools was incorrect. Patch contributed by Wong Ho Wang.
-Version 4.2.5 (2015-08-31)
- Added fullscreen capability to embedded youtube and vimeo videos.
- Fixed bug where the uploadImages call didn't work on IE 10.
- Fixed bug where image place holders would be uploaded by uploadImages call.
- Fixed bug where images marked with bogus would be uploaded by the uploadImages call.
- Fixed bug where multiple calls to uploadImages would result in decreased performance.
- Fixed bug where pagebreaks were editable to imagetools patch contributed by Rasmus Wallin.
- Fixed bug where the element path could cause too much recursion exception.
- Fixed bug for domains containing ".min". Patch contributed by Loïc Février.
- Fixed so validation of external links to accept a number after www. Patch contributed by Victor Carvalho.
- Fixed so the charmap is exposed though execCommand. Patch contributed by Matthew Will.
- Fixed so that the image uploads are concurrent for improved performance.
- Fixed various grammar problems in inline documentation. Patches provided by nikolas.
-Version 4.2.4 (2015-08-17)
- Added picture as a valid element to the HTML 5 schema. Patch contributed by Adam Taylor.
- Fixed bug where contents would be duplicated on drag/drop within the same editor.
- Fixed bug where floating/alignment of images on Edge wouldn't work properly.
- Fixed bug where it wasn't possible to drag images on IE 11.
- Fixed bug where image selection on Edge would sometimes fail.
- Fixed bug where contextual toolbars icons wasn't rendered properly when using the toolbar_items_size.
- Fixed bug where searchreplace dialog doesn't get prefilled with the selected text.
- Fixed bug where fragmented matches wouldn't get properly replaced by the searchreplace plugin.
- Fixed bug where enter key wouldn't place the caret if was after a trailing space within an inline element.
- Fixed bug where the autolink plugin could produce multiple links for the same text on Gecko.
- Fixed bug where EditorUpload could sometimes throw an exception if the blob wasn't found.
- Fixed xss issues with media plugin not properly filtering out some script attributes.
-Version 4.2.3 (2015-07-30)
- Fixed bug where image selection wasn't possible on Edge due to incompatible setBaseAndExtend API.
- Fixed bug where image blobs urls where not properly destroyed by the imagetools plugin.
- Fixed bug where keyboard shortcuts wasn't working correctly on IE 8.
- Fixed skin issue where the borders of panels where not visible on IE 8.
-Version 4.2.2 (2015-07-22)
- Fixed bug where float panels were not being hidden on inline editor blur when fixed_toolbar_container config option was in use.
- Fixed bug where combobox states wasn't properly updated if contents where updated without keyboard.
- Fixed bug where pasting into textbox or combobox would move the caret to the end of text.
- Fixed bug where removal of bogus span elements before block elements would remove whitespace between nodes.
- Fixed bug where repositioning of inline toolbars where async and producing errors if the editor was removed from DOM to early. Patch by iseulde.
- Fixed bug where element path wasn't working correctly. Patch contributed by iseulde.
- Fixed bug where menus wasn't rendered correctly when custom images where added to a menu. Patch contributed by Naim Hammadi.
-Version 4.2.1 (2015-06-29)
- Fixed bug where back/forward buttons in the browser would render blob images as broken images.
- Fixed bug where Firefox would throw regexp to big error when replacing huge base64 chunks.
- Fixed bug rendering issues with resize and context toolbars not being placed properly until next animation frame.
- Fixed bug where the rendering of the image while cropping would some times not be centered correctly.
- Fixed bug where listbox items with submenus would me selected as active.
- Fixed bug where context menu where throwing an error when rendering.
- Fixed bug where resize both option wasn't working due to resent addClass API change. Patch contributed by Jogai.
- Fixed bug where a hideAll call for container rendered inline toolbars would throw an error.
- Fixed bug where onclick event handler on combobox could cause issues if element.id was a function by some polluting libraries.
- Fixed bug where listboxes wouldn't get proper selected sub menu item when using link_list or image_list.
- Fixed so the UI controls are as wide as 4.1.x to avoid wrapping controls in toolbars.
- Fixed so the imagetools dialog is adaptive for smaller screen sizes.
-Version 4.2.0 (2015-06-25)
- Added new flat default skin to make the UI more modern.
- Added new imagetools plugin, lets you crop/resize and apply filters to images.
- Added new contextual toolbars support to the API lets you add floating toolbars for specific CSS selectors.
- Added new promise feature fill as tinymce.util.Promise.
- Added new built in image upload feature lets you upload any base64 encoded image within the editor as files.
- Fixed bug where resize handles would appear in the right position in the wrong editor when switching between resizable content in different inline editors.
- Fixed bug where tables would not be inserted in inline mode due to previous float panel fix.
- Fixed bug where floating panels would remain open when focus was lost on inline editors.
- Fixed bug where cut command on Chrome would thrown a browser security exception.
- Fixed bug where IE 11 sometimes would report an incorrect size for images in the image dialog.
- Fixed bug where it wasn't possible to remove inline formatting at the end of block elements.
- Fixed bug where it wasn't possible to delete table cell contents when cell selection was vertical.
- Fixed bug where table cell wasn't emptied from block elements if delete/backspace where pressed in empty cell.
- Fixed bug where cmd+shift+arrow didn't work correctly on Firefox mac when selecting to start/end of line.
- Fixed bug where removal of bogus elements would sometimes remove whitespace between nodes.
- Fixed bug where the resize handles wasn't updated when the main window was resized.
- Fixed so script elements gets removed by default to prevent possible XSS issues in default config implementations.
- Fixed so the UI doesn't need manual reflows when using non native layout managers.
- Fixed so base64 encoded images doesn't slow down the editor on modern browsers while editing.
- Fixed so all UI elements uses touch events to improve mobile device support.
- Removed the touch click quirks patch for iOS since it did more harm than good.
- Removed the non proportional resize handles since. Unproportional resize can still be done by holding the shift key.
-Version 4.1.10 (2015-05-05)
- Fixed bug where plugins loaded with compat3x would sometimes throw errors when loading using the jQuery version.
- Fixed bug where extra empty paragraphs would get deleted in WebKit/Blink due to recent Quriks fix.
- Fixed bug where the editor wouldn't work properly on IE 12 due to some required browser sniffing.
- Fixed bug where formatting shortcut keys where interfering with Mac OS X screenshot keys.
- Fixed bug where the caret wouldn't move to the next/previous line boundary on Cmd+Left/Right on Gecko.
- Fixed bug where it wasn't possible to remove formats from very specific nested contents.
- Fixed bug where undo levels wasn't produced when typing letters using the shift or alt+ctrl modifiers.
- Fixed bug where the dirty state wasn't properly updated when typing using the shift or alt+ctrl modifiers.
- Fixed bug where an error would be thrown if an autofocused editor was destroyed quickly after its initialization. Patch provided by thorn0.
- Fixed issue with dirty state not being properly updated on redo operation.
- Fixed issue with entity decoder not handling incorrectly written numeric entities.
- Fixed issue where some PI element values wouldn't be properly encoded.
-Version 4.1.9 (2015-03-10)
- Fixed bug where indentation wouldn't work properly for non list elements.
- Fixed bug with image plugin not pulling the image dimensions out correctly if a custom document_base_url was used.
- Fixed bug where ctrl+alt+[1-9] would conflict with the AltGr+[1-9] on Windows. New shortcuts is ctrl+shift+[1-9].
- Fixed bug with removing formatting on nodes in inline mode would sometimes include nodes outside the editor body.
- Fixed bug where extra nbsp:s would be inserted when you replaced a word surrounded by spaces using insertContent.
- Fixed bug with pasting from Google Docs would produce extra strong elements and line feeds.
-Version 4.1.8 (2015-03-05)
- Added new html5 sizes attribute to img elements used together with srcset.
- Added new elementpath option that makes it possible to disable the element path but keep the statusbar.
- Added new option table_style_by_css for the table plugin to set table styling with css rather than table attributes.
- Added new link_assume_external_targets option to prompt the user to prepend http:// prefix if the supplied link does not contain a protocol prefix.
- Added new image_prepend_url option to allow a custom base path/url to be added to images.
- Added new table_appearance_options option to make it possible to disable some options.
- Added new image_title option to make it possible to alter the title of the image, disabled by default.
- Fixed bug where selection starting from out side of the body wouldn't produce a proper selection range on IE 11.
- Fixed bug where pressing enter twice before a table moves the cursor in the table and causes a javascript error.
- Fixed bug where advanced image styles were not respected.
- Fixed bug where the less common Shift+Delete didn't produce a proper cut operation on WebKit browsers.
- Fixed bug where image/media size constrain logic would produce NaN when handling non number values.
- Fixed bug where internal classes where removed by the removeformat command.
- Fixed bug with creating links table cell contents with a specific selection would throw a exceptions on WebKit/Blink.
- Fixed bug where valid_classes option didn't work as expected according to docs. Patch provided by thorn0.
- Fixed bug where jQuery plugin would patch the internal methods multiple times. Patch provided by Drew Martin.
- Fixed bug where backspace key wouldn't delete the current selection of newly formatted content.
- Fixed bug where type over of inline formatting elements wouldn't properly keep the format on WebKit/Blink.
- Fixed bug where selection needed to be properly normalized on modern IE versions.
- Fixed bug where Command+Backspace didn't properly delete the whole line of text but the previous word.
- Fixed bug where UI active states wheren't properly updated on IE if you placed caret within the current range.
- Fixed bug where delete/backspace on WebKit/Blink would remove span elements created by the user.
- Fixed bug where delete/backspace would produce incorrect results when deleting between two text blocks with br elements.
- Fixed bug where captions where removed when pasting from MS Office.
- Fixed bug where lists plugin wouldn't properly remove fully selected nested lists.
- Fixed bug where the ttf font used for icons would throw an warning message on Gecko on Mac OS X.
- Fixed a bug where applying a color to text did not update the undo/redo history.
- Fixed so shy entities gets displayed when using the visualchars plugin.
- Fixed so removeformat removes ins/del by default since these might be used for strikethough.
- Fixed so multiple language packs can be loaded and added to the global I18n data structure.
- Fixed so transparent color selection gets treated as a normal color selection. Patch contributed by Alexander Hofbauer.
- Fixed so it's possible to disable autoresize_overflow_padding, autoresize_bottom_margin options by setting them to false.
- Fixed so the charmap plugin shows the description of the character in the dialog. Patch contributed by Jelle Hissink.
- Removed address from the default list of block formats since it tends to be missused.
- Fixed so the pre block format is called preformatted to make it more verbose.
- Fixed so it's possible to context scope translation strings this isn't needed most of the time.
- Fixed so the max length of the width/height input fields of the media dialog is 5 instead of 3.
- Fixed so drag/dropped contents gets properly processed by paste plugin since it's basically a paste. Patch contributed by Greg Fairbanks.
- Fixed so shortcut keys for headers is ctrl+alt+[1-9] instead of ctrl+[1-9] since these are for switching tabs in the browsers.
- Fixed so "u" doesn't get converted into a span element by the legacy input filter. Since this is now a valid HTML5 element.
- Fixed font families in order to provide appropriate web-safe fonts.
-Version 4.1.7 (2014-11-27)
- Added HTML5 schema support for srcset, source and picture. Patch contributed by mattheu.
- Added new cache_suffix setting to enable cache busting by producing unique urls.
- Added new paste_convert_word_fake_lists option to enable users to disable the fake lists convert logic.
- Fixed so advlist style changes adds undo levels for each change.
- Fixed bug where WebKit would sometimes produce an exception when the autolink plugin where looking for URLs.
- Fixed bug where IE 7 wouldn't be rendered properly due to aggressive css compression.
- Fixed bug where DomQuery wouldn't accept window as constructor element.
- Fixed bug where the color picker in 3.x dialogs wouldn't work properly. Patch contributed by Callidior.
- Fixed bug where the image plugin wouldn't respect the document_base_url.
- Fixed bug where the jQuery plugin would fail to append to elements named array prototype names.
-Version 4.1.6 (2014-10-08)
- Fixed bug with clicking on the scrollbar of the iframe would cause a JS error to be thrown.
- Fixed bug where null would produce an exception if you passed it to selection.setRng.
- Fixed bug where Ctrl/Cmd+Tab would indent the current list item if you switched tabs in the browser.
- Fixed bug where pasting empty cells from Excel would result in a broken table.
- Fixed bug where it wasn't possible to switch back to default list style type.
- Fixed issue where the select all quirk fix would fire for other modifiers than Ctrl/Cmd combinations.
- Replaced jake with grunt since it is more mainstream and has better plugin support.
-Version 4.1.5 (2014-09-09)
- Fixed bug where sometimes the resize rectangles wouldn't properly render on images on WebKit/Blink.
- Fixed bug in list plugin where delete/backspace would merge empty LI elements in lists incorrectly.
- Fixed bug where empty list elements would result in empty LI elements without it's parent container.
- Fixed bug where backspace in empty caret formatted element could produce an type error exception of Gecko.
- Fixed bug where lists pasted from word with a custom start index above 9 wouldn't be properly handled.
- Fixed bug where tabfocus plugin would tab out of the editor instance even if the default action was prevented.
- Fixed bug where tabfocus wouldn't tab properly to other adjacent editor instances.
- Fixed bug where the DOMUtils setStyles wouldn't properly removed or update the data-mce-style attribute.
- Fixed bug where dialog select boxes would be placed incorrectly if document.body wasn't statically positioned.
- Fixed bug where pasting would sometimes scroll to the top of page if the user was using the autoresize plugin.
- Fixed bug where caret wouldn't be properly rendered by Chrome when clicking on the iframes documentElement.
- Fixed so custom images for menubutton/splitbutton can be provided. Patch contributed by Naim Hammadi.
- Fixed so the default action of windows closing can be prevented by blocking the default action of the close event.
- Fixed so nodeChange and focus of the editor isn't automatically performed when opening sub dialogs.
-Version 4.1.4 (2014-08-21)
- Added new media_filter_html option to media plugin that blocks any conditional comments, scripts etc within a video element.
- Added new content_security_policy option allows you to set custom policy for iframe contents. Patch contributed by Francois Chagnon.
- Fixed bug where activate/deactivate events wasn't firing properly when switching between editors.
- Fixed bug where placing the caret on iOS was difficult due to a WebKit bug with touch events.
- Fixed bug where the resize helper wouldn't render properly on older IE versions.
- Fixed bug where resizing images inside tables on older IE versions would sometimes fail depending mouse position.
- Fixed bug where editor.insertContent would produce an exception when inserting select/option elements.
- Fixed bug where extra empty paragraphs would be produced if block elements where inserted inside span elements.
- Fixed bug where the spellchecker menu item wouldn't be properly checked if spell checking was started before it was rendered.
- Fixed bug where the DomQuery filter function wouldn't remove non elements from collection.
- Fixed bug where document with custom document.domain wouldn't properly render the editor.
- Fixed bug where IE 8 would throw exception when trying to enter invalid color values into colorboxes.
- Fixed bug where undo manager could incorrectly add an extra undo level when custom resize handles was removed.
- Fixed bug where it wouldn't be possible to alter cell properties properly on table cells on IE 8.
- Fixed so the color picker button in table dialog isn't shown unless you include the colorpicker plugin or add your own custom color picker.
- Fixed so activate/deactivate events fire when windowManager opens a window since.
- Fixed so the table advtab options isn't separated by an underscore to normalize naming with image_advtab option.
- Fixed so the table cell dialog has proper padding when the advanced tab in disabled.
-Version 4.1.3 (2014-07-29)
- Added event binding logic to tinymce.util.XHR making it possible to override headers and settings before any request is made.
- Fixed bug where drag events wasn't fireing properly on older IE versions since the event handlers where bound to document.
- Fixed bug where drag/dropping contents within the editor on IE would force the contents into plain text mode even if it was internal content.
- Fixed bug where IE 7 wouldn't open menus properly due to a resize bug in the browser auto closing them immediately.
- Fixed bug where the DOMUtils getPos logic wouldn't produce a valid coordinate inside the body if the body was positioned non static.
- Fixed bug where the element path and format state wasn't properly updated if you had the wordcount plugin enabled.
- Fixed bug where a comment at the beginning of source would produce an exception in the formatter logic.
- Fixed bug where setAttrib/getAttrib on null would throw exception together with any hooked attributes like style.
- Fixed bug where table sizes wasn't properly retained when copy/pasting on WebKit/Blink.
- Fixed bug where WebKit/Blink would produce colors in RGB format instead of the forced HEX format when deleting contents.
- Fixed bug where the width attribute wasn't updated on tables if you changed the size inside the table dialog.
- Fixed bug where control selection wasn't properly handled when the caret was placed directly after an image.
- Fixed bug where selecting the contents of table cells using the selection.select method wouldn't place the caret properly.
- Fixed bug where the selection state for images wasn't removed when placing the caret right after an image on WebKit/Blink.
- Fixed bug where all events wasn't properly unbound when and editor instance was removed or destroyed by some external innerHTML call.
- Fixed bug where it wasn't possible or very hard to select images on iOS when the onscreen keyboard was visible.
- Fixed so auto_focus can take a boolean argument this will auto focus the last initialized editor might be useful for single inits.
- Fixed so word auto detect lists logic works better for faked lists that doesn't have specific markup.
- Fixed so nodeChange gets fired on mouseup as it used to before 4.1.1 we optimized that event to fire less often.
- Removed the finish menu item from spellchecker menu since it's redundant you can stop spellchecking by toggling menu item or button.
-Version 4.1.2 (2014-07-15)
- Added offset/grep to DomQuery class works basically the same as it's jQuery equivalent.
- Fixed bug where backspace/delete or setContent with an empty string would remove header data when using the fullpage plugin.
- Fixed bug where tinymce.remove with a selector not matching any editors would remove all editors.
- Fixed bug where resizing of the editor didn't work since the theme was calling setStyles instead of setStyle.
- Fixed bug where IE 7 would fail to append html fragments to iframe document when using DomQuery.
- Fixed bug where the getStyle DOMUtils method would produce an exception if it was called with null as it's element.
- Fixed bug where the paste plugin would remove the element if the none of the paste_webkit_styles rules matched the current style.
- Fixed bug where contextmenu table items wouldn't work properly on IE since it would some times fire an incorrect selection change.
- Fixed bug where the padding/border values wasn't used in the size calculation for the body size when using autoresize. Patch contributed by Matt Whelan.
- Fixed bug where conditional word comments wouldn't be properly removed when pasting plain text.
- Fixed bug where resizing would sometime fail on IE 11 when the mouseup occurred inside the resizable element.
- Fixed so the iframe gets initialized without any inline event handlers for better CSP support. Patch contributed by Matt Whelan.
- Fixed so the tinymce.dom.Sizzle is the latest version of sizzle this resolves the document context bug.
-Version 4.1.1 (2014-07-08)
- Fixed bug where pasting plain text on some WebKit versions would result in an empty line.
- Fixed bug where resizing images inside tables on IE 11 wouldn't work properly.
- Fixed bug where IE 11 would sometimes throw "Invalid argument" exception when editor contents was set to an empty string.
- Fixed bug where document.activeElement would throw exceptions on IE 9 when that element was hidden or removed from dom.
- Fixed bug where WebKit/Blink sometimes produced br elements with the Apple-interchange-newline class.
- Fixed bug where table cell selection wasn't properly removed when copy/pasting table cells.
- Fixed bug where pasting nested list items from Word wouldn't produce proper semantic nested lists.
- Fixed bug where right clicking using the contextmenu plugin on WebKit/Blink on Mac OS X would select the target current word or line.
- Fixed bug where it wasn't possible to alter table cell properties on IE 8 using the context menu.
- Fixed bug where the resize helper wouldn't be correctly positioned on older IE versions.
- Fixed bug where fullpage plugin would produce an error if you didn't specify a doctype encoding.
- Fixed bug where anchor plugin would get the name/id of the current element even if it wasn't anchor element.
- Fixed bug where visual aids for tables wouldn't be properly disabled when changing the border size.
- Fixed bug where some control selection events wasn't properly fired on older IE versions.
- Fixed bug where table cell selection on older IE versions would prevent resizing of images.
- Fixed bug with paste_data_images paste option not working properly on modern IE versions.
- Fixed bug where custom elements with underscores in the name wasn't properly parsed/serialized.
- Fixed bug where applying inline formats to nested list elements would produce an incorrect formatting result.
- Fixed so it's possible to hide items from elements path by using preventDefault/stopPropagation.
- Fixed so inline mode toolbar gets rendered right aligned if the editable element positioned to the documents right edge.
- Fixed so empty inline elements inside empty block elements doesn't get removed if configured to be kept intact.
- Fixed so DomQuery parentsUntil/prevUntil/nextUntil supports selectors/elements/filters etc.
- Fixed so legacyoutput plugin overrides fontselect and fontsizeselect controls and handles font elements properly.
-Version 4.1.0 (2014-06-18)
- Added new file_picker_callback option to replace the old file_browser_callback the latter will still work though.
- Added new custom colors to textcolor plugin will be displayed if a color picker is provided also shows the latest colors.
- Added new color_picker_callback option to enable you to add custom color pickers to the editor.
- Added new advanced tabs to table/cell/row dialogs to enable you to select colors for border/background.
- Added new colorpicker plugin that lets you select colors from a hsv color picker.
- Added new tinymce.util.Color class to handle color parsing and converting.
- Added new colorpicker UI widget element lets you add a hsv color picker to any form/window.
- Added new textpattern plugin that allows you to use markdown like text patterns to format contents.
- Added new resize helper element that shows the current width & height while resizing.
- Added new "once" method to Editor and EventDispatcher enables since callback execution events.
- Added new jQuery like class under tinymce.dom.DomQuery it's exposed on editor instances (editor.$) and globally under (tinymce.$).
- Fixed so the default resize method for images are proportional shift/ctrl can be used to make an unproportional size.
- Fixed bug where the image_dimensions option of the image plugin would cause exceptions when it tried to update the size.
- Fixed bug where table cell dialog class field wasn't properly updated when editing an a table cell with an existing class.
- Fixed bug where Safari on Mac would produce webkit-fake-url for pasted images so these are now removed.
- Fixed bug where the nodeChange event would get fired before the selection was changed when clicking inside the current selection range.
- Fixed bug where valid_classes option would cause exception when it removed internal prefixed classes like mce-item-.
- Fixed bug where backspace would cause navigation in IE 8 on an inline element and after a caret formatting was applied.
- Fixed so placeholder images produced by the media plugin gets selected when inserted/edited.
- Fixed so it's possible to drag in images when the paste_data_images option is enabled. Might be useful for mail clients.
- Fixed so images doesn't get a width/height applied if the image_dimensions option is set to false useful for responsive contents.
- Fixed so it's possible to pass in an optional arguments object for the nodeChanged function to be passed to all nodechange event listeners.
- Fixed bug where media plugin embed code didn't update correctly.
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-/**
- * Jquery integration plugin.
- *
- * @class tinymce.core.JqueryIntegration
- * @private
- */
-!function(){var f,c,u,p,d,s=[];d="undefined"!=typeof global?global:window,p=d.jQuery;function v(){
-// Reference to tinymce needs to be lazily evaluated since tinymce
-// might be loaded through the compressor or other means
-return d.tinymce}p.fn.tinymce=function(o){var e,t,i,l=this,r="";
-// No match then just ignore the call
-if(!l.length)return l;
-// Get editor instance
-if(!o)return v()?v().get(l[0].id):null;l.css("visibility","hidden");function n(){var a=[],c=0;
-// Apply patches to the jQuery object, only once
-u||(m(),u=!0),
-// Create an editor instance for each matched node
-l.each(function(e,t){var n,i=t.id,r=o.oninit;
-// Generate unique id for target element if needed
-i||(t.id=i=v().DOM.uniqueId()),
-// Only init the editor once
-v().get(i)||(
-// Create editor instance and render it
-n=v().createEditor(i,o),a.push(n),n.on("init",function(){var e,t=r;l.css("visibility",""),
-// Run this if the oninit setting is defined
-// this logic will fire the oninit callback ones each
-// matched editor instance is initialized
-r&&++c==a.length&&("string"==typeof t&&(e=-1===t.indexOf(".")?null:v().resolve(t.replace(/\.\w+$/,"")),t=v().resolve(t)),
-// Call the oninit function with the object
-t.apply(e||v(),a))}))}),
-// Render the editor instances in a separate loop since we
-// need to have the full editors array used in the onInit calls
-p.each(a,function(e,t){t.render()})}
-// Load TinyMCE on demand, if we need to
-if(d.tinymce||c||!(e=o.script_url))
-// Delay the init call until tinymce is loaded
-1===c?s.push(n):n();else{c=1,t=e.substring(0,e.lastIndexOf("/")),
-// Check if it's a dev/src version they want to load then
-// make sure that all plugins, themes etc are loaded in source mode as well
--1!=e.indexOf(".min")&&(r=".min"),
-// Setup tinyMCEPreInit object this will later be used by the TinyMCE
-// core script to locate other resources like CSS files, dialogs etc
-// You can also predefined a tinyMCEPreInit object and then it will use that instead
-d.tinymce=d.tinyMCEPreInit||{base:t,suffix:r},
-// url contains gzip then we assume it's a compressor
--1!=e.indexOf("gzip")&&(i=o.language||"en",e=e+(/\?/.test(e)?"&":"?")+"js=true&core=true&suffix="+escape(r)+"&themes="+escape(o.theme||"modern")+"&plugins="+escape(o.plugins||"")+"&languages="+(i||""),
-// Check if compressor script is already loaded otherwise setup a basic one
-d.tinyMCE_GZ||(d.tinyMCE_GZ={start:function(){function n(e){v().ScriptLoader.markDone(v().baseURI.toAbsolute(e))}
-// Add core languages
-n("langs/"+i+".js"),
-// Add themes with languages
-n("themes/"+o.theme+"/theme"+r+".js"),n("themes/"+o.theme+"/langs/"+i+".js"),
-// Add plugins with languages
-p.each(o.plugins.split(","),function(e,t){t&&(n("plugins/"+t+"/plugin"+r+".js"),n("plugins/"+t+"/langs/"+i+".js"))})},end:function(){}}));var a=document.createElement("script");a.type="text/javascript",a.onload=a.onreadystatechange=function(e){e=e||window.event,2===c||"load"!=e.type&&!/complete|loaded/.test(a.readyState)||(v().dom.Event.domLoaded=1,c=2,
-// Execute callback after mainscript has been loaded and before the initialization occurs
-o.script_loaded&&o.script_loaded(),n(),p.each(s,function(e,t){t()}))},a.src=e,document.body.appendChild(a)}return l},
-// Add :tinymce pseudo selector this will select elements that has been converted into editor instances
-// it's now possible to use things like $('*:tinymce') to get all TinyMCE bound elements.
-p.extend(p.expr[":"],{tinymce:function(e){var t;return!!(e.id&&"tinymce"in d&&(t=v().get(e.id))&&t.editorManager===v())}});
-// This function patches internal jQuery functions so that if
-// you for example remove an div element containing an editor it's
-// automatically destroyed by the TinyMCE API
-var m=function(){function r(e){
-// If the function is remove
-"remove"===e&&this.each(function(e,t){var n=u(t);n&&n.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(e,t){var n=v().get(t.id.replace(/_parent$/,""));n&&n.remove()})}function o(i){var e,t=this;
-// Handle set value
-/*jshint eqnull:true */if(null!=i)r.call(t),
-// Saves the contents before get/set value of textarea/div
-t.each(function(e,t){var n;(n=v().get(t.id))&&n.setContent(i)});else if(0<t.length&&(e=v().get(t[0].id)))return e.getContent()}function l(e){return!!(e&&e.length&&d.tinymce&&e.is(":tinymce"))}
-// Removes any child editor instances by looking for editor wrapper elements
-var u=function(e){var t=null;return e&&e.id&&d.tinymce&&(t=v().get(e.id)),t},s={};
-// Loads or saves contents from/to textarea if the value
-// argument is defined it will set the TinyMCE internal contents
-// Patch some setter/getter functions these will
-// now be able to set/get the contents of editor instances for
-// example $('#editorid').html('Content'); will update the TinyMCE iframe instance
-p.each(["text","html","val"],function(e,t){var a=s[t]=p.fn[t],c="text"===t;p.fn[t]=function(e){var t=this;if(!l(t))return a.apply(t,arguments);if(e!==f)return o.call(t.filter(":tinymce"),e),a.apply(t.not(":tinymce"),arguments),t;// return original set for chaining
-var i="",r=arguments;return(c?t:t.eq(0)).each(function(e,t){var n=u(t);i+=n?c?n.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g,""):n.getContent({save:!0}):a.apply(p(t),r)}),i}}),
-// Makes it possible to use $('#id').append("content"); to append contents to the TinyMCE editor iframe
-p.each(["append","prepend"],function(e,t){var n=s[t]=p.fn[t],r="prepend"===t;p.fn[t]=function(i){var e=this;return l(e)?i!==f?("string"==typeof i&&e.filter(":tinymce").each(function(e,t){var n=u(t);n&&n.setContent(r?i+n.getContent():n.getContent()+i)}),n.apply(e.not(":tinymce"),arguments),e):void 0:n.apply(e,arguments)}}),
-// Makes sure that the editor instance gets properly destroyed when the parent element is removed
-p.each(["remove","replaceWith","replaceAll","empty"],function(e,t){var n=s[t]=p.fn[t];p.fn[t]=function(){return r.call(this,t),n.apply(this,arguments)}}),s.attr=p.fn.attr,
-// Makes sure that $('#tinymce_id').attr('value') gets the editors current HTML contents
-p.fn.attr=function(e,t){var n=this,i=arguments;if(!e||"value"!==e||!l(n))return s.attr.apply(n,i);if(t!==f)return o.call(n.filter(":tinymce"),t),s.attr.apply(n.not(":tinymce"),i),n;// return original set for chaining
-var r=n[0],a=u(r);return a?a.getContent({save:!0}):s.attr.apply(p(r),i)}}}();
\ No newline at end of file
+++ /dev/null
-tinymce.addI18n('de',{
-"Redo": "Wiederholen",
-"Undo": "R\u00fcckg\u00e4ngig machen",
-"Cut": "Ausschneiden",
-"Copy": "Kopieren",
-"Paste": "Einf\u00fcgen",
-"Select all": "Alles ausw\u00e4hlen",
-"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",
-"Align left": "Linksb\u00fcndig ausrichten",
-"Align center": "Zentrieren",
-"Align right": "Rechtsb\u00fcndig ausrichten",
-"Justify": "Blocksatz",
-"Bullet list": "Aufz\u00e4hlung",
-"Numbered list": "Nummerierte Liste",
-"Decrease indent": "Einzug verkleinern",
-"Increase indent": "Einzug vergr\u00f6\u00dfern",
-"Close": "Schlie\u00dfen",
-"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\u00fctzt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Tastenkombinationen Strg+X\/C\/V.",
-"Headers": "\u00dcberschriften",
-"Header 1": "\u00dcberschrift 1",
-"Header 2": "\u00dcberschrift 2",
-"Header 3": "\u00dcberschrift 3",
-"Header 4": "\u00dcberschrift 4",
-"Header 5": "\u00dcberschrift 5",
-"Header 6": "\u00dcberschrift 6",
-"Headings": "\u00dcberschriften",
-"Heading 1": "Kopfzeile 1",
-"Heading 2": "Kopfzeile 2",
-"Heading 3": "Kopfzeile 3",
-"Heading 4": "Kopfzeile 4",
-"Heading 5": "Kopfzeile 5",
-"Heading 6": "Kopfzeile 6",
-"Preformatted": "Vorformatiert",
-"Div": "Div",
-"Pre": "Pre",
-"Code": "Code",
-"Paragraph": "Absatz",
-"Blockquote": "Blockquote",
-"Inline": "Zeichenformate",
-"Blocks": "Bl\u00f6cke",
-"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einf\u00fcgen ist nun im einfachen Textmodus. Inhalte werden ab jetzt als unformatierter Text eingef\u00fcgt, bis Sie diese Einstellung wieder ausschalten!",
-"Fonts": "Schriftarten",
-"Font Sizes": "Schriftgr\u00f6\u00dfe",
-"Class": "Klasse",
-"Browse for an image": "Bild...",
-"OR": "ODER",
-"Drop an image here": "Bild hier ablegen",
-"Upload": "Hochladen",
-"Block": "Blocksatz",
-"Align": "Ausrichten",
-"Default": "Standard",
-"Circle": "Kreis",
-"Disc": "Punkt",
-"Square": "Quadrat",
-"Lower Alpha": "Kleinbuchstaben",
-"Lower Greek": "Griechische Kleinbuchstaben",
-"Lower Roman": "R\u00f6mische Zahlen (Kleinbuchstaben)",
-"Upper Alpha": "Gro\u00dfbuchstaben",
-"Upper Roman": "R\u00f6mische Zahlen (Gro\u00dfbuchstaben)",
-"Anchor...": "Textmarke",
-"Name": "Name",
-"Id": "Kennung",
-"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Die Kennung sollte mit einem Buchstaben anfangen. Nachfolgend nur Buchstaben, Zahlen, Striche (Minus), Punkte, Kommas und Unterstriche.",
-"You have unsaved changes are you sure you want to navigate away?": "Die \u00c4nderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?",
-"Restore last draft": "Letzten Entwurf wiederherstellen",
-"Special characters...": "Sonderzeichen...",
-"Source code": "Quelltext",
-"Insert\/Edit code sample": "Codebeispiel einf\u00fcgen\/bearbeiten",
-"Language": "Sprache",
-"Code sample...": "Codebeispiel...",
-"Color Picker": "Farbwahl",
-"R": "R",
-"G": "G",
-"B": "B",
-"Left to right": "Von links nach rechts",
-"Right to left": "Von rechts nach links",
-"Emoticons...": "Emoticons...",
-"Metadata and Document Properties": "Dokument-Eigenschaften und -Metadaten",
-"Title": "Titel",
-"Keywords": "Sch\u00fcsselw\u00f6rter",
-"Description": "Beschreibung",
-"Robots": "Robots",
-"Author": "Verfasser",
-"Encoding": "Zeichenkodierung",
-"Fullscreen": "Vollbild",
-"Action": "Aktion",
-"Shortcut": "Shortcut",
-"Help": "Hilfe",
-"Address": "Adresse",
-"Focus to menubar": "Fokus auf Men\u00fcleiste",
-"Focus to toolbar": "Fokus auf Werkzeugleiste",
-"Focus to element path": "Fokus auf Elementpfad",
-"Focus to contextual toolbar": "Fokus auf kontextbezogene Werkzeugleiste",
-"Insert link (if link plugin activated)": "Link einf\u00fcgen (wenn Link-Plugin aktiviert ist)",
-"Save (if save plugin activated)": "Speichern (wenn Save-Plugin aktiviert ist)",
-"Find (if searchreplace plugin activated)": "Suchen einf\u00fcgen (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\u00fcgen\/bearbeiten",
-"Image description": "Bildbeschreibung",
-"Source": "Quelle",
-"Dimensions": "Abmessungen",
-"Constrain proportions": "Seitenverh\u00e4ltnis beibehalten",
-"General": "Allgemein",
-"Advanced": "Erweitert",
-"Style": "Stil",
-"Vertical space": "Vertikaler Abstand",
-"Horizontal space": "Horizontaler Abstand",
-"Border": "Rahmen",
-"Insert image": "Bild einf\u00fcgen",
-"Image...": "Bild...",
-"Image list": "Bildliste",
-"Rotate counterclockwise": "Gegen den Uhrzeigersinn drehen",
-"Rotate clockwise": "Im Uhrzeigersinn drehen",
-"Flip vertically": "Vertikal spiegeln",
-"Flip horizontally": "Horizontal spiegeln",
-"Edit image": "Bild bearbeiten",
-"Image options": "Bildeigenschaften",
-"Zoom in": "Ansicht vergr\u00f6\u00dfern",
-"Zoom out": "Ansicht verkleinern",
-"Crop": "Bescheiden",
-"Resize": "Skalieren",
-"Orientation": "Ausrichtung",
-"Brightness": "Helligkeit",
-"Sharpen": "Sch\u00e4rfen",
-"Contrast": "Kontrast",
-"Color levels": "Farbwerte",
-"Gamma": "Gamma",
-"Invert": "Invertieren",
-"Apply": "Anwenden",
-"Back": "Zur\u00fcck",
-"Insert date\/time": "Datum\/Uhrzeit einf\u00fcgen ",
-"Date\/time": "Datum\/Uhrzeit",
-"Insert\/Edit Link": "Link einf\u00fcgen\/bearbeiten",
-"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten",
-"Text to display": "Anzuzeigender Text",
-"Url": "URL",
-"Open link in...": "Link \u00f6ffnen in...",
-"Current window": "Aktuelles Fenster",
-"None": "Keine",
-"New window": "Neues Fenster",
-"Remove link": "Link entfernen",
-"Anchors": "Textmarken",
-"Link...": "Link...",
-"Paste or type a link": "Link einf\u00fcgen oder eintippen",
-"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"mailto:\" voranstellen?",
-"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Diese Adresse scheint ein externer Link zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"http:\/\/\" voranstellen?",
-"Link list": "Linkliste",
-"Insert video": "Video einf\u00fcgen",
-"Insert\/edit video": "Video einf\u00fcgen\/bearbeiten",
-"Insert\/edit media": "Medien einf\u00fcgen\/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\u00fcgen Sie Ihren Einbettungscode hier ein:",
-"Embed": "Einbetten",
-"Media...": "Medien...",
-"Nonbreaking space": "Gesch\u00fctztes Leerzeichen",
-"Page break": "Seitenumbruch",
-"Paste as text": "Als Text einf\u00fcgen",
-"Preview": "Vorschau",
-"Print...": "Drucken...",
-"Save": "Speichern",
-"Find": "Suchen",
-"Replace with": "Ersetzen durch",
-"Replace": "Ersetzen",
-"Replace all": "Alles ersetzen",
-"Previous": "Vorherige",
-"Next": "Weiter",
-"Find and replace...": "Suchen und ersetzen...",
-"Could not find the specified string.": "Die Zeichenfolge wurde nicht gefunden.",
-"Match case": "Gro\u00df-\/Kleinschreibung beachten",
-"Find whole words only": "Nur ganze W\u00f6rter suchen",
-"Spell check": "Rechschreibpr\u00fcfung",
-"Ignore": "Ignorieren",
-"Ignore all": "Alles Ignorieren",
-"Finish": "Ende",
-"Add to Dictionary": "Zum W\u00f6rterbuch hinzuf\u00fcgen",
-"Insert table": "Tabelle einf\u00fcgen",
-"Table properties": "Tabelleneigenschaften",
-"Delete table": "Tabelle l\u00f6schen",
-"Cell": "Zelle",
-"Row": "Zeile",
-"Column": "Spalte",
-"Cell properties": "Zelleneigenschaften",
-"Merge cells": "Zellen verbinden",
-"Split cell": "Zelle aufteilen",
-"Insert row before": "Neue Zeile davor einf\u00fcgen ",
-"Insert row after": "Neue Zeile danach einf\u00fcgen",
-"Delete row": "Zeile l\u00f6schen",
-"Row properties": "Zeileneigenschaften",
-"Cut row": "Zeile ausschneiden",
-"Copy row": "Zeile kopieren",
-"Paste row before": "Zeile davor einf\u00fcgen",
-"Paste row after": "Zeile danach einf\u00fcgen",
-"Insert column before": "Neue Spalte davor einf\u00fcgen",
-"Insert column after": "Neue Spalte danach einf\u00fcgen",
-"Delete column": "Spalte l\u00f6schen",
-"Cols": "Spalten",
-"Rows": "Zeilen",
-"Width": "Breite",
-"Height": "H\u00f6he",
-"Cell spacing": "Zellenabstand",
-"Cell padding": "Zelleninnenabstand",
-"Show caption": "Beschriftung anzeigen",
-"Left": "Linksb\u00fcndig",
-"Center": "Zentriert",
-"Right": "Rechtsb\u00fcndig",
-"Cell type": "Zellentyp",
-"Scope": "G\u00fcltigkeitsbereich",
-"Alignment": "Ausrichtung",
-"H Align": "Horizontale Ausrichtung",
-"V Align": "Vertikale Ausrichtung",
-"Top": "Oben",
-"Middle": "Mitte",
-"Bottom": "Unten",
-"Header cell": "Kopfzelle",
-"Row group": "Zeilengruppe",
-"Column group": "Spaltengruppe",
-"Row type": "Zeilentyp",
-"Header": "Kopfzeile",
-"Body": "Inhalt",
-"Footer": "Fu\u00dfzeile",
-"Border color": "Rahmenfarbe",
-"Insert template...": "Vorlage einf\u00fcgen...",
-"Templates": "Vorlagen",
-"Template": "Vorlage",
-"Text color": "Textfarbe",
-"Background color": "Hintergrundfarbe",
-"Custom...": "Benutzerdefiniert...",
-"Custom color": "Benutzerdefinierte Farbe",
-"No color": "Keine Farbe",
-"Remove color": "Farbauswahl aufheben",
-"Table of Contents": "Inhaltsverzeichnis",
-"Show blocks": "Bl\u00f6cke anzeigen",
-"Show invisible characters": "Unsichtbare Zeichen anzeigen",
-"Word count": "Anzahl der W\u00f6rter",
-"Words: {0}": "W\u00f6rter: {0}",
-"{0} words": "{0} W\u00f6rter",
-"File": "Datei",
-"Edit": "Bearbeiten",
-"Insert": "Einf\u00fcgen",
-"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- Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr Symbolleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe",
-"Image title": "Bildtitel",
-"Border width": "Rahmenbreite",
-"Border style": "Rahmenstil",
-"Error": "Fehler",
-"Warn": "Warnung",
-"Valid": "G\u00fcltig",
-"To open the popup, press Shift+Enter": "Dr\u00fccken Sie Umschalt+Eingabe, um das Popup-Fenster zu \u00f6ffnen.",
-"Rich Text Area. Press ALT-0 for help.": "Rich-Text-Bereich. Dr\u00fccken Sie Alt+0 f\u00fcr 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": "Alles",
-"Currency": "W\u00e4hrung",
-"Text": "Text",
-"Quotations": "Anf\u00fchrungszeichen",
-"Mathematical": "Mathematisch",
-"Extended Latin": "Erweitertes Latein",
-"Symbols": "Symbole",
-"Arrows": "Pfeile",
-"User Defined": "Benutzerdefiniert",
-"dollar sign": "Dollarzeichen",
-"currency sign": "W\u00e4hrungssymbol",
-"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\u00fcrkisches 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",
-"Loading emoticons...": "Emoticons werden geladen...",
-"Could not load emoticons": "Emoticons konnten nicht geladen werden",
-"People": "Menschen",
-"Animals and Nature": "Tiere und Natur",
-"Food and Drink": "Essen und Trinken",
-"Activity": "Aktivit\u00e4t",
-"Travel and Places": "Reisen und Orte",
-"Objects": "Objekte",
-"Flags": "Flaggen",
-"Characters": "Zeichen",
-"Characters (no spaces)": "Zeichen (ohne Leerzeichen)",
-"Error: Form submit field collision.": "Fehler: Kollision der Formularbest\u00e4tigungsfelder.",
-"Error: No form element found.": "Fehler: Kein Formularelement gefunden.",
-"Update": "Aktualisieren",
-"Color swatch": "Farbpalette",
-"Turquoise": "T\u00fcrkis",
-"Green": "Gr\u00fcn",
-"Blue": "Blau",
-"Purple": "Violett",
-"Navy Blue": "Marineblau",
-"Dark Turquoise": "Dunkelt\u00fcrkis",
-"Dark Green": "Dunkelgr\u00fcn",
-"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",
-"Black": "Schwarz",
-"White": "Wei\u00df",
-"Switch to or from fullscreen mode": "Vollbildmodus umschalten",
-"Open help dialog": "Hilfe-Dialog \u00f6ffnen",
-"history": "Historie",
-"styles": "Stile",
-"formatting": "Formatierung",
-"alignment": "Ausrichtung",
-"indentation": "Einr\u00fcckungen",
-"permanent pen": "Textmarker",
-"comments": "Anmerkungen",
-"Anchor": "Textmarke",
-"Special character": "Sonderzeichen",
-"Code sample": "Codebeispiel",
-"Color": "Farbe",
-"Emoticons": "Emoticons",
-"Document properties": "Dokumenteigenschaften",
-"Image": "Bild",
-"Insert link": "Link einf\u00fcgen",
-"Target": "Ziel",
-"Link": "Link",
-"Poster": "Poster",
-"Media": "Medium",
-"Print": "Drucken",
-"Prev": "Zur\u00fcck",
-"Find and replace": "Suchen und ersetzen",
-"Whole words": "Nur ganze W\u00f6rter",
-"Spellcheck": "Rechtschreibpr\u00fcfung",
-"Caption": "Beschriftung",
-"Insert template": "Vorlage einf\u00fcgen "
-});
\ No newline at end of file
+++ /dev/null
-tinymce.addI18n('fr_FR',{
-"Redo": "R\u00e9tablir",
-"Undo": "Annuler",
-"Cut": "Couper",
-"Copy": "Copier",
-"Paste": "Coller",
-"Select all": "S\u00e9lectionner tout",
-"New document": "Nouveau document",
-"Ok": "OK",
-"Cancel": "Annuler",
-"Visual aids": "Aides visuelles",
-"Bold": "Gras",
-"Italic": "Italique",
-"Underline": "Soulign\u00e9",
-"Strikethrough": "Barr\u00e9",
-"Superscript": "Exposant",
-"Subscript": "Indice",
-"Clear formatting": "Effacer la mise en forme",
-"Align left": "Aligner \u00e0 gauche",
-"Align center": "Centrer",
-"Align right": "Aligner \u00e0 droite",
-"Justify": "Justifier",
-"Bullet list": "Liste \u00e0 puces",
-"Numbered list": "Liste num\u00e9rot\u00e9e",
-"Decrease indent": "R\u00e9duire le retrait",
-"Increase indent": "Augmenter le retrait",
-"Close": "Fermer",
-"Formats": "Formats",
-"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Votre navigateur ne supporte pas l\u2019acc\u00e8s direct au presse-papiers. Merci d'utiliser les raccourcis clavier Ctrl+X\/C\/V.",
-"Headers": "En-t\u00eates",
-"Header 1": "En-t\u00eate 1",
-"Header 2": "En-t\u00eate 2",
-"Header 3": "En-t\u00eate 3",
-"Header 4": "En-t\u00eate 4",
-"Header 5": "En-t\u00eate 5",
-"Header 6": "En-t\u00eate 6",
-"Headings": "Titres",
-"Heading 1": "Titre\u00a01",
-"Heading 2": "Titre\u00a02",
-"Heading 3": "Titre\u00a03",
-"Heading 4": "Titre\u00a04",
-"Heading 5": "Titre\u00a05",
-"Heading 6": "Titre\u00a06",
-"Preformatted": "Pr\u00e9format\u00e9",
-"Div": "Div",
-"Pre": "Pre",
-"Code": "Code",
-"Paragraph": "Paragraphe",
-"Blockquote": "Blockquote",
-"Inline": "En ligne",
-"Blocks": "Blocs",
-"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Le presse-papiers est maintenant en mode \"texte plein\". Les contenus seront coll\u00e9s sans retenir les formatages jusqu'\u00e0 ce que vous d\u00e9sactiviez cette option.",
-"Fonts": "Polices",
-"Font Sizes": "Tailles de police",
-"Class": "Classe",
-"Browse for an image": "Rechercher une image",
-"OR": "OU",
-"Drop an image here": "D\u00e9poser une image ici",
-"Upload": "T\u00e9l\u00e9charger",
-"Block": "Bloc",
-"Align": "Aligner",
-"Default": "Par d\u00e9faut",
-"Circle": "Cercle",
-"Disc": "Disque",
-"Square": "Carr\u00e9",
-"Lower Alpha": "Alpha minuscule",
-"Lower Greek": "Grec minuscule",
-"Lower Roman": "Romain minuscule",
-"Upper Alpha": "Alpha majuscule",
-"Upper Roman": "Romain majuscule",
-"Anchor...": "Ancre...",
-"Name": "Nom",
-"Id": "Id",
-"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "L'Id doit commencer par une lettre suivi par des lettres, nombres, tirets, points, deux-points ou underscores",
-"You have unsaved changes are you sure you want to navigate away?": "Vous avez des modifications non enregistr\u00e9es, \u00eates-vous s\u00fbr de quitter la page?",
-"Restore last draft": "Restaurer le dernier brouillon",
-"Special characters...": "Caract\u00e8res sp\u00e9ciaux...",
-"Source code": "Code source",
-"Insert\/Edit code sample": "Ins\u00e9rer \/ modifier une exemple de code",
-"Language": "Langue",
-"Code sample...": "Exemple de code...",
-"Color Picker": "S\u00e9lecteur de couleurs",
-"R": "R",
-"G": "V",
-"B": "B",
-"Left to right": "Gauche \u00e0 droite",
-"Right to left": "Droite \u00e0 gauche",
-"Emoticons...": "\u00c9motic\u00f4nes...",
-"Metadata and Document Properties": "M\u00e9tadonn\u00e9es et propri\u00e9t\u00e9s du document",
-"Title": "Titre",
-"Keywords": "Mots-cl\u00e9s",
-"Description": "Description",
-"Robots": "Robots",
-"Author": "Auteur",
-"Encoding": "Encodage",
-"Fullscreen": "Plein \u00e9cran",
-"Action": "Action",
-"Shortcut": "Raccourci",
-"Help": "Aide",
-"Address": "Adresse",
-"Focus to menubar": "Cibler la barre de menu",
-"Focus to toolbar": "Cibler la barre d'outils",
-"Focus to element path": "Cibler le chemin vers l'\u00e9l\u00e9ment",
-"Focus to contextual toolbar": "Cibler la barre d'outils contextuelle",
-"Insert link (if link plugin activated)": "Ins\u00e9rer un lien (si le module link est activ\u00e9)",
-"Save (if save plugin activated)": "Enregistrer (si le module save est activ\u00e9)",
-"Find (if searchreplace plugin activated)": "Rechercher (si le module searchreplace est activ\u00e9)",
-"Plugins installed ({0}):": "Modules install\u00e9s ({0}) : ",
-"Premium plugins:": "Modules premium :",
-"Learn more...": "En savoir plus...",
-"You are using {0}": "Vous utilisez {0}",
-"Plugins": "Plugins",
-"Handy Shortcuts": "Raccourcis utiles",
-"Horizontal line": "Ligne horizontale",
-"Insert\/edit image": "Ins\u00e9rer\/modifier une image",
-"Image description": "Description de l'image",
-"Source": "Source",
-"Dimensions": "Dimensions",
-"Constrain proportions": "Conserver les proportions",
-"General": "G\u00e9n\u00e9ral",
-"Advanced": "Avanc\u00e9",
-"Style": "Style",
-"Vertical space": "Espacement vertical",
-"Horizontal space": "Espacement horizontal",
-"Border": "Bordure",
-"Insert image": "Ins\u00e9rer une image",
-"Image...": "Image...",
-"Image list": "Liste d'images",
-"Rotate counterclockwise": "Rotation anti-horaire",
-"Rotate clockwise": "Rotation horaire",
-"Flip vertically": "Retournement vertical",
-"Flip horizontally": "Retournement horizontal",
-"Edit image": "Modifier l'image",
-"Image options": "Options de l'image",
-"Zoom in": "Zoomer",
-"Zoom out": "D\u00e9zoomer",
-"Crop": "Rogner",
-"Resize": "Redimensionner",
-"Orientation": "Orientation",
-"Brightness": "Luminosit\u00e9",
-"Sharpen": "Affiner",
-"Contrast": "Contraste",
-"Color levels": "Niveaux de couleur",
-"Gamma": "Gamma",
-"Invert": "Inverser",
-"Apply": "Appliquer",
-"Back": "Retour",
-"Insert date\/time": "Ins\u00e9rer date\/heure",
-"Date\/time": "Date\/heure",
-"Insert\/Edit Link": "Ins\u00e9rer\/Modifier lien",
-"Insert\/edit link": "Ins\u00e9rer\/modifier un lien",
-"Text to display": "Texte \u00e0 afficher",
-"Url": "Url",
-"Open link in...": "Ouvrir le lien dans...",
-"Current window": "Fen\u00eatre active",
-"None": "n\/a",
-"New window": "Nouvelle fen\u00eatre",
-"Remove link": "Enlever le lien",
-"Anchors": "Ancres",
-"Link...": "Lien...",
-"Paste or type a link": "Coller ou taper un lien",
-"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre une adresse e-mail. Voulez-vous ajouter le pr\u00e9fixe mailto: n\u00e9cessaire?",
-"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre un lien externe. Voulez-vous ajouter le pr\u00e9fixe http:\/\/ n\u00e9cessaire?",
-"Link list": "Liste de liens",
-"Insert video": "Ins\u00e9rer une vid\u00e9o",
-"Insert\/edit video": "Ins\u00e9rer\/modifier une vid\u00e9o",
-"Insert\/edit media": "Ins\u00e9rer\/modifier un m\u00e9dia",
-"Alternative source": "Source alternative",
-"Alternative source URL": "URL de la source alternative",
-"Media poster (Image URL)": "Affiche de m\u00e9dia (URL de l'image)",
-"Paste your embed code below:": "Collez votre code d'int\u00e9gration ci-dessous :",
-"Embed": "Int\u00e9grer",
-"Media...": "M\u00e9dia...",
-"Nonbreaking space": "Espace ins\u00e9cable",
-"Page break": "Saut de page",
-"Paste as text": "Coller comme texte",
-"Preview": "Pr\u00e9visualiser",
-"Print...": "Imprimer...",
-"Save": "Enregistrer",
-"Find": "Chercher",
-"Replace with": "Remplacer par",
-"Replace": "Remplacer",
-"Replace all": "Tout remplacer",
-"Previous": "Pr\u00e9c\u00e9dente",
-"Next": "Suiv",
-"Find and replace...": "Trouver et remplacer...",
-"Could not find the specified string.": "Impossible de trouver la cha\u00eene sp\u00e9cifi\u00e9e.",
-"Match case": "Respecter la casse",
-"Find whole words only": "Mot entier",
-"Spell check": "V\u00e9rification de l'orthographe",
-"Ignore": "Ignorer",
-"Ignore all": "Tout ignorer",
-"Finish": "Finie",
-"Add to Dictionary": "Ajouter au dictionnaire",
-"Insert table": "Ins\u00e9rer un tableau",
-"Table properties": "Propri\u00e9t\u00e9s du tableau",
-"Delete table": "Supprimer le tableau",
-"Cell": "Cellule",
-"Row": "Ligne",
-"Column": "Colonne",
-"Cell properties": "Propri\u00e9t\u00e9s de la cellule",
-"Merge cells": "Fusionner les cellules",
-"Split cell": "Diviser la cellule",
-"Insert row before": "Ins\u00e9rer une ligne avant",
-"Insert row after": "Ins\u00e9rer une ligne apr\u00e8s",
-"Delete row": "Effacer la ligne",
-"Row properties": "Propri\u00e9t\u00e9s de la ligne",
-"Cut row": "Couper la ligne",
-"Copy row": "Copier la ligne",
-"Paste row before": "Coller la ligne avant",
-"Paste row after": "Coller la ligne apr\u00e8s",
-"Insert column before": "Ins\u00e9rer une colonne avant",
-"Insert column after": "Ins\u00e9rer une colonne apr\u00e8s",
-"Delete column": "Effacer la colonne",
-"Cols": "Colonnes",
-"Rows": "Lignes",
-"Width": "Largeur",
-"Height": "Hauteur",
-"Cell spacing": "Espacement inter-cellulles",
-"Cell padding": "Espacement interne cellule",
-"Show caption": "Afficher le sous-titrage",
-"Left": "Gauche",
-"Center": "Centr\u00e9",
-"Right": "Droite",
-"Cell type": "Type de cellule",
-"Scope": "Etendue",
-"Alignment": "Alignement",
-"H Align": "Alignement H",
-"V Align": "Alignement V",
-"Top": "Haut",
-"Middle": "Milieu",
-"Bottom": "Bas",
-"Header cell": "Cellule d'en-t\u00eate",
-"Row group": "Groupe de lignes",
-"Column group": "Groupe de colonnes",
-"Row type": "Type de ligne",
-"Header": "En-t\u00eate",
-"Body": "Corps",
-"Footer": "Pied",
-"Border color": "Couleur de la bordure",
-"Insert template...": "Ins\u00e9rer un mod\u00e8le...",
-"Templates": "Th\u00e8mes",
-"Template": "Mod\u00e8le",
-"Text color": "Couleur du texte",
-"Background color": "Couleur d'arri\u00e8re-plan",
-"Custom...": "Personnalis\u00e9...",
-"Custom color": "Couleur personnalis\u00e9e",
-"No color": "Aucune couleur",
-"Remove color": "Supprimer la couleur",
-"Table of Contents": "Table des mati\u00e8res",
-"Show blocks": "Afficher les blocs",
-"Show invisible characters": "Afficher les caract\u00e8res invisibles",
-"Word count": "Nombre de mots",
-"Words: {0}": "Mots : {0}",
-"{0} words": "{0} mots",
-"File": "Fichier",
-"Edit": "Editer",
-"Insert": "Ins\u00e9rer",
-"View": "Voir",
-"Format": "Format",
-"Table": "Tableau",
-"Tools": "Outils",
-"Powered by {0}": "Propuls\u00e9 par {0}",
-"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide.",
-"Image title": "Titre d'image",
-"Border width": "\u00c9paisseur de la bordure",
-"Border style": "Style de la bordure",
-"Error": "Erreur",
-"Warn": "Avertir",
-"Valid": "Valide",
-"To open the popup, press Shift+Enter": "Pour ouvrir la popup, appuyez sur Maj+Entr\u00e9e",
-"Rich Text Area. Press ALT-0 for help.": "Zone de texte riche. Appuyez sur ALT-0 pour l'aide.",
-"System Font": "Police syst\u00e8me",
-"Failed to upload image: {0}": "\u00c9chec d'envoi de l'image\u00a0: {0}",
-"Failed to load plugin: {0} from url {1}": "\u00c9chec de chargement du plug-in\u00a0: {0} \u00e0 partir de l\u2019URL {1} ",
-"Failed to load plugin url: {0}": "\u00c9chec de chargement de l'URL du plug-in\u00a0: {0}",
-"Failed to initialize plugin: {0}": "\u00c9chec d'initialisation du plug-in\u00a0: {0}",
-"example": "exemple",
-"Search": "Rechercher",
-"All": "Tout",
-"Currency": "Devise",
-"Text": "Texte",
-"Quotations": "Citations",
-"Mathematical": "Op\u00e9rateurs math\u00e9matiques",
-"Extended Latin": "Latin \u00e9tendu",
-"Symbols": "Symboles",
-"Arrows": "Fl\u00e8ches",
-"User Defined": "D\u00e9fini par l'utilisateur",
-"dollar sign": "Symbole dollar",
-"currency sign": "Symbole devise",
-"euro-currency sign": "Symbole euro",
-"colon sign": "Symbole col\u00f3n",
-"cruzeiro sign": "Symbole cruzeiro",
-"french franc sign": "Symbole franc fran\u00e7ais",
-"lira sign": "Symbole lire",
-"mill sign": "Symbole milli\u00e8me",
-"naira sign": "Symbole naira",
-"peseta sign": "Symbole peseta",
-"rupee sign": "Symbole roupie",
-"won sign": "Symbole won",
-"new sheqel sign": "Symbole nouveau ch\u00e9kel",
-"dong sign": "Symbole dong",
-"kip sign": "Symbole kip",
-"tugrik sign": "Symbole tougrik",
-"drachma sign": "Symbole drachme",
-"german penny symbol": "Symbole pfennig",
-"peso sign": "Symbole peso",
-"guarani sign": "Symbole guarani",
-"austral sign": "Symbole austral",
-"hryvnia sign": "Symbole hryvnia",
-"cedi sign": "Symbole cedi",
-"livre tournois sign": "Symbole livre tournois",
-"spesmilo sign": "Symbole spesmilo",
-"tenge sign": "Symbole tenge",
-"indian rupee sign": "Symbole roupie indienne",
-"turkish lira sign": "Symbole lire turque",
-"nordic mark sign": "Symbole du mark nordique",
-"manat sign": "Symbole manat",
-"ruble sign": "Symbole rouble",
-"yen character": "Sinogramme Yen",
-"yuan character": "Sinogramme Yuan",
-"yuan character, in hong kong and taiwan": "Sinogramme Yuan, Hong Kong et Taiwan",
-"yen\/yuan character variant one": "Sinogramme Yen\/Yuan, premi\u00e8re variante",
-"Loading emoticons...": "Chargement des \u00e9motic\u00f4nes en cours...",
-"Could not load emoticons": "\u00c9chec de chargement des \u00e9motic\u00f4nes",
-"People": "Personnes",
-"Animals and Nature": "Animaux & nature",
-"Food and Drink": "Nourriture & boissons",
-"Activity": "Activit\u00e9",
-"Travel and Places": "Voyages & lieux",
-"Objects": "Objets",
-"Flags": "Drapeaux",
-"Characters": "Caract\u00e8res",
-"Characters (no spaces)": "Caract\u00e8res (espaces non compris)",
-"Error: Form submit field collision.": "Erreur : conflit de champs lors de la soumission du formulaire",
-"Error: No form element found.": "Erreur : aucun \u00e9l\u00e9ment de formulaire trouv\u00e9.",
-"Update": "Mettre \u00e0 jour",
-"Color swatch": "\u00c9chantillon de couleurs",
-"Turquoise": "Turquoise",
-"Green": "Vert",
-"Blue": "Bleu",
-"Purple": "Violet",
-"Navy Blue": "Bleu marine",
-"Dark Turquoise": "Turquoise fonc\u00e9",
-"Dark Green": "Vert fonc\u00e9",
-"Medium Blue": "Bleu moyen",
-"Medium Purple": "Violet moyen",
-"Midnight Blue": "Bleu de minuit",
-"Yellow": "Jaune",
-"Orange": "Orange",
-"Red": "Rouge",
-"Light Gray": "Gris clair",
-"Gray": "Gris",
-"Dark Yellow": "Jaune fonc\u00e9",
-"Dark Orange": "Orange fonc\u00e9",
-"Dark Red": "Rouge fonc\u00e9",
-"Medium Gray": "Gris moyen",
-"Dark Gray": "Gris fonc\u00e9",
-"Black": "Noir",
-"White": "Blanc",
-"Switch to or from fullscreen mode": "Passer en ou quitter le mode plein \u00e9cran",
-"Open help dialog": "Ouvrir la bo\u00eete de dialogue d'aide",
-"history": "historique",
-"styles": "styles",
-"formatting": "mise en forme",
-"alignment": "alignement",
-"indentation": "retrait",
-"permanent pen": "feutre ind\u00e9l\u00e9bile",
-"comments": "commentaires",
-"Anchor": "Ancre",
-"Special character": "Caract\u00e8res sp\u00e9ciaux",
-"Code sample": "Extrait de code",
-"Color": "Couleur",
-"Emoticons": "Emotic\u00f4nes",
-"Document properties": "Propri\u00e9t\u00e9 du document",
-"Image": "Image",
-"Insert link": "Ins\u00e9rer un lien",
-"Target": "Cible",
-"Link": "Lien",
-"Poster": "Publier",
-"Media": "M\u00e9dia",
-"Print": "Imprimer",
-"Prev": "Pr\u00e9c ",
-"Find and replace": "Trouver et remplacer",
-"Whole words": "Mots entiers",
-"Spellcheck": "V\u00e9rification orthographique",
-"Caption": "Titre",
-"Insert template": "Ajouter un th\u00e8me"
-});
\ No newline at end of file
+++ /dev/null
-This is where language files should be placed.
-
-Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/
+++ /dev/null
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function n(){}function o(n){return function(){return n}}function t(){return d}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(n,t,e){var r="UL"===t?"InsertUnorderedList":"InsertOrderedList";n.execCommand(r,!1,!1===e?null:{"list-style-type":e})},i=function(e){e.addCommand("ApplyUnorderedListStyle",function(n,t){l(e,"UL",t["list-style-type"])}),e.addCommand("ApplyOrderedListStyle",function(n,t){l(e,"OL",t["list-style-type"])})},c=function(n){var t=n.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");return t?t.split(/[ ,]/):[]},s=function(n){var t=n.getParam("advlist_bullet_styles","default,circle,square");return t?t.split(/[ ,]/):[]},f=o(!1),a=o(!0),d=(e={fold:function(n,t){return n()},is:f,isSome:f,isNone:a,getOr:m,getOrThunk:p,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:o(null),getOrUndefined:o(undefined),or:m,orThunk:p,map:t,each:n,bind:t,exists:f,forall:a,filter:t,equals:g,equals_:g,toArray:function(){return[]},toString:o("none()")},Object.freeze&&Object.freeze(e),e);function g(n){return n.isNone()}function p(n){return n()}function m(n){return n}function y(n,t,e){var r=function(n,t){for(var e=0;e<n.length;e++){if(t(n[e]))return e}return-1}(t.parents,L),i=-1!==r?t.parents.slice(0,r):t.parents,o=u.grep(i,N(n));return 0<o.length&&o[0].nodeName===e}function O(n,t,e,r,i,o){0<o.length?function(e,n,t,r,i,o){e.ui.registry.addSplitButton(n,{tooltip:t,icon:"OL"===i?"ordered-list":"unordered-list",presets:"listpreview",columns:3,fetch:function(n){n(u.map(o,function(n){return{type:"choiceitem",value:"default"===n?"":n,icon:"list-"+("OL"===i?"num":"bull")+"-"+("disc"===n||"decimal"===n?"default":n),text:function(n){return n.replace(/\-/g," ").replace(/\b\w/g,function(n){return n.toUpperCase()})}(n)}}))},onAction:function(){return e.execCommand(r)},onItemAction:function(n,t){l(e,i,t)},select:function(t){return S(e).map(function(n){return t===n}).getOr(!1)},onSetup:function(t){function n(n){t.setActive(y(e,n,i))}return e.on("NodeChange",n),function(){return e.off("NodeChange",n)}}})}(n,t,e,r,i,o):function(e,n,t,r,i){e.ui.registry.addToggleButton(n,{active:!1,tooltip:t,icon:"OL"===i?"ordered-list":"unordered-list",onSetup:function(t){function n(n){t.setActive(y(e,n,i))}return e.on("NodeChange",n),function(){return e.off("NodeChange",n)}},onAction:function(){return e.execCommand(r)}})}(n,t,e,r,i)}var v=function(e){function n(){return i}function t(n){return n(e)}var r=o(e),i={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:a,isNone:f,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){return v(n(e))},each:function(n){n(e)},bind:t,exists:t,forall:t,filter:function(n){return n(e)?i:d},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(f,function(n){return t(e,n)})}};return i},h=function(n){return null===n||n===undefined?d:v(n)},L=function(n){return n&&/^(TH|TD)$/.test(n.nodeName)},N=function(t){return function(n){return n&&/^(OL|UL|DL)$/.test(n.nodeName)&&function(n,t){return n.$.contains(n.getBody(),t)}(t,n)}},S=function(n){var t=n.dom.getParent(n.selection.getNode(),"ol,ul"),e=n.dom.getStyle(t,"listStyleType");return h(e)},T=function(n){O(n,"numlist","Numbered list","InsertOrderedList","OL",c(n)),O(n,"bullist","Bullet list","InsertUnorderedList","UL",s(n))};!function b(){r.add("advlist",function(n){var t,e,r;e="lists",r=(t=n).settings.plugins?t.settings.plugins:"",-1!==u.inArray(r.split(/[ ,]/),e)&&(T(n),i(n))})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function e(o){return function(t){for(var e=0;e<t.length;e++)(n=t[e]).attr("href")||!n.attr("id")&&!n.attr("name")||n.firstChild||t[e].attr("contenteditable",o);var n}}var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)},o=function(t){var e=t.selection.getNode();return"A"===e.tagName&&""===t.dom.getAttrib(e,"href")?e.getAttribute("id")||e.getAttribute("name"):""},r=function(t,e){var n=t.selection.getNode();"A"===n.tagName&&""===t.dom.getAttrib(n,"href")?(n.removeAttribute("name"),n.id=e,t.undoManager.add()):(t.focus(),t.selection.collapse(!0),t.execCommand("mceInsertContent",!1,t.dom.createHTML("a",{id:e})))},a=function(e){var t=o(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:function(t){!function(t,e){return n(e)?(r(t,e),!1):(t.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),!0)}(e,t.getData().id)&&t.close()}})},i=function(t){t.addCommand("mceAnchor",function(){a(t)})},c=function(t){t.on("PreInit",function(){t.parser.addNodeFilter("a",e("false")),t.serializer.addNodeFilter("a",e(null))})},d=function(e){e.ui.registry.addToggleButton("anchor",{icon:"bookmark",tooltip:"Anchor",onAction:function(){return e.execCommand("mceAnchor")},onSetup:function(t){return e.selection.selectorChangedWithUnbind("a:not([href])",t.setActive).unbind}}),e.ui.registry.addMenuItem("anchor",{icon:"bookmark",text:"Anchor...",onAction:function(){return e.execCommand("mceAnchor")}})};!function u(){t.add("anchor",function(t){c(t),i(t),d(t)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function i(t,e){if(e<0&&(e=0),3===t.nodeType){var n=t.data.length;n<e&&(e=n)}return e}function C(t,e,n){1!==e.nodeType||e.hasChildNodes()?t.setStart(e,i(e,n)):t.setStartBefore(e)}function m(t,e,n){1!==e.nodeType||e.hasChildNodes()?t.setEnd(e,i(e,n)):t.setEndAfter(e)}var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.Env"),y=function(t){return t.getParam("autolink_pattern",/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i)},k=function(t){return t.getParam("default_link_target",!1)},r=function(t,e,n){var i,o,r,f,a,s,d,c,l,u,g=y(t),h=k(t);if("A"!==t.selection.getNode().tagName){if((i=t.selection.getRng(!0).cloneRange()).startOffset<5){if(!(c=i.endContainer.previousSibling)){if(!i.endContainer.firstChild||!i.endContainer.firstChild.nextSibling)return;c=i.endContainer.firstChild.nextSibling}if(l=c.length,C(i,c,l),m(i,c,l),i.endOffset<5)return;o=i.endOffset,f=c}else{if(3!==(f=i.endContainer).nodeType&&f.firstChild){for(;3!==f.nodeType&&f.firstChild;)f=f.firstChild;3===f.nodeType&&(C(i,f,0),m(i,f,f.nodeValue.length))}o=1===i.endOffset?2:i.endOffset-1-e}for(r=o;C(i,f,2<=o?o-2:0),m(i,f,1<=o?o-1:0),o-=1," "!==(u=i.toString())&&""!==u&&160!==u.charCodeAt(0)&&0<=o-2&&u!==n;);!function(t,e){return t===e||" "===t||160===t.charCodeAt(0)}(i.toString(),n)?(0===i.startOffset?C(i,f,0):C(i,f,o),m(i,f,r)):(C(i,f,o),m(i,f,r),o+=1),"."===(s=i.toString()).charAt(s.length-1)&&m(i,f,r-1),(d=(s=i.toString().trim()).match(g))&&("www."===d[1]?d[1]="http://www.":/@$/.test(d[1])&&!/^mailto:/.test(d[1])&&(d[1]="mailto:"+d[1]),a=t.selection.getBookmark(),t.selection.setRng(i),t.execCommand("createlink",!1,d[1]+d[2]),!1!==h&&t.dom.setAttrib(t.selection.getNode(),"target",h),t.selection.moveToBookmark(a),t.nodeChanged())}},e=function(e){var n;e.on("keydown",function(t){if(13===t.keyCode)return function(t){r(t,-1,"")}(e)}),o.browser.isIE()?e.on("focus",function(){if(!n){n=!0;try{e.execCommand("AutoUrlDetect",!1,!0)}catch(t){}}}):(e.on("keypress",function(t){if(41===t.keyCode)return function(t){r(t,-1,"(")}(e)}),e.on("keyup",function(t){if(32===t.keyCode)return function(t){r(t,0,"")}(e)}))};!function n(){t.add("autolink",function(t){e(t)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function d(e,t){var n=e.getBody();n&&(n.style.overflowY=t?"":"hidden",t||(n.scrollTop=0))}function h(e,t,n,i){var o=parseInt(e.getStyle(t,n,i),10);return isNaN(o)?0:o}var i=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return i(t())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),v=tinymce.util.Tools.resolve("tinymce.Env"),r=tinymce.util.Tools.resolve("tinymce.util.Delay"),p=function(e){return e.fire("ResizeEditor")},y=function(e){return e.getParam("min_height",e.getElement().offsetHeight,"number")},z=function(e){return e.getParam("max_height",0,"number")},n=function(e){return e.getParam("autoresize_overflow_padding",1,"number")},b=function(e){return e.getParam("autoresize_bottom_margin",50,"number")},o=function(e){return e.getParam("autoresize_on_init",!0,"boolean")},u=function(e,t,n,i,o){r.setEditorTimeout(e,function(){C(e,t),n--?u(e,t,n,i,o):o&&o()},i)},C=function(e,t){var n,i,o,r=e.dom,u=e.getDoc();if(u)if(function(e){return e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()}(e))d(e,!0);else{var s=u.documentElement,a=b(e);i=y(e);var f=h(r,s,"margin-top",!0),c=h(r,s,"margin-bottom",!0);(o=s.offsetHeight+f+c+a)<0&&(o=0);var g=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;o+g>y(e)&&(i=o+g);var l=z(e);if(l&&l<i?(i=l,d(e,!0)):d(e,!1),i!==t.get()){if(n=i-t.get(),r.setStyle(e.getContainer(),"height",i+"px"),t.set(i),p(e),v.browser.isSafari()&&v.mac){var m=e.getWin();m.scrollTo(m.pageXOffset,m.pageYOffset)}e.hasFocus()&&e.selection.scrollIntoView(e.selection.getNode()),v.webkit&&n<0&&C(e,t)}}},s={setup:function(t,e){t.on("init",function(){var e=n(t);t.dom.setStyles(t.getBody(),{paddingLeft:e,paddingRight:e,"min-height":0})}),t.on("NodeChange SetContent keyup FullscreenStateChanged ResizeContent",function(){C(t,e)}),o(t)&&t.on("init",function(){u(t,e,20,100,function(){u(t,e,5,1e3)})})},resize:C},a=function(e,t){e.addCommand("mceAutoResize",function(){s.resize(e,t)})};!function t(){e.add("autoresize",function(e){if(e.settings.hasOwnProperty("resize")||(e.settings.resize=!1),!e.inline){var t=i(0);a(e,t),s.setup(e,t)}})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(n){"use strict";function r(t,e){var n=t||e,r=/^(\d+)([ms]?)$/.exec(""+n);return(r[2]?{s:1e3,m:6e4}[r[2]]:1)*parseInt(n,10)}function o(t){var e=t.getParam("autosave_prefix","tinymce-autosave-{path}{query}{hash}-{id}-");return e=(e=(e=(e=e.replace(/\{path\}/g,n.document.location.pathname)).replace(/\{query\}/g,n.document.location.search)).replace(/\{hash\}/g,n.document.location.hash)).replace(/\{id\}/g,t.id)}function a(t,e){var n=t.settings.forced_root_block;return""===(e=d.trim(void 0===e?t.getBody().innerHTML:e))||new RegExp("^<"+n+"[^>]*>((\xa0| |[ \t]|<br[^>]*>)+?|)</"+n+">|<br>$","i").test(e)}function i(t){var e=parseInt(v.getItem(o(t)+"time"),10)||0;return!((new Date).getTime()-e>function(t){return r(t.settings.autosave_retention,"20m")}(t))||(g(t,!1),!1)}function u(t){var e=o(t);!a(t)&&t.isDirty()&&(v.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),v.setItem(e+"time",(new Date).getTime().toString()),function(t){t.fire("StoreDraft")}(t))}function s(t){var e=o(t);i(t)&&(t.setContent(v.getItem(e+"draft"),{format:"raw"}),function(t){t.fire("RestoreDraft")}(t))}function c(t,e){var n=function(t){return r(t.settings.autosave_interval,"30s")}(t);e.get()||(m.setInterval(function(){t.removed||u(t)},n),e.set(!0))}function f(t){t.undoManager.transact(function(){s(t),g(t)}),t.focus()}var l=function(t){function e(){return n}var n=t;return{get:e,set:function(t){n=t},clone:function(){return l(e())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),m=tinymce.util.Tools.resolve("tinymce.util.Delay"),v=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),d=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=function(t,e){var n=o(t);v.removeItem(n+"draft"),v.removeItem(n+"time"),!1!==e&&function(t){t.fire("RemoveDraft")}(t)};function y(r){for(var o=[],t=1;t<arguments.length;t++)o[t-1]=arguments[t];return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=o.concat(t);return r.apply(null,n)}}function p(n,t){return function(t){t.setDisabled(!i(n));function e(){return t.setDisabled(!i(n))}return n.on("StoreDraft RestoreDraft RemoveDraft",e),function(){return n.off("StoreDraft RestoreDraft RemoveDraft",e)}}}var D=tinymce.util.Tools.resolve("tinymce.EditorManager");!function e(){t.add("autosave",function(t){var e=l(!1);return function(t){t.editorManager.on("BeforeUnload",function(t){var e;d.each(D.get(),function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&function(t){return t.getParam("autosave_ask_before_unload",!0)}(t)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e&&(t.preventDefault(),t.returnValue=e)})}(t),function(t,e){c(t,e),t.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:function(){f(t)},onSetup:p(t)}),t.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:function(){f(t)},onSetup:p(t)})}(t,e),t.on("init",function(){(function(t){return t.getParam("autosave_restore_when_empty",!1)})(t)&&t.dom.isEmpty(t.getBody())&&s(t)}),function(t){return{hasDraft:y(i,t),storeDraft:y(u,t),restoreDraft:y(s,t),removeDraft:y(g,t),isEmpty:y(a,t)}}(t)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=function(t){t=e.trim(t);function o(o,e){t=t.replace(o,e)}return o(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),o(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),o(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),o(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),o(/<font>(.*?)<\/font>/gi,"$1"),o(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),o(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),o(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),o(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),o(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),o(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),o(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),o(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),o(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),o(/<\/(strong|b)>/gi,"[/b]"),o(/<(strong|b)>/gi,"[b]"),o(/<\/(em|i)>/gi,"[/i]"),o(/<(em|i)>/gi,"[i]"),o(/<\/u>/gi,"[/u]"),o(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),o(/<u>/gi,"[u]"),o(/<blockquote[^>]*>/gi,"[quote]"),o(/<\/blockquote>/gi,"[/quote]"),o(/<br \/>/gi,"\n"),o(/<br\/>/gi,"\n"),o(/<br>/gi,"\n"),o(/<p>/gi,""),o(/<\/p>/gi,"\n"),o(/ |\u00a0/gi," "),o(/"/gi,'"'),o(/</gi,"<"),o(/>/gi,">"),o(/&/gi,"&"),t},i=function(t){t=e.trim(t);function o(o,e){t=t.replace(o,e)}return o(/\n/gi,"<br />"),o(/\[b\]/gi,"<strong>"),o(/\[\/b\]/gi,"</strong>"),o(/\[i\]/gi,"<em>"),o(/\[\/i\]/gi,"</em>"),o(/\[u\]/gi,"<u>"),o(/\[\/u\]/gi,"</u>"),o(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),o(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),o(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),o(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),o(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span> '),o(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span> '),t};!function n(){o.add("bbcode",function(o){o.on("BeforeSetContent",function(o){o.content=i(o.content)}),o.on("PostProcess",function(o){o.set&&(o.content=i(o.content)),o.get&&(o.content=t(o.content))})})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(c){"use strict";function n(){}function i(n){return function(){return n}}function e(){return m}var r,t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(n,e){return n.fire("insertCustomChar",{chr:e})},u=function(n,e){var r=a(n,e).chr;n.execCommand("mceInsertContent",!1,r)},o=tinymce.util.Tools.resolve("tinymce.util.Tools"),s=function(n){return n.settings.charmap},l=function(n){return n.settings.charmap_append},f=i(!1),g=i(!0),m=(r={fold:function(n,e){return n()},is:f,isSome:f,isNone:g,getOr:p,getOrThunk:d,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:p,orThunk:d,map:e,each:n,bind:e,exists:f,forall:g,filter:e,equals:h,equals_:h,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(r),r);function h(n){return n.isNone()}function d(n){return n()}function p(n){return n}function y(e){return function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"==e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e}(n)===e}}function w(n,e){for(var r=n.length,t=new Array(r),a=0;a<r;a++){var i=n[a];t[a]=e(i,a)}return t}function b(n,e){return function(n){for(var e=[],r=0,t=n.length;r<t;++r){if(!O(n[r]))throw new Error("Arr.flatten item "+r+" was not an array, input: "+n);S.apply(e,n[r])}return e}(w(n,e))}function v(n){return T(n)?[].concat(function(n){return o.grep(n,function(n){return T(n)&&2===n.length})}(n)):"function"==typeof n?n():[]}function k(n,e){return-1!==n.indexOf(e)}var C=function(r){function n(){return a}function e(n){return n(r)}var t=i(r),a={fold:function(n,e){return e(r)},is:function(n){return r===n},isSome:g,isNone:f,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:n,orThunk:n,map:function(n){return C(n(r))},each:function(n){n(r)},bind:e,exists:e,forall:e,filter:function(n){return n(r)?a:m},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(n){return n.is(r)},equals_:function(n,e){return n.fold(f,function(n){return e(r,n)})}};return a},A={some:C,none:e,from:function(n){return null===n||n===undefined?m:C(n)}},O=y("array"),x=y("function"),q=Array.prototype.slice,S=Array.prototype.push,T=(x(Array.from)&&Array.from,o.isArray),E="User Defined",z=function(n){var e=function(n,e){var r=s(n);r&&(e=[{name:E,characters:v(r)}]);var t=l(n);if(t){var a=o.grep(e,function(n){return n.name===E});return a.length?(a[0].characters=[].concat(a[0].characters).concat(v(t)),e):[].concat(e).concat({name:E,characters:v(t)})}return e}(n,[{name:"Currency",characters:[[36,"dollar sign"],[162,"cent sign"],[8364,"euro sign"],[163,"pound sign"],[165,"yen sign"],[164,"currency sign"],[8352,"euro-currency sign"],[8353,"colon sign"],[8354,"cruzeiro sign"],[8355,"french franc sign"],[8356,"lira sign"],[8357,"mill sign"],[8358,"naira sign"],[8359,"peseta sign"],[8360,"rupee sign"],[8361,"won sign"],[8362,"new sheqel sign"],[8363,"dong sign"],[8365,"kip sign"],[8366,"tugrik sign"],[8367,"drachma sign"],[8368,"german penny symbol"],[8369,"peso sign"],[8370,"guarani sign"],[8371,"austral sign"],[8372,"hryvnia sign"],[8373,"cedi sign"],[8374,"livre tournois sign"],[8375,"spesmilo sign"],[8376,"tenge sign"],[8377,"indian rupee sign"],[8378,"turkish lira sign"],[8379,"nordic mark sign"],[8380,"manat sign"],[8381,"ruble sign"],[20870,"yen character"],[20803,"yuan character"],[22291,"yuan character, in hong kong and taiwan"],[22278,"yen/yuan character variant one"]]},{name:"Text",characters:[[169,"copyright sign"],[174,"registered sign"],[8482,"trade mark sign"],[8240,"per mille sign"],[181,"micro sign"],[183,"middle dot"],[8226,"bullet"],[8230,"three dot leader"],[8242,"minutes / feet"],[8243,"seconds / inches"],[167,"section sign"],[182,"paragraph sign"],[223,"sharp s / ess-zed"]]},{name:"Quotations",characters:[[8249,"single left-pointing angle quotation mark"],[8250,"single right-pointing angle quotation mark"],[171,"left pointing guillemet"],[187,"right pointing guillemet"],[8216,"left single quotation mark"],[8217,"right single quotation mark"],[8220,"left double quotation mark"],[8221,"right double quotation mark"],[8218,"single low-9 quotation mark"],[8222,"double low-9 quotation mark"],[60,"less-than sign"],[62,"greater-than sign"],[8804,"less-than or equal to"],[8805,"greater-than or equal to"],[8211,"en dash"],[8212,"em dash"],[175,"macron"],[8254,"overline"],[164,"currency sign"],[166,"broken bar"],[168,"diaeresis"],[161,"inverted exclamation mark"],[191,"turned question mark"],[710,"circumflex accent"],[732,"small tilde"],[176,"degree sign"],[8722,"minus sign"],[177,"plus-minus sign"],[247,"division sign"],[8260,"fraction slash"],[215,"multiplication sign"],[185,"superscript one"],[178,"superscript two"],[179,"superscript three"],[188,"fraction one quarter"],[189,"fraction one half"],[190,"fraction three quarters"]]},{name:"Mathematical",characters:[[402,"function / florin"],[8747,"integral"],[8721,"n-ary sumation"],[8734,"infinity"],[8730,"square root"],[8764,"similar to"],[8773,"approximately equal to"],[8776,"almost equal to"],[8800,"not equal to"],[8801,"identical to"],[8712,"element of"],[8713,"not an element of"],[8715,"contains as member"],[8719,"n-ary product"],[8743,"logical and"],[8744,"logical or"],[172,"not sign"],[8745,"intersection"],[8746,"union"],[8706,"partial differential"],[8704,"for all"],[8707,"there exists"],[8709,"diameter"],[8711,"backward difference"],[8727,"asterisk operator"],[8733,"proportional to"],[8736,"angle"]]},{name:"Extended Latin",characters:[[192,"A - grave"],[193,"A - acute"],[194,"A - circumflex"],[195,"A - tilde"],[196,"A - diaeresis"],[197,"A - ring above"],[256,"A - macron"],[198,"ligature AE"],[199,"C - cedilla"],[200,"E - grave"],[201,"E - acute"],[202,"E - circumflex"],[203,"E - diaeresis"],[274,"E - macron"],[204,"I - grave"],[205,"I - acute"],[206,"I - circumflex"],[207,"I - diaeresis"],[298,"I - macron"],[208,"ETH"],[209,"N - tilde"],[210,"O - grave"],[211,"O - acute"],[212,"O - circumflex"],[213,"O - tilde"],[214,"O - diaeresis"],[216,"O - slash"],[332,"O - macron"],[338,"ligature OE"],[352,"S - caron"],[217,"U - grave"],[218,"U - acute"],[219,"U - circumflex"],[220,"U - diaeresis"],[362,"U - macron"],[221,"Y - acute"],[376,"Y - diaeresis"],[562,"Y - macron"],[222,"THORN"],[224,"a - grave"],[225,"a - acute"],[226,"a - circumflex"],[227,"a - tilde"],[228,"a - diaeresis"],[229,"a - ring above"],[257,"a - macron"],[230,"ligature ae"],[231,"c - cedilla"],[232,"e - grave"],[233,"e - acute"],[234,"e - circumflex"],[235,"e - diaeresis"],[275,"e - macron"],[236,"i - grave"],[237,"i - acute"],[238,"i - circumflex"],[239,"i - diaeresis"],[299,"i - macron"],[240,"eth"],[241,"n - tilde"],[242,"o - grave"],[243,"o - acute"],[244,"o - circumflex"],[245,"o - tilde"],[246,"o - diaeresis"],[248,"o slash"],[333,"o macron"],[339,"ligature oe"],[353,"s - caron"],[249,"u - grave"],[250,"u - acute"],[251,"u - circumflex"],[252,"u - diaeresis"],[363,"u - macron"],[253,"y - acute"],[254,"thorn"],[255,"y - diaeresis"],[563,"y - macron"],[913,"Alpha"],[914,"Beta"],[915,"Gamma"],[916,"Delta"],[917,"Epsilon"],[918,"Zeta"],[919,"Eta"],[920,"Theta"],[921,"Iota"],[922,"Kappa"],[923,"Lambda"],[924,"Mu"],[925,"Nu"],[926,"Xi"],[927,"Omicron"],[928,"Pi"],[929,"Rho"],[931,"Sigma"],[932,"Tau"],[933,"Upsilon"],[934,"Phi"],[935,"Chi"],[936,"Psi"],[937,"Omega"],[945,"alpha"],[946,"beta"],[947,"gamma"],[948,"delta"],[949,"epsilon"],[950,"zeta"],[951,"eta"],[952,"theta"],[953,"iota"],[954,"kappa"],[955,"lambda"],[956,"mu"],[957,"nu"],[958,"xi"],[959,"omicron"],[960,"pi"],[961,"rho"],[962,"final sigma"],[963,"sigma"],[964,"tau"],[965,"upsilon"],[966,"phi"],[967,"chi"],[968,"psi"],[969,"omega"]]},{name:"Symbols",characters:[[8501,"alef symbol"],[982,"pi symbol"],[8476,"real part symbol"],[978,"upsilon - hook symbol"],[8472,"Weierstrass p"],[8465,"imaginary part"]]},{name:"Arrows",characters:[[8592,"leftwards arrow"],[8593,"upwards arrow"],[8594,"rightwards arrow"],[8595,"downwards arrow"],[8596,"left right arrow"],[8629,"carriage return"],[8656,"leftwards double arrow"],[8657,"upwards double arrow"],[8658,"rightwards double arrow"],[8659,"downwards double arrow"],[8660,"left right double arrow"],[8756,"therefore"],[8834,"subset of"],[8835,"superset of"],[8836,"not a subset of"],[8838,"subset of or equal to"],[8839,"superset of or equal to"],[8853,"circled plus"],[8855,"circled times"],[8869,"perpendicular"],[8901,"dot operator"],[8968,"left ceiling"],[8969,"right ceiling"],[8970,"left floor"],[8971,"right floor"],[9001,"left-pointing angle bracket"],[9002,"right-pointing angle bracket"],[9674,"lozenge"],[9824,"black spade suit"],[9827,"black club suit"],[9829,"black heart suit"],[9830,"black diamond suit"],[8194,"en space"],[8195,"em space"],[8201,"thin space"],[8204,"zero width non-joiner"],[8205,"zero width joiner"],[8206,"left-to-right mark"],[8207,"right-to-left mark"]]}]);return 1<e.length?[{name:"All",characters:b(e,function(n){return n.characters})}].concat(e):e},N=function(e){return{getCharMap:function(){return z(e)},insertChar:function(n){u(e,n)}}},U=function(n){function e(){return r}var r=n;return{get:e,set:function(n){r=n},clone:function(){return U(e())}}},D=function(n,e){var r=[],t=e.toLowerCase();return function(n,e){for(var r=0,t=n.length;r<t;r++){e(n[r],r)}}(n.characters,function(n){!function(n,e,r){return!!k(String.fromCharCode(n).toLowerCase(),r)||(k(e.toLowerCase(),r)||k(e.toLowerCase().replace(/\s+/g,""),r))}(n[0],n[1],t)||r.push(n)}),w(r,function(n){return{text:n[1],value:String.fromCharCode(n[0]),icon:String.fromCharCode(n[0])}})},I="pattern",P=function(r,n){function e(){return[{label:"Search",type:"input",name:I},{type:"collection",name:"results"}]}function t(r,t){(function(n,e){for(var r=0,t=n.length;r<t;r++){var a=n[r];if(e(a,r))return A.some(a)}return A.none()})(n,function(n){return n.name===a.get()}).each(function(n){var e=D(n,t);r.setData({results:e})})}var a=1===n.length?U(E):U("All"),i=function(r,t){var a=null;return{cancel:function(){null!==a&&(c.clearTimeout(a),a=null)},throttle:function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];null!==a&&c.clearTimeout(a),a=c.setTimeout(function(){r.apply(null,n),a=null},t)}}}(function(n){var e=n.getData().pattern;t(n,e)},40),o={title:"Special Character",size:"normal",body:1===n.length?{type:"panel",items:e()}:{type:"tabpanel",tabs:w(n,function(n){return{title:n.name,name:n.name,items:e()}})},buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{pattern:"",results:D(n[0],"")},onAction:function(n,e){"results"===e.name&&(u(r,e.value),n.close())},onTabChange:function(n,e){a.set(e.newTabName),i.throttle(n)},onChange:function(n,e){e.name===I&&i.throttle(n)}};r.windowManager.open(o)},j=function(n,e){n.addCommand("mceShowCharmap",function(){P(n,e)})},L=tinymce.util.Tools.resolve("tinymce.util.Promise"),M=function(n){n.ui.registry.addButton("charmap",{icon:"insert-character",tooltip:"Special character",onAction:function(){return n.execCommand("mceShowCharmap")}}),n.ui.registry.addMenuItem("charmap",{icon:"insert-character",text:"Special character...",onAction:function(){return n.execCommand("mceShowCharmap")}})};!function R(){t.add("charmap",function(n){var e=z(n);return j(n,e),M(n),function(t,a){t.ui.registry.addAutocompleter("charmap",{ch:":",columns:"auto",minChars:2,fetch:function(r,n){return new L(function(n,e){n(D(a,r))})},onAction:function(n,e,r){t.selection.setRng(e),t.insertContent(r),n.hide()}})}(n,e[0]),N(n)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e,n){e.focus(),e.undoManager.transact(function(){e.setContent(n)}),e.selection.setCursorLocation(),e.nodeChanged()},o=function(e){return e.getContent({source_view:!0})},n=function(n){var e=o(n);n.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:e},onSubmit:function(e){t(n,e.getData().code),e.close()}})},c=function(e){e.addCommand("mceCodeEditor",function(){n(e)})},i=function(e){e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:function(){return n(e)}}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:function(){return n(e)}})};!function u(){e.add("code",function(e){return c(e),i(e),{}})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(c){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),r=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),t={},n=t,g=void 0!==t?t:"undefined"!=typeof WorkerGlobalScope&&c.self instanceof WorkerGlobalScope?c.self:{},i=function(){var u=/\blang(?:uage)?-(?!\*)(\w+)\b/i,S=g.Prism={util:{encode:function(e){return e instanceof s?new s(e.type,S.util.encode(e.content),e.alias):"Array"===S.util.type(e)?e.map(S.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){switch(S.util.type(e)){case"Object":var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=S.util.clone(e[n]));return t;case"Array":return e.map&&e.map(function(e){return S.util.clone(e)})}return e}},languages:{extend:function(e,t){var n=S.util.clone(S.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(n,e,t,a){var r=(a=a||S.languages)[n];if(2===arguments.length){for(var i in t=e)t.hasOwnProperty(i)&&(r[i]=t[i]);return r}var o={};for(var s in r)if(r.hasOwnProperty(s)){if(s===e)for(var i in t)t.hasOwnProperty(i)&&(o[i]=t[i]);o[s]=r[s]}return S.languages.DFS(S.languages,function(e,t){t===a[n]&&e!==n&&(this[e]=o)}),a[n]=o},DFS:function(e,t,n){for(var a in e)e.hasOwnProperty(a)&&(t.call(e,a,e[a],n||a),"Object"===S.util.type(e[a])?S.languages.DFS(e[a],t):"Array"===S.util.type(e[a])&&S.languages.DFS(e[a],t,a))}},plugins:{},highlightAll:function(e,t){for(var n=c.document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'),a=0,r=void 0;r=n[a++];)S.highlightElement(r,!0===e,t)},highlightElement:function(e,t,n){for(var a,r,i=e;i&&!u.test(i.className);)i=i.parentNode;i&&(a=(i.className.match(u)||[,""])[1],r=S.languages[a]),e.className=e.className.replace(u,"").replace(/\s+/g," ")+" language-"+a,i=e.parentNode,/pre/i.test(i.nodeName)&&(i.className=i.className.replace(u,"").replace(/\s+/g," ")+" language-"+a);var o=e.textContent,s={element:e,language:a,grammar:r,code:o};if(o&&r)if(S.hooks.run("before-highlight",s),t&&g.Worker){var l=new c.Worker(S.filename);l.onmessage=function(e){s.highlightedCode=e.data,S.hooks.run("before-insert",s),s.element.innerHTML=s.highlightedCode,n&&n.call(s.element),S.hooks.run("after-highlight",s),S.hooks.run("complete",s)},l.postMessage(JSON.stringify({language:s.language,code:s.code,immediateClose:!0}))}else s.highlightedCode=S.highlight(s.code,s.grammar,s.language),S.hooks.run("before-insert",s),s.element.innerHTML=s.highlightedCode,n&&n.call(e),S.hooks.run("after-highlight",s),S.hooks.run("complete",s);else S.hooks.run("complete",s)},highlight:function(e,t,n){var a=S.tokenize(e,t);return s.stringify(S.util.encode(a),n)},tokenize:function(e,t,n){var a=S.Token,r=[e],i=t.rest;if(i){for(var o in i)t[o]=i[o];delete t.rest}e:for(var o in t)if(t.hasOwnProperty(o)&&t[o]){var s=t[o];s="Array"===S.util.type(s)?s:[s];for(var l=0;l<s.length;++l){var u=s[l],c=u.inside,g=!!u.lookbehind,d=0,p=u.alias;u=u.pattern||u;for(var f=0;f<r.length;f++){var h=r[f];if(r.length>e.length)break e;if(!(h instanceof a)){u.lastIndex=0;var m=u.exec(h);if(m){g&&(d=m[1].length);var b=m.index-1+d,y=b+(m=m[0].slice(d)).length,v=h.slice(0,b+1),k=h.slice(y+1),w=[f,1];v&&w.push(v);var x=new a(o,c?S.tokenize(m,c):m,p);w.push(x),k&&w.push(k),Array.prototype.splice.apply(r,w)}}}}}return r},hooks:{all:{},add:function(e,t){var n=S.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=S.hooks.all[e];if(n&&n.length)for(var a=0,r=void 0;r=n[a++];)r(t)}}},s=S.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(s.stringify=function(t,n,e){if("string"==typeof t)return t;if("Array"===S.util.type(t))return t.map(function(e){return s.stringify(e,n,t)}).join("");var a={type:t.type,content:s.stringify(t.content,n,e),tag:"span",classes:["token",t.type],attributes:{},language:n,parent:e};if("comment"===a.type&&(a.attributes.spellcheck="true"),t.alias){var r="Array"===S.util.type(t.alias)?t.alias:[t.alias];Array.prototype.push.apply(a.classes,r)}S.hooks.run("wrap",a);var i="";for(var o in a.attributes)i+=(i?" ":"")+o+'="'+(a.attributes[o]||"")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'" '+i+">"+a.content+"</"+a.tag+">"},!g.document)return g.addEventListener&&g.addEventListener("message",function(e){var t=JSON.parse(e.data),n=t.language,a=t.code,r=t.immediateClose;g.postMessage(S.highlight(a,S.languages[n],n)),r&&g.close()},!1),g.Prism}();void 0!==n&&(n.Prism=i),i.languages.markup={comment:/<!--[\w\W]*?-->/,prolog:/<\?[\w\W]+?\?>/,doctype:/<!DOCTYPE[\w\W]+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[^\s>\/=.]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},i.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),i.languages.xml=i.languages.markup,i.languages.html=i.languages.markup,i.languages.mathml=i.languages.markup,i.languages.svg=i.languages.markup,i.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},i.languages.css.atrule.inside.rest=i.util.clone(i.languages.css),i.languages.markup&&(i.languages.insertBefore("markup","tag",{style:{pattern:/<style[\w\W]*?>[\w\W]*?<\/style>/i,inside:{tag:{pattern:/<style[\w\W]*?>|<\/style>/i,inside:i.languages.markup.tag.inside},rest:i.languages.css},alias:"language-css"}}),i.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:i.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:i.languages.css}},alias:"language-css"}},i.languages.markup.tag)),i.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},i.languages.javascript=i.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i}),i.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),i.languages.insertBefore("javascript","class-name",{"template-string":{pattern:/`(?:\\`|\\?[^`])*`/,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:i.languages.javascript}},string:/[\s\S]+/}}}),i.languages.markup&&i.languages.insertBefore("markup","tag",{script:{pattern:/<script[\w\W]*?>[\w\W]*?<\/script>/i,inside:{tag:{pattern:/<script[\w\W]*?>|<\/script>/i,inside:i.languages.markup.tag.inside},rest:i.languages.javascript},alias:"language-javascript"}}),i.languages.js=i.languages.javascript,i.languages.c=i.languages.extend("clike",{keyword:/\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/\-[>-]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|?\||[~^%?*\/]/,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i}),i.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/,lookbehind:!0}}}}),delete i.languages.c["class-name"],delete i.languages.c["boolean"],i.languages.csharp=i.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,/("|')(\\?.)*?\1/],number:/\b-?(0x[\da-f]+|\d*\.?\d+)\b/i}),i.languages.insertBefore("csharp","keyword",{preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0}}),i.languages.cpp=i.languages.extend("c",{keyword:/\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,"boolean":/\b(true|false)\b/,operator:/[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/}),i.languages.insertBefore("cpp","keyword",{"class-name":{pattern:/(class\s+)[a-z0-9_]+/i,lookbehind:!0}}),i.languages.java=i.languages.extend("clike",{keyword:/\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),i.languages.php=i.languages.extend("clike",{keyword:/\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0}}),i.languages.insertBefore("php","class-name",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),i.languages.insertBefore("php","keyword",{delimiter:/\?>|<\?(?:php)?/i,variable:/\$\w+\b/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),i.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),i.languages.markup&&(i.hooks.add("before-highlight",function(t){"php"===t.language&&(t.tokenStack=[],t.backupCode=t.code,t.code=t.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/gi,function(e){return t.tokenStack.push(e),"{{{PHP"+t.tokenStack.length+"}}}"}))}),i.hooks.add("before-insert",function(e){"php"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),i.hooks.add("after-highlight",function(e){if("php"===e.language){for(var t=0,n=void 0;n=e.tokenStack[t];t++)e.highlightedCode=e.highlightedCode.replace("{{{PHP"+(t+1)+"}}}",i.highlight(n,e.grammar,"php").replace(/\$/g,"$$$$"));e.element.innerHTML=e.highlightedCode}}),i.hooks.add("wrap",function(e){"php"===e.language&&"markup"===e.type&&(e.content=e.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g,'<span class="token php">$1</span>'))}),i.languages.insertBefore("php","comment",{markup:{pattern:/<[^?]\/?(.*?)>/,inside:i.languages.markup},php:/\{\{\{PHP[0-9]+\}\}\}/})),i.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(?:\\?.)*?\1/,"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)[a-z0-9_]+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(?:True|False)\b/,number:/\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/},function(e){e.languages.ruby=e.languages.extend("clike",{comment:/#(?!\{[^\r\n]*?\}).*/,keyword:/\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.util.clone(e.languages.ruby)}};e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,inside:{interpolation:t}},{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}],variable:/[@$]+[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/,symbol:/:[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.insertBefore("ruby","number",{builtin:/\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,inside:{interpolation:t}},{pattern:/("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/,inside:{interpolation:t}}]}(i);function a(){}function o(e){return function(){return e}}function s(){return f}var l,u={isCodeSample:function B(e){return e&&"PRE"===e.nodeName&&-1!==e.className.indexOf("language-")},trimArg:function M(n){return function(e,t){return n(t)}}},d=o(!1),p=o(!0),f=(l={fold:function(e,t){return e()},is:d,isSome:d,isNone:p,getOr:b,getOrThunk:m,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:o(null),getOrUndefined:o(undefined),or:b,orThunk:m,map:s,each:a,bind:s,exists:d,forall:p,filter:s,equals:h,equals_:h,toArray:function(){return[]},toString:o("none()")},Object.freeze&&Object.freeze(l),l);function h(e){return e.isNone()}function m(e){return e()}function b(e){return e}function y(e){var t=e.selection?e.selection.getNode():null;return u.isCodeSample(t)?w.some(t):w.none()}var v,k=function(n){function e(){return r}function t(e){return e(n)}var a=o(n),r={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:p,isNone:d,getOr:a,getOrThunk:a,getOrDie:a,getOrNull:a,getOrUndefined:a,or:e,orThunk:e,map:function(e){return k(e(n))},each:function(e){e(n)},bind:t,exists:t,forall:t,filter:function(e){return e(n)?r:f},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(d,function(e){return t(n,e)})}};return r},w={some:k,none:s,from:function(e){return null===e||e===undefined?f:k(e)}},x=y,S=function(t,n,a){t.undoManager.transact(function(){var e=y(t);return a=r.DOM.encode(a),e.fold(function(){t.insertContent('<pre id="__new" class="language-'+n+'">'+a+"</pre>"),t.selection.select(t.$("#__new").removeAttr("id")[0])},function(e){t.dom.setAttrib(e,"class","language-"+n),e.innerHTML=a,i.highlightElement(e),t.selection.select(e)})})},A=function(e){return y(e).fold(function(){return""},function(e){return e.textContent})},C=function(e){return e.settings.codesample_languages},_=function(e){var t=C(e);return t||[{text:"HTML/XML",value:"markup"},{text:"JavaScript",value:"javascript"},{text:"CSS",value:"css"},{text:"PHP",value:"php"},{text:"Ruby",value:"ruby"},{text:"Python",value:"python"},{text:"Java",value:"java"},{text:"C",value:"c"},{text:"C#",value:"csharp"},{text:"C++",value:"cpp"}]},N=function(e,n){return x(e).fold(function(){return n},function(e){var t=e.className.match(/language-(\w+)/);return t?t[1]:n})},O=(v="function",function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"==t&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":t}(e)===v}),z=Array.prototype.slice,P=(O(Array.from)&&Array.from,function(n){var e=_(n),t=function(e){return 0===e.length?w.none():w.some(e[0])}(e).fold(function(){return""},function(e){return e.value}),a=N(n,t),r=A(n);n.windowManager.open({title:"Insert/Edit Code Sample",size:"large",body:{type:"panel",items:[{type:"selectbox",name:"language",label:"Language",items:e},{type:"textarea",name:"code",label:"Code view"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{language:a,code:r},onSubmit:function(e){var t=e.getData();S(n,t.language,t.code),e.close()}})}),W=function(t){t.addCommand("codesample",function(){var e=t.selection.getNode();t.selection.isCollapsed()||u.isCodeSample(e)?P(t):t.formatter.toggle("code")})},j=function(n){var r=n.$;n.on("PreProcess",function(e){r("pre[contenteditable=false]",e.node).filter(u.trimArg(u.isCodeSample)).each(function(e,t){var n=r(t),a=t.textContent;n.attr("class",r.trim(n.attr("class"))),n.removeAttr("contentEditable"),n.empty().append(r("<code></code>").each(function(){this.textContent=a}))})}),n.on("SetContent",function(){var e=r("pre").filter(u.trimArg(u.isCodeSample)).filter(function(e,t){return"false"!==t.contentEditable});e.length&&n.undoManager.transact(function(){e.each(function(e,t){r(t).find("br").each(function(e,t){t.parentNode.replaceChild(n.getDoc().createTextNode("\n"),t)}),t.contentEditable="false",t.innerHTML=n.dom.encode(t.textContent),i.highlightElement(t),t.className=r.trim(t.className)})})})},T=function(n){n.ui.registry.addToggleButton("codesample",{icon:"code-sample",tooltip:"Insert/edit code sample",onAction:function(){return P(n)},onSetup:function(e){function t(){e.setActive(function(e){var t=e.selection.getStart();return e.dom.is(t,"pre.language-markup")}(n))}return n.on("NodeChange",t),function(){return n.off("NodeChange",t)}}}),n.ui.registry.addMenuItem("codesample",{text:"Code sample...",icon:"code-sample",onAction:function(){return P(n)}})};!function F(){e.add("codesample",function(t){j(t),T(t),W(t),t.on("dblclick",function(e){u.isCodeSample(e.target)&&P(t)})})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(o){"use strict";var i=tinymce.util.Tools.resolve("tinymce.PluginManager");!function n(){i.add("colorpicker",function(){o.console.warn("Color picker plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(n){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager");!function e(){o.add("contextmenu",function(){n.console.warn("Context menu plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(i){"use strict";function n(){}function u(n){return function(){return n}}function t(){return a}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=function(n,t){var e,r=n.dom,o=n.selection.getSelectedBlocks();o.length&&(e=r.getAttrib(o[0],"dir"),c.each(o,function(n){r.getParent(n.parentNode,'*[dir="'+t+'"]',r.getRoot())||r.setAttrib(n,"dir",e!==t?t:null)}),n.nodeChanged())},d=function(n){n.addCommand("mceDirectionLTR",function(){o(n,"ltr")}),n.addCommand("mceDirectionRTL",function(){o(n,"rtl")})},f=u(!1),l=u(!0),a=(e={fold:function(n,t){return n()},is:f,isSome:f,isNone:l,getOr:s,getOrThunk:N,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:u(null),getOrUndefined:u(undefined),or:s,orThunk:N,map:t,each:n,bind:t,exists:f,forall:l,filter:t,equals:m,equals_:m,toArray:function(){return[]},toString:u("none()")},Object.freeze&&Object.freeze(e),e);function m(n){return n.isNone()}function N(n){return n()}function s(n){return n}function g(n,t){var e=n.dom(),r=i.window.getComputedStyle(e).getPropertyValue(t),o=""!==r||function(n){var t=A(n)?n.dom().parentNode:n.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}(n)?r:w(e,t);return null===o?undefined:o}function T(t,r){return function(e){function n(n){var t=p.fromDom(n.element);e.setActive(function(n){return"rtl"===g(n,"direction")?"rtl":"ltr"}(t)===r)}return t.on("NodeChange",n),function(){return t.off("NodeChange",n)}}}var E,O,y=function(e){function n(){return o}function t(n){return n(e)}var r=u(e),o={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:l,isNone:f,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){return y(n(e))},each:function(n){n(e)},bind:t,exists:t,forall:t,filter:function(n){return n(e)?o:a},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(f,function(n){return t(e,n)})}};return o},D=function(n){return null===n||n===undefined?a:y(n)},h=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:u(n)}},p={fromHtml:function(n,t){var e=(t||i.document).createElement("div");if(e.innerHTML=n,!e.hasChildNodes()||1<e.childNodes.length)throw i.console.error("HTML does not have a single root node",n),new Error("HTML must have a single root node");return h(e.childNodes[0])},fromTag:function(n,t){var e=(t||i.document).createElement(n);return h(e)},fromText:function(n,t){var e=(t||i.document).createTextNode(n);return h(e)},fromDom:h,fromPoint:function(n,t,e){var r=n.dom();return D(r.elementFromPoint(t,e)).map(h)}},_=(E="function",function(n){return function(n){if(null===n)return"null";var t=typeof n;return"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t}(n)===E}),v=Array.prototype.slice,C=(_(Array.from)&&Array.from,i.Node.ATTRIBUTE_NODE,i.Node.CDATA_SECTION_NODE,i.Node.COMMENT_NODE,i.Node.DOCUMENT_NODE,i.Node.DOCUMENT_TYPE_NODE,i.Node.DOCUMENT_FRAGMENT_NODE,i.Node.ELEMENT_NODE,i.Node.TEXT_NODE),A=(i.Node.PROCESSING_INSTRUCTION_NODE,i.Node.ENTITY_REFERENCE_NODE,i.Node.ENTITY_NODE,i.Node.NOTATION_NODE,"undefined"!=typeof i.window?i.window:Function("return this;")(),O=C,function(n){return function(n){return n.dom().nodeType}(n)===O}),w=function(n,t){return function(n){return n.style!==undefined&&_(n.style.getPropertyValue)}(n)?n.style.getPropertyValue(t):""},S=function(n){n.ui.registry.addToggleButton("ltr",{tooltip:"Left to right",icon:"ltr",onAction:function(){return n.execCommand("mceDirectionLTR")},onSetup:T(n,"ltr")}),n.ui.registry.addToggleButton("rtl",{tooltip:"Right to left",icon:"rtl",onAction:function(){return n.execCommand("mceDirectionRTL")},onSetup:T(n,"rtl")})};!function R(){r.add("directionality",function(n){d(n),S(n)})}()}(window);
\ No newline at end of file
+++ /dev/null
-// NOTE: Source: npm package: emojilib, file:emojis.json
-window.tinymce.Resource.add("tinymce.plugins.emoticons", {
- grinning: {
- keywords: [ "face", "smile", "happy", "joy", ":D", "grin" ],
- "char": "\ud83d\ude00",
- fitzpatrick_scale: false,
- category: "people"
- },
- grimacing: {
- keywords: [ "face", "grimace", "teeth" ],
- "char": "\ud83d\ude2c",
- fitzpatrick_scale: false,
- category: "people"
- },
- grin: {
- keywords: [ "face", "happy", "smile", "joy", "kawaii" ],
- "char": "\ud83d\ude01",
- fitzpatrick_scale: false,
- category: "people"
- },
- joy: {
- keywords: [ "face", "cry", "tears", "weep", "happy", "happytears", "haha" ],
- "char": "\ud83d\ude02",
- fitzpatrick_scale: false,
- category: "people"
- },
- rofl: {
- keywords: [ "face", "rolling", "floor", "laughing", "lol", "haha" ],
- "char": "\ud83e\udd23",
- fitzpatrick_scale: false,
- category: "people"
- },
- smiley: {
- keywords: [ "face", "happy", "joy", "haha", ":D", ":)", "smile", "funny" ],
- "char": "\ud83d\ude03",
- fitzpatrick_scale: false,
- category: "people"
- },
- smile: {
- keywords: [ "face", "happy", "joy", "funny", "haha", "laugh", "like", ":D", ":)" ],
- "char": "\ud83d\ude04",
- fitzpatrick_scale: false,
- category: "people"
- },
- sweat_smile: {
- keywords: [ "face", "hot", "happy", "laugh", "sweat", "smile", "relief" ],
- "char": "\ud83d\ude05",
- fitzpatrick_scale: false,
- category: "people"
- },
- laughing: {
- keywords: [ "happy", "joy", "lol", "satisfied", "haha", "face", "glad", "XD", "laugh" ],
- "char": "\ud83d\ude06",
- fitzpatrick_scale: false,
- category: "people"
- },
- innocent: {
- keywords: [ "face", "angel", "heaven", "halo" ],
- "char": "\ud83d\ude07",
- fitzpatrick_scale: false,
- category: "people"
- },
- wink: {
- keywords: [ "face", "happy", "mischievous", "secret", ";)", "smile", "eye" ],
- "char": "\ud83d\ude09",
- fitzpatrick_scale: false,
- category: "people"
- },
- blush: {
- keywords: [ "face", "smile", "happy", "flushed", "crush", "embarrassed", "shy", "joy" ],
- "char": "\ud83d\ude0a",
- fitzpatrick_scale: false,
- category: "people"
- },
- slightly_smiling_face: {
- keywords: [ "face", "smile" ],
- "char": "\ud83d\ude42",
- fitzpatrick_scale: false,
- category: "people"
- },
- upside_down_face: {
- keywords: [ "face", "flipped", "silly", "smile" ],
- "char": "\ud83d\ude43",
- fitzpatrick_scale: false,
- category: "people"
- },
- relaxed: {
- keywords: [ "face", "blush", "massage", "happiness" ],
- "char": "\u263a\ufe0f",
- fitzpatrick_scale: false,
- category: "people"
- },
- yum: {
- keywords: [ "happy", "joy", "tongue", "smile", "face", "silly", "yummy", "nom", "delicious", "savouring" ],
- "char": "\ud83d\ude0b",
- fitzpatrick_scale: false,
- category: "people"
- },
- relieved: {
- keywords: [ "face", "relaxed", "phew", "massage", "happiness" ],
- "char": "\ud83d\ude0c",
- fitzpatrick_scale: false,
- category: "people"
- },
- heart_eyes: {
- keywords: [ "face", "love", "like", "affection", "valentines", "infatuation", "crush", "heart" ],
- "char": "\ud83d\ude0d",
- fitzpatrick_scale: false,
- category: "people"
- },
- kissing_heart: {
- keywords: [ "face", "love", "like", "affection", "valentines", "infatuation", "kiss" ],
- "char": "\ud83d\ude18",
- fitzpatrick_scale: false,
- category: "people"
- },
- kissing: {
- keywords: [ "love", "like", "face", "3", "valentines", "infatuation", "kiss" ],
- "char": "\ud83d\ude17",
- fitzpatrick_scale: false,
- category: "people"
- },
- kissing_smiling_eyes: {
- keywords: [ "face", "affection", "valentines", "infatuation", "kiss" ],
- "char": "\ud83d\ude19",
- fitzpatrick_scale: false,
- category: "people"
- },
- kissing_closed_eyes: {
- keywords: [ "face", "love", "like", "affection", "valentines", "infatuation", "kiss" ],
- "char": "\ud83d\ude1a",
- fitzpatrick_scale: false,
- category: "people"
- },
- stuck_out_tongue_winking_eye: {
- keywords: [ "face", "prank", "childish", "playful", "mischievous", "smile", "wink", "tongue" ],
- "char": "\ud83d\ude1c",
- fitzpatrick_scale: false,
- category: "people"
- },
- zany: {
- keywords: [ "face", "goofy", "crazy" ],
- "char": "\ud83e\udd2a",
- fitzpatrick_scale: false,
- category: "people"
- },
- raised_eyebrow: {
- keywords: [ "face", "distrust", "scepticism", "disapproval", "disbelief", "surprise" ],
- "char": "\ud83e\udd28",
- fitzpatrick_scale: false,
- category: "people"
- },
- monocle: {
- keywords: [ "face", "stuffy", "wealthy" ],
- "char": "\ud83e\uddd0",
- fitzpatrick_scale: false,
- category: "people"
- },
- stuck_out_tongue_closed_eyes: {
- keywords: [ "face", "prank", "playful", "mischievous", "smile", "tongue" ],
- "char": "\ud83d\ude1d",
- fitzpatrick_scale: false,
- category: "people"
- },
- stuck_out_tongue: {
- keywords: [ "face", "prank", "childish", "playful", "mischievous", "smile", "tongue" ],
- "char": "\ud83d\ude1b",
- fitzpatrick_scale: false,
- category: "people"
- },
- money_mouth_face: {
- keywords: [ "face", "rich", "dollar", "money" ],
- "char": "\ud83e\udd11",
- fitzpatrick_scale: false,
- category: "people"
- },
- nerd_face: {
- keywords: [ "face", "nerdy", "geek", "dork" ],
- "char": "\ud83e\udd13",
- fitzpatrick_scale: false,
- category: "people"
- },
- sunglasses: {
- keywords: [ "face", "cool", "smile", "summer", "beach", "sunglass" ],
- "char": "\ud83d\ude0e",
- fitzpatrick_scale: false,
- category: "people"
- },
- star_struck: {
- keywords: [ "face", "smile", "starry", "eyes", "grinning" ],
- "char": "\ud83e\udd29",
- fitzpatrick_scale: false,
- category: "people"
- },
- clown_face: {
- keywords: [ "face" ],
- "char": "\ud83e\udd21",
- fitzpatrick_scale: false,
- category: "people"
- },
- cowboy_hat_face: {
- keywords: [ "face", "cowgirl", "hat" ],
- "char": "\ud83e\udd20",
- fitzpatrick_scale: false,
- category: "people"
- },
- hugs: {
- keywords: [ "face", "smile", "hug" ],
- "char": "\ud83e\udd17",
- fitzpatrick_scale: false,
- category: "people"
- },
- smirk: {
- keywords: [ "face", "smile", "mean", "prank", "smug", "sarcasm" ],
- "char": "\ud83d\ude0f",
- fitzpatrick_scale: false,
- category: "people"
- },
- no_mouth: {
- keywords: [ "face", "hellokitty" ],
- "char": "\ud83d\ude36",
- fitzpatrick_scale: false,
- category: "people"
- },
- neutral_face: {
- keywords: [ "indifference", "meh", ":|", "neutral" ],
- "char": "\ud83d\ude10",
- fitzpatrick_scale: false,
- category: "people"
- },
- expressionless: {
- keywords: [ "face", "indifferent", "-_-", "meh", "deadpan" ],
- "char": "\ud83d\ude11",
- fitzpatrick_scale: false,
- category: "people"
- },
- unamused: {
- keywords: [ "indifference", "bored", "straight face", "serious", "sarcasm", "unimpressed", "skeptical", "dubious", "side_eye" ],
- "char": "\ud83d\ude12",
- fitzpatrick_scale: false,
- category: "people"
- },
- roll_eyes: {
- keywords: [ "face", "eyeroll", "frustrated" ],
- "char": "\ud83d\ude44",
- fitzpatrick_scale: false,
- category: "people"
- },
- thinking: {
- keywords: [ "face", "hmmm", "think", "consider" ],
- "char": "\ud83e\udd14",
- fitzpatrick_scale: false,
- category: "people"
- },
- lying_face: {
- keywords: [ "face", "lie", "pinocchio" ],
- "char": "\ud83e\udd25",
- fitzpatrick_scale: false,
- category: "people"
- },
- hand_over_mouth: {
- keywords: [ "face", "whoops", "shock", "surprise" ],
- "char": "\ud83e\udd2d",
- fitzpatrick_scale: false,
- category: "people"
- },
- shushing: {
- keywords: [ "face", "quiet", "shhh" ],
- "char": "\ud83e\udd2b",
- fitzpatrick_scale: false,
- category: "people"
- },
- symbols_over_mouth: {
- keywords: [ "face", "swearing", "cursing", "cussing", "profanity", "expletive" ],
- "char": "\ud83e\udd2c",
- fitzpatrick_scale: false,
- category: "people"
- },
- exploding_head: {
- keywords: [ "face", "shocked", "mind", "blown" ],
- "char": "\ud83e\udd2f",
- fitzpatrick_scale: false,
- category: "people"
- },
- flushed: {
- keywords: [ "face", "blush", "shy", "flattered" ],
- "char": "\ud83d\ude33",
- fitzpatrick_scale: false,
- category: "people"
- },
- disappointed: {
- keywords: [ "face", "sad", "upset", "depressed", ":(" ],
- "char": "\ud83d\ude1e",
- fitzpatrick_scale: false,
- category: "people"
- },
- worried: {
- keywords: [ "face", "concern", "nervous", ":(" ],
- "char": "\ud83d\ude1f",
- fitzpatrick_scale: false,
- category: "people"
- },
- angry: {
- keywords: [ "mad", "face", "annoyed", "frustrated" ],
- "char": "\ud83d\ude20",
- fitzpatrick_scale: false,
- category: "people"
- },
- rage: {
- keywords: [ "angry", "mad", "hate", "despise" ],
- "char": "\ud83d\ude21",
- fitzpatrick_scale: false,
- category: "people"
- },
- pensive: {
- keywords: [ "face", "sad", "depressed", "upset" ],
- "char": "\ud83d\ude14",
- fitzpatrick_scale: false,
- category: "people"
- },
- confused: {
- keywords: [ "face", "indifference", "huh", "weird", "hmmm", ":/" ],
- "char": "\ud83d\ude15",
- fitzpatrick_scale: false,
- category: "people"
- },
- slightly_frowning_face: {
- keywords: [ "face", "frowning", "disappointed", "sad", "upset" ],
- "char": "\ud83d\ude41",
- fitzpatrick_scale: false,
- category: "people"
- },
- frowning_face: {
- keywords: [ "face", "sad", "upset", "frown" ],
- "char": "\u2639",
- fitzpatrick_scale: false,
- category: "people"
- },
- persevere: {
- keywords: [ "face", "sick", "no", "upset", "oops" ],
- "char": "\ud83d\ude23",
- fitzpatrick_scale: false,
- category: "people"
- },
- confounded: {
- keywords: [ "face", "confused", "sick", "unwell", "oops", ":S" ],
- "char": "\ud83d\ude16",
- fitzpatrick_scale: false,
- category: "people"
- },
- tired_face: {
- keywords: [ "sick", "whine", "upset", "frustrated" ],
- "char": "\ud83d\ude2b",
- fitzpatrick_scale: false,
- category: "people"
- },
- weary: {
- keywords: [ "face", "tired", "sleepy", "sad", "frustrated", "upset" ],
- "char": "\ud83d\ude29",
- fitzpatrick_scale: false,
- category: "people"
- },
- triumph: {
- keywords: [ "face", "gas", "phew", "proud", "pride" ],
- "char": "\ud83d\ude24",
- fitzpatrick_scale: false,
- category: "people"
- },
- open_mouth: {
- keywords: [ "face", "surprise", "impressed", "wow", "whoa", ":O" ],
- "char": "\ud83d\ude2e",
- fitzpatrick_scale: false,
- category: "people"
- },
- scream: {
- keywords: [ "face", "munch", "scared", "omg" ],
- "char": "\ud83d\ude31",
- fitzpatrick_scale: false,
- category: "people"
- },
- fearful: {
- keywords: [ "face", "scared", "terrified", "nervous", "oops", "huh" ],
- "char": "\ud83d\ude28",
- fitzpatrick_scale: false,
- category: "people"
- },
- cold_sweat: {
- keywords: [ "face", "nervous", "sweat" ],
- "char": "\ud83d\ude30",
- fitzpatrick_scale: false,
- category: "people"
- },
- hushed: {
- keywords: [ "face", "woo", "shh" ],
- "char": "\ud83d\ude2f",
- fitzpatrick_scale: false,
- category: "people"
- },
- frowning: {
- keywords: [ "face", "aw", "what" ],
- "char": "\ud83d\ude26",
- fitzpatrick_scale: false,
- category: "people"
- },
- anguished: {
- keywords: [ "face", "stunned", "nervous" ],
- "char": "\ud83d\ude27",
- fitzpatrick_scale: false,
- category: "people"
- },
- cry: {
- keywords: [ "face", "tears", "sad", "depressed", "upset", ":'(" ],
- "char": "\ud83d\ude22",
- fitzpatrick_scale: false,
- category: "people"
- },
- disappointed_relieved: {
- keywords: [ "face", "phew", "sweat", "nervous" ],
- "char": "\ud83d\ude25",
- fitzpatrick_scale: false,
- category: "people"
- },
- drooling_face: {
- keywords: [ "face" ],
- "char": "\ud83e\udd24",
- fitzpatrick_scale: false,
- category: "people"
- },
- sleepy: {
- keywords: [ "face", "tired", "rest", "nap" ],
- "char": "\ud83d\ude2a",
- fitzpatrick_scale: false,
- category: "people"
- },
- sweat: {
- keywords: [ "face", "hot", "sad", "tired", "exercise" ],
- "char": "\ud83d\ude13",
- fitzpatrick_scale: false,
- category: "people"
- },
- sob: {
- keywords: [ "face", "cry", "tears", "sad", "upset", "depressed" ],
- "char": "\ud83d\ude2d",
- fitzpatrick_scale: false,
- category: "people"
- },
- dizzy_face: {
- keywords: [ "spent", "unconscious", "xox", "dizzy" ],
- "char": "\ud83d\ude35",
- fitzpatrick_scale: false,
- category: "people"
- },
- astonished: {
- keywords: [ "face", "xox", "surprised", "poisoned" ],
- "char": "\ud83d\ude32",
- fitzpatrick_scale: false,
- category: "people"
- },
- zipper_mouth_face: {
- keywords: [ "face", "sealed", "zipper", "secret" ],
- "char": "\ud83e\udd10",
- fitzpatrick_scale: false,
- category: "people"
- },
- nauseated_face: {
- keywords: [ "face", "vomit", "gross", "green", "sick", "throw up", "ill" ],
- "char": "\ud83e\udd22",
- fitzpatrick_scale: false,
- category: "people"
- },
- sneezing_face: {
- keywords: [ "face", "gesundheit", "sneeze", "sick", "allergy" ],
- "char": "\ud83e\udd27",
- fitzpatrick_scale: false,
- category: "people"
- },
- vomiting: {
- keywords: [ "face", "sick" ],
- "char": "\ud83e\udd2e",
- fitzpatrick_scale: false,
- category: "people"
- },
- mask: {
- keywords: [ "face", "sick", "ill", "disease" ],
- "char": "\ud83d\ude37",
- fitzpatrick_scale: false,
- category: "people"
- },
- face_with_thermometer: {
- keywords: [ "sick", "temperature", "thermometer", "cold", "fever" ],
- "char": "\ud83e\udd12",
- fitzpatrick_scale: false,
- category: "people"
- },
- face_with_head_bandage: {
- keywords: [ "injured", "clumsy", "bandage", "hurt" ],
- "char": "\ud83e\udd15",
- fitzpatrick_scale: false,
- category: "people"
- },
- sleeping: {
- keywords: [ "face", "tired", "sleepy", "night", "zzz" ],
- "char": "\ud83d\ude34",
- fitzpatrick_scale: false,
- category: "people"
- },
- zzz: {
- keywords: [ "sleepy", "tired", "dream" ],
- "char": "\ud83d\udca4",
- fitzpatrick_scale: false,
- category: "people"
- },
- poop: {
- keywords: [ "hankey", "shitface", "fail", "turd", "shit" ],
- "char": "\ud83d\udca9",
- fitzpatrick_scale: false,
- category: "people"
- },
- smiling_imp: {
- keywords: [ "devil", "horns" ],
- "char": "\ud83d\ude08",
- fitzpatrick_scale: false,
- category: "people"
- },
- imp: {
- keywords: [ "devil", "angry", "horns" ],
- "char": "\ud83d\udc7f",
- fitzpatrick_scale: false,
- category: "people"
- },
- japanese_ogre: {
- keywords: [ "monster", "red", "mask", "halloween", "scary", "creepy", "devil", "demon", "japanese", "ogre" ],
- "char": "\ud83d\udc79",
- fitzpatrick_scale: false,
- category: "people"
- },
- japanese_goblin: {
- keywords: [ "red", "evil", "mask", "monster", "scary", "creepy", "japanese", "goblin" ],
- "char": "\ud83d\udc7a",
- fitzpatrick_scale: false,
- category: "people"
- },
- skull: {
- keywords: [ "dead", "skeleton", "creepy", "death" ],
- "char": "\ud83d\udc80",
- fitzpatrick_scale: false,
- category: "people"
- },
- ghost: {
- keywords: [ "halloween", "spooky", "scary" ],
- "char": "\ud83d\udc7b",
- fitzpatrick_scale: false,
- category: "people"
- },
- alien: {
- keywords: [ "UFO", "paul", "weird", "outer_space" ],
- "char": "\ud83d\udc7d",
- fitzpatrick_scale: false,
- category: "people"
- },
- robot: {
- keywords: [ "computer", "machine", "bot" ],
- "char": "\ud83e\udd16",
- fitzpatrick_scale: false,
- category: "people"
- },
- smiley_cat: {
- keywords: [ "animal", "cats", "happy", "smile" ],
- "char": "\ud83d\ude3a",
- fitzpatrick_scale: false,
- category: "people"
- },
- smile_cat: {
- keywords: [ "animal", "cats", "smile" ],
- "char": "\ud83d\ude38",
- fitzpatrick_scale: false,
- category: "people"
- },
- joy_cat: {
- keywords: [ "animal", "cats", "haha", "happy", "tears" ],
- "char": "\ud83d\ude39",
- fitzpatrick_scale: false,
- category: "people"
- },
- heart_eyes_cat: {
- keywords: [ "animal", "love", "like", "affection", "cats", "valentines", "heart" ],
- "char": "\ud83d\ude3b",
- fitzpatrick_scale: false,
- category: "people"
- },
- smirk_cat: {
- keywords: [ "animal", "cats", "smirk" ],
- "char": "\ud83d\ude3c",
- fitzpatrick_scale: false,
- category: "people"
- },
- kissing_cat: {
- keywords: [ "animal", "cats", "kiss" ],
- "char": "\ud83d\ude3d",
- fitzpatrick_scale: false,
- category: "people"
- },
- scream_cat: {
- keywords: [ "animal", "cats", "munch", "scared", "scream" ],
- "char": "\ud83d\ude40",
- fitzpatrick_scale: false,
- category: "people"
- },
- crying_cat_face: {
- keywords: [ "animal", "tears", "weep", "sad", "cats", "upset", "cry" ],
- "char": "\ud83d\ude3f",
- fitzpatrick_scale: false,
- category: "people"
- },
- pouting_cat: {
- keywords: [ "animal", "cats" ],
- "char": "\ud83d\ude3e",
- fitzpatrick_scale: false,
- category: "people"
- },
- palms_up: {
- keywords: [ "hands", "gesture", "cupped", "prayer" ],
- "char": "\ud83e\udd32",
- fitzpatrick_scale: true,
- category: "people"
- },
- raised_hands: {
- keywords: [ "gesture", "hooray", "yea", "celebration", "hands" ],
- "char": "\ud83d\ude4c",
- fitzpatrick_scale: true,
- category: "people"
- },
- clap: {
- keywords: [ "hands", "praise", "applause", "congrats", "yay" ],
- "char": "\ud83d\udc4f",
- fitzpatrick_scale: true,
- category: "people"
- },
- wave: {
- keywords: [ "hands", "gesture", "goodbye", "solong", "farewell", "hello", "hi", "palm" ],
- "char": "\ud83d\udc4b",
- fitzpatrick_scale: true,
- category: "people"
- },
- call_me_hand: {
- keywords: [ "hands", "gesture" ],
- "char": "\ud83e\udd19",
- fitzpatrick_scale: true,
- category: "people"
- },
- "+1": {
- keywords: [ "thumbsup", "yes", "awesome", "good", "agree", "accept", "cool", "hand", "like" ],
- "char": "\ud83d\udc4d",
- fitzpatrick_scale: true,
- category: "people"
- },
- "-1": {
- keywords: [ "thumbsdown", "no", "dislike", "hand" ],
- "char": "\ud83d\udc4e",
- fitzpatrick_scale: true,
- category: "people"
- },
- facepunch: {
- keywords: [ "angry", "violence", "fist", "hit", "attack", "hand" ],
- "char": "\ud83d\udc4a",
- fitzpatrick_scale: true,
- category: "people"
- },
- fist: {
- keywords: [ "fingers", "hand", "grasp" ],
- "char": "\u270a",
- fitzpatrick_scale: true,
- category: "people"
- },
- fist_left: {
- keywords: [ "hand", "fistbump" ],
- "char": "\ud83e\udd1b",
- fitzpatrick_scale: true,
- category: "people"
- },
- fist_right: {
- keywords: [ "hand", "fistbump" ],
- "char": "\ud83e\udd1c",
- fitzpatrick_scale: true,
- category: "people"
- },
- v: {
- keywords: [ "fingers", "ohyeah", "hand", "peace", "victory", "two" ],
- "char": "\u270c",
- fitzpatrick_scale: true,
- category: "people"
- },
- ok_hand: {
- keywords: [ "fingers", "limbs", "perfect", "ok", "okay" ],
- "char": "\ud83d\udc4c",
- fitzpatrick_scale: true,
- category: "people"
- },
- raised_hand: {
- keywords: [ "fingers", "stop", "highfive", "palm", "ban" ],
- "char": "\u270b",
- fitzpatrick_scale: true,
- category: "people"
- },
- raised_back_of_hand: {
- keywords: [ "fingers", "raised", "backhand" ],
- "char": "\ud83e\udd1a",
- fitzpatrick_scale: true,
- category: "people"
- },
- open_hands: {
- keywords: [ "fingers", "butterfly", "hands", "open" ],
- "char": "\ud83d\udc50",
- fitzpatrick_scale: true,
- category: "people"
- },
- muscle: {
- keywords: [ "arm", "flex", "hand", "summer", "strong", "biceps" ],
- "char": "\ud83d\udcaa",
- fitzpatrick_scale: true,
- category: "people"
- },
- pray: {
- keywords: [ "please", "hope", "wish", "namaste", "highfive" ],
- "char": "\ud83d\ude4f",
- fitzpatrick_scale: true,
- category: "people"
- },
- handshake: {
- keywords: [ "agreement", "shake" ],
- "char": "\ud83e\udd1d",
- fitzpatrick_scale: false,
- category: "people"
- },
- point_up: {
- keywords: [ "hand", "fingers", "direction", "up" ],
- "char": "\u261d",
- fitzpatrick_scale: true,
- category: "people"
- },
- point_up_2: {
- keywords: [ "fingers", "hand", "direction", "up" ],
- "char": "\ud83d\udc46",
- fitzpatrick_scale: true,
- category: "people"
- },
- point_down: {
- keywords: [ "fingers", "hand", "direction", "down" ],
- "char": "\ud83d\udc47",
- fitzpatrick_scale: true,
- category: "people"
- },
- point_left: {
- keywords: [ "direction", "fingers", "hand", "left" ],
- "char": "\ud83d\udc48",
- fitzpatrick_scale: true,
- category: "people"
- },
- point_right: {
- keywords: [ "fingers", "hand", "direction", "right" ],
- "char": "\ud83d\udc49",
- fitzpatrick_scale: true,
- category: "people"
- },
- fu: {
- keywords: [ "hand", "fingers", "rude", "middle", "flipping" ],
- "char": "\ud83d\udd95",
- fitzpatrick_scale: true,
- category: "people"
- },
- raised_hand_with_fingers_splayed: {
- keywords: [ "hand", "fingers", "palm" ],
- "char": "\ud83d\udd90",
- fitzpatrick_scale: true,
- category: "people"
- },
- love_you: {
- keywords: [ "hand", "fingers", "gesture" ],
- "char": "\ud83e\udd1f",
- fitzpatrick_scale: true,
- category: "people"
- },
- metal: {
- keywords: [ "hand", "fingers", "evil_eye", "sign_of_horns", "rock_on" ],
- "char": "\ud83e\udd18",
- fitzpatrick_scale: true,
- category: "people"
- },
- crossed_fingers: {
- keywords: [ "good", "lucky" ],
- "char": "\ud83e\udd1e",
- fitzpatrick_scale: true,
- category: "people"
- },
- vulcan_salute: {
- keywords: [ "hand", "fingers", "spock", "star trek" ],
- "char": "\ud83d\udd96",
- fitzpatrick_scale: true,
- category: "people"
- },
- writing_hand: {
- keywords: [ "lower_left_ballpoint_pen", "stationery", "write", "compose" ],
- "char": "\u270d",
- fitzpatrick_scale: true,
- category: "people"
- },
- selfie: {
- keywords: [ "camera", "phone" ],
- "char": "\ud83e\udd33",
- fitzpatrick_scale: true,
- category: "people"
- },
- nail_care: {
- keywords: [ "beauty", "manicure", "finger", "fashion", "nail" ],
- "char": "\ud83d\udc85",
- fitzpatrick_scale: true,
- category: "people"
- },
- lips: {
- keywords: [ "mouth", "kiss" ],
- "char": "\ud83d\udc44",
- fitzpatrick_scale: false,
- category: "people"
- },
- tongue: {
- keywords: [ "mouth", "playful" ],
- "char": "\ud83d\udc45",
- fitzpatrick_scale: false,
- category: "people"
- },
- ear: {
- keywords: [ "face", "hear", "sound", "listen" ],
- "char": "\ud83d\udc42",
- fitzpatrick_scale: true,
- category: "people"
- },
- nose: {
- keywords: [ "smell", "sniff" ],
- "char": "\ud83d\udc43",
- fitzpatrick_scale: true,
- category: "people"
- },
- eye: {
- keywords: [ "face", "look", "see", "watch", "stare" ],
- "char": "\ud83d\udc41",
- fitzpatrick_scale: false,
- category: "people"
- },
- eyes: {
- keywords: [ "look", "watch", "stalk", "peek", "see" ],
- "char": "\ud83d\udc40",
- fitzpatrick_scale: false,
- category: "people"
- },
- brain: {
- keywords: [ "smart", "intelligent" ],
- "char": "\ud83e\udde0",
- fitzpatrick_scale: false,
- category: "people"
- },
- bust_in_silhouette: {
- keywords: [ "user", "person", "human" ],
- "char": "\ud83d\udc64",
- fitzpatrick_scale: false,
- category: "people"
- },
- busts_in_silhouette: {
- keywords: [ "user", "person", "human", "group", "team" ],
- "char": "\ud83d\udc65",
- fitzpatrick_scale: false,
- category: "people"
- },
- speaking_head: {
- keywords: [ "user", "person", "human", "sing", "say", "talk" ],
- "char": "\ud83d\udde3",
- fitzpatrick_scale: false,
- category: "people"
- },
- baby: {
- keywords: [ "child", "boy", "girl", "toddler" ],
- "char": "\ud83d\udc76",
- fitzpatrick_scale: true,
- category: "people"
- },
- child: {
- keywords: [ "gender-neutral", "young" ],
- "char": "\ud83e\uddd2",
- fitzpatrick_scale: true,
- category: "people"
- },
- boy: {
- keywords: [ "man", "male", "guy", "teenager" ],
- "char": "\ud83d\udc66",
- fitzpatrick_scale: true,
- category: "people"
- },
- girl: {
- keywords: [ "female", "woman", "teenager" ],
- "char": "\ud83d\udc67",
- fitzpatrick_scale: true,
- category: "people"
- },
- adult: {
- keywords: [ "gender-neutral", "person" ],
- "char": "\ud83e\uddd1",
- fitzpatrick_scale: true,
- category: "people"
- },
- man: {
- keywords: [ "mustache", "father", "dad", "guy", "classy", "sir", "moustache" ],
- "char": "\ud83d\udc68",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman: {
- keywords: [ "female", "girls", "lady" ],
- "char": "\ud83d\udc69",
- fitzpatrick_scale: true,
- category: "people"
- },
- blonde_woman: {
- keywords: [ "woman", "female", "girl", "blonde", "person" ],
- "char": "\ud83d\udc71\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- blonde_man: {
- keywords: [ "man", "male", "boy", "blonde", "guy", "person" ],
- "char": "\ud83d\udc71",
- fitzpatrick_scale: true,
- category: "people"
- },
- bearded_person: {
- keywords: [ "person", "bewhiskered" ],
- "char": "\ud83e\uddd4",
- fitzpatrick_scale: true,
- category: "people"
- },
- older_adult: {
- keywords: [ "human", "elder", "senior", "gender-neutral" ],
- "char": "\ud83e\uddd3",
- fitzpatrick_scale: true,
- category: "people"
- },
- older_man: {
- keywords: [ "human", "male", "men", "old", "elder", "senior" ],
- "char": "\ud83d\udc74",
- fitzpatrick_scale: true,
- category: "people"
- },
- older_woman: {
- keywords: [ "human", "female", "women", "lady", "old", "elder", "senior" ],
- "char": "\ud83d\udc75",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_with_gua_pi_mao: {
- keywords: [ "male", "boy", "chinese" ],
- "char": "\ud83d\udc72",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_with_headscarf: {
- keywords: [ "female", "hijab", "mantilla", "tichel" ],
- "char": "\ud83e\uddd5",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_with_turban: {
- keywords: [ "female", "indian", "hinduism", "arabs", "woman" ],
- "char": "\ud83d\udc73\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_with_turban: {
- keywords: [ "male", "indian", "hinduism", "arabs" ],
- "char": "\ud83d\udc73",
- fitzpatrick_scale: true,
- category: "people"
- },
- policewoman: {
- keywords: [ "woman", "police", "law", "legal", "enforcement", "arrest", "911", "female" ],
- "char": "\ud83d\udc6e\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- policeman: {
- keywords: [ "man", "police", "law", "legal", "enforcement", "arrest", "911" ],
- "char": "\ud83d\udc6e",
- fitzpatrick_scale: true,
- category: "people"
- },
- construction_worker_woman: {
- keywords: [ "female", "human", "wip", "build", "construction", "worker", "labor", "woman" ],
- "char": "\ud83d\udc77\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- construction_worker_man: {
- keywords: [ "male", "human", "wip", "guy", "build", "construction", "worker", "labor" ],
- "char": "\ud83d\udc77",
- fitzpatrick_scale: true,
- category: "people"
- },
- guardswoman: {
- keywords: [ "uk", "gb", "british", "female", "royal", "woman" ],
- "char": "\ud83d\udc82\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- guardsman: {
- keywords: [ "uk", "gb", "british", "male", "guy", "royal" ],
- "char": "\ud83d\udc82",
- fitzpatrick_scale: true,
- category: "people"
- },
- female_detective: {
- keywords: [ "human", "spy", "detective", "female", "woman" ],
- "char": "\ud83d\udd75\ufe0f\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- male_detective: {
- keywords: [ "human", "spy", "detective" ],
- "char": "\ud83d\udd75",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_health_worker: {
- keywords: [ "doctor", "nurse", "therapist", "healthcare", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\u2695\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_health_worker: {
- keywords: [ "doctor", "nurse", "therapist", "healthcare", "man", "human" ],
- "char": "\ud83d\udc68\u200d\u2695\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_farmer: {
- keywords: [ "rancher", "gardener", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83c\udf3e",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_farmer: {
- keywords: [ "rancher", "gardener", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83c\udf3e",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_cook: {
- keywords: [ "chef", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83c\udf73",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_cook: {
- keywords: [ "chef", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83c\udf73",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_student: {
- keywords: [ "graduate", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83c\udf93",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_student: {
- keywords: [ "graduate", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83c\udf93",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_singer: {
- keywords: [ "rockstar", "entertainer", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83c\udfa4",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_singer: {
- keywords: [ "rockstar", "entertainer", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83c\udfa4",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_teacher: {
- keywords: [ "instructor", "professor", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83c\udfeb",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_teacher: {
- keywords: [ "instructor", "professor", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83c\udfeb",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_factory_worker: {
- keywords: [ "assembly", "industrial", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83c\udfed",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_factory_worker: {
- keywords: [ "assembly", "industrial", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83c\udfed",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_technologist: {
- keywords: [ "coder", "developer", "engineer", "programmer", "software", "woman", "human", "laptop", "computer" ],
- "char": "\ud83d\udc69\u200d\ud83d\udcbb",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_technologist: {
- keywords: [ "coder", "developer", "engineer", "programmer", "software", "man", "human", "laptop", "computer" ],
- "char": "\ud83d\udc68\u200d\ud83d\udcbb",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_office_worker: {
- keywords: [ "business", "manager", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83d\udcbc",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_office_worker: {
- keywords: [ "business", "manager", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83d\udcbc",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_mechanic: {
- keywords: [ "plumber", "woman", "human", "wrench" ],
- "char": "\ud83d\udc69\u200d\ud83d\udd27",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_mechanic: {
- keywords: [ "plumber", "man", "human", "wrench" ],
- "char": "\ud83d\udc68\u200d\ud83d\udd27",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_scientist: {
- keywords: [ "biologist", "chemist", "engineer", "physicist", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83d\udd2c",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_scientist: {
- keywords: [ "biologist", "chemist", "engineer", "physicist", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83d\udd2c",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_artist: {
- keywords: [ "painter", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83c\udfa8",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_artist: {
- keywords: [ "painter", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83c\udfa8",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_firefighter: {
- keywords: [ "fireman", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83d\ude92",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_firefighter: {
- keywords: [ "fireman", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83d\ude92",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_pilot: {
- keywords: [ "aviator", "plane", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\u2708\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_pilot: {
- keywords: [ "aviator", "plane", "man", "human" ],
- "char": "\ud83d\udc68\u200d\u2708\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_astronaut: {
- keywords: [ "space", "rocket", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\ud83d\ude80",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_astronaut: {
- keywords: [ "space", "rocket", "man", "human" ],
- "char": "\ud83d\udc68\u200d\ud83d\ude80",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_judge: {
- keywords: [ "justice", "court", "woman", "human" ],
- "char": "\ud83d\udc69\u200d\u2696\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_judge: {
- keywords: [ "justice", "court", "man", "human" ],
- "char": "\ud83d\udc68\u200d\u2696\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- mrs_claus: {
- keywords: [ "woman", "female", "xmas", "mother christmas" ],
- "char": "\ud83e\udd36",
- fitzpatrick_scale: true,
- category: "people"
- },
- santa: {
- keywords: [ "festival", "man", "male", "xmas", "father christmas" ],
- "char": "\ud83c\udf85",
- fitzpatrick_scale: true,
- category: "people"
- },
- sorceress: {
- keywords: [ "woman", "female", "mage", "witch" ],
- "char": "\ud83e\uddd9\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- wizard: {
- keywords: [ "man", "male", "mage", "sorcerer" ],
- "char": "\ud83e\uddd9\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_elf: {
- keywords: [ "woman", "female" ],
- "char": "\ud83e\udddd\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_elf: {
- keywords: [ "man", "male" ],
- "char": "\ud83e\udddd\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_vampire: {
- keywords: [ "woman", "female" ],
- "char": "\ud83e\udddb\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_vampire: {
- keywords: [ "man", "male", "dracula" ],
- "char": "\ud83e\udddb\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_zombie: {
- keywords: [ "woman", "female", "undead", "walking dead" ],
- "char": "\ud83e\udddf\u200d\u2640\ufe0f",
- fitzpatrick_scale: false,
- category: "people"
- },
- man_zombie: {
- keywords: [ "man", "male", "dracula", "undead", "walking dead" ],
- "char": "\ud83e\udddf\u200d\u2642\ufe0f",
- fitzpatrick_scale: false,
- category: "people"
- },
- woman_genie: {
- keywords: [ "woman", "female" ],
- "char": "\ud83e\uddde\u200d\u2640\ufe0f",
- fitzpatrick_scale: false,
- category: "people"
- },
- man_genie: {
- keywords: [ "man", "male" ],
- "char": "\ud83e\uddde\u200d\u2642\ufe0f",
- fitzpatrick_scale: false,
- category: "people"
- },
- mermaid: {
- keywords: [ "woman", "female", "merwoman", "ariel" ],
- "char": "\ud83e\udddc\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- merman: {
- keywords: [ "man", "male", "triton" ],
- "char": "\ud83e\udddc\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_fairy: {
- keywords: [ "woman", "female" ],
- "char": "\ud83e\uddda\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_fairy: {
- keywords: [ "man", "male" ],
- "char": "\ud83e\uddda\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- angel: {
- keywords: [ "heaven", "wings", "halo" ],
- "char": "\ud83d\udc7c",
- fitzpatrick_scale: true,
- category: "people"
- },
- pregnant_woman: {
- keywords: [ "baby" ],
- "char": "\ud83e\udd30",
- fitzpatrick_scale: true,
- category: "people"
- },
- breastfeeding: {
- keywords: [ "nursing", "baby" ],
- "char": "\ud83e\udd31",
- fitzpatrick_scale: true,
- category: "people"
- },
- princess: {
- keywords: [ "girl", "woman", "female", "blond", "crown", "royal", "queen" ],
- "char": "\ud83d\udc78",
- fitzpatrick_scale: true,
- category: "people"
- },
- prince: {
- keywords: [ "boy", "man", "male", "crown", "royal", "king" ],
- "char": "\ud83e\udd34",
- fitzpatrick_scale: true,
- category: "people"
- },
- bride_with_veil: {
- keywords: [ "couple", "marriage", "wedding", "woman", "bride" ],
- "char": "\ud83d\udc70",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_in_tuxedo: {
- keywords: [ "couple", "marriage", "wedding", "groom" ],
- "char": "\ud83e\udd35",
- fitzpatrick_scale: true,
- category: "people"
- },
- running_woman: {
- keywords: [ "woman", "walking", "exercise", "race", "running", "female" ],
- "char": "\ud83c\udfc3\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- running_man: {
- keywords: [ "man", "walking", "exercise", "race", "running" ],
- "char": "\ud83c\udfc3",
- fitzpatrick_scale: true,
- category: "people"
- },
- walking_woman: {
- keywords: [ "human", "feet", "steps", "woman", "female" ],
- "char": "\ud83d\udeb6\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- walking_man: {
- keywords: [ "human", "feet", "steps" ],
- "char": "\ud83d\udeb6",
- fitzpatrick_scale: true,
- category: "people"
- },
- dancer: {
- keywords: [ "female", "girl", "woman", "fun" ],
- "char": "\ud83d\udc83",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_dancing: {
- keywords: [ "male", "boy", "fun", "dancer" ],
- "char": "\ud83d\udd7a",
- fitzpatrick_scale: true,
- category: "people"
- },
- dancing_women: {
- keywords: [ "female", "bunny", "women", "girls" ],
- "char": "\ud83d\udc6f",
- fitzpatrick_scale: false,
- category: "people"
- },
- dancing_men: {
- keywords: [ "male", "bunny", "men", "boys" ],
- "char": "\ud83d\udc6f\u200d\u2642\ufe0f",
- fitzpatrick_scale: false,
- category: "people"
- },
- couple: {
- keywords: [ "pair", "people", "human", "love", "date", "dating", "like", "affection", "valentines", "marriage" ],
- "char": "\ud83d\udc6b",
- fitzpatrick_scale: false,
- category: "people"
- },
- two_men_holding_hands: {
- keywords: [ "pair", "couple", "love", "like", "bromance", "friendship", "people", "human" ],
- "char": "\ud83d\udc6c",
- fitzpatrick_scale: false,
- category: "people"
- },
- two_women_holding_hands: {
- keywords: [ "pair", "friendship", "couple", "love", "like", "female", "people", "human" ],
- "char": "\ud83d\udc6d",
- fitzpatrick_scale: false,
- category: "people"
- },
- bowing_woman: {
- keywords: [ "woman", "female", "girl" ],
- "char": "\ud83d\ude47\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- bowing_man: {
- keywords: [ "man", "male", "boy" ],
- "char": "\ud83d\ude47",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_facepalming: {
- keywords: [ "man", "male", "boy", "disbelief" ],
- "char": "\ud83e\udd26",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_facepalming: {
- keywords: [ "woman", "female", "girl", "disbelief" ],
- "char": "\ud83e\udd26\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_shrugging: {
- keywords: [ "woman", "female", "girl", "confused", "indifferent", "doubt" ],
- "char": "\ud83e\udd37",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_shrugging: {
- keywords: [ "man", "male", "boy", "confused", "indifferent", "doubt" ],
- "char": "\ud83e\udd37\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- tipping_hand_woman: {
- keywords: [ "female", "girl", "woman", "human", "information" ],
- "char": "\ud83d\udc81",
- fitzpatrick_scale: true,
- category: "people"
- },
- tipping_hand_man: {
- keywords: [ "male", "boy", "man", "human", "information" ],
- "char": "\ud83d\udc81\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- no_good_woman: {
- keywords: [ "female", "girl", "woman", "nope" ],
- "char": "\ud83d\ude45",
- fitzpatrick_scale: true,
- category: "people"
- },
- no_good_man: {
- keywords: [ "male", "boy", "man", "nope" ],
- "char": "\ud83d\ude45\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- ok_woman: {
- keywords: [ "women", "girl", "female", "pink", "human", "woman" ],
- "char": "\ud83d\ude46",
- fitzpatrick_scale: true,
- category: "people"
- },
- ok_man: {
- keywords: [ "men", "boy", "male", "blue", "human", "man" ],
- "char": "\ud83d\ude46\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- raising_hand_woman: {
- keywords: [ "female", "girl", "woman" ],
- "char": "\ud83d\ude4b",
- fitzpatrick_scale: true,
- category: "people"
- },
- raising_hand_man: {
- keywords: [ "male", "boy", "man" ],
- "char": "\ud83d\ude4b\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- pouting_woman: {
- keywords: [ "female", "girl", "woman" ],
- "char": "\ud83d\ude4e",
- fitzpatrick_scale: true,
- category: "people"
- },
- pouting_man: {
- keywords: [ "male", "boy", "man" ],
- "char": "\ud83d\ude4e\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- frowning_woman: {
- keywords: [ "female", "girl", "woman", "sad", "depressed", "discouraged", "unhappy" ],
- "char": "\ud83d\ude4d",
- fitzpatrick_scale: true,
- category: "people"
- },
- frowning_man: {
- keywords: [ "male", "boy", "man", "sad", "depressed", "discouraged", "unhappy" ],
- "char": "\ud83d\ude4d\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- haircut_woman: {
- keywords: [ "female", "girl", "woman" ],
- "char": "\ud83d\udc87",
- fitzpatrick_scale: true,
- category: "people"
- },
- haircut_man: {
- keywords: [ "male", "boy", "man" ],
- "char": "\ud83d\udc87\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- massage_woman: {
- keywords: [ "female", "girl", "woman", "head" ],
- "char": "\ud83d\udc86",
- fitzpatrick_scale: true,
- category: "people"
- },
- massage_man: {
- keywords: [ "male", "boy", "man", "head" ],
- "char": "\ud83d\udc86\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- woman_in_steamy_room: {
- keywords: [ "female", "woman", "spa", "steamroom", "sauna" ],
- "char": "\ud83e\uddd6\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- man_in_steamy_room: {
- keywords: [ "male", "man", "spa", "steamroom", "sauna" ],
- "char": "\ud83e\uddd6\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "people"
- },
- couple_with_heart_woman_man: {
- keywords: [ "pair", "love", "like", "affection", "human", "dating", "valentines", "marriage" ],
- "char": "\ud83d\udc91",
- fitzpatrick_scale: false,
- category: "people"
- },
- couple_with_heart_woman_woman: {
- keywords: [ "pair", "love", "like", "affection", "human", "dating", "valentines", "marriage" ],
- "char": "\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc69",
- fitzpatrick_scale: false,
- category: "people"
- },
- couple_with_heart_man_man: {
- keywords: [ "pair", "love", "like", "affection", "human", "dating", "valentines", "marriage" ],
- "char": "\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68",
- fitzpatrick_scale: false,
- category: "people"
- },
- couplekiss_man_woman: {
- keywords: [ "pair", "valentines", "love", "like", "dating", "marriage" ],
- "char": "\ud83d\udc8f",
- fitzpatrick_scale: false,
- category: "people"
- },
- couplekiss_woman_woman: {
- keywords: [ "pair", "valentines", "love", "like", "dating", "marriage" ],
- "char": "\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69",
- fitzpatrick_scale: false,
- category: "people"
- },
- couplekiss_man_man: {
- keywords: [ "pair", "valentines", "love", "like", "dating", "marriage" ],
- "char": "\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_woman_boy: {
- keywords: [ "home", "parents", "child", "mom", "dad", "father", "mother", "people", "human" ],
- "char": "\ud83d\udc6a",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_woman_girl: {
- keywords: [ "home", "parents", "people", "human", "child" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_woman_girl_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_woman_boy_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_woman_girl_girl: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_woman_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_woman_girl: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_woman_girl_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_woman_boy_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_woman_girl_girl: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_man_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_man_girl: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_man_girl_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_man_boy_boy: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_man_girl_girl: {
- keywords: [ "home", "parents", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_boy: {
- keywords: [ "home", "parent", "people", "human", "child" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_girl: {
- keywords: [ "home", "parent", "people", "human", "child" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_girl_boy: {
- keywords: [ "home", "parent", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_boy_boy: {
- keywords: [ "home", "parent", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_woman_girl_girl: {
- keywords: [ "home", "parent", "people", "human", "children" ],
- "char": "\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_boy: {
- keywords: [ "home", "parent", "people", "human", "child" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_girl: {
- keywords: [ "home", "parent", "people", "human", "child" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_girl_boy: {
- keywords: [ "home", "parent", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_boy_boy: {
- keywords: [ "home", "parent", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66",
- fitzpatrick_scale: false,
- category: "people"
- },
- family_man_girl_girl: {
- keywords: [ "home", "parent", "people", "human", "children" ],
- "char": "\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67",
- fitzpatrick_scale: false,
- category: "people"
- },
- coat: {
- keywords: [ "jacket" ],
- "char": "\ud83e\udde5",
- fitzpatrick_scale: false,
- category: "people"
- },
- womans_clothes: {
- keywords: [ "fashion", "shopping_bags", "female" ],
- "char": "\ud83d\udc5a",
- fitzpatrick_scale: false,
- category: "people"
- },
- tshirt: {
- keywords: [ "fashion", "cloth", "casual", "shirt", "tee" ],
- "char": "\ud83d\udc55",
- fitzpatrick_scale: false,
- category: "people"
- },
- jeans: {
- keywords: [ "fashion", "shopping" ],
- "char": "\ud83d\udc56",
- fitzpatrick_scale: false,
- category: "people"
- },
- necktie: {
- keywords: [ "shirt", "suitup", "formal", "fashion", "cloth", "business" ],
- "char": "\ud83d\udc54",
- fitzpatrick_scale: false,
- category: "people"
- },
- dress: {
- keywords: [ "clothes", "fashion", "shopping" ],
- "char": "\ud83d\udc57",
- fitzpatrick_scale: false,
- category: "people"
- },
- bikini: {
- keywords: [ "swimming", "female", "woman", "girl", "fashion", "beach", "summer" ],
- "char": "\ud83d\udc59",
- fitzpatrick_scale: false,
- category: "people"
- },
- kimono: {
- keywords: [ "dress", "fashion", "women", "female", "japanese" ],
- "char": "\ud83d\udc58",
- fitzpatrick_scale: false,
- category: "people"
- },
- lipstick: {
- keywords: [ "female", "girl", "fashion", "woman" ],
- "char": "\ud83d\udc84",
- fitzpatrick_scale: false,
- category: "people"
- },
- kiss: {
- keywords: [ "face", "lips", "love", "like", "affection", "valentines" ],
- "char": "\ud83d\udc8b",
- fitzpatrick_scale: false,
- category: "people"
- },
- footprints: {
- keywords: [ "feet", "tracking", "walking", "beach" ],
- "char": "\ud83d\udc63",
- fitzpatrick_scale: false,
- category: "people"
- },
- high_heel: {
- keywords: [ "fashion", "shoes", "female", "pumps", "stiletto" ],
- "char": "\ud83d\udc60",
- fitzpatrick_scale: false,
- category: "people"
- },
- sandal: {
- keywords: [ "shoes", "fashion", "flip flops" ],
- "char": "\ud83d\udc61",
- fitzpatrick_scale: false,
- category: "people"
- },
- boot: {
- keywords: [ "shoes", "fashion" ],
- "char": "\ud83d\udc62",
- fitzpatrick_scale: false,
- category: "people"
- },
- mans_shoe: {
- keywords: [ "fashion", "male" ],
- "char": "\ud83d\udc5e",
- fitzpatrick_scale: false,
- category: "people"
- },
- athletic_shoe: {
- keywords: [ "shoes", "sports", "sneakers" ],
- "char": "\ud83d\udc5f",
- fitzpatrick_scale: false,
- category: "people"
- },
- socks: {
- keywords: [ "stockings", "clothes" ],
- "char": "\ud83e\udde6",
- fitzpatrick_scale: false,
- category: "people"
- },
- gloves: {
- keywords: [ "hands", "winter", "clothes" ],
- "char": "\ud83e\udde4",
- fitzpatrick_scale: false,
- category: "people"
- },
- scarf: {
- keywords: [ "neck", "winter", "clothes" ],
- "char": "\ud83e\udde3",
- fitzpatrick_scale: false,
- category: "people"
- },
- womans_hat: {
- keywords: [ "fashion", "accessories", "female", "lady", "spring" ],
- "char": "\ud83d\udc52",
- fitzpatrick_scale: false,
- category: "people"
- },
- tophat: {
- keywords: [ "magic", "gentleman", "classy", "circus" ],
- "char": "\ud83c\udfa9",
- fitzpatrick_scale: false,
- category: "people"
- },
- billed_hat: {
- keywords: [ "cap", "baseball" ],
- "char": "\ud83e\udde2",
- fitzpatrick_scale: false,
- category: "people"
- },
- rescue_worker_helmet: {
- keywords: [ "construction", "build" ],
- "char": "\u26d1",
- fitzpatrick_scale: false,
- category: "people"
- },
- mortar_board: {
- keywords: [ "school", "college", "degree", "university", "graduation", "cap", "hat", "legal", "learn", "education" ],
- "char": "\ud83c\udf93",
- fitzpatrick_scale: false,
- category: "people"
- },
- crown: {
- keywords: [ "king", "kod", "leader", "royalty", "lord" ],
- "char": "\ud83d\udc51",
- fitzpatrick_scale: false,
- category: "people"
- },
- school_satchel: {
- keywords: [ "student", "education", "bag", "backpack" ],
- "char": "\ud83c\udf92",
- fitzpatrick_scale: false,
- category: "people"
- },
- pouch: {
- keywords: [ "bag", "accessories", "shopping" ],
- "char": "\ud83d\udc5d",
- fitzpatrick_scale: false,
- category: "people"
- },
- purse: {
- keywords: [ "fashion", "accessories", "money", "sales", "shopping" ],
- "char": "\ud83d\udc5b",
- fitzpatrick_scale: false,
- category: "people"
- },
- handbag: {
- keywords: [ "fashion", "accessory", "accessories", "shopping" ],
- "char": "\ud83d\udc5c",
- fitzpatrick_scale: false,
- category: "people"
- },
- briefcase: {
- keywords: [ "business", "documents", "work", "law", "legal", "job", "career" ],
- "char": "\ud83d\udcbc",
- fitzpatrick_scale: false,
- category: "people"
- },
- eyeglasses: {
- keywords: [ "fashion", "accessories", "eyesight", "nerdy", "dork", "geek" ],
- "char": "\ud83d\udc53",
- fitzpatrick_scale: false,
- category: "people"
- },
- dark_sunglasses: {
- keywords: [ "face", "cool", "accessories" ],
- "char": "\ud83d\udd76",
- fitzpatrick_scale: false,
- category: "people"
- },
- ring: {
- keywords: [ "wedding", "propose", "marriage", "valentines", "diamond", "fashion", "jewelry", "gem", "engagement" ],
- "char": "\ud83d\udc8d",
- fitzpatrick_scale: false,
- category: "people"
- },
- closed_umbrella: {
- keywords: [ "weather", "rain", "drizzle" ],
- "char": "\ud83c\udf02",
- fitzpatrick_scale: false,
- category: "people"
- },
- dog: {
- keywords: [ "animal", "friend", "nature", "woof", "puppy", "pet", "faithful" ],
- "char": "\ud83d\udc36",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cat: {
- keywords: [ "animal", "meow", "nature", "pet", "kitten" ],
- "char": "\ud83d\udc31",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- mouse: {
- keywords: [ "animal", "nature", "cheese_wedge", "rodent" ],
- "char": "\ud83d\udc2d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- hamster: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83d\udc39",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- rabbit: {
- keywords: [ "animal", "nature", "pet", "spring", "magic", "bunny" ],
- "char": "\ud83d\udc30",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- fox_face: {
- keywords: [ "animal", "nature", "face" ],
- "char": "\ud83e\udd8a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- bear: {
- keywords: [ "animal", "nature", "wild" ],
- "char": "\ud83d\udc3b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- panda_face: {
- keywords: [ "animal", "nature", "panda" ],
- "char": "\ud83d\udc3c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- koala: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83d\udc28",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- tiger: {
- keywords: [ "animal", "cat", "danger", "wild", "nature", "roar" ],
- "char": "\ud83d\udc2f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- lion: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83e\udd81",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cow: {
- keywords: [ "beef", "ox", "animal", "nature", "moo", "milk" ],
- "char": "\ud83d\udc2e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- pig: {
- keywords: [ "animal", "oink", "nature" ],
- "char": "\ud83d\udc37",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- pig_nose: {
- keywords: [ "animal", "oink" ],
- "char": "\ud83d\udc3d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- frog: {
- keywords: [ "animal", "nature", "croak", "toad" ],
- "char": "\ud83d\udc38",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- squid: {
- keywords: [ "animal", "nature", "ocean", "sea" ],
- "char": "\ud83e\udd91",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- octopus: {
- keywords: [ "animal", "creature", "ocean", "sea", "nature", "beach" ],
- "char": "\ud83d\udc19",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- shrimp: {
- keywords: [ "animal", "ocean", "nature", "seafood" ],
- "char": "\ud83e\udd90",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- monkey_face: {
- keywords: [ "animal", "nature", "circus" ],
- "char": "\ud83d\udc35",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- gorilla: {
- keywords: [ "animal", "nature", "circus" ],
- "char": "\ud83e\udd8d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- see_no_evil: {
- keywords: [ "monkey", "animal", "nature", "haha" ],
- "char": "\ud83d\ude48",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- hear_no_evil: {
- keywords: [ "animal", "monkey", "nature" ],
- "char": "\ud83d\ude49",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- speak_no_evil: {
- keywords: [ "monkey", "animal", "nature", "omg" ],
- "char": "\ud83d\ude4a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- monkey: {
- keywords: [ "animal", "nature", "banana", "circus" ],
- "char": "\ud83d\udc12",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- chicken: {
- keywords: [ "animal", "cluck", "nature", "bird" ],
- "char": "\ud83d\udc14",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- penguin: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83d\udc27",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- bird: {
- keywords: [ "animal", "nature", "fly", "tweet", "spring" ],
- "char": "\ud83d\udc26",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- baby_chick: {
- keywords: [ "animal", "chicken", "bird" ],
- "char": "\ud83d\udc24",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- hatching_chick: {
- keywords: [ "animal", "chicken", "egg", "born", "baby", "bird" ],
- "char": "\ud83d\udc23",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- hatched_chick: {
- keywords: [ "animal", "chicken", "baby", "bird" ],
- "char": "\ud83d\udc25",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- duck: {
- keywords: [ "animal", "nature", "bird", "mallard" ],
- "char": "\ud83e\udd86",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- eagle: {
- keywords: [ "animal", "nature", "bird" ],
- "char": "\ud83e\udd85",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- owl: {
- keywords: [ "animal", "nature", "bird", "hoot" ],
- "char": "\ud83e\udd89",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- bat: {
- keywords: [ "animal", "nature", "blind", "vampire" ],
- "char": "\ud83e\udd87",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- wolf: {
- keywords: [ "animal", "nature", "wild" ],
- "char": "\ud83d\udc3a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- boar: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83d\udc17",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- horse: {
- keywords: [ "animal", "brown", "nature" ],
- "char": "\ud83d\udc34",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- unicorn: {
- keywords: [ "animal", "nature", "mystical" ],
- "char": "\ud83e\udd84",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- honeybee: {
- keywords: [ "animal", "insect", "nature", "bug", "spring", "honey" ],
- "char": "\ud83d\udc1d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- bug: {
- keywords: [ "animal", "insect", "nature", "worm" ],
- "char": "\ud83d\udc1b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- butterfly: {
- keywords: [ "animal", "insect", "nature", "caterpillar" ],
- "char": "\ud83e\udd8b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- snail: {
- keywords: [ "slow", "animal", "shell" ],
- "char": "\ud83d\udc0c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- beetle: {
- keywords: [ "animal", "insect", "nature", "ladybug" ],
- "char": "\ud83d\udc1e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- ant: {
- keywords: [ "animal", "insect", "nature", "bug" ],
- "char": "\ud83d\udc1c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- grasshopper: {
- keywords: [ "animal", "cricket", "chirp" ],
- "char": "\ud83e\udd97",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- spider: {
- keywords: [ "animal", "arachnid" ],
- "char": "\ud83d\udd77",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- scorpion: {
- keywords: [ "animal", "arachnid" ],
- "char": "\ud83e\udd82",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- crab: {
- keywords: [ "animal", "crustacean" ],
- "char": "\ud83e\udd80",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- snake: {
- keywords: [ "animal", "evil", "nature", "hiss", "python" ],
- "char": "\ud83d\udc0d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- lizard: {
- keywords: [ "animal", "nature", "reptile" ],
- "char": "\ud83e\udd8e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- "t-rex": {
- keywords: [ "animal", "nature", "dinosaur", "tyrannosaurus", "extinct" ],
- "char": "\ud83e\udd96",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sauropod: {
- keywords: [ "animal", "nature", "dinosaur", "brachiosaurus", "brontosaurus", "diplodocus", "extinct" ],
- "char": "\ud83e\udd95",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- turtle: {
- keywords: [ "animal", "slow", "nature", "tortoise" ],
- "char": "\ud83d\udc22",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- tropical_fish: {
- keywords: [ "animal", "swim", "ocean", "beach", "nemo" ],
- "char": "\ud83d\udc20",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- fish: {
- keywords: [ "animal", "food", "nature" ],
- "char": "\ud83d\udc1f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- blowfish: {
- keywords: [ "animal", "nature", "food", "sea", "ocean" ],
- "char": "\ud83d\udc21",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dolphin: {
- keywords: [ "animal", "nature", "fish", "sea", "ocean", "flipper", "fins", "beach" ],
- "char": "\ud83d\udc2c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- shark: {
- keywords: [ "animal", "nature", "fish", "sea", "ocean", "jaws", "fins", "beach" ],
- "char": "\ud83e\udd88",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- whale: {
- keywords: [ "animal", "nature", "sea", "ocean" ],
- "char": "\ud83d\udc33",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- whale2: {
- keywords: [ "animal", "nature", "sea", "ocean" ],
- "char": "\ud83d\udc0b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- crocodile: {
- keywords: [ "animal", "nature", "reptile", "lizard", "alligator" ],
- "char": "\ud83d\udc0a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- leopard: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83d\udc06",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- zebra: {
- keywords: [ "animal", "nature", "stripes", "safari" ],
- "char": "\ud83e\udd93",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- tiger2: {
- keywords: [ "animal", "nature", "roar" ],
- "char": "\ud83d\udc05",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- water_buffalo: {
- keywords: [ "animal", "nature", "ox", "cow" ],
- "char": "\ud83d\udc03",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- ox: {
- keywords: [ "animal", "cow", "beef" ],
- "char": "\ud83d\udc02",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cow2: {
- keywords: [ "beef", "ox", "animal", "nature", "moo", "milk" ],
- "char": "\ud83d\udc04",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- deer: {
- keywords: [ "animal", "nature", "horns", "venison" ],
- "char": "\ud83e\udd8c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dromedary_camel: {
- keywords: [ "animal", "hot", "desert", "hump" ],
- "char": "\ud83d\udc2a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- camel: {
- keywords: [ "animal", "nature", "hot", "desert", "hump" ],
- "char": "\ud83d\udc2b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- giraffe: {
- keywords: [ "animal", "nature", "spots", "safari" ],
- "char": "\ud83e\udd92",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- elephant: {
- keywords: [ "animal", "nature", "nose", "th", "circus" ],
- "char": "\ud83d\udc18",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- rhinoceros: {
- keywords: [ "animal", "nature", "horn" ],
- "char": "\ud83e\udd8f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- goat: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83d\udc10",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- ram: {
- keywords: [ "animal", "sheep", "nature" ],
- "char": "\ud83d\udc0f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sheep: {
- keywords: [ "animal", "nature", "wool", "shipit" ],
- "char": "\ud83d\udc11",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- racehorse: {
- keywords: [ "animal", "gamble", "luck" ],
- "char": "\ud83d\udc0e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- pig2: {
- keywords: [ "animal", "nature" ],
- "char": "\ud83d\udc16",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- rat: {
- keywords: [ "animal", "mouse", "rodent" ],
- "char": "\ud83d\udc00",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- mouse2: {
- keywords: [ "animal", "nature", "rodent" ],
- "char": "\ud83d\udc01",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- rooster: {
- keywords: [ "animal", "nature", "chicken" ],
- "char": "\ud83d\udc13",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- turkey: {
- keywords: [ "animal", "bird" ],
- "char": "\ud83e\udd83",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dove: {
- keywords: [ "animal", "bird" ],
- "char": "\ud83d\udd4a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dog2: {
- keywords: [ "animal", "nature", "friend", "doge", "pet", "faithful" ],
- "char": "\ud83d\udc15",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- poodle: {
- keywords: [ "dog", "animal", "101", "nature", "pet" ],
- "char": "\ud83d\udc29",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cat2: {
- keywords: [ "animal", "meow", "pet", "cats" ],
- "char": "\ud83d\udc08",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- rabbit2: {
- keywords: [ "animal", "nature", "pet", "magic", "spring" ],
- "char": "\ud83d\udc07",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- chipmunk: {
- keywords: [ "animal", "nature", "rodent", "squirrel" ],
- "char": "\ud83d\udc3f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- hedgehog: {
- keywords: [ "animal", "nature", "spiny" ],
- "char": "\ud83e\udd94",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- paw_prints: {
- keywords: [ "animal", "tracking", "footprints", "dog", "cat", "pet", "feet" ],
- "char": "\ud83d\udc3e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dragon: {
- keywords: [ "animal", "myth", "nature", "chinese", "green" ],
- "char": "\ud83d\udc09",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dragon_face: {
- keywords: [ "animal", "myth", "nature", "chinese", "green" ],
- "char": "\ud83d\udc32",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cactus: {
- keywords: [ "vegetable", "plant", "nature" ],
- "char": "\ud83c\udf35",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- christmas_tree: {
- keywords: [ "festival", "vacation", "december", "xmas", "celebration" ],
- "char": "\ud83c\udf84",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- evergreen_tree: {
- keywords: [ "plant", "nature" ],
- "char": "\ud83c\udf32",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- deciduous_tree: {
- keywords: [ "plant", "nature" ],
- "char": "\ud83c\udf33",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- palm_tree: {
- keywords: [ "plant", "vegetable", "nature", "summer", "beach", "mojito", "tropical" ],
- "char": "\ud83c\udf34",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- seedling: {
- keywords: [ "plant", "nature", "grass", "lawn", "spring" ],
- "char": "\ud83c\udf31",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- herb: {
- keywords: [ "vegetable", "plant", "medicine", "weed", "grass", "lawn" ],
- "char": "\ud83c\udf3f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- shamrock: {
- keywords: [ "vegetable", "plant", "nature", "irish", "clover" ],
- "char": "\u2618",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- four_leaf_clover: {
- keywords: [ "vegetable", "plant", "nature", "lucky", "irish" ],
- "char": "\ud83c\udf40",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- bamboo: {
- keywords: [ "plant", "nature", "vegetable", "panda", "pine_decoration" ],
- "char": "\ud83c\udf8d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- tanabata_tree: {
- keywords: [ "plant", "nature", "branch", "summer" ],
- "char": "\ud83c\udf8b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- leaves: {
- keywords: [ "nature", "plant", "tree", "vegetable", "grass", "lawn", "spring" ],
- "char": "\ud83c\udf43",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- fallen_leaf: {
- keywords: [ "nature", "plant", "vegetable", "leaves" ],
- "char": "\ud83c\udf42",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- maple_leaf: {
- keywords: [ "nature", "plant", "vegetable", "ca", "fall" ],
- "char": "\ud83c\udf41",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- ear_of_rice: {
- keywords: [ "nature", "plant" ],
- "char": "\ud83c\udf3e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- hibiscus: {
- keywords: [ "plant", "vegetable", "flowers", "beach" ],
- "char": "\ud83c\udf3a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sunflower: {
- keywords: [ "nature", "plant", "fall" ],
- "char": "\ud83c\udf3b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- rose: {
- keywords: [ "flowers", "valentines", "love", "spring" ],
- "char": "\ud83c\udf39",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- wilted_flower: {
- keywords: [ "plant", "nature", "flower" ],
- "char": "\ud83e\udd40",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- tulip: {
- keywords: [ "flowers", "plant", "nature", "summer", "spring" ],
- "char": "\ud83c\udf37",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- blossom: {
- keywords: [ "nature", "flowers", "yellow" ],
- "char": "\ud83c\udf3c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cherry_blossom: {
- keywords: [ "nature", "plant", "spring", "flower" ],
- "char": "\ud83c\udf38",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- bouquet: {
- keywords: [ "flowers", "nature", "spring" ],
- "char": "\ud83d\udc90",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- mushroom: {
- keywords: [ "plant", "vegetable" ],
- "char": "\ud83c\udf44",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- chestnut: {
- keywords: [ "food", "squirrel" ],
- "char": "\ud83c\udf30",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- jack_o_lantern: {
- keywords: [ "halloween", "light", "pumpkin", "creepy", "fall" ],
- "char": "\ud83c\udf83",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- shell: {
- keywords: [ "nature", "sea", "beach" ],
- "char": "\ud83d\udc1a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- spider_web: {
- keywords: [ "animal", "insect", "arachnid", "silk" ],
- "char": "\ud83d\udd78",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- earth_americas: {
- keywords: [ "globe", "world", "USA", "international" ],
- "char": "\ud83c\udf0e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- earth_africa: {
- keywords: [ "globe", "world", "international" ],
- "char": "\ud83c\udf0d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- earth_asia: {
- keywords: [ "globe", "world", "east", "international" ],
- "char": "\ud83c\udf0f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- full_moon: {
- keywords: [ "nature", "yellow", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf15",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- waning_gibbous_moon: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep", "waxing_gibbous_moon" ],
- "char": "\ud83c\udf16",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- last_quarter_moon: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf17",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- waning_crescent_moon: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf18",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- new_moon: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf11",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- waxing_crescent_moon: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf12",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- first_quarter_moon: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf13",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- waxing_gibbous_moon: {
- keywords: [ "nature", "night", "sky", "gray", "twilight", "planet", "space", "evening", "sleep" ],
- "char": "\ud83c\udf14",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- new_moon_with_face: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf1a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- full_moon_with_face: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf1d",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- first_quarter_moon_with_face: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf1b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- last_quarter_moon_with_face: {
- keywords: [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ],
- "char": "\ud83c\udf1c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sun_with_face: {
- keywords: [ "nature", "morning", "sky" ],
- "char": "\ud83c\udf1e",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- crescent_moon: {
- keywords: [ "night", "sleep", "sky", "evening", "magic" ],
- "char": "\ud83c\udf19",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- star: {
- keywords: [ "night", "yellow" ],
- "char": "\u2b50",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- star2: {
- keywords: [ "night", "sparkle", "awesome", "good", "magic" ],
- "char": "\ud83c\udf1f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dizzy: {
- keywords: [ "star", "sparkle", "shoot", "magic" ],
- "char": "\ud83d\udcab",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sparkles: {
- keywords: [ "stars", "shine", "shiny", "cool", "awesome", "good", "magic" ],
- "char": "\u2728",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- comet: {
- keywords: [ "space" ],
- "char": "\u2604",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sunny: {
- keywords: [ "weather", "nature", "brightness", "summer", "beach", "spring" ],
- "char": "\u2600\ufe0f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sun_behind_small_cloud: {
- keywords: [ "weather" ],
- "char": "\ud83c\udf24",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- partly_sunny: {
- keywords: [ "weather", "nature", "cloudy", "morning", "fall", "spring" ],
- "char": "\u26c5",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sun_behind_large_cloud: {
- keywords: [ "weather" ],
- "char": "\ud83c\udf25",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sun_behind_rain_cloud: {
- keywords: [ "weather" ],
- "char": "\ud83c\udf26",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cloud: {
- keywords: [ "weather", "sky" ],
- "char": "\u2601\ufe0f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cloud_with_rain: {
- keywords: [ "weather" ],
- "char": "\ud83c\udf27",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cloud_with_lightning_and_rain: {
- keywords: [ "weather", "lightning" ],
- "char": "\u26c8",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cloud_with_lightning: {
- keywords: [ "weather", "thunder" ],
- "char": "\ud83c\udf29",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- zap: {
- keywords: [ "thunder", "weather", "lightning bolt", "fast" ],
- "char": "\u26a1",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- fire: {
- keywords: [ "hot", "cook", "flame" ],
- "char": "\ud83d\udd25",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- boom: {
- keywords: [ "bomb", "explode", "explosion", "collision", "blown" ],
- "char": "\ud83d\udca5",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- snowflake: {
- keywords: [ "winter", "season", "cold", "weather", "christmas", "xmas" ],
- "char": "\u2744\ufe0f",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- cloud_with_snow: {
- keywords: [ "weather" ],
- "char": "\ud83c\udf28",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- snowman: {
- keywords: [ "winter", "season", "cold", "weather", "christmas", "xmas", "frozen", "without_snow" ],
- "char": "\u26c4",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- snowman_with_snow: {
- keywords: [ "winter", "season", "cold", "weather", "christmas", "xmas", "frozen" ],
- "char": "\u2603",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- wind_face: {
- keywords: [ "gust", "air" ],
- "char": "\ud83c\udf2c",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- dash: {
- keywords: [ "wind", "air", "fast", "shoo", "fart", "smoke", "puff" ],
- "char": "\ud83d\udca8",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- tornado: {
- keywords: [ "weather", "cyclone", "twister" ],
- "char": "\ud83c\udf2a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- fog: {
- keywords: [ "weather" ],
- "char": "\ud83c\udf2b",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- open_umbrella: {
- keywords: [ "weather", "spring" ],
- "char": "\u2602",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- umbrella: {
- keywords: [ "rainy", "weather", "spring" ],
- "char": "\u2614",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- droplet: {
- keywords: [ "water", "drip", "faucet", "spring" ],
- "char": "\ud83d\udca7",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- sweat_drops: {
- keywords: [ "water", "drip", "oops" ],
- "char": "\ud83d\udca6",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- ocean: {
- keywords: [ "sea", "water", "wave", "nature", "tsunami", "disaster" ],
- "char": "\ud83c\udf0a",
- fitzpatrick_scale: false,
- category: "animals_and_nature"
- },
- green_apple: {
- keywords: [ "fruit", "nature" ],
- "char": "\ud83c\udf4f",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- apple: {
- keywords: [ "fruit", "mac", "school" ],
- "char": "\ud83c\udf4e",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- pear: {
- keywords: [ "fruit", "nature", "food" ],
- "char": "\ud83c\udf50",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- tangerine: {
- keywords: [ "food", "fruit", "nature", "orange" ],
- "char": "\ud83c\udf4a",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- lemon: {
- keywords: [ "fruit", "nature" ],
- "char": "\ud83c\udf4b",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- banana: {
- keywords: [ "fruit", "food", "monkey" ],
- "char": "\ud83c\udf4c",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- watermelon: {
- keywords: [ "fruit", "food", "picnic", "summer" ],
- "char": "\ud83c\udf49",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- grapes: {
- keywords: [ "fruit", "food", "wine" ],
- "char": "\ud83c\udf47",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- strawberry: {
- keywords: [ "fruit", "food", "nature" ],
- "char": "\ud83c\udf53",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- melon: {
- keywords: [ "fruit", "nature", "food" ],
- "char": "\ud83c\udf48",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- cherries: {
- keywords: [ "food", "fruit" ],
- "char": "\ud83c\udf52",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- peach: {
- keywords: [ "fruit", "nature", "food" ],
- "char": "\ud83c\udf51",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- pineapple: {
- keywords: [ "fruit", "nature", "food" ],
- "char": "\ud83c\udf4d",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- coconut: {
- keywords: [ "fruit", "nature", "food", "palm" ],
- "char": "\ud83e\udd65",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- kiwi_fruit: {
- keywords: [ "fruit", "food" ],
- "char": "\ud83e\udd5d",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- avocado: {
- keywords: [ "fruit", "food" ],
- "char": "\ud83e\udd51",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- broccoli: {
- keywords: [ "fruit", "food", "vegetable" ],
- "char": "\ud83e\udd66",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- tomato: {
- keywords: [ "fruit", "vegetable", "nature", "food" ],
- "char": "\ud83c\udf45",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- eggplant: {
- keywords: [ "vegetable", "nature", "food", "aubergine" ],
- "char": "\ud83c\udf46",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- cucumber: {
- keywords: [ "fruit", "food", "pickle" ],
- "char": "\ud83e\udd52",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- carrot: {
- keywords: [ "vegetable", "food", "orange" ],
- "char": "\ud83e\udd55",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- hot_pepper: {
- keywords: [ "food", "spicy", "chilli", "chili" ],
- "char": "\ud83c\udf36",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- potato: {
- keywords: [ "food", "tuber", "vegatable", "starch" ],
- "char": "\ud83e\udd54",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- corn: {
- keywords: [ "food", "vegetable", "plant" ],
- "char": "\ud83c\udf3d",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- sweet_potato: {
- keywords: [ "food", "nature" ],
- "char": "\ud83c\udf60",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- peanuts: {
- keywords: [ "food", "nut" ],
- "char": "\ud83e\udd5c",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- honey_pot: {
- keywords: [ "bees", "sweet", "kitchen" ],
- "char": "\ud83c\udf6f",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- croissant: {
- keywords: [ "food", "bread", "french" ],
- "char": "\ud83e\udd50",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- bread: {
- keywords: [ "food", "wheat", "breakfast", "toast" ],
- "char": "\ud83c\udf5e",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- baguette_bread: {
- keywords: [ "food", "bread", "french" ],
- "char": "\ud83e\udd56",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- pretzel: {
- keywords: [ "food", "bread", "twisted" ],
- "char": "\ud83e\udd68",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- cheese: {
- keywords: [ "food", "chadder" ],
- "char": "\ud83e\uddc0",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- egg: {
- keywords: [ "food", "chicken", "breakfast" ],
- "char": "\ud83e\udd5a",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- bacon: {
- keywords: [ "food", "breakfast", "pork", "pig", "meat" ],
- "char": "\ud83e\udd53",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- steak: {
- keywords: [ "food", "cow", "meat", "cut", "chop", "lambchop", "porkchop" ],
- "char": "\ud83e\udd69",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- pancakes: {
- keywords: [ "food", "breakfast", "flapjacks", "hotcakes" ],
- "char": "\ud83e\udd5e",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- poultry_leg: {
- keywords: [ "food", "meat", "drumstick", "bird", "chicken", "turkey" ],
- "char": "\ud83c\udf57",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- meat_on_bone: {
- keywords: [ "good", "food", "drumstick" ],
- "char": "\ud83c\udf56",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- fried_shrimp: {
- keywords: [ "food", "animal", "appetizer", "summer" ],
- "char": "\ud83c\udf64",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- fried_egg: {
- keywords: [ "food", "breakfast", "kitchen", "egg" ],
- "char": "\ud83c\udf73",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- hamburger: {
- keywords: [ "meat", "fast food", "beef", "cheeseburger", "mcdonalds", "burger king" ],
- "char": "\ud83c\udf54",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- fries: {
- keywords: [ "chips", "snack", "fast food" ],
- "char": "\ud83c\udf5f",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- stuffed_flatbread: {
- keywords: [ "food", "flatbread", "stuffed", "gyro" ],
- "char": "\ud83e\udd59",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- hotdog: {
- keywords: [ "food", "frankfurter" ],
- "char": "\ud83c\udf2d",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- pizza: {
- keywords: [ "food", "party" ],
- "char": "\ud83c\udf55",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- sandwich: {
- keywords: [ "food", "lunch", "bread" ],
- "char": "\ud83e\udd6a",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- canned_food: {
- keywords: [ "food", "soup" ],
- "char": "\ud83e\udd6b",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- spaghetti: {
- keywords: [ "food", "italian", "noodle" ],
- "char": "\ud83c\udf5d",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- taco: {
- keywords: [ "food", "mexican" ],
- "char": "\ud83c\udf2e",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- burrito: {
- keywords: [ "food", "mexican" ],
- "char": "\ud83c\udf2f",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- green_salad: {
- keywords: [ "food", "healthy", "lettuce" ],
- "char": "\ud83e\udd57",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- shallow_pan_of_food: {
- keywords: [ "food", "cooking", "casserole", "paella" ],
- "char": "\ud83e\udd58",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- ramen: {
- keywords: [ "food", "japanese", "noodle", "chopsticks" ],
- "char": "\ud83c\udf5c",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- stew: {
- keywords: [ "food", "meat", "soup" ],
- "char": "\ud83c\udf72",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- fish_cake: {
- keywords: [ "food", "japan", "sea", "beach", "narutomaki", "pink", "swirl", "kamaboko", "surimi", "ramen" ],
- "char": "\ud83c\udf65",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- fortune_cookie: {
- keywords: [ "food", "prophecy" ],
- "char": "\ud83e\udd60",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- sushi: {
- keywords: [ "food", "fish", "japanese", "rice" ],
- "char": "\ud83c\udf63",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- bento: {
- keywords: [ "food", "japanese", "box" ],
- "char": "\ud83c\udf71",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- curry: {
- keywords: [ "food", "spicy", "hot", "indian" ],
- "char": "\ud83c\udf5b",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- rice_ball: {
- keywords: [ "food", "japanese" ],
- "char": "\ud83c\udf59",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- rice: {
- keywords: [ "food", "china", "asian" ],
- "char": "\ud83c\udf5a",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- rice_cracker: {
- keywords: [ "food", "japanese" ],
- "char": "\ud83c\udf58",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- oden: {
- keywords: [ "food", "japanese" ],
- "char": "\ud83c\udf62",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- dango: {
- keywords: [ "food", "dessert", "sweet", "japanese", "barbecue", "meat" ],
- "char": "\ud83c\udf61",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- shaved_ice: {
- keywords: [ "hot", "dessert", "summer" ],
- "char": "\ud83c\udf67",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- ice_cream: {
- keywords: [ "food", "hot", "dessert" ],
- "char": "\ud83c\udf68",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- icecream: {
- keywords: [ "food", "hot", "dessert", "summer" ],
- "char": "\ud83c\udf66",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- pie: {
- keywords: [ "food", "dessert", "pastry" ],
- "char": "\ud83e\udd67",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- cake: {
- keywords: [ "food", "dessert" ],
- "char": "\ud83c\udf70",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- birthday: {
- keywords: [ "food", "dessert", "cake" ],
- "char": "\ud83c\udf82",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- custard: {
- keywords: [ "dessert", "food" ],
- "char": "\ud83c\udf6e",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- candy: {
- keywords: [ "snack", "dessert", "sweet", "lolly" ],
- "char": "\ud83c\udf6c",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- lollipop: {
- keywords: [ "food", "snack", "candy", "sweet" ],
- "char": "\ud83c\udf6d",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- chocolate_bar: {
- keywords: [ "food", "snack", "dessert", "sweet" ],
- "char": "\ud83c\udf6b",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- popcorn: {
- keywords: [ "food", "movie theater", "films", "snack" ],
- "char": "\ud83c\udf7f",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- dumpling: {
- keywords: [ "food", "empanada", "pierogi", "potsticker" ],
- "char": "\ud83e\udd5f",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- doughnut: {
- keywords: [ "food", "dessert", "snack", "sweet", "donut" ],
- "char": "\ud83c\udf69",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- cookie: {
- keywords: [ "food", "snack", "oreo", "chocolate", "sweet", "dessert" ],
- "char": "\ud83c\udf6a",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- milk_glass: {
- keywords: [ "beverage", "drink", "cow" ],
- "char": "\ud83e\udd5b",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- beer: {
- keywords: [ "relax", "beverage", "drink", "drunk", "party", "pub", "summer", "alcohol", "booze" ],
- "char": "\ud83c\udf7a",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- beers: {
- keywords: [ "relax", "beverage", "drink", "drunk", "party", "pub", "summer", "alcohol", "booze" ],
- "char": "\ud83c\udf7b",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- clinking_glasses: {
- keywords: [ "beverage", "drink", "party", "alcohol", "celebrate", "cheers", "wine", "champagne", "toast" ],
- "char": "\ud83e\udd42",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- wine_glass: {
- keywords: [ "drink", "beverage", "drunk", "alcohol", "booze" ],
- "char": "\ud83c\udf77",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- tumbler_glass: {
- keywords: [ "drink", "beverage", "drunk", "alcohol", "liquor", "booze", "bourbon", "scotch", "whisky", "glass", "shot" ],
- "char": "\ud83e\udd43",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- cocktail: {
- keywords: [ "drink", "drunk", "alcohol", "beverage", "booze", "mojito" ],
- "char": "\ud83c\udf78",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- tropical_drink: {
- keywords: [ "beverage", "cocktail", "summer", "beach", "alcohol", "booze", "mojito" ],
- "char": "\ud83c\udf79",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- champagne: {
- keywords: [ "drink", "wine", "bottle", "celebration" ],
- "char": "\ud83c\udf7e",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- sake: {
- keywords: [ "wine", "drink", "drunk", "beverage", "japanese", "alcohol", "booze" ],
- "char": "\ud83c\udf76",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- tea: {
- keywords: [ "drink", "bowl", "breakfast", "green", "british" ],
- "char": "\ud83c\udf75",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- cup_with_straw: {
- keywords: [ "drink", "soda" ],
- "char": "\ud83e\udd64",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- coffee: {
- keywords: [ "beverage", "caffeine", "latte", "espresso" ],
- "char": "\u2615",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- baby_bottle: {
- keywords: [ "food", "container", "milk" ],
- "char": "\ud83c\udf7c",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- spoon: {
- keywords: [ "cutlery", "kitchen", "tableware" ],
- "char": "\ud83e\udd44",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- fork_and_knife: {
- keywords: [ "cutlery", "kitchen" ],
- "char": "\ud83c\udf74",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- plate_with_cutlery: {
- keywords: [ "food", "eat", "meal", "lunch", "dinner", "restaurant" ],
- "char": "\ud83c\udf7d",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- bowl_with_spoon: {
- keywords: [ "food", "breakfast", "cereal", "oatmeal", "porridge" ],
- "char": "\ud83e\udd63",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- takeout_box: {
- keywords: [ "food", "leftovers" ],
- "char": "\ud83e\udd61",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- chopsticks: {
- keywords: [ "food" ],
- "char": "\ud83e\udd62",
- fitzpatrick_scale: false,
- category: "food_and_drink"
- },
- soccer: {
- keywords: [ "sports", "football" ],
- "char": "\u26bd",
- fitzpatrick_scale: false,
- category: "activity"
- },
- basketball: {
- keywords: [ "sports", "balls", "NBA" ],
- "char": "\ud83c\udfc0",
- fitzpatrick_scale: false,
- category: "activity"
- },
- football: {
- keywords: [ "sports", "balls", "NFL" ],
- "char": "\ud83c\udfc8",
- fitzpatrick_scale: false,
- category: "activity"
- },
- baseball: {
- keywords: [ "sports", "balls" ],
- "char": "\u26be",
- fitzpatrick_scale: false,
- category: "activity"
- },
- tennis: {
- keywords: [ "sports", "balls", "green" ],
- "char": "\ud83c\udfbe",
- fitzpatrick_scale: false,
- category: "activity"
- },
- volleyball: {
- keywords: [ "sports", "balls" ],
- "char": "\ud83c\udfd0",
- fitzpatrick_scale: false,
- category: "activity"
- },
- rugby_football: {
- keywords: [ "sports", "team" ],
- "char": "\ud83c\udfc9",
- fitzpatrick_scale: false,
- category: "activity"
- },
- "8ball": {
- keywords: [ "pool", "hobby", "game", "luck", "magic" ],
- "char": "\ud83c\udfb1",
- fitzpatrick_scale: false,
- category: "activity"
- },
- golf: {
- keywords: [ "sports", "business", "flag", "hole", "summer" ],
- "char": "\u26f3",
- fitzpatrick_scale: false,
- category: "activity"
- },
- golfing_woman: {
- keywords: [ "sports", "business", "woman", "female" ],
- "char": "\ud83c\udfcc\ufe0f\u200d\u2640\ufe0f",
- fitzpatrick_scale: false,
- category: "activity"
- },
- golfing_man: {
- keywords: [ "sports", "business" ],
- "char": "\ud83c\udfcc",
- fitzpatrick_scale: true,
- category: "activity"
- },
- ping_pong: {
- keywords: [ "sports", "pingpong" ],
- "char": "\ud83c\udfd3",
- fitzpatrick_scale: false,
- category: "activity"
- },
- badminton: {
- keywords: [ "sports" ],
- "char": "\ud83c\udff8",
- fitzpatrick_scale: false,
- category: "activity"
- },
- goal_net: {
- keywords: [ "sports" ],
- "char": "\ud83e\udd45",
- fitzpatrick_scale: false,
- category: "activity"
- },
- ice_hockey: {
- keywords: [ "sports" ],
- "char": "\ud83c\udfd2",
- fitzpatrick_scale: false,
- category: "activity"
- },
- field_hockey: {
- keywords: [ "sports" ],
- "char": "\ud83c\udfd1",
- fitzpatrick_scale: false,
- category: "activity"
- },
- cricket: {
- keywords: [ "sports" ],
- "char": "\ud83c\udfcf",
- fitzpatrick_scale: false,
- category: "activity"
- },
- ski: {
- keywords: [ "sports", "winter", "cold", "snow" ],
- "char": "\ud83c\udfbf",
- fitzpatrick_scale: false,
- category: "activity"
- },
- skier: {
- keywords: [ "sports", "winter", "snow" ],
- "char": "\u26f7",
- fitzpatrick_scale: false,
- category: "activity"
- },
- snowboarder: {
- keywords: [ "sports", "winter" ],
- "char": "\ud83c\udfc2",
- fitzpatrick_scale: true,
- category: "activity"
- },
- person_fencing: {
- keywords: [ "sports", "fencing", "sword" ],
- "char": "\ud83e\udd3a",
- fitzpatrick_scale: false,
- category: "activity"
- },
- women_wrestling: {
- keywords: [ "sports", "wrestlers" ],
- "char": "\ud83e\udd3c\u200d\u2640\ufe0f",
- fitzpatrick_scale: false,
- category: "activity"
- },
- men_wrestling: {
- keywords: [ "sports", "wrestlers" ],
- "char": "\ud83e\udd3c\u200d\u2642\ufe0f",
- fitzpatrick_scale: false,
- category: "activity"
- },
- woman_cartwheeling: {
- keywords: [ "gymnastics" ],
- "char": "\ud83e\udd38\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- man_cartwheeling: {
- keywords: [ "gymnastics" ],
- "char": "\ud83e\udd38\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- woman_playing_handball: {
- keywords: [ "sports" ],
- "char": "\ud83e\udd3e\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- man_playing_handball: {
- keywords: [ "sports" ],
- "char": "\ud83e\udd3e\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- ice_skate: {
- keywords: [ "sports" ],
- "char": "\u26f8",
- fitzpatrick_scale: false,
- category: "activity"
- },
- curling_stone: {
- keywords: [ "sports" ],
- "char": "\ud83e\udd4c",
- fitzpatrick_scale: false,
- category: "activity"
- },
- sled: {
- keywords: [ "sleigh", "luge", "toboggan" ],
- "char": "\ud83d\udef7",
- fitzpatrick_scale: false,
- category: "activity"
- },
- bow_and_arrow: {
- keywords: [ "sports" ],
- "char": "\ud83c\udff9",
- fitzpatrick_scale: false,
- category: "activity"
- },
- fishing_pole_and_fish: {
- keywords: [ "food", "hobby", "summer" ],
- "char": "\ud83c\udfa3",
- fitzpatrick_scale: false,
- category: "activity"
- },
- boxing_glove: {
- keywords: [ "sports", "fighting" ],
- "char": "\ud83e\udd4a",
- fitzpatrick_scale: false,
- category: "activity"
- },
- martial_arts_uniform: {
- keywords: [ "judo", "karate", "taekwondo" ],
- "char": "\ud83e\udd4b",
- fitzpatrick_scale: false,
- category: "activity"
- },
- rowing_woman: {
- keywords: [ "sports", "hobby", "water", "ship", "woman", "female" ],
- "char": "\ud83d\udea3\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- rowing_man: {
- keywords: [ "sports", "hobby", "water", "ship" ],
- "char": "\ud83d\udea3",
- fitzpatrick_scale: true,
- category: "activity"
- },
- climbing_woman: {
- keywords: [ "sports", "hobby", "woman", "female", "rock" ],
- "char": "\ud83e\uddd7\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- climbing_man: {
- keywords: [ "sports", "hobby", "man", "male", "rock" ],
- "char": "\ud83e\uddd7\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- swimming_woman: {
- keywords: [ "sports", "exercise", "human", "athlete", "water", "summer", "woman", "female" ],
- "char": "\ud83c\udfca\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- swimming_man: {
- keywords: [ "sports", "exercise", "human", "athlete", "water", "summer" ],
- "char": "\ud83c\udfca",
- fitzpatrick_scale: true,
- category: "activity"
- },
- woman_playing_water_polo: {
- keywords: [ "sports", "pool" ],
- "char": "\ud83e\udd3d\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- man_playing_water_polo: {
- keywords: [ "sports", "pool" ],
- "char": "\ud83e\udd3d\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- woman_in_lotus_position: {
- keywords: [ "woman", "female", "meditation", "yoga", "serenity", "zen", "mindfulness" ],
- "char": "\ud83e\uddd8\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- man_in_lotus_position: {
- keywords: [ "man", "male", "meditation", "yoga", "serenity", "zen", "mindfulness" ],
- "char": "\ud83e\uddd8\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- surfing_woman: {
- keywords: [ "sports", "ocean", "sea", "summer", "beach", "woman", "female" ],
- "char": "\ud83c\udfc4\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- surfing_man: {
- keywords: [ "sports", "ocean", "sea", "summer", "beach" ],
- "char": "\ud83c\udfc4",
- fitzpatrick_scale: true,
- category: "activity"
- },
- bath: {
- keywords: [ "clean", "shower", "bathroom" ],
- "char": "\ud83d\udec0",
- fitzpatrick_scale: true,
- category: "activity"
- },
- basketball_woman: {
- keywords: [ "sports", "human", "woman", "female" ],
- "char": "\u26f9\ufe0f\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- basketball_man: {
- keywords: [ "sports", "human" ],
- "char": "\u26f9",
- fitzpatrick_scale: true,
- category: "activity"
- },
- weight_lifting_woman: {
- keywords: [ "sports", "training", "exercise", "woman", "female" ],
- "char": "\ud83c\udfcb\ufe0f\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- weight_lifting_man: {
- keywords: [ "sports", "training", "exercise" ],
- "char": "\ud83c\udfcb",
- fitzpatrick_scale: true,
- category: "activity"
- },
- biking_woman: {
- keywords: [ "sports", "bike", "exercise", "hipster", "woman", "female" ],
- "char": "\ud83d\udeb4\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- biking_man: {
- keywords: [ "sports", "bike", "exercise", "hipster" ],
- "char": "\ud83d\udeb4",
- fitzpatrick_scale: true,
- category: "activity"
- },
- mountain_biking_woman: {
- keywords: [ "transportation", "sports", "human", "race", "bike", "woman", "female" ],
- "char": "\ud83d\udeb5\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- mountain_biking_man: {
- keywords: [ "transportation", "sports", "human", "race", "bike" ],
- "char": "\ud83d\udeb5",
- fitzpatrick_scale: true,
- category: "activity"
- },
- horse_racing: {
- keywords: [ "animal", "betting", "competition", "gambling", "luck" ],
- "char": "\ud83c\udfc7",
- fitzpatrick_scale: true,
- category: "activity"
- },
- business_suit_levitating: {
- keywords: [ "suit", "business", "levitate", "hover", "jump" ],
- "char": "\ud83d\udd74",
- fitzpatrick_scale: true,
- category: "activity"
- },
- trophy: {
- keywords: [ "win", "award", "contest", "place", "ftw", "ceremony" ],
- "char": "\ud83c\udfc6",
- fitzpatrick_scale: false,
- category: "activity"
- },
- running_shirt_with_sash: {
- keywords: [ "play", "pageant" ],
- "char": "\ud83c\udfbd",
- fitzpatrick_scale: false,
- category: "activity"
- },
- medal_sports: {
- keywords: [ "award", "winning" ],
- "char": "\ud83c\udfc5",
- fitzpatrick_scale: false,
- category: "activity"
- },
- medal_military: {
- keywords: [ "award", "winning", "army" ],
- "char": "\ud83c\udf96",
- fitzpatrick_scale: false,
- category: "activity"
- },
- "1st_place_medal": {
- keywords: [ "award", "winning", "first" ],
- "char": "\ud83e\udd47",
- fitzpatrick_scale: false,
- category: "activity"
- },
- "2nd_place_medal": {
- keywords: [ "award", "second" ],
- "char": "\ud83e\udd48",
- fitzpatrick_scale: false,
- category: "activity"
- },
- "3rd_place_medal": {
- keywords: [ "award", "third" ],
- "char": "\ud83e\udd49",
- fitzpatrick_scale: false,
- category: "activity"
- },
- reminder_ribbon: {
- keywords: [ "sports", "cause", "support", "awareness" ],
- "char": "\ud83c\udf97",
- fitzpatrick_scale: false,
- category: "activity"
- },
- rosette: {
- keywords: [ "flower", "decoration", "military" ],
- "char": "\ud83c\udff5",
- fitzpatrick_scale: false,
- category: "activity"
- },
- ticket: {
- keywords: [ "event", "concert", "pass" ],
- "char": "\ud83c\udfab",
- fitzpatrick_scale: false,
- category: "activity"
- },
- tickets: {
- keywords: [ "sports", "concert", "entrance" ],
- "char": "\ud83c\udf9f",
- fitzpatrick_scale: false,
- category: "activity"
- },
- performing_arts: {
- keywords: [ "acting", "theater", "drama" ],
- "char": "\ud83c\udfad",
- fitzpatrick_scale: false,
- category: "activity"
- },
- art: {
- keywords: [ "design", "paint", "draw", "colors" ],
- "char": "\ud83c\udfa8",
- fitzpatrick_scale: false,
- category: "activity"
- },
- circus_tent: {
- keywords: [ "festival", "carnival", "party" ],
- "char": "\ud83c\udfaa",
- fitzpatrick_scale: false,
- category: "activity"
- },
- woman_juggling: {
- keywords: [ "juggle", "balance", "skill", "multitask" ],
- "char": "\ud83e\udd39\u200d\u2640\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- man_juggling: {
- keywords: [ "juggle", "balance", "skill", "multitask" ],
- "char": "\ud83e\udd39\u200d\u2642\ufe0f",
- fitzpatrick_scale: true,
- category: "activity"
- },
- microphone: {
- keywords: [ "sound", "music", "PA", "sing", "talkshow" ],
- "char": "\ud83c\udfa4",
- fitzpatrick_scale: false,
- category: "activity"
- },
- headphones: {
- keywords: [ "music", "score", "gadgets" ],
- "char": "\ud83c\udfa7",
- fitzpatrick_scale: false,
- category: "activity"
- },
- musical_score: {
- keywords: [ "treble", "clef", "compose" ],
- "char": "\ud83c\udfbc",
- fitzpatrick_scale: false,
- category: "activity"
- },
- musical_keyboard: {
- keywords: [ "piano", "instrument", "compose" ],
- "char": "\ud83c\udfb9",
- fitzpatrick_scale: false,
- category: "activity"
- },
- drum: {
- keywords: [ "music", "instrument", "drumsticks", "snare" ],
- "char": "\ud83e\udd41",
- fitzpatrick_scale: false,
- category: "activity"
- },
- saxophone: {
- keywords: [ "music", "instrument", "jazz", "blues" ],
- "char": "\ud83c\udfb7",
- fitzpatrick_scale: false,
- category: "activity"
- },
- trumpet: {
- keywords: [ "music", "brass" ],
- "char": "\ud83c\udfba",
- fitzpatrick_scale: false,
- category: "activity"
- },
- guitar: {
- keywords: [ "music", "instrument" ],
- "char": "\ud83c\udfb8",
- fitzpatrick_scale: false,
- category: "activity"
- },
- violin: {
- keywords: [ "music", "instrument", "orchestra", "symphony" ],
- "char": "\ud83c\udfbb",
- fitzpatrick_scale: false,
- category: "activity"
- },
- clapper: {
- keywords: [ "movie", "film", "record" ],
- "char": "\ud83c\udfac",
- fitzpatrick_scale: false,
- category: "activity"
- },
- video_game: {
- keywords: [ "play", "console", "PS4", "controller" ],
- "char": "\ud83c\udfae",
- fitzpatrick_scale: false,
- category: "activity"
- },
- space_invader: {
- keywords: [ "game", "arcade", "play" ],
- "char": "\ud83d\udc7e",
- fitzpatrick_scale: false,
- category: "activity"
- },
- dart: {
- keywords: [ "game", "play", "bar", "target", "bullseye" ],
- "char": "\ud83c\udfaf",
- fitzpatrick_scale: false,
- category: "activity"
- },
- game_die: {
- keywords: [ "dice", "random", "tabletop", "play", "luck" ],
- "char": "\ud83c\udfb2",
- fitzpatrick_scale: false,
- category: "activity"
- },
- slot_machine: {
- keywords: [ "bet", "gamble", "vegas", "fruit machine", "luck", "casino" ],
- "char": "\ud83c\udfb0",
- fitzpatrick_scale: false,
- category: "activity"
- },
- bowling: {
- keywords: [ "sports", "fun", "play" ],
- "char": "\ud83c\udfb3",
- fitzpatrick_scale: false,
- category: "activity"
- },
- red_car: {
- keywords: [ "red", "transportation", "vehicle" ],
- "char": "\ud83d\ude97",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- taxi: {
- keywords: [ "uber", "vehicle", "cars", "transportation" ],
- "char": "\ud83d\ude95",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- blue_car: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude99",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- bus: {
- keywords: [ "car", "vehicle", "transportation" ],
- "char": "\ud83d\ude8c",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- trolleybus: {
- keywords: [ "bart", "transportation", "vehicle" ],
- "char": "\ud83d\ude8e",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- racing_car: {
- keywords: [ "sports", "race", "fast", "formula", "f1" ],
- "char": "\ud83c\udfce",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- police_car: {
- keywords: [ "vehicle", "cars", "transportation", "law", "legal", "enforcement" ],
- "char": "\ud83d\ude93",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- ambulance: {
- keywords: [ "health", "911", "hospital" ],
- "char": "\ud83d\ude91",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- fire_engine: {
- keywords: [ "transportation", "cars", "vehicle" ],
- "char": "\ud83d\ude92",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- minibus: {
- keywords: [ "vehicle", "car", "transportation" ],
- "char": "\ud83d\ude90",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- truck: {
- keywords: [ "cars", "transportation" ],
- "char": "\ud83d\ude9a",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- articulated_lorry: {
- keywords: [ "vehicle", "cars", "transportation", "express" ],
- "char": "\ud83d\ude9b",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- tractor: {
- keywords: [ "vehicle", "car", "farming", "agriculture" ],
- "char": "\ud83d\ude9c",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- kick_scooter: {
- keywords: [ "vehicle", "kick", "razor" ],
- "char": "\ud83d\udef4",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- motorcycle: {
- keywords: [ "race", "sports", "fast" ],
- "char": "\ud83c\udfcd",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- bike: {
- keywords: [ "sports", "bicycle", "exercise", "hipster" ],
- "char": "\ud83d\udeb2",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- motor_scooter: {
- keywords: [ "vehicle", "vespa", "sasha" ],
- "char": "\ud83d\udef5",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- rotating_light: {
- keywords: [ "police", "ambulance", "911", "emergency", "alert", "error", "pinged", "law", "legal" ],
- "char": "\ud83d\udea8",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- oncoming_police_car: {
- keywords: [ "vehicle", "law", "legal", "enforcement", "911" ],
- "char": "\ud83d\ude94",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- oncoming_bus: {
- keywords: [ "vehicle", "transportation" ],
- "char": "\ud83d\ude8d",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- oncoming_automobile: {
- keywords: [ "car", "vehicle", "transportation" ],
- "char": "\ud83d\ude98",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- oncoming_taxi: {
- keywords: [ "vehicle", "cars", "uber" ],
- "char": "\ud83d\ude96",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- aerial_tramway: {
- keywords: [ "transportation", "vehicle", "ski" ],
- "char": "\ud83d\udea1",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- mountain_cableway: {
- keywords: [ "transportation", "vehicle", "ski" ],
- "char": "\ud83d\udea0",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- suspension_railway: {
- keywords: [ "vehicle", "transportation" ],
- "char": "\ud83d\ude9f",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- railway_car: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude83",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- train: {
- keywords: [ "transportation", "vehicle", "carriage", "public", "travel" ],
- "char": "\ud83d\ude8b",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- monorail: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude9d",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- bullettrain_side: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude84",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- bullettrain_front: {
- keywords: [ "transportation", "vehicle", "speed", "fast", "public", "travel" ],
- "char": "\ud83d\ude85",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- light_rail: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude88",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- mountain_railway: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude9e",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- steam_locomotive: {
- keywords: [ "transportation", "vehicle", "train" ],
- "char": "\ud83d\ude82",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- train2: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude86",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- metro: {
- keywords: [ "transportation", "blue-square", "mrt", "underground", "tube" ],
- "char": "\ud83d\ude87",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- tram: {
- keywords: [ "transportation", "vehicle" ],
- "char": "\ud83d\ude8a",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- station: {
- keywords: [ "transportation", "vehicle", "public" ],
- "char": "\ud83d\ude89",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- flying_saucer: {
- keywords: [ "transportation", "vehicle", "ufo" ],
- "char": "\ud83d\udef8",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- helicopter: {
- keywords: [ "transportation", "vehicle", "fly" ],
- "char": "\ud83d\ude81",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- small_airplane: {
- keywords: [ "flight", "transportation", "fly", "vehicle" ],
- "char": "\ud83d\udee9",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- airplane: {
- keywords: [ "vehicle", "transportation", "flight", "fly" ],
- "char": "\u2708\ufe0f",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- flight_departure: {
- keywords: [ "airport", "flight", "landing" ],
- "char": "\ud83d\udeeb",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- flight_arrival: {
- keywords: [ "airport", "flight", "boarding" ],
- "char": "\ud83d\udeec",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- sailboat: {
- keywords: [ "ship", "summer", "transportation", "water", "sailing" ],
- "char": "\u26f5",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- motor_boat: {
- keywords: [ "ship" ],
- "char": "\ud83d\udee5",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- speedboat: {
- keywords: [ "ship", "transportation", "vehicle", "summer" ],
- "char": "\ud83d\udea4",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- ferry: {
- keywords: [ "boat", "ship", "yacht" ],
- "char": "\u26f4",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- passenger_ship: {
- keywords: [ "yacht", "cruise", "ferry" ],
- "char": "\ud83d\udef3",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- rocket: {
- keywords: [ "launch", "ship", "staffmode", "NASA", "outer space", "outer_space", "fly" ],
- "char": "\ud83d\ude80",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- artificial_satellite: {
- keywords: [ "communication", "gps", "orbit", "spaceflight", "NASA", "ISS" ],
- "char": "\ud83d\udef0",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- seat: {
- keywords: [ "sit", "airplane", "transport", "bus", "flight", "fly" ],
- "char": "\ud83d\udcba",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- canoe: {
- keywords: [ "boat", "paddle", "water", "ship" ],
- "char": "\ud83d\udef6",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- anchor: {
- keywords: [ "ship", "ferry", "sea", "boat" ],
- "char": "\u2693",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- construction: {
- keywords: [ "wip", "progress", "caution", "warning" ],
- "char": "\ud83d\udea7",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- fuelpump: {
- keywords: [ "gas station", "petroleum" ],
- "char": "\u26fd",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- busstop: {
- keywords: [ "transportation", "wait" ],
- "char": "\ud83d\ude8f",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- vertical_traffic_light: {
- keywords: [ "transportation", "driving" ],
- "char": "\ud83d\udea6",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- traffic_light: {
- keywords: [ "transportation", "signal" ],
- "char": "\ud83d\udea5",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- checkered_flag: {
- keywords: [ "contest", "finishline", "race", "gokart" ],
- "char": "\ud83c\udfc1",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- ship: {
- keywords: [ "transportation", "titanic", "deploy" ],
- "char": "\ud83d\udea2",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- ferris_wheel: {
- keywords: [ "photo", "carnival", "londoneye" ],
- "char": "\ud83c\udfa1",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- roller_coaster: {
- keywords: [ "carnival", "playground", "photo", "fun" ],
- "char": "\ud83c\udfa2",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- carousel_horse: {
- keywords: [ "photo", "carnival" ],
- "char": "\ud83c\udfa0",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- building_construction: {
- keywords: [ "wip", "working", "progress" ],
- "char": "\ud83c\udfd7",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- foggy: {
- keywords: [ "photo", "mountain" ],
- "char": "\ud83c\udf01",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- tokyo_tower: {
- keywords: [ "photo", "japanese" ],
- "char": "\ud83d\uddfc",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- factory: {
- keywords: [ "building", "industry", "pollution", "smoke" ],
- "char": "\ud83c\udfed",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- fountain: {
- keywords: [ "photo", "summer", "water", "fresh" ],
- "char": "\u26f2",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- rice_scene: {
- keywords: [ "photo", "japan", "asia", "tsukimi" ],
- "char": "\ud83c\udf91",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- mountain: {
- keywords: [ "photo", "nature", "environment" ],
- "char": "\u26f0",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- mountain_snow: {
- keywords: [ "photo", "nature", "environment", "winter", "cold" ],
- "char": "\ud83c\udfd4",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- mount_fuji: {
- keywords: [ "photo", "mountain", "nature", "japanese" ],
- "char": "\ud83d\uddfb",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- volcano: {
- keywords: [ "photo", "nature", "disaster" ],
- "char": "\ud83c\udf0b",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- japan: {
- keywords: [ "nation", "country", "japanese", "asia" ],
- "char": "\ud83d\uddfe",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- camping: {
- keywords: [ "photo", "outdoors", "tent" ],
- "char": "\ud83c\udfd5",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- tent: {
- keywords: [ "photo", "camping", "outdoors" ],
- "char": "\u26fa",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- national_park: {
- keywords: [ "photo", "environment", "nature" ],
- "char": "\ud83c\udfde",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- motorway: {
- keywords: [ "road", "cupertino", "interstate", "highway" ],
- "char": "\ud83d\udee3",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- railway_track: {
- keywords: [ "train", "transportation" ],
- "char": "\ud83d\udee4",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- sunrise: {
- keywords: [ "morning", "view", "vacation", "photo" ],
- "char": "\ud83c\udf05",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- sunrise_over_mountains: {
- keywords: [ "view", "vacation", "photo" ],
- "char": "\ud83c\udf04",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- desert: {
- keywords: [ "photo", "warm", "saharah" ],
- "char": "\ud83c\udfdc",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- beach_umbrella: {
- keywords: [ "weather", "summer", "sunny", "sand", "mojito" ],
- "char": "\ud83c\udfd6",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- desert_island: {
- keywords: [ "photo", "tropical", "mojito" ],
- "char": "\ud83c\udfdd",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- city_sunrise: {
- keywords: [ "photo", "good morning", "dawn" ],
- "char": "\ud83c\udf07",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- city_sunset: {
- keywords: [ "photo", "evening", "sky", "buildings" ],
- "char": "\ud83c\udf06",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- cityscape: {
- keywords: [ "photo", "night life", "urban" ],
- "char": "\ud83c\udfd9",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- night_with_stars: {
- keywords: [ "evening", "city", "downtown" ],
- "char": "\ud83c\udf03",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- bridge_at_night: {
- keywords: [ "photo", "sanfrancisco" ],
- "char": "\ud83c\udf09",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- milky_way: {
- keywords: [ "photo", "space", "stars" ],
- "char": "\ud83c\udf0c",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- stars: {
- keywords: [ "night", "photo" ],
- "char": "\ud83c\udf20",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- sparkler: {
- keywords: [ "stars", "night", "shine" ],
- "char": "\ud83c\udf87",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- fireworks: {
- keywords: [ "photo", "festival", "carnival", "congratulations" ],
- "char": "\ud83c\udf86",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- rainbow: {
- keywords: [ "nature", "happy", "unicorn_face", "photo", "sky", "spring" ],
- "char": "\ud83c\udf08",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- houses: {
- keywords: [ "buildings", "photo" ],
- "char": "\ud83c\udfd8",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- european_castle: {
- keywords: [ "building", "royalty", "history" ],
- "char": "\ud83c\udff0",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- japanese_castle: {
- keywords: [ "photo", "building" ],
- "char": "\ud83c\udfef",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- stadium: {
- keywords: [ "photo", "place", "sports", "concert", "venue" ],
- "char": "\ud83c\udfdf",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- statue_of_liberty: {
- keywords: [ "american", "newyork" ],
- "char": "\ud83d\uddfd",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- house: {
- keywords: [ "building", "home" ],
- "char": "\ud83c\udfe0",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- house_with_garden: {
- keywords: [ "home", "plant", "nature" ],
- "char": "\ud83c\udfe1",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- derelict_house: {
- keywords: [ "abandon", "evict", "broken", "building" ],
- "char": "\ud83c\udfda",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- office: {
- keywords: [ "building", "bureau", "work" ],
- "char": "\ud83c\udfe2",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- department_store: {
- keywords: [ "building", "shopping", "mall" ],
- "char": "\ud83c\udfec",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- post_office: {
- keywords: [ "building", "envelope", "communication" ],
- "char": "\ud83c\udfe3",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- european_post_office: {
- keywords: [ "building", "email" ],
- "char": "\ud83c\udfe4",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- hospital: {
- keywords: [ "building", "health", "surgery", "doctor" ],
- "char": "\ud83c\udfe5",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- bank: {
- keywords: [ "building", "money", "sales", "cash", "business", "enterprise" ],
- "char": "\ud83c\udfe6",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- hotel: {
- keywords: [ "building", "accomodation", "checkin" ],
- "char": "\ud83c\udfe8",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- convenience_store: {
- keywords: [ "building", "shopping", "groceries" ],
- "char": "\ud83c\udfea",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- school: {
- keywords: [ "building", "student", "education", "learn", "teach" ],
- "char": "\ud83c\udfeb",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- love_hotel: {
- keywords: [ "like", "affection", "dating" ],
- "char": "\ud83c\udfe9",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- wedding: {
- keywords: [ "love", "like", "affection", "couple", "marriage", "bride", "groom" ],
- "char": "\ud83d\udc92",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- classical_building: {
- keywords: [ "art", "culture", "history" ],
- "char": "\ud83c\udfdb",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- church: {
- keywords: [ "building", "religion", "christ" ],
- "char": "\u26ea",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- mosque: {
- keywords: [ "islam", "worship", "minaret" ],
- "char": "\ud83d\udd4c",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- synagogue: {
- keywords: [ "judaism", "worship", "temple", "jewish" ],
- "char": "\ud83d\udd4d",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- kaaba: {
- keywords: [ "mecca", "mosque", "islam" ],
- "char": "\ud83d\udd4b",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- shinto_shrine: {
- keywords: [ "temple", "japan", "kyoto" ],
- "char": "\u26e9",
- fitzpatrick_scale: false,
- category: "travel_and_places"
- },
- watch: {
- keywords: [ "time", "accessories" ],
- "char": "\u231a",
- fitzpatrick_scale: false,
- category: "objects"
- },
- iphone: {
- keywords: [ "technology", "apple", "gadgets", "dial" ],
- "char": "\ud83d\udcf1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- calling: {
- keywords: [ "iphone", "incoming" ],
- "char": "\ud83d\udcf2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- computer: {
- keywords: [ "technology", "laptop", "screen", "display", "monitor" ],
- "char": "\ud83d\udcbb",
- fitzpatrick_scale: false,
- category: "objects"
- },
- keyboard: {
- keywords: [ "technology", "computer", "type", "input", "text" ],
- "char": "\u2328",
- fitzpatrick_scale: false,
- category: "objects"
- },
- desktop_computer: {
- keywords: [ "technology", "computing", "screen" ],
- "char": "\ud83d\udda5",
- fitzpatrick_scale: false,
- category: "objects"
- },
- printer: {
- keywords: [ "paper", "ink" ],
- "char": "\ud83d\udda8",
- fitzpatrick_scale: false,
- category: "objects"
- },
- computer_mouse: {
- keywords: [ "click" ],
- "char": "\ud83d\uddb1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- trackball: {
- keywords: [ "technology", "trackpad" ],
- "char": "\ud83d\uddb2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- joystick: {
- keywords: [ "game", "play" ],
- "char": "\ud83d\udd79",
- fitzpatrick_scale: false,
- category: "objects"
- },
- clamp: {
- keywords: [ "tool" ],
- "char": "\ud83d\udddc",
- fitzpatrick_scale: false,
- category: "objects"
- },
- minidisc: {
- keywords: [ "technology", "record", "data", "disk", "90s" ],
- "char": "\ud83d\udcbd",
- fitzpatrick_scale: false,
- category: "objects"
- },
- floppy_disk: {
- keywords: [ "oldschool", "technology", "save", "90s", "80s" ],
- "char": "\ud83d\udcbe",
- fitzpatrick_scale: false,
- category: "objects"
- },
- cd: {
- keywords: [ "technology", "dvd", "disk", "disc", "90s" ],
- "char": "\ud83d\udcbf",
- fitzpatrick_scale: false,
- category: "objects"
- },
- dvd: {
- keywords: [ "cd", "disk", "disc" ],
- "char": "\ud83d\udcc0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- vhs: {
- keywords: [ "record", "video", "oldschool", "90s", "80s" ],
- "char": "\ud83d\udcfc",
- fitzpatrick_scale: false,
- category: "objects"
- },
- camera: {
- keywords: [ "gadgets", "photography" ],
- "char": "\ud83d\udcf7",
- fitzpatrick_scale: false,
- category: "objects"
- },
- camera_flash: {
- keywords: [ "photography", "gadgets" ],
- "char": "\ud83d\udcf8",
- fitzpatrick_scale: false,
- category: "objects"
- },
- video_camera: {
- keywords: [ "film", "record" ],
- "char": "\ud83d\udcf9",
- fitzpatrick_scale: false,
- category: "objects"
- },
- movie_camera: {
- keywords: [ "film", "record" ],
- "char": "\ud83c\udfa5",
- fitzpatrick_scale: false,
- category: "objects"
- },
- film_projector: {
- keywords: [ "video", "tape", "record", "movie" ],
- "char": "\ud83d\udcfd",
- fitzpatrick_scale: false,
- category: "objects"
- },
- film_strip: {
- keywords: [ "movie" ],
- "char": "\ud83c\udf9e",
- fitzpatrick_scale: false,
- category: "objects"
- },
- telephone_receiver: {
- keywords: [ "technology", "communication", "dial" ],
- "char": "\ud83d\udcde",
- fitzpatrick_scale: false,
- category: "objects"
- },
- phone: {
- keywords: [ "technology", "communication", "dial", "telephone" ],
- "char": "\u260e\ufe0f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- pager: {
- keywords: [ "bbcall", "oldschool", "90s" ],
- "char": "\ud83d\udcdf",
- fitzpatrick_scale: false,
- category: "objects"
- },
- fax: {
- keywords: [ "communication", "technology" ],
- "char": "\ud83d\udce0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- tv: {
- keywords: [ "technology", "program", "oldschool", "show", "television" ],
- "char": "\ud83d\udcfa",
- fitzpatrick_scale: false,
- category: "objects"
- },
- radio: {
- keywords: [ "communication", "music", "podcast", "program" ],
- "char": "\ud83d\udcfb",
- fitzpatrick_scale: false,
- category: "objects"
- },
- studio_microphone: {
- keywords: [ "sing", "recording", "artist", "talkshow" ],
- "char": "\ud83c\udf99",
- fitzpatrick_scale: false,
- category: "objects"
- },
- level_slider: {
- keywords: [ "scale" ],
- "char": "\ud83c\udf9a",
- fitzpatrick_scale: false,
- category: "objects"
- },
- control_knobs: {
- keywords: [ "dial" ],
- "char": "\ud83c\udf9b",
- fitzpatrick_scale: false,
- category: "objects"
- },
- stopwatch: {
- keywords: [ "time", "deadline" ],
- "char": "\u23f1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- timer_clock: {
- keywords: [ "alarm" ],
- "char": "\u23f2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- alarm_clock: {
- keywords: [ "time", "wake" ],
- "char": "\u23f0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- mantelpiece_clock: {
- keywords: [ "time" ],
- "char": "\ud83d\udd70",
- fitzpatrick_scale: false,
- category: "objects"
- },
- hourglass_flowing_sand: {
- keywords: [ "oldschool", "time", "countdown" ],
- "char": "\u23f3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- hourglass: {
- keywords: [ "time", "clock", "oldschool", "limit", "exam", "quiz", "test" ],
- "char": "\u231b",
- fitzpatrick_scale: false,
- category: "objects"
- },
- satellite: {
- keywords: [ "communication", "future", "radio", "space" ],
- "char": "\ud83d\udce1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- battery: {
- keywords: [ "power", "energy", "sustain" ],
- "char": "\ud83d\udd0b",
- fitzpatrick_scale: false,
- category: "objects"
- },
- electric_plug: {
- keywords: [ "charger", "power" ],
- "char": "\ud83d\udd0c",
- fitzpatrick_scale: false,
- category: "objects"
- },
- bulb: {
- keywords: [ "light", "electricity", "idea" ],
- "char": "\ud83d\udca1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- flashlight: {
- keywords: [ "dark", "camping", "sight", "night" ],
- "char": "\ud83d\udd26",
- fitzpatrick_scale: false,
- category: "objects"
- },
- candle: {
- keywords: [ "fire", "wax" ],
- "char": "\ud83d\udd6f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- wastebasket: {
- keywords: [ "bin", "trash", "rubbish", "garbage", "toss" ],
- "char": "\ud83d\uddd1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- oil_drum: {
- keywords: [ "barrell" ],
- "char": "\ud83d\udee2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- money_with_wings: {
- keywords: [ "dollar", "bills", "payment", "sale" ],
- "char": "\ud83d\udcb8",
- fitzpatrick_scale: false,
- category: "objects"
- },
- dollar: {
- keywords: [ "money", "sales", "bill", "currency" ],
- "char": "\ud83d\udcb5",
- fitzpatrick_scale: false,
- category: "objects"
- },
- yen: {
- keywords: [ "money", "sales", "japanese", "dollar", "currency" ],
- "char": "\ud83d\udcb4",
- fitzpatrick_scale: false,
- category: "objects"
- },
- euro: {
- keywords: [ "money", "sales", "dollar", "currency" ],
- "char": "\ud83d\udcb6",
- fitzpatrick_scale: false,
- category: "objects"
- },
- pound: {
- keywords: [ "british", "sterling", "money", "sales", "bills", "uk", "england", "currency" ],
- "char": "\ud83d\udcb7",
- fitzpatrick_scale: false,
- category: "objects"
- },
- moneybag: {
- keywords: [ "dollar", "payment", "coins", "sale" ],
- "char": "\ud83d\udcb0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- credit_card: {
- keywords: [ "money", "sales", "dollar", "bill", "payment", "shopping" ],
- "char": "\ud83d\udcb3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- gem: {
- keywords: [ "blue", "ruby", "diamond", "jewelry" ],
- "char": "\ud83d\udc8e",
- fitzpatrick_scale: false,
- category: "objects"
- },
- balance_scale: {
- keywords: [ "law", "fairness", "weight" ],
- "char": "\u2696",
- fitzpatrick_scale: false,
- category: "objects"
- },
- wrench: {
- keywords: [ "tools", "diy", "ikea", "fix", "maintainer" ],
- "char": "\ud83d\udd27",
- fitzpatrick_scale: false,
- category: "objects"
- },
- hammer: {
- keywords: [ "tools", "build", "create" ],
- "char": "\ud83d\udd28",
- fitzpatrick_scale: false,
- category: "objects"
- },
- hammer_and_pick: {
- keywords: [ "tools", "build", "create" ],
- "char": "\u2692",
- fitzpatrick_scale: false,
- category: "objects"
- },
- hammer_and_wrench: {
- keywords: [ "tools", "build", "create" ],
- "char": "\ud83d\udee0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- pick: {
- keywords: [ "tools", "dig" ],
- "char": "\u26cf",
- fitzpatrick_scale: false,
- category: "objects"
- },
- nut_and_bolt: {
- keywords: [ "handy", "tools", "fix" ],
- "char": "\ud83d\udd29",
- fitzpatrick_scale: false,
- category: "objects"
- },
- gear: {
- keywords: [ "cog" ],
- "char": "\u2699",
- fitzpatrick_scale: false,
- category: "objects"
- },
- chains: {
- keywords: [ "lock", "arrest" ],
- "char": "\u26d3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- gun: {
- keywords: [ "violence", "weapon", "pistol", "revolver" ],
- "char": "\ud83d\udd2b",
- fitzpatrick_scale: false,
- category: "objects"
- },
- bomb: {
- keywords: [ "boom", "explode", "explosion", "terrorism" ],
- "char": "\ud83d\udca3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- hocho: {
- keywords: [ "knife", "blade", "cutlery", "kitchen", "weapon" ],
- "char": "\ud83d\udd2a",
- fitzpatrick_scale: false,
- category: "objects"
- },
- dagger: {
- keywords: [ "weapon" ],
- "char": "\ud83d\udde1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- crossed_swords: {
- keywords: [ "weapon" ],
- "char": "\u2694",
- fitzpatrick_scale: false,
- category: "objects"
- },
- shield: {
- keywords: [ "protection", "security" ],
- "char": "\ud83d\udee1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- smoking: {
- keywords: [ "kills", "tobacco", "cigarette", "joint", "smoke" ],
- "char": "\ud83d\udeac",
- fitzpatrick_scale: false,
- category: "objects"
- },
- skull_and_crossbones: {
- keywords: [ "poison", "danger", "deadly", "scary", "death", "pirate", "evil" ],
- "char": "\u2620",
- fitzpatrick_scale: false,
- category: "objects"
- },
- coffin: {
- keywords: [ "vampire", "dead", "die", "death", "rip", "graveyard", "cemetery", "casket", "funeral", "box" ],
- "char": "\u26b0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- funeral_urn: {
- keywords: [ "dead", "die", "death", "rip", "ashes" ],
- "char": "\u26b1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- amphora: {
- keywords: [ "vase", "jar" ],
- "char": "\ud83c\udffa",
- fitzpatrick_scale: false,
- category: "objects"
- },
- crystal_ball: {
- keywords: [ "disco", "party", "magic", "circus", "fortune_teller" ],
- "char": "\ud83d\udd2e",
- fitzpatrick_scale: false,
- category: "objects"
- },
- prayer_beads: {
- keywords: [ "dhikr", "religious" ],
- "char": "\ud83d\udcff",
- fitzpatrick_scale: false,
- category: "objects"
- },
- barber: {
- keywords: [ "hair", "salon", "style" ],
- "char": "\ud83d\udc88",
- fitzpatrick_scale: false,
- category: "objects"
- },
- alembic: {
- keywords: [ "distilling", "science", "experiment", "chemistry" ],
- "char": "\u2697",
- fitzpatrick_scale: false,
- category: "objects"
- },
- telescope: {
- keywords: [ "stars", "space", "zoom", "science", "astronomy" ],
- "char": "\ud83d\udd2d",
- fitzpatrick_scale: false,
- category: "objects"
- },
- microscope: {
- keywords: [ "laboratory", "experiment", "zoomin", "science", "study" ],
- "char": "\ud83d\udd2c",
- fitzpatrick_scale: false,
- category: "objects"
- },
- hole: {
- keywords: [ "embarrassing" ],
- "char": "\ud83d\udd73",
- fitzpatrick_scale: false,
- category: "objects"
- },
- pill: {
- keywords: [ "health", "medicine", "doctor", "pharmacy", "drug" ],
- "char": "\ud83d\udc8a",
- fitzpatrick_scale: false,
- category: "objects"
- },
- syringe: {
- keywords: [ "health", "hospital", "drugs", "blood", "medicine", "needle", "doctor", "nurse" ],
- "char": "\ud83d\udc89",
- fitzpatrick_scale: false,
- category: "objects"
- },
- thermometer: {
- keywords: [ "weather", "temperature", "hot", "cold" ],
- "char": "\ud83c\udf21",
- fitzpatrick_scale: false,
- category: "objects"
- },
- label: {
- keywords: [ "sale", "tag" ],
- "char": "\ud83c\udff7",
- fitzpatrick_scale: false,
- category: "objects"
- },
- bookmark: {
- keywords: [ "favorite", "label", "save" ],
- "char": "\ud83d\udd16",
- fitzpatrick_scale: false,
- category: "objects"
- },
- toilet: {
- keywords: [ "restroom", "wc", "washroom", "bathroom", "potty" ],
- "char": "\ud83d\udebd",
- fitzpatrick_scale: false,
- category: "objects"
- },
- shower: {
- keywords: [ "clean", "water", "bathroom" ],
- "char": "\ud83d\udebf",
- fitzpatrick_scale: false,
- category: "objects"
- },
- bathtub: {
- keywords: [ "clean", "shower", "bathroom" ],
- "char": "\ud83d\udec1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- key: {
- keywords: [ "lock", "door", "password" ],
- "char": "\ud83d\udd11",
- fitzpatrick_scale: false,
- category: "objects"
- },
- old_key: {
- keywords: [ "lock", "door", "password" ],
- "char": "\ud83d\udddd",
- fitzpatrick_scale: false,
- category: "objects"
- },
- couch_and_lamp: {
- keywords: [ "read", "chill" ],
- "char": "\ud83d\udecb",
- fitzpatrick_scale: false,
- category: "objects"
- },
- sleeping_bed: {
- keywords: [ "bed", "rest" ],
- "char": "\ud83d\udecc",
- fitzpatrick_scale: true,
- category: "objects"
- },
- bed: {
- keywords: [ "sleep", "rest" ],
- "char": "\ud83d\udecf",
- fitzpatrick_scale: false,
- category: "objects"
- },
- door: {
- keywords: [ "house", "entry", "exit" ],
- "char": "\ud83d\udeaa",
- fitzpatrick_scale: false,
- category: "objects"
- },
- bellhop_bell: {
- keywords: [ "service" ],
- "char": "\ud83d\udece",
- fitzpatrick_scale: false,
- category: "objects"
- },
- framed_picture: {
- keywords: [ "photography" ],
- "char": "\ud83d\uddbc",
- fitzpatrick_scale: false,
- category: "objects"
- },
- world_map: {
- keywords: [ "location", "direction" ],
- "char": "\ud83d\uddfa",
- fitzpatrick_scale: false,
- category: "objects"
- },
- parasol_on_ground: {
- keywords: [ "weather", "summer" ],
- "char": "\u26f1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- moyai: {
- keywords: [ "rock", "easter island", "moai" ],
- "char": "\ud83d\uddff",
- fitzpatrick_scale: false,
- category: "objects"
- },
- shopping: {
- keywords: [ "mall", "buy", "purchase" ],
- "char": "\ud83d\udecd",
- fitzpatrick_scale: false,
- category: "objects"
- },
- shopping_cart: {
- keywords: [ "trolley" ],
- "char": "\ud83d\uded2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- balloon: {
- keywords: [ "party", "celebration", "birthday", "circus" ],
- "char": "\ud83c\udf88",
- fitzpatrick_scale: false,
- category: "objects"
- },
- flags: {
- keywords: [ "fish", "japanese", "koinobori", "carp", "banner" ],
- "char": "\ud83c\udf8f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- ribbon: {
- keywords: [ "decoration", "pink", "girl", "bowtie" ],
- "char": "\ud83c\udf80",
- fitzpatrick_scale: false,
- category: "objects"
- },
- gift: {
- keywords: [ "present", "birthday", "christmas", "xmas" ],
- "char": "\ud83c\udf81",
- fitzpatrick_scale: false,
- category: "objects"
- },
- confetti_ball: {
- keywords: [ "festival", "party", "birthday", "circus" ],
- "char": "\ud83c\udf8a",
- fitzpatrick_scale: false,
- category: "objects"
- },
- tada: {
- keywords: [ "party", "congratulations", "birthday", "magic", "circus", "celebration" ],
- "char": "\ud83c\udf89",
- fitzpatrick_scale: false,
- category: "objects"
- },
- dolls: {
- keywords: [ "japanese", "toy", "kimono" ],
- "char": "\ud83c\udf8e",
- fitzpatrick_scale: false,
- category: "objects"
- },
- wind_chime: {
- keywords: [ "nature", "ding", "spring", "bell" ],
- "char": "\ud83c\udf90",
- fitzpatrick_scale: false,
- category: "objects"
- },
- crossed_flags: {
- keywords: [ "japanese", "nation", "country", "border" ],
- "char": "\ud83c\udf8c",
- fitzpatrick_scale: false,
- category: "objects"
- },
- izakaya_lantern: {
- keywords: [ "light", "paper", "halloween", "spooky" ],
- "char": "\ud83c\udfee",
- fitzpatrick_scale: false,
- category: "objects"
- },
- email: {
- keywords: [ "letter", "postal", "inbox", "communication" ],
- "char": "\u2709\ufe0f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- envelope_with_arrow: {
- keywords: [ "email", "communication" ],
- "char": "\ud83d\udce9",
- fitzpatrick_scale: false,
- category: "objects"
- },
- incoming_envelope: {
- keywords: [ "email", "inbox" ],
- "char": "\ud83d\udce8",
- fitzpatrick_scale: false,
- category: "objects"
- },
- "e-mail": {
- keywords: [ "communication", "inbox" ],
- "char": "\ud83d\udce7",
- fitzpatrick_scale: false,
- category: "objects"
- },
- love_letter: {
- keywords: [ "email", "like", "affection", "envelope", "valentines" ],
- "char": "\ud83d\udc8c",
- fitzpatrick_scale: false,
- category: "objects"
- },
- postbox: {
- keywords: [ "email", "letter", "envelope" ],
- "char": "\ud83d\udcee",
- fitzpatrick_scale: false,
- category: "objects"
- },
- mailbox_closed: {
- keywords: [ "email", "communication", "inbox" ],
- "char": "\ud83d\udcea",
- fitzpatrick_scale: false,
- category: "objects"
- },
- mailbox: {
- keywords: [ "email", "inbox", "communication" ],
- "char": "\ud83d\udceb",
- fitzpatrick_scale: false,
- category: "objects"
- },
- mailbox_with_mail: {
- keywords: [ "email", "inbox", "communication" ],
- "char": "\ud83d\udcec",
- fitzpatrick_scale: false,
- category: "objects"
- },
- mailbox_with_no_mail: {
- keywords: [ "email", "inbox" ],
- "char": "\ud83d\udced",
- fitzpatrick_scale: false,
- category: "objects"
- },
- "package": {
- keywords: [ "mail", "gift", "cardboard", "box", "moving" ],
- "char": "\ud83d\udce6",
- fitzpatrick_scale: false,
- category: "objects"
- },
- postal_horn: {
- keywords: [ "instrument", "music" ],
- "char": "\ud83d\udcef",
- fitzpatrick_scale: false,
- category: "objects"
- },
- inbox_tray: {
- keywords: [ "email", "documents" ],
- "char": "\ud83d\udce5",
- fitzpatrick_scale: false,
- category: "objects"
- },
- outbox_tray: {
- keywords: [ "inbox", "email" ],
- "char": "\ud83d\udce4",
- fitzpatrick_scale: false,
- category: "objects"
- },
- scroll: {
- keywords: [ "documents", "ancient", "history", "paper" ],
- "char": "\ud83d\udcdc",
- fitzpatrick_scale: false,
- category: "objects"
- },
- page_with_curl: {
- keywords: [ "documents", "office", "paper" ],
- "char": "\ud83d\udcc3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- bookmark_tabs: {
- keywords: [ "favorite", "save", "order", "tidy" ],
- "char": "\ud83d\udcd1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- bar_chart: {
- keywords: [ "graph", "presentation", "stats" ],
- "char": "\ud83d\udcca",
- fitzpatrick_scale: false,
- category: "objects"
- },
- chart_with_upwards_trend: {
- keywords: [ "graph", "presentation", "stats", "recovery", "business", "economics", "money", "sales", "good", "success" ],
- "char": "\ud83d\udcc8",
- fitzpatrick_scale: false,
- category: "objects"
- },
- chart_with_downwards_trend: {
- keywords: [ "graph", "presentation", "stats", "recession", "business", "economics", "money", "sales", "bad", "failure" ],
- "char": "\ud83d\udcc9",
- fitzpatrick_scale: false,
- category: "objects"
- },
- page_facing_up: {
- keywords: [ "documents", "office", "paper", "information" ],
- "char": "\ud83d\udcc4",
- fitzpatrick_scale: false,
- category: "objects"
- },
- date: {
- keywords: [ "calendar", "schedule" ],
- "char": "\ud83d\udcc5",
- fitzpatrick_scale: false,
- category: "objects"
- },
- calendar: {
- keywords: [ "schedule", "date", "planning" ],
- "char": "\ud83d\udcc6",
- fitzpatrick_scale: false,
- category: "objects"
- },
- spiral_calendar: {
- keywords: [ "date", "schedule", "planning" ],
- "char": "\ud83d\uddd3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- card_index: {
- keywords: [ "business", "stationery" ],
- "char": "\ud83d\udcc7",
- fitzpatrick_scale: false,
- category: "objects"
- },
- card_file_box: {
- keywords: [ "business", "stationery" ],
- "char": "\ud83d\uddc3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- ballot_box: {
- keywords: [ "election", "vote" ],
- "char": "\ud83d\uddf3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- file_cabinet: {
- keywords: [ "filing", "organizing" ],
- "char": "\ud83d\uddc4",
- fitzpatrick_scale: false,
- category: "objects"
- },
- clipboard: {
- keywords: [ "stationery", "documents" ],
- "char": "\ud83d\udccb",
- fitzpatrick_scale: false,
- category: "objects"
- },
- spiral_notepad: {
- keywords: [ "memo", "stationery" ],
- "char": "\ud83d\uddd2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- file_folder: {
- keywords: [ "documents", "business", "office" ],
- "char": "\ud83d\udcc1",
- fitzpatrick_scale: false,
- category: "objects"
- },
- open_file_folder: {
- keywords: [ "documents", "load" ],
- "char": "\ud83d\udcc2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- card_index_dividers: {
- keywords: [ "organizing", "business", "stationery" ],
- "char": "\ud83d\uddc2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- newspaper_roll: {
- keywords: [ "press", "headline" ],
- "char": "\ud83d\uddde",
- fitzpatrick_scale: false,
- category: "objects"
- },
- newspaper: {
- keywords: [ "press", "headline" ],
- "char": "\ud83d\udcf0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- notebook: {
- keywords: [ "stationery", "record", "notes", "paper", "study" ],
- "char": "\ud83d\udcd3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- closed_book: {
- keywords: [ "read", "library", "knowledge", "textbook", "learn" ],
- "char": "\ud83d\udcd5",
- fitzpatrick_scale: false,
- category: "objects"
- },
- green_book: {
- keywords: [ "read", "library", "knowledge", "study" ],
- "char": "\ud83d\udcd7",
- fitzpatrick_scale: false,
- category: "objects"
- },
- blue_book: {
- keywords: [ "read", "library", "knowledge", "learn", "study" ],
- "char": "\ud83d\udcd8",
- fitzpatrick_scale: false,
- category: "objects"
- },
- orange_book: {
- keywords: [ "read", "library", "knowledge", "textbook", "study" ],
- "char": "\ud83d\udcd9",
- fitzpatrick_scale: false,
- category: "objects"
- },
- notebook_with_decorative_cover: {
- keywords: [ "classroom", "notes", "record", "paper", "study" ],
- "char": "\ud83d\udcd4",
- fitzpatrick_scale: false,
- category: "objects"
- },
- ledger: {
- keywords: [ "notes", "paper" ],
- "char": "\ud83d\udcd2",
- fitzpatrick_scale: false,
- category: "objects"
- },
- books: {
- keywords: [ "literature", "library", "study" ],
- "char": "\ud83d\udcda",
- fitzpatrick_scale: false,
- category: "objects"
- },
- open_book: {
- keywords: [ "book", "read", "library", "knowledge", "literature", "learn", "study" ],
- "char": "\ud83d\udcd6",
- fitzpatrick_scale: false,
- category: "objects"
- },
- link: {
- keywords: [ "rings", "url" ],
- "char": "\ud83d\udd17",
- fitzpatrick_scale: false,
- category: "objects"
- },
- paperclip: {
- keywords: [ "documents", "stationery" ],
- "char": "\ud83d\udcce",
- fitzpatrick_scale: false,
- category: "objects"
- },
- paperclips: {
- keywords: [ "documents", "stationery" ],
- "char": "\ud83d\udd87",
- fitzpatrick_scale: false,
- category: "objects"
- },
- scissors: {
- keywords: [ "stationery", "cut" ],
- "char": "\u2702\ufe0f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- triangular_ruler: {
- keywords: [ "stationery", "math", "architect", "sketch" ],
- "char": "\ud83d\udcd0",
- fitzpatrick_scale: false,
- category: "objects"
- },
- straight_ruler: {
- keywords: [ "stationery", "calculate", "length", "math", "school", "drawing", "architect", "sketch" ],
- "char": "\ud83d\udccf",
- fitzpatrick_scale: false,
- category: "objects"
- },
- pushpin: {
- keywords: [ "stationery", "mark", "here" ],
- "char": "\ud83d\udccc",
- fitzpatrick_scale: false,
- category: "objects"
- },
- round_pushpin: {
- keywords: [ "stationery", "location", "map", "here" ],
- "char": "\ud83d\udccd",
- fitzpatrick_scale: false,
- category: "objects"
- },
- triangular_flag_on_post: {
- keywords: [ "mark", "milestone", "place" ],
- "char": "\ud83d\udea9",
- fitzpatrick_scale: false,
- category: "objects"
- },
- white_flag: {
- keywords: [ "losing", "loser", "lost", "surrender", "give up", "fail" ],
- "char": "\ud83c\udff3",
- fitzpatrick_scale: false,
- category: "objects"
- },
- black_flag: {
- keywords: [ "pirate" ],
- "char": "\ud83c\udff4",
- fitzpatrick_scale: false,
- category: "objects"
- },
- rainbow_flag: {
- keywords: [ "flag", "rainbow", "pride", "gay", "lgbt", "glbt", "queer", "homosexual", "lesbian", "bisexual", "transgender" ],
- "char": "\ud83c\udff3\ufe0f\u200d\ud83c\udf08",
- fitzpatrick_scale: false,
- category: "objects"
- },
- closed_lock_with_key: {
- keywords: [ "security", "privacy" ],
- "char": "\ud83d\udd10",
- fitzpatrick_scale: false,
- category: "objects"
- },
- lock: {
- keywords: [ "security", "password", "padlock" ],
- "char": "\ud83d\udd12",
- fitzpatrick_scale: false,
- category: "objects"
- },
- unlock: {
- keywords: [ "privacy", "security" ],
- "char": "\ud83d\udd13",
- fitzpatrick_scale: false,
- category: "objects"
- },
- lock_with_ink_pen: {
- keywords: [ "security", "secret" ],
- "char": "\ud83d\udd0f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- pen: {
- keywords: [ "stationery", "writing", "write" ],
- "char": "\ud83d\udd8a",
- fitzpatrick_scale: false,
- category: "objects"
- },
- fountain_pen: {
- keywords: [ "stationery", "writing", "write" ],
- "char": "\ud83d\udd8b",
- fitzpatrick_scale: false,
- category: "objects"
- },
- black_nib: {
- keywords: [ "pen", "stationery", "writing", "write" ],
- "char": "\u2712\ufe0f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- memo: {
- keywords: [ "write", "documents", "stationery", "pencil", "paper", "writing", "legal", "exam", "quiz", "test", "study", "compose" ],
- "char": "\ud83d\udcdd",
- fitzpatrick_scale: false,
- category: "objects"
- },
- pencil2: {
- keywords: [ "stationery", "write", "paper", "writing", "school", "study" ],
- "char": "\u270f\ufe0f",
- fitzpatrick_scale: false,
- category: "objects"
- },
- crayon: {
- keywords: [ "drawing", "creativity" ],
- "char": "\ud83d\udd8d",
- fitzpatrick_scale: false,
- category: "objects"
- },
- paintbrush: {
- keywords: [ "drawing", "creativity", "art" ],
- "char": "\ud83d\udd8c",
- fitzpatrick_scale: false,
- category: "objects"
- },
- mag: {
- keywords: [ "search", "zoom", "find", "detective" ],
- "char": "\ud83d\udd0d",
- fitzpatrick_scale: false,
- category: "objects"
- },
- mag_right: {
- keywords: [ "search", "zoom", "find", "detective" ],
- "char": "\ud83d\udd0e",
- fitzpatrick_scale: false,
- category: "objects"
- },
- heart: {
- keywords: [ "love", "like", "valentines" ],
- "char": "\u2764\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- orange_heart: {
- keywords: [ "love", "like", "affection", "valentines" ],
- "char": "\ud83e\udde1",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- yellow_heart: {
- keywords: [ "love", "like", "affection", "valentines" ],
- "char": "\ud83d\udc9b",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- green_heart: {
- keywords: [ "love", "like", "affection", "valentines" ],
- "char": "\ud83d\udc9a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- blue_heart: {
- keywords: [ "love", "like", "affection", "valentines" ],
- "char": "\ud83d\udc99",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- purple_heart: {
- keywords: [ "love", "like", "affection", "valentines" ],
- "char": "\ud83d\udc9c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_heart: {
- keywords: [ "evil" ],
- "char": "\ud83d\udda4",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- broken_heart: {
- keywords: [ "sad", "sorry", "break", "heart", "heartbreak" ],
- "char": "\ud83d\udc94",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heavy_heart_exclamation: {
- keywords: [ "decoration", "love" ],
- "char": "\u2763",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- two_hearts: {
- keywords: [ "love", "like", "affection", "valentines", "heart" ],
- "char": "\ud83d\udc95",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- revolving_hearts: {
- keywords: [ "love", "like", "affection", "valentines" ],
- "char": "\ud83d\udc9e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heartbeat: {
- keywords: [ "love", "like", "affection", "valentines", "pink", "heart" ],
- "char": "\ud83d\udc93",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heartpulse: {
- keywords: [ "like", "love", "affection", "valentines", "pink" ],
- "char": "\ud83d\udc97",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- sparkling_heart: {
- keywords: [ "love", "like", "affection", "valentines" ],
- "char": "\ud83d\udc96",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- cupid: {
- keywords: [ "love", "like", "heart", "affection", "valentines" ],
- "char": "\ud83d\udc98",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- gift_heart: {
- keywords: [ "love", "valentines" ],
- "char": "\ud83d\udc9d",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heart_decoration: {
- keywords: [ "purple-square", "love", "like" ],
- "char": "\ud83d\udc9f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- peace_symbol: {
- keywords: [ "hippie" ],
- "char": "\u262e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- latin_cross: {
- keywords: [ "christianity" ],
- "char": "\u271d",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- star_and_crescent: {
- keywords: [ "islam" ],
- "char": "\u262a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- om: {
- keywords: [ "hinduism", "buddhism", "sikhism", "jainism" ],
- "char": "\ud83d\udd49",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- wheel_of_dharma: {
- keywords: [ "hinduism", "buddhism", "sikhism", "jainism" ],
- "char": "\u2638",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- star_of_david: {
- keywords: [ "judaism" ],
- "char": "\u2721",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- six_pointed_star: {
- keywords: [ "purple-square", "religion", "jewish", "hexagram" ],
- "char": "\ud83d\udd2f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- menorah: {
- keywords: [ "hanukkah", "candles", "jewish" ],
- "char": "\ud83d\udd4e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- yin_yang: {
- keywords: [ "balance" ],
- "char": "\u262f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- orthodox_cross: {
- keywords: [ "suppedaneum", "religion" ],
- "char": "\u2626",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- place_of_worship: {
- keywords: [ "religion", "church", "temple", "prayer" ],
- "char": "\ud83d\uded0",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- ophiuchus: {
- keywords: [ "sign", "purple-square", "constellation", "astrology" ],
- "char": "\u26ce",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- aries: {
- keywords: [ "sign", "purple-square", "zodiac", "astrology" ],
- "char": "\u2648",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- taurus: {
- keywords: [ "purple-square", "sign", "zodiac", "astrology" ],
- "char": "\u2649",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- gemini: {
- keywords: [ "sign", "zodiac", "purple-square", "astrology" ],
- "char": "\u264a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- cancer: {
- keywords: [ "sign", "zodiac", "purple-square", "astrology" ],
- "char": "\u264b",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- leo: {
- keywords: [ "sign", "purple-square", "zodiac", "astrology" ],
- "char": "\u264c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- virgo: {
- keywords: [ "sign", "zodiac", "purple-square", "astrology" ],
- "char": "\u264d",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- libra: {
- keywords: [ "sign", "purple-square", "zodiac", "astrology" ],
- "char": "\u264e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- scorpius: {
- keywords: [ "sign", "zodiac", "purple-square", "astrology", "scorpio" ],
- "char": "\u264f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- sagittarius: {
- keywords: [ "sign", "zodiac", "purple-square", "astrology" ],
- "char": "\u2650",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- capricorn: {
- keywords: [ "sign", "zodiac", "purple-square", "astrology" ],
- "char": "\u2651",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- aquarius: {
- keywords: [ "sign", "purple-square", "zodiac", "astrology" ],
- "char": "\u2652",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- pisces: {
- keywords: [ "purple-square", "sign", "zodiac", "astrology" ],
- "char": "\u2653",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- id: {
- keywords: [ "purple-square", "words" ],
- "char": "\ud83c\udd94",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- atom_symbol: {
- keywords: [ "science", "physics", "chemistry" ],
- "char": "\u269b",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u7a7a: {
- keywords: [ "kanji", "japanese", "chinese", "empty", "sky", "blue-square" ],
- "char": "\ud83c\ude33",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u5272: {
- keywords: [ "cut", "divide", "chinese", "kanji", "pink-square" ],
- "char": "\ud83c\ude39",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- radioactive: {
- keywords: [ "nuclear", "danger" ],
- "char": "\u2622",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- biohazard: {
- keywords: [ "danger" ],
- "char": "\u2623",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- mobile_phone_off: {
- keywords: [ "mute", "orange-square", "silence", "quiet" ],
- "char": "\ud83d\udcf4",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- vibration_mode: {
- keywords: [ "orange-square", "phone" ],
- "char": "\ud83d\udcf3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u6709: {
- keywords: [ "orange-square", "chinese", "have", "kanji" ],
- "char": "\ud83c\ude36",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u7121: {
- keywords: [ "nothing", "chinese", "kanji", "japanese", "orange-square" ],
- "char": "\ud83c\ude1a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u7533: {
- keywords: [ "chinese", "japanese", "kanji", "orange-square" ],
- "char": "\ud83c\ude38",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u55b6: {
- keywords: [ "japanese", "opening hours", "orange-square" ],
- "char": "\ud83c\ude3a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u6708: {
- keywords: [ "chinese", "month", "moon", "japanese", "orange-square", "kanji" ],
- "char": "\ud83c\ude37\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- eight_pointed_black_star: {
- keywords: [ "orange-square", "shape", "polygon" ],
- "char": "\u2734\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- vs: {
- keywords: [ "words", "orange-square" ],
- "char": "\ud83c\udd9a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- accept: {
- keywords: [ "ok", "good", "chinese", "kanji", "agree", "yes", "orange-circle" ],
- "char": "\ud83c\ude51",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_flower: {
- keywords: [ "japanese", "spring" ],
- "char": "\ud83d\udcae",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- ideograph_advantage: {
- keywords: [ "chinese", "kanji", "obtain", "get", "circle" ],
- "char": "\ud83c\ude50",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- secret: {
- keywords: [ "privacy", "chinese", "sshh", "kanji", "red-circle" ],
- "char": "\u3299\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- congratulations: {
- keywords: [ "chinese", "kanji", "japanese", "red-circle" ],
- "char": "\u3297\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u5408: {
- keywords: [ "japanese", "chinese", "join", "kanji", "red-square" ],
- "char": "\ud83c\ude34",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u6e80: {
- keywords: [ "full", "chinese", "japanese", "red-square", "kanji" ],
- "char": "\ud83c\ude35",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u7981: {
- keywords: [ "kanji", "japanese", "chinese", "forbidden", "limit", "restricted", "red-square" ],
- "char": "\ud83c\ude32",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- a: {
- keywords: [ "red-square", "alphabet", "letter" ],
- "char": "\ud83c\udd70\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- b: {
- keywords: [ "red-square", "alphabet", "letter" ],
- "char": "\ud83c\udd71\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- ab: {
- keywords: [ "red-square", "alphabet" ],
- "char": "\ud83c\udd8e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- cl: {
- keywords: [ "alphabet", "words", "red-square" ],
- "char": "\ud83c\udd91",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- o2: {
- keywords: [ "alphabet", "red-square", "letter" ],
- "char": "\ud83c\udd7e\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- sos: {
- keywords: [ "help", "red-square", "words", "emergency", "911" ],
- "char": "\ud83c\udd98",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- no_entry: {
- keywords: [ "limit", "security", "privacy", "bad", "denied", "stop", "circle" ],
- "char": "\u26d4",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- name_badge: {
- keywords: [ "fire", "forbid" ],
- "char": "\ud83d\udcdb",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- no_entry_sign: {
- keywords: [ "forbid", "stop", "limit", "denied", "disallow", "circle" ],
- "char": "\ud83d\udeab",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- x: {
- keywords: [ "no", "delete", "remove", "cancel" ],
- "char": "\u274c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- o: {
- keywords: [ "circle", "round" ],
- "char": "\u2b55",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- stop_sign: {
- keywords: [ "stop" ],
- "char": "\ud83d\uded1",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- anger: {
- keywords: [ "angry", "mad" ],
- "char": "\ud83d\udca2",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- hotsprings: {
- keywords: [ "bath", "warm", "relax" ],
- "char": "\u2668\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- no_pedestrians: {
- keywords: [ "rules", "crossing", "walking", "circle" ],
- "char": "\ud83d\udeb7",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- do_not_litter: {
- keywords: [ "trash", "bin", "garbage", "circle" ],
- "char": "\ud83d\udeaf",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- no_bicycles: {
- keywords: [ "cyclist", "prohibited", "circle" ],
- "char": "\ud83d\udeb3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- "non-potable_water": {
- keywords: [ "drink", "faucet", "tap", "circle" ],
- "char": "\ud83d\udeb1",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- underage: {
- keywords: [ "18", "drink", "pub", "night", "minor", "circle" ],
- "char": "\ud83d\udd1e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- no_mobile_phones: {
- keywords: [ "iphone", "mute", "circle" ],
- "char": "\ud83d\udcf5",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- exclamation: {
- keywords: [ "heavy_exclamation_mark", "danger", "surprise", "punctuation", "wow", "warning" ],
- "char": "\u2757",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- grey_exclamation: {
- keywords: [ "surprise", "punctuation", "gray", "wow", "warning" ],
- "char": "\u2755",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- question: {
- keywords: [ "doubt", "confused" ],
- "char": "\u2753",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- grey_question: {
- keywords: [ "doubts", "gray", "huh", "confused" ],
- "char": "\u2754",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- bangbang: {
- keywords: [ "exclamation", "surprise" ],
- "char": "\u203c\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- interrobang: {
- keywords: [ "wat", "punctuation", "surprise" ],
- "char": "\u2049\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- 100: {
- keywords: [ "score", "perfect", "numbers", "century", "exam", "quiz", "test", "pass", "hundred" ],
- "char": "\ud83d\udcaf",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- low_brightness: {
- keywords: [ "sun", "afternoon", "warm", "summer" ],
- "char": "\ud83d\udd05",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- high_brightness: {
- keywords: [ "sun", "light" ],
- "char": "\ud83d\udd06",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- trident: {
- keywords: [ "weapon", "spear" ],
- "char": "\ud83d\udd31",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- fleur_de_lis: {
- keywords: [ "decorative", "scout" ],
- "char": "\u269c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- part_alternation_mark: {
- keywords: [ "graph", "presentation", "stats", "business", "economics", "bad" ],
- "char": "\u303d\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- warning: {
- keywords: [ "exclamation", "wip", "alert", "error", "problem", "issue" ],
- "char": "\u26a0\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- children_crossing: {
- keywords: [ "school", "warning", "danger", "sign", "driving", "yellow-diamond" ],
- "char": "\ud83d\udeb8",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- beginner: {
- keywords: [ "badge", "shield" ],
- "char": "\ud83d\udd30",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- recycle: {
- keywords: [ "arrow", "environment", "garbage", "trash" ],
- "char": "\u267b\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- u6307: {
- keywords: [ "chinese", "point", "green-square", "kanji" ],
- "char": "\ud83c\ude2f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- chart: {
- keywords: [ "green-square", "graph", "presentation", "stats" ],
- "char": "\ud83d\udcb9",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- sparkle: {
- keywords: [ "stars", "green-square", "awesome", "good", "fireworks" ],
- "char": "\u2747\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- eight_spoked_asterisk: {
- keywords: [ "star", "sparkle", "green-square" ],
- "char": "\u2733\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- negative_squared_cross_mark: {
- keywords: [ "x", "green-square", "no", "deny" ],
- "char": "\u274e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_check_mark: {
- keywords: [ "green-square", "ok", "agree", "vote", "election", "answer", "tick" ],
- "char": "\u2705",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- diamond_shape_with_a_dot_inside: {
- keywords: [ "jewel", "blue", "gem", "crystal", "fancy" ],
- "char": "\ud83d\udca0",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- cyclone: {
- keywords: [ "weather", "swirl", "blue", "cloud", "vortex", "spiral", "whirlpool", "spin", "tornado", "hurricane", "typhoon" ],
- "char": "\ud83c\udf00",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- loop: {
- keywords: [ "tape", "cassette" ],
- "char": "\u27bf",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- globe_with_meridians: {
- keywords: [ "earth", "international", "world", "internet", "interweb", "i18n" ],
- "char": "\ud83c\udf10",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- m: {
- keywords: [ "alphabet", "blue-circle", "letter" ],
- "char": "\u24c2\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- atm: {
- keywords: [ "money", "sales", "cash", "blue-square", "payment", "bank" ],
- "char": "\ud83c\udfe7",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- sa: {
- keywords: [ "japanese", "blue-square", "katakana" ],
- "char": "\ud83c\ude02\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- passport_control: {
- keywords: [ "custom", "blue-square" ],
- "char": "\ud83d\udec2",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- customs: {
- keywords: [ "passport", "border", "blue-square" ],
- "char": "\ud83d\udec3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- baggage_claim: {
- keywords: [ "blue-square", "airport", "transport" ],
- "char": "\ud83d\udec4",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- left_luggage: {
- keywords: [ "blue-square", "travel" ],
- "char": "\ud83d\udec5",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- wheelchair: {
- keywords: [ "blue-square", "disabled", "a11y", "accessibility" ],
- "char": "\u267f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- no_smoking: {
- keywords: [ "cigarette", "blue-square", "smell", "smoke" ],
- "char": "\ud83d\udead",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- wc: {
- keywords: [ "toilet", "restroom", "blue-square" ],
- "char": "\ud83d\udebe",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- parking: {
- keywords: [ "cars", "blue-square", "alphabet", "letter" ],
- "char": "\ud83c\udd7f\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- potable_water: {
- keywords: [ "blue-square", "liquid", "restroom", "cleaning", "faucet" ],
- "char": "\ud83d\udeb0",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- mens: {
- keywords: [ "toilet", "restroom", "wc", "blue-square", "gender", "male" ],
- "char": "\ud83d\udeb9",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- womens: {
- keywords: [ "purple-square", "woman", "female", "toilet", "loo", "restroom", "gender" ],
- "char": "\ud83d\udeba",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- baby_symbol: {
- keywords: [ "orange-square", "child" ],
- "char": "\ud83d\udebc",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- restroom: {
- keywords: [ "blue-square", "toilet", "refresh", "wc", "gender" ],
- "char": "\ud83d\udebb",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- put_litter_in_its_place: {
- keywords: [ "blue-square", "sign", "human", "info" ],
- "char": "\ud83d\udeae",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- cinema: {
- keywords: [ "blue-square", "record", "film", "movie", "curtain", "stage", "theater" ],
- "char": "\ud83c\udfa6",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- signal_strength: {
- keywords: [ "blue-square", "reception", "phone", "internet", "connection", "wifi", "bluetooth", "bars" ],
- "char": "\ud83d\udcf6",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- koko: {
- keywords: [ "blue-square", "here", "katakana", "japanese", "destination" ],
- "char": "\ud83c\ude01",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- ng: {
- keywords: [ "blue-square", "words", "shape", "icon" ],
- "char": "\ud83c\udd96",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- ok: {
- keywords: [ "good", "agree", "yes", "blue-square" ],
- "char": "\ud83c\udd97",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- up: {
- keywords: [ "blue-square", "above", "high" ],
- "char": "\ud83c\udd99",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- cool: {
- keywords: [ "words", "blue-square" ],
- "char": "\ud83c\udd92",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- "new": {
- keywords: [ "blue-square", "words", "start" ],
- "char": "\ud83c\udd95",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- free: {
- keywords: [ "blue-square", "words" ],
- "char": "\ud83c\udd93",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- zero: {
- keywords: [ "0", "numbers", "blue-square", "null" ],
- "char": "0\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- one: {
- keywords: [ "blue-square", "numbers", "1" ],
- "char": "1\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- two: {
- keywords: [ "numbers", "2", "prime", "blue-square" ],
- "char": "2\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- three: {
- keywords: [ "3", "numbers", "prime", "blue-square" ],
- "char": "3\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- four: {
- keywords: [ "4", "numbers", "blue-square" ],
- "char": "4\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- five: {
- keywords: [ "5", "numbers", "blue-square", "prime" ],
- "char": "5\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- six: {
- keywords: [ "6", "numbers", "blue-square" ],
- "char": "6\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- seven: {
- keywords: [ "7", "numbers", "blue-square", "prime" ],
- "char": "7\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- eight: {
- keywords: [ "8", "blue-square", "numbers" ],
- "char": "8\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- nine: {
- keywords: [ "blue-square", "numbers", "9" ],
- "char": "9\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- keycap_ten: {
- keywords: [ "numbers", "10", "blue-square" ],
- "char": "\ud83d\udd1f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- asterisk: {
- keywords: [ "star", "keycap" ],
- "char": "*\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- 1234: {
- keywords: [ "numbers", "blue-square" ],
- "char": "\ud83d\udd22",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- eject_button: {
- keywords: [ "blue-square" ],
- "char": "\u23cf\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_forward: {
- keywords: [ "blue-square", "right", "direction", "play" ],
- "char": "\u25b6\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- pause_button: {
- keywords: [ "pause", "blue-square" ],
- "char": "\u23f8",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- next_track_button: {
- keywords: [ "forward", "next", "blue-square" ],
- "char": "\u23ed",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- stop_button: {
- keywords: [ "blue-square" ],
- "char": "\u23f9",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- record_button: {
- keywords: [ "blue-square" ],
- "char": "\u23fa",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- play_or_pause_button: {
- keywords: [ "blue-square", "play", "pause" ],
- "char": "\u23ef",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- previous_track_button: {
- keywords: [ "backward" ],
- "char": "\u23ee",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- fast_forward: {
- keywords: [ "blue-square", "play", "speed", "continue" ],
- "char": "\u23e9",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- rewind: {
- keywords: [ "play", "blue-square" ],
- "char": "\u23ea",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- twisted_rightwards_arrows: {
- keywords: [ "blue-square", "shuffle", "music", "random" ],
- "char": "\ud83d\udd00",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- repeat: {
- keywords: [ "loop", "record" ],
- "char": "\ud83d\udd01",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- repeat_one: {
- keywords: [ "blue-square", "loop" ],
- "char": "\ud83d\udd02",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_backward: {
- keywords: [ "blue-square", "left", "direction" ],
- "char": "\u25c0\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_up_small: {
- keywords: [ "blue-square", "triangle", "direction", "point", "forward", "top" ],
- "char": "\ud83d\udd3c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_down_small: {
- keywords: [ "blue-square", "direction", "bottom" ],
- "char": "\ud83d\udd3d",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_double_up: {
- keywords: [ "blue-square", "direction", "top" ],
- "char": "\u23eb",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_double_down: {
- keywords: [ "blue-square", "direction", "bottom" ],
- "char": "\u23ec",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_right: {
- keywords: [ "blue-square", "next" ],
- "char": "\u27a1\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_left: {
- keywords: [ "blue-square", "previous", "back" ],
- "char": "\u2b05\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_up: {
- keywords: [ "blue-square", "continue", "top", "direction" ],
- "char": "\u2b06\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_down: {
- keywords: [ "blue-square", "direction", "bottom" ],
- "char": "\u2b07\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_upper_right: {
- keywords: [ "blue-square", "point", "direction", "diagonal", "northeast" ],
- "char": "\u2197\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_lower_right: {
- keywords: [ "blue-square", "direction", "diagonal", "southeast" ],
- "char": "\u2198\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_lower_left: {
- keywords: [ "blue-square", "direction", "diagonal", "southwest" ],
- "char": "\u2199\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_upper_left: {
- keywords: [ "blue-square", "point", "direction", "diagonal", "northwest" ],
- "char": "\u2196\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_up_down: {
- keywords: [ "blue-square", "direction", "way", "vertical" ],
- "char": "\u2195\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- left_right_arrow: {
- keywords: [ "shape", "direction", "horizontal", "sideways" ],
- "char": "\u2194\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrows_counterclockwise: {
- keywords: [ "blue-square", "sync", "cycle" ],
- "char": "\ud83d\udd04",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_right_hook: {
- keywords: [ "blue-square", "return", "rotate", "direction" ],
- "char": "\u21aa\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- leftwards_arrow_with_hook: {
- keywords: [ "back", "return", "blue-square", "undo", "enter" ],
- "char": "\u21a9\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_heading_up: {
- keywords: [ "blue-square", "direction", "top" ],
- "char": "\u2934\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrow_heading_down: {
- keywords: [ "blue-square", "direction", "bottom" ],
- "char": "\u2935\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- hash: {
- keywords: [ "symbol", "blue-square", "twitter" ],
- "char": "#\ufe0f\u20e3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- information_source: {
- keywords: [ "blue-square", "alphabet", "letter" ],
- "char": "\u2139\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- abc: {
- keywords: [ "blue-square", "alphabet" ],
- "char": "\ud83d\udd24",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- abcd: {
- keywords: [ "blue-square", "alphabet" ],
- "char": "\ud83d\udd21",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- capital_abcd: {
- keywords: [ "alphabet", "words", "blue-square" ],
- "char": "\ud83d\udd20",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- symbols: {
- keywords: [ "blue-square", "music", "note", "ampersand", "percent", "glyphs", "characters" ],
- "char": "\ud83d\udd23",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- musical_note: {
- keywords: [ "score", "tone", "sound" ],
- "char": "\ud83c\udfb5",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- notes: {
- keywords: [ "music", "score" ],
- "char": "\ud83c\udfb6",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- wavy_dash: {
- keywords: [ "draw", "line", "moustache", "mustache", "squiggle", "scribble" ],
- "char": "\u3030\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- curly_loop: {
- keywords: [ "scribble", "draw", "shape", "squiggle" ],
- "char": "\u27b0",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heavy_check_mark: {
- keywords: [ "ok", "nike", "answer", "yes", "tick" ],
- "char": "\u2714\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- arrows_clockwise: {
- keywords: [ "sync", "cycle", "round", "repeat" ],
- "char": "\ud83d\udd03",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heavy_plus_sign: {
- keywords: [ "math", "calculation", "addition", "more", "increase" ],
- "char": "\u2795",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heavy_minus_sign: {
- keywords: [ "math", "calculation", "subtract", "less" ],
- "char": "\u2796",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heavy_division_sign: {
- keywords: [ "divide", "math", "calculation" ],
- "char": "\u2797",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heavy_multiplication_x: {
- keywords: [ "math", "calculation" ],
- "char": "\u2716\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- heavy_dollar_sign: {
- keywords: [ "money", "sales", "payment", "currency", "buck" ],
- "char": "\ud83d\udcb2",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- currency_exchange: {
- keywords: [ "money", "sales", "dollar", "travel" ],
- "char": "\ud83d\udcb1",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- copyright: {
- keywords: [ "ip", "license", "circle", "law", "legal" ],
- "char": "\xa9\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- registered: {
- keywords: [ "alphabet", "circle" ],
- "char": "\xae\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- tm: {
- keywords: [ "trademark", "brand", "law", "legal" ],
- "char": "\u2122\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- end: {
- keywords: [ "words", "arrow" ],
- "char": "\ud83d\udd1a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- back: {
- keywords: [ "arrow", "words", "return" ],
- "char": "\ud83d\udd19",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- on: {
- keywords: [ "arrow", "words" ],
- "char": "\ud83d\udd1b",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- top: {
- keywords: [ "words", "blue-square" ],
- "char": "\ud83d\udd1d",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- soon: {
- keywords: [ "arrow", "words" ],
- "char": "\ud83d\udd1c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- ballot_box_with_check: {
- keywords: [ "ok", "agree", "confirm", "black-square", "vote", "election", "yes", "tick" ],
- "char": "\u2611\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- radio_button: {
- keywords: [ "input", "old", "music", "circle" ],
- "char": "\ud83d\udd18",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_circle: {
- keywords: [ "shape", "round" ],
- "char": "\u26aa",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_circle: {
- keywords: [ "shape", "button", "round" ],
- "char": "\u26ab",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- red_circle: {
- keywords: [ "shape", "error", "danger" ],
- "char": "\ud83d\udd34",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- large_blue_circle: {
- keywords: [ "shape", "icon", "button" ],
- "char": "\ud83d\udd35",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- small_orange_diamond: {
- keywords: [ "shape", "jewel", "gem" ],
- "char": "\ud83d\udd38",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- small_blue_diamond: {
- keywords: [ "shape", "jewel", "gem" ],
- "char": "\ud83d\udd39",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- large_orange_diamond: {
- keywords: [ "shape", "jewel", "gem" ],
- "char": "\ud83d\udd36",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- large_blue_diamond: {
- keywords: [ "shape", "jewel", "gem" ],
- "char": "\ud83d\udd37",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- small_red_triangle: {
- keywords: [ "shape", "direction", "up", "top" ],
- "char": "\ud83d\udd3a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_small_square: {
- keywords: [ "shape", "icon" ],
- "char": "\u25aa\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_small_square: {
- keywords: [ "shape", "icon" ],
- "char": "\u25ab\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_large_square: {
- keywords: [ "shape", "icon", "button" ],
- "char": "\u2b1b",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_large_square: {
- keywords: [ "shape", "icon", "stone", "button" ],
- "char": "\u2b1c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- small_red_triangle_down: {
- keywords: [ "shape", "direction", "bottom" ],
- "char": "\ud83d\udd3b",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_medium_square: {
- keywords: [ "shape", "button", "icon" ],
- "char": "\u25fc\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_medium_square: {
- keywords: [ "shape", "stone", "icon" ],
- "char": "\u25fb\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_medium_small_square: {
- keywords: [ "icon", "shape", "button" ],
- "char": "\u25fe",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_medium_small_square: {
- keywords: [ "shape", "stone", "icon", "button" ],
- "char": "\u25fd",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_square_button: {
- keywords: [ "shape", "input", "frame" ],
- "char": "\ud83d\udd32",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- white_square_button: {
- keywords: [ "shape", "input" ],
- "char": "\ud83d\udd33",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- speaker: {
- keywords: [ "sound", "volume", "silence", "broadcast" ],
- "char": "\ud83d\udd08",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- sound: {
- keywords: [ "volume", "speaker", "broadcast" ],
- "char": "\ud83d\udd09",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- loud_sound: {
- keywords: [ "volume", "noise", "noisy", "speaker", "broadcast" ],
- "char": "\ud83d\udd0a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- mute: {
- keywords: [ "sound", "volume", "silence", "quiet" ],
- "char": "\ud83d\udd07",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- mega: {
- keywords: [ "sound", "speaker", "volume" ],
- "char": "\ud83d\udce3",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- loudspeaker: {
- keywords: [ "volume", "sound" ],
- "char": "\ud83d\udce2",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- bell: {
- keywords: [ "sound", "notification", "christmas", "xmas", "chime" ],
- "char": "\ud83d\udd14",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- no_bell: {
- keywords: [ "sound", "volume", "mute", "quiet", "silent" ],
- "char": "\ud83d\udd15",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- black_joker: {
- keywords: [ "poker", "cards", "game", "play", "magic" ],
- "char": "\ud83c\udccf",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- mahjong: {
- keywords: [ "game", "play", "chinese", "kanji" ],
- "char": "\ud83c\udc04",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- spades: {
- keywords: [ "poker", "cards", "suits", "magic" ],
- "char": "\u2660\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clubs: {
- keywords: [ "poker", "cards", "magic", "suits" ],
- "char": "\u2663\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- hearts: {
- keywords: [ "poker", "cards", "magic", "suits" ],
- "char": "\u2665\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- diamonds: {
- keywords: [ "poker", "cards", "magic", "suits" ],
- "char": "\u2666\ufe0f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- flower_playing_cards: {
- keywords: [ "game", "sunset", "red" ],
- "char": "\ud83c\udfb4",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- thought_balloon: {
- keywords: [ "bubble", "cloud", "speech", "thinking", "dream" ],
- "char": "\ud83d\udcad",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- right_anger_bubble: {
- keywords: [ "caption", "speech", "thinking", "mad" ],
- "char": "\ud83d\uddef",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- speech_balloon: {
- keywords: [ "bubble", "words", "message", "talk", "chatting" ],
- "char": "\ud83d\udcac",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- left_speech_bubble: {
- keywords: [ "words", "message", "talk", "chatting" ],
- "char": "\ud83d\udde8",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock1: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd50",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock2: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd51",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock3: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd52",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock4: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd53",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock5: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd54",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock6: {
- keywords: [ "time", "late", "early", "schedule", "dawn", "dusk" ],
- "char": "\ud83d\udd55",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock7: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd56",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock8: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd57",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock9: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd58",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock10: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd59",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock11: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd5a",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock12: {
- keywords: [ "time", "noon", "midnight", "midday", "late", "early", "schedule" ],
- "char": "\ud83d\udd5b",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock130: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd5c",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock230: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd5d",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock330: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd5e",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock430: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd5f",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock530: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd60",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock630: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd61",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock730: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd62",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock830: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd63",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock930: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd64",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock1030: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd65",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock1130: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd66",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- clock1230: {
- keywords: [ "time", "late", "early", "schedule" ],
- "char": "\ud83d\udd67",
- fitzpatrick_scale: false,
- category: "symbols"
- },
- afghanistan: {
- keywords: [ "af", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- aland_islands: {
- keywords: [ "\xc5land", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddfd",
- fitzpatrick_scale: false,
- category: "flags"
- },
- albania: {
- keywords: [ "al", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- algeria: {
- keywords: [ "dz", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde9\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- american_samoa: {
- keywords: [ "american", "ws", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- andorra: {
- keywords: [ "ad", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- angola: {
- keywords: [ "ao", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- anguilla: {
- keywords: [ "ai", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- antarctica: {
- keywords: [ "aq", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddf6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- antigua_barbuda: {
- keywords: [ "antigua", "barbuda", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- argentina: {
- keywords: [ "ar", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- armenia: {
- keywords: [ "am", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- aruba: {
- keywords: [ "aw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- australia: {
- keywords: [ "au", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- austria: {
- keywords: [ "at", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- azerbaijan: {
- keywords: [ "az", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bahamas: {
- keywords: [ "bs", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bahrain: {
- keywords: [ "bh", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bangladesh: {
- keywords: [ "bd", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- barbados: {
- keywords: [ "bb", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\udde7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- belarus: {
- keywords: [ "by", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- belgium: {
- keywords: [ "be", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- belize: {
- keywords: [ "bz", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- benin: {
- keywords: [ "bj", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddef",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bermuda: {
- keywords: [ "bm", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bhutan: {
- keywords: [ "bt", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bolivia: {
- keywords: [ "bo", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- caribbean_netherlands: {
- keywords: [ "bonaire", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bosnia_herzegovina: {
- keywords: [ "bosnia", "herzegovina", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- botswana: {
- keywords: [ "bw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- brazil: {
- keywords: [ "br", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- british_indian_ocean_territory: {
- keywords: [ "british", "indian", "ocean", "territory", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- british_virgin_islands: {
- keywords: [ "british", "virgin", "islands", "bvi", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfb\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- brunei: {
- keywords: [ "bn", "darussalam", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- bulgaria: {
- keywords: [ "bg", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- burkina_faso: {
- keywords: [ "burkina", "faso", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- burundi: {
- keywords: [ "bi", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cape_verde: {
- keywords: [ "cabo", "verde", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddfb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cambodia: {
- keywords: [ "kh", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cameroon: {
- keywords: [ "cm", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- canada: {
- keywords: [ "ca", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- canary_islands: {
- keywords: [ "canary", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cayman_islands: {
- keywords: [ "cayman", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- central_african_republic: {
- keywords: [ "central", "african", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- chad: {
- keywords: [ "td", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- chile: {
- keywords: [ "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cn: {
- keywords: [ "china", "chinese", "prc", "flag", "country", "nation", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- christmas_island: {
- keywords: [ "christmas", "island", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddfd",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cocos_islands: {
- keywords: [ "cocos", "keeling", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- colombia: {
- keywords: [ "co", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- comoros: {
- keywords: [ "km", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- congo_brazzaville: {
- keywords: [ "congo", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- congo_kinshasa: {
- keywords: [ "congo", "democratic", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cook_islands: {
- keywords: [ "cook", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- costa_rica: {
- keywords: [ "costa", "rica", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- croatia: {
- keywords: [ "hr", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udded\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cuba: {
- keywords: [ "cu", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- curacao: {
- keywords: [ "cura\xe7ao", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cyprus: {
- keywords: [ "cy", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- czech_republic: {
- keywords: [ "cz", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- denmark: {
- keywords: [ "dk", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde9\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- djibouti: {
- keywords: [ "dj", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde9\ud83c\uddef",
- fitzpatrick_scale: false,
- category: "flags"
- },
- dominica: {
- keywords: [ "dm", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde9\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- dominican_republic: {
- keywords: [ "dominican", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde9\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- ecuador: {
- keywords: [ "ec", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddea\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- egypt: {
- keywords: [ "eg", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddea\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- el_salvador: {
- keywords: [ "el", "salvador", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddfb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- equatorial_guinea: {
- keywords: [ "equatorial", "gn", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- eritrea: {
- keywords: [ "er", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddea\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- estonia: {
- keywords: [ "ee", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddea\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- ethiopia: {
- keywords: [ "et", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddea\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- eu: {
- keywords: [ "european", "union", "flag", "banner" ],
- "char": "\ud83c\uddea\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- falkland_islands: {
- keywords: [ "falkland", "islands", "malvinas", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddeb\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- faroe_islands: {
- keywords: [ "faroe", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddeb\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- fiji: {
- keywords: [ "fj", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddeb\ud83c\uddef",
- fitzpatrick_scale: false,
- category: "flags"
- },
- finland: {
- keywords: [ "fi", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddeb\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- fr: {
- keywords: [ "banner", "flag", "nation", "france", "french", "country" ],
- "char": "\ud83c\uddeb\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- french_guiana: {
- keywords: [ "french", "guiana", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- french_polynesia: {
- keywords: [ "french", "polynesia", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- french_southern_territories: {
- keywords: [ "french", "southern", "territories", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- gabon: {
- keywords: [ "ga", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- gambia: {
- keywords: [ "gm", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- georgia: {
- keywords: [ "ge", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- de: {
- keywords: [ "german", "nation", "flag", "country", "banner" ],
- "char": "\ud83c\udde9\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- ghana: {
- keywords: [ "gh", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- gibraltar: {
- keywords: [ "gi", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- greece: {
- keywords: [ "gr", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- greenland: {
- keywords: [ "gl", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- grenada: {
- keywords: [ "gd", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- guadeloupe: {
- keywords: [ "gp", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf5",
- fitzpatrick_scale: false,
- category: "flags"
- },
- guam: {
- keywords: [ "gu", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- guatemala: {
- keywords: [ "gt", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- guernsey: {
- keywords: [ "gg", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- guinea: {
- keywords: [ "gn", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- guinea_bissau: {
- keywords: [ "gw", "bissau", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- guyana: {
- keywords: [ "gy", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- haiti: {
- keywords: [ "ht", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udded\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- honduras: {
- keywords: [ "hn", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udded\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- hong_kong: {
- keywords: [ "hong", "kong", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udded\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- hungary: {
- keywords: [ "hu", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udded\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- iceland: {
- keywords: [ "is", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- india: {
- keywords: [ "in", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- indonesia: {
- keywords: [ "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- iran: {
- keywords: [ "iran,", "islamic", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- iraq: {
- keywords: [ "iq", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- ireland: {
- keywords: [ "ie", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- isle_of_man: {
- keywords: [ "isle", "man", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- israel: {
- keywords: [ "il", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- it: {
- keywords: [ "italy", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddee\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- cote_divoire: {
- keywords: [ "ivory", "coast", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- jamaica: {
- keywords: [ "jm", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddef\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- jp: {
- keywords: [ "japanese", "nation", "flag", "country", "banner" ],
- "char": "\ud83c\uddef\ud83c\uddf5",
- fitzpatrick_scale: false,
- category: "flags"
- },
- jersey: {
- keywords: [ "je", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddef\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- jordan: {
- keywords: [ "jo", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddef\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- kazakhstan: {
- keywords: [ "kz", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- kenya: {
- keywords: [ "ke", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- kiribati: {
- keywords: [ "ki", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- kosovo: {
- keywords: [ "xk", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfd\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- kuwait: {
- keywords: [ "kw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- kyrgyzstan: {
- keywords: [ "kg", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- laos: {
- keywords: [ "lao", "democratic", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- latvia: {
- keywords: [ "lv", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddfb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- lebanon: {
- keywords: [ "lb", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\udde7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- lesotho: {
- keywords: [ "ls", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- liberia: {
- keywords: [ "lr", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- libya: {
- keywords: [ "ly", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- liechtenstein: {
- keywords: [ "li", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- lithuania: {
- keywords: [ "lt", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- luxembourg: {
- keywords: [ "lu", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- macau: {
- keywords: [ "macao", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- macedonia: {
- keywords: [ "macedonia,", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- madagascar: {
- keywords: [ "mg", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- malawi: {
- keywords: [ "mw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- malaysia: {
- keywords: [ "my", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- maldives: {
- keywords: [ "mv", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddfb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- mali: {
- keywords: [ "ml", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- malta: {
- keywords: [ "mt", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- marshall_islands: {
- keywords: [ "marshall", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- martinique: {
- keywords: [ "mq", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- mauritania: {
- keywords: [ "mr", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- mauritius: {
- keywords: [ "mu", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- mayotte: {
- keywords: [ "yt", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfe\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- mexico: {
- keywords: [ "mx", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddfd",
- fitzpatrick_scale: false,
- category: "flags"
- },
- micronesia: {
- keywords: [ "micronesia,", "federated", "states", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddeb\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- moldova: {
- keywords: [ "moldova,", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- monaco: {
- keywords: [ "mc", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- mongolia: {
- keywords: [ "mn", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- montenegro: {
- keywords: [ "me", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- montserrat: {
- keywords: [ "ms", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- morocco: {
- keywords: [ "ma", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- mozambique: {
- keywords: [ "mz", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- myanmar: {
- keywords: [ "mm", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- namibia: {
- keywords: [ "na", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- nauru: {
- keywords: [ "nr", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- nepal: {
- keywords: [ "np", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddf5",
- fitzpatrick_scale: false,
- category: "flags"
- },
- netherlands: {
- keywords: [ "nl", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- new_caledonia: {
- keywords: [ "new", "caledonia", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- new_zealand: {
- keywords: [ "new", "zealand", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- nicaragua: {
- keywords: [ "ni", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- niger: {
- keywords: [ "ne", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- nigeria: {
- keywords: [ "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- niue: {
- keywords: [ "nu", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- norfolk_island: {
- keywords: [ "norfolk", "island", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- northern_mariana_islands: {
- keywords: [ "northern", "mariana", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf2\ud83c\uddf5",
- fitzpatrick_scale: false,
- category: "flags"
- },
- north_korea: {
- keywords: [ "north", "korea", "nation", "flag", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddf5",
- fitzpatrick_scale: false,
- category: "flags"
- },
- norway: {
- keywords: [ "no", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf3\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- oman: {
- keywords: [ "om_symbol", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf4\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- pakistan: {
- keywords: [ "pk", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- palau: {
- keywords: [ "pw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- palestinian_territories: {
- keywords: [ "palestine", "palestinian", "territories", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- panama: {
- keywords: [ "pa", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- papua_new_guinea: {
- keywords: [ "papua", "new", "guinea", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- paraguay: {
- keywords: [ "py", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- peru: {
- keywords: [ "pe", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- philippines: {
- keywords: [ "ph", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- pitcairn_islands: {
- keywords: [ "pitcairn", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- poland: {
- keywords: [ "pl", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- portugal: {
- keywords: [ "pt", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- puerto_rico: {
- keywords: [ "puerto", "rico", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- qatar: {
- keywords: [ "qa", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf6\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- reunion: {
- keywords: [ "r\xe9union", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf7\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- romania: {
- keywords: [ "ro", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf7\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- ru: {
- keywords: [ "russian", "federation", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf7\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- rwanda: {
- keywords: [ "rw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf7\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- st_barthelemy: {
- keywords: [ "saint", "barth\xe9lemy", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde7\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- st_helena: {
- keywords: [ "saint", "helena", "ascension", "tristan", "cunha", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- st_kitts_nevis: {
- keywords: [ "saint", "kitts", "nevis", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- st_lucia: {
- keywords: [ "saint", "lucia", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- st_pierre_miquelon: {
- keywords: [ "saint", "pierre", "miquelon", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf5\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- st_vincent_grenadines: {
- keywords: [ "saint", "vincent", "grenadines", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfb\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- samoa: {
- keywords: [ "ws", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfc\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- san_marino: {
- keywords: [ "san", "marino", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- sao_tome_principe: {
- keywords: [ "sao", "tome", "principe", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- saudi_arabia: {
- keywords: [ "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- senegal: {
- keywords: [ "sn", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- serbia: {
- keywords: [ "rs", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf7\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- seychelles: {
- keywords: [ "sc", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- sierra_leone: {
- keywords: [ "sierra", "leone", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- singapore: {
- keywords: [ "sg", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- sint_maarten: {
- keywords: [ "sint", "maarten", "dutch", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddfd",
- fitzpatrick_scale: false,
- category: "flags"
- },
- slovakia: {
- keywords: [ "sk", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- slovenia: {
- keywords: [ "si", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- solomon_islands: {
- keywords: [ "solomon", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\udde7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- somalia: {
- keywords: [ "so", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- south_africa: {
- keywords: [ "south", "africa", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddff\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- south_georgia_south_sandwich_islands: {
- keywords: [ "south", "georgia", "sandwich", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddec\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- kr: {
- keywords: [ "south", "korea", "nation", "flag", "country", "banner" ],
- "char": "\ud83c\uddf0\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- south_sudan: {
- keywords: [ "south", "sd", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- es: {
- keywords: [ "spain", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddea\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- sri_lanka: {
- keywords: [ "sri", "lanka", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf1\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- sudan: {
- keywords: [ "sd", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\udde9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- suriname: {
- keywords: [ "sr", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- swaziland: {
- keywords: [ "sz", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- sweden: {
- keywords: [ "se", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- switzerland: {
- keywords: [ "ch", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde8\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- syria: {
- keywords: [ "syrian", "arab", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf8\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- taiwan: {
- keywords: [ "tw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- },
- tajikistan: {
- keywords: [ "tj", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddef",
- fitzpatrick_scale: false,
- category: "flags"
- },
- tanzania: {
- keywords: [ "tanzania,", "united", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- thailand: {
- keywords: [ "th", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- timor_leste: {
- keywords: [ "timor", "leste", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddf1",
- fitzpatrick_scale: false,
- category: "flags"
- },
- togo: {
- keywords: [ "tg", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- tokelau: {
- keywords: [ "tk", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddf0",
- fitzpatrick_scale: false,
- category: "flags"
- },
- tonga: {
- keywords: [ "to", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddf4",
- fitzpatrick_scale: false,
- category: "flags"
- },
- trinidad_tobago: {
- keywords: [ "trinidad", "tobago", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddf9",
- fitzpatrick_scale: false,
- category: "flags"
- },
- tunisia: {
- keywords: [ "tn", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- tr: {
- keywords: [ "turkey", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddf7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- turkmenistan: {
- keywords: [ "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- turks_caicos_islands: {
- keywords: [ "turks", "caicos", "islands", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\udde8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- tuvalu: {
- keywords: [ "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddf9\ud83c\uddfb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- uganda: {
- keywords: [ "ug", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfa\ud83c\uddec",
- fitzpatrick_scale: false,
- category: "flags"
- },
- ukraine: {
- keywords: [ "ua", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfa\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- united_arab_emirates: {
- keywords: [ "united", "arab", "emirates", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\udde6\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- uk: {
- keywords: [ "united", "kingdom", "great", "britain", "northern", "ireland", "flag", "nation", "country", "banner", "british", "UK", "english", "england", "union jack" ],
- "char": "\ud83c\uddec\ud83c\udde7",
- fitzpatrick_scale: false,
- category: "flags"
- },
- england: {
- keywords: [ "flag", "english" ],
- "char": "\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f",
- fitzpatrick_scale: false,
- category: "flags"
- },
- scotland: {
- keywords: [ "flag", "scottish" ],
- "char": "\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f",
- fitzpatrick_scale: false,
- category: "flags"
- },
- wales: {
- keywords: [ "flag", "welsh" ],
- "char": "\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f",
- fitzpatrick_scale: false,
- category: "flags"
- },
- us: {
- keywords: [ "united", "states", "america", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfa\ud83c\uddf8",
- fitzpatrick_scale: false,
- category: "flags"
- },
- us_virgin_islands: {
- keywords: [ "virgin", "islands", "us", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfb\ud83c\uddee",
- fitzpatrick_scale: false,
- category: "flags"
- },
- uruguay: {
- keywords: [ "uy", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfa\ud83c\uddfe",
- fitzpatrick_scale: false,
- category: "flags"
- },
- uzbekistan: {
- keywords: [ "uz", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfa\ud83c\uddff",
- fitzpatrick_scale: false,
- category: "flags"
- },
- vanuatu: {
- keywords: [ "vu", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfb\ud83c\uddfa",
- fitzpatrick_scale: false,
- category: "flags"
- },
- vatican_city: {
- keywords: [ "vatican", "city", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfb\ud83c\udde6",
- fitzpatrick_scale: false,
- category: "flags"
- },
- venezuela: {
- keywords: [ "ve", "bolivarian", "republic", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfb\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- vietnam: {
- keywords: [ "viet", "nam", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfb\ud83c\uddf3",
- fitzpatrick_scale: false,
- category: "flags"
- },
- wallis_futuna: {
- keywords: [ "wallis", "futuna", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfc\ud83c\uddeb",
- fitzpatrick_scale: false,
- category: "flags"
- },
- western_sahara: {
- keywords: [ "western", "sahara", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddea\ud83c\udded",
- fitzpatrick_scale: false,
- category: "flags"
- },
- yemen: {
- keywords: [ "ye", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddfe\ud83c\uddea",
- fitzpatrick_scale: false,
- category: "flags"
- },
- zambia: {
- keywords: [ "zm", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddff\ud83c\uddf2",
- fitzpatrick_scale: false,
- category: "flags"
- },
- zimbabwe: {
- keywords: [ "zw", "flag", "nation", "country", "banner" ],
- "char": "\ud83c\uddff\ud83c\uddfc",
- fitzpatrick_scale: false,
- category: "flags"
- }
-});
\ No newline at end of file
+++ /dev/null
-// NOTE: Source: npm package: emojilib, file:emojis.json
-window.tinymce.Resource.add("tinymce.plugins.emoticons",{grinning:{keywords:["face","smile","happy","joy",":D","grin"],"char":"\ud83d\ude00",fitzpatrick_scale:!1,category:"people"},grimacing:{keywords:["face","grimace","teeth"],"char":"\ud83d\ude2c",fitzpatrick_scale:!1,category:"people"},grin:{keywords:["face","happy","smile","joy","kawaii"],"char":"\ud83d\ude01",fitzpatrick_scale:!1,category:"people"},joy:{keywords:["face","cry","tears","weep","happy","happytears","haha"],"char":"\ud83d\ude02",fitzpatrick_scale:!1,category:"people"},rofl:{keywords:["face","rolling","floor","laughing","lol","haha"],"char":"\ud83e\udd23",fitzpatrick_scale:!1,category:"people"},smiley:{keywords:["face","happy","joy","haha",":D",":)","smile","funny"],"char":"\ud83d\ude03",fitzpatrick_scale:!1,category:"people"},smile:{keywords:["face","happy","joy","funny","haha","laugh","like",":D",":)"],"char":"\ud83d\ude04",fitzpatrick_scale:!1,category:"people"},sweat_smile:{keywords:["face","hot","happy","laugh","sweat","smile","relief"],"char":"\ud83d\ude05",fitzpatrick_scale:!1,category:"people"},laughing:{keywords:["happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],"char":"\ud83d\ude06",fitzpatrick_scale:!1,category:"people"},innocent:{keywords:["face","angel","heaven","halo"],"char":"\ud83d\ude07",fitzpatrick_scale:!1,category:"people"},wink:{keywords:["face","happy","mischievous","secret",";)","smile","eye"],"char":"\ud83d\ude09",fitzpatrick_scale:!1,category:"people"},blush:{keywords:["face","smile","happy","flushed","crush","embarrassed","shy","joy"],"char":"\ud83d\ude0a",fitzpatrick_scale:!1,category:"people"},slightly_smiling_face:{keywords:["face","smile"],"char":"\ud83d\ude42",fitzpatrick_scale:!1,category:"people"},upside_down_face:{keywords:["face","flipped","silly","smile"],"char":"\ud83d\ude43",fitzpatrick_scale:!1,category:"people"},relaxed:{keywords:["face","blush","massage","happiness"],"char":"\u263a\ufe0f",fitzpatrick_scale:!1,category:"people"},yum:{keywords:["happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"],"char":"\ud83d\ude0b",fitzpatrick_scale:!1,category:"people"},relieved:{keywords:["face","relaxed","phew","massage","happiness"],"char":"\ud83d\ude0c",fitzpatrick_scale:!1,category:"people"},heart_eyes:{keywords:["face","love","like","affection","valentines","infatuation","crush","heart"],"char":"\ud83d\ude0d",fitzpatrick_scale:!1,category:"people"},kissing_heart:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],"char":"\ud83d\ude18",fitzpatrick_scale:!1,category:"people"},kissing:{keywords:["love","like","face","3","valentines","infatuation","kiss"],"char":"\ud83d\ude17",fitzpatrick_scale:!1,category:"people"},kissing_smiling_eyes:{keywords:["face","affection","valentines","infatuation","kiss"],"char":"\ud83d\ude19",fitzpatrick_scale:!1,category:"people"},kissing_closed_eyes:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],"char":"\ud83d\ude1a",fitzpatrick_scale:!1,category:"people"},stuck_out_tongue_winking_eye:{keywords:["face","prank","childish","playful","mischievous","smile","wink","tongue"],"char":"\ud83d\ude1c",fitzpatrick_scale:!1,category:"people"},zany:{keywords:["face","goofy","crazy"],"char":"\ud83e\udd2a",fitzpatrick_scale:!1,category:"people"},raised_eyebrow:{keywords:["face","distrust","scepticism","disapproval","disbelief","surprise"],"char":"\ud83e\udd28",fitzpatrick_scale:!1,category:"people"},monocle:{keywords:["face","stuffy","wealthy"],"char":"\ud83e\uddd0",fitzpatrick_scale:!1,category:"people"},stuck_out_tongue_closed_eyes:{keywords:["face","prank","playful","mischievous","smile","tongue"],"char":"\ud83d\ude1d",fitzpatrick_scale:!1,category:"people"},stuck_out_tongue:{keywords:["face","prank","childish","playful","mischievous","smile","tongue"],"char":"\ud83d\ude1b",fitzpatrick_scale:!1,category:"people"},money_mouth_face:{keywords:["face","rich","dollar","money"],"char":"\ud83e\udd11",fitzpatrick_scale:!1,category:"people"},nerd_face:{keywords:["face","nerdy","geek","dork"],"char":"\ud83e\udd13",fitzpatrick_scale:!1,category:"people"},sunglasses:{keywords:["face","cool","smile","summer","beach","sunglass"],"char":"\ud83d\ude0e",fitzpatrick_scale:!1,category:"people"},star_struck:{keywords:["face","smile","starry","eyes","grinning"],"char":"\ud83e\udd29",fitzpatrick_scale:!1,category:"people"},clown_face:{keywords:["face"],"char":"\ud83e\udd21",fitzpatrick_scale:!1,category:"people"},cowboy_hat_face:{keywords:["face","cowgirl","hat"],"char":"\ud83e\udd20",fitzpatrick_scale:!1,category:"people"},hugs:{keywords:["face","smile","hug"],"char":"\ud83e\udd17",fitzpatrick_scale:!1,category:"people"},smirk:{keywords:["face","smile","mean","prank","smug","sarcasm"],"char":"\ud83d\ude0f",fitzpatrick_scale:!1,category:"people"},no_mouth:{keywords:["face","hellokitty"],"char":"\ud83d\ude36",fitzpatrick_scale:!1,category:"people"},neutral_face:{keywords:["indifference","meh",":|","neutral"],"char":"\ud83d\ude10",fitzpatrick_scale:!1,category:"people"},expressionless:{keywords:["face","indifferent","-_-","meh","deadpan"],"char":"\ud83d\ude11",fitzpatrick_scale:!1,category:"people"},unamused:{keywords:["indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","side_eye"],"char":"\ud83d\ude12",fitzpatrick_scale:!1,category:"people"},roll_eyes:{keywords:["face","eyeroll","frustrated"],"char":"\ud83d\ude44",fitzpatrick_scale:!1,category:"people"},thinking:{keywords:["face","hmmm","think","consider"],"char":"\ud83e\udd14",fitzpatrick_scale:!1,category:"people"},lying_face:{keywords:["face","lie","pinocchio"],"char":"\ud83e\udd25",fitzpatrick_scale:!1,category:"people"},hand_over_mouth:{keywords:["face","whoops","shock","surprise"],"char":"\ud83e\udd2d",fitzpatrick_scale:!1,category:"people"},shushing:{keywords:["face","quiet","shhh"],"char":"\ud83e\udd2b",fitzpatrick_scale:!1,category:"people"},symbols_over_mouth:{keywords:["face","swearing","cursing","cussing","profanity","expletive"],"char":"\ud83e\udd2c",fitzpatrick_scale:!1,category:"people"},exploding_head:{keywords:["face","shocked","mind","blown"],"char":"\ud83e\udd2f",fitzpatrick_scale:!1,category:"people"},flushed:{keywords:["face","blush","shy","flattered"],"char":"\ud83d\ude33",fitzpatrick_scale:!1,category:"people"},disappointed:{keywords:["face","sad","upset","depressed",":("],"char":"\ud83d\ude1e",fitzpatrick_scale:!1,category:"people"},worried:{keywords:["face","concern","nervous",":("],"char":"\ud83d\ude1f",fitzpatrick_scale:!1,category:"people"},angry:{keywords:["mad","face","annoyed","frustrated"],"char":"\ud83d\ude20",fitzpatrick_scale:!1,category:"people"},rage:{keywords:["angry","mad","hate","despise"],"char":"\ud83d\ude21",fitzpatrick_scale:!1,category:"people"},pensive:{keywords:["face","sad","depressed","upset"],"char":"\ud83d\ude14",fitzpatrick_scale:!1,category:"people"},confused:{keywords:["face","indifference","huh","weird","hmmm",":/"],"char":"\ud83d\ude15",fitzpatrick_scale:!1,category:"people"},slightly_frowning_face:{keywords:["face","frowning","disappointed","sad","upset"],"char":"\ud83d\ude41",fitzpatrick_scale:!1,category:"people"},frowning_face:{keywords:["face","sad","upset","frown"],"char":"\u2639",fitzpatrick_scale:!1,category:"people"},persevere:{keywords:["face","sick","no","upset","oops"],"char":"\ud83d\ude23",fitzpatrick_scale:!1,category:"people"},confounded:{keywords:["face","confused","sick","unwell","oops",":S"],"char":"\ud83d\ude16",fitzpatrick_scale:!1,category:"people"},tired_face:{keywords:["sick","whine","upset","frustrated"],"char":"\ud83d\ude2b",fitzpatrick_scale:!1,category:"people"},weary:{keywords:["face","tired","sleepy","sad","frustrated","upset"],"char":"\ud83d\ude29",fitzpatrick_scale:!1,category:"people"},triumph:{keywords:["face","gas","phew","proud","pride"],"char":"\ud83d\ude24",fitzpatrick_scale:!1,category:"people"},open_mouth:{keywords:["face","surprise","impressed","wow","whoa",":O"],"char":"\ud83d\ude2e",fitzpatrick_scale:!1,category:"people"},scream:{keywords:["face","munch","scared","omg"],"char":"\ud83d\ude31",fitzpatrick_scale:!1,category:"people"},fearful:{keywords:["face","scared","terrified","nervous","oops","huh"],"char":"\ud83d\ude28",fitzpatrick_scale:!1,category:"people"},cold_sweat:{keywords:["face","nervous","sweat"],"char":"\ud83d\ude30",fitzpatrick_scale:!1,category:"people"},hushed:{keywords:["face","woo","shh"],"char":"\ud83d\ude2f",fitzpatrick_scale:!1,category:"people"},frowning:{keywords:["face","aw","what"],"char":"\ud83d\ude26",fitzpatrick_scale:!1,category:"people"},anguished:{keywords:["face","stunned","nervous"],"char":"\ud83d\ude27",fitzpatrick_scale:!1,category:"people"},cry:{keywords:["face","tears","sad","depressed","upset",":'("],"char":"\ud83d\ude22",fitzpatrick_scale:!1,category:"people"},disappointed_relieved:{keywords:["face","phew","sweat","nervous"],"char":"\ud83d\ude25",fitzpatrick_scale:!1,category:"people"},drooling_face:{keywords:["face"],"char":"\ud83e\udd24",fitzpatrick_scale:!1,category:"people"},sleepy:{keywords:["face","tired","rest","nap"],"char":"\ud83d\ude2a",fitzpatrick_scale:!1,category:"people"},sweat:{keywords:["face","hot","sad","tired","exercise"],"char":"\ud83d\ude13",fitzpatrick_scale:!1,category:"people"},sob:{keywords:["face","cry","tears","sad","upset","depressed"],"char":"\ud83d\ude2d",fitzpatrick_scale:!1,category:"people"},dizzy_face:{keywords:["spent","unconscious","xox","dizzy"],"char":"\ud83d\ude35",fitzpatrick_scale:!1,category:"people"},astonished:{keywords:["face","xox","surprised","poisoned"],"char":"\ud83d\ude32",fitzpatrick_scale:!1,category:"people"},zipper_mouth_face:{keywords:["face","sealed","zipper","secret"],"char":"\ud83e\udd10",fitzpatrick_scale:!1,category:"people"},nauseated_face:{keywords:["face","vomit","gross","green","sick","throw up","ill"],"char":"\ud83e\udd22",fitzpatrick_scale:!1,category:"people"},sneezing_face:{keywords:["face","gesundheit","sneeze","sick","allergy"],"char":"\ud83e\udd27",fitzpatrick_scale:!1,category:"people"},vomiting:{keywords:["face","sick"],"char":"\ud83e\udd2e",fitzpatrick_scale:!1,category:"people"},mask:{keywords:["face","sick","ill","disease"],"char":"\ud83d\ude37",fitzpatrick_scale:!1,category:"people"},face_with_thermometer:{keywords:["sick","temperature","thermometer","cold","fever"],"char":"\ud83e\udd12",fitzpatrick_scale:!1,category:"people"},face_with_head_bandage:{keywords:["injured","clumsy","bandage","hurt"],"char":"\ud83e\udd15",fitzpatrick_scale:!1,category:"people"},sleeping:{keywords:["face","tired","sleepy","night","zzz"],"char":"\ud83d\ude34",fitzpatrick_scale:!1,category:"people"},zzz:{keywords:["sleepy","tired","dream"],"char":"\ud83d\udca4",fitzpatrick_scale:!1,category:"people"},poop:{keywords:["hankey","shitface","fail","turd","shit"],"char":"\ud83d\udca9",fitzpatrick_scale:!1,category:"people"},smiling_imp:{keywords:["devil","horns"],"char":"\ud83d\ude08",fitzpatrick_scale:!1,category:"people"},imp:{keywords:["devil","angry","horns"],"char":"\ud83d\udc7f",fitzpatrick_scale:!1,category:"people"},japanese_ogre:{keywords:["monster","red","mask","halloween","scary","creepy","devil","demon","japanese","ogre"],"char":"\ud83d\udc79",fitzpatrick_scale:!1,category:"people"},japanese_goblin:{keywords:["red","evil","mask","monster","scary","creepy","japanese","goblin"],"char":"\ud83d\udc7a",fitzpatrick_scale:!1,category:"people"},skull:{keywords:["dead","skeleton","creepy","death"],"char":"\ud83d\udc80",fitzpatrick_scale:!1,category:"people"},ghost:{keywords:["halloween","spooky","scary"],"char":"\ud83d\udc7b",fitzpatrick_scale:!1,category:"people"},alien:{keywords:["UFO","paul","weird","outer_space"],"char":"\ud83d\udc7d",fitzpatrick_scale:!1,category:"people"},robot:{keywords:["computer","machine","bot"],"char":"\ud83e\udd16",fitzpatrick_scale:!1,category:"people"},smiley_cat:{keywords:["animal","cats","happy","smile"],"char":"\ud83d\ude3a",fitzpatrick_scale:!1,category:"people"},smile_cat:{keywords:["animal","cats","smile"],"char":"\ud83d\ude38",fitzpatrick_scale:!1,category:"people"},joy_cat:{keywords:["animal","cats","haha","happy","tears"],"char":"\ud83d\ude39",fitzpatrick_scale:!1,category:"people"},heart_eyes_cat:{keywords:["animal","love","like","affection","cats","valentines","heart"],"char":"\ud83d\ude3b",fitzpatrick_scale:!1,category:"people"},smirk_cat:{keywords:["animal","cats","smirk"],"char":"\ud83d\ude3c",fitzpatrick_scale:!1,category:"people"},kissing_cat:{keywords:["animal","cats","kiss"],"char":"\ud83d\ude3d",fitzpatrick_scale:!1,category:"people"},scream_cat:{keywords:["animal","cats","munch","scared","scream"],"char":"\ud83d\ude40",fitzpatrick_scale:!1,category:"people"},crying_cat_face:{keywords:["animal","tears","weep","sad","cats","upset","cry"],"char":"\ud83d\ude3f",fitzpatrick_scale:!1,category:"people"},pouting_cat:{keywords:["animal","cats"],"char":"\ud83d\ude3e",fitzpatrick_scale:!1,category:"people"},palms_up:{keywords:["hands","gesture","cupped","prayer"],"char":"\ud83e\udd32",fitzpatrick_scale:!0,category:"people"},raised_hands:{keywords:["gesture","hooray","yea","celebration","hands"],"char":"\ud83d\ude4c",fitzpatrick_scale:!0,category:"people"},clap:{keywords:["hands","praise","applause","congrats","yay"],"char":"\ud83d\udc4f",fitzpatrick_scale:!0,category:"people"},wave:{keywords:["hands","gesture","goodbye","solong","farewell","hello","hi","palm"],"char":"\ud83d\udc4b",fitzpatrick_scale:!0,category:"people"},call_me_hand:{keywords:["hands","gesture"],"char":"\ud83e\udd19",fitzpatrick_scale:!0,category:"people"},"+1":{keywords:["thumbsup","yes","awesome","good","agree","accept","cool","hand","like"],"char":"\ud83d\udc4d",fitzpatrick_scale:!0,category:"people"},"-1":{keywords:["thumbsdown","no","dislike","hand"],"char":"\ud83d\udc4e",fitzpatrick_scale:!0,category:"people"},facepunch:{keywords:["angry","violence","fist","hit","attack","hand"],"char":"\ud83d\udc4a",fitzpatrick_scale:!0,category:"people"},fist:{keywords:["fingers","hand","grasp"],"char":"\u270a",fitzpatrick_scale:!0,category:"people"},fist_left:{keywords:["hand","fistbump"],"char":"\ud83e\udd1b",fitzpatrick_scale:!0,category:"people"},fist_right:{keywords:["hand","fistbump"],"char":"\ud83e\udd1c",fitzpatrick_scale:!0,category:"people"},v:{keywords:["fingers","ohyeah","hand","peace","victory","two"],"char":"\u270c",fitzpatrick_scale:!0,category:"people"},ok_hand:{keywords:["fingers","limbs","perfect","ok","okay"],"char":"\ud83d\udc4c",fitzpatrick_scale:!0,category:"people"},raised_hand:{keywords:["fingers","stop","highfive","palm","ban"],"char":"\u270b",fitzpatrick_scale:!0,category:"people"},raised_back_of_hand:{keywords:["fingers","raised","backhand"],"char":"\ud83e\udd1a",fitzpatrick_scale:!0,category:"people"},open_hands:{keywords:["fingers","butterfly","hands","open"],"char":"\ud83d\udc50",fitzpatrick_scale:!0,category:"people"},muscle:{keywords:["arm","flex","hand","summer","strong","biceps"],"char":"\ud83d\udcaa",fitzpatrick_scale:!0,category:"people"},pray:{keywords:["please","hope","wish","namaste","highfive"],"char":"\ud83d\ude4f",fitzpatrick_scale:!0,category:"people"},handshake:{keywords:["agreement","shake"],"char":"\ud83e\udd1d",fitzpatrick_scale:!1,category:"people"},point_up:{keywords:["hand","fingers","direction","up"],"char":"\u261d",fitzpatrick_scale:!0,category:"people"},point_up_2:{keywords:["fingers","hand","direction","up"],"char":"\ud83d\udc46",fitzpatrick_scale:!0,category:"people"},point_down:{keywords:["fingers","hand","direction","down"],"char":"\ud83d\udc47",fitzpatrick_scale:!0,category:"people"},point_left:{keywords:["direction","fingers","hand","left"],"char":"\ud83d\udc48",fitzpatrick_scale:!0,category:"people"},point_right:{keywords:["fingers","hand","direction","right"],"char":"\ud83d\udc49",fitzpatrick_scale:!0,category:"people"},fu:{keywords:["hand","fingers","rude","middle","flipping"],"char":"\ud83d\udd95",fitzpatrick_scale:!0,category:"people"},raised_hand_with_fingers_splayed:{keywords:["hand","fingers","palm"],"char":"\ud83d\udd90",fitzpatrick_scale:!0,category:"people"},love_you:{keywords:["hand","fingers","gesture"],"char":"\ud83e\udd1f",fitzpatrick_scale:!0,category:"people"},metal:{keywords:["hand","fingers","evil_eye","sign_of_horns","rock_on"],"char":"\ud83e\udd18",fitzpatrick_scale:!0,category:"people"},crossed_fingers:{keywords:["good","lucky"],"char":"\ud83e\udd1e",fitzpatrick_scale:!0,category:"people"},vulcan_salute:{keywords:["hand","fingers","spock","star trek"],"char":"\ud83d\udd96",fitzpatrick_scale:!0,category:"people"},writing_hand:{keywords:["lower_left_ballpoint_pen","stationery","write","compose"],"char":"\u270d",fitzpatrick_scale:!0,category:"people"},selfie:{keywords:["camera","phone"],"char":"\ud83e\udd33",fitzpatrick_scale:!0,category:"people"},nail_care:{keywords:["beauty","manicure","finger","fashion","nail"],"char":"\ud83d\udc85",fitzpatrick_scale:!0,category:"people"},lips:{keywords:["mouth","kiss"],"char":"\ud83d\udc44",fitzpatrick_scale:!1,category:"people"},tongue:{keywords:["mouth","playful"],"char":"\ud83d\udc45",fitzpatrick_scale:!1,category:"people"},ear:{keywords:["face","hear","sound","listen"],"char":"\ud83d\udc42",fitzpatrick_scale:!0,category:"people"},nose:{keywords:["smell","sniff"],"char":"\ud83d\udc43",fitzpatrick_scale:!0,category:"people"},eye:{keywords:["face","look","see","watch","stare"],"char":"\ud83d\udc41",fitzpatrick_scale:!1,category:"people"},eyes:{keywords:["look","watch","stalk","peek","see"],"char":"\ud83d\udc40",fitzpatrick_scale:!1,category:"people"},brain:{keywords:["smart","intelligent"],"char":"\ud83e\udde0",fitzpatrick_scale:!1,category:"people"},bust_in_silhouette:{keywords:["user","person","human"],"char":"\ud83d\udc64",fitzpatrick_scale:!1,category:"people"},busts_in_silhouette:{keywords:["user","person","human","group","team"],"char":"\ud83d\udc65",fitzpatrick_scale:!1,category:"people"},speaking_head:{keywords:["user","person","human","sing","say","talk"],"char":"\ud83d\udde3",fitzpatrick_scale:!1,category:"people"},baby:{keywords:["child","boy","girl","toddler"],"char":"\ud83d\udc76",fitzpatrick_scale:!0,category:"people"},child:{keywords:["gender-neutral","young"],"char":"\ud83e\uddd2",fitzpatrick_scale:!0,category:"people"},boy:{keywords:["man","male","guy","teenager"],"char":"\ud83d\udc66",fitzpatrick_scale:!0,category:"people"},girl:{keywords:["female","woman","teenager"],"char":"\ud83d\udc67",fitzpatrick_scale:!0,category:"people"},adult:{keywords:["gender-neutral","person"],"char":"\ud83e\uddd1",fitzpatrick_scale:!0,category:"people"},man:{keywords:["mustache","father","dad","guy","classy","sir","moustache"],"char":"\ud83d\udc68",fitzpatrick_scale:!0,category:"people"},woman:{keywords:["female","girls","lady"],"char":"\ud83d\udc69",fitzpatrick_scale:!0,category:"people"},blonde_woman:{keywords:["woman","female","girl","blonde","person"],"char":"\ud83d\udc71\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},blonde_man:{keywords:["man","male","boy","blonde","guy","person"],"char":"\ud83d\udc71",fitzpatrick_scale:!0,category:"people"},bearded_person:{keywords:["person","bewhiskered"],"char":"\ud83e\uddd4",fitzpatrick_scale:!0,category:"people"},older_adult:{keywords:["human","elder","senior","gender-neutral"],"char":"\ud83e\uddd3",fitzpatrick_scale:!0,category:"people"},older_man:{keywords:["human","male","men","old","elder","senior"],"char":"\ud83d\udc74",fitzpatrick_scale:!0,category:"people"},older_woman:{keywords:["human","female","women","lady","old","elder","senior"],"char":"\ud83d\udc75",fitzpatrick_scale:!0,category:"people"},man_with_gua_pi_mao:{keywords:["male","boy","chinese"],"char":"\ud83d\udc72",fitzpatrick_scale:!0,category:"people"},woman_with_headscarf:{keywords:["female","hijab","mantilla","tichel"],"char":"\ud83e\uddd5",fitzpatrick_scale:!0,category:"people"},woman_with_turban:{keywords:["female","indian","hinduism","arabs","woman"],"char":"\ud83d\udc73\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_with_turban:{keywords:["male","indian","hinduism","arabs"],"char":"\ud83d\udc73",fitzpatrick_scale:!0,category:"people"},policewoman:{keywords:["woman","police","law","legal","enforcement","arrest","911","female"],"char":"\ud83d\udc6e\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},policeman:{keywords:["man","police","law","legal","enforcement","arrest","911"],"char":"\ud83d\udc6e",fitzpatrick_scale:!0,category:"people"},construction_worker_woman:{keywords:["female","human","wip","build","construction","worker","labor","woman"],"char":"\ud83d\udc77\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},construction_worker_man:{keywords:["male","human","wip","guy","build","construction","worker","labor"],"char":"\ud83d\udc77",fitzpatrick_scale:!0,category:"people"},guardswoman:{keywords:["uk","gb","british","female","royal","woman"],"char":"\ud83d\udc82\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},guardsman:{keywords:["uk","gb","british","male","guy","royal"],"char":"\ud83d\udc82",fitzpatrick_scale:!0,category:"people"},female_detective:{keywords:["human","spy","detective","female","woman"],"char":"\ud83d\udd75\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},male_detective:{keywords:["human","spy","detective"],"char":"\ud83d\udd75",fitzpatrick_scale:!0,category:"people"},woman_health_worker:{keywords:["doctor","nurse","therapist","healthcare","woman","human"],"char":"\ud83d\udc69\u200d\u2695\ufe0f",fitzpatrick_scale:!0,category:"people"},man_health_worker:{keywords:["doctor","nurse","therapist","healthcare","man","human"],"char":"\ud83d\udc68\u200d\u2695\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_farmer:{keywords:["rancher","gardener","woman","human"],"char":"\ud83d\udc69\u200d\ud83c\udf3e",fitzpatrick_scale:!0,category:"people"},man_farmer:{keywords:["rancher","gardener","man","human"],"char":"\ud83d\udc68\u200d\ud83c\udf3e",fitzpatrick_scale:!0,category:"people"},woman_cook:{keywords:["chef","woman","human"],"char":"\ud83d\udc69\u200d\ud83c\udf73",fitzpatrick_scale:!0,category:"people"},man_cook:{keywords:["chef","man","human"],"char":"\ud83d\udc68\u200d\ud83c\udf73",fitzpatrick_scale:!0,category:"people"},woman_student:{keywords:["graduate","woman","human"],"char":"\ud83d\udc69\u200d\ud83c\udf93",fitzpatrick_scale:!0,category:"people"},man_student:{keywords:["graduate","man","human"],"char":"\ud83d\udc68\u200d\ud83c\udf93",fitzpatrick_scale:!0,category:"people"},woman_singer:{keywords:["rockstar","entertainer","woman","human"],"char":"\ud83d\udc69\u200d\ud83c\udfa4",fitzpatrick_scale:!0,category:"people"},man_singer:{keywords:["rockstar","entertainer","man","human"],"char":"\ud83d\udc68\u200d\ud83c\udfa4",fitzpatrick_scale:!0,category:"people"},woman_teacher:{keywords:["instructor","professor","woman","human"],"char":"\ud83d\udc69\u200d\ud83c\udfeb",fitzpatrick_scale:!0,category:"people"},man_teacher:{keywords:["instructor","professor","man","human"],"char":"\ud83d\udc68\u200d\ud83c\udfeb",fitzpatrick_scale:!0,category:"people"},woman_factory_worker:{keywords:["assembly","industrial","woman","human"],"char":"\ud83d\udc69\u200d\ud83c\udfed",fitzpatrick_scale:!0,category:"people"},man_factory_worker:{keywords:["assembly","industrial","man","human"],"char":"\ud83d\udc68\u200d\ud83c\udfed",fitzpatrick_scale:!0,category:"people"},woman_technologist:{keywords:["coder","developer","engineer","programmer","software","woman","human","laptop","computer"],"char":"\ud83d\udc69\u200d\ud83d\udcbb",fitzpatrick_scale:!0,category:"people"},man_technologist:{keywords:["coder","developer","engineer","programmer","software","man","human","laptop","computer"],"char":"\ud83d\udc68\u200d\ud83d\udcbb",fitzpatrick_scale:!0,category:"people"},woman_office_worker:{keywords:["business","manager","woman","human"],"char":"\ud83d\udc69\u200d\ud83d\udcbc",fitzpatrick_scale:!0,category:"people"},man_office_worker:{keywords:["business","manager","man","human"],"char":"\ud83d\udc68\u200d\ud83d\udcbc",fitzpatrick_scale:!0,category:"people"},woman_mechanic:{keywords:["plumber","woman","human","wrench"],"char":"\ud83d\udc69\u200d\ud83d\udd27",fitzpatrick_scale:!0,category:"people"},man_mechanic:{keywords:["plumber","man","human","wrench"],"char":"\ud83d\udc68\u200d\ud83d\udd27",fitzpatrick_scale:!0,category:"people"},woman_scientist:{keywords:["biologist","chemist","engineer","physicist","woman","human"],"char":"\ud83d\udc69\u200d\ud83d\udd2c",fitzpatrick_scale:!0,category:"people"},man_scientist:{keywords:["biologist","chemist","engineer","physicist","man","human"],"char":"\ud83d\udc68\u200d\ud83d\udd2c",fitzpatrick_scale:!0,category:"people"},woman_artist:{keywords:["painter","woman","human"],"char":"\ud83d\udc69\u200d\ud83c\udfa8",fitzpatrick_scale:!0,category:"people"},man_artist:{keywords:["painter","man","human"],"char":"\ud83d\udc68\u200d\ud83c\udfa8",fitzpatrick_scale:!0,category:"people"},woman_firefighter:{keywords:["fireman","woman","human"],"char":"\ud83d\udc69\u200d\ud83d\ude92",fitzpatrick_scale:!0,category:"people"},man_firefighter:{keywords:["fireman","man","human"],"char":"\ud83d\udc68\u200d\ud83d\ude92",fitzpatrick_scale:!0,category:"people"},woman_pilot:{keywords:["aviator","plane","woman","human"],"char":"\ud83d\udc69\u200d\u2708\ufe0f",fitzpatrick_scale:!0,category:"people"},man_pilot:{keywords:["aviator","plane","man","human"],"char":"\ud83d\udc68\u200d\u2708\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_astronaut:{keywords:["space","rocket","woman","human"],"char":"\ud83d\udc69\u200d\ud83d\ude80",fitzpatrick_scale:!0,category:"people"},man_astronaut:{keywords:["space","rocket","man","human"],"char":"\ud83d\udc68\u200d\ud83d\ude80",fitzpatrick_scale:!0,category:"people"},woman_judge:{keywords:["justice","court","woman","human"],"char":"\ud83d\udc69\u200d\u2696\ufe0f",fitzpatrick_scale:!0,category:"people"},man_judge:{keywords:["justice","court","man","human"],"char":"\ud83d\udc68\u200d\u2696\ufe0f",fitzpatrick_scale:!0,category:"people"},mrs_claus:{keywords:["woman","female","xmas","mother christmas"],"char":"\ud83e\udd36",fitzpatrick_scale:!0,category:"people"},santa:{keywords:["festival","man","male","xmas","father christmas"],"char":"\ud83c\udf85",fitzpatrick_scale:!0,category:"people"},sorceress:{keywords:["woman","female","mage","witch"],"char":"\ud83e\uddd9\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},wizard:{keywords:["man","male","mage","sorcerer"],"char":"\ud83e\uddd9\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_elf:{keywords:["woman","female"],"char":"\ud83e\udddd\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_elf:{keywords:["man","male"],"char":"\ud83e\udddd\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_vampire:{keywords:["woman","female"],"char":"\ud83e\udddb\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_vampire:{keywords:["man","male","dracula"],"char":"\ud83e\udddb\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_zombie:{keywords:["woman","female","undead","walking dead"],"char":"\ud83e\udddf\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"people"},man_zombie:{keywords:["man","male","dracula","undead","walking dead"],"char":"\ud83e\udddf\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"people"},woman_genie:{keywords:["woman","female"],"char":"\ud83e\uddde\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"people"},man_genie:{keywords:["man","male"],"char":"\ud83e\uddde\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"people"},mermaid:{keywords:["woman","female","merwoman","ariel"],"char":"\ud83e\udddc\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},merman:{keywords:["man","male","triton"],"char":"\ud83e\udddc\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_fairy:{keywords:["woman","female"],"char":"\ud83e\uddda\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_fairy:{keywords:["man","male"],"char":"\ud83e\uddda\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},angel:{keywords:["heaven","wings","halo"],"char":"\ud83d\udc7c",fitzpatrick_scale:!0,category:"people"},pregnant_woman:{keywords:["baby"],"char":"\ud83e\udd30",fitzpatrick_scale:!0,category:"people"},breastfeeding:{keywords:["nursing","baby"],"char":"\ud83e\udd31",fitzpatrick_scale:!0,category:"people"},princess:{keywords:["girl","woman","female","blond","crown","royal","queen"],"char":"\ud83d\udc78",fitzpatrick_scale:!0,category:"people"},prince:{keywords:["boy","man","male","crown","royal","king"],"char":"\ud83e\udd34",fitzpatrick_scale:!0,category:"people"},bride_with_veil:{keywords:["couple","marriage","wedding","woman","bride"],"char":"\ud83d\udc70",fitzpatrick_scale:!0,category:"people"},man_in_tuxedo:{keywords:["couple","marriage","wedding","groom"],"char":"\ud83e\udd35",fitzpatrick_scale:!0,category:"people"},running_woman:{keywords:["woman","walking","exercise","race","running","female"],"char":"\ud83c\udfc3\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},running_man:{keywords:["man","walking","exercise","race","running"],"char":"\ud83c\udfc3",fitzpatrick_scale:!0,category:"people"},walking_woman:{keywords:["human","feet","steps","woman","female"],"char":"\ud83d\udeb6\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},walking_man:{keywords:["human","feet","steps"],"char":"\ud83d\udeb6",fitzpatrick_scale:!0,category:"people"},dancer:{keywords:["female","girl","woman","fun"],"char":"\ud83d\udc83",fitzpatrick_scale:!0,category:"people"},man_dancing:{keywords:["male","boy","fun","dancer"],"char":"\ud83d\udd7a",fitzpatrick_scale:!0,category:"people"},dancing_women:{keywords:["female","bunny","women","girls"],"char":"\ud83d\udc6f",fitzpatrick_scale:!1,category:"people"},dancing_men:{keywords:["male","bunny","men","boys"],"char":"\ud83d\udc6f\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"people"},couple:{keywords:["pair","people","human","love","date","dating","like","affection","valentines","marriage"],"char":"\ud83d\udc6b",fitzpatrick_scale:!1,category:"people"},two_men_holding_hands:{keywords:["pair","couple","love","like","bromance","friendship","people","human"],"char":"\ud83d\udc6c",fitzpatrick_scale:!1,category:"people"},two_women_holding_hands:{keywords:["pair","friendship","couple","love","like","female","people","human"],"char":"\ud83d\udc6d",fitzpatrick_scale:!1,category:"people"},bowing_woman:{keywords:["woman","female","girl"],"char":"\ud83d\ude47\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},bowing_man:{keywords:["man","male","boy"],"char":"\ud83d\ude47",fitzpatrick_scale:!0,category:"people"},man_facepalming:{keywords:["man","male","boy","disbelief"],"char":"\ud83e\udd26",fitzpatrick_scale:!0,category:"people"},woman_facepalming:{keywords:["woman","female","girl","disbelief"],"char":"\ud83e\udd26\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_shrugging:{keywords:["woman","female","girl","confused","indifferent","doubt"],"char":"\ud83e\udd37",fitzpatrick_scale:!0,category:"people"},man_shrugging:{keywords:["man","male","boy","confused","indifferent","doubt"],"char":"\ud83e\udd37\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},tipping_hand_woman:{keywords:["female","girl","woman","human","information"],"char":"\ud83d\udc81",fitzpatrick_scale:!0,category:"people"},tipping_hand_man:{keywords:["male","boy","man","human","information"],"char":"\ud83d\udc81\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},no_good_woman:{keywords:["female","girl","woman","nope"],"char":"\ud83d\ude45",fitzpatrick_scale:!0,category:"people"},no_good_man:{keywords:["male","boy","man","nope"],"char":"\ud83d\ude45\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},ok_woman:{keywords:["women","girl","female","pink","human","woman"],"char":"\ud83d\ude46",fitzpatrick_scale:!0,category:"people"},ok_man:{keywords:["men","boy","male","blue","human","man"],"char":"\ud83d\ude46\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},raising_hand_woman:{keywords:["female","girl","woman"],"char":"\ud83d\ude4b",fitzpatrick_scale:!0,category:"people"},raising_hand_man:{keywords:["male","boy","man"],"char":"\ud83d\ude4b\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},pouting_woman:{keywords:["female","girl","woman"],"char":"\ud83d\ude4e",fitzpatrick_scale:!0,category:"people"},pouting_man:{keywords:["male","boy","man"],"char":"\ud83d\ude4e\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},frowning_woman:{keywords:["female","girl","woman","sad","depressed","discouraged","unhappy"],"char":"\ud83d\ude4d",fitzpatrick_scale:!0,category:"people"},frowning_man:{keywords:["male","boy","man","sad","depressed","discouraged","unhappy"],"char":"\ud83d\ude4d\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},haircut_woman:{keywords:["female","girl","woman"],"char":"\ud83d\udc87",fitzpatrick_scale:!0,category:"people"},haircut_man:{keywords:["male","boy","man"],"char":"\ud83d\udc87\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},massage_woman:{keywords:["female","girl","woman","head"],"char":"\ud83d\udc86",fitzpatrick_scale:!0,category:"people"},massage_man:{keywords:["male","boy","man","head"],"char":"\ud83d\udc86\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_in_steamy_room:{keywords:["female","woman","spa","steamroom","sauna"],"char":"\ud83e\uddd6\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_in_steamy_room:{keywords:["male","man","spa","steamroom","sauna"],"char":"\ud83e\uddd6\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},couple_with_heart_woman_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],"char":"\ud83d\udc91",fitzpatrick_scale:!1,category:"people"},couple_with_heart_woman_woman:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],"char":"\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc69",fitzpatrick_scale:!1,category:"people"},couple_with_heart_man_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],"char":"\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68",fitzpatrick_scale:!1,category:"people"},couplekiss_man_woman:{keywords:["pair","valentines","love","like","dating","marriage"],"char":"\ud83d\udc8f",fitzpatrick_scale:!1,category:"people"},couplekiss_woman_woman:{keywords:["pair","valentines","love","like","dating","marriage"],"char":"\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69",fitzpatrick_scale:!1,category:"people"},couplekiss_man_man:{keywords:["pair","valentines","love","like","dating","marriage"],"char":"\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68",fitzpatrick_scale:!1,category:"people"},family_man_woman_boy:{keywords:["home","parents","child","mom","dad","father","mother","people","human"],"char":"\ud83d\udc6a",fitzpatrick_scale:!1,category:"people"},family_man_woman_girl:{keywords:["home","parents","people","human","child"],"char":"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_man_woman_girl_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_woman_boy_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_woman_girl_girl:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_woman_woman_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_woman_woman_boy_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl_girl:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_man_man_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_man_girl:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_man_man_girl_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_man_boy_boy:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_man_girl_girl:{keywords:["home","parents","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_woman_boy:{keywords:["home","parent","people","human","child"],"char":"\ud83d\udc69\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_woman_girl:{keywords:["home","parent","people","human","child"],"char":"\ud83d\udc69\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_woman_girl_boy:{keywords:["home","parent","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_woman_boy_boy:{keywords:["home","parent","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_woman_girl_girl:{keywords:["home","parent","people","human","children"],"char":"\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_man_boy:{keywords:["home","parent","people","human","child"],"char":"\ud83d\udc68\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_girl:{keywords:["home","parent","people","human","child"],"char":"\ud83d\udc68\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},family_man_girl_boy:{keywords:["home","parent","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_boy_boy:{keywords:["home","parent","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66",fitzpatrick_scale:!1,category:"people"},family_man_girl_girl:{keywords:["home","parent","people","human","children"],"char":"\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67",fitzpatrick_scale:!1,category:"people"},coat:{keywords:["jacket"],"char":"\ud83e\udde5",fitzpatrick_scale:!1,category:"people"},womans_clothes:{keywords:["fashion","shopping_bags","female"],"char":"\ud83d\udc5a",fitzpatrick_scale:!1,category:"people"},tshirt:{keywords:["fashion","cloth","casual","shirt","tee"],"char":"\ud83d\udc55",fitzpatrick_scale:!1,category:"people"},jeans:{keywords:["fashion","shopping"],"char":"\ud83d\udc56",fitzpatrick_scale:!1,category:"people"},necktie:{keywords:["shirt","suitup","formal","fashion","cloth","business"],"char":"\ud83d\udc54",fitzpatrick_scale:!1,category:"people"},dress:{keywords:["clothes","fashion","shopping"],"char":"\ud83d\udc57",fitzpatrick_scale:!1,category:"people"},bikini:{keywords:["swimming","female","woman","girl","fashion","beach","summer"],"char":"\ud83d\udc59",fitzpatrick_scale:!1,category:"people"},kimono:{keywords:["dress","fashion","women","female","japanese"],"char":"\ud83d\udc58",fitzpatrick_scale:!1,category:"people"},lipstick:{keywords:["female","girl","fashion","woman"],"char":"\ud83d\udc84",fitzpatrick_scale:!1,category:"people"},kiss:{keywords:["face","lips","love","like","affection","valentines"],"char":"\ud83d\udc8b",fitzpatrick_scale:!1,category:"people"},footprints:{keywords:["feet","tracking","walking","beach"],"char":"\ud83d\udc63",fitzpatrick_scale:!1,category:"people"},high_heel:{keywords:["fashion","shoes","female","pumps","stiletto"],"char":"\ud83d\udc60",fitzpatrick_scale:!1,category:"people"},sandal:{keywords:["shoes","fashion","flip flops"],"char":"\ud83d\udc61",fitzpatrick_scale:!1,category:"people"},boot:{keywords:["shoes","fashion"],"char":"\ud83d\udc62",fitzpatrick_scale:!1,category:"people"},mans_shoe:{keywords:["fashion","male"],"char":"\ud83d\udc5e",fitzpatrick_scale:!1,category:"people"},athletic_shoe:{keywords:["shoes","sports","sneakers"],"char":"\ud83d\udc5f",fitzpatrick_scale:!1,category:"people"},socks:{keywords:["stockings","clothes"],"char":"\ud83e\udde6",fitzpatrick_scale:!1,category:"people"},gloves:{keywords:["hands","winter","clothes"],"char":"\ud83e\udde4",fitzpatrick_scale:!1,category:"people"},scarf:{keywords:["neck","winter","clothes"],"char":"\ud83e\udde3",fitzpatrick_scale:!1,category:"people"},womans_hat:{keywords:["fashion","accessories","female","lady","spring"],"char":"\ud83d\udc52",fitzpatrick_scale:!1,category:"people"},tophat:{keywords:["magic","gentleman","classy","circus"],"char":"\ud83c\udfa9",fitzpatrick_scale:!1,category:"people"},billed_hat:{keywords:["cap","baseball"],"char":"\ud83e\udde2",fitzpatrick_scale:!1,category:"people"},rescue_worker_helmet:{keywords:["construction","build"],"char":"\u26d1",fitzpatrick_scale:!1,category:"people"},mortar_board:{keywords:["school","college","degree","university","graduation","cap","hat","legal","learn","education"],"char":"\ud83c\udf93",fitzpatrick_scale:!1,category:"people"},crown:{keywords:["king","kod","leader","royalty","lord"],"char":"\ud83d\udc51",fitzpatrick_scale:!1,category:"people"},school_satchel:{keywords:["student","education","bag","backpack"],"char":"\ud83c\udf92",fitzpatrick_scale:!1,category:"people"},pouch:{keywords:["bag","accessories","shopping"],"char":"\ud83d\udc5d",fitzpatrick_scale:!1,category:"people"},purse:{keywords:["fashion","accessories","money","sales","shopping"],"char":"\ud83d\udc5b",fitzpatrick_scale:!1,category:"people"},handbag:{keywords:["fashion","accessory","accessories","shopping"],"char":"\ud83d\udc5c",fitzpatrick_scale:!1,category:"people"},briefcase:{keywords:["business","documents","work","law","legal","job","career"],"char":"\ud83d\udcbc",fitzpatrick_scale:!1,category:"people"},eyeglasses:{keywords:["fashion","accessories","eyesight","nerdy","dork","geek"],"char":"\ud83d\udc53",fitzpatrick_scale:!1,category:"people"},dark_sunglasses:{keywords:["face","cool","accessories"],"char":"\ud83d\udd76",fitzpatrick_scale:!1,category:"people"},ring:{keywords:["wedding","propose","marriage","valentines","diamond","fashion","jewelry","gem","engagement"],"char":"\ud83d\udc8d",fitzpatrick_scale:!1,category:"people"},closed_umbrella:{keywords:["weather","rain","drizzle"],"char":"\ud83c\udf02",fitzpatrick_scale:!1,category:"people"},dog:{keywords:["animal","friend","nature","woof","puppy","pet","faithful"],"char":"\ud83d\udc36",fitzpatrick_scale:!1,category:"animals_and_nature"},cat:{keywords:["animal","meow","nature","pet","kitten"],"char":"\ud83d\udc31",fitzpatrick_scale:!1,category:"animals_and_nature"},mouse:{keywords:["animal","nature","cheese_wedge","rodent"],"char":"\ud83d\udc2d",fitzpatrick_scale:!1,category:"animals_and_nature"},hamster:{keywords:["animal","nature"],"char":"\ud83d\udc39",fitzpatrick_scale:!1,category:"animals_and_nature"},rabbit:{keywords:["animal","nature","pet","spring","magic","bunny"],"char":"\ud83d\udc30",fitzpatrick_scale:!1,category:"animals_and_nature"},fox_face:{keywords:["animal","nature","face"],"char":"\ud83e\udd8a",fitzpatrick_scale:!1,category:"animals_and_nature"},bear:{keywords:["animal","nature","wild"],"char":"\ud83d\udc3b",fitzpatrick_scale:!1,category:"animals_and_nature"},panda_face:{keywords:["animal","nature","panda"],"char":"\ud83d\udc3c",fitzpatrick_scale:!1,category:"animals_and_nature"},koala:{keywords:["animal","nature"],"char":"\ud83d\udc28",fitzpatrick_scale:!1,category:"animals_and_nature"},tiger:{keywords:["animal","cat","danger","wild","nature","roar"],"char":"\ud83d\udc2f",fitzpatrick_scale:!1,category:"animals_and_nature"},lion:{keywords:["animal","nature"],"char":"\ud83e\udd81",fitzpatrick_scale:!1,category:"animals_and_nature"},cow:{keywords:["beef","ox","animal","nature","moo","milk"],"char":"\ud83d\udc2e",fitzpatrick_scale:!1,category:"animals_and_nature"},pig:{keywords:["animal","oink","nature"],"char":"\ud83d\udc37",fitzpatrick_scale:!1,category:"animals_and_nature"},pig_nose:{keywords:["animal","oink"],"char":"\ud83d\udc3d",fitzpatrick_scale:!1,category:"animals_and_nature"},frog:{keywords:["animal","nature","croak","toad"],"char":"\ud83d\udc38",fitzpatrick_scale:!1,category:"animals_and_nature"},squid:{keywords:["animal","nature","ocean","sea"],"char":"\ud83e\udd91",fitzpatrick_scale:!1,category:"animals_and_nature"},octopus:{keywords:["animal","creature","ocean","sea","nature","beach"],"char":"\ud83d\udc19",fitzpatrick_scale:!1,category:"animals_and_nature"},shrimp:{keywords:["animal","ocean","nature","seafood"],"char":"\ud83e\udd90",fitzpatrick_scale:!1,category:"animals_and_nature"},monkey_face:{keywords:["animal","nature","circus"],"char":"\ud83d\udc35",fitzpatrick_scale:!1,category:"animals_and_nature"},gorilla:{keywords:["animal","nature","circus"],"char":"\ud83e\udd8d",fitzpatrick_scale:!1,category:"animals_and_nature"},see_no_evil:{keywords:["monkey","animal","nature","haha"],"char":"\ud83d\ude48",fitzpatrick_scale:!1,category:"animals_and_nature"},hear_no_evil:{keywords:["animal","monkey","nature"],"char":"\ud83d\ude49",fitzpatrick_scale:!1,category:"animals_and_nature"},speak_no_evil:{keywords:["monkey","animal","nature","omg"],"char":"\ud83d\ude4a",fitzpatrick_scale:!1,category:"animals_and_nature"},monkey:{keywords:["animal","nature","banana","circus"],"char":"\ud83d\udc12",fitzpatrick_scale:!1,category:"animals_and_nature"},chicken:{keywords:["animal","cluck","nature","bird"],"char":"\ud83d\udc14",fitzpatrick_scale:!1,category:"animals_and_nature"},penguin:{keywords:["animal","nature"],"char":"\ud83d\udc27",fitzpatrick_scale:!1,category:"animals_and_nature"},bird:{keywords:["animal","nature","fly","tweet","spring"],"char":"\ud83d\udc26",fitzpatrick_scale:!1,category:"animals_and_nature"},baby_chick:{keywords:["animal","chicken","bird"],"char":"\ud83d\udc24",fitzpatrick_scale:!1,category:"animals_and_nature"},hatching_chick:{keywords:["animal","chicken","egg","born","baby","bird"],"char":"\ud83d\udc23",fitzpatrick_scale:!1,category:"animals_and_nature"},hatched_chick:{keywords:["animal","chicken","baby","bird"],"char":"\ud83d\udc25",fitzpatrick_scale:!1,category:"animals_and_nature"},duck:{keywords:["animal","nature","bird","mallard"],"char":"\ud83e\udd86",fitzpatrick_scale:!1,category:"animals_and_nature"},eagle:{keywords:["animal","nature","bird"],"char":"\ud83e\udd85",fitzpatrick_scale:!1,category:"animals_and_nature"},owl:{keywords:["animal","nature","bird","hoot"],"char":"\ud83e\udd89",fitzpatrick_scale:!1,category:"animals_and_nature"},bat:{keywords:["animal","nature","blind","vampire"],"char":"\ud83e\udd87",fitzpatrick_scale:!1,category:"animals_and_nature"},wolf:{keywords:["animal","nature","wild"],"char":"\ud83d\udc3a",fitzpatrick_scale:!1,category:"animals_and_nature"},boar:{keywords:["animal","nature"],"char":"\ud83d\udc17",fitzpatrick_scale:!1,category:"animals_and_nature"},horse:{keywords:["animal","brown","nature"],"char":"\ud83d\udc34",fitzpatrick_scale:!1,category:"animals_and_nature"},unicorn:{keywords:["animal","nature","mystical"],"char":"\ud83e\udd84",fitzpatrick_scale:!1,category:"animals_and_nature"},honeybee:{keywords:["animal","insect","nature","bug","spring","honey"],"char":"\ud83d\udc1d",fitzpatrick_scale:!1,category:"animals_and_nature"},bug:{keywords:["animal","insect","nature","worm"],"char":"\ud83d\udc1b",fitzpatrick_scale:!1,category:"animals_and_nature"},butterfly:{keywords:["animal","insect","nature","caterpillar"],"char":"\ud83e\udd8b",fitzpatrick_scale:!1,category:"animals_and_nature"},snail:{keywords:["slow","animal","shell"],"char":"\ud83d\udc0c",fitzpatrick_scale:!1,category:"animals_and_nature"},beetle:{keywords:["animal","insect","nature","ladybug"],"char":"\ud83d\udc1e",fitzpatrick_scale:!1,category:"animals_and_nature"},ant:{keywords:["animal","insect","nature","bug"],"char":"\ud83d\udc1c",fitzpatrick_scale:!1,category:"animals_and_nature"},grasshopper:{keywords:["animal","cricket","chirp"],"char":"\ud83e\udd97",fitzpatrick_scale:!1,category:"animals_and_nature"},spider:{keywords:["animal","arachnid"],"char":"\ud83d\udd77",fitzpatrick_scale:!1,category:"animals_and_nature"},scorpion:{keywords:["animal","arachnid"],"char":"\ud83e\udd82",fitzpatrick_scale:!1,category:"animals_and_nature"},crab:{keywords:["animal","crustacean"],"char":"\ud83e\udd80",fitzpatrick_scale:!1,category:"animals_and_nature"},snake:{keywords:["animal","evil","nature","hiss","python"],"char":"\ud83d\udc0d",fitzpatrick_scale:!1,category:"animals_and_nature"},lizard:{keywords:["animal","nature","reptile"],"char":"\ud83e\udd8e",fitzpatrick_scale:!1,category:"animals_and_nature"},"t-rex":{keywords:["animal","nature","dinosaur","tyrannosaurus","extinct"],"char":"\ud83e\udd96",fitzpatrick_scale:!1,category:"animals_and_nature"},sauropod:{keywords:["animal","nature","dinosaur","brachiosaurus","brontosaurus","diplodocus","extinct"],"char":"\ud83e\udd95",fitzpatrick_scale:!1,category:"animals_and_nature"},turtle:{keywords:["animal","slow","nature","tortoise"],"char":"\ud83d\udc22",fitzpatrick_scale:!1,category:"animals_and_nature"},tropical_fish:{keywords:["animal","swim","ocean","beach","nemo"],"char":"\ud83d\udc20",fitzpatrick_scale:!1,category:"animals_and_nature"},fish:{keywords:["animal","food","nature"],"char":"\ud83d\udc1f",fitzpatrick_scale:!1,category:"animals_and_nature"},blowfish:{keywords:["animal","nature","food","sea","ocean"],"char":"\ud83d\udc21",fitzpatrick_scale:!1,category:"animals_and_nature"},dolphin:{keywords:["animal","nature","fish","sea","ocean","flipper","fins","beach"],"char":"\ud83d\udc2c",fitzpatrick_scale:!1,category:"animals_and_nature"},shark:{keywords:["animal","nature","fish","sea","ocean","jaws","fins","beach"],"char":"\ud83e\udd88",fitzpatrick_scale:!1,category:"animals_and_nature"},whale:{keywords:["animal","nature","sea","ocean"],"char":"\ud83d\udc33",fitzpatrick_scale:!1,category:"animals_and_nature"},whale2:{keywords:["animal","nature","sea","ocean"],"char":"\ud83d\udc0b",fitzpatrick_scale:!1,category:"animals_and_nature"},crocodile:{keywords:["animal","nature","reptile","lizard","alligator"],"char":"\ud83d\udc0a",fitzpatrick_scale:!1,category:"animals_and_nature"},leopard:{keywords:["animal","nature"],"char":"\ud83d\udc06",fitzpatrick_scale:!1,category:"animals_and_nature"},zebra:{keywords:["animal","nature","stripes","safari"],"char":"\ud83e\udd93",fitzpatrick_scale:!1,category:"animals_and_nature"},tiger2:{keywords:["animal","nature","roar"],"char":"\ud83d\udc05",fitzpatrick_scale:!1,category:"animals_and_nature"},water_buffalo:{keywords:["animal","nature","ox","cow"],"char":"\ud83d\udc03",fitzpatrick_scale:!1,category:"animals_and_nature"},ox:{keywords:["animal","cow","beef"],"char":"\ud83d\udc02",fitzpatrick_scale:!1,category:"animals_and_nature"},cow2:{keywords:["beef","ox","animal","nature","moo","milk"],"char":"\ud83d\udc04",fitzpatrick_scale:!1,category:"animals_and_nature"},deer:{keywords:["animal","nature","horns","venison"],"char":"\ud83e\udd8c",fitzpatrick_scale:!1,category:"animals_and_nature"},dromedary_camel:{keywords:["animal","hot","desert","hump"],"char":"\ud83d\udc2a",fitzpatrick_scale:!1,category:"animals_and_nature"},camel:{keywords:["animal","nature","hot","desert","hump"],"char":"\ud83d\udc2b",fitzpatrick_scale:!1,category:"animals_and_nature"},giraffe:{keywords:["animal","nature","spots","safari"],"char":"\ud83e\udd92",fitzpatrick_scale:!1,category:"animals_and_nature"},elephant:{keywords:["animal","nature","nose","th","circus"],"char":"\ud83d\udc18",fitzpatrick_scale:!1,category:"animals_and_nature"},rhinoceros:{keywords:["animal","nature","horn"],"char":"\ud83e\udd8f",fitzpatrick_scale:!1,category:"animals_and_nature"},goat:{keywords:["animal","nature"],"char":"\ud83d\udc10",fitzpatrick_scale:!1,category:"animals_and_nature"},ram:{keywords:["animal","sheep","nature"],"char":"\ud83d\udc0f",fitzpatrick_scale:!1,category:"animals_and_nature"},sheep:{keywords:["animal","nature","wool","shipit"],"char":"\ud83d\udc11",fitzpatrick_scale:!1,category:"animals_and_nature"},racehorse:{keywords:["animal","gamble","luck"],"char":"\ud83d\udc0e",fitzpatrick_scale:!1,category:"animals_and_nature"},pig2:{keywords:["animal","nature"],"char":"\ud83d\udc16",fitzpatrick_scale:!1,category:"animals_and_nature"},rat:{keywords:["animal","mouse","rodent"],"char":"\ud83d\udc00",fitzpatrick_scale:!1,category:"animals_and_nature"},mouse2:{keywords:["animal","nature","rodent"],"char":"\ud83d\udc01",fitzpatrick_scale:!1,category:"animals_and_nature"},rooster:{keywords:["animal","nature","chicken"],"char":"\ud83d\udc13",fitzpatrick_scale:!1,category:"animals_and_nature"},turkey:{keywords:["animal","bird"],"char":"\ud83e\udd83",fitzpatrick_scale:!1,category:"animals_and_nature"},dove:{keywords:["animal","bird"],"char":"\ud83d\udd4a",fitzpatrick_scale:!1,category:"animals_and_nature"},dog2:{keywords:["animal","nature","friend","doge","pet","faithful"],"char":"\ud83d\udc15",fitzpatrick_scale:!1,category:"animals_and_nature"},poodle:{keywords:["dog","animal","101","nature","pet"],"char":"\ud83d\udc29",fitzpatrick_scale:!1,category:"animals_and_nature"},cat2:{keywords:["animal","meow","pet","cats"],"char":"\ud83d\udc08",fitzpatrick_scale:!1,category:"animals_and_nature"},rabbit2:{keywords:["animal","nature","pet","magic","spring"],"char":"\ud83d\udc07",fitzpatrick_scale:!1,category:"animals_and_nature"},chipmunk:{keywords:["animal","nature","rodent","squirrel"],"char":"\ud83d\udc3f",fitzpatrick_scale:!1,category:"animals_and_nature"},hedgehog:{keywords:["animal","nature","spiny"],"char":"\ud83e\udd94",fitzpatrick_scale:!1,category:"animals_and_nature"},paw_prints:{keywords:["animal","tracking","footprints","dog","cat","pet","feet"],"char":"\ud83d\udc3e",fitzpatrick_scale:!1,category:"animals_and_nature"},dragon:{keywords:["animal","myth","nature","chinese","green"],"char":"\ud83d\udc09",fitzpatrick_scale:!1,category:"animals_and_nature"},dragon_face:{keywords:["animal","myth","nature","chinese","green"],"char":"\ud83d\udc32",fitzpatrick_scale:!1,category:"animals_and_nature"},cactus:{keywords:["vegetable","plant","nature"],"char":"\ud83c\udf35",fitzpatrick_scale:!1,category:"animals_and_nature"},christmas_tree:{keywords:["festival","vacation","december","xmas","celebration"],"char":"\ud83c\udf84",fitzpatrick_scale:!1,category:"animals_and_nature"},evergreen_tree:{keywords:["plant","nature"],"char":"\ud83c\udf32",fitzpatrick_scale:!1,category:"animals_and_nature"},deciduous_tree:{keywords:["plant","nature"],"char":"\ud83c\udf33",fitzpatrick_scale:!1,category:"animals_and_nature"},palm_tree:{keywords:["plant","vegetable","nature","summer","beach","mojito","tropical"],"char":"\ud83c\udf34",fitzpatrick_scale:!1,category:"animals_and_nature"},seedling:{keywords:["plant","nature","grass","lawn","spring"],"char":"\ud83c\udf31",fitzpatrick_scale:!1,category:"animals_and_nature"},herb:{keywords:["vegetable","plant","medicine","weed","grass","lawn"],"char":"\ud83c\udf3f",fitzpatrick_scale:!1,category:"animals_and_nature"},shamrock:{keywords:["vegetable","plant","nature","irish","clover"],"char":"\u2618",fitzpatrick_scale:!1,category:"animals_and_nature"},four_leaf_clover:{keywords:["vegetable","plant","nature","lucky","irish"],"char":"\ud83c\udf40",fitzpatrick_scale:!1,category:"animals_and_nature"},bamboo:{keywords:["plant","nature","vegetable","panda","pine_decoration"],"char":"\ud83c\udf8d",fitzpatrick_scale:!1,category:"animals_and_nature"},tanabata_tree:{keywords:["plant","nature","branch","summer"],"char":"\ud83c\udf8b",fitzpatrick_scale:!1,category:"animals_and_nature"},leaves:{keywords:["nature","plant","tree","vegetable","grass","lawn","spring"],"char":"\ud83c\udf43",fitzpatrick_scale:!1,category:"animals_and_nature"},fallen_leaf:{keywords:["nature","plant","vegetable","leaves"],"char":"\ud83c\udf42",fitzpatrick_scale:!1,category:"animals_and_nature"},maple_leaf:{keywords:["nature","plant","vegetable","ca","fall"],"char":"\ud83c\udf41",fitzpatrick_scale:!1,category:"animals_and_nature"},ear_of_rice:{keywords:["nature","plant"],"char":"\ud83c\udf3e",fitzpatrick_scale:!1,category:"animals_and_nature"},hibiscus:{keywords:["plant","vegetable","flowers","beach"],"char":"\ud83c\udf3a",fitzpatrick_scale:!1,category:"animals_and_nature"},sunflower:{keywords:["nature","plant","fall"],"char":"\ud83c\udf3b",fitzpatrick_scale:!1,category:"animals_and_nature"},rose:{keywords:["flowers","valentines","love","spring"],"char":"\ud83c\udf39",fitzpatrick_scale:!1,category:"animals_and_nature"},wilted_flower:{keywords:["plant","nature","flower"],"char":"\ud83e\udd40",fitzpatrick_scale:!1,category:"animals_and_nature"},tulip:{keywords:["flowers","plant","nature","summer","spring"],"char":"\ud83c\udf37",fitzpatrick_scale:!1,category:"animals_and_nature"},blossom:{keywords:["nature","flowers","yellow"],"char":"\ud83c\udf3c",fitzpatrick_scale:!1,category:"animals_and_nature"},cherry_blossom:{keywords:["nature","plant","spring","flower"],"char":"\ud83c\udf38",fitzpatrick_scale:!1,category:"animals_and_nature"},bouquet:{keywords:["flowers","nature","spring"],"char":"\ud83d\udc90",fitzpatrick_scale:!1,category:"animals_and_nature"},mushroom:{keywords:["plant","vegetable"],"char":"\ud83c\udf44",fitzpatrick_scale:!1,category:"animals_and_nature"},chestnut:{keywords:["food","squirrel"],"char":"\ud83c\udf30",fitzpatrick_scale:!1,category:"animals_and_nature"},jack_o_lantern:{keywords:["halloween","light","pumpkin","creepy","fall"],"char":"\ud83c\udf83",fitzpatrick_scale:!1,category:"animals_and_nature"},shell:{keywords:["nature","sea","beach"],"char":"\ud83d\udc1a",fitzpatrick_scale:!1,category:"animals_and_nature"},spider_web:{keywords:["animal","insect","arachnid","silk"],"char":"\ud83d\udd78",fitzpatrick_scale:!1,category:"animals_and_nature"},earth_americas:{keywords:["globe","world","USA","international"],"char":"\ud83c\udf0e",fitzpatrick_scale:!1,category:"animals_and_nature"},earth_africa:{keywords:["globe","world","international"],"char":"\ud83c\udf0d",fitzpatrick_scale:!1,category:"animals_and_nature"},earth_asia:{keywords:["globe","world","east","international"],"char":"\ud83c\udf0f",fitzpatrick_scale:!1,category:"animals_and_nature"},full_moon:{keywords:["nature","yellow","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf15",fitzpatrick_scale:!1,category:"animals_and_nature"},waning_gibbous_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep","waxing_gibbous_moon"],"char":"\ud83c\udf16",fitzpatrick_scale:!1,category:"animals_and_nature"},last_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf17",fitzpatrick_scale:!1,category:"animals_and_nature"},waning_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf18",fitzpatrick_scale:!1,category:"animals_and_nature"},new_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf11",fitzpatrick_scale:!1,category:"animals_and_nature"},waxing_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf12",fitzpatrick_scale:!1,category:"animals_and_nature"},first_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf13",fitzpatrick_scale:!1,category:"animals_and_nature"},waxing_gibbous_moon:{keywords:["nature","night","sky","gray","twilight","planet","space","evening","sleep"],"char":"\ud83c\udf14",fitzpatrick_scale:!1,category:"animals_and_nature"},new_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf1a",fitzpatrick_scale:!1,category:"animals_and_nature"},full_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf1d",fitzpatrick_scale:!1,category:"animals_and_nature"},first_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf1b",fitzpatrick_scale:!1,category:"animals_and_nature"},last_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],"char":"\ud83c\udf1c",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_with_face:{keywords:["nature","morning","sky"],"char":"\ud83c\udf1e",fitzpatrick_scale:!1,category:"animals_and_nature"},crescent_moon:{keywords:["night","sleep","sky","evening","magic"],"char":"\ud83c\udf19",fitzpatrick_scale:!1,category:"animals_and_nature"},star:{keywords:["night","yellow"],"char":"\u2b50",fitzpatrick_scale:!1,category:"animals_and_nature"},star2:{keywords:["night","sparkle","awesome","good","magic"],"char":"\ud83c\udf1f",fitzpatrick_scale:!1,category:"animals_and_nature"},dizzy:{keywords:["star","sparkle","shoot","magic"],"char":"\ud83d\udcab",fitzpatrick_scale:!1,category:"animals_and_nature"},sparkles:{keywords:["stars","shine","shiny","cool","awesome","good","magic"],"char":"\u2728",fitzpatrick_scale:!1,category:"animals_and_nature"},comet:{keywords:["space"],"char":"\u2604",fitzpatrick_scale:!1,category:"animals_and_nature"},sunny:{keywords:["weather","nature","brightness","summer","beach","spring"],"char":"\u2600\ufe0f",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_small_cloud:{keywords:["weather"],"char":"\ud83c\udf24",fitzpatrick_scale:!1,category:"animals_and_nature"},partly_sunny:{keywords:["weather","nature","cloudy","morning","fall","spring"],"char":"\u26c5",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_large_cloud:{keywords:["weather"],"char":"\ud83c\udf25",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_rain_cloud:{keywords:["weather"],"char":"\ud83c\udf26",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud:{keywords:["weather","sky"],"char":"\u2601\ufe0f",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_rain:{keywords:["weather"],"char":"\ud83c\udf27",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_lightning_and_rain:{keywords:["weather","lightning"],"char":"\u26c8",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_lightning:{keywords:["weather","thunder"],"char":"\ud83c\udf29",fitzpatrick_scale:!1,category:"animals_and_nature"},zap:{keywords:["thunder","weather","lightning bolt","fast"],"char":"\u26a1",fitzpatrick_scale:!1,category:"animals_and_nature"},fire:{keywords:["hot","cook","flame"],"char":"\ud83d\udd25",fitzpatrick_scale:!1,category:"animals_and_nature"},boom:{keywords:["bomb","explode","explosion","collision","blown"],"char":"\ud83d\udca5",fitzpatrick_scale:!1,category:"animals_and_nature"},snowflake:{keywords:["winter","season","cold","weather","christmas","xmas"],"char":"\u2744\ufe0f",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_snow:{keywords:["weather"],"char":"\ud83c\udf28",fitzpatrick_scale:!1,category:"animals_and_nature"},snowman:{keywords:["winter","season","cold","weather","christmas","xmas","frozen","without_snow"],"char":"\u26c4",fitzpatrick_scale:!1,category:"animals_and_nature"},snowman_with_snow:{keywords:["winter","season","cold","weather","christmas","xmas","frozen"],"char":"\u2603",fitzpatrick_scale:!1,category:"animals_and_nature"},wind_face:{keywords:["gust","air"],"char":"\ud83c\udf2c",fitzpatrick_scale:!1,category:"animals_and_nature"},dash:{keywords:["wind","air","fast","shoo","fart","smoke","puff"],"char":"\ud83d\udca8",fitzpatrick_scale:!1,category:"animals_and_nature"},tornado:{keywords:["weather","cyclone","twister"],"char":"\ud83c\udf2a",fitzpatrick_scale:!1,category:"animals_and_nature"},fog:{keywords:["weather"],"char":"\ud83c\udf2b",fitzpatrick_scale:!1,category:"animals_and_nature"},open_umbrella:{keywords:["weather","spring"],"char":"\u2602",fitzpatrick_scale:!1,category:"animals_and_nature"},umbrella:{keywords:["rainy","weather","spring"],"char":"\u2614",fitzpatrick_scale:!1,category:"animals_and_nature"},droplet:{keywords:["water","drip","faucet","spring"],"char":"\ud83d\udca7",fitzpatrick_scale:!1,category:"animals_and_nature"},sweat_drops:{keywords:["water","drip","oops"],"char":"\ud83d\udca6",fitzpatrick_scale:!1,category:"animals_and_nature"},ocean:{keywords:["sea","water","wave","nature","tsunami","disaster"],"char":"\ud83c\udf0a",fitzpatrick_scale:!1,category:"animals_and_nature"},green_apple:{keywords:["fruit","nature"],"char":"\ud83c\udf4f",fitzpatrick_scale:!1,category:"food_and_drink"},apple:{keywords:["fruit","mac","school"],"char":"\ud83c\udf4e",fitzpatrick_scale:!1,category:"food_and_drink"},pear:{keywords:["fruit","nature","food"],"char":"\ud83c\udf50",fitzpatrick_scale:!1,category:"food_and_drink"},tangerine:{keywords:["food","fruit","nature","orange"],"char":"\ud83c\udf4a",fitzpatrick_scale:!1,category:"food_and_drink"},lemon:{keywords:["fruit","nature"],"char":"\ud83c\udf4b",fitzpatrick_scale:!1,category:"food_and_drink"},banana:{keywords:["fruit","food","monkey"],"char":"\ud83c\udf4c",fitzpatrick_scale:!1,category:"food_and_drink"},watermelon:{keywords:["fruit","food","picnic","summer"],"char":"\ud83c\udf49",fitzpatrick_scale:!1,category:"food_and_drink"},grapes:{keywords:["fruit","food","wine"],"char":"\ud83c\udf47",fitzpatrick_scale:!1,category:"food_and_drink"},strawberry:{keywords:["fruit","food","nature"],"char":"\ud83c\udf53",fitzpatrick_scale:!1,category:"food_and_drink"},melon:{keywords:["fruit","nature","food"],"char":"\ud83c\udf48",fitzpatrick_scale:!1,category:"food_and_drink"},cherries:{keywords:["food","fruit"],"char":"\ud83c\udf52",fitzpatrick_scale:!1,category:"food_and_drink"},peach:{keywords:["fruit","nature","food"],"char":"\ud83c\udf51",fitzpatrick_scale:!1,category:"food_and_drink"},pineapple:{keywords:["fruit","nature","food"],"char":"\ud83c\udf4d",fitzpatrick_scale:!1,category:"food_and_drink"},coconut:{keywords:["fruit","nature","food","palm"],"char":"\ud83e\udd65",fitzpatrick_scale:!1,category:"food_and_drink"},kiwi_fruit:{keywords:["fruit","food"],"char":"\ud83e\udd5d",fitzpatrick_scale:!1,category:"food_and_drink"},avocado:{keywords:["fruit","food"],"char":"\ud83e\udd51",fitzpatrick_scale:!1,category:"food_and_drink"},broccoli:{keywords:["fruit","food","vegetable"],"char":"\ud83e\udd66",fitzpatrick_scale:!1,category:"food_and_drink"},tomato:{keywords:["fruit","vegetable","nature","food"],"char":"\ud83c\udf45",fitzpatrick_scale:!1,category:"food_and_drink"},eggplant:{keywords:["vegetable","nature","food","aubergine"],"char":"\ud83c\udf46",fitzpatrick_scale:!1,category:"food_and_drink"},cucumber:{keywords:["fruit","food","pickle"],"char":"\ud83e\udd52",fitzpatrick_scale:!1,category:"food_and_drink"},carrot:{keywords:["vegetable","food","orange"],"char":"\ud83e\udd55",fitzpatrick_scale:!1,category:"food_and_drink"},hot_pepper:{keywords:["food","spicy","chilli","chili"],"char":"\ud83c\udf36",fitzpatrick_scale:!1,category:"food_and_drink"},potato:{keywords:["food","tuber","vegatable","starch"],"char":"\ud83e\udd54",fitzpatrick_scale:!1,category:"food_and_drink"},corn:{keywords:["food","vegetable","plant"],"char":"\ud83c\udf3d",fitzpatrick_scale:!1,category:"food_and_drink"},sweet_potato:{keywords:["food","nature"],"char":"\ud83c\udf60",fitzpatrick_scale:!1,category:"food_and_drink"},peanuts:{keywords:["food","nut"],"char":"\ud83e\udd5c",fitzpatrick_scale:!1,category:"food_and_drink"},honey_pot:{keywords:["bees","sweet","kitchen"],"char":"\ud83c\udf6f",fitzpatrick_scale:!1,category:"food_and_drink"},croissant:{keywords:["food","bread","french"],"char":"\ud83e\udd50",fitzpatrick_scale:!1,category:"food_and_drink"},bread:{keywords:["food","wheat","breakfast","toast"],"char":"\ud83c\udf5e",fitzpatrick_scale:!1,category:"food_and_drink"},baguette_bread:{keywords:["food","bread","french"],"char":"\ud83e\udd56",fitzpatrick_scale:!1,category:"food_and_drink"},pretzel:{keywords:["food","bread","twisted"],"char":"\ud83e\udd68",fitzpatrick_scale:!1,category:"food_and_drink"},cheese:{keywords:["food","chadder"],"char":"\ud83e\uddc0",fitzpatrick_scale:!1,category:"food_and_drink"},egg:{keywords:["food","chicken","breakfast"],"char":"\ud83e\udd5a",fitzpatrick_scale:!1,category:"food_and_drink"},bacon:{keywords:["food","breakfast","pork","pig","meat"],"char":"\ud83e\udd53",fitzpatrick_scale:!1,category:"food_and_drink"},steak:{keywords:["food","cow","meat","cut","chop","lambchop","porkchop"],"char":"\ud83e\udd69",fitzpatrick_scale:!1,category:"food_and_drink"},pancakes:{keywords:["food","breakfast","flapjacks","hotcakes"],"char":"\ud83e\udd5e",fitzpatrick_scale:!1,category:"food_and_drink"},poultry_leg:{keywords:["food","meat","drumstick","bird","chicken","turkey"],"char":"\ud83c\udf57",fitzpatrick_scale:!1,category:"food_and_drink"},meat_on_bone:{keywords:["good","food","drumstick"],"char":"\ud83c\udf56",fitzpatrick_scale:!1,category:"food_and_drink"},fried_shrimp:{keywords:["food","animal","appetizer","summer"],"char":"\ud83c\udf64",fitzpatrick_scale:!1,category:"food_and_drink"},fried_egg:{keywords:["food","breakfast","kitchen","egg"],"char":"\ud83c\udf73",fitzpatrick_scale:!1,category:"food_and_drink"},hamburger:{keywords:["meat","fast food","beef","cheeseburger","mcdonalds","burger king"],"char":"\ud83c\udf54",fitzpatrick_scale:!1,category:"food_and_drink"},fries:{keywords:["chips","snack","fast food"],"char":"\ud83c\udf5f",fitzpatrick_scale:!1,category:"food_and_drink"},stuffed_flatbread:{keywords:["food","flatbread","stuffed","gyro"],"char":"\ud83e\udd59",fitzpatrick_scale:!1,category:"food_and_drink"},hotdog:{keywords:["food","frankfurter"],"char":"\ud83c\udf2d",fitzpatrick_scale:!1,category:"food_and_drink"},pizza:{keywords:["food","party"],"char":"\ud83c\udf55",fitzpatrick_scale:!1,category:"food_and_drink"},sandwich:{keywords:["food","lunch","bread"],"char":"\ud83e\udd6a",fitzpatrick_scale:!1,category:"food_and_drink"},canned_food:{keywords:["food","soup"],"char":"\ud83e\udd6b",fitzpatrick_scale:!1,category:"food_and_drink"},spaghetti:{keywords:["food","italian","noodle"],"char":"\ud83c\udf5d",fitzpatrick_scale:!1,category:"food_and_drink"},taco:{keywords:["food","mexican"],"char":"\ud83c\udf2e",fitzpatrick_scale:!1,category:"food_and_drink"},burrito:{keywords:["food","mexican"],"char":"\ud83c\udf2f",fitzpatrick_scale:!1,category:"food_and_drink"},green_salad:{keywords:["food","healthy","lettuce"],"char":"\ud83e\udd57",fitzpatrick_scale:!1,category:"food_and_drink"},shallow_pan_of_food:{keywords:["food","cooking","casserole","paella"],"char":"\ud83e\udd58",fitzpatrick_scale:!1,category:"food_and_drink"},ramen:{keywords:["food","japanese","noodle","chopsticks"],"char":"\ud83c\udf5c",fitzpatrick_scale:!1,category:"food_and_drink"},stew:{keywords:["food","meat","soup"],"char":"\ud83c\udf72",fitzpatrick_scale:!1,category:"food_and_drink"},fish_cake:{keywords:["food","japan","sea","beach","narutomaki","pink","swirl","kamaboko","surimi","ramen"],"char":"\ud83c\udf65",fitzpatrick_scale:!1,category:"food_and_drink"},fortune_cookie:{keywords:["food","prophecy"],"char":"\ud83e\udd60",fitzpatrick_scale:!1,category:"food_and_drink"},sushi:{keywords:["food","fish","japanese","rice"],"char":"\ud83c\udf63",fitzpatrick_scale:!1,category:"food_and_drink"},bento:{keywords:["food","japanese","box"],"char":"\ud83c\udf71",fitzpatrick_scale:!1,category:"food_and_drink"},curry:{keywords:["food","spicy","hot","indian"],"char":"\ud83c\udf5b",fitzpatrick_scale:!1,category:"food_and_drink"},rice_ball:{keywords:["food","japanese"],"char":"\ud83c\udf59",fitzpatrick_scale:!1,category:"food_and_drink"},rice:{keywords:["food","china","asian"],"char":"\ud83c\udf5a",fitzpatrick_scale:!1,category:"food_and_drink"},rice_cracker:{keywords:["food","japanese"],"char":"\ud83c\udf58",fitzpatrick_scale:!1,category:"food_and_drink"},oden:{keywords:["food","japanese"],"char":"\ud83c\udf62",fitzpatrick_scale:!1,category:"food_and_drink"},dango:{keywords:["food","dessert","sweet","japanese","barbecue","meat"],"char":"\ud83c\udf61",fitzpatrick_scale:!1,category:"food_and_drink"},shaved_ice:{keywords:["hot","dessert","summer"],"char":"\ud83c\udf67",fitzpatrick_scale:!1,category:"food_and_drink"},ice_cream:{keywords:["food","hot","dessert"],"char":"\ud83c\udf68",fitzpatrick_scale:!1,category:"food_and_drink"},icecream:{keywords:["food","hot","dessert","summer"],"char":"\ud83c\udf66",fitzpatrick_scale:!1,category:"food_and_drink"},pie:{keywords:["food","dessert","pastry"],"char":"\ud83e\udd67",fitzpatrick_scale:!1,category:"food_and_drink"},cake:{keywords:["food","dessert"],"char":"\ud83c\udf70",fitzpatrick_scale:!1,category:"food_and_drink"},birthday:{keywords:["food","dessert","cake"],"char":"\ud83c\udf82",fitzpatrick_scale:!1,category:"food_and_drink"},custard:{keywords:["dessert","food"],"char":"\ud83c\udf6e",fitzpatrick_scale:!1,category:"food_and_drink"},candy:{keywords:["snack","dessert","sweet","lolly"],"char":"\ud83c\udf6c",fitzpatrick_scale:!1,category:"food_and_drink"},lollipop:{keywords:["food","snack","candy","sweet"],"char":"\ud83c\udf6d",fitzpatrick_scale:!1,category:"food_and_drink"},chocolate_bar:{keywords:["food","snack","dessert","sweet"],"char":"\ud83c\udf6b",fitzpatrick_scale:!1,category:"food_and_drink"},popcorn:{keywords:["food","movie theater","films","snack"],"char":"\ud83c\udf7f",fitzpatrick_scale:!1,category:"food_and_drink"},dumpling:{keywords:["food","empanada","pierogi","potsticker"],"char":"\ud83e\udd5f",fitzpatrick_scale:!1,category:"food_and_drink"},doughnut:{keywords:["food","dessert","snack","sweet","donut"],"char":"\ud83c\udf69",fitzpatrick_scale:!1,category:"food_and_drink"},cookie:{keywords:["food","snack","oreo","chocolate","sweet","dessert"],"char":"\ud83c\udf6a",fitzpatrick_scale:!1,category:"food_and_drink"},milk_glass:{keywords:["beverage","drink","cow"],"char":"\ud83e\udd5b",fitzpatrick_scale:!1,category:"food_and_drink"},beer:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],"char":"\ud83c\udf7a",fitzpatrick_scale:!1,category:"food_and_drink"},beers:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],"char":"\ud83c\udf7b",fitzpatrick_scale:!1,category:"food_and_drink"},clinking_glasses:{keywords:["beverage","drink","party","alcohol","celebrate","cheers","wine","champagne","toast"],"char":"\ud83e\udd42",fitzpatrick_scale:!1,category:"food_and_drink"},wine_glass:{keywords:["drink","beverage","drunk","alcohol","booze"],"char":"\ud83c\udf77",fitzpatrick_scale:!1,category:"food_and_drink"},tumbler_glass:{keywords:["drink","beverage","drunk","alcohol","liquor","booze","bourbon","scotch","whisky","glass","shot"],"char":"\ud83e\udd43",fitzpatrick_scale:!1,category:"food_and_drink"},cocktail:{keywords:["drink","drunk","alcohol","beverage","booze","mojito"],"char":"\ud83c\udf78",fitzpatrick_scale:!1,category:"food_and_drink"},tropical_drink:{keywords:["beverage","cocktail","summer","beach","alcohol","booze","mojito"],"char":"\ud83c\udf79",fitzpatrick_scale:!1,category:"food_and_drink"},champagne:{keywords:["drink","wine","bottle","celebration"],"char":"\ud83c\udf7e",fitzpatrick_scale:!1,category:"food_and_drink"},sake:{keywords:["wine","drink","drunk","beverage","japanese","alcohol","booze"],"char":"\ud83c\udf76",fitzpatrick_scale:!1,category:"food_and_drink"},tea:{keywords:["drink","bowl","breakfast","green","british"],"char":"\ud83c\udf75",fitzpatrick_scale:!1,category:"food_and_drink"},cup_with_straw:{keywords:["drink","soda"],"char":"\ud83e\udd64",fitzpatrick_scale:!1,category:"food_and_drink"},coffee:{keywords:["beverage","caffeine","latte","espresso"],"char":"\u2615",fitzpatrick_scale:!1,category:"food_and_drink"},baby_bottle:{keywords:["food","container","milk"],"char":"\ud83c\udf7c",fitzpatrick_scale:!1,category:"food_and_drink"},spoon:{keywords:["cutlery","kitchen","tableware"],"char":"\ud83e\udd44",fitzpatrick_scale:!1,category:"food_and_drink"},fork_and_knife:{keywords:["cutlery","kitchen"],"char":"\ud83c\udf74",fitzpatrick_scale:!1,category:"food_and_drink"},plate_with_cutlery:{keywords:["food","eat","meal","lunch","dinner","restaurant"],"char":"\ud83c\udf7d",fitzpatrick_scale:!1,category:"food_and_drink"},bowl_with_spoon:{keywords:["food","breakfast","cereal","oatmeal","porridge"],"char":"\ud83e\udd63",fitzpatrick_scale:!1,category:"food_and_drink"},takeout_box:{keywords:["food","leftovers"],"char":"\ud83e\udd61",fitzpatrick_scale:!1,category:"food_and_drink"},chopsticks:{keywords:["food"],"char":"\ud83e\udd62",fitzpatrick_scale:!1,category:"food_and_drink"},soccer:{keywords:["sports","football"],"char":"\u26bd",fitzpatrick_scale:!1,category:"activity"},basketball:{keywords:["sports","balls","NBA"],"char":"\ud83c\udfc0",fitzpatrick_scale:!1,category:"activity"},football:{keywords:["sports","balls","NFL"],"char":"\ud83c\udfc8",fitzpatrick_scale:!1,category:"activity"},baseball:{keywords:["sports","balls"],"char":"\u26be",fitzpatrick_scale:!1,category:"activity"},tennis:{keywords:["sports","balls","green"],"char":"\ud83c\udfbe",fitzpatrick_scale:!1,category:"activity"},volleyball:{keywords:["sports","balls"],"char":"\ud83c\udfd0",fitzpatrick_scale:!1,category:"activity"},rugby_football:{keywords:["sports","team"],"char":"\ud83c\udfc9",fitzpatrick_scale:!1,category:"activity"},"8ball":{keywords:["pool","hobby","game","luck","magic"],"char":"\ud83c\udfb1",fitzpatrick_scale:!1,category:"activity"},golf:{keywords:["sports","business","flag","hole","summer"],"char":"\u26f3",fitzpatrick_scale:!1,category:"activity"},golfing_woman:{keywords:["sports","business","woman","female"],"char":"\ud83c\udfcc\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"activity"},golfing_man:{keywords:["sports","business"],"char":"\ud83c\udfcc",fitzpatrick_scale:!0,category:"activity"},ping_pong:{keywords:["sports","pingpong"],"char":"\ud83c\udfd3",fitzpatrick_scale:!1,category:"activity"},badminton:{keywords:["sports"],"char":"\ud83c\udff8",fitzpatrick_scale:!1,category:"activity"},goal_net:{keywords:["sports"],"char":"\ud83e\udd45",fitzpatrick_scale:!1,category:"activity"},ice_hockey:{keywords:["sports"],"char":"\ud83c\udfd2",fitzpatrick_scale:!1,category:"activity"},field_hockey:{keywords:["sports"],"char":"\ud83c\udfd1",fitzpatrick_scale:!1,category:"activity"},cricket:{keywords:["sports"],"char":"\ud83c\udfcf",fitzpatrick_scale:!1,category:"activity"},ski:{keywords:["sports","winter","cold","snow"],"char":"\ud83c\udfbf",fitzpatrick_scale:!1,category:"activity"},skier:{keywords:["sports","winter","snow"],"char":"\u26f7",fitzpatrick_scale:!1,category:"activity"},snowboarder:{keywords:["sports","winter"],"char":"\ud83c\udfc2",fitzpatrick_scale:!0,category:"activity"},person_fencing:{keywords:["sports","fencing","sword"],"char":"\ud83e\udd3a",fitzpatrick_scale:!1,category:"activity"},women_wrestling:{keywords:["sports","wrestlers"],"char":"\ud83e\udd3c\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"activity"},men_wrestling:{keywords:["sports","wrestlers"],"char":"\ud83e\udd3c\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"activity"},woman_cartwheeling:{keywords:["gymnastics"],"char":"\ud83e\udd38\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_cartwheeling:{keywords:["gymnastics"],"char":"\ud83e\udd38\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},woman_playing_handball:{keywords:["sports"],"char":"\ud83e\udd3e\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_playing_handball:{keywords:["sports"],"char":"\ud83e\udd3e\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},ice_skate:{keywords:["sports"],"char":"\u26f8",fitzpatrick_scale:!1,category:"activity"},curling_stone:{keywords:["sports"],"char":"\ud83e\udd4c",fitzpatrick_scale:!1,category:"activity"},sled:{keywords:["sleigh","luge","toboggan"],"char":"\ud83d\udef7",fitzpatrick_scale:!1,category:"activity"},bow_and_arrow:{keywords:["sports"],"char":"\ud83c\udff9",fitzpatrick_scale:!1,category:"activity"},fishing_pole_and_fish:{keywords:["food","hobby","summer"],"char":"\ud83c\udfa3",fitzpatrick_scale:!1,category:"activity"},boxing_glove:{keywords:["sports","fighting"],"char":"\ud83e\udd4a",fitzpatrick_scale:!1,category:"activity"},martial_arts_uniform:{keywords:["judo","karate","taekwondo"],"char":"\ud83e\udd4b",fitzpatrick_scale:!1,category:"activity"},rowing_woman:{keywords:["sports","hobby","water","ship","woman","female"],"char":"\ud83d\udea3\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},rowing_man:{keywords:["sports","hobby","water","ship"],"char":"\ud83d\udea3",fitzpatrick_scale:!0,category:"activity"},climbing_woman:{keywords:["sports","hobby","woman","female","rock"],"char":"\ud83e\uddd7\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},climbing_man:{keywords:["sports","hobby","man","male","rock"],"char":"\ud83e\uddd7\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},swimming_woman:{keywords:["sports","exercise","human","athlete","water","summer","woman","female"],"char":"\ud83c\udfca\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},swimming_man:{keywords:["sports","exercise","human","athlete","water","summer"],"char":"\ud83c\udfca",fitzpatrick_scale:!0,category:"activity"},woman_playing_water_polo:{keywords:["sports","pool"],"char":"\ud83e\udd3d\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_playing_water_polo:{keywords:["sports","pool"],"char":"\ud83e\udd3d\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},woman_in_lotus_position:{keywords:["woman","female","meditation","yoga","serenity","zen","mindfulness"],"char":"\ud83e\uddd8\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_in_lotus_position:{keywords:["man","male","meditation","yoga","serenity","zen","mindfulness"],"char":"\ud83e\uddd8\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},surfing_woman:{keywords:["sports","ocean","sea","summer","beach","woman","female"],"char":"\ud83c\udfc4\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},surfing_man:{keywords:["sports","ocean","sea","summer","beach"],"char":"\ud83c\udfc4",fitzpatrick_scale:!0,category:"activity"},bath:{keywords:["clean","shower","bathroom"],"char":"\ud83d\udec0",fitzpatrick_scale:!0,category:"activity"},basketball_woman:{keywords:["sports","human","woman","female"],"char":"\u26f9\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},basketball_man:{keywords:["sports","human"],"char":"\u26f9",fitzpatrick_scale:!0,category:"activity"},weight_lifting_woman:{keywords:["sports","training","exercise","woman","female"],"char":"\ud83c\udfcb\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},weight_lifting_man:{keywords:["sports","training","exercise"],"char":"\ud83c\udfcb",fitzpatrick_scale:!0,category:"activity"},biking_woman:{keywords:["sports","bike","exercise","hipster","woman","female"],"char":"\ud83d\udeb4\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},biking_man:{keywords:["sports","bike","exercise","hipster"],"char":"\ud83d\udeb4",fitzpatrick_scale:!0,category:"activity"},mountain_biking_woman:{keywords:["transportation","sports","human","race","bike","woman","female"],"char":"\ud83d\udeb5\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},mountain_biking_man:{keywords:["transportation","sports","human","race","bike"],"char":"\ud83d\udeb5",fitzpatrick_scale:!0,category:"activity"},horse_racing:{keywords:["animal","betting","competition","gambling","luck"],"char":"\ud83c\udfc7",fitzpatrick_scale:!0,category:"activity"},business_suit_levitating:{keywords:["suit","business","levitate","hover","jump"],"char":"\ud83d\udd74",fitzpatrick_scale:!0,category:"activity"},trophy:{keywords:["win","award","contest","place","ftw","ceremony"],"char":"\ud83c\udfc6",fitzpatrick_scale:!1,category:"activity"},running_shirt_with_sash:{keywords:["play","pageant"],"char":"\ud83c\udfbd",fitzpatrick_scale:!1,category:"activity"},medal_sports:{keywords:["award","winning"],"char":"\ud83c\udfc5",fitzpatrick_scale:!1,category:"activity"},medal_military:{keywords:["award","winning","army"],"char":"\ud83c\udf96",fitzpatrick_scale:!1,category:"activity"},"1st_place_medal":{keywords:["award","winning","first"],"char":"\ud83e\udd47",fitzpatrick_scale:!1,category:"activity"},"2nd_place_medal":{keywords:["award","second"],"char":"\ud83e\udd48",fitzpatrick_scale:!1,category:"activity"},"3rd_place_medal":{keywords:["award","third"],"char":"\ud83e\udd49",fitzpatrick_scale:!1,category:"activity"},reminder_ribbon:{keywords:["sports","cause","support","awareness"],"char":"\ud83c\udf97",fitzpatrick_scale:!1,category:"activity"},rosette:{keywords:["flower","decoration","military"],"char":"\ud83c\udff5",fitzpatrick_scale:!1,category:"activity"},ticket:{keywords:["event","concert","pass"],"char":"\ud83c\udfab",fitzpatrick_scale:!1,category:"activity"},tickets:{keywords:["sports","concert","entrance"],"char":"\ud83c\udf9f",fitzpatrick_scale:!1,category:"activity"},performing_arts:{keywords:["acting","theater","drama"],"char":"\ud83c\udfad",fitzpatrick_scale:!1,category:"activity"},art:{keywords:["design","paint","draw","colors"],"char":"\ud83c\udfa8",fitzpatrick_scale:!1,category:"activity"},circus_tent:{keywords:["festival","carnival","party"],"char":"\ud83c\udfaa",fitzpatrick_scale:!1,category:"activity"},woman_juggling:{keywords:["juggle","balance","skill","multitask"],"char":"\ud83e\udd39\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_juggling:{keywords:["juggle","balance","skill","multitask"],"char":"\ud83e\udd39\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},microphone:{keywords:["sound","music","PA","sing","talkshow"],"char":"\ud83c\udfa4",fitzpatrick_scale:!1,category:"activity"},headphones:{keywords:["music","score","gadgets"],"char":"\ud83c\udfa7",fitzpatrick_scale:!1,category:"activity"},musical_score:{keywords:["treble","clef","compose"],"char":"\ud83c\udfbc",fitzpatrick_scale:!1,category:"activity"},musical_keyboard:{keywords:["piano","instrument","compose"],"char":"\ud83c\udfb9",fitzpatrick_scale:!1,category:"activity"},drum:{keywords:["music","instrument","drumsticks","snare"],"char":"\ud83e\udd41",fitzpatrick_scale:!1,category:"activity"},saxophone:{keywords:["music","instrument","jazz","blues"],"char":"\ud83c\udfb7",fitzpatrick_scale:!1,category:"activity"},trumpet:{keywords:["music","brass"],"char":"\ud83c\udfba",fitzpatrick_scale:!1,category:"activity"},guitar:{keywords:["music","instrument"],"char":"\ud83c\udfb8",fitzpatrick_scale:!1,category:"activity"},violin:{keywords:["music","instrument","orchestra","symphony"],"char":"\ud83c\udfbb",fitzpatrick_scale:!1,category:"activity"},clapper:{keywords:["movie","film","record"],"char":"\ud83c\udfac",fitzpatrick_scale:!1,category:"activity"},video_game:{keywords:["play","console","PS4","controller"],"char":"\ud83c\udfae",fitzpatrick_scale:!1,category:"activity"},space_invader:{keywords:["game","arcade","play"],"char":"\ud83d\udc7e",fitzpatrick_scale:!1,category:"activity"},dart:{keywords:["game","play","bar","target","bullseye"],"char":"\ud83c\udfaf",fitzpatrick_scale:!1,category:"activity"},game_die:{keywords:["dice","random","tabletop","play","luck"],"char":"\ud83c\udfb2",fitzpatrick_scale:!1,category:"activity"},slot_machine:{keywords:["bet","gamble","vegas","fruit machine","luck","casino"],"char":"\ud83c\udfb0",fitzpatrick_scale:!1,category:"activity"},bowling:{keywords:["sports","fun","play"],"char":"\ud83c\udfb3",fitzpatrick_scale:!1,category:"activity"},red_car:{keywords:["red","transportation","vehicle"],"char":"\ud83d\ude97",fitzpatrick_scale:!1,category:"travel_and_places"},taxi:{keywords:["uber","vehicle","cars","transportation"],"char":"\ud83d\ude95",fitzpatrick_scale:!1,category:"travel_and_places"},blue_car:{keywords:["transportation","vehicle"],"char":"\ud83d\ude99",fitzpatrick_scale:!1,category:"travel_and_places"},bus:{keywords:["car","vehicle","transportation"],"char":"\ud83d\ude8c",fitzpatrick_scale:!1,category:"travel_and_places"},trolleybus:{keywords:["bart","transportation","vehicle"],"char":"\ud83d\ude8e",fitzpatrick_scale:!1,category:"travel_and_places"},racing_car:{keywords:["sports","race","fast","formula","f1"],"char":"\ud83c\udfce",fitzpatrick_scale:!1,category:"travel_and_places"},police_car:{keywords:["vehicle","cars","transportation","law","legal","enforcement"],"char":"\ud83d\ude93",fitzpatrick_scale:!1,category:"travel_and_places"},ambulance:{keywords:["health","911","hospital"],"char":"\ud83d\ude91",fitzpatrick_scale:!1,category:"travel_and_places"},fire_engine:{keywords:["transportation","cars","vehicle"],"char":"\ud83d\ude92",fitzpatrick_scale:!1,category:"travel_and_places"},minibus:{keywords:["vehicle","car","transportation"],"char":"\ud83d\ude90",fitzpatrick_scale:!1,category:"travel_and_places"},truck:{keywords:["cars","transportation"],"char":"\ud83d\ude9a",fitzpatrick_scale:!1,category:"travel_and_places"},articulated_lorry:{keywords:["vehicle","cars","transportation","express"],"char":"\ud83d\ude9b",fitzpatrick_scale:!1,category:"travel_and_places"},tractor:{keywords:["vehicle","car","farming","agriculture"],"char":"\ud83d\ude9c",fitzpatrick_scale:!1,category:"travel_and_places"},kick_scooter:{keywords:["vehicle","kick","razor"],"char":"\ud83d\udef4",fitzpatrick_scale:!1,category:"travel_and_places"},motorcycle:{keywords:["race","sports","fast"],"char":"\ud83c\udfcd",fitzpatrick_scale:!1,category:"travel_and_places"},bike:{keywords:["sports","bicycle","exercise","hipster"],"char":"\ud83d\udeb2",fitzpatrick_scale:!1,category:"travel_and_places"},motor_scooter:{keywords:["vehicle","vespa","sasha"],"char":"\ud83d\udef5",fitzpatrick_scale:!1,category:"travel_and_places"},rotating_light:{keywords:["police","ambulance","911","emergency","alert","error","pinged","law","legal"],"char":"\ud83d\udea8",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_police_car:{keywords:["vehicle","law","legal","enforcement","911"],"char":"\ud83d\ude94",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_bus:{keywords:["vehicle","transportation"],"char":"\ud83d\ude8d",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_automobile:{keywords:["car","vehicle","transportation"],"char":"\ud83d\ude98",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_taxi:{keywords:["vehicle","cars","uber"],"char":"\ud83d\ude96",fitzpatrick_scale:!1,category:"travel_and_places"},aerial_tramway:{keywords:["transportation","vehicle","ski"],"char":"\ud83d\udea1",fitzpatrick_scale:!1,category:"travel_and_places"},mountain_cableway:{keywords:["transportation","vehicle","ski"],"char":"\ud83d\udea0",fitzpatrick_scale:!1,category:"travel_and_places"},suspension_railway:{keywords:["vehicle","transportation"],"char":"\ud83d\ude9f",fitzpatrick_scale:!1,category:"travel_and_places"},railway_car:{keywords:["transportation","vehicle"],"char":"\ud83d\ude83",fitzpatrick_scale:!1,category:"travel_and_places"},train:{keywords:["transportation","vehicle","carriage","public","travel"],"char":"\ud83d\ude8b",fitzpatrick_scale:!1,category:"travel_and_places"},monorail:{keywords:["transportation","vehicle"],"char":"\ud83d\ude9d",fitzpatrick_scale:!1,category:"travel_and_places"},bullettrain_side:{keywords:["transportation","vehicle"],"char":"\ud83d\ude84",fitzpatrick_scale:!1,category:"travel_and_places"},bullettrain_front:{keywords:["transportation","vehicle","speed","fast","public","travel"],"char":"\ud83d\ude85",fitzpatrick_scale:!1,category:"travel_and_places"},light_rail:{keywords:["transportation","vehicle"],"char":"\ud83d\ude88",fitzpatrick_scale:!1,category:"travel_and_places"},mountain_railway:{keywords:["transportation","vehicle"],"char":"\ud83d\ude9e",fitzpatrick_scale:!1,category:"travel_and_places"},steam_locomotive:{keywords:["transportation","vehicle","train"],"char":"\ud83d\ude82",fitzpatrick_scale:!1,category:"travel_and_places"},train2:{keywords:["transportation","vehicle"],"char":"\ud83d\ude86",fitzpatrick_scale:!1,category:"travel_and_places"},metro:{keywords:["transportation","blue-square","mrt","underground","tube"],"char":"\ud83d\ude87",fitzpatrick_scale:!1,category:"travel_and_places"},tram:{keywords:["transportation","vehicle"],"char":"\ud83d\ude8a",fitzpatrick_scale:!1,category:"travel_and_places"},station:{keywords:["transportation","vehicle","public"],"char":"\ud83d\ude89",fitzpatrick_scale:!1,category:"travel_and_places"},flying_saucer:{keywords:["transportation","vehicle","ufo"],"char":"\ud83d\udef8",fitzpatrick_scale:!1,category:"travel_and_places"},helicopter:{keywords:["transportation","vehicle","fly"],"char":"\ud83d\ude81",fitzpatrick_scale:!1,category:"travel_and_places"},small_airplane:{keywords:["flight","transportation","fly","vehicle"],"char":"\ud83d\udee9",fitzpatrick_scale:!1,category:"travel_and_places"},airplane:{keywords:["vehicle","transportation","flight","fly"],"char":"\u2708\ufe0f",fitzpatrick_scale:!1,category:"travel_and_places"},flight_departure:{keywords:["airport","flight","landing"],"char":"\ud83d\udeeb",fitzpatrick_scale:!1,category:"travel_and_places"},flight_arrival:{keywords:["airport","flight","boarding"],"char":"\ud83d\udeec",fitzpatrick_scale:!1,category:"travel_and_places"},sailboat:{keywords:["ship","summer","transportation","water","sailing"],"char":"\u26f5",fitzpatrick_scale:!1,category:"travel_and_places"},motor_boat:{keywords:["ship"],"char":"\ud83d\udee5",fitzpatrick_scale:!1,category:"travel_and_places"},speedboat:{keywords:["ship","transportation","vehicle","summer"],"char":"\ud83d\udea4",fitzpatrick_scale:!1,category:"travel_and_places"},ferry:{keywords:["boat","ship","yacht"],"char":"\u26f4",fitzpatrick_scale:!1,category:"travel_and_places"},passenger_ship:{keywords:["yacht","cruise","ferry"],"char":"\ud83d\udef3",fitzpatrick_scale:!1,category:"travel_and_places"},rocket:{keywords:["launch","ship","staffmode","NASA","outer space","outer_space","fly"],"char":"\ud83d\ude80",fitzpatrick_scale:!1,category:"travel_and_places"},artificial_satellite:{keywords:["communication","gps","orbit","spaceflight","NASA","ISS"],"char":"\ud83d\udef0",fitzpatrick_scale:!1,category:"travel_and_places"},seat:{keywords:["sit","airplane","transport","bus","flight","fly"],"char":"\ud83d\udcba",fitzpatrick_scale:!1,category:"travel_and_places"},canoe:{keywords:["boat","paddle","water","ship"],"char":"\ud83d\udef6",fitzpatrick_scale:!1,category:"travel_and_places"},anchor:{keywords:["ship","ferry","sea","boat"],"char":"\u2693",fitzpatrick_scale:!1,category:"travel_and_places"},construction:{keywords:["wip","progress","caution","warning"],"char":"\ud83d\udea7",fitzpatrick_scale:!1,category:"travel_and_places"},fuelpump:{keywords:["gas station","petroleum"],"char":"\u26fd",fitzpatrick_scale:!1,category:"travel_and_places"},busstop:{keywords:["transportation","wait"],"char":"\ud83d\ude8f",fitzpatrick_scale:!1,category:"travel_and_places"},vertical_traffic_light:{keywords:["transportation","driving"],"char":"\ud83d\udea6",fitzpatrick_scale:!1,category:"travel_and_places"},traffic_light:{keywords:["transportation","signal"],"char":"\ud83d\udea5",fitzpatrick_scale:!1,category:"travel_and_places"},checkered_flag:{keywords:["contest","finishline","race","gokart"],"char":"\ud83c\udfc1",fitzpatrick_scale:!1,category:"travel_and_places"},ship:{keywords:["transportation","titanic","deploy"],"char":"\ud83d\udea2",fitzpatrick_scale:!1,category:"travel_and_places"},ferris_wheel:{keywords:["photo","carnival","londoneye"],"char":"\ud83c\udfa1",fitzpatrick_scale:!1,category:"travel_and_places"},roller_coaster:{keywords:["carnival","playground","photo","fun"],"char":"\ud83c\udfa2",fitzpatrick_scale:!1,category:"travel_and_places"},carousel_horse:{keywords:["photo","carnival"],"char":"\ud83c\udfa0",fitzpatrick_scale:!1,category:"travel_and_places"},building_construction:{keywords:["wip","working","progress"],"char":"\ud83c\udfd7",fitzpatrick_scale:!1,category:"travel_and_places"},foggy:{keywords:["photo","mountain"],"char":"\ud83c\udf01",fitzpatrick_scale:!1,category:"travel_and_places"},tokyo_tower:{keywords:["photo","japanese"],"char":"\ud83d\uddfc",fitzpatrick_scale:!1,category:"travel_and_places"},factory:{keywords:["building","industry","pollution","smoke"],"char":"\ud83c\udfed",fitzpatrick_scale:!1,category:"travel_and_places"},fountain:{keywords:["photo","summer","water","fresh"],"char":"\u26f2",fitzpatrick_scale:!1,category:"travel_and_places"},rice_scene:{keywords:["photo","japan","asia","tsukimi"],"char":"\ud83c\udf91",fitzpatrick_scale:!1,category:"travel_and_places"},mountain:{keywords:["photo","nature","environment"],"char":"\u26f0",fitzpatrick_scale:!1,category:"travel_and_places"},mountain_snow:{keywords:["photo","nature","environment","winter","cold"],"char":"\ud83c\udfd4",fitzpatrick_scale:!1,category:"travel_and_places"},mount_fuji:{keywords:["photo","mountain","nature","japanese"],"char":"\ud83d\uddfb",fitzpatrick_scale:!1,category:"travel_and_places"},volcano:{keywords:["photo","nature","disaster"],"char":"\ud83c\udf0b",fitzpatrick_scale:!1,category:"travel_and_places"},japan:{keywords:["nation","country","japanese","asia"],"char":"\ud83d\uddfe",fitzpatrick_scale:!1,category:"travel_and_places"},camping:{keywords:["photo","outdoors","tent"],"char":"\ud83c\udfd5",fitzpatrick_scale:!1,category:"travel_and_places"},tent:{keywords:["photo","camping","outdoors"],"char":"\u26fa",fitzpatrick_scale:!1,category:"travel_and_places"},national_park:{keywords:["photo","environment","nature"],"char":"\ud83c\udfde",fitzpatrick_scale:!1,category:"travel_and_places"},motorway:{keywords:["road","cupertino","interstate","highway"],"char":"\ud83d\udee3",fitzpatrick_scale:!1,category:"travel_and_places"},railway_track:{keywords:["train","transportation"],"char":"\ud83d\udee4",fitzpatrick_scale:!1,category:"travel_and_places"},sunrise:{keywords:["morning","view","vacation","photo"],"char":"\ud83c\udf05",fitzpatrick_scale:!1,category:"travel_and_places"},sunrise_over_mountains:{keywords:["view","vacation","photo"],"char":"\ud83c\udf04",fitzpatrick_scale:!1,category:"travel_and_places"},desert:{keywords:["photo","warm","saharah"],"char":"\ud83c\udfdc",fitzpatrick_scale:!1,category:"travel_and_places"},beach_umbrella:{keywords:["weather","summer","sunny","sand","mojito"],"char":"\ud83c\udfd6",fitzpatrick_scale:!1,category:"travel_and_places"},desert_island:{keywords:["photo","tropical","mojito"],"char":"\ud83c\udfdd",fitzpatrick_scale:!1,category:"travel_and_places"},city_sunrise:{keywords:["photo","good morning","dawn"],"char":"\ud83c\udf07",fitzpatrick_scale:!1,category:"travel_and_places"},city_sunset:{keywords:["photo","evening","sky","buildings"],"char":"\ud83c\udf06",fitzpatrick_scale:!1,category:"travel_and_places"},cityscape:{keywords:["photo","night life","urban"],"char":"\ud83c\udfd9",fitzpatrick_scale:!1,category:"travel_and_places"},night_with_stars:{keywords:["evening","city","downtown"],"char":"\ud83c\udf03",fitzpatrick_scale:!1,category:"travel_and_places"},bridge_at_night:{keywords:["photo","sanfrancisco"],"char":"\ud83c\udf09",fitzpatrick_scale:!1,category:"travel_and_places"},milky_way:{keywords:["photo","space","stars"],"char":"\ud83c\udf0c",fitzpatrick_scale:!1,category:"travel_and_places"},stars:{keywords:["night","photo"],"char":"\ud83c\udf20",fitzpatrick_scale:!1,category:"travel_and_places"},sparkler:{keywords:["stars","night","shine"],"char":"\ud83c\udf87",fitzpatrick_scale:!1,category:"travel_and_places"},fireworks:{keywords:["photo","festival","carnival","congratulations"],"char":"\ud83c\udf86",fitzpatrick_scale:!1,category:"travel_and_places"},rainbow:{keywords:["nature","happy","unicorn_face","photo","sky","spring"],"char":"\ud83c\udf08",fitzpatrick_scale:!1,category:"travel_and_places"},houses:{keywords:["buildings","photo"],"char":"\ud83c\udfd8",fitzpatrick_scale:!1,category:"travel_and_places"},european_castle:{keywords:["building","royalty","history"],"char":"\ud83c\udff0",fitzpatrick_scale:!1,category:"travel_and_places"},japanese_castle:{keywords:["photo","building"],"char":"\ud83c\udfef",fitzpatrick_scale:!1,category:"travel_and_places"},stadium:{keywords:["photo","place","sports","concert","venue"],"char":"\ud83c\udfdf",fitzpatrick_scale:!1,category:"travel_and_places"},statue_of_liberty:{keywords:["american","newyork"],"char":"\ud83d\uddfd",fitzpatrick_scale:!1,category:"travel_and_places"},house:{keywords:["building","home"],"char":"\ud83c\udfe0",fitzpatrick_scale:!1,category:"travel_and_places"},house_with_garden:{keywords:["home","plant","nature"],"char":"\ud83c\udfe1",fitzpatrick_scale:!1,category:"travel_and_places"},derelict_house:{keywords:["abandon","evict","broken","building"],"char":"\ud83c\udfda",fitzpatrick_scale:!1,category:"travel_and_places"},office:{keywords:["building","bureau","work"],"char":"\ud83c\udfe2",fitzpatrick_scale:!1,category:"travel_and_places"},department_store:{keywords:["building","shopping","mall"],"char":"\ud83c\udfec",fitzpatrick_scale:!1,category:"travel_and_places"},post_office:{keywords:["building","envelope","communication"],"char":"\ud83c\udfe3",fitzpatrick_scale:!1,category:"travel_and_places"},european_post_office:{keywords:["building","email"],"char":"\ud83c\udfe4",fitzpatrick_scale:!1,category:"travel_and_places"},hospital:{keywords:["building","health","surgery","doctor"],"char":"\ud83c\udfe5",fitzpatrick_scale:!1,category:"travel_and_places"},bank:{keywords:["building","money","sales","cash","business","enterprise"],"char":"\ud83c\udfe6",fitzpatrick_scale:!1,category:"travel_and_places"},hotel:{keywords:["building","accomodation","checkin"],"char":"\ud83c\udfe8",fitzpatrick_scale:!1,category:"travel_and_places"},convenience_store:{keywords:["building","shopping","groceries"],"char":"\ud83c\udfea",fitzpatrick_scale:!1,category:"travel_and_places"},school:{keywords:["building","student","education","learn","teach"],"char":"\ud83c\udfeb",fitzpatrick_scale:!1,category:"travel_and_places"},love_hotel:{keywords:["like","affection","dating"],"char":"\ud83c\udfe9",fitzpatrick_scale:!1,category:"travel_and_places"},wedding:{keywords:["love","like","affection","couple","marriage","bride","groom"],"char":"\ud83d\udc92",fitzpatrick_scale:!1,category:"travel_and_places"},classical_building:{keywords:["art","culture","history"],"char":"\ud83c\udfdb",fitzpatrick_scale:!1,category:"travel_and_places"},church:{keywords:["building","religion","christ"],"char":"\u26ea",fitzpatrick_scale:!1,category:"travel_and_places"},mosque:{keywords:["islam","worship","minaret"],"char":"\ud83d\udd4c",fitzpatrick_scale:!1,category:"travel_and_places"},synagogue:{keywords:["judaism","worship","temple","jewish"],"char":"\ud83d\udd4d",fitzpatrick_scale:!1,category:"travel_and_places"},kaaba:{keywords:["mecca","mosque","islam"],"char":"\ud83d\udd4b",fitzpatrick_scale:!1,category:"travel_and_places"},shinto_shrine:{keywords:["temple","japan","kyoto"],"char":"\u26e9",fitzpatrick_scale:!1,category:"travel_and_places"},watch:{keywords:["time","accessories"],"char":"\u231a",fitzpatrick_scale:!1,category:"objects"},iphone:{keywords:["technology","apple","gadgets","dial"],"char":"\ud83d\udcf1",fitzpatrick_scale:!1,category:"objects"},calling:{keywords:["iphone","incoming"],"char":"\ud83d\udcf2",fitzpatrick_scale:!1,category:"objects"},computer:{keywords:["technology","laptop","screen","display","monitor"],"char":"\ud83d\udcbb",fitzpatrick_scale:!1,category:"objects"},keyboard:{keywords:["technology","computer","type","input","text"],"char":"\u2328",fitzpatrick_scale:!1,category:"objects"},desktop_computer:{keywords:["technology","computing","screen"],"char":"\ud83d\udda5",fitzpatrick_scale:!1,category:"objects"},printer:{keywords:["paper","ink"],"char":"\ud83d\udda8",fitzpatrick_scale:!1,category:"objects"},computer_mouse:{keywords:["click"],"char":"\ud83d\uddb1",fitzpatrick_scale:!1,category:"objects"},trackball:{keywords:["technology","trackpad"],"char":"\ud83d\uddb2",fitzpatrick_scale:!1,category:"objects"},joystick:{keywords:["game","play"],"char":"\ud83d\udd79",fitzpatrick_scale:!1,category:"objects"},clamp:{keywords:["tool"],"char":"\ud83d\udddc",fitzpatrick_scale:!1,category:"objects"},minidisc:{keywords:["technology","record","data","disk","90s"],"char":"\ud83d\udcbd",fitzpatrick_scale:!1,category:"objects"},floppy_disk:{keywords:["oldschool","technology","save","90s","80s"],"char":"\ud83d\udcbe",fitzpatrick_scale:!1,category:"objects"},cd:{keywords:["technology","dvd","disk","disc","90s"],"char":"\ud83d\udcbf",fitzpatrick_scale:!1,category:"objects"},dvd:{keywords:["cd","disk","disc"],"char":"\ud83d\udcc0",fitzpatrick_scale:!1,category:"objects"},vhs:{keywords:["record","video","oldschool","90s","80s"],"char":"\ud83d\udcfc",fitzpatrick_scale:!1,category:"objects"},camera:{keywords:["gadgets","photography"],"char":"\ud83d\udcf7",fitzpatrick_scale:!1,category:"objects"},camera_flash:{keywords:["photography","gadgets"],"char":"\ud83d\udcf8",fitzpatrick_scale:!1,category:"objects"},video_camera:{keywords:["film","record"],"char":"\ud83d\udcf9",fitzpatrick_scale:!1,category:"objects"},movie_camera:{keywords:["film","record"],"char":"\ud83c\udfa5",fitzpatrick_scale:!1,category:"objects"},film_projector:{keywords:["video","tape","record","movie"],"char":"\ud83d\udcfd",fitzpatrick_scale:!1,category:"objects"},film_strip:{keywords:["movie"],"char":"\ud83c\udf9e",fitzpatrick_scale:!1,category:"objects"},telephone_receiver:{keywords:["technology","communication","dial"],"char":"\ud83d\udcde",fitzpatrick_scale:!1,category:"objects"},phone:{keywords:["technology","communication","dial","telephone"],"char":"\u260e\ufe0f",fitzpatrick_scale:!1,category:"objects"},pager:{keywords:["bbcall","oldschool","90s"],"char":"\ud83d\udcdf",fitzpatrick_scale:!1,category:"objects"},fax:{keywords:["communication","technology"],"char":"\ud83d\udce0",fitzpatrick_scale:!1,category:"objects"},tv:{keywords:["technology","program","oldschool","show","television"],"char":"\ud83d\udcfa",fitzpatrick_scale:!1,category:"objects"},radio:{keywords:["communication","music","podcast","program"],"char":"\ud83d\udcfb",fitzpatrick_scale:!1,category:"objects"},studio_microphone:{keywords:["sing","recording","artist","talkshow"],"char":"\ud83c\udf99",fitzpatrick_scale:!1,category:"objects"},level_slider:{keywords:["scale"],"char":"\ud83c\udf9a",fitzpatrick_scale:!1,category:"objects"},control_knobs:{keywords:["dial"],"char":"\ud83c\udf9b",fitzpatrick_scale:!1,category:"objects"},stopwatch:{keywords:["time","deadline"],"char":"\u23f1",fitzpatrick_scale:!1,category:"objects"},timer_clock:{keywords:["alarm"],"char":"\u23f2",fitzpatrick_scale:!1,category:"objects"},alarm_clock:{keywords:["time","wake"],"char":"\u23f0",fitzpatrick_scale:!1,category:"objects"},mantelpiece_clock:{keywords:["time"],"char":"\ud83d\udd70",fitzpatrick_scale:!1,category:"objects"},hourglass_flowing_sand:{keywords:["oldschool","time","countdown"],"char":"\u23f3",fitzpatrick_scale:!1,category:"objects"},hourglass:{keywords:["time","clock","oldschool","limit","exam","quiz","test"],"char":"\u231b",fitzpatrick_scale:!1,category:"objects"},satellite:{keywords:["communication","future","radio","space"],"char":"\ud83d\udce1",fitzpatrick_scale:!1,category:"objects"},battery:{keywords:["power","energy","sustain"],"char":"\ud83d\udd0b",fitzpatrick_scale:!1,category:"objects"},electric_plug:{keywords:["charger","power"],"char":"\ud83d\udd0c",fitzpatrick_scale:!1,category:"objects"},bulb:{keywords:["light","electricity","idea"],"char":"\ud83d\udca1",fitzpatrick_scale:!1,category:"objects"},flashlight:{keywords:["dark","camping","sight","night"],"char":"\ud83d\udd26",fitzpatrick_scale:!1,category:"objects"},candle:{keywords:["fire","wax"],"char":"\ud83d\udd6f",fitzpatrick_scale:!1,category:"objects"},wastebasket:{keywords:["bin","trash","rubbish","garbage","toss"],"char":"\ud83d\uddd1",fitzpatrick_scale:!1,category:"objects"},oil_drum:{keywords:["barrell"],"char":"\ud83d\udee2",fitzpatrick_scale:!1,category:"objects"},money_with_wings:{keywords:["dollar","bills","payment","sale"],"char":"\ud83d\udcb8",fitzpatrick_scale:!1,category:"objects"},dollar:{keywords:["money","sales","bill","currency"],"char":"\ud83d\udcb5",fitzpatrick_scale:!1,category:"objects"},yen:{keywords:["money","sales","japanese","dollar","currency"],"char":"\ud83d\udcb4",fitzpatrick_scale:!1,category:"objects"},euro:{keywords:["money","sales","dollar","currency"],"char":"\ud83d\udcb6",fitzpatrick_scale:!1,category:"objects"},pound:{keywords:["british","sterling","money","sales","bills","uk","england","currency"],"char":"\ud83d\udcb7",fitzpatrick_scale:!1,category:"objects"},moneybag:{keywords:["dollar","payment","coins","sale"],"char":"\ud83d\udcb0",fitzpatrick_scale:!1,category:"objects"},credit_card:{keywords:["money","sales","dollar","bill","payment","shopping"],"char":"\ud83d\udcb3",fitzpatrick_scale:!1,category:"objects"},gem:{keywords:["blue","ruby","diamond","jewelry"],"char":"\ud83d\udc8e",fitzpatrick_scale:!1,category:"objects"},balance_scale:{keywords:["law","fairness","weight"],"char":"\u2696",fitzpatrick_scale:!1,category:"objects"},wrench:{keywords:["tools","diy","ikea","fix","maintainer"],"char":"\ud83d\udd27",fitzpatrick_scale:!1,category:"objects"},hammer:{keywords:["tools","build","create"],"char":"\ud83d\udd28",fitzpatrick_scale:!1,category:"objects"},hammer_and_pick:{keywords:["tools","build","create"],"char":"\u2692",fitzpatrick_scale:!1,category:"objects"},hammer_and_wrench:{keywords:["tools","build","create"],"char":"\ud83d\udee0",fitzpatrick_scale:!1,category:"objects"},pick:{keywords:["tools","dig"],"char":"\u26cf",fitzpatrick_scale:!1,category:"objects"},nut_and_bolt:{keywords:["handy","tools","fix"],"char":"\ud83d\udd29",fitzpatrick_scale:!1,category:"objects"},gear:{keywords:["cog"],"char":"\u2699",fitzpatrick_scale:!1,category:"objects"},chains:{keywords:["lock","arrest"],"char":"\u26d3",fitzpatrick_scale:!1,category:"objects"},gun:{keywords:["violence","weapon","pistol","revolver"],"char":"\ud83d\udd2b",fitzpatrick_scale:!1,category:"objects"},bomb:{keywords:["boom","explode","explosion","terrorism"],"char":"\ud83d\udca3",fitzpatrick_scale:!1,category:"objects"},hocho:{keywords:["knife","blade","cutlery","kitchen","weapon"],"char":"\ud83d\udd2a",fitzpatrick_scale:!1,category:"objects"},dagger:{keywords:["weapon"],"char":"\ud83d\udde1",fitzpatrick_scale:!1,category:"objects"},crossed_swords:{keywords:["weapon"],"char":"\u2694",fitzpatrick_scale:!1,category:"objects"},shield:{keywords:["protection","security"],"char":"\ud83d\udee1",fitzpatrick_scale:!1,category:"objects"},smoking:{keywords:["kills","tobacco","cigarette","joint","smoke"],"char":"\ud83d\udeac",fitzpatrick_scale:!1,category:"objects"},skull_and_crossbones:{keywords:["poison","danger","deadly","scary","death","pirate","evil"],"char":"\u2620",fitzpatrick_scale:!1,category:"objects"},coffin:{keywords:["vampire","dead","die","death","rip","graveyard","cemetery","casket","funeral","box"],"char":"\u26b0",fitzpatrick_scale:!1,category:"objects"},funeral_urn:{keywords:["dead","die","death","rip","ashes"],"char":"\u26b1",fitzpatrick_scale:!1,category:"objects"},amphora:{keywords:["vase","jar"],"char":"\ud83c\udffa",fitzpatrick_scale:!1,category:"objects"},crystal_ball:{keywords:["disco","party","magic","circus","fortune_teller"],"char":"\ud83d\udd2e",fitzpatrick_scale:!1,category:"objects"},prayer_beads:{keywords:["dhikr","religious"],"char":"\ud83d\udcff",fitzpatrick_scale:!1,category:"objects"},barber:{keywords:["hair","salon","style"],"char":"\ud83d\udc88",fitzpatrick_scale:!1,category:"objects"},alembic:{keywords:["distilling","science","experiment","chemistry"],"char":"\u2697",fitzpatrick_scale:!1,category:"objects"},telescope:{keywords:["stars","space","zoom","science","astronomy"],"char":"\ud83d\udd2d",fitzpatrick_scale:!1,category:"objects"},microscope:{keywords:["laboratory","experiment","zoomin","science","study"],"char":"\ud83d\udd2c",fitzpatrick_scale:!1,category:"objects"},hole:{keywords:["embarrassing"],"char":"\ud83d\udd73",fitzpatrick_scale:!1,category:"objects"},pill:{keywords:["health","medicine","doctor","pharmacy","drug"],"char":"\ud83d\udc8a",fitzpatrick_scale:!1,category:"objects"},syringe:{keywords:["health","hospital","drugs","blood","medicine","needle","doctor","nurse"],"char":"\ud83d\udc89",fitzpatrick_scale:!1,category:"objects"},thermometer:{keywords:["weather","temperature","hot","cold"],"char":"\ud83c\udf21",fitzpatrick_scale:!1,category:"objects"},label:{keywords:["sale","tag"],"char":"\ud83c\udff7",fitzpatrick_scale:!1,category:"objects"},bookmark:{keywords:["favorite","label","save"],"char":"\ud83d\udd16",fitzpatrick_scale:!1,category:"objects"},toilet:{keywords:["restroom","wc","washroom","bathroom","potty"],"char":"\ud83d\udebd",fitzpatrick_scale:!1,category:"objects"},shower:{keywords:["clean","water","bathroom"],"char":"\ud83d\udebf",fitzpatrick_scale:!1,category:"objects"},bathtub:{keywords:["clean","shower","bathroom"],"char":"\ud83d\udec1",fitzpatrick_scale:!1,category:"objects"},key:{keywords:["lock","door","password"],"char":"\ud83d\udd11",fitzpatrick_scale:!1,category:"objects"},old_key:{keywords:["lock","door","password"],"char":"\ud83d\udddd",fitzpatrick_scale:!1,category:"objects"},couch_and_lamp:{keywords:["read","chill"],"char":"\ud83d\udecb",fitzpatrick_scale:!1,category:"objects"},sleeping_bed:{keywords:["bed","rest"],"char":"\ud83d\udecc",fitzpatrick_scale:!0,category:"objects"},bed:{keywords:["sleep","rest"],"char":"\ud83d\udecf",fitzpatrick_scale:!1,category:"objects"},door:{keywords:["house","entry","exit"],"char":"\ud83d\udeaa",fitzpatrick_scale:!1,category:"objects"},bellhop_bell:{keywords:["service"],"char":"\ud83d\udece",fitzpatrick_scale:!1,category:"objects"},framed_picture:{keywords:["photography"],"char":"\ud83d\uddbc",fitzpatrick_scale:!1,category:"objects"},world_map:{keywords:["location","direction"],"char":"\ud83d\uddfa",fitzpatrick_scale:!1,category:"objects"},parasol_on_ground:{keywords:["weather","summer"],"char":"\u26f1",fitzpatrick_scale:!1,category:"objects"},moyai:{keywords:["rock","easter island","moai"],"char":"\ud83d\uddff",fitzpatrick_scale:!1,category:"objects"},shopping:{keywords:["mall","buy","purchase"],"char":"\ud83d\udecd",fitzpatrick_scale:!1,category:"objects"},shopping_cart:{keywords:["trolley"],"char":"\ud83d\uded2",fitzpatrick_scale:!1,category:"objects"},balloon:{keywords:["party","celebration","birthday","circus"],"char":"\ud83c\udf88",fitzpatrick_scale:!1,category:"objects"},flags:{keywords:["fish","japanese","koinobori","carp","banner"],"char":"\ud83c\udf8f",fitzpatrick_scale:!1,category:"objects"},ribbon:{keywords:["decoration","pink","girl","bowtie"],"char":"\ud83c\udf80",fitzpatrick_scale:!1,category:"objects"},gift:{keywords:["present","birthday","christmas","xmas"],"char":"\ud83c\udf81",fitzpatrick_scale:!1,category:"objects"},confetti_ball:{keywords:["festival","party","birthday","circus"],"char":"\ud83c\udf8a",fitzpatrick_scale:!1,category:"objects"},tada:{keywords:["party","congratulations","birthday","magic","circus","celebration"],"char":"\ud83c\udf89",fitzpatrick_scale:!1,category:"objects"},dolls:{keywords:["japanese","toy","kimono"],"char":"\ud83c\udf8e",fitzpatrick_scale:!1,category:"objects"},wind_chime:{keywords:["nature","ding","spring","bell"],"char":"\ud83c\udf90",fitzpatrick_scale:!1,category:"objects"},crossed_flags:{keywords:["japanese","nation","country","border"],"char":"\ud83c\udf8c",fitzpatrick_scale:!1,category:"objects"},izakaya_lantern:{keywords:["light","paper","halloween","spooky"],"char":"\ud83c\udfee",fitzpatrick_scale:!1,category:"objects"},email:{keywords:["letter","postal","inbox","communication"],"char":"\u2709\ufe0f",fitzpatrick_scale:!1,category:"objects"},envelope_with_arrow:{keywords:["email","communication"],"char":"\ud83d\udce9",fitzpatrick_scale:!1,category:"objects"},incoming_envelope:{keywords:["email","inbox"],"char":"\ud83d\udce8",fitzpatrick_scale:!1,category:"objects"},"e-mail":{keywords:["communication","inbox"],"char":"\ud83d\udce7",fitzpatrick_scale:!1,category:"objects"},love_letter:{keywords:["email","like","affection","envelope","valentines"],"char":"\ud83d\udc8c",fitzpatrick_scale:!1,category:"objects"},postbox:{keywords:["email","letter","envelope"],"char":"\ud83d\udcee",fitzpatrick_scale:!1,category:"objects"},mailbox_closed:{keywords:["email","communication","inbox"],"char":"\ud83d\udcea",fitzpatrick_scale:!1,category:"objects"},mailbox:{keywords:["email","inbox","communication"],"char":"\ud83d\udceb",fitzpatrick_scale:!1,category:"objects"},mailbox_with_mail:{keywords:["email","inbox","communication"],"char":"\ud83d\udcec",fitzpatrick_scale:!1,category:"objects"},mailbox_with_no_mail:{keywords:["email","inbox"],"char":"\ud83d\udced",fitzpatrick_scale:!1,category:"objects"},"package":{keywords:["mail","gift","cardboard","box","moving"],"char":"\ud83d\udce6",fitzpatrick_scale:!1,category:"objects"},postal_horn:{keywords:["instrument","music"],"char":"\ud83d\udcef",fitzpatrick_scale:!1,category:"objects"},inbox_tray:{keywords:["email","documents"],"char":"\ud83d\udce5",fitzpatrick_scale:!1,category:"objects"},outbox_tray:{keywords:["inbox","email"],"char":"\ud83d\udce4",fitzpatrick_scale:!1,category:"objects"},scroll:{keywords:["documents","ancient","history","paper"],"char":"\ud83d\udcdc",fitzpatrick_scale:!1,category:"objects"},page_with_curl:{keywords:["documents","office","paper"],"char":"\ud83d\udcc3",fitzpatrick_scale:!1,category:"objects"},bookmark_tabs:{keywords:["favorite","save","order","tidy"],"char":"\ud83d\udcd1",fitzpatrick_scale:!1,category:"objects"},bar_chart:{keywords:["graph","presentation","stats"],"char":"\ud83d\udcca",fitzpatrick_scale:!1,category:"objects"},chart_with_upwards_trend:{keywords:["graph","presentation","stats","recovery","business","economics","money","sales","good","success"],"char":"\ud83d\udcc8",fitzpatrick_scale:!1,category:"objects"},chart_with_downwards_trend:{keywords:["graph","presentation","stats","recession","business","economics","money","sales","bad","failure"],"char":"\ud83d\udcc9",fitzpatrick_scale:!1,category:"objects"},page_facing_up:{keywords:["documents","office","paper","information"],"char":"\ud83d\udcc4",fitzpatrick_scale:!1,category:"objects"},date:{keywords:["calendar","schedule"],"char":"\ud83d\udcc5",fitzpatrick_scale:!1,category:"objects"},calendar:{keywords:["schedule","date","planning"],"char":"\ud83d\udcc6",fitzpatrick_scale:!1,category:"objects"},spiral_calendar:{keywords:["date","schedule","planning"],"char":"\ud83d\uddd3",fitzpatrick_scale:!1,category:"objects"},card_index:{keywords:["business","stationery"],"char":"\ud83d\udcc7",fitzpatrick_scale:!1,category:"objects"},card_file_box:{keywords:["business","stationery"],"char":"\ud83d\uddc3",fitzpatrick_scale:!1,category:"objects"},ballot_box:{keywords:["election","vote"],"char":"\ud83d\uddf3",fitzpatrick_scale:!1,category:"objects"},file_cabinet:{keywords:["filing","organizing"],"char":"\ud83d\uddc4",fitzpatrick_scale:!1,category:"objects"},clipboard:{keywords:["stationery","documents"],"char":"\ud83d\udccb",fitzpatrick_scale:!1,category:"objects"},spiral_notepad:{keywords:["memo","stationery"],"char":"\ud83d\uddd2",fitzpatrick_scale:!1,category:"objects"},file_folder:{keywords:["documents","business","office"],"char":"\ud83d\udcc1",fitzpatrick_scale:!1,category:"objects"},open_file_folder:{keywords:["documents","load"],"char":"\ud83d\udcc2",fitzpatrick_scale:!1,category:"objects"},card_index_dividers:{keywords:["organizing","business","stationery"],"char":"\ud83d\uddc2",fitzpatrick_scale:!1,category:"objects"},newspaper_roll:{keywords:["press","headline"],"char":"\ud83d\uddde",fitzpatrick_scale:!1,category:"objects"},newspaper:{keywords:["press","headline"],"char":"\ud83d\udcf0",fitzpatrick_scale:!1,category:"objects"},notebook:{keywords:["stationery","record","notes","paper","study"],"char":"\ud83d\udcd3",fitzpatrick_scale:!1,category:"objects"},closed_book:{keywords:["read","library","knowledge","textbook","learn"],"char":"\ud83d\udcd5",fitzpatrick_scale:!1,category:"objects"},green_book:{keywords:["read","library","knowledge","study"],"char":"\ud83d\udcd7",fitzpatrick_scale:!1,category:"objects"},blue_book:{keywords:["read","library","knowledge","learn","study"],"char":"\ud83d\udcd8",fitzpatrick_scale:!1,category:"objects"},orange_book:{keywords:["read","library","knowledge","textbook","study"],"char":"\ud83d\udcd9",fitzpatrick_scale:!1,category:"objects"},notebook_with_decorative_cover:{keywords:["classroom","notes","record","paper","study"],"char":"\ud83d\udcd4",fitzpatrick_scale:!1,category:"objects"},ledger:{keywords:["notes","paper"],"char":"\ud83d\udcd2",fitzpatrick_scale:!1,category:"objects"},books:{keywords:["literature","library","study"],"char":"\ud83d\udcda",fitzpatrick_scale:!1,category:"objects"},open_book:{keywords:["book","read","library","knowledge","literature","learn","study"],"char":"\ud83d\udcd6",fitzpatrick_scale:!1,category:"objects"},link:{keywords:["rings","url"],"char":"\ud83d\udd17",fitzpatrick_scale:!1,category:"objects"},paperclip:{keywords:["documents","stationery"],"char":"\ud83d\udcce",fitzpatrick_scale:!1,category:"objects"},paperclips:{keywords:["documents","stationery"],"char":"\ud83d\udd87",fitzpatrick_scale:!1,category:"objects"},scissors:{keywords:["stationery","cut"],"char":"\u2702\ufe0f",fitzpatrick_scale:!1,category:"objects"},triangular_ruler:{keywords:["stationery","math","architect","sketch"],"char":"\ud83d\udcd0",fitzpatrick_scale:!1,category:"objects"},straight_ruler:{keywords:["stationery","calculate","length","math","school","drawing","architect","sketch"],"char":"\ud83d\udccf",fitzpatrick_scale:!1,category:"objects"},pushpin:{keywords:["stationery","mark","here"],"char":"\ud83d\udccc",fitzpatrick_scale:!1,category:"objects"},round_pushpin:{keywords:["stationery","location","map","here"],"char":"\ud83d\udccd",fitzpatrick_scale:!1,category:"objects"},triangular_flag_on_post:{keywords:["mark","milestone","place"],"char":"\ud83d\udea9",fitzpatrick_scale:!1,category:"objects"},white_flag:{keywords:["losing","loser","lost","surrender","give up","fail"],"char":"\ud83c\udff3",fitzpatrick_scale:!1,category:"objects"},black_flag:{keywords:["pirate"],"char":"\ud83c\udff4",fitzpatrick_scale:!1,category:"objects"},rainbow_flag:{keywords:["flag","rainbow","pride","gay","lgbt","glbt","queer","homosexual","lesbian","bisexual","transgender"],"char":"\ud83c\udff3\ufe0f\u200d\ud83c\udf08",fitzpatrick_scale:!1,category:"objects"},closed_lock_with_key:{keywords:["security","privacy"],"char":"\ud83d\udd10",fitzpatrick_scale:!1,category:"objects"},lock:{keywords:["security","password","padlock"],"char":"\ud83d\udd12",fitzpatrick_scale:!1,category:"objects"},unlock:{keywords:["privacy","security"],"char":"\ud83d\udd13",fitzpatrick_scale:!1,category:"objects"},lock_with_ink_pen:{keywords:["security","secret"],"char":"\ud83d\udd0f",fitzpatrick_scale:!1,category:"objects"},pen:{keywords:["stationery","writing","write"],"char":"\ud83d\udd8a",fitzpatrick_scale:!1,category:"objects"},fountain_pen:{keywords:["stationery","writing","write"],"char":"\ud83d\udd8b",fitzpatrick_scale:!1,category:"objects"},black_nib:{keywords:["pen","stationery","writing","write"],"char":"\u2712\ufe0f",fitzpatrick_scale:!1,category:"objects"},memo:{keywords:["write","documents","stationery","pencil","paper","writing","legal","exam","quiz","test","study","compose"],"char":"\ud83d\udcdd",fitzpatrick_scale:!1,category:"objects"},pencil2:{keywords:["stationery","write","paper","writing","school","study"],"char":"\u270f\ufe0f",fitzpatrick_scale:!1,category:"objects"},crayon:{keywords:["drawing","creativity"],"char":"\ud83d\udd8d",fitzpatrick_scale:!1,category:"objects"},paintbrush:{keywords:["drawing","creativity","art"],"char":"\ud83d\udd8c",fitzpatrick_scale:!1,category:"objects"},mag:{keywords:["search","zoom","find","detective"],"char":"\ud83d\udd0d",fitzpatrick_scale:!1,category:"objects"},mag_right:{keywords:["search","zoom","find","detective"],"char":"\ud83d\udd0e",fitzpatrick_scale:!1,category:"objects"},heart:{keywords:["love","like","valentines"],"char":"\u2764\ufe0f",fitzpatrick_scale:!1,category:"symbols"},orange_heart:{keywords:["love","like","affection","valentines"],"char":"\ud83e\udde1",fitzpatrick_scale:!1,category:"symbols"},yellow_heart:{keywords:["love","like","affection","valentines"],"char":"\ud83d\udc9b",fitzpatrick_scale:!1,category:"symbols"},green_heart:{keywords:["love","like","affection","valentines"],"char":"\ud83d\udc9a",fitzpatrick_scale:!1,category:"symbols"},blue_heart:{keywords:["love","like","affection","valentines"],"char":"\ud83d\udc99",fitzpatrick_scale:!1,category:"symbols"},purple_heart:{keywords:["love","like","affection","valentines"],"char":"\ud83d\udc9c",fitzpatrick_scale:!1,category:"symbols"},black_heart:{keywords:["evil"],"char":"\ud83d\udda4",fitzpatrick_scale:!1,category:"symbols"},broken_heart:{keywords:["sad","sorry","break","heart","heartbreak"],"char":"\ud83d\udc94",fitzpatrick_scale:!1,category:"symbols"},heavy_heart_exclamation:{keywords:["decoration","love"],"char":"\u2763",fitzpatrick_scale:!1,category:"symbols"},two_hearts:{keywords:["love","like","affection","valentines","heart"],"char":"\ud83d\udc95",fitzpatrick_scale:!1,category:"symbols"},revolving_hearts:{keywords:["love","like","affection","valentines"],"char":"\ud83d\udc9e",fitzpatrick_scale:!1,category:"symbols"},heartbeat:{keywords:["love","like","affection","valentines","pink","heart"],"char":"\ud83d\udc93",fitzpatrick_scale:!1,category:"symbols"},heartpulse:{keywords:["like","love","affection","valentines","pink"],"char":"\ud83d\udc97",fitzpatrick_scale:!1,category:"symbols"},sparkling_heart:{keywords:["love","like","affection","valentines"],"char":"\ud83d\udc96",fitzpatrick_scale:!1,category:"symbols"},cupid:{keywords:["love","like","heart","affection","valentines"],"char":"\ud83d\udc98",fitzpatrick_scale:!1,category:"symbols"},gift_heart:{keywords:["love","valentines"],"char":"\ud83d\udc9d",fitzpatrick_scale:!1,category:"symbols"},heart_decoration:{keywords:["purple-square","love","like"],"char":"\ud83d\udc9f",fitzpatrick_scale:!1,category:"symbols"},peace_symbol:{keywords:["hippie"],"char":"\u262e",fitzpatrick_scale:!1,category:"symbols"},latin_cross:{keywords:["christianity"],"char":"\u271d",fitzpatrick_scale:!1,category:"symbols"},star_and_crescent:{keywords:["islam"],"char":"\u262a",fitzpatrick_scale:!1,category:"symbols"},om:{keywords:["hinduism","buddhism","sikhism","jainism"],"char":"\ud83d\udd49",fitzpatrick_scale:!1,category:"symbols"},wheel_of_dharma:{keywords:["hinduism","buddhism","sikhism","jainism"],"char":"\u2638",fitzpatrick_scale:!1,category:"symbols"},star_of_david:{keywords:["judaism"],"char":"\u2721",fitzpatrick_scale:!1,category:"symbols"},six_pointed_star:{keywords:["purple-square","religion","jewish","hexagram"],"char":"\ud83d\udd2f",fitzpatrick_scale:!1,category:"symbols"},menorah:{keywords:["hanukkah","candles","jewish"],"char":"\ud83d\udd4e",fitzpatrick_scale:!1,category:"symbols"},yin_yang:{keywords:["balance"],"char":"\u262f",fitzpatrick_scale:!1,category:"symbols"},orthodox_cross:{keywords:["suppedaneum","religion"],"char":"\u2626",fitzpatrick_scale:!1,category:"symbols"},place_of_worship:{keywords:["religion","church","temple","prayer"],"char":"\ud83d\uded0",fitzpatrick_scale:!1,category:"symbols"},ophiuchus:{keywords:["sign","purple-square","constellation","astrology"],"char":"\u26ce",fitzpatrick_scale:!1,category:"symbols"},aries:{keywords:["sign","purple-square","zodiac","astrology"],"char":"\u2648",fitzpatrick_scale:!1,category:"symbols"},taurus:{keywords:["purple-square","sign","zodiac","astrology"],"char":"\u2649",fitzpatrick_scale:!1,category:"symbols"},gemini:{keywords:["sign","zodiac","purple-square","astrology"],"char":"\u264a",fitzpatrick_scale:!1,category:"symbols"},cancer:{keywords:["sign","zodiac","purple-square","astrology"],"char":"\u264b",fitzpatrick_scale:!1,category:"symbols"},leo:{keywords:["sign","purple-square","zodiac","astrology"],"char":"\u264c",fitzpatrick_scale:!1,category:"symbols"},virgo:{keywords:["sign","zodiac","purple-square","astrology"],"char":"\u264d",fitzpatrick_scale:!1,category:"symbols"},libra:{keywords:["sign","purple-square","zodiac","astrology"],"char":"\u264e",fitzpatrick_scale:!1,category:"symbols"},scorpius:{keywords:["sign","zodiac","purple-square","astrology","scorpio"],"char":"\u264f",fitzpatrick_scale:!1,category:"symbols"},sagittarius:{keywords:["sign","zodiac","purple-square","astrology"],"char":"\u2650",fitzpatrick_scale:!1,category:"symbols"},capricorn:{keywords:["sign","zodiac","purple-square","astrology"],"char":"\u2651",fitzpatrick_scale:!1,category:"symbols"},aquarius:{keywords:["sign","purple-square","zodiac","astrology"],"char":"\u2652",fitzpatrick_scale:!1,category:"symbols"},pisces:{keywords:["purple-square","sign","zodiac","astrology"],"char":"\u2653",fitzpatrick_scale:!1,category:"symbols"},id:{keywords:["purple-square","words"],"char":"\ud83c\udd94",fitzpatrick_scale:!1,category:"symbols"},atom_symbol:{keywords:["science","physics","chemistry"],"char":"\u269b",fitzpatrick_scale:!1,category:"symbols"},u7a7a:{keywords:["kanji","japanese","chinese","empty","sky","blue-square"],"char":"\ud83c\ude33",fitzpatrick_scale:!1,category:"symbols"},u5272:{keywords:["cut","divide","chinese","kanji","pink-square"],"char":"\ud83c\ude39",fitzpatrick_scale:!1,category:"symbols"},radioactive:{keywords:["nuclear","danger"],"char":"\u2622",fitzpatrick_scale:!1,category:"symbols"},biohazard:{keywords:["danger"],"char":"\u2623",fitzpatrick_scale:!1,category:"symbols"},mobile_phone_off:{keywords:["mute","orange-square","silence","quiet"],"char":"\ud83d\udcf4",fitzpatrick_scale:!1,category:"symbols"},vibration_mode:{keywords:["orange-square","phone"],"char":"\ud83d\udcf3",fitzpatrick_scale:!1,category:"symbols"},u6709:{keywords:["orange-square","chinese","have","kanji"],"char":"\ud83c\ude36",fitzpatrick_scale:!1,category:"symbols"},u7121:{keywords:["nothing","chinese","kanji","japanese","orange-square"],"char":"\ud83c\ude1a",fitzpatrick_scale:!1,category:"symbols"},u7533:{keywords:["chinese","japanese","kanji","orange-square"],"char":"\ud83c\ude38",fitzpatrick_scale:!1,category:"symbols"},u55b6:{keywords:["japanese","opening hours","orange-square"],"char":"\ud83c\ude3a",fitzpatrick_scale:!1,category:"symbols"},u6708:{keywords:["chinese","month","moon","japanese","orange-square","kanji"],"char":"\ud83c\ude37\ufe0f",fitzpatrick_scale:!1,category:"symbols"},eight_pointed_black_star:{keywords:["orange-square","shape","polygon"],"char":"\u2734\ufe0f",fitzpatrick_scale:!1,category:"symbols"},vs:{keywords:["words","orange-square"],"char":"\ud83c\udd9a",fitzpatrick_scale:!1,category:"symbols"},accept:{keywords:["ok","good","chinese","kanji","agree","yes","orange-circle"],"char":"\ud83c\ude51",fitzpatrick_scale:!1,category:"symbols"},white_flower:{keywords:["japanese","spring"],"char":"\ud83d\udcae",fitzpatrick_scale:!1,category:"symbols"},ideograph_advantage:{keywords:["chinese","kanji","obtain","get","circle"],"char":"\ud83c\ude50",fitzpatrick_scale:!1,category:"symbols"},secret:{keywords:["privacy","chinese","sshh","kanji","red-circle"],"char":"\u3299\ufe0f",fitzpatrick_scale:!1,category:"symbols"},congratulations:{keywords:["chinese","kanji","japanese","red-circle"],"char":"\u3297\ufe0f",fitzpatrick_scale:!1,category:"symbols"},u5408:{keywords:["japanese","chinese","join","kanji","red-square"],"char":"\ud83c\ude34",fitzpatrick_scale:!1,category:"symbols"},u6e80:{keywords:["full","chinese","japanese","red-square","kanji"],"char":"\ud83c\ude35",fitzpatrick_scale:!1,category:"symbols"},u7981:{keywords:["kanji","japanese","chinese","forbidden","limit","restricted","red-square"],"char":"\ud83c\ude32",fitzpatrick_scale:!1,category:"symbols"},a:{keywords:["red-square","alphabet","letter"],"char":"\ud83c\udd70\ufe0f",fitzpatrick_scale:!1,category:"symbols"},b:{keywords:["red-square","alphabet","letter"],"char":"\ud83c\udd71\ufe0f",fitzpatrick_scale:!1,category:"symbols"},ab:{keywords:["red-square","alphabet"],"char":"\ud83c\udd8e",fitzpatrick_scale:!1,category:"symbols"},cl:{keywords:["alphabet","words","red-square"],"char":"\ud83c\udd91",fitzpatrick_scale:!1,category:"symbols"},o2:{keywords:["alphabet","red-square","letter"],"char":"\ud83c\udd7e\ufe0f",fitzpatrick_scale:!1,category:"symbols"},sos:{keywords:["help","red-square","words","emergency","911"],"char":"\ud83c\udd98",fitzpatrick_scale:!1,category:"symbols"},no_entry:{keywords:["limit","security","privacy","bad","denied","stop","circle"],"char":"\u26d4",fitzpatrick_scale:!1,category:"symbols"},name_badge:{keywords:["fire","forbid"],"char":"\ud83d\udcdb",fitzpatrick_scale:!1,category:"symbols"},no_entry_sign:{keywords:["forbid","stop","limit","denied","disallow","circle"],"char":"\ud83d\udeab",fitzpatrick_scale:!1,category:"symbols"},x:{keywords:["no","delete","remove","cancel"],"char":"\u274c",fitzpatrick_scale:!1,category:"symbols"},o:{keywords:["circle","round"],"char":"\u2b55",fitzpatrick_scale:!1,category:"symbols"},stop_sign:{keywords:["stop"],"char":"\ud83d\uded1",fitzpatrick_scale:!1,category:"symbols"},anger:{keywords:["angry","mad"],"char":"\ud83d\udca2",fitzpatrick_scale:!1,category:"symbols"},hotsprings:{keywords:["bath","warm","relax"],"char":"\u2668\ufe0f",fitzpatrick_scale:!1,category:"symbols"},no_pedestrians:{keywords:["rules","crossing","walking","circle"],"char":"\ud83d\udeb7",fitzpatrick_scale:!1,category:"symbols"},do_not_litter:{keywords:["trash","bin","garbage","circle"],"char":"\ud83d\udeaf",fitzpatrick_scale:!1,category:"symbols"},no_bicycles:{keywords:["cyclist","prohibited","circle"],"char":"\ud83d\udeb3",fitzpatrick_scale:!1,category:"symbols"},"non-potable_water":{keywords:["drink","faucet","tap","circle"],"char":"\ud83d\udeb1",fitzpatrick_scale:!1,category:"symbols"},underage:{keywords:["18","drink","pub","night","minor","circle"],"char":"\ud83d\udd1e",fitzpatrick_scale:!1,category:"symbols"},no_mobile_phones:{keywords:["iphone","mute","circle"],"char":"\ud83d\udcf5",fitzpatrick_scale:!1,category:"symbols"},exclamation:{keywords:["heavy_exclamation_mark","danger","surprise","punctuation","wow","warning"],"char":"\u2757",fitzpatrick_scale:!1,category:"symbols"},grey_exclamation:{keywords:["surprise","punctuation","gray","wow","warning"],"char":"\u2755",fitzpatrick_scale:!1,category:"symbols"},question:{keywords:["doubt","confused"],"char":"\u2753",fitzpatrick_scale:!1,category:"symbols"},grey_question:{keywords:["doubts","gray","huh","confused"],"char":"\u2754",fitzpatrick_scale:!1,category:"symbols"},bangbang:{keywords:["exclamation","surprise"],"char":"\u203c\ufe0f",fitzpatrick_scale:!1,category:"symbols"},interrobang:{keywords:["wat","punctuation","surprise"],"char":"\u2049\ufe0f",fitzpatrick_scale:!1,category:"symbols"},100:{keywords:["score","perfect","numbers","century","exam","quiz","test","pass","hundred"],"char":"\ud83d\udcaf",fitzpatrick_scale:!1,category:"symbols"},low_brightness:{keywords:["sun","afternoon","warm","summer"],"char":"\ud83d\udd05",fitzpatrick_scale:!1,category:"symbols"},high_brightness:{keywords:["sun","light"],"char":"\ud83d\udd06",fitzpatrick_scale:!1,category:"symbols"},trident:{keywords:["weapon","spear"],"char":"\ud83d\udd31",fitzpatrick_scale:!1,category:"symbols"},fleur_de_lis:{keywords:["decorative","scout"],"char":"\u269c",fitzpatrick_scale:!1,category:"symbols"},part_alternation_mark:{keywords:["graph","presentation","stats","business","economics","bad"],"char":"\u303d\ufe0f",fitzpatrick_scale:!1,category:"symbols"},warning:{keywords:["exclamation","wip","alert","error","problem","issue"],"char":"\u26a0\ufe0f",fitzpatrick_scale:!1,category:"symbols"},children_crossing:{keywords:["school","warning","danger","sign","driving","yellow-diamond"],"char":"\ud83d\udeb8",fitzpatrick_scale:!1,category:"symbols"},beginner:{keywords:["badge","shield"],"char":"\ud83d\udd30",fitzpatrick_scale:!1,category:"symbols"},recycle:{keywords:["arrow","environment","garbage","trash"],"char":"\u267b\ufe0f",fitzpatrick_scale:!1,category:"symbols"},u6307:{keywords:["chinese","point","green-square","kanji"],"char":"\ud83c\ude2f",fitzpatrick_scale:!1,category:"symbols"},chart:{keywords:["green-square","graph","presentation","stats"],"char":"\ud83d\udcb9",fitzpatrick_scale:!1,category:"symbols"},sparkle:{keywords:["stars","green-square","awesome","good","fireworks"],"char":"\u2747\ufe0f",fitzpatrick_scale:!1,category:"symbols"},eight_spoked_asterisk:{keywords:["star","sparkle","green-square"],"char":"\u2733\ufe0f",fitzpatrick_scale:!1,category:"symbols"},negative_squared_cross_mark:{keywords:["x","green-square","no","deny"],"char":"\u274e",fitzpatrick_scale:!1,category:"symbols"},white_check_mark:{keywords:["green-square","ok","agree","vote","election","answer","tick"],"char":"\u2705",fitzpatrick_scale:!1,category:"symbols"},diamond_shape_with_a_dot_inside:{keywords:["jewel","blue","gem","crystal","fancy"],"char":"\ud83d\udca0",fitzpatrick_scale:!1,category:"symbols"},cyclone:{keywords:["weather","swirl","blue","cloud","vortex","spiral","whirlpool","spin","tornado","hurricane","typhoon"],"char":"\ud83c\udf00",fitzpatrick_scale:!1,category:"symbols"},loop:{keywords:["tape","cassette"],"char":"\u27bf",fitzpatrick_scale:!1,category:"symbols"},globe_with_meridians:{keywords:["earth","international","world","internet","interweb","i18n"],"char":"\ud83c\udf10",fitzpatrick_scale:!1,category:"symbols"},m:{keywords:["alphabet","blue-circle","letter"],"char":"\u24c2\ufe0f",fitzpatrick_scale:!1,category:"symbols"},atm:{keywords:["money","sales","cash","blue-square","payment","bank"],"char":"\ud83c\udfe7",fitzpatrick_scale:!1,category:"symbols"},sa:{keywords:["japanese","blue-square","katakana"],"char":"\ud83c\ude02\ufe0f",fitzpatrick_scale:!1,category:"symbols"},passport_control:{keywords:["custom","blue-square"],"char":"\ud83d\udec2",fitzpatrick_scale:!1,category:"symbols"},customs:{keywords:["passport","border","blue-square"],"char":"\ud83d\udec3",fitzpatrick_scale:!1,category:"symbols"},baggage_claim:{keywords:["blue-square","airport","transport"],"char":"\ud83d\udec4",fitzpatrick_scale:!1,category:"symbols"},left_luggage:{keywords:["blue-square","travel"],"char":"\ud83d\udec5",fitzpatrick_scale:!1,category:"symbols"},wheelchair:{keywords:["blue-square","disabled","a11y","accessibility"],"char":"\u267f",fitzpatrick_scale:!1,category:"symbols"},no_smoking:{keywords:["cigarette","blue-square","smell","smoke"],"char":"\ud83d\udead",fitzpatrick_scale:!1,category:"symbols"},wc:{keywords:["toilet","restroom","blue-square"],"char":"\ud83d\udebe",fitzpatrick_scale:!1,category:"symbols"},parking:{keywords:["cars","blue-square","alphabet","letter"],"char":"\ud83c\udd7f\ufe0f",fitzpatrick_scale:!1,category:"symbols"},potable_water:{keywords:["blue-square","liquid","restroom","cleaning","faucet"],"char":"\ud83d\udeb0",fitzpatrick_scale:!1,category:"symbols"},mens:{keywords:["toilet","restroom","wc","blue-square","gender","male"],"char":"\ud83d\udeb9",fitzpatrick_scale:!1,category:"symbols"},womens:{keywords:["purple-square","woman","female","toilet","loo","restroom","gender"],"char":"\ud83d\udeba",fitzpatrick_scale:!1,category:"symbols"},baby_symbol:{keywords:["orange-square","child"],"char":"\ud83d\udebc",fitzpatrick_scale:!1,category:"symbols"},restroom:{keywords:["blue-square","toilet","refresh","wc","gender"],"char":"\ud83d\udebb",fitzpatrick_scale:!1,category:"symbols"},put_litter_in_its_place:{keywords:["blue-square","sign","human","info"],"char":"\ud83d\udeae",fitzpatrick_scale:!1,category:"symbols"},cinema:{keywords:["blue-square","record","film","movie","curtain","stage","theater"],"char":"\ud83c\udfa6",fitzpatrick_scale:!1,category:"symbols"},signal_strength:{keywords:["blue-square","reception","phone","internet","connection","wifi","bluetooth","bars"],"char":"\ud83d\udcf6",fitzpatrick_scale:!1,category:"symbols"},koko:{keywords:["blue-square","here","katakana","japanese","destination"],"char":"\ud83c\ude01",fitzpatrick_scale:!1,category:"symbols"},ng:{keywords:["blue-square","words","shape","icon"],"char":"\ud83c\udd96",fitzpatrick_scale:!1,category:"symbols"},ok:{keywords:["good","agree","yes","blue-square"],"char":"\ud83c\udd97",fitzpatrick_scale:!1,category:"symbols"},up:{keywords:["blue-square","above","high"],"char":"\ud83c\udd99",fitzpatrick_scale:!1,category:"symbols"},cool:{keywords:["words","blue-square"],"char":"\ud83c\udd92",fitzpatrick_scale:!1,category:"symbols"},"new":{keywords:["blue-square","words","start"],"char":"\ud83c\udd95",fitzpatrick_scale:!1,category:"symbols"},free:{keywords:["blue-square","words"],"char":"\ud83c\udd93",fitzpatrick_scale:!1,category:"symbols"},zero:{keywords:["0","numbers","blue-square","null"],"char":"0\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},one:{keywords:["blue-square","numbers","1"],"char":"1\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},two:{keywords:["numbers","2","prime","blue-square"],"char":"2\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},three:{keywords:["3","numbers","prime","blue-square"],"char":"3\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},four:{keywords:["4","numbers","blue-square"],"char":"4\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},five:{keywords:["5","numbers","blue-square","prime"],"char":"5\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},six:{keywords:["6","numbers","blue-square"],"char":"6\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},seven:{keywords:["7","numbers","blue-square","prime"],"char":"7\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},eight:{keywords:["8","blue-square","numbers"],"char":"8\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},nine:{keywords:["blue-square","numbers","9"],"char":"9\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},keycap_ten:{keywords:["numbers","10","blue-square"],"char":"\ud83d\udd1f",fitzpatrick_scale:!1,category:"symbols"},asterisk:{keywords:["star","keycap"],"char":"*\u20e3",fitzpatrick_scale:!1,category:"symbols"},1234:{keywords:["numbers","blue-square"],"char":"\ud83d\udd22",fitzpatrick_scale:!1,category:"symbols"},eject_button:{keywords:["blue-square"],"char":"\u23cf\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_forward:{keywords:["blue-square","right","direction","play"],"char":"\u25b6\ufe0f",fitzpatrick_scale:!1,category:"symbols"},pause_button:{keywords:["pause","blue-square"],"char":"\u23f8",fitzpatrick_scale:!1,category:"symbols"},next_track_button:{keywords:["forward","next","blue-square"],"char":"\u23ed",fitzpatrick_scale:!1,category:"symbols"},stop_button:{keywords:["blue-square"],"char":"\u23f9",fitzpatrick_scale:!1,category:"symbols"},record_button:{keywords:["blue-square"],"char":"\u23fa",fitzpatrick_scale:!1,category:"symbols"},play_or_pause_button:{keywords:["blue-square","play","pause"],"char":"\u23ef",fitzpatrick_scale:!1,category:"symbols"},previous_track_button:{keywords:["backward"],"char":"\u23ee",fitzpatrick_scale:!1,category:"symbols"},fast_forward:{keywords:["blue-square","play","speed","continue"],"char":"\u23e9",fitzpatrick_scale:!1,category:"symbols"},rewind:{keywords:["play","blue-square"],"char":"\u23ea",fitzpatrick_scale:!1,category:"symbols"},twisted_rightwards_arrows:{keywords:["blue-square","shuffle","music","random"],"char":"\ud83d\udd00",fitzpatrick_scale:!1,category:"symbols"},repeat:{keywords:["loop","record"],"char":"\ud83d\udd01",fitzpatrick_scale:!1,category:"symbols"},repeat_one:{keywords:["blue-square","loop"],"char":"\ud83d\udd02",fitzpatrick_scale:!1,category:"symbols"},arrow_backward:{keywords:["blue-square","left","direction"],"char":"\u25c0\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_up_small:{keywords:["blue-square","triangle","direction","point","forward","top"],"char":"\ud83d\udd3c",fitzpatrick_scale:!1,category:"symbols"},arrow_down_small:{keywords:["blue-square","direction","bottom"],"char":"\ud83d\udd3d",fitzpatrick_scale:!1,category:"symbols"},arrow_double_up:{keywords:["blue-square","direction","top"],"char":"\u23eb",fitzpatrick_scale:!1,category:"symbols"},arrow_double_down:{keywords:["blue-square","direction","bottom"],"char":"\u23ec",fitzpatrick_scale:!1,category:"symbols"},arrow_right:{keywords:["blue-square","next"],"char":"\u27a1\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_left:{keywords:["blue-square","previous","back"],"char":"\u2b05\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_up:{keywords:["blue-square","continue","top","direction"],"char":"\u2b06\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_down:{keywords:["blue-square","direction","bottom"],"char":"\u2b07\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_upper_right:{keywords:["blue-square","point","direction","diagonal","northeast"],"char":"\u2197\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_lower_right:{keywords:["blue-square","direction","diagonal","southeast"],"char":"\u2198\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_lower_left:{keywords:["blue-square","direction","diagonal","southwest"],"char":"\u2199\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_upper_left:{keywords:["blue-square","point","direction","diagonal","northwest"],"char":"\u2196\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_up_down:{keywords:["blue-square","direction","way","vertical"],"char":"\u2195\ufe0f",fitzpatrick_scale:!1,category:"symbols"},left_right_arrow:{keywords:["shape","direction","horizontal","sideways"],"char":"\u2194\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrows_counterclockwise:{keywords:["blue-square","sync","cycle"],"char":"\ud83d\udd04",fitzpatrick_scale:!1,category:"symbols"},arrow_right_hook:{keywords:["blue-square","return","rotate","direction"],"char":"\u21aa\ufe0f",fitzpatrick_scale:!1,category:"symbols"},leftwards_arrow_with_hook:{keywords:["back","return","blue-square","undo","enter"],"char":"\u21a9\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_heading_up:{keywords:["blue-square","direction","top"],"char":"\u2934\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_heading_down:{keywords:["blue-square","direction","bottom"],"char":"\u2935\ufe0f",fitzpatrick_scale:!1,category:"symbols"},hash:{keywords:["symbol","blue-square","twitter"],"char":"#\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},information_source:{keywords:["blue-square","alphabet","letter"],"char":"\u2139\ufe0f",fitzpatrick_scale:!1,category:"symbols"},abc:{keywords:["blue-square","alphabet"],"char":"\ud83d\udd24",fitzpatrick_scale:!1,category:"symbols"},abcd:{keywords:["blue-square","alphabet"],"char":"\ud83d\udd21",fitzpatrick_scale:!1,category:"symbols"},capital_abcd:{keywords:["alphabet","words","blue-square"],"char":"\ud83d\udd20",fitzpatrick_scale:!1,category:"symbols"},symbols:{keywords:["blue-square","music","note","ampersand","percent","glyphs","characters"],"char":"\ud83d\udd23",fitzpatrick_scale:!1,category:"symbols"},musical_note:{keywords:["score","tone","sound"],"char":"\ud83c\udfb5",fitzpatrick_scale:!1,category:"symbols"},notes:{keywords:["music","score"],"char":"\ud83c\udfb6",fitzpatrick_scale:!1,category:"symbols"},wavy_dash:{keywords:["draw","line","moustache","mustache","squiggle","scribble"],"char":"\u3030\ufe0f",fitzpatrick_scale:!1,category:"symbols"},curly_loop:{keywords:["scribble","draw","shape","squiggle"],"char":"\u27b0",fitzpatrick_scale:!1,category:"symbols"},heavy_check_mark:{keywords:["ok","nike","answer","yes","tick"],"char":"\u2714\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrows_clockwise:{keywords:["sync","cycle","round","repeat"],"char":"\ud83d\udd03",fitzpatrick_scale:!1,category:"symbols"},heavy_plus_sign:{keywords:["math","calculation","addition","more","increase"],"char":"\u2795",fitzpatrick_scale:!1,category:"symbols"},heavy_minus_sign:{keywords:["math","calculation","subtract","less"],"char":"\u2796",fitzpatrick_scale:!1,category:"symbols"},heavy_division_sign:{keywords:["divide","math","calculation"],"char":"\u2797",fitzpatrick_scale:!1,category:"symbols"},heavy_multiplication_x:{keywords:["math","calculation"],"char":"\u2716\ufe0f",fitzpatrick_scale:!1,category:"symbols"},heavy_dollar_sign:{keywords:["money","sales","payment","currency","buck"],"char":"\ud83d\udcb2",fitzpatrick_scale:!1,category:"symbols"},currency_exchange:{keywords:["money","sales","dollar","travel"],"char":"\ud83d\udcb1",fitzpatrick_scale:!1,category:"symbols"},copyright:{keywords:["ip","license","circle","law","legal"],"char":"\xa9\ufe0f",fitzpatrick_scale:!1,category:"symbols"},registered:{keywords:["alphabet","circle"],"char":"\xae\ufe0f",fitzpatrick_scale:!1,category:"symbols"},tm:{keywords:["trademark","brand","law","legal"],"char":"\u2122\ufe0f",fitzpatrick_scale:!1,category:"symbols"},end:{keywords:["words","arrow"],"char":"\ud83d\udd1a",fitzpatrick_scale:!1,category:"symbols"},back:{keywords:["arrow","words","return"],"char":"\ud83d\udd19",fitzpatrick_scale:!1,category:"symbols"},on:{keywords:["arrow","words"],"char":"\ud83d\udd1b",fitzpatrick_scale:!1,category:"symbols"},top:{keywords:["words","blue-square"],"char":"\ud83d\udd1d",fitzpatrick_scale:!1,category:"symbols"},soon:{keywords:["arrow","words"],"char":"\ud83d\udd1c",fitzpatrick_scale:!1,category:"symbols"},ballot_box_with_check:{keywords:["ok","agree","confirm","black-square","vote","election","yes","tick"],"char":"\u2611\ufe0f",fitzpatrick_scale:!1,category:"symbols"},radio_button:{keywords:["input","old","music","circle"],"char":"\ud83d\udd18",fitzpatrick_scale:!1,category:"symbols"},white_circle:{keywords:["shape","round"],"char":"\u26aa",fitzpatrick_scale:!1,category:"symbols"},black_circle:{keywords:["shape","button","round"],"char":"\u26ab",fitzpatrick_scale:!1,category:"symbols"},red_circle:{keywords:["shape","error","danger"],"char":"\ud83d\udd34",fitzpatrick_scale:!1,category:"symbols"},large_blue_circle:{keywords:["shape","icon","button"],"char":"\ud83d\udd35",fitzpatrick_scale:!1,category:"symbols"},small_orange_diamond:{keywords:["shape","jewel","gem"],"char":"\ud83d\udd38",fitzpatrick_scale:!1,category:"symbols"},small_blue_diamond:{keywords:["shape","jewel","gem"],"char":"\ud83d\udd39",fitzpatrick_scale:!1,category:"symbols"},large_orange_diamond:{keywords:["shape","jewel","gem"],"char":"\ud83d\udd36",fitzpatrick_scale:!1,category:"symbols"},large_blue_diamond:{keywords:["shape","jewel","gem"],"char":"\ud83d\udd37",fitzpatrick_scale:!1,category:"symbols"},small_red_triangle:{keywords:["shape","direction","up","top"],"char":"\ud83d\udd3a",fitzpatrick_scale:!1,category:"symbols"},black_small_square:{keywords:["shape","icon"],"char":"\u25aa\ufe0f",fitzpatrick_scale:!1,category:"symbols"},white_small_square:{keywords:["shape","icon"],"char":"\u25ab\ufe0f",fitzpatrick_scale:!1,category:"symbols"},black_large_square:{keywords:["shape","icon","button"],"char":"\u2b1b",fitzpatrick_scale:!1,category:"symbols"},white_large_square:{keywords:["shape","icon","stone","button"],"char":"\u2b1c",fitzpatrick_scale:!1,category:"symbols"},small_red_triangle_down:{keywords:["shape","direction","bottom"],"char":"\ud83d\udd3b",fitzpatrick_scale:!1,category:"symbols"},black_medium_square:{keywords:["shape","button","icon"],"char":"\u25fc\ufe0f",fitzpatrick_scale:!1,category:"symbols"},white_medium_square:{keywords:["shape","stone","icon"],"char":"\u25fb\ufe0f",fitzpatrick_scale:!1,category:"symbols"},black_medium_small_square:{keywords:["icon","shape","button"],"char":"\u25fe",fitzpatrick_scale:!1,category:"symbols"},white_medium_small_square:{keywords:["shape","stone","icon","button"],"char":"\u25fd",fitzpatrick_scale:!1,category:"symbols"},black_square_button:{keywords:["shape","input","frame"],"char":"\ud83d\udd32",fitzpatrick_scale:!1,category:"symbols"},white_square_button:{keywords:["shape","input"],"char":"\ud83d\udd33",fitzpatrick_scale:!1,category:"symbols"},speaker:{keywords:["sound","volume","silence","broadcast"],"char":"\ud83d\udd08",fitzpatrick_scale:!1,category:"symbols"},sound:{keywords:["volume","speaker","broadcast"],"char":"\ud83d\udd09",fitzpatrick_scale:!1,category:"symbols"},loud_sound:{keywords:["volume","noise","noisy","speaker","broadcast"],"char":"\ud83d\udd0a",fitzpatrick_scale:!1,category:"symbols"},mute:{keywords:["sound","volume","silence","quiet"],"char":"\ud83d\udd07",fitzpatrick_scale:!1,category:"symbols"},mega:{keywords:["sound","speaker","volume"],"char":"\ud83d\udce3",fitzpatrick_scale:!1,category:"symbols"},loudspeaker:{keywords:["volume","sound"],"char":"\ud83d\udce2",fitzpatrick_scale:!1,category:"symbols"},bell:{keywords:["sound","notification","christmas","xmas","chime"],"char":"\ud83d\udd14",fitzpatrick_scale:!1,category:"symbols"},no_bell:{keywords:["sound","volume","mute","quiet","silent"],"char":"\ud83d\udd15",fitzpatrick_scale:!1,category:"symbols"},black_joker:{keywords:["poker","cards","game","play","magic"],"char":"\ud83c\udccf",fitzpatrick_scale:!1,category:"symbols"},mahjong:{keywords:["game","play","chinese","kanji"],"char":"\ud83c\udc04",fitzpatrick_scale:!1,category:"symbols"},spades:{keywords:["poker","cards","suits","magic"],"char":"\u2660\ufe0f",fitzpatrick_scale:!1,category:"symbols"},clubs:{keywords:["poker","cards","magic","suits"],"char":"\u2663\ufe0f",fitzpatrick_scale:!1,category:"symbols"},hearts:{keywords:["poker","cards","magic","suits"],"char":"\u2665\ufe0f",fitzpatrick_scale:!1,category:"symbols"},diamonds:{keywords:["poker","cards","magic","suits"],"char":"\u2666\ufe0f",fitzpatrick_scale:!1,category:"symbols"},flower_playing_cards:{keywords:["game","sunset","red"],"char":"\ud83c\udfb4",fitzpatrick_scale:!1,category:"symbols"},thought_balloon:{keywords:["bubble","cloud","speech","thinking","dream"],"char":"\ud83d\udcad",fitzpatrick_scale:!1,category:"symbols"},right_anger_bubble:{keywords:["caption","speech","thinking","mad"],"char":"\ud83d\uddef",fitzpatrick_scale:!1,category:"symbols"},speech_balloon:{keywords:["bubble","words","message","talk","chatting"],"char":"\ud83d\udcac",fitzpatrick_scale:!1,category:"symbols"},left_speech_bubble:{keywords:["words","message","talk","chatting"],"char":"\ud83d\udde8",fitzpatrick_scale:!1,category:"symbols"},clock1:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd50",fitzpatrick_scale:!1,category:"symbols"},clock2:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd51",fitzpatrick_scale:!1,category:"symbols"},clock3:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd52",fitzpatrick_scale:!1,category:"symbols"},clock4:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd53",fitzpatrick_scale:!1,category:"symbols"},clock5:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd54",fitzpatrick_scale:!1,category:"symbols"},clock6:{keywords:["time","late","early","schedule","dawn","dusk"],"char":"\ud83d\udd55",fitzpatrick_scale:!1,category:"symbols"},clock7:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd56",fitzpatrick_scale:!1,category:"symbols"},clock8:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd57",fitzpatrick_scale:!1,category:"symbols"},clock9:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd58",fitzpatrick_scale:!1,category:"symbols"},clock10:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd59",fitzpatrick_scale:!1,category:"symbols"},clock11:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd5a",fitzpatrick_scale:!1,category:"symbols"},clock12:{keywords:["time","noon","midnight","midday","late","early","schedule"],"char":"\ud83d\udd5b",fitzpatrick_scale:!1,category:"symbols"},clock130:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd5c",fitzpatrick_scale:!1,category:"symbols"},clock230:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd5d",fitzpatrick_scale:!1,category:"symbols"},clock330:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd5e",fitzpatrick_scale:!1,category:"symbols"},clock430:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd5f",fitzpatrick_scale:!1,category:"symbols"},clock530:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd60",fitzpatrick_scale:!1,category:"symbols"},clock630:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd61",fitzpatrick_scale:!1,category:"symbols"},clock730:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd62",fitzpatrick_scale:!1,category:"symbols"},clock830:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd63",fitzpatrick_scale:!1,category:"symbols"},clock930:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd64",fitzpatrick_scale:!1,category:"symbols"},clock1030:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd65",fitzpatrick_scale:!1,category:"symbols"},clock1130:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd66",fitzpatrick_scale:!1,category:"symbols"},clock1230:{keywords:["time","late","early","schedule"],"char":"\ud83d\udd67",fitzpatrick_scale:!1,category:"symbols"},afghanistan:{keywords:["af","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},aland_islands:{keywords:["\xc5land","islands","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddfd",fitzpatrick_scale:!1,category:"flags"},albania:{keywords:["al","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},algeria:{keywords:["dz","flag","nation","country","banner"],"char":"\ud83c\udde9\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},american_samoa:{keywords:["american","ws","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},andorra:{keywords:["ad","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},angola:{keywords:["ao","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},anguilla:{keywords:["ai","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},antarctica:{keywords:["aq","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddf6",fitzpatrick_scale:!1,category:"flags"},antigua_barbuda:{keywords:["antigua","barbuda","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},argentina:{keywords:["ar","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},armenia:{keywords:["am","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},aruba:{keywords:["aw","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},australia:{keywords:["au","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},austria:{keywords:["at","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},azerbaijan:{keywords:["az","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},bahamas:{keywords:["bs","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},bahrain:{keywords:["bh","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},bangladesh:{keywords:["bd","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},barbados:{keywords:["bb","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\udde7",fitzpatrick_scale:!1,category:"flags"},belarus:{keywords:["by","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},belgium:{keywords:["be","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},belize:{keywords:["bz","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},benin:{keywords:["bj","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddef",fitzpatrick_scale:!1,category:"flags"},bermuda:{keywords:["bm","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},bhutan:{keywords:["bt","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},bolivia:{keywords:["bo","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},caribbean_netherlands:{keywords:["bonaire","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf6",fitzpatrick_scale:!1,category:"flags"},bosnia_herzegovina:{keywords:["bosnia","herzegovina","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},botswana:{keywords:["bw","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},brazil:{keywords:["br","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},british_indian_ocean_territory:{keywords:["british","indian","ocean","territory","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},british_virgin_islands:{keywords:["british","virgin","islands","bvi","flag","nation","country","banner"],"char":"\ud83c\uddfb\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},brunei:{keywords:["bn","darussalam","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},bulgaria:{keywords:["bg","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},burkina_faso:{keywords:["burkina","faso","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},burundi:{keywords:["bi","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},cape_verde:{keywords:["cabo","verde","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddfb",fitzpatrick_scale:!1,category:"flags"},cambodia:{keywords:["kh","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},cameroon:{keywords:["cm","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},canada:{keywords:["ca","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},canary_islands:{keywords:["canary","islands","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},cayman_islands:{keywords:["cayman","islands","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},central_african_republic:{keywords:["central","african","republic","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},chad:{keywords:["td","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},chile:{keywords:["flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},cn:{keywords:["china","chinese","prc","flag","country","nation","banner"],"char":"\ud83c\udde8\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},christmas_island:{keywords:["christmas","island","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddfd",fitzpatrick_scale:!1,category:"flags"},cocos_islands:{keywords:["cocos","keeling","islands","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},colombia:{keywords:["co","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},comoros:{keywords:["km","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},congo_brazzaville:{keywords:["congo","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},congo_kinshasa:{keywords:["congo","democratic","republic","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},cook_islands:{keywords:["cook","islands","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},costa_rica:{keywords:["costa","rica","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},croatia:{keywords:["hr","flag","nation","country","banner"],"char":"\ud83c\udded\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},cuba:{keywords:["cu","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},curacao:{keywords:["cura\xe7ao","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},cyprus:{keywords:["cy","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},czech_republic:{keywords:["cz","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},denmark:{keywords:["dk","flag","nation","country","banner"],"char":"\ud83c\udde9\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},djibouti:{keywords:["dj","flag","nation","country","banner"],"char":"\ud83c\udde9\ud83c\uddef",fitzpatrick_scale:!1,category:"flags"},dominica:{keywords:["dm","flag","nation","country","banner"],"char":"\ud83c\udde9\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},dominican_republic:{keywords:["dominican","republic","flag","nation","country","banner"],"char":"\ud83c\udde9\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},ecuador:{keywords:["ec","flag","nation","country","banner"],"char":"\ud83c\uddea\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},egypt:{keywords:["eg","flag","nation","country","banner"],"char":"\ud83c\uddea\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},el_salvador:{keywords:["el","salvador","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddfb",fitzpatrick_scale:!1,category:"flags"},equatorial_guinea:{keywords:["equatorial","gn","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf6",fitzpatrick_scale:!1,category:"flags"},eritrea:{keywords:["er","flag","nation","country","banner"],"char":"\ud83c\uddea\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},estonia:{keywords:["ee","flag","nation","country","banner"],"char":"\ud83c\uddea\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},ethiopia:{keywords:["et","flag","nation","country","banner"],"char":"\ud83c\uddea\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},eu:{keywords:["european","union","flag","banner"],"char":"\ud83c\uddea\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},falkland_islands:{keywords:["falkland","islands","malvinas","flag","nation","country","banner"],"char":"\ud83c\uddeb\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},faroe_islands:{keywords:["faroe","islands","flag","nation","country","banner"],"char":"\ud83c\uddeb\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},fiji:{keywords:["fj","flag","nation","country","banner"],"char":"\ud83c\uddeb\ud83c\uddef",fitzpatrick_scale:!1,category:"flags"},finland:{keywords:["fi","flag","nation","country","banner"],"char":"\ud83c\uddeb\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},fr:{keywords:["banner","flag","nation","france","french","country"],"char":"\ud83c\uddeb\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},french_guiana:{keywords:["french","guiana","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},french_polynesia:{keywords:["french","polynesia","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},french_southern_territories:{keywords:["french","southern","territories","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},gabon:{keywords:["ga","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},gambia:{keywords:["gm","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},georgia:{keywords:["ge","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},de:{keywords:["german","nation","flag","country","banner"],"char":"\ud83c\udde9\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},ghana:{keywords:["gh","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},gibraltar:{keywords:["gi","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},greece:{keywords:["gr","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},greenland:{keywords:["gl","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},grenada:{keywords:["gd","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},guadeloupe:{keywords:["gp","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf5",fitzpatrick_scale:!1,category:"flags"},guam:{keywords:["gu","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},guatemala:{keywords:["gt","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},guernsey:{keywords:["gg","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},guinea:{keywords:["gn","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},guinea_bissau:{keywords:["gw","bissau","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},guyana:{keywords:["gy","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},haiti:{keywords:["ht","flag","nation","country","banner"],"char":"\ud83c\udded\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},honduras:{keywords:["hn","flag","nation","country","banner"],"char":"\ud83c\udded\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},hong_kong:{keywords:["hong","kong","flag","nation","country","banner"],"char":"\ud83c\udded\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},hungary:{keywords:["hu","flag","nation","country","banner"],"char":"\ud83c\udded\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},iceland:{keywords:["is","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},india:{keywords:["in","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},indonesia:{keywords:["flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},iran:{keywords:["iran,","islamic","republic","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},iraq:{keywords:["iq","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf6",fitzpatrick_scale:!1,category:"flags"},ireland:{keywords:["ie","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},isle_of_man:{keywords:["isle","man","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},israel:{keywords:["il","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},it:{keywords:["italy","flag","nation","country","banner"],"char":"\ud83c\uddee\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},cote_divoire:{keywords:["ivory","coast","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},jamaica:{keywords:["jm","flag","nation","country","banner"],"char":"\ud83c\uddef\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},jp:{keywords:["japanese","nation","flag","country","banner"],"char":"\ud83c\uddef\ud83c\uddf5",fitzpatrick_scale:!1,category:"flags"},jersey:{keywords:["je","flag","nation","country","banner"],"char":"\ud83c\uddef\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},jordan:{keywords:["jo","flag","nation","country","banner"],"char":"\ud83c\uddef\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},kazakhstan:{keywords:["kz","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},kenya:{keywords:["ke","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},kiribati:{keywords:["ki","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},kosovo:{keywords:["xk","flag","nation","country","banner"],"char":"\ud83c\uddfd\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},kuwait:{keywords:["kw","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},kyrgyzstan:{keywords:["kg","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},laos:{keywords:["lao","democratic","republic","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},latvia:{keywords:["lv","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddfb",fitzpatrick_scale:!1,category:"flags"},lebanon:{keywords:["lb","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\udde7",fitzpatrick_scale:!1,category:"flags"},lesotho:{keywords:["ls","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},liberia:{keywords:["lr","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},libya:{keywords:["ly","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},liechtenstein:{keywords:["li","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},lithuania:{keywords:["lt","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},luxembourg:{keywords:["lu","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},macau:{keywords:["macao","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},macedonia:{keywords:["macedonia,","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},madagascar:{keywords:["mg","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},malawi:{keywords:["mw","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},malaysia:{keywords:["my","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},maldives:{keywords:["mv","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddfb",fitzpatrick_scale:!1,category:"flags"},mali:{keywords:["ml","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},malta:{keywords:["mt","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},marshall_islands:{keywords:["marshall","islands","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},martinique:{keywords:["mq","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf6",fitzpatrick_scale:!1,category:"flags"},mauritania:{keywords:["mr","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},mauritius:{keywords:["mu","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},mayotte:{keywords:["yt","flag","nation","country","banner"],"char":"\ud83c\uddfe\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},mexico:{keywords:["mx","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddfd",fitzpatrick_scale:!1,category:"flags"},micronesia:{keywords:["micronesia,","federated","states","flag","nation","country","banner"],"char":"\ud83c\uddeb\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},moldova:{keywords:["moldova,","republic","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},monaco:{keywords:["mc","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},mongolia:{keywords:["mn","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},montenegro:{keywords:["me","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},montserrat:{keywords:["ms","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},morocco:{keywords:["ma","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},mozambique:{keywords:["mz","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},myanmar:{keywords:["mm","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},namibia:{keywords:["na","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},nauru:{keywords:["nr","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},nepal:{keywords:["np","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddf5",fitzpatrick_scale:!1,category:"flags"},netherlands:{keywords:["nl","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},new_caledonia:{keywords:["new","caledonia","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},new_zealand:{keywords:["new","zealand","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},nicaragua:{keywords:["ni","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},niger:{keywords:["ne","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},nigeria:{keywords:["flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},niue:{keywords:["nu","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},norfolk_island:{keywords:["norfolk","island","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},northern_mariana_islands:{keywords:["northern","mariana","islands","flag","nation","country","banner"],"char":"\ud83c\uddf2\ud83c\uddf5",fitzpatrick_scale:!1,category:"flags"},north_korea:{keywords:["north","korea","nation","flag","country","banner"],"char":"\ud83c\uddf0\ud83c\uddf5",fitzpatrick_scale:!1,category:"flags"},norway:{keywords:["no","flag","nation","country","banner"],"char":"\ud83c\uddf3\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},oman:{keywords:["om_symbol","flag","nation","country","banner"],"char":"\ud83c\uddf4\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},pakistan:{keywords:["pk","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},palau:{keywords:["pw","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},palestinian_territories:{keywords:["palestine","palestinian","territories","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},panama:{keywords:["pa","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},papua_new_guinea:{keywords:["papua","new","guinea","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},paraguay:{keywords:["py","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},peru:{keywords:["pe","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},philippines:{keywords:["ph","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},pitcairn_islands:{keywords:["pitcairn","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},poland:{keywords:["pl","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},portugal:{keywords:["pt","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},puerto_rico:{keywords:["puerto","rico","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},qatar:{keywords:["qa","flag","nation","country","banner"],"char":"\ud83c\uddf6\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},reunion:{keywords:["r\xe9union","flag","nation","country","banner"],"char":"\ud83c\uddf7\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},romania:{keywords:["ro","flag","nation","country","banner"],"char":"\ud83c\uddf7\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},ru:{keywords:["russian","federation","flag","nation","country","banner"],"char":"\ud83c\uddf7\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},rwanda:{keywords:["rw","flag","nation","country","banner"],"char":"\ud83c\uddf7\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},st_barthelemy:{keywords:["saint","barth\xe9lemy","flag","nation","country","banner"],"char":"\ud83c\udde7\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},st_helena:{keywords:["saint","helena","ascension","tristan","cunha","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},st_kitts_nevis:{keywords:["saint","kitts","nevis","flag","nation","country","banner"],"char":"\ud83c\uddf0\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},st_lucia:{keywords:["saint","lucia","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},st_pierre_miquelon:{keywords:["saint","pierre","miquelon","flag","nation","country","banner"],"char":"\ud83c\uddf5\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},st_vincent_grenadines:{keywords:["saint","vincent","grenadines","flag","nation","country","banner"],"char":"\ud83c\uddfb\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},samoa:{keywords:["ws","flag","nation","country","banner"],"char":"\ud83c\uddfc\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},san_marino:{keywords:["san","marino","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},sao_tome_principe:{keywords:["sao","tome","principe","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},saudi_arabia:{keywords:["flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},senegal:{keywords:["sn","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},serbia:{keywords:["rs","flag","nation","country","banner"],"char":"\ud83c\uddf7\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},seychelles:{keywords:["sc","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},sierra_leone:{keywords:["sierra","leone","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},singapore:{keywords:["sg","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},sint_maarten:{keywords:["sint","maarten","dutch","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddfd",fitzpatrick_scale:!1,category:"flags"},slovakia:{keywords:["sk","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},slovenia:{keywords:["si","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},solomon_islands:{keywords:["solomon","islands","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\udde7",fitzpatrick_scale:!1,category:"flags"},somalia:{keywords:["so","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},south_africa:{keywords:["south","africa","flag","nation","country","banner"],"char":"\ud83c\uddff\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},south_georgia_south_sandwich_islands:{keywords:["south","georgia","sandwich","islands","flag","nation","country","banner"],"char":"\ud83c\uddec\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},kr:{keywords:["south","korea","nation","flag","country","banner"],"char":"\ud83c\uddf0\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},south_sudan:{keywords:["south","sd","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},es:{keywords:["spain","flag","nation","country","banner"],"char":"\ud83c\uddea\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},sri_lanka:{keywords:["sri","lanka","flag","nation","country","banner"],"char":"\ud83c\uddf1\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},sudan:{keywords:["sd","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\udde9",fitzpatrick_scale:!1,category:"flags"},suriname:{keywords:["sr","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},swaziland:{keywords:["sz","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},sweden:{keywords:["se","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},switzerland:{keywords:["ch","flag","nation","country","banner"],"char":"\ud83c\udde8\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},syria:{keywords:["syrian","arab","republic","flag","nation","country","banner"],"char":"\ud83c\uddf8\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},taiwan:{keywords:["tw","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"},tajikistan:{keywords:["tj","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddef",fitzpatrick_scale:!1,category:"flags"},tanzania:{keywords:["tanzania,","united","republic","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},thailand:{keywords:["th","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},timor_leste:{keywords:["timor","leste","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddf1",fitzpatrick_scale:!1,category:"flags"},togo:{keywords:["tg","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},tokelau:{keywords:["tk","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddf0",fitzpatrick_scale:!1,category:"flags"},tonga:{keywords:["to","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddf4",fitzpatrick_scale:!1,category:"flags"},trinidad_tobago:{keywords:["trinidad","tobago","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddf9",fitzpatrick_scale:!1,category:"flags"},tunisia:{keywords:["tn","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},tr:{keywords:["turkey","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddf7",fitzpatrick_scale:!1,category:"flags"},turkmenistan:{keywords:["flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},turks_caicos_islands:{keywords:["turks","caicos","islands","flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\udde8",fitzpatrick_scale:!1,category:"flags"},tuvalu:{keywords:["flag","nation","country","banner"],"char":"\ud83c\uddf9\ud83c\uddfb",fitzpatrick_scale:!1,category:"flags"},uganda:{keywords:["ug","flag","nation","country","banner"],"char":"\ud83c\uddfa\ud83c\uddec",fitzpatrick_scale:!1,category:"flags"},ukraine:{keywords:["ua","flag","nation","country","banner"],"char":"\ud83c\uddfa\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},united_arab_emirates:{keywords:["united","arab","emirates","flag","nation","country","banner"],"char":"\ud83c\udde6\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},uk:{keywords:["united","kingdom","great","britain","northern","ireland","flag","nation","country","banner","british","UK","english","england","union jack"],"char":"\ud83c\uddec\ud83c\udde7",fitzpatrick_scale:!1,category:"flags"},england:{keywords:["flag","english"],"char":"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f",fitzpatrick_scale:!1,category:"flags"},scotland:{keywords:["flag","scottish"],"char":"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f",fitzpatrick_scale:!1,category:"flags"},wales:{keywords:["flag","welsh"],"char":"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f",fitzpatrick_scale:!1,category:"flags"},us:{keywords:["united","states","america","flag","nation","country","banner"],"char":"\ud83c\uddfa\ud83c\uddf8",fitzpatrick_scale:!1,category:"flags"},us_virgin_islands:{keywords:["virgin","islands","us","flag","nation","country","banner"],"char":"\ud83c\uddfb\ud83c\uddee",fitzpatrick_scale:!1,category:"flags"},uruguay:{keywords:["uy","flag","nation","country","banner"],"char":"\ud83c\uddfa\ud83c\uddfe",fitzpatrick_scale:!1,category:"flags"},uzbekistan:{keywords:["uz","flag","nation","country","banner"],"char":"\ud83c\uddfa\ud83c\uddff",fitzpatrick_scale:!1,category:"flags"},vanuatu:{keywords:["vu","flag","nation","country","banner"],"char":"\ud83c\uddfb\ud83c\uddfa",fitzpatrick_scale:!1,category:"flags"},vatican_city:{keywords:["vatican","city","flag","nation","country","banner"],"char":"\ud83c\uddfb\ud83c\udde6",fitzpatrick_scale:!1,category:"flags"},venezuela:{keywords:["ve","bolivarian","republic","flag","nation","country","banner"],"char":"\ud83c\uddfb\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},vietnam:{keywords:["viet","nam","flag","nation","country","banner"],"char":"\ud83c\uddfb\ud83c\uddf3",fitzpatrick_scale:!1,category:"flags"},wallis_futuna:{keywords:["wallis","futuna","flag","nation","country","banner"],"char":"\ud83c\uddfc\ud83c\uddeb",fitzpatrick_scale:!1,category:"flags"},western_sahara:{keywords:["western","sahara","flag","nation","country","banner"],"char":"\ud83c\uddea\ud83c\udded",fitzpatrick_scale:!1,category:"flags"},yemen:{keywords:["ye","flag","nation","country","banner"],"char":"\ud83c\uddfe\ud83c\uddea",fitzpatrick_scale:!1,category:"flags"},zambia:{keywords:["zm","flag","nation","country","banner"],"char":"\ud83c\uddff\ud83c\uddf2",fitzpatrick_scale:!1,category:"flags"},zimbabwe:{keywords:["zw","flag","nation","country","banner"],"char":"\ud83c\uddff\ud83c\uddfc",fitzpatrick_scale:!1,category:"flags"}});
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(l){"use strict";function n(){}function i(n){return function(){return n}}function t(){return a}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=i(!1),u=i(!0),a=(e={fold:function(n,t){return n()},is:c,isSome:c,isNone:u,getOr:f,getOrThunk:s,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:f,orThunk:s,map:t,each:n,bind:t,exists:c,forall:u,filter:t,equals:o,equals_:o,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(e),e);function o(n){return n.isNone()}function s(n){return n()}function f(n){return n}function m(n,t){return-1!==n.indexOf(t)}function g(n,t){return m(n.title.toLowerCase(),t)||function(n,t){for(var e=0,r=n.length;e<r;e++){if(t(n[e],e))return!0}return!1}(n.keywords,function(n){return m(n.toLowerCase(),t)})}function d(n,t,e){for(var r=[],o=t.toLowerCase(),i=e.fold(function(){return c},function(t){return function(n){return t<=n}}),u=0;u<n.length&&(0!==t.length&&!g(n[u],o)||(r.push({value:n[u]["char"],text:n[u].title,icon:n[u]["char"]}),!i(r.length)));u++);return r}function y(n,t){for(var e=P(n),r=0,o=e.length;r<o;r++){var i=e[r];t(n[i],i)}}function p(n,t){return function(n,t){return D.call(n,t)}(n,t)?n[t]:t}function v(n){return function(n,e){return S(n,function(n,t){return{k:t,v:e(n,t)}})}(q(n),function(n){return _({keywords:[],category:"user"},n)})}function h(e,o,n){var r=k(A.none()),u=k(A.none());e.on("init",function(){x.load(n,o).then(function(n){var t=v(e);!function(n){var o={},i=[];y(n,function(n,t){var e={title:t,keywords:n.keywords,"char":n["char"],category:p(I,n.category)},r=o[e.category]!==undefined?o[e.category]:[];o[e.category]=r.concat([e]),i.push(e)}),r.set(A.some(o)),u.set(A.some(i))}(_(n,t))},function(n){l.console.log("Failed to load emoticons: "+n),r.set(A.some({})),u.set(A.some([]))})});var i=function(){return u.get().getOr([])},c=function(){return r.get().isSome()&&u.get().isSome()};return{listCategories:function(){return[z].concat(P(r.get().getOr({})))},hasLoaded:c,waitForLoad:function(){return c()?N.resolve(!0):new N(function(n,t){var e=15,r=L.setInterval(function(){c()?(L.clearInterval(r),n(!0)):--e<0&&(l.console.log("Could not load emojis from url: "+o),L.clearInterval(r),t(!1))},100)})},listAll:i,listCategory:function(t){return t===z?i():r.get().bind(function(n){return A.from(n[t])}).getOr([])}}}var b,w,O=function(e){function n(){return o}function t(n){return n(e)}var r=i(e),o={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:u,isNone:c,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){return O(n(e))},each:function(n){n(e)},bind:t,exists:t,forall:t,filter:function(n){return n(e)?o:a},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(c,function(n){return t(e,n)})}};return o},A={some:O,none:t,from:function(n){return null===n||n===undefined?a:O(n)}},j=(b="function",function(n){return function(n){if(null===n)return"null";var t=typeof n;return"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t}(n)===b}),C=Array.prototype.slice,k=(j(Array.from)&&Array.from,function(n){function t(){return e}var e=n;return{get:t,set:function(n){e=n},clone:function(){return k(t())}}}),T=Object.prototype.hasOwnProperty,_=(w=function(n,t){return t},function(){for(var n=new Array(arguments.length),t=0;t<n.length;t++)n[t]=arguments[t];if(0===n.length)throw new Error("Can't merge zero objects");for(var e={},r=0;r<n.length;r++){var o=n[r];for(var i in o)T.call(o,i)&&(e[i]=w(e[i],o[i]))}return e}),P=Object.keys,D=Object.hasOwnProperty,S=function(n,r){var o={};return y(n,function(n,t){var e=r(n,t);o[e.k]=e.v}),o},x=tinymce.util.Tools.resolve("tinymce.Resource"),L=tinymce.util.Tools.resolve("tinymce.util.Delay"),N=tinymce.util.Tools.resolve("tinymce.util.Promise"),E=function(n,t){return n.getParam("emoticons_database_url",t+"/js/emojis"+n.suffix+".js")},F=function(n){return n.getParam("emoticons_database_id","tinymce.plugins.emoticons","string")},q=function(n){return n.getParam("emoticons_append",{},"object")},z="All",I={symbols:"Symbols",people:"People",animals_and_nature:"Animals and Nature",food_and_drink:"Food and Drink",activity:"Activity",travel_and_places:"Travel and Places",objects:"Objects",flags:"Flags",user:"User Defined"},M="pattern",U=function(e,i){function n(){return{title:"Emoticons",size:"normal",body:{type:"tabpanel",tabs:function(n,t){for(var e=n.length,r=new Array(e),o=0;o<e;o++){var i=n[o];r[o]=t(i,o)}return r}(i.listCategories(),function(n){return{title:n,name:n,items:[o,c]}})},initialData:t,onTabChange:function(n,t){u.set(t.newTabName),r.throttle(n)},onChange:r.throttle,onAction:function(n,t){"results"===t.name&&(function(n,t){n.insertContent(t)}(e,t.value),n.close())},buttons:[{type:"cancel",text:"Close",primary:!0}]}}var t={pattern:"",results:d(i.listAll(),"",A.some(300))},u=k(z),r=function(e,r){var o=null;return{cancel:function(){null!==o&&(l.clearTimeout(o),o=null)},throttle:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];null!==o&&l.clearTimeout(o),o=l.setTimeout(function(){e.apply(null,n),o=null},r)}}}(function(n){!function(n){var t=n.getData(),e=u.get(),r=i.listCategory(e),o=d(r,t[M],e===z?A.some(300):A.none());n.setData({results:o})}(n)},200),o={label:"Search",type:"input",name:M},c={type:"collection",name:"results"},a=e.windowManager.open(n());a.focus(M),i.hasLoaded()||(a.block("Loading emoticons..."),i.waitForLoad().then(function(){a.redial(n()),r.throttle(a),a.focus(M),a.unblock()})["catch"](function(n){a.redial({title:"Emoticons",body:{type:"panel",items:[{type:"alertbanner",level:"error",icon:"warning",text:"<p>Could not load emoticons</p>"}]},buttons:[{type:"cancel",text:"Close",primary:!0}],initialData:{pattern:"",results:[]}}),a.focus(M),a.unblock()}))},R=function(n,t){function e(){return U(n,t)}n.ui.registry.addButton("emoticons",{tooltip:"Emoticons",icon:"emoji",onAction:e}),n.ui.registry.addMenuItem("emoticons",{text:"Emoticons...",icon:"emoji",onAction:e})};!function B(){r.add("emoticons",function(n,t){var e=E(n,t),r=F(n),o=h(n,e,r);R(n,o),function(r,o){r.ui.registry.addAutocompleter("emoticons",{ch:":",columns:"auto",minChars:2,fetch:function(t,e){return o.waitForLoad().then(function(){var n=o.listAll();return d(n,t,A.some(e))})},onAction:function(n,t,e){r.selection.setRng(t),r.insertContent(e),n.hide()}})}(n,o)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(m){"use strict";function f(t){return e({validate:!1,root_name:"#document"}).parse(t)}function g(t){return t.replace(/<\/?[A-Z]+/g,function(t){return t.toLowerCase()})}var o,i=function(t){function e(){return n}var n=t;return{get:e,set:function(t){n=t},clone:function(){return i(e())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),p=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=tinymce.util.Tools.resolve("tinymce.html.DomParser"),h=tinymce.util.Tools.resolve("tinymce.html.Node"),y=tinymce.util.Tools.resolve("tinymce.html.Serializer"),v=function(t){return t.getParam("fullpage_hide_in_source_view")},r=function(t){return t.getParam("fullpage_default_xml_pi")},a=function(t){return t.getParam("fullpage_default_encoding")},c=function(t){return t.getParam("fullpage_default_font_family")},u=function(t){return t.getParam("fullpage_default_font_size")},s=function(t){return t.getParam("fullpage_default_text_color")},d=function(t){return t.getParam("fullpage_default_title")},_=function(t){return t.getParam("fullpage_default_doctype","<!DOCTYPE html>")},b=f,n=function(t,e){var n,i,l=f(e),r={};function o(t,e){return t.attr(e)||""}return r.fontface=c(t),r.fontsize=u(t),7===(n=l.firstChild).type&&(r.xml_pi=!0,(i=/encoding="([^"]+)"/.exec(n.value))&&(r.docencoding=i[1])),(n=l.getAll("#doctype")[0])&&(r.doctype="<!DOCTYPE"+n.value+">"),(n=l.getAll("title")[0])&&n.firstChild&&(r.title=n.firstChild.value),p.each(l.getAll("meta"),function(t){var e,n=t.attr("name"),i=t.attr("http-equiv");n?r[n.toLowerCase()]=t.attr("content"):"Content-Type"===i&&(e=/charset\s*=\s*(.*)\s*/gi.exec(t.attr("content")))&&(r.docencoding=e[1])}),(n=l.getAll("html")[0])&&(r.langcode=o(n,"lang")||o(n,"xml:lang")),r.stylesheets=[],p.each(l.getAll("link"),function(t){"stylesheet"===t.attr("rel")&&r.stylesheets.push(t.attr("href"))}),(n=l.getAll("body")[0])&&(r.langdir=o(n,"dir"),r.style=o(n,"style"),r.visited_color=o(n,"vlink"),r.link_color=o(n,"link"),r.active_color=o(n,"alink")),r},x=function(t,r,e){var o,n,i,a,l,c=t.dom;function u(t,e,n){t.attr(e,n||undefined)}function s(t){n.firstChild?n.insert(t,n.firstChild):n.append(t)}o=f(e),(n=o.getAll("head")[0])||(a=o.getAll("html")[0],n=new h("head",1),a.firstChild?a.insert(n,a.firstChild,!0):a.append(n)),a=o.firstChild,r.xml_pi?(l='version="1.0"',r.docencoding&&(l+=' encoding="'+r.docencoding+'"'),7!==a.type&&(a=new h("xml",7),o.insert(a,o.firstChild,!0)),a.value=l):a&&7===a.type&&a.remove(),a=o.getAll("#doctype")[0],r.doctype?(a||(a=new h("#doctype",10),r.xml_pi?o.insert(a,o.firstChild):s(a)),a.value=r.doctype.substring(9,r.doctype.length-1)):a&&a.remove(),a=null,p.each(o.getAll("meta"),function(t){"Content-Type"===t.attr("http-equiv")&&(a=t)}),r.docencoding?(a||((a=new h("meta",1)).attr("http-equiv","Content-Type"),a.shortEnded=!0,s(a)),a.attr("content","text/html; charset="+r.docencoding)):a&&a.remove(),a=o.getAll("title")[0],r.title?(a?a.empty():s(a=new h("title",1)),a.append(new h("#text",3)).value=r.title):a&&a.remove(),p.each("keywords,description,author,copyright,robots".split(","),function(t){var e,n,i=o.getAll("meta"),l=r[t];for(e=0;e<i.length;e++)if((n=i[e]).attr("name")===t)return void(l?n.attr("content",l):n.remove());l&&((a=new h("meta",1)).attr("name",t),a.attr("content",l),a.shortEnded=!0,s(a))});var d={};return p.each(o.getAll("link"),function(t){"stylesheet"===t.attr("rel")&&(d[t.attr("href")]=t)}),p.each(r.stylesheets,function(t){d[t]||((a=new h("link",1)).attr({rel:"stylesheet",text:"text/css",href:t}),a.shortEnded=!0,s(a)),delete d[t]}),p.each(d,function(t){t.remove()}),(a=o.getAll("body")[0])&&(u(a,"dir",r.langdir),u(a,"style",r.style),u(a,"vlink",r.visited_color),u(a,"link",r.link_color),u(a,"alink",r.active_color),c.setAttribs(t.getBody(),{style:r.style,dir:r.dir,vLink:r.visited_color,link:r.link_color,aLink:r.active_color})),(a=o.getAll("html")[0])&&(u(a,"lang",r.langcode),u(a,"xml:lang",r.langcode)),n.firstChild||n.remove(),(i=y({validate:!1,indent:!0,indent_before:"head,html,body,meta,title,script,link,style",indent_after:"head,html,body,meta,title,script,link,style"}).serialize(o)).substring(0,i.indexOf("</body>"))},C=Object.prototype.hasOwnProperty,k=(o=function(t,e){return e},function(){for(var t=new Array(arguments.length),e=0;e<t.length;e++)t[e]=arguments[e];if(0===t.length)throw new Error("Can't merge zero objects");for(var n={},i=0;i<t.length;i++){var l=t[i];for(var r in l)C.call(l,r)&&(n[r]=o(n[r],l[r]))}return n}),l=function(i,l){var r=n(i,l.get()),t=k({title:"",keywords:"",description:"",robots:"",author:"",docencoding:""},r);i.windowManager.open({title:"Metadata and Document Properties",size:"normal",body:{type:"panel",items:[{name:"title",type:"input",label:"Title"},{name:"keywords",type:"input",label:"Keywords"},{name:"description",type:"input",label:"Description"},{name:"robots",type:"input",label:"Robots"},{name:"author",type:"input",label:"Author"},{name:"docencoding",type:"input",label:"Encoding"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:t,onSubmit:function(t){var e=t.getData(),n=x(i,p.extend(r,e),l.get());l.set(n),t.close()}})},w=function(t,e){t.addCommand("mceFullPageProperties",function(){l(t,e)})},A=function(t,e){return p.each(t,function(t){e=e.replace(t,function(t){return"\x3c!--mce:protected "+escape(t)+"--\x3e"})}),e},P=function(t){return t.replace(/<!--mce:protected ([\s\S]*?)-->/g,function(t,e){return unescape(e)})},T=p.each,O=function(t){var e,n="",i="";if(r(t)){var l=a(t);n+='<?xml version="1.0" encoding="'+(l||"ISO-8859-1")+'" ?>\n'}return n+=_(t),n+="\n<html>\n<head>\n",(e=d(t))&&(n+="<title>"+e+"</title>\n"),(e=a(t))&&(n+='<meta http-equiv="Content-Type" content="text/html; charset='+e+'" />\n'),(e=c(t))&&(i+="font-family: "+e+";"),(e=u(t))&&(i+="font-size: "+e+";"),(e=s(t))&&(i+="color: "+e+";"),n+="</head>\n<body"+(i?' style="'+i+'"':"")+">\n"},D=function(e,n,i){e.on("BeforeSetContent",function(t){!function(t,e,n,i){var l,r,o,a,c="",u=t.dom;if(!(i.selection||(o=A(t.settings.protect,i.content),"raw"===i.format&&e.get()||i.source_view&&v(t)))){0!==o.length||i.source_view||(o=p.trim(e.get())+"\n"+p.trim(o)+"\n"+p.trim(n.get())),-1!==(l=(o=o.replace(/<(\/?)BODY/gi,"<$1body")).indexOf("<body"))?(l=o.indexOf(">",l),e.set(g(o.substring(0,l+1))),-1===(r=o.indexOf("</body",l))&&(r=o.length),i.content=p.trim(o.substring(l+1,r)),n.set(g(o.substring(r)))):(e.set(O(t)),n.set("\n</body>\n</html>")),a=b(e.get()),T(a.getAll("style"),function(t){t.firstChild&&(c+=t.firstChild.value)});var s=a.getAll("body")[0];s&&u.setAttribs(t.getBody(),{style:s.attr("style")||"",dir:s.attr("dir")||"",vLink:s.attr("vlink")||"",link:s.attr("link")||"",aLink:s.attr("alink")||""}),u.remove("fullpage_styles");var d=t.getDoc().getElementsByTagName("head")[0];if(c)u.add(d,"style",{id:"fullpage_styles"}).appendChild(m.document.createTextNode(c));var f={};p.each(d.getElementsByTagName("link"),function(t){"stylesheet"===t.rel&&t.getAttribute("data-mce-fullpage")&&(f[t.href]=t)}),p.each(a.getAll("link"),function(t){var e=t.attr("href");if(!e)return!0;f[e]||"stylesheet"!==t.attr("rel")||u.add(d,"link",{rel:"stylesheet",text:"text/css",href:e,"data-mce-fullpage":"1"}),delete f[e]}),p.each(f,function(t){t.parentNode.removeChild(t)})}}(e,n,i,t)}),e.on("GetContent",function(t){!function(t,e,n,i){i.selection||i.source_view&&v(t)||(i.content=P(p.trim(e)+"\n"+p.trim(i.content)+"\n"+p.trim(n)))}(e,n.get(),i.get(),t)})},E=function(t){t.ui.registry.addButton("fullpage",{tooltip:"Metadata and document properties",icon:"document-properties",onAction:function(){t.execCommand("mceFullPageProperties")}}),t.ui.registry.addMenuItem("fullpage",{text:"Metadata and document properties",icon:"document-properties",onAction:function(){t.execCommand("mceFullPageProperties")}})};!function z(){t.add("fullpage",function(t){var e=i(""),n=i("");w(t,e),E(t),D(t,e,n)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(l){"use strict";function e(){}function m(e){return function(){return e}}function n(){return s}var r,t=function(e){function n(){return r}var r=e;return{get:n,set:function(e){r=e},clone:function(){return t(n())}}},o=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e){return{isFullscreen:function(){return null!==e.get()}}},c=m(!1),u=m(!0),s=(r={fold:function(e,n){return e()},is:c,isSome:c,isNone:u,getOr:d,getOrThunk:a,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:m(null),getOrUndefined:m(undefined),or:d,orThunk:a,map:n,each:e,bind:n,exists:c,forall:u,filter:n,equals:f,equals_:f,toArray:function(){return[]},toString:m("none()")},Object.freeze&&Object.freeze(r),r);function f(e){return e.isNone()}function a(e){return e()}function d(e){return e}function h(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===n}}function v(e,n){for(var r=e.length,t=new Array(r),o=0;o<r;o++){var i=e[o];t[o]=n(i,o)}return t}function g(e,n){for(var r=0,t=e.length;r<t;r++){n(e[r],r)}}function p(e,n){for(var r=[],t=0,o=e.length;t<o;t++){var i=e[t];n(i,t)&&r.push(i)}return r}function w(e,n){return function(e){for(var n=[],r=0,t=e.length;r<t;++r){if(!Y(e[r]))throw new Error("Arr.flatten item "+r+" was not an array, input: "+e);Q.apply(n,e[r])}return n}(v(e,n))}function y(e,n){return-1!==e.indexOf(n)}function S(e){return e.style!==undefined&&$(e.style.getPropertyValue)}function E(e,n,r){!function(e,n,r){if(!(X(r)||G(r)||K(r)))throw l.console.error("Invalid call to Attr.set. Key ",n,":: Value ",r,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(n,r+"")}(e.dom(),n,r)}function O(e,n){var r=e.dom().getAttribute(n);return null===r?undefined:r}function N(e,n){e.dom().removeAttribute(n)}function T(e,n){var r=e.dom();!function(e,n){for(var r=Z(e),t=0,o=r.length;t<o;t++){var i=r[t];n(e[i],i)}}(n,function(e,n){!function(e,n,r){if(!X(r))throw l.console.error("Invalid call to CSS.set. Property ",n,":: Value ",r,":: Element ",e),new Error("CSS value must be a string: "+r);S(e)&&e.style.setProperty(n,r)}(r,n,e)})}function x(e,n){var r=e.dom(),t=l.window.getComputedStyle(r).getPropertyValue(n),o=""!==t||function(e){var n=ie(e)?e.dom().parentNode:e.dom();return n!==undefined&&null!==n&&n.ownerDocument.body.contains(n)}(e)?t:ue(r,n);return null===o?undefined:o}function b(e,n){var r=function(e,n){for(var r=0;r<e.length;r++){var t=e[r];if(t.test(n))return t}return undefined}(e,n);if(!r)return{major:0,minor:0};function t(e){return Number(n.replace(r,"$"+e))}return se(t(1),t(2))}function C(e,n){return function(){return n===e}}function D(e,n){return function(){return n===e}}function A(e,n){var r=String(n).toLowerCase();return function(e,n){for(var r=0,t=e.length;r<t;r++){var o=e[r];if(n(o,r))return z.some(o)}return z.none()}(e,function(e){return e.search(r)})}function M(n){return function(e){return y(e,n)}}function _(){return xe.get()}function k(e,n,r){return 0!=(e.compareDocumentPosition(n)&r)}function F(e,n){var r=e.dom();if(r.nodeType!==Ce)return!1;var t=r;if(t.matches!==undefined)return t.matches(n);if(t.msMatchesSelector!==undefined)return t.msMatchesSelector(n);if(t.webkitMatchesSelector!==undefined)return t.webkitMatchesSelector(n);if(t.mozMatchesSelector!==undefined)return t.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")}function R(e,n){var r=n===undefined?l.document:n.dom();return function(e){return e.nodeType!==Ce&&e.nodeType!==De||0===e.childElementCount}(r)?[]:v(r.querySelectorAll(e),ne.fromDom)}function L(n){return function(e){return z.from(e.dom().parentNode).map(ne.fromDom)}(n).map(Ae).map(function(e){return p(e,function(e){return!function(e,n){return e.dom()===n.dom()}(n,e)})}).getOr([])}function I(e,n,r,t){return{x:m(e),y:m(n),width:m(r),height:m(t),right:m(e+r),bottom:m(n+t)}}function P(e){var n=e===undefined?l.window:e,r=n.document,t=function(e){var n=e!==undefined?e.dom():l.document,r=n.body.scrollLeft||n.documentElement.scrollLeft,t=n.body.scrollTop||n.documentElement.scrollTop;return _e(r,t)}(ne.fromDom(r)),o=n.visualViewport;if(o!==undefined)return I(Math.max(o.pageLeft,t.left()),Math.max(o.pageTop,t.top()),o.width,o.height);var i=r.documentElement,u=i.clientWidth,c=i.clientHeight;return I(t.left(),t.top(),u,c)}function H(e,n,r){return p(function(e,n){for(var r=$(n)?n:c,t=e.dom(),o=[];null!==t.parentNode&&t.parentNode!==undefined;){var i=t.parentNode,u=ne.fromDom(i);if(o.push(u),!0===r(u))break;t=i}return o}(e,r),n)}function U(e,n){return function(e,n){return p(L(e),n)}(e,function(e){return F(e,n)})}function W(r,t){return function(n){n.setActive(null!==t.get());function e(e){return n.setActive(e.state)}return r.on("FullscreenStateChanged",e),function(){return r.off("FullscreenStateChanged",e)}}}var B,V,j,q=function(r){function e(){return o}function n(e){return e(r)}var t=m(r),o={fold:function(e,n){return n(r)},is:function(e){return r===e},isSome:u,isNone:c,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:e,orThunk:e,map:function(e){return q(e(r))},each:function(e){e(r)},bind:n,exists:n,forall:n,filter:function(e){return e(r)?o:s},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(e){return e.is(r)},equals_:function(e,n){return e.fold(c,function(e){return n(r,e)})}};return o},z={some:q,none:n,from:function(e){return null===e||e===undefined?s:q(e)}},X=h("string"),Y=h("array"),G=h("boolean"),$=h("function"),K=h("number"),J=Array.prototype.slice,Q=Array.prototype.push,Z=($(Array.from)&&Array.from,Object.keys),ee=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:m(e)}},ne={fromHtml:function(e,n){var r=(n||l.document).createElement("div");if(r.innerHTML=e,!r.hasChildNodes()||1<r.childNodes.length)throw l.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return ee(r.childNodes[0])},fromTag:function(e,n){var r=(n||l.document).createElement(e);return ee(r)},fromText:function(e,n){var r=(n||l.document).createTextNode(e);return ee(r)},fromDom:ee,fromPoint:function(e,n,r){var t=e.dom();return z.from(t.elementFromPoint(n,r)).map(ee)}},re=(l.Node.ATTRIBUTE_NODE,l.Node.CDATA_SECTION_NODE,l.Node.COMMENT_NODE,l.Node.DOCUMENT_NODE),te=(l.Node.DOCUMENT_TYPE_NODE,l.Node.DOCUMENT_FRAGMENT_NODE,l.Node.ELEMENT_NODE),oe=l.Node.TEXT_NODE,ie=(l.Node.PROCESSING_INSTRUCTION_NODE,l.Node.ENTITY_REFERENCE_NODE,l.Node.ENTITY_NODE,l.Node.NOTATION_NODE,"undefined"!=typeof l.window?l.window:Function("return this;")(),B=oe,function(e){return function(e){return e.dom().nodeType}(e)===B}),ue=function(e,n){return S(e)?e.style.getPropertyValue(n):""},ce=function(){return se(0,0)},se=function(e,n){return{major:e,minor:n}},fe={nu:se,detect:function(e,n){var r=String(n).toLowerCase();return 0===e.length?ce():b(e,r)},unknown:ce},ae="Firefox",de=function(e){var n=e.current;return{current:n,version:e.version,isEdge:C("Edge",n),isChrome:C("Chrome",n),isIE:C("IE",n),isOpera:C("Opera",n),isFirefox:C(ae,n),isSafari:C("Safari",n)}},le={unknown:function(){return de({current:undefined,version:fe.unknown()})},nu:de,edge:m("Edge"),chrome:m("Chrome"),ie:m("IE"),opera:m("Opera"),firefox:m(ae),safari:m("Safari")},me="Windows",he="Android",ve="Solaris",ge="FreeBSD",pe=function(e){var n=e.current;return{current:n,version:e.version,isWindows:D(me,n),isiOS:D("iOS",n),isAndroid:D(he,n),isOSX:D("OSX",n),isLinux:D("Linux",n),isSolaris:D(ve,n),isFreeBSD:D(ge,n)}},we={unknown:function(){return pe({current:undefined,version:fe.unknown()})},nu:pe,windows:m(me),ios:m("iOS"),android:m(he),linux:m("Linux"),osx:m("OSX"),solaris:m(ve),freebsd:m(ge)},ye=function(e,r){return A(e,r).map(function(e){var n=fe.detect(e.versionRegexes,r);return{current:e.name,version:n}})},Se=function(e,r){return A(e,r).map(function(e){var n=fe.detect(e.versionRegexes,r);return{current:e.name,version:n}})},Ee=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Oe=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return y(e,"edge/")&&y(e,"chrome")&&y(e,"safari")&&y(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Ee],search:function(e){return y(e,"chrome")&&!y(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return y(e,"msie")||y(e,"trident")}},{name:"Opera",versionRegexes:[Ee,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:M("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:M("firefox")},{name:"Safari",versionRegexes:[Ee,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(y(e,"safari")||y(e,"mobile/"))&&y(e,"applewebkit")}}],Ne=[{name:"Windows",search:M("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return y(e,"iphone")||y(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:M("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:M("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:M("linux"),versionRegexes:[]},{name:"Solaris",search:M("sunos"),versionRegexes:[]},{name:"FreeBSD",search:M("freebsd"),versionRegexes:[]}],Te={browsers:m(Oe),oses:m(Ne)},xe=t(function(e,n){var r=Te.browsers(),t=Te.oses(),o=ye(r,e).fold(le.unknown,le.nu),i=Se(t,e).fold(we.unknown,we.nu);return{browser:o,os:i,deviceType:function(e,n,r,t){var o=e.isiOS()&&!0===/ipad/i.test(r),i=e.isiOS()&&!o,u=e.isiOS()||e.isAndroid(),c=u||t("(pointer:coarse)"),s=o||!i&&u&&t("(min-device-width:768px)"),f=i||u&&!s,a=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(r),d=!f&&!s&&!a;return{isiPad:m(o),isiPhone:m(i),isTablet:m(s),isPhone:m(f),isTouch:m(c),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:m(a),isDesktop:m(d)}}(i,o,e,n)}}(l.navigator.userAgent,function(e){return l.window.matchMedia(e).matches})),be=function(e,n){return k(e,n,l.Node.DOCUMENT_POSITION_CONTAINED_BY)},Ce=te,De=re,Ae=(_().browser.isIE(),function(e){return v(e.dom().childNodes,ne.fromDom)}),Me=(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n]}("element","offset"),function(r,t){return{left:m(r),top:m(t),translate:function(e,n){return Me(r+e,t+n)}}}),_e=Me,ke=(_().browser.isSafari(),function(e,n){e.fire("FullscreenStateChanged",{state:n})}),Fe=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),Re=tinymce.util.Tools.resolve("tinymce.Env"),Le=tinymce.util.Tools.resolve("tinymce.util.Delay"),Ie="data-ephox-mobile-fullscreen-style",Pe="position:absolute!important;",He="top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;",Ue=Re.os.isAndroid(),We=function(e,n){function r(t){return function(e){var n=O(e,"style"),r=n===undefined?"no-styles":n.trim();r!==t&&(E(e,Ie,r),E(e,"style",t))}}var t=function(e,n,r){return H(e,function(e){return F(e,n)},r)}(e,"*"),o=w(t,function(e){return U(e,"*:not(.tox-silver-sink)")}),i=function(e){var n=x(e,"background-color");return n!==undefined&&""!==n?"background-color:"+n+"!important":"background-color:rgb(255,255,255)!important;"}(n);g(o,r("display:none!important;")),g(t,r(Pe+He+i)),r((!0===Ue?"":Pe)+He+i)(e)},Be=function(){var e=function(e){return R(e)}("["+Ie+"]");g(e,function(e){var n=O(e,Ie);"no-styles"!==n?E(e,"style",n):N(e,"style"),N(e,Ie)})},Ve=Fe.DOM,je=l.window.visualViewport,qe=je===undefined?{bind:e,unbind:e}:(V=function(){var n=t(z.none());return{clear:function(){n.set(z.none())},set:function(e){n.set(z.some(e))},isSet:function(){return n.get().isSome()},on:function(e){n.get().each(e)}}}(),j=Le.throttle(function(){l.document.body.scrollTop=0,l.document.documentElement.scrollTop=0,l.window.requestAnimationFrame(function(){V.on(function(e){return T(e,{top:je.offsetTop+"px",left:je.offsetLeft+"px",height:je.height+"px",width:je.width+"px"})})})},50),{bind:function(e){V.set(e),j(),je.addEventListener("resize",j),je.addEventListener("scroll",j)},unbind:function(){V.on(function(){je.removeEventListener("scroll",j),je.removeEventListener("resize",j)}),V.clear()}}),ze=function(e,n){var r,t,o,i=l.document.body,u=l.document.documentElement;t=e.getContainer();var c=ne.fromDom(t),s=n.get(),f=ne.fromDom(e.getBody()),a=Re.deviceType.isTouch();if(r=t.style,o=e.getContentAreaContainer().firstChild.style,s)o.width=s.iframeWidth,o.height=s.iframeHeight,r.width=s.containerWidth,r.height=s.containerHeight,r.top=s.containerTop,r.left=s.containerLeft,a&&Be(),Ve.removeClass(i,"tox-fullscreen"),Ve.removeClass(u,"tox-fullscreen"),Ve.removeClass(t,"tox-fullscreen"),function(e){l.window.scrollTo(e.x,e.y)}(s.scrollPos),n.set(null),ke(e,!1),qe.unbind(),e.off("remove",qe.unbind);else{var d={scrollPos:function(){var e=P(l.window);return{x:e.x(),y:e.y()}}(),containerWidth:r.width,containerHeight:r.height,containerTop:r.top,containerLeft:r.left,iframeWidth:o.width,iframeHeight:o.height};a&&We(c,f),o.width=o.height="100%",r.width=r.height="",Ve.addClass(i,"tox-fullscreen"),Ve.addClass(u,"tox-fullscreen"),Ve.addClass(t,"tox-fullscreen"),qe.bind(c),e.on("remove",qe.unbind),n.set(d),ke(e,!0)}},Xe=function(e,n){e.addCommand("mceFullScreen",function(){ze(e,n)})},Ye=function(e,n){e.ui.registry.addToggleMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Meta+Shift+F",onAction:function(){return e.execCommand("mceFullScreen")},onSetup:W(e,n)}),e.ui.registry.addToggleButton("fullscreen",{tooltip:"Fullscreen",icon:"fullscreen",onAction:function(){return e.execCommand("mceFullScreen")},onSetup:W(e,n)})};!function Ge(){o.add("fullscreen",function(e){var n=t(null);return e.settings.inline||(Xe(e,n),Ye(e,n),e.addShortcut("Meta+Shift+F","","mceFullScreen")),i(n)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function e(){}function r(e){return function(){return e}}var a=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return a(t())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e,t){e.addCommand("mceHelp",t)},s=function(e,t){e.ui.registry.addButton("help",{icon:"help",tooltip:"Help",onAction:t}),e.ui.registry.addMenuItem("help",{text:"Help",icon:"help",shortcut:"Alt+0",onAction:t})},c=function(){return(c=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)};function l(o){for(var a=[],e=1;e<arguments.length;e++)a[e-1]=arguments[e];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=a.concat(e);return o.apply(null,n)}}function n(){return m}var o,u=r(!1),h=r(!0),m=(o={fold:function(e,t){return e()},is:u,isSome:u,isNone:h,getOr:f,getOrThunk:d,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:r(null),getOrUndefined:r(undefined),or:f,orThunk:d,map:n,each:e,bind:n,exists:u,forall:h,filter:n,equals:p,equals_:p,toArray:function(){return[]},toString:r("none()")},Object.freeze&&Object.freeze(o),o);function p(e){return e.isNone()}function d(e){return e()}function f(e){return e}function g(e,t){return O.call(e,t)}function b(e,t){return-1<g(e,t)}function y(e,t){for(var n=e.length,o=new Array(n),a=0;a<n;a++){var r=e[a];o[a]=t(r,a)}return o}function k(e,o){return e.replace(/\$\{([^{}]*)\}/g,function(e,t){var n=o[t];return function(e){var t=typeof e;return"string"==t||"number"==t}(n)?n.toString():e})}function v(e){var t=F(e);return function(e,t){var n=g(e,t);return-1===n?x.none():x.some(n)}(t,"versions").each(function(e){t.splice(e,1),t.push("versions")}),{tabs:e,names:t}}function w(e,t){var n,o=H(),a=B(),r=D(e),i=L(),s=c(((n={})[o.name]=o,n[a.name]=a,n[r.name]=r,n[i.name]=i,n),t.get());return function(e){return x.from(e.getParam("help_tabs"))}(e).fold(function(){return v(s)},function(e){return function(e,t){var n={},o=y(e,function(e){return"string"==typeof e?(E(t,e)&&(n[e]=t[e]),e):(n[e.name]=e).name});return{tabs:n,names:o}}(e,s)})}function A(a,r){return function(){var e=w(a,r),t=e.tabs,n=e.names,o={type:"tabpanel",tabs:function(e){for(var t=[],n=function(e){t.push(e)},o=0;o<e.length;o++)e[o].each(n);return t}(y(n,function(e){return function(e,t){return E(e,t)?x.from(e[t]):x.none()}(t,e)}))};a.windowManager.open({title:"Help",size:"medium",body:o,buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{}})}}var C,T=function(n){function e(){return a}function t(e){return e(n)}var o=r(n),a={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:h,isNone:u,getOr:o,getOrThunk:o,getOrDie:o,getOrNull:o,getOrUndefined:o,or:e,orThunk:e,map:function(e){return T(e(n))},each:function(e){e(n)},bind:t,exists:t,forall:t,filter:function(e){return e(n)?a:m},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(u,function(e){return t(n,e)})}};return a},x={some:T,none:n,from:function(e){return null===e||e===undefined?m:T(e)}},P=(C="function",function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"==t&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":t}(e)===C}),M=Array.prototype.slice,O=Array.prototype.indexOf,F=(P(Array.from)&&Array.from,Object.keys),S=Object.hasOwnProperty,E=function(e,t){return S.call(e,t)},I=[{shortcuts:["Meta + B"],action:"Bold"},{shortcuts:["Meta + I"],action:"Italic"},{shortcuts:["Meta + U"],action:"Underline"},{shortcuts:["Meta + A"],action:"Select all"},{shortcuts:["Meta + Y","Meta + Shift + Z"],action:"Redo"},{shortcuts:["Meta + Z"],action:"Undo"},{shortcuts:["Access + 1"],action:"Header 1"},{shortcuts:["Access + 2"],action:"Header 2"},{shortcuts:["Access + 3"],action:"Header 3"},{shortcuts:["Access + 4"],action:"Header 4"},{shortcuts:["Access + 5"],action:"Header 5"},{shortcuts:["Access + 6"],action:"Header 6"},{shortcuts:["Access + 7"],action:"Paragraph"},{shortcuts:["Access + 8"],action:"Div"},{shortcuts:["Access + 9"],action:"Address"},{shortcuts:["Alt + 0"],action:"Open help dialog"},{shortcuts:["Alt + F9"],action:"Focus to menubar"},{shortcuts:["Alt + F10"],action:"Focus to toolbar"},{shortcuts:["Alt + F11"],action:"Focus to element path"},{shortcuts:["Ctrl + F9"],action:"Focus to contextual toolbar"},{shortcuts:["Shift + Enter"],action:"Open popup menu for split buttons"},{shortcuts:["Meta + K"],action:"Insert link (if link plugin activated)"},{shortcuts:["Meta + S"],action:"Save (if save plugin activated)"},{shortcuts:["Meta + F"],action:"Find (if searchreplace plugin activated)"},{shortcuts:["Meta + Shift + F"],action:"Switch to or from fullscreen mode"}],_=tinymce.util.Tools.resolve("tinymce.Env"),j=function(e){var n=_.mac?{alt:"⌥",ctrl:"⌃",shift:"⇧",meta:"⌘",access:"⌃⌥"}:{meta:"Ctrl ",access:"Shift + Alt "},t=e.split("+"),o=y(t,function(e){var t=e.toLowerCase().trim();return E(n,t)?n[t]:e});return _.mac?o.join("").replace(/\s/,""):o.join("+")},H=function(){return{name:"shortcuts",title:"Handy Shortcuts",items:[{type:"table",header:["Action","Shortcut"],cells:y(I,function(e){var t=y(e.shortcuts,j).join(" or ");return[e.action,t]})}]}},U=tinymce.util.Tools.resolve("tinymce.util.I18n"),W=[{key:"advlist",name:"Advanced List"},{key:"anchor",name:"Anchor"},{key:"autolink",name:"Autolink"},{key:"autoresize",name:"Autoresize"},{key:"autosave",name:"Autosave"},{key:"bbcode",name:"BBCode"},{key:"charmap",name:"Character Map"},{key:"code",name:"Code"},{key:"codesample",name:"Code Sample"},{key:"colorpicker",name:"Color Picker"},{key:"directionality",name:"Directionality"},{key:"emoticons",name:"Emoticons"},{key:"fullpage",name:"Full Page"},{key:"fullscreen",name:"Full Screen"},{key:"help",name:"Help"},{key:"hr",name:"Horizontal Rule"},{key:"image",name:"Image"},{key:"imagetools",name:"Image Tools"},{key:"importcss",name:"Import CSS"},{key:"insertdatetime",name:"Insert Date/Time"},{key:"legacyoutput",name:"Legacy Output"},{key:"link",name:"Link"},{key:"lists",name:"Lists"},{key:"media",name:"Media"},{key:"nonbreaking",name:"Nonbreaking"},{key:"noneditable",name:"Noneditable"},{key:"pagebreak",name:"Page Break"},{key:"paste",name:"Paste"},{key:"preview",name:"Preview"},{key:"print",name:"Print"},{key:"save",name:"Save"},{key:"searchreplace",name:"Search and Replace"},{key:"spellchecker",name:"Spell Checker"},{key:"tabfocus",name:"Tab Focus"},{key:"table",name:"Table"},{key:"template",name:"Template"},{key:"textcolor",name:"Text Color"},{key:"textpattern",name:"Text Pattern"},{key:"toc",name:"Table of Contents"},{key:"visualblocks",name:"Visual Blocks"},{key:"visualchars",name:"Visual Characters"},{key:"wordcount",name:"Word Count"},{key:"advcode",name:"Advanced Code Editor*"},{key:"formatpainter",name:"Format Painter*"},{key:"powerpaste",name:"PowerPaste*"},{key:"tinydrive",name:"Tiny Drive*"},{key:"tinymcespellchecker",name:"Spell Checker Pro*"},{key:"a11ychecker",name:"Accessibility Checker*"},{key:"linkchecker",name:"Link Checker*"},{key:"mentions",name:"Mentions*"},{key:"mediaembed",name:"Enhanced Media Embed*"},{key:"checklist",name:"Checklist*"},{key:"casechange",name:"Case Change*"},{key:"permanentpen",name:"Permanent Pen*"},{key:"pageembed",name:"Page Embed*"},{key:"tinycomments",name:"Tiny Comments*"},{key:"advtable",name:"Advanced Tables*"},{key:"autocorrect",name:"Autocorrect*"}],D=function(e){function r(t,n){return function(e,t){for(var n=0,o=e.length;n<o;n++){var a=e[n];if(t(a,n))return x.some(a)}return x.none()}(W,function(e){return e.key===n}).fold(function(){var e=t.plugins[n].getMetadata;return"function"==typeof e?o(e()):n},function(e){return o({name:e.name,url:"https://www.tiny.cloud/docs/plugins/"+e.key})})}var t,n,o=l(k,'<a href="${url}" target="_blank" rel="noopener">${name}</a>');return{name:"plugins",title:"Plugins",items:[{type:"htmlpanel",presets:"document",html:[(n=e,null==n?"":'<div data-mce-tabstop="1" tabindex="-1">'+function(t){var e=function(e){var t=F(e.plugins);return e.settings.forced_plugins===undefined?t:function(e,t){for(var n=[],o=0,a=e.length;o<a;o++){var r=e[o];t(r,o)&&n.push(r)}return n}(t,function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,e)}}(l(b,e.settings.forced_plugins)))}(t),n=y(e,function(e){return"<li>"+r(t,e)+"</li>"}),o=n.length,a=n.join("");return"<p><b>"+U.translate(["Plugins installed ({0}):",o])+"</b></p><ul>"+a+"</ul>"}(n)+"</div>"),(t=y(["Accessibility Checker","Advanced Code Editor","Advanced Tables","Case Change","Checklist","Tiny Comments","Tiny Drive","Enhanced Media Embed","Format Painter","Link Checker","Mentions","MoxieManager","Page Embed","Permanent Pen","PowerPaste","Spell Checker Pro"],function(e){return"<li>"+U.translate(e)+"</li>"}).join(""),'<div data-mce-tabstop="1" tabindex="-1"><p><b>'+U.translate("Premium plugins:")+"</b></p><ul>"+t+'<li style="list-style: none; margin-top: 1em;"><a href="https://www.tiny.cloud/pricing/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">'+U.translate("Learn more...")+"</a></li></ul></div>")].join("")}]}},N=tinymce.util.Tools.resolve("tinymce.EditorManager"),L=function(){var e,t,n='<a href="https://www.tinymce.com/docs/changelog/?utm_campaign=editor_referral&utm_medium=help_dialog&utm_source=tinymce" target="_blank">TinyMCE '+(e=N.majorVersion,t=N.minorVersion,0===e.indexOf("@")?"X.X.X":e+"."+t)+"</a>";return{name:"versions",title:"Version",items:[{type:"htmlpanel",html:"<p>"+U.translate(["You are using {0}",n])+"</p>",presets:"document"}]}},B=function(){return{name:"keyboardnav",title:"Keyboard Navigation",items:[{type:"htmlpanel",presets:"document",html:"<h1>Editor UI keyboard navigation</h1>\n\n<h2>Activating keyboard navigation</h2>\n\n<p>The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:</p>\n<ul>\n <li>Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)</li>\n <li>Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)</li>\n <li>Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)</li>\n</ul>\n\n<p>Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline. </p>\n\n<h2>Moving between UI sections</h2>\n\n<p>When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:</p>\n<ul>\n <li>the menubar</li>\n <li>each group of the toolbar </li>\n <li>the sidebar</li>\n <li>the element path in the footer </li>\n <li>the wordcount toggle button in the footer </li>\n <li>the branding link in the footer </li>\n</ul>\n\n<p>Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.</p>\n\n<h2>Moving within UI sections</h2>\n\n<p>Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:</p>\n<ul>\n <li>moving between menus in the menubar</li>\n <li>moving between buttons in a toolbar group</li>\n <li>moving between items in the element path</li>\n</ul>\n\n<p>In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group. </p>\n\n<h1>Executing buttons</h1>\n\n<p>To execute a button, navigate the selection to the desired button and hit space or enter.</p>\n\n<h1>Opening, navigating and closing menus</h1>\n\n<p>When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.</p>\n\n<p>To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.</p>\n\n<h1>Context toolbars and menus</h1>\n\n<p>To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).</p>\n\n<p>Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.</p>\n\n<h1>Dialog navigation</h1>\n\n<p>There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.</p>\n\n<p>When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Users can navigate between interactive components by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.</p>\n\n<p>When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s components, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.</p>"}]}};!function z(){t.add("help",function(e){var t=a({}),n=function(n){return{addTab:function(e){var t=n.get();t[e.name]=e,n.set(t)}}}(t),o=A(e,t);return s(e,o),i(e,o),e.shortcuts.add("Alt+0","Open help dialog","mceHelp"),n})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"<hr />")})},t=function(n){n.ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}}),n.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}})};!function e(){n.add("hr",function(n){o(n),t(n)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(s){"use strict";function o(){}function a(t){return function(){return t}}function t(t){return t}function e(){return l}var n,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=a(!1),c=a(!0),l=(n={fold:function(t,e){return t()},is:u,isSome:u,isNone:c,getOr:d,getOrThunk:f,getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:a(null),getOrUndefined:a(undefined),or:d,orThunk:f,map:e,each:o,bind:e,exists:u,forall:c,filter:e,equals:i,equals_:i,toArray:function(){return[]},toString:a("none()")},Object.freeze&&Object.freeze(n),n);function i(t){return t.isNone()}function f(t){return t()}function d(t){return t}function m(e){return function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"==e&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":e}(t)===e}}function v(t){for(var e=[],n=0,r=t.length;n<r;++n){if(!U(t[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+t);S.apply(e,t[n])}return e}var p,g,h,y,b=function(n){function t(){return i}function e(t){return t(n)}var r=a(n),i={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:c,isNone:u,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:t,orThunk:t,map:function(t){return b(t(n))},each:function(t){t(n)},bind:e,exists:e,forall:e,filter:function(t){return t(n)?i:l},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(u,function(t){return e(n,t)})}};return i},w={some:b,none:e,from:function(t){return null===t||t===undefined?l:b(t)}},T=m("string"),_=m("object"),U=m("array"),x=m("boolean"),A=m("function"),I=Array.prototype.slice,S=Array.prototype.push,D=(A(Array.from)&&Array.from,function(){return(D=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)}),O={},C={exports:O};p=undefined,g=O,h=C,y=undefined,function(t){"object"==typeof g&&void 0!==h?h.exports=t():"function"==typeof p&&p.amd?p([],t):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EphoxContactWrapper=t()}(function(){return function s(o,a,u){function c(e,t){if(!a[e]){if(!o[e]){var n="function"==typeof y&&y;if(!t&&n)return n(e,!0);if(l)return l(e,!0);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}var i=a[e]={exports:{}};o[e][0].call(i.exports,function(t){return c(o[e][1][t]||t)},i,i.exports,s,o,a,u)}return a[e].exports}for(var l="function"==typeof y&&y,t=0;t<u.length;t++)c(u[t]);return c}({1:[function(t,e,n){var r,i,o=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}function c(t){if(r===setTimeout)return setTimeout(t,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(t){r=a}try{i="function"==typeof clearTimeout?clearTimeout:u}catch(t){i=u}}();var l,s=[],f=!1,d=-1;function m(){f&&l&&(f=!1,l.length?s=l.concat(s):d=-1,s.length&&p())}function p(){if(!f){var t=c(m);f=!0;for(var e=s.length;e;){for(l=s,s=[];++d<e;)l&&l[d].run();d=-1,e=s.length}l=null,f=!1,function n(t){if(i===clearTimeout)return clearTimeout(t);if((i===u||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(t);try{return i(t)}catch(e){try{return i.call(null,t)}catch(e){return i.call(this,t)}}}(t)}}function g(t,e){this.fun=t,this.array=e}function h(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(1<arguments.length)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];s.push(new g(t,e)),1!==s.length||f||c(p)},g.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=h,o.addListener=h,o.once=h,o.off=h,o.removeListener=h,o.removeAllListeners=h,o.emit=h,o.prependListener=h,o.prependOnceListener=h,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},{}],2:[function(t,f,e){(function(e){function r(){}function o(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],s(t,this)}function i(r,i){for(;3===r._state;)r=r._value;0!==r._state?(r._handled=!0,o._immediateFn(function(){var t=1===r._state?i.onFulfilled:i.onRejected;if(null!==t){var e;try{e=t(r._value)}catch(n){return void u(i.promise,n)}a(i.promise,e)}else(1===r._state?a:u)(i.promise,r._value)})):r._deferreds.push(i)}function a(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof o)return t._state=3,t._value=e,void c(t);if("function"==typeof n)return void s(function r(t,e){return function(){t.apply(e,arguments)}}(n,e),t)}t._state=1,t._value=e,c(t)}catch(i){u(t,i)}}function u(t,e){t._state=2,t._value=e,c(t)}function c(t){2===t._state&&0===t._deferreds.length&&o._immediateFn(function(){t._handled||o._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)i(t,t._deferreds[e]);t._deferreds=null}function l(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function s(t,e){var n=!1;try{t(function(t){n||(n=!0,a(e,t))},function(t){n||(n=!0,u(e,t))})}catch(r){if(n)return;n=!0,u(e,r)}}var t,n;t=this,n=setTimeout,o.prototype["catch"]=function(t){return this.then(null,t)},o.prototype.then=function(t,e){var n=new this.constructor(r);return i(this,new l(t,e,n)),n},o.all=function(t){var c=Array.prototype.slice.call(t);return new o(function(i,o){if(0===c.length)return i([]);var a=c.length;function u(e,t){try{if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void n.call(t,function(t){u(e,t)},o)}c[e]=t,0==--a&&i(c)}catch(r){o(r)}}for(var t=0;t<c.length;t++)u(t,c[t])})},o.resolve=function(e){return e&&"object"==typeof e&&e.constructor===o?e:new o(function(t){t(e)})},o.reject=function(n){return new o(function(t,e){e(n)})},o.race=function(i){return new o(function(t,e){for(var n=0,r=i.length;n<r;n++)i[n].then(t,e)})},o._immediateFn="function"==typeof e?function(t){e(t)}:function(t){n(t,0)},o._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)},o._setImmediateFn=function(t){o._immediateFn=t},o._setUnhandledRejectionFn=function(t){o._unhandledRejectionFn=t},void 0!==f&&f.exports?f.exports=o:t.Promise||(t.Promise=o)}).call(this,t("timers").setImmediate)},{timers:3}],3:[function(c,t,l){(function(t,e){var r=c("process/browser.js").nextTick,n=Function.prototype.apply,i=Array.prototype.slice,o={},a=0;function u(t,e){this._id=t,this._clearFn=e}l.setTimeout=function(){return new u(n.call(setTimeout,window,arguments),clearTimeout)},l.setInterval=function(){return new u(n.call(setInterval,window,arguments),clearInterval)},l.clearTimeout=l.clearInterval=function(t){t.close()},u.prototype.unref=u.prototype.ref=function(){},u.prototype.close=function(){this._clearFn.call(window,this._id)},l.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},l.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},l._unrefActive=l.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;0<=e&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},l.setImmediate="function"==typeof t?t:function(t){var e=a++,n=!(arguments.length<2)&&i.call(arguments,1);return o[e]=!0,r(function(){o[e]&&(n?t.apply(null,n):t.call(null),l.clearImmediate(e))}),e},l.clearImmediate="function"==typeof e?e:function(t){delete o[t]}}).call(this,c("timers").setImmediate,c("timers").clearImmediate)},{"process/browser.js":1,timers:3}],4:[function(t,e,n){var r=t("promise-polyfill"),i="undefined"!=typeof window?window:Function("return this;")();e.exports={boltExport:i.Promise||r}},{"promise-polyfill":2}]},{},[4])(4)});function P(t){s.setTimeout(function(){throw t},0)}function E(t){return vt(mt(t))}function L(a){return function(){for(var t=new Array(arguments.length),e=0;e<t.length;e++)t[e]=arguments[e];if(0===t.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<t.length;r++){var i=t[r];for(var o in i)wt.call(i,o)&&(n[o]=a(n[o],i[o]))}return n}}function N(t){var e=t.imageList.map(function(t){return{name:"images",type:"selectbox",label:"Image list",items:t}}),n=t.classList.map(function(t){return{name:"classes",type:"selectbox",label:"Class",items:t}});return v([[{name:"src",type:"urlinput",filetype:"image",label:"Source"}],e.toArray(),t.hasDescription?[{name:"alt",type:"input",label:"Image description"}]:[],t.hasImageTitle?[{name:"title",type:"input",label:"Image title"}]:[],t.hasDimensions?[{name:"dimensions",type:"sizeinput"}]:[],[{type:"grid",columns:2,items:v([n.toArray(),t.hasImageCaption?[{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[]])}]])}function j(t,e){return Math.max(parseInt(t,10),parseInt(e,10))}function R(t){return t.style.marginLeft&&t.style.marginRight&&t.style.marginLeft===t.style.marginRight?Et(t.style.marginLeft):""}function F(t){return t.style.marginTop&&t.style.marginBottom&&t.style.marginTop===t.style.marginBottom?Et(t.style.marginTop):""}function k(t){return t.style.borderWidth?Et(t.style.borderWidth):""}function z(t,e){return t.hasAttribute(e)?t.getAttribute(e):""}function M(t,e){return t.style[e]?t.style[e]:""}function H(t){return null!==t.parentNode&&"FIGURE"===t.parentNode.nodeName}function B(t,e,n){t.setAttribute(e,n)}function G(t){H(t)?function(t){var e=t.parentNode;zt.insertAfter(t,e),zt.remove(e)}(t):function(t){var e=zt.create("figure",{"class":"image"});zt.insertAfter(e,t),e.appendChild(t),e.appendChild(zt.create("figcaption",{contentEditable:"true"},"Caption")),e.contentEditable="false"}(t)}function W(t,e){var n=t.getAttribute("style"),r=e(null!==n?n:"");0<r.length?(t.setAttribute("style",r),t.setAttribute("data-mce-style",r)):t.removeAttribute("style")}function q(t,r){return function(t,e,n){t.style[e]?(t.style[e]=Lt(n),W(t,r)):B(t,e,n)}}function $(t,e){return t.style[e]?Et(t.style[e]):z(t,e)}function J(t,e){var n=Lt(e);t.style.marginLeft=n,t.style.marginRight=n}function V(t,e){var n=Lt(e);t.style.marginTop=n,t.style.marginBottom=n}function X(t,e){var n=Lt(e);t.style.borderWidth=n}function Z(t,e){t.style.borderStyle=e}function K(t){return"FIGURE"===t.nodeName}function Q(t,e){var n=s.document.createElement("img");return B(n,"style",e.style),!R(n)&&""===e.hspace||J(n,e.hspace),!F(n)&&""===e.vspace||V(n,e.vspace),!k(n)&&""===e.border||X(n,e.border),!function(t){return M(t,"borderStyle")}(n)&&""===e.borderStyle||Z(n,e.borderStyle),t(n.getAttribute("style"))}function Y(t,e){return{src:z(e,"src"),alt:z(e,"alt"),title:z(e,"title"),width:$(e,"width"),height:$(e,"height"),"class":z(e,"class"),style:t(z(e,"style")),caption:H(e),hspace:R(e),vspace:F(e),border:k(e),borderStyle:M(e,"borderStyle")}}function tt(t,e,n,r,i){n[r]!==e[r]&&i(t,r,n[r])}function et(r,i){return function(t,e,n){r(t,n),W(t,i)}}function nt(t,e){var n=t.dom.styles.parse(e),r=Nt(n),i=t.dom.styles.parse(t.dom.styles.serialize(r));return t.dom.styles.serialize(i)}function rt(t){var e=t.selection.getNode(),n=t.dom.getParent(e,"figure.image");return n?t.dom.select("img",n)[0]:e&&("IMG"!==e.nodeName||kt(e))?null:e}function it(e,t){var n=e.dom,r=n.getParent(t.parentNode,function(t){return e.schema.getTextBlockElements()[t.nodeName]},e.getBody());return r?n.split(r,t):t}function ot(e,t){var n=function(t,e){var n=s.document.createElement("img");if(Mt(t,_t(e,{caption:!1}),n),B(n,"alt",e.alt),e.caption){var r=zt.create("figure",{"class":"image"});return r.appendChild(n),r.appendChild(zt.create("figcaption",{contentEditable:"true"},"Caption")),r.contentEditable="false",r}return n}(function(t){return nt(e,t)},t);e.dom.setAttrib(n,"data-mce-id","__mcenew"),e.focus(),e.selection.setContent(n.outerHTML);var r=e.dom.select('*[data-mce-id="__mcenew"]')[0];if(e.dom.setAttrib(r,"data-mce-id",null),K(r)){var i=it(e,r);e.selection.select(i)}else e.selection.select(r)}function at(t,e){var n=rt(t);n?e.src?function(e,t){var n=rt(e);if(Mt(function(t){return nt(e,t)},t,n),function(t,e){t.dom.setAttrib(e,"src",e.getAttribute("src"))}(e,n),K(n.parentNode)){var r=n.parentNode;it(e,r),e.selection.select(n.parentNode)}else e.selection.select(n),Rt(e,t,n)}(t,e):function(t,e){if(e){var n=t.dom.is(e.parentNode,"figure.image")?e.parentNode:e;t.dom.remove(n),t.focus(),t.nodeChanged(),t.dom.isEmpty(t.getBody())&&(t.setContent(""),t.selection.setCursorLocation())}}(t,n):e.src&&ot(t,e)}function ut(t){return T(t.value)?t.value:""}function ct(e){return void 0===e&&(e=ut),function(t){return t?w.from(t).map(function(t){return Bt(t,e)}):w.none()}}var lt=C.exports.boltExport,st=function(t){var n=w.none(),e=[],r=function(t){i()?a(t):e.push(t)},i=function(){return n.isSome()},o=function(t){!function(t,e){for(var n=0,r=t.length;n<r;n++){e(t[n],n)}}(t,a)},a=function(e){n.each(function(t){s.setTimeout(function(){e(t)},0)})};return t(function(t){n=w.some(t),o(e),e=[]}),{get:r,map:function(n){return st(function(e){r(function(t){e(n(t))})})},isReady:i}},ft={nu:st,pure:function(e){return st(function(t){t(e)})}},dt=function(n){function t(t){n().then(t,P)}return{map:function(t){return dt(function(){return n().then(t)})},bind:function(e){return dt(function(){return n().then(function(t){return e(t).toPromise()})})},anonBind:function(t){return dt(function(){return n().then(function(){return t.toPromise()})})},toLazy:function(){return ft.nu(t)},toCached:function(){var t=null;return dt(function(){return null===t&&(t=n()),t})},toPromise:n,get:t}},mt=function(t){return dt(function(){return new lt(t)})},pt=function(t){return dt(function(){return lt.resolve(t)})},gt=function(n){return{is:function(t){return n===t},isValue:c,isError:u,getOr:a(n),getOrThunk:a(n),getOrDie:a(n),or:function(t){return gt(n)},orThunk:function(t){return gt(n)},fold:function(t,e){return e(n)},map:function(t){return gt(t(n))},mapError:function(t){return gt(n)},each:function(t){t(n)},bind:function(t){return t(n)},exists:function(t){return t(n)},forall:function(t){return t(n)},toOption:function(){return w.some(n)}}},ht=function(n){return{is:u,isValue:u,isError:c,getOr:t,getOrThunk:function(t){return t()},getOrDie:function(){return function(t){return function(){throw new Error(t)}}(String(n))()},or:function(t){return t},orThunk:function(t){return t()},fold:function(t,e){return t(n)},map:function(t){return ht(n)},mapError:function(t){return ht(t(n))},each:o,bind:function(t){return ht(n)},exists:u,forall:c,toOption:w.none}},yt={value:gt,error:ht,fromOption:function(t,e){return t.fold(function(){return ht(e)},gt)}},vt=function(o){return D(D({},o),{toCached:function(){return vt(o.toCached())},bindFuture:function(e){return vt(o.bind(function(t){return t.fold(function(t){return pt(yt.error(t))},function(t){return e(t)})}))},bindResult:function(e){return vt(o.map(function(t){return t.bind(e)}))},mapResult:function(e){return vt(o.map(function(t){return t.map(e)}))},mapError:function(e){return vt(o.map(function(t){return t.mapError(e)}))},foldResult:function(e,n){return o.map(function(t){return t.fold(e,n)})},withTimeout:function(t,i){return vt(mt(function(e){var n=!1,r=s.setTimeout(function(){n=!0,e(yt.error(i()))},t);o.get(function(t){n||(s.clearTimeout(r),e(t))})}))}})},bt=E,wt=Object.prototype.hasOwnProperty,Tt=L(function(t,e){return _(t)&&_(e)?Tt(t,e):e}),_t=L(function(t,e){return e}),Ut=function(t){return{title:"General",name:"general",items:N(t)}},xt=N,At=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),It=tinymce.util.Tools.resolve("tinymce.util.Promise"),St=tinymce.util.Tools.resolve("tinymce.util.XHR"),Dt=function(t){return t.getParam("images_upload_url","","string")},Ot=function(t){return t.getParam("images_upload_handler",undefined,"function")},Ct={hasDimensions:function(t){return t.getParam("image_dimensions",!0,"boolean")},hasUploadTab:function(t){return t.getParam("image_uploadtab",!0,"boolean")},hasAdvTab:function(t){return t.getParam("image_advtab",!1,"boolean")},getPrependUrl:function(t){return t.getParam("image_prepend_url","","string")},getClassList:function(t){return t.getParam("image_class_list")},hasDescription:function(t){return t.getParam("image_description",!0,"boolean")},hasImageTitle:function(t){return t.getParam("image_title",!1,"boolean")},hasImageCaption:function(t){return t.getParam("image_caption",!1,"boolean")},getImageList:function(t){return t.getParam("image_list",!1)},hasUploadUrl:function(t){return!!Dt(t)},hasUploadHandler:function(t){return!!Ot(t)},getUploadUrl:Dt,getUploadHandler:Ot,getUploadBasePath:function(t){return t.getParam("images_upload_base_path",undefined,"string")},getUploadCredentials:function(t){return t.getParam("images_upload_credentials",!1,"boolean")}},Pt=function(t,e){function n(t){r.parentNode&&r.parentNode.removeChild(r),e(t)}var r=s.document.createElement("img");r.onload=function(){var t={width:j(r.width,r.clientWidth),height:j(r.height,r.clientHeight)};n(yt.value(t))},r.onerror=function(){n(yt.error("Failed to get image dimensions for: "+t))};var i=r.style;i.visibility="hidden",i.position="fixed",i.bottom=i.left="0px",i.width=i.height="auto",s.document.body.appendChild(r),r.src=t},Et=function(t){return t=t&&t.replace(/px$/,"")},Lt=function(t){return 0<t.length&&/^[0-9]+$/.test(t)&&(t+="px"),t},Nt=function(t){if(t.margin){var e=String(t.margin).split(" ");switch(e.length){case 1:t["margin-top"]=t["margin-top"]||e[0],t["margin-right"]=t["margin-right"]||e[0],t["margin-bottom"]=t["margin-bottom"]||e[0],t["margin-left"]=t["margin-left"]||e[0];break;case 2:t["margin-top"]=t["margin-top"]||e[0],t["margin-right"]=t["margin-right"]||e[1],t["margin-bottom"]=t["margin-bottom"]||e[0],t["margin-left"]=t["margin-left"]||e[1];break;case 3:t["margin-top"]=t["margin-top"]||e[0],t["margin-right"]=t["margin-right"]||e[1],t["margin-bottom"]=t["margin-bottom"]||e[2],t["margin-left"]=t["margin-left"]||e[1];break;case 4:t["margin-top"]=t["margin-top"]||e[0],t["margin-right"]=t["margin-right"]||e[1],t["margin-bottom"]=t["margin-bottom"]||e[2],t["margin-left"]=t["margin-left"]||e[3]}delete t.margin}return t},jt=function(t,e){var n=Ct.getImageList(t);"string"==typeof n?St.send({url:n,success:function(t){e(JSON.parse(t))}}):"function"==typeof n?n(e):e(n)},Rt=function(t,e,n){function r(){n.onload=n.onerror=null,t.selection&&(t.selection.select(n),t.nodeChanged())}n.onload=function(){e.width||e.height||!Ct.hasDimensions(t)||t.dom.setAttribs(n,{width:String(n.clientWidth),height:String(n.clientHeight)}),r()},n.onerror=r},Ft=function(r){return new It(function(t,e){var n=new s.FileReader;n.onload=function(){t(n.result)},n.onerror=function(){e(n.error.message)},n.readAsDataURL(r)})},kt=function(t){return"IMG"===t.nodeName&&(t.hasAttribute("data-mce-object")||t.hasAttribute("data-mce-placeholder"))},zt=At.DOM,Mt=function(t,e,n){var r=Y(t,n);tt(n,r,e,"caption",function(t,e,n){return G(t)}),tt(n,r,e,"src",B),tt(n,r,e,"alt",B),tt(n,r,e,"title",B),tt(n,r,e,"width",q(0,t)),tt(n,r,e,"height",q(0,t)),tt(n,r,e,"class",B),tt(n,r,e,"style",et(function(t,e){return B(t,"style",e)},t)),tt(n,r,e,"hspace",et(J,t)),tt(n,r,e,"vspace",et(V,t)),tt(n,r,e,"border",et(X,t)),tt(n,r,e,"borderStyle",et(Z,t))},Ht=tinymce.util.Tools.resolve("tinymce.util.Tools"),Bt=function(t,i){var o=[];return Ht.each(t,function(t){var e=T(t.text)?t.text:T(t.title)?t.title:"";if(t.menu!==undefined){var n=Bt(t.menu,i);o.push({text:e,items:n})}else{var r=i(t);o.push({text:e,value:r})}}),o},Gt=function(t,e){return function(t,e){for(var n=0;n<t.length;n++){var r=e(t[n],n);if(r.isSome())return r}return w.none()}(t,function(t){return function(t){return Object.prototype.hasOwnProperty.call(t,"items")}(t)?Gt(t.items,e):t.value===e?w.some(t):w.none()})},Wt=ct,qt=function(t){return ct(ut)(t)},$t=function(t,e){return t.bind(function(t){return Gt(t,e)})};function Jt(a){function e(t,e,n,r){var i,o;(i=new s.XMLHttpRequest).open("POST",a.url),i.withCredentials=a.credentials,i.upload.onprogress=function(t){r(t.loaded/t.total*100)},i.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+i.status)},i.onload=function(){var t;i.status<200||300<=i.status?n("HTTP Error: "+i.status):(t=JSON.parse(i.responseText))&&"string"==typeof t.location?e(function(t,e){return t?t.replace(/\/$/,"")+"/"+e.replace(/^\//,""):e}(a.basePath,t.location)):n("Invalid JSON: "+i.responseText)},(o=new s.FormData).append("file",t.blob(),t.filename()),i.send(o)}return a=Ht.extend({credentials:!1,handler:e},a),{upload:function(t){return!a.url&&function(t){return t===e}(a.handler)?It.reject("Upload url missing from the settings."):function(r,i){return new It(function(t,e){try{i(r,t,e,o)}catch(n){e(n.message)}})}(t,a.handler)}}}function Vt(n){var r=Wt(function(t){return n.convertURL(t.value||t.url,"src")}),t=mt(function(e){jt(n,function(t){e(r(t).map(function(t){return v([[{text:"None",value:""}],t])}))})}),e=qt(Ct.getClassList(n)),i=Ct.hasAdvTab(n),o=Ct.hasUploadTab(n),a=Ct.hasUploadUrl(n),u=Ct.hasUploadHandler(n),c=function(e){var t=rt(e);return t?Y(function(t){return nt(e,t)},t):{src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""}}(n),l=Ct.hasDescription(n),s=Ct.hasImageTitle(n),f=Ct.hasDimensions(n),d=Ct.hasImageCaption(n),m=Ct.getUploadUrl(n),p=Ct.getUploadBasePath(n),g=Ct.getUploadCredentials(n),h=Ct.getUploadHandler(n),y=w.some(Ct.getPrependUrl(n)).filter(function(t){return T(t)&&0<t.length});return t.map(function(t){return{image:c,imageList:t,classList:e,hasAdvTab:i,hasUploadTab:o,hasUploadUrl:a,hasUploadHandler:u,hasDescription:l,hasImageTitle:s,hasDimensions:f,hasImageCaption:d,url:m,basePath:p,credentials:g,handler:h,prependURL:y}})}function Xt(t){return{src:{value:t.src,meta:{}},images:t.src,alt:t.alt,title:t.title,dimensions:{width:t.width,height:t.height},classes:t["class"],caption:t.caption,style:t.style,vspace:t.vspace,border:t.border,hspace:t.hspace,borderstyle:t.borderStyle,fileinput:[]}}function Zt(t){return{src:t.src.value,alt:t.alt,title:t.title,width:t.dimensions.width,height:t.dimensions.height,"class":t.classes,style:t.style,caption:t.caption,hspace:t.hspace,vspace:t.vspace,border:t.border,borderStyle:t.borderstyle}}function Kt(t,e){var n=e.getData();(function(t,e){return/^(?:[a-zA-Z]+:)?\/\//.test(e)?w.none():t.prependURL.bind(function(t){return e.substring(0,t.length)!==t?w.some(t+e):w.none()})})(t,n.src.value).each(function(t){e.setData({src:{value:t,meta:n.src.meta}})})}function Qt(t,e){var n=e.getData(),r=n.src.meta;if(r!==undefined){var i=Tt({},n);!function(t,e,n){t.hasDescription&&T(n.alt)&&(e.alt=n.alt),t.hasImageTitle&&T(n.title)&&(e.title=n.title),t.hasDimensions&&(T(n.width)&&(e.dimensions.width=n.width),T(n.height)&&(e.dimensions.height=n.height)),T(n["class"])&&$t(t.classList,n["class"]).each(function(t){e.classes=t.value}),t.hasImageCaption&&x(n.caption)&&(e.caption=n.caption),t.hasAdvTab&&(T(n.vspace)&&(e.vspace=n.vspace),T(n.border)&&(e.border=n.border),T(n.hspace)&&(e.hspace=n.hspace),T(n.borderstyle)&&(e.borderstyle=n.borderstyle))}(t,i,r),e.setData(i)}}function Yt(t,e,n,r){Kt(e,r),Qt(e,r),function(t,e,n,r){var i=r.getData(),o=i.src.value,a=i.src.meta||{};a.width||a.height||!e.hasDimensions||t.imageSize(o).get(function(t){t.each(function(t){n.open&&r.setData({dimensions:t})})})}(t,e,n,r),function(t,e,n){var r=n.getData(),i=$t(t.imageList,r.src.value);e.prevImage=i,n.setData({images:i.map(function(t){return t.value}).getOr("")})}(e,n,r)}function te(t,e,n){var r=Nt(t(n.style)),i=Tt({},n);return i.vspace=function(t){return t["margin-top"]&&t["margin-bottom"]&&t["margin-top"]===t["margin-bottom"]?Et(String(t["margin-top"])):""}(r),i.hspace=function(t){return t["margin-right"]&&t["margin-left"]&&t["margin-right"]===t["margin-left"]?Et(String(t["margin-right"])):""}(r),i.border=function(t){return t["border-width"]?Et(String(t["border-width"])):""}(r),i.borderstyle=function(t){return t["border-style"]?String(t["border-style"]):""}(r),i.style=function(t,e,n){return e(t(e(n)))}(t,e,r),i}function ee(a,u,c,l){var t=l.getData();l.block("Uploading image"),function(t){return 0===t.length?w.none():w.some(t[0])}(t.fileinput).fold(function(){l.unblock()},function(n){function r(){l.unblock(),s.URL.revokeObjectURL(i)}var i=s.URL.createObjectURL(n),o=Jt({url:u.url,basePath:u.basePath,credentials:u.credentials,handler:u.handler});Ft(n).then(function(t){var e=a.createBlobCache(n,i,t);o.upload(e).then(function(t){l.setData({src:{value:t,meta:{}}}),l.showTab("general"),Yt(a,u,c,l),r()})["catch"](function(t){r(),a.alertErr(l,t)})})})}function ne(n,r,i){return function(t,e){"src"===e.name?Yt(n,r,i,t):"images"===e.name?function(t,e,n,r){var i=r.getData(),o=$t(e.imageList,i.images);o.each(function(t){""===i.alt||n.prevImage.map(function(t){return t.text===i.alt}).getOr(!1)?""===t.value?r.setData({src:t,alt:n.prevAlt}):r.setData({src:t,alt:t.text}):r.setData({src:t})}),n.prevImage=o,Yt(t,e,n,r)}(n,r,i,t):"alt"===e.name?i.prevAlt=t.getData().alt:"style"===e.name?function(t,e){var n=e.getData(),r=te(t.parseStyle,t.serializeStyle,n);e.setData(r)}(n,t):"vspace"===e.name||"hspace"===e.name||"border"===e.name||"borderstyle"===e.name?function(t,e,n){var r=Tt(Xt(e.image),n.getData()),i=Q(t.normalizeCss,Zt(r));n.setData({style:i})}(n,r,t):"fileinput"===e.name&&ee(n,r,i,t)}}function re(n){return function(t){var e=function(t){return{prevImage:$t(t.imageList,t.image.src),prevAlt:t.image.alt,open:!0}}(t);return{title:"Insert/Edit Image",size:"normal",body:function(t){return t.hasAdvTab||t.hasUploadUrl||t.hasUploadHandler?{type:"tabpanel",tabs:v([[Ut(t)],t.hasAdvTab?[ae(t)]:[],t.hasUploadTab&&(t.hasUploadUrl||t.hasUploadHandler)?[ue(t)]:[]])}:{type:"panel",items:xt(t)}}(t),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:Xt(t.image),onSubmit:n.onSubmit(t),onChange:ne(n,t,e),onClose:function(t){return function(){t.open=!1}}(e)}}}function ie(e){var t={onSubmit:function(r){return function(n){return function(t){var e=Tt(Xt(n.image),t.getData());r.undoManager.transact(function(){at(r,Zt(e))}),r.editorUpload.uploadImagesAuto(),t.close()}}}(e),imageSize:function(e){return function(t){return bt(function(n){Pt(e.documentBaseURI.toAbsolute(t),function(t){var e=t.map(function(t){return{width:String(t.width),height:String(t.height)}});n(e)})})}}(e),createBlobCache:function(r){return function(t,e,n){return r.editorUpload.blobCache.create({blob:t,blobUri:e,name:t.name?t.name.replace(/\.[^\.]+$/,""):null,base64:n.split(",")[1]})}}(e),alertErr:function(n){return function(t,e){n.windowManager.alert(e,t.close)}}(e),normalizeCss:function(e){return function(t){return nt(e,t)}}(e),parseStyle:function(e){return function(t){return e.dom.parseStyle(t)}}(e),serializeStyle:function(n){return function(t,e){return n.dom.serializeStyle(t,e)}}(e)};return{open:function(){return Vt(e).map(re(t)).get(function(t){e.windowManager.open(t)})}}}function oe(o){return function(t){for(var e,n=t.length,r=function(t){t.attr("contenteditable",o?"true":null)};n--;){var i=t[n];void 0,(e=i.attr("class"))&&/\bimage\b/.test(e)&&(i.attr("contenteditable",o?"false":null),Ht.each(i.getAll("figcaption"),r))}}}var ae=function(t){return{title:"Advanced",name:"advanced",items:[{type:"input",label:"Style",name:"style"},{type:"grid",columns:2,items:[{type:"input",label:"Vertical space",name:"vspace",inputMode:"numeric"},{type:"input",label:"Horizontal space",name:"hspace",inputMode:"numeric"},{type:"input",label:"Border width",name:"border",inputMode:"numeric"},{type:"selectbox",name:"borderstyle",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]}},ue=function(t){return{title:"Upload",name:"upload",items:[{type:"dropzone",name:"fileinput"}]}},ce=function(t){t.addCommand("mceImage",ie(t).open)},le=function(t){t.on("PreInit",function(){t.parser.addNodeFilter("figure",oe(!0)),t.serializer.addNodeFilter("figure",oe(!1))})},se=function(e){e.ui.registry.addToggleButton("image",{icon:"image",tooltip:"Insert/edit image",onAction:ie(e).open,onSetup:function(t){return e.selection.selectorChangedWithUnbind("img:not([data-mce-object],[data-mce-placeholder]),figure.image",t.setActive).unbind}}),e.ui.registry.addMenuItem("image",{icon:"image",text:"Image...",onAction:ie(e).open}),e.ui.registry.addContextMenu("image",{update:function(t){return K(t)||function(t){return"IMG"===t.nodeName}(t)&&!kt(t)?["image"]:[]}})};!function fe(){r.add("image",function(t){le(t),se(t),ce(t)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(v){"use strict";function e(){}function n(){return c}var t,r=function(e){function n(){return t}var t=e;return{get:n,set:function(e){t=e},clone:function(){return r(n())}}},o=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=function(e){return function(){return e}},u=d(!1),a=d(!0),c=(t={fold:function(e,n){return e()},is:u,isSome:u,isNone:a,getOr:l,getOrThunk:f,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:d(null),getOrUndefined:d(undefined),or:l,orThunk:f,map:n,each:e,bind:n,exists:u,forall:a,filter:n,equals:s,equals_:s,toArray:function(){return[]},toString:d("none()")},Object.freeze&&Object.freeze(t),t);function s(e){return e.isNone()}function f(e){return e()}function l(e){return e}var m=function(t){function e(){return o}function n(e){return e(t)}var r=d(t),o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:a,isNone:u,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:e,orThunk:e,map:function(e){return m(e(t))},each:function(e){e(t)},bind:n,exists:n,forall:n,filter:function(e){return e(t)?o:c},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(u,function(e){return n(t,e)})}};return o},p={some:m,none:n,from:function(e){return null===e||e===undefined?c:m(e)}};function h(e,n){return y(v.document.createElement("canvas"),e,n)}function g(e){var n=h(e.width,e.height);return w(n).drawImage(e,0,0),n}function w(e){return e.getContext("2d")}function y(e,n,t){return e.width=n,e.height=t,e}var b,E,O=window.Promise?window.Promise:(b=T.immediateFn||"function"==typeof window.setImmediate&&window.setImmediate||function(e){v.setTimeout(e,1)},E=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},T.prototype["catch"]=function(e){return this.then(null,e)},T.prototype.then=function(t,r){var o=this;return new T(function(e,n){N.call(o,new R(t,r,e,n))})},T.all=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var c=Array.prototype.slice.call(1===e.length&&E(e[0])?e[0]:e);return new T(function(o,i){if(0===c.length)return o([]);var u=c.length;function a(n,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void t.call(e,function(e){a(n,e)},i)}c[n]=e,0==--u&&o(c)}catch(r){i(r)}}for(var e=0;e<c.length;e++)a(e,c[e])})},T.resolve=function(n){return n&&"object"==typeof n&&n.constructor===T?n:new T(function(e){e(n)})},T.reject=function(t){return new T(function(e,n){n(t)})},T.race=function(o){return new T(function(e,n){for(var t=0,r=o;t<r.length;t++)r[t].then(e,n)})},T);function T(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],A(e,I(S,this),I(_,this))}function I(e,n){return function(){return e.apply(n,arguments)}}function N(r){var o=this;null!==this._state?b(function(){var e=o._state?r.onFulfilled:r.onRejected;if(null!==e){var n;try{n=e(o._value)}catch(t){return void r.reject(t)}r.resolve(n)}else(o._state?r.resolve:r.reject)(o._value)}):this._deferreds.push(r)}function S(e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void A(I(n,e),I(S,this),I(_,this))}this._state=!0,this._value=e,x.call(this)}catch(t){_.call(this,t)}}function _(e){this._state=!1,this._value=e,x.call(this)}function x(){for(var e=0,n=this._deferreds;e<n.length;e++){var t=n[e];N.call(this,t)}this._deferreds=[]}function R(e,n,t,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof n?n:null,this.resolve=t,this.reject=r}function A(e,n,t){var r=!1;try{e(function(e){r||(r=!0,n(e))},function(e){r||(r=!0,t(e))})}catch(o){if(r)return;r=!0,t(o)}}function C(e){var n=e.src;return 0===n.indexOf("data:")?U(n):function t(r){return new O(function(e,t){var n=new v.XMLHttpRequest;n.open("GET",r,!0),n.responseType="blob",n.onload=function(){200===this.status&&e(this.response)},n.onerror=function(){var e,n=this;t(0===this.status?((e=new Error("No access to download image")).code=18,e.name="SecurityError",e):new Error("Error "+n.status+" downloading image"))},n.send()})}(n)}function D(a){return new O(function(e,n){var t=v.URL.createObjectURL(a),r=new v.Image,o=function(){r.removeEventListener("load",i),r.removeEventListener("error",u)};function i(){o(),e(r)}function u(){o(),n("Unable to load data of type "+a.type+": "+t)}r.addEventListener("load",i),r.addEventListener("error",u),r.src=t,r.complete&&i()})}function U(t){return new O(function(e,n){(function g(e){var n=e.split(","),t=/data:([^;]+)/.exec(n[0]);if(!t)return p.none();for(var r=t[1],o=n[1],i=v.atob(o),u=i.length,a=Math.ceil(u/1024),c=new Array(a),s=0;s<a;++s){for(var f=1024*s,l=Math.min(1024+f,u),d=new Array(l-f),m=f,h=0;m<l;++h,++m)d[h]=i[m].charCodeAt(0);c[s]=new Uint8Array(d)}return p.some(new v.Blob(c,{type:r}))})(t).fold(function(){n("uri is not base64: "+t)},e)})}function L(e,r,o){return r=r||"image/png",v.HTMLCanvasElement.prototype.toBlob?new O(function(n,t){e.toBlob(function(e){e?n(e):t()},r,o)}):U(e.toDataURL(r,o))}function k(e){return D(e).then(function(e){!function t(e){v.URL.revokeObjectURL(e.src)}(e);var n=h(function r(e){return e.naturalWidth||e.width}(e),function o(e){return e.naturalHeight||e.height}(e));return w(n).drawImage(e,0,0),n})}function j(e,n,t){var r=n.type;function o(n,t){return e.then(function(e){return function r(e,n,t){return n=n||"image/png",e.toDataURL(n,t)}(e,n,t)})}return{getType:d(r),toBlob:function i(){return O.resolve(n)},toDataURL:function u(){return t},toBase64:function a(){return t.split(",")[1]},toAdjustedBlob:function c(n,t){return e.then(function(e){return L(e,n,t)})},toAdjustedDataURL:o,toAdjustedBase64:function s(e,n){return o(e,n).then(function(e){return e.split(",")[1]})},toCanvas:function f(){return e.then(g)}}}function P(n){return function e(t){return new O(function(e){var n=new v.FileReader;n.onloadend=function(){e(n.result)},n.readAsDataURL(t)})}(n).then(function(e){return j(k(n),n,e)})}function M(n,e){return L(n,e).then(function(e){return j(O.resolve(n),e,n.toDataURL())})}function B(n,t){return n.toCanvas().then(function(e){return function a(e,n,t){var r=h(e.width,e.height),o=w(r),i=0,u=0;90!==(t=t<0?360+t:t)&&270!==t||y(r,r.height,r.width);90!==t&&180!==t||(i=r.width);270!==t&&180!==t||(u=r.height);return o.translate(i,u),o.rotate(t*Math.PI/180),o.drawImage(e,0,0),M(r,n)}(e,n.getType(),t)})}function F(n,t){return n.toCanvas().then(function(e){return function i(e,n,t){var r=h(e.width,e.height),o=w(r);"v"===t?(o.scale(1,-1),o.drawImage(e,0,-r.height)):(o.scale(-1,1),o.drawImage(e,-r.width,0));return M(r,n)}(e,n.getType(),t)})}function z(e){return P(e)}var H=tinymce.util.Tools.resolve("tinymce.util.Delay"),q=tinymce.util.Tools.resolve("tinymce.util.Promise"),$=tinymce.util.Tools.resolve("tinymce.util.URI");function X(e,n){for(var t=0,r=e.length;t<r;t++){var o=e[t];if(n(o,t))return p.some(o)}return p.none()}function W(e){return null!==e&&e!==undefined}function G(n){return"ImageProxy HTTP error: "+X(ue,function(e){return n===e.code}).fold(d("Unknown ImageProxy error"),function(e){return e.message})}function Y(e){var n=G(e);return q.reject(n)}function V(n){return X(ae,function(e){return e.type===n}).fold(d("Unknown service error"),function(e){return e.message})}function J(e,n){return re(n).then(function(e){var n=function(e){var n=ie(e),t=te(n,["error","type"]);return"ImageProxy Service error: "+(t?V(t):"Invalid JSON in service error message")}(e);return q.reject(n)})}function K(e,n){var t={"Content-Type":"application/json;charset=UTF-8","tiny-api-key":n};return oe(function(e,n){var t=-1===e.indexOf("?")?"?":"&";return/[?&]apiKey=/.test(e)||!n?e:e+t+"apiKey="+encodeURIComponent(n)}(e,n),t,!1).then(function(e){return e.status<200||300<=e.status?ce(e.status,e.blob):q.resolve(e.blob)})}var Q,Z={getImageSize:function wn(e){var n,t;function r(e){return/^[0-9\.]+px$/.test(e)}return n=e.style.width,t=e.style.height,n||t?r(n)&&r(t)?{w:parseInt(n,10),h:parseInt(t,10)}:null:(n=e.width,t=e.height,n&&t?{w:parseInt(n,10),h:parseInt(t,10)}:null)},setImageSize:function yn(e,n){var t,r;n&&(t=e.style.width,r=e.style.height,(t||r)&&(e.style.width=n.w+"px",e.style.height=n.h+"px",e.removeAttribute("data-mce-style")),t=e.width,r=e.height,(t||r)&&(e.setAttribute("width",n.w),e.setAttribute("height",n.h)))},getNaturalImageSize:function bn(e){return{w:e.naturalWidth,h:e.naturalHeight}}},ee=(Q="function",function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===Q}),ne=Array.prototype.slice,te=(ee(Array.from)&&Array.from,function(e,n){var t;return t=n.reduce(function(e,n){return W(e)?e[n]:undefined},e),W(t)?t:null}),re=function(n){return new q(function(t){var e=new v.FileReader;e.onload=function(e){var n=e.target;t(n.result)},e.readAsText(n)})},oe=function(n,r,o){return new q(function(e){var t;(t=new v.XMLHttpRequest).onreadystatechange=function(){4===t.readyState&&e({status:t.status,blob:this.response})},t.open("GET",n,!0),t.withCredentials=o,i.each(r,function(e,n){t.setRequestHeader(n,e)}),t.responseType="blob",t.send()})},ie=function(e){var n;try{n=JSON.parse(e)}catch(t){}return n},ue=[{code:404,message:"Could not find Image Proxy"},{code:403,message:"Rejected request"},{code:0,message:"Incorrect Image Proxy URL"}],ae=[{type:"key_missing",message:"The request did not include an api key."},{type:"key_not_found",message:"The provided api key could not be found."},{type:"domain_not_trusted",message:"The api key is not valid for the request origins."}],ce=function(e,n){return function(e){return 400===e||403===e||500===e}(e)?J(0,n):Y(e)},se=Y;function fe(e,n,t){return n?K(e,n):function r(e,n){return oe(e,{},n).then(function(e){return e.status<200||300<=e.status?se(e.status):q.resolve(e.blob)})}(e,t)}function le(e,n,t){return 0!=(e.compareDocumentPosition(n)&t)}function de(e,n){var t=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(r.test(n))return r}return undefined}(e,n);if(!t)return{major:0,minor:0};function r(e){return Number(n.replace(t,"$"+e))}return Ce(r(1),r(2))}function me(e,n){return function(){return n===e}}function he(e,n){return function(){return n===e}}function ge(e,n){var t=String(n).toLowerCase();return X(e,function(e){return e.search(t)})}function ve(e,n){return-1!==e.indexOf(n)}function pe(n){return function(e){return ve(e,n)}}function we(e,n){return function(e,n){return X(e.dom().childNodes,function(e){return n(Je.fromDom(e))}).map(Je.fromDom)}(e,function(e){return function(e,n){var t=e.dom();if(t.nodeType!==Qe)return!1;var r=t;if(r.matches!==undefined)return r.matches(n);if(r.msMatchesSelector!==undefined)return r.msMatchesSelector(n);if(r.webkitMatchesSelector!==undefined)return r.webkitMatchesSelector(n);if(r.mozMatchesSelector!==undefined)return r.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")}(e,n)})}function ye(e){return we(Je.fromDom(e),"img")}function be(e,n){return e.dom.is(n,"figure")}function Ee(e,n){e.notificationManager.open({text:n,type:"error"})}function Oe(e){var n=e.selection.getNode();return be(e,n)?ye(n):p.some(Je.fromDom(n))}function Te(e,n){var t,r=n.src;return nn(e,n)?fe(n.src,null,function(e,n){return-1!==i.inArray(function(e){return e.getParam("imagetools_credentials_hosts",[],"string[]")}(e),new $(n.src).host)}(e,n)):en(e,n)?function(e){return C(e)}(n):(r=function(e){return e.getParam("imagetools_proxy")}(e),r+=(-1===r.indexOf("?")?"?":"&")+"url="+encodeURIComponent(n.src),t=function(e){return e.getParam("api_key",e.getParam("imagetools_api_key","","string"),"string")}(e),fe(r,t,!1))}function Ie(e,n){return function(e){return p.from(e.getParam("imagetools_fetch_image",null,"function"))}(e).fold(function(){return Te(e,n)},function(e){return e(n)})}function Ne(e,n){var t;return(t=e.editorUpload.blobCache.getByUri(n.src))?q.resolve(t.blob()):Ie(e,n)}function Se(e){H.clearTimeout(e.get())}function _e(i,u,a,c,s,f){return u.toBlob().then(function(e){var n,t,r,o;return r=i.editorUpload.blobCache,n=s.src,function(e){return e.getParam("images_reuse_filename",!1,"boolean")}(i)&&(t=(o=r.getByUri(n))?(n=o.uri(),o.name()):function(e,n){var t=n.match(/\/([^\/\?]+)?\.(?:jpeg|jpg|png|gif)(?:\?|$)/i);return t?e.dom.encode(t[1]):null}(i,n)),o=r.create({id:"imagetools"+Ze++,blob:e,base64:u.toBase64(),uri:n,name:t}),r.add(o),i.undoManager.transact(function(){i.$(s).on("load",function e(){i.$(s).off("load",e),i.nodeChanged(),a?i.editorUpload.uploadImagesAuto():(Se(c),function(e,n){var t=H.setEditorTimeout(e,function(){e.editorUpload.uploadImagesAuto()},function(e){return e.getParam("images_upload_timeout",3e4,"number")}(e));n.set(t)}(i,c))}),f&&i.$(s).attr({width:f.w,height:f.h}),i.$(s).attr({src:o.blobUri()}).removeAttr("data-mce-src")}),o})}function xe(t,r,e,o){return function(){return Oe(t).fold(function(){Ee(t,"Could not find selected image")},function(n){return t._scanForImages().then(function(){return Ne(t,n.dom())}).then(z).then(e).then(function(e){return _e(t,e,!1,r,n.dom(),o)},function(e){Ee(t,e)})})}}var Re=function(e,n){return le(e,n,v.Node.DOCUMENT_POSITION_CONTAINED_BY)},Ae=function(){return Ce(0,0)},Ce=function(e,n){return{major:e,minor:n}},De={nu:Ce,detect:function(e,n){var t=String(n).toLowerCase();return 0===e.length?Ae():de(e,t)},unknown:Ae},Ue="Firefox",Le=function(e){var n=e.current;return{current:n,version:e.version,isEdge:me("Edge",n),isChrome:me("Chrome",n),isIE:me("IE",n),isOpera:me("Opera",n),isFirefox:me(Ue,n),isSafari:me("Safari",n)}},ke={unknown:function(){return Le({current:undefined,version:De.unknown()})},nu:Le,edge:d("Edge"),chrome:d("Chrome"),ie:d("IE"),opera:d("Opera"),firefox:d(Ue),safari:d("Safari")},je="Windows",Pe="Android",Me="Solaris",Be="FreeBSD",Fe=function(e){var n=e.current;return{current:n,version:e.version,isWindows:he(je,n),isiOS:he("iOS",n),isAndroid:he(Pe,n),isOSX:he("OSX",n),isLinux:he("Linux",n),isSolaris:he(Me,n),isFreeBSD:he(Be,n)}},ze={unknown:function(){return Fe({current:undefined,version:De.unknown()})},nu:Fe,windows:d(je),ios:d("iOS"),android:d(Pe),linux:d("Linux"),osx:d("OSX"),solaris:d(Me),freebsd:d(Be)},He=function(e,t){return ge(e,t).map(function(e){var n=De.detect(e.versionRegexes,t);return{current:e.name,version:n}})},qe=function(e,t){return ge(e,t).map(function(e){var n=De.detect(e.versionRegexes,t);return{current:e.name,version:n}})},$e=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Xe=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return ve(e,"edge/")&&ve(e,"chrome")&&ve(e,"safari")&&ve(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,$e],search:function(e){return ve(e,"chrome")&&!ve(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return ve(e,"msie")||ve(e,"trident")}},{name:"Opera",versionRegexes:[$e,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:pe("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:pe("firefox")},{name:"Safari",versionRegexes:[$e,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(ve(e,"safari")||ve(e,"mobile/"))&&ve(e,"applewebkit")}}],We=[{name:"Windows",search:pe("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return ve(e,"iphone")||ve(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:pe("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:pe("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:pe("linux"),versionRegexes:[]},{name:"Solaris",search:pe("sunos"),versionRegexes:[]},{name:"FreeBSD",search:pe("freebsd"),versionRegexes:[]}],Ge={browsers:d(Xe),oses:d(We)},Ye=r(function(e,n){var t=Ge.browsers(),r=Ge.oses(),o=He(t,e).fold(ke.unknown,ke.nu),i=qe(r,e).fold(ze.unknown,ze.nu);return{browser:o,os:i,deviceType:function(e,n,t,r){var o=e.isiOS()&&!0===/ipad/i.test(t),i=e.isiOS()&&!o,u=e.isiOS()||e.isAndroid(),a=u||r("(pointer:coarse)"),c=o||!i&&u&&r("(min-device-width:768px)"),s=i||u&&!c,f=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(t),l=!s&&!c&&!f;return{isiPad:d(o),isiPhone:d(i),isTablet:d(c),isPhone:d(s),isTouch:d(a),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:d(f),isDesktop:d(l)}}(i,o,e,n)}}(v.navigator.userAgent,function(e){return v.window.matchMedia(e).matches})),Ve=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:d(e)}},Je={fromHtml:function(e,n){var t=(n||v.document).createElement("div");if(t.innerHTML=e,!t.hasChildNodes()||1<t.childNodes.length)throw v.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return Ve(t.childNodes[0])},fromTag:function(e,n){var t=(n||v.document).createElement(e);return Ve(t)},fromText:function(e,n){var t=(n||v.document).createTextNode(e);return Ve(t)},fromDom:Ve,fromPoint:function(e,n,t){var r=e.dom();return p.from(r.elementFromPoint(n,t)).map(Ve)}},Ke=(v.Node.ATTRIBUTE_NODE,v.Node.CDATA_SECTION_NODE,v.Node.COMMENT_NODE,v.Node.DOCUMENT_NODE,v.Node.DOCUMENT_TYPE_NODE,v.Node.DOCUMENT_FRAGMENT_NODE,v.Node.ELEMENT_NODE),Qe=(v.Node.TEXT_NODE,v.Node.PROCESSING_INSTRUCTION_NODE,v.Node.ENTITY_REFERENCE_NODE,v.Node.ENTITY_NODE,v.Node.NOTATION_NODE,Ke),Ze=(Ye.get().browser.isIE(),"undefined"!=typeof v.window?v.window:Function("return this;")(),0),en=function(e,n){var t=n.src;return 0===t.indexOf("data:")||0===t.indexOf("blob:")||new $(t).host===e.documentBaseURI.host},nn=function(e,n){return-1!==i.inArray(function(e){return e.getParam("imagetools_cors_hosts",[],"string[]")}(e),new $(n.src).host)},tn=function(n,t,r){return function(){var e=Oe(n).fold(function(){return null},function(e){var n=Z.getImageSize(e.dom());return n?{w:n.h,h:n.w}:null});return xe(n,t,function(e){return function(e,n){return B(e,n)}(e,r)},e)()}},rn=function(e,n,t){return function(){return xe(e,n,function(e){return function(e,n){return F(e,n)}(e,t)})()}},on=function(n,e){function t(e){return function(e){return n.dom.is(e,"img:not([data-mce-object],[data-mce-placeholder])")}(e)&&(en(n,e)||nn(n,e)||n.settings.imagetools_proxy)}return be(n,e)?ye(e).map(function(e){return t(e.dom())?p.some(e.dom()):p.none()}):t(e)?p.some(e):p.none()},un=Se,an=Ne,cn=Oe,sn=function(n,t,r,o,i){return new q(function(e){(function(e){return D(e)})(i).then(function(e){var n=Z.getNaturalImageSize(e);return o.w===n.w&&o.h===n.h||Z.getImageSize(r)&&Z.setImageSize(r,n),v.URL.revokeObjectURL(e.src),i}).then(z).then(function(e){return _e(n,e,!0,t,r)},function(){})})},fn=d("save-state"),ln=d("disable"),dn=d("enable"),mn=function(i,u){return function(){var r=cn(i),o=r.map(function(e){return Z.getNaturalImageSize(e.dom())});cn(i).each(function(n){on(i,n.dom()).each(function(e){an(i,n.dom()).then(function(e){var n=function(e){return{blob:e,url:v.URL.createObjectURL(e)}}(e);i.windowManager.open(function(e){return{title:"Edit Image",size:"large",body:{type:"panel",items:[{type:"imagetools",name:"imagetools",label:"Edit Image",currentState:e}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0,disabled:!0}],onSubmit:function(e){var t=e.getData().imagetools.blob;r.each(function(n){o.each(function(e){sn(i,u,n.dom(),e,t)})}),e.close()},onCancel:function(){},onAction:function(e,n){switch(n.name){case fn():n.value?e.enable("save"):e.disable("save");break;case ln():e.disable("save"),e.disable("cancel");break;case dn():e.enable("cancel")}}}}(n))})})})}},hn=function(t,e){i.each({mceImageRotateLeft:tn(t,e,-90),mceImageRotateRight:tn(t,e,90),mceImageFlipVertical:rn(t,e,"v"),mceImageFlipHorizontal:rn(t,e,"h"),mceEditImage:mn(t,e)},function(e,n){t.addCommand(n,e)})},gn=function(t,r,o){t.on("NodeChange",function(e){var n=o.get();n&&n.src!==e.element.src&&(un(r),t.editorUpload.uploadImagesAuto(),o.set(null)),on(t,e.element).each(o.set)})},vn=function(r){function n(e){return function(){return r.execCommand(e)}}r.ui.registry.addButton("rotateleft",{tooltip:"Rotate counterclockwise",icon:"rotate-left",onAction:n("mceImageRotateLeft")}),r.ui.registry.addButton("rotateright",{tooltip:"Rotate clockwise",icon:"rotate-right",onAction:n("mceImageRotateRight")}),r.ui.registry.addButton("flipv",{tooltip:"Flip vertically",icon:"flip-vertically",onAction:n("mceImageFlipVertical")}),r.ui.registry.addButton("fliph",{tooltip:"Flip horizontally",icon:"flip-horizontally",onAction:n("mceImageFlipHorizontal")}),r.ui.registry.addButton("editimage",{tooltip:"Edit image",icon:"edit-image",onAction:n("mceEditImage"),onSetup:function(t){function e(){cn(r).each(function(e){var n=on(r,e.dom()).isNone();t.setDisabled(n)})}return r.on("NodeChange",e),function(){r.off("NodeChange",e)}}}),r.ui.registry.addButton("imageoptions",{tooltip:"Image options",icon:"image-options",onAction:n("mceImage")}),r.ui.registry.addContextMenu("imagetools",{update:function(e){return on(r,e).fold(function(){return[]},function(e){return[{text:"Edit image",icon:"edit-image",onAction:n("mceEditImage")}]})}})},pn=function(n){n.ui.registry.addContextToolbar("imagetools",{items:function(e){return e.getParam("imagetools_toolbar","rotateleft rotateright flipv fliph editimage imageoptions")}(n),predicate:function(e){return on(n,e).isSome()},position:"node",scope:"node"})};!function En(){o.add("imagetools",function(e){var n=r(0),t=r(null);hn(e,n),vn(e),pn(e),gn(e,n,t)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function t(){}function n(t){return function(){return t}}function e(){return h}var r,o=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),f=tinymce.util.Tools.resolve("tinymce.EditorManager"),l=tinymce.util.Tools.resolve("tinymce.Env"),m=tinymce.util.Tools.resolve("tinymce.util.Tools"),c=function(t){return t.getParam("importcss_merge_classes")},i=function(t){return t.getParam("importcss_exclusive")},p=function(t){return t.getParam("importcss_selector_converter")},g=function(t){return t.getParam("importcss_selector_filter")},y=function(t){return t.getParam("importcss_groups")},v=function(t){return t.getParam("importcss_append")},d=function(t){return t.getParam("importcss_file_filter")},u=n(!1),s=n(!0),h=(r={fold:function(t,n){return t()},is:u,isSome:u,isNone:s,getOr:O,getOrThunk:x,getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:n(null),getOrUndefined:n(undefined),or:O,orThunk:x,map:e,each:t,bind:e,exists:u,forall:s,filter:e,equals:_,equals_:_,toArray:function(){return[]},toString:n("none()")},Object.freeze&&Object.freeze(r),r);function _(t){return t.isNone()}function x(t){return t()}function O(t){return t}function T(n){return function(t){return function(t){if(null===t)return"null";var n=typeof t;return"object"==n&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":n}(t)===n}}function b(t,n){return function(t){for(var n=[],e=0,r=t.length;e<r;++e){if(!w(t[e]))throw new Error("Arr.flatten item "+e+" was not an array, input: "+t);M.apply(n,t[e])}return n}(function(t,n){for(var e=t.length,r=new Array(e),o=0;o<e;o++){var i=t[o];r[o]=n(i,o)}return r}(t,n))}function k(n){return"string"==typeof n?function(t){return-1!==t.indexOf(n)}:n instanceof RegExp?function(t){return n.test(t)}:n}function S(i,t,u){var c=[],e={};function s(t,n){var e,r=t.href;if((r=function(t){var n=l.cacheSuffix;return"string"==typeof t&&(t=t.replace("?"+n,"").replace("&"+n,"")),t}(r))&&u(r,n)&&!function(t,n){var e=t.settings,r=!1!==e.skin&&(e.skin||"oxide");if(r){var o=e.skin_url?t.documentBaseURI.toAbsolute(e.skin_url):f.baseURL+"/skins/ui/"+r,i=f.baseURL+"/skins/content/";return n===o+"/content"+(t.inline?".inline":"")+".min.css"||-1!==n.indexOf(i)}return!1}(i,r)){m.each(t.imports,function(t){s(t,!0)});try{e=t.cssRules||t.rules}catch(o){}m.each(e,function(t){t.styleSheet?s(t.styleSheet,!0):t.selectorText&&m.each(t.selectorText.split(","),function(t){c.push(m.trim(t))})})}}m.each(i.contentCSS,function(t){e[t]=!0}),u=u||function(t,n){return n||e[t]};try{m.each(t.styleSheets,function(t){s(t)})}catch(n){}return c}function A(t,n){var e,r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(n);if(r){var o=r[1],i=r[2].substr(1).split(".").join(" "),u=m.makeMap("a,img");return r[1]?(e={title:n},t.schema.getTextBlockElements()[o]?e.block=o:t.schema.getBlockElements()[o]||u[o.toLowerCase()]?e.selector=o:e.inline=o):r[2]&&(e={inline:"span",title:n.substr(1),classes:i}),!1!==c(t)?e.classes=i:e.attributes={"class":i},e}}function P(t,n){return null===n||!1!==i(t)}var w=T("array"),E=T("function"),I=Array.prototype.slice,M=Array.prototype.push,j=(E(Array.from)&&Array.from,A),D=function(s){s.on("init",function(t){function r(t,n){if(function(t,n,e,r){return!(P(t,e)?n in r:n in e.selectors)}(s,t,n,i)){!function(t,n,e,r){P(t,e)?r[n]=!0:e.selectors[n]=!0}(s,t,n,i);var e=function(t,n,e,r){return(r&&r.selector_converter?r.selector_converter:p(t)?p(t):function(){return A(t,e)}).call(n,e,r)}(s,s.plugins.importcss,t,n);if(e){var r=e.name||a.DOM.uniqueId();return s.formatter.register(r,e),m.extend({},{title:e.title,format:r})}}return null}var o=function(){var n=[],e=[],r={};return{addItemToGroup:function(t,n){r[t]?r[t].push(n):(e.push(t),r[t]=[n])},addItem:function(t){n.push(t)},toFormats:function(){return b(e,function(t){var n=r[t];return 0===n.length?[]:[{title:t,items:n}]}).concat(n)}}}(),i={},u=k(g(s)),c=function(t){return m.map(t,function(t){return m.extend({},t,{original:t,selectors:{},filter:k(t.filter),item:{text:t.title,menu:[]}})})}(y(s));m.each(S(s,s.getDoc(),k(d(s))),function(e){if(-1===e.indexOf(".mce-")&&(!u||u(e))){var t=function(t,n){return m.grep(t,function(t){return!t.filter||t.filter(n)})}(c,e);if(0<t.length)m.each(t,function(t){var n=r(e,t);n&&o.addItemToGroup(t.title,n)});else{var n=r(e,null);n&&o.addItem(n)}}});var n=o.toFormats();s.fire("addStyleModifications",{items:n,replace:!v(s)})})},R=function(n){return{convertSelectorToFormat:function(t){return j(n,t)}}};!function U(){o.add("importcss",function(t){return D(t),R(t)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function n(e){return e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S"))}function r(e){return e.getParam("insertdatetime_formats",["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"])}function a(e,t){if((e=""+e).length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e}function i(e,t,n){return n=n||new Date,t=(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",""+n.getFullYear())).replace("%y",""+n.getYear())).replace("%m",a(n.getMonth()+1,2))).replace("%d",a(n.getDate(),2))).replace("%H",""+a(n.getHours(),2))).replace("%M",""+a(n.getMinutes(),2))).replace("%S",""+a(n.getSeconds(),2))).replace("%I",""+((n.getHours()+11)%12+1))).replace("%p",n.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(f[n.getMonth()]))).replace("%b",""+e.translate(d[n.getMonth()]))).replace("%A",""+e.translate(s[n.getDay()]))).replace("%a",""+e.translate(l[n.getDay()]))).replace("%%","%")}var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e){return e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d"))},o=n,u=r,c=function(e){var t=r(e);return 0<t.length?t[0]:n(e)},m=function(e){return e.getParam("insertdatetime_element",!1)},l="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),s="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),d="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),f="January February March April May June July August September October November December".split(" "),p=function(e,t){if(m(e)){var n=i(e,t),r=void 0;r=/%[HMSIp]/.test(t)?i(e,"%Y-%m-%dT%H:%M"):i(e,"%Y-%m-%d");var a=e.dom.getParent(e.selection.getStart(),"time");a?function(e,t,n,r){var a=e.dom.create("time",{datetime:n},r);t.parentNode.insertBefore(a,t),e.dom.remove(t),e.selection.select(a,!0),e.selection.collapse(!1)}(e,a,r,n):e.insertContent('<time datetime="'+r+'">'+n+"</time>")}else e.insertContent(i(e,t))},g=i,y=function(e){e.addCommand("mceInsertDate",function(){p(e,t(e))}),e.addCommand("mceInsertTime",function(){p(e,o(e))})},M=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return S(t())}}},v=function(n){var t=u(n),r=S(c(n));n.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:function(e){return e===r.get()},fetch:function(e){e(M.map(t,function(e){return{type:"choiceitem",text:g(n,e),value:e}}))},onAction:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];p(n,r.get())},onItemAction:function(e,t){r.set(t),p(n,t)}});n.ui.registry.addNestedMenuItem("insertdatetime",{icon:"insert-time",text:"Date/time",getSubmenuItems:function(){return M.map(t,function(e){return{type:"menuitem",text:g(n,e),onAction:function(e){return function(){r.set(e),p(n,e)}}(e)}})}})};!function h(){e.add("insertdatetime",function(e){y(e),v(e)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=function(e){return e.getParam("font_formats")},i=function(e){return e.getParam("fontsize_formats")},n=function(e,t){e.settings.fontsize_formats=t},l=function(e,t){e.settings.font_formats=t},s=function(e){return e.getParam("font_size_style_values","xx-small,x-small,small,medium,large,x-large,xx-large")},o=function(e,t){e.settings.inline_styles=t},r=function(e){!function(e){o(e,!1),i(e)||n(e,"8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7"),t(e)||l(e,"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats")}(e),e.on("init",function(){return function(e){var t="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table",i=a.explode(s(e)),n=e.schema;e.formatter.register({alignleft:{selector:t,attributes:{align:"left"}},aligncenter:{selector:t,attributes:{align:"center"}},alignright:{selector:t,attributes:{align:"right"}},alignjustify:{selector:t,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",toggle:!1,attributes:{face:"%value"}},fontsize:{inline:"font",toggle:!1,attributes:{size:function(e){return a.inArray(i,e.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0}}),a.each("b,i,u,strike".split(","),function(e){n.addValidElements(e+"[*]")}),n.getElementRule("font")||n.addValidElements("font[face|size|color|style]"),a.each(t.split(","),function(e){var t=n.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})}(e)})};!function c(){e.add("legacyoutput",function(e){r(e)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(c){"use strict";function n(t){return function(n){return function(n){if(null===n)return"null";var t=typeof n;return"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t}(n)===t}}function u(){}function i(n){return function(){return n}}function t(){return A}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.util.VK"),a=n("string"),f=n("array"),l=n("boolean"),s=n("function"),d=function(n){var t=n.getParam("link_assume_external_targets",!1);return l(t)&&t?1:!a(t)||"http"!==t&&"https"!==t?0:t},m=function(n){return n.getParam("link_context_toolbar",!1,"boolean")},h=function(n){return n.getParam("link_list")},p=function(n){return n.getParam("default_link_target")},g=function(n){return n.getParam("target_list",!0)},v=function(n){return n.getParam("rel_list",[],"array")},y=function(n){return n.getParam("link_class_list",[],"array")},w=function(n){return n.getParam("link_title",!0,"boolean")},x=function(n){return n.getParam("allow_unsafe_link_target",!1,"boolean")},k=function(n){return n.getParam("link_quicklink",!1,"boolean")},b=function(n){var t=c.document.createElement("a");t.target="_blank",t.href=n,t.rel="noreferrer noopener";var e=c.document.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,c.window,0,0,0,0,0,!1,!1,!1,!1,0,null),function(n,t){c.document.body.appendChild(n),n.dispatchEvent(t),c.document.body.removeChild(n)}(t,e)},_=function(){return(_=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var o in t=arguments[e])Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o]);return n}).apply(this,arguments)},T=i(!1),O=i(!0),A=(e={fold:function(n,t){return n()},is:T,isSome:T,isNone:O,getOr:N,getOrThunk:P,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:N,orThunk:P,map:t,each:u,bind:t,exists:T,forall:O,filter:t,equals:C,equals_:C,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(e),e);function C(n){return n.isNone()}function P(n){return n()}function N(n){return n}function E(n,t){return-1<function(n,t){return Q.call(n,t)}(n,t)}function I(n,t){for(var e=0,r=n.length;e<r;e++){t(n[e],e)}}function S(n){for(var t=[],e=0,r=n.length;e<r;++e){if(!f(n[e]))throw new Error("Arr.flatten item "+e+" was not an array, input: "+n);Y.apply(t,n[e])}return t}function j(n,t){var e=function(n,t){for(var e=n.length,r=new Array(e),o=0;o<e;o++){var i=n[o];r[o]=t(i,o)}return r}(n,t);return S(e)}function F(n){return/^\w+:/i.test(n)}function L(n,t){var e,r,o=["noopener"],i=n?n.split(/\s+/):[],u=function(n){return n.filter(function(n){return-1===Z.inArray(o,n)})},c=t?0<(e=u(e=i)).length?e.concat(o):o:u(i);return 0<c.length?(r=c,Z.trim(r.sort().join(" "))):""}function R(n,t){return t=t||n.selection.getNode(),nn(t)?n.dom.select("a[href]",t)[0]:n.dom.getParent(t,"a[href]")}function D(n){return n&&"A"===n.nodeName&&!!n.href}function U(n){return function(n,t,e){return I(n,function(n){e=t(e,n)}),e}(["title","rel","class","target"],function(t,e){return n[e].each(function(n){t[e]=0<n.length?n:null}),t},{href:n.href})}function M(n,t){var e=_({},t);if(!(0<v(n).length)&&!1===x(n)){var r=L(e.rel,"_blank"===e.target);e.rel=r||null}return J.from(e.target).isNone()&&!1===g(n)&&(e.target=p(n)),e.href=function(n,t){return"http"!==t&&"https"!==t||F(n)?n:t+"://"+n}(e.href,d(n)),e}function z(n,t){for(var e=0;e<n.length;e++){var r=t(n[e],e);if(r.isSome())return r}return J.none()}function q(n){return a(n.value)?n.value:""}function K(t){return void 0===t&&(t=q),function(n){return J.from(n).map(function(n){return function(n,r){var o=[];return Z.each(n,function(n){var t=a(n.text)?n.text:a(n.title)?n.title:"";if(n.menu!==undefined);else{var e=r(n);o.push({text:t,value:e})}}),o}(n,t)})}}function B(t,n,e,r){var o=r[n],i=0<t.length;return o!==undefined?function(t,n){return z(n,function(n){return J.some(n).filter(function(n){return n.value===t})})}(o,e).map(function(n){return{url:{value:n.value,meta:{text:i?t:n.text,attach:u}},text:i?t:n.text}}):J.none()}var V,W,H,$,G=function(e){function n(){return o}function t(n){return n(e)}var r=i(e),o={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:O,isNone:T,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){return G(n(e))},each:function(n){n(e)},bind:t,exists:t,forall:t,filter:function(n){return n(e)?o:A},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(T,function(n){return t(e,n)})}};return o},J={some:G,none:t,from:function(n){return null===n||n===undefined?A:G(n)}},X=Array.prototype.slice,Q=Array.prototype.indexOf,Y=Array.prototype.push,Z=(s(Array.from)&&Array.from,tinymce.util.Tools.resolve("tinymce.util.Tools")),nn=function(n){return n&&"FIGURE"===n.nodeName&&/\bimage\b/i.test(n.className)},tn=function(n,t){var e=n.dom.select("img",t)[0];if(e){var r=n.dom.getParents(e,"a[href]",t)[0];r&&(r.parentNode.insertBefore(e,r),n.dom.remove(r))}},en=function(n,t,e){var r=n.dom.select("img",t)[0];if(r){var o=n.dom.create("a",e);r.parentNode.insertBefore(o,r),o.appendChild(r)}},rn=function(n,t,e){var r=n.selection.getNode(),o=R(n,r),i=M(n,U(e));n.undoManager.transact(function(){e.href===t.href&&t.attach(),o?(n.focus(),function(n,t,e,r){e.each(function(n){t.hasOwnProperty("innerText")?t.innerText=n:t.textContent=n}),n.dom.setAttribs(t,r),n.selection.select(t)}(n,o,e.text,i)):function(t,n,e,r){nn(n)?en(t,n,r):e.fold(function(){t.execCommand("mceInsertLink",!1,r)},function(n){t.insertContent(t.dom.createHTML("a",r,t.dom.encode(n)))})}(n,r,e.text,i)})},on=function(e){e.undoManager.transact(function(){var n=e.selection.getNode();if(nn(n))tn(e,n);else{var t=e.dom.getParent(n,"a[href]",e.getBody());t&&e.dom.remove(t,!0)}e.focus()})},un=function(n){return 0<Z.grep(n,D).length},cn=function(n){var t=n.getAttribute("data-mce-href");return t||n.getAttribute("href")},an=function(n){return!(/</.test(n)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(n)||-1===n.indexOf("href=")))},fn=R,ln=function(n,t){return function(n){return n.replace(/\uFEFF/g,"")}(t?t.innerText||t.textContent:n.getContent({format:"text"}))},sn=L,dn=F,mn={sanitize:function(n){return K(q)(n)},sanitizeWith:K,createUi:function(t,e){return function(n){return{name:t,type:"selectbox",label:e,items:n}}},getValue:q},hn=function(n){function t(){return e}var e=n;return{get:t,set:function(n){e=n},clone:function(){return hn(t())}}},pn=function(n,r){function e(n,t){var e=function(n,t){return"link"===t?n.catalogs.link:"anchor"===t?n.catalogs.anchor:J.none()}(r,t.name).getOr([]);return B(o.get(),t.name,e,n)}var o=hn(n.text);return{onChange:function(n,t){return"url"===t.name?function(n){if(o.get().length<=0){var t=n.url.meta.text!==undefined?n.url.meta.text:n.url.value;return J.some({text:t})}return J.none()}(n()):E(["anchor","link"],t.name)?e(n(),t):("text"===t.name&&o.set(n().text),J.none())}}},gn={},vn={exports:gn};V=undefined,W=gn,H=vn,$=undefined,function(n){"object"==typeof W&&void 0!==H?H.exports=n():"function"==typeof V&&V.amd?V([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EphoxContactWrapper=n()}(function(){return function l(i,u,c){function a(t,n){if(!u[t]){if(!i[t]){var e="function"==typeof $&&$;if(!n&&e)return e(t,!0);if(f)return f(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var o=u[t]={exports:{}};i[t][0].call(o.exports,function(n){return a(i[t][1][n]||n)},o,o.exports,l,i,u,c)}return u[t].exports}for(var f="function"==typeof $&&$,n=0;n<c.length;n++)a(c[n]);return a}({1:[function(n,t,e){var r,o,i=t.exports={};function u(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function a(n){if(r===setTimeout)return setTimeout(n,0);if((r===u||!r)&&setTimeout)return r=setTimeout,setTimeout(n,0);try{return r(n,0)}catch(t){try{return r.call(null,n,0)}catch(t){return r.call(this,n,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:u}catch(n){r=u}try{o="function"==typeof clearTimeout?clearTimeout:c}catch(n){o=c}}();var f,l=[],s=!1,d=-1;function m(){s&&f&&(s=!1,f.length?l=f.concat(l):d=-1,l.length&&h())}function h(){if(!s){var n=a(m);s=!0;for(var t=l.length;t;){for(f=l,l=[];++d<t;)f&&f[d].run();d=-1,t=l.length}f=null,s=!1,function e(n){if(o===clearTimeout)return clearTimeout(n);if((o===c||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(n);try{return o(n)}catch(t){try{return o.call(null,n)}catch(t){return o.call(this,n)}}}(n)}}function p(n,t){this.fun=n,this.array=t}function g(){}i.nextTick=function(n){var t=new Array(arguments.length-1);if(1<arguments.length)for(var e=1;e<arguments.length;e++)t[e-1]=arguments[e];l.push(new p(n,t)),1!==l.length||s||a(h)},p.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(n){return[]},i.binding=function(n){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(n){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],2:[function(n,s,t){(function(t){function r(){}function i(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof n)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],l(n,this)}function o(r,o){for(;3===r._state;)r=r._value;0!==r._state?(r._handled=!0,i._immediateFn(function(){var n=1===r._state?o.onFulfilled:o.onRejected;if(null!==n){var t;try{t=n(r._value)}catch(e){return void c(o.promise,e)}u(o.promise,t)}else(1===r._state?u:c)(o.promise,r._value)})):r._deferreds.push(o)}function u(n,t){try{if(t===n)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var e=t.then;if(t instanceof i)return n._state=3,n._value=t,void a(n);if("function"==typeof e)return void l(function r(n,t){return function(){n.apply(t,arguments)}}(e,t),n)}n._state=1,n._value=t,a(n)}catch(o){c(n,o)}}function c(n,t){n._state=2,n._value=t,a(n)}function a(n){2===n._state&&0===n._deferreds.length&&i._immediateFn(function(){n._handled||i._unhandledRejectionFn(n._value)});for(var t=0,e=n._deferreds.length;t<e;t++)o(n,n._deferreds[t]);n._deferreds=null}function f(n,t,e){this.onFulfilled="function"==typeof n?n:null,this.onRejected="function"==typeof t?t:null,this.promise=e}function l(n,t){var e=!1;try{n(function(n){e||(e=!0,u(t,n))},function(n){e||(e=!0,c(t,n))})}catch(r){if(e)return;e=!0,c(t,r)}}var n,e;n=this,e=setTimeout,i.prototype["catch"]=function(n){return this.then(null,n)},i.prototype.then=function(n,t){var e=new this.constructor(r);return o(this,new f(n,t,e)),e},i.all=function(n){var a=Array.prototype.slice.call(n);return new i(function(o,i){if(0===a.length)return o([]);var u=a.length;function c(t,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var e=n.then;if("function"==typeof e)return void e.call(n,function(n){c(t,n)},i)}a[t]=n,0==--u&&o(a)}catch(r){i(r)}}for(var n=0;n<a.length;n++)c(n,a[n])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(n){n(t)})},i.reject=function(e){return new i(function(n,t){t(e)})},i.race=function(o){return new i(function(n,t){for(var e=0,r=o.length;e<r;e++)o[e].then(n,t)})},i._immediateFn="function"==typeof t?function(n){t(n)}:function(n){e(n,0)},i._unhandledRejectionFn=function(n){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",n)},i._setImmediateFn=function(n){i._immediateFn=n},i._setUnhandledRejectionFn=function(n){i._unhandledRejectionFn=n},void 0!==s&&s.exports?s.exports=i:n.Promise||(n.Promise=i)}).call(this,n("timers").setImmediate)},{timers:3}],3:[function(a,n,f){(function(n,t){var r=a("process/browser.js").nextTick,e=Function.prototype.apply,o=Array.prototype.slice,i={},u=0;function c(n,t){this._id=n,this._clearFn=t}f.setTimeout=function(){return new c(e.call(setTimeout,window,arguments),clearTimeout)},f.setInterval=function(){return new c(e.call(setInterval,window,arguments),clearInterval)},f.clearTimeout=f.clearInterval=function(n){n.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(window,this._id)},f.enroll=function(n,t){clearTimeout(n._idleTimeoutId),n._idleTimeout=t},f.unenroll=function(n){clearTimeout(n._idleTimeoutId),n._idleTimeout=-1},f._unrefActive=f.active=function(n){clearTimeout(n._idleTimeoutId);var t=n._idleTimeout;0<=t&&(n._idleTimeoutId=setTimeout(function(){n._onTimeout&&n._onTimeout()},t))},f.setImmediate="function"==typeof n?n:function(n){var t=u++,e=!(arguments.length<2)&&o.call(arguments,1);return i[t]=!0,r(function(){i[t]&&(e?n.apply(null,e):n.call(null),f.clearImmediate(t))}),t},f.clearImmediate="function"==typeof t?t:function(n){delete i[n]}}).call(this,a("timers").setImmediate,a("timers").clearImmediate)},{"process/browser.js":1,timers:3}],4:[function(n,t,e){var r=n("promise-polyfill"),o="undefined"!=typeof window?window:Function("return this;")();t.exports={boltExport:o.Promise||r}},{"promise-polyfill":2}]},{},[4])(4)});function yn(n){c.setTimeout(function(){throw n},0)}function wn(n){var t=n.href;return 0<t.indexOf("@")&&-1===t.indexOf("//")&&-1===t.indexOf("mailto:")?J.some({message:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",preprocess:function(n){return _(_({},n),{href:"mailto:"+t})}}):J.none()}function xn(n,t,e){var r=n.getAttrib(t,e);return null!==r&&0<r.length?J.some(r):J.none()}function kn(n,t){return n.dom.getParent(t,"a[href]")}function bn(n){return kn(n,n.selection.getStart())}function _n(n,t){if(t){var e=cn(t);if(/^#/.test(e)){var r=n.$(e);r.length&&n.selection.scrollIntoView(r[0],!0)}else b(t.href)}}var Tn=vn.exports.boltExport,On=function(n){var e=J.none(),t=[],r=function(n){o()?u(n):t.push(n)},o=function(){return e.isSome()},i=function(n){I(n,u)},u=function(t){e.each(function(n){c.setTimeout(function(){t(n)},0)})};return n(function(n){e=J.some(n),i(t),t=[]}),{get:r,map:function(e){return On(function(t){r(function(n){t(e(n))})})},isReady:o}},An={nu:On,pure:function(t){return On(function(n){n(t)})}},Cn=function(e){function n(n){e().then(n,yn)}return{map:function(n){return Cn(function(){return e().then(n)})},bind:function(t){return Cn(function(){return e().then(function(n){return t(n).toPromise()})})},anonBind:function(n){return Cn(function(){return e().then(function(){return n.toPromise()})})},toLazy:function(){return An.nu(n)},toCached:function(){var n=null;return Cn(function(){return null===n&&(n=e()),n})},toPromise:e,get:n}},Pn=function(n){return Cn(function(){return new Tn(n)})},Nn=function(n){return Cn(function(){return Tn.resolve(n)})},En=tinymce.util.Tools.resolve("tinymce.util.Delay"),In=function(n,t,r){return z([wn,function(e){return function(n){var t=n.href;return 1===e&&!dn(t)||0===e&&/^\s*www[\.|\d\.]/i.test(t)?J.some({message:"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",preprocess:function(n){return _(_({},n),{href:"http://"+t})}}):J.none()}}(t)],function(n){return n(r)}).fold(function(){return Nn(r)},function(e){return Pn(function(t){!function(t,n,e){var r=t.selection.getRng();En.setEditorTimeout(t,function(){t.windowManager.confirm(n,function(n){t.selection.setRng(r),e(n)})})}(n,e.message,function(n){t(n?e.preprocess(r):r)})})})},Sn=function(n){var t=n.dom.select("a:not([href])"),e=j(t,function(n){var t=n.name||n.id;return t?[{text:t,value:"#"+t}]:[]});return 0<e.length?J.some([{text:"None",value:""}].concat(e)):J.none()},jn=function(n){var t=y(n);return 0<t.length?mn.sanitize(t):J.none()},Fn=tinymce.util.Tools.resolve("tinymce.util.XHR"),Ln=function(t){function e(n){return t.convertURL(n.value||n.url,"href")}var n=h(t);return Pn(function(t){a(n)?Fn.send({url:n,success:function(n){return t(function(n){try{return J.some(JSON.parse(n))}catch(t){return J.none()}}(n))},error:function(n){return t(J.none())}}):s(n)?n(function(n){return t(J.some(n))}):t(J.from(n))}).map(function(n){return n.bind(mn.sanitizeWith(e)).map(function(n){return 0<n.length?[{text:"None",value:""}].concat(n):n})})},Rn=function(n,t){var e=v(n);if(0<e.length){var r=t.is("_blank");return(!1===x(n)?mn.sanitizeWith(function(n){return sn(mn.getValue(n),r)}):mn.sanitize)(e)}return J.none()},Dn=[{text:"Current window",value:""},{text:"New window",value:"_blank"}],Un=function(n){var t=g(n);return f(t)?mn.sanitize(t).orThunk(function(){return J.some(Dn)}):!1===t?J.none():J.some(Dn)},Mn=function(e,r){return Ln(e).map(function(n){var t=function(n,t){var e=n.dom,r=an(n.selection.getContent())?J.some(ln(n.selection,t)):J.none(),o=t?J.some(e.getAttrib(t,"href")):J.none(),i=t?J.from(e.getAttrib(t,"target")):J.none(),u=xn(e,t,"rel"),c=xn(e,t,"class");return{url:o,text:r,title:xn(e,t,"title"),target:i,rel:u,linkClass:c}}(e,r);return{anchor:t,catalogs:{targets:Un(e),rels:Rn(e,t.target),classes:jn(e),anchor:Sn(e),link:n},optNode:J.from(r),flags:{titleEnabled:w(e)}}})},zn=function(t){(function(n){var t=fn(n);return Mn(n,t)})(t).map(function(n){return function(n,t,e){var r=n.anchor.text.map(function(){return{name:"text",type:"input",label:"Text to display"}}).toArray(),o=n.flags.titleEnabled?[{name:"title",type:"input",label:"Title"}]:[],i=function(n,t){return{url:{value:n.anchor.url.getOr(""),meta:{attach:function(){},text:n.anchor.url.fold(function(){return""},function(){return n.anchor.text.getOr("")}),original:{value:n.anchor.url.getOr("")}}},text:n.anchor.text.getOr(""),title:n.anchor.title.getOr(""),anchor:n.anchor.url.getOr(""),link:n.anchor.url.getOr(""),rel:n.anchor.rel.getOr(""),target:n.anchor.target.or(t).getOr(""),linkClass:n.anchor.linkClass.getOr("")}}(n,J.from(p(e))),u=pn(i,n),c=n.catalogs;return{title:"Insert/Edit Link",size:"normal",body:{type:"panel",items:S([[{name:"url",type:"urlinput",filetype:"file",label:"URL"}],r,o,function(n){for(var t=[],e=function(n){t.push(n)},r=0;r<n.length;r++)n[r].each(e);return t}([c.anchor.map(mn.createUi("anchor","Anchors")),c.rels.map(mn.createUi("rel","Rel")),c.targets.map(mn.createUi("target","Open link in...")),c.link.map(mn.createUi("link","Link list")),c.classes.map(mn.createUi("linkClass","Class"))])])},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:i,onChange:function(t,n){var e=n.name;u.onChange(t.getData,{name:e}).each(function(n){t.setData(n)})},onSubmit:t}}(n,function(i,u,c){return function(n){var e=n.getData();if(!e.url.value)return on(i),void n.close();function t(t){return J.from(e[t]).filter(function(n){return!u.anchor[t].is(n)})}var r={href:e.url.value,text:t("text"),target:t("target"),rel:t("rel"),"class":t("linkClass"),title:t("title")},o={href:e.url.value,attach:e.url.meta!==undefined&&e.url.meta.attach?e.url.meta.attach:function(){}};In(i,c,r).get(function(n){rn(i,o,n)}),n.close()}}(t,n,d(t)),t)}).get(function(n){t.windowManager.open(n)})},qn=function(n){return function(){zn(n)}},Kn=function(n){return function(){_n(n,bn(n))}},Bn=function(e){e.on("click",function(n){var t=kn(e,n.target);t&&o.metaKeyPressed(n)&&(n.preventDefault(),_n(e,t))}),e.on("keydown",function(n){var t=bn(e);t&&13===n.keyCode&&function(n){return!0===n.altKey&&!1===n.shiftKey&&!1===n.ctrlKey&&!1===n.metaKey}(n)&&(n.preventDefault(),_n(e,t))})},Vn=function(e){return function(t){function n(n){return t.setActive(!e.readonly&&!!fn(e,n.element))}return e.on("NodeChange",n),function(){return e.off("NodeChange",n)}}},Wn=function(e){return function(t){t.setDisabled(!un(e.dom.getParents(e.selection.getStart())));function n(n){return t.setDisabled(!un(n.parents))}return e.on("NodeChange",n),function(){return e.off("NodeChange",n)}}},Hn=function(n){n.addCommand("mceLink",function(){k(n)?n.fire("contexttoolbar-show",{toolbarKey:"quicklink"}):qn(n)()})},$n=function(n){n.addShortcut("Meta+K","",function(){n.execCommand("mceLink")})},Gn=function(n){n.ui.registry.addToggleButton("link",{icon:"link",tooltip:"Insert/edit link",onAction:qn(n),onSetup:Vn(n)}),n.ui.registry.addButton("openlink",{icon:"new-tab",tooltip:"Open link",onAction:Kn(n),onSetup:Wn(n)}),n.ui.registry.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onAction:function(){return on(n)},onSetup:Wn(n)})},Jn=function(n){n.ui.registry.addMenuItem("openlink",{text:"Open link",icon:"new-tab",onAction:Kn(n),onSetup:Wn(n)}),n.ui.registry.addMenuItem("link",{icon:"link",text:"Link...",shortcut:"Meta+K",onAction:qn(n)}),n.ui.registry.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onAction:function(){return on(n)},onSetup:Wn(n)})},Xn=function(t){t.ui.registry.addContextMenu("link",{update:function(n){return un(t.dom.getParents(n,"a"))?"link unlink openlink":"link"}})},Qn=function(i){function n(n){var t=i.selection.getNode();return n.setDisabled(!fn(i,t)),function(){}}i.ui.registry.addContextForm("quicklink",{launch:{type:"contextformtogglebutton",icon:"link",tooltip:"Link",onSetup:Vn(i)},label:"Link",predicate:function(n){return!!fn(i,n)&&m(i)},initValue:function(){var n=fn(i);return n?cn(n):""},commands:[{type:"contextformtogglebutton",icon:"link",tooltip:"Link",primary:!0,onSetup:function(n){var t=i.selection.getNode();return n.setActive(!!fn(i,t)),Vn(i)(n)},onAction:function(n){var t=fn(i),e=n.getValue();if(t)i.dom.setAttrib(t,"href",e),function(n){n.selection.collapse(!1)}(i),n.hide();else{var r={href:e,attach:function(){}},o=an(i.selection.getContent())?J.some(ln(i.selection,t)).filter(function(n){return 0<n.length}).or(J.from(e)):J.none();rn(i,r,{href:e,text:o,title:J.none(),rel:J.none(),target:J.none(),"class":J.none()}),n.hide()}}},{type:"contextformbutton",icon:"unlink",tooltip:"Remove link",onSetup:n,onAction:function(n){on(i),n.hide()}},{type:"contextformbutton",icon:"new-tab",tooltip:"Open link",onSetup:n,onAction:function(n){Kn(i)(),n.hide()}}]})};!function Yn(){r.add("link",function(n){Gn(n),Jn(n),Xn(n),Qn(n),Bn(n),Hn(n),$n(n)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(r){"use strict";function e(){}function l(e){return function(){return e}}function t(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return!t.apply(null,e)}}function n(){return a}var o,i=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=l(!1),s=l(!0),a=(o={fold:function(e,n){return e()},is:u,isSome:u,isNone:s,getOr:d,getOrThunk:f,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:l(null),getOrUndefined:l(undefined),or:d,orThunk:f,map:n,each:e,bind:n,exists:u,forall:s,filter:n,equals:c,equals_:c,toArray:function(){return[]},toString:l("none()")},Object.freeze&&Object.freeze(o),o);function c(e){return e.isNone()}function f(e){return e()}function d(e){return e}function m(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===n}}function g(e,n){for(var t=e.length,r=new Array(t),o=0;o<t;o++){var i=e[o];r[o]=n(i,o)}return r}function p(e,n){for(var t=0,r=e.length;t<r;t++){n(e[t],t)}}function v(e,n){for(var t=[],r=0,o=e.length;r<o;r++){var i=e[r];n(i,r)&&t.push(i)}return t}function h(e,n,t){return p(e,function(e){t=n(t,e)}),t}function N(e,n){for(var t=0,r=e.length;t<r;t++){var o=e[t];if(n(o,t))return $e.some(o)}return $e.none()}function y(e,n){return function(e){for(var n=[],t=0,r=e.length;t<r;++t){if(!We(e[t]))throw new Error("Arr.flatten item "+t+" was not an array, input: "+e);Qe.apply(n,e[t])}return n}(g(e,n))}function S(e){return 0===e.length?$e.none():$e.some(e[0])}function O(e){return 0===e.length?$e.none():$e.some(e[e.length-1])}function C(e,n,t){return 0!=(e.compareDocumentPosition(n)&t)}function b(e,n){var t=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(r.test(n))return r}return undefined}(e,n);if(!t)return{major:0,minor:0};function r(e){return Number(n.replace(t,"$"+e))}return Ze(r(1),r(2))}function L(e,n){return function(){return n===e}}function T(e,n){return function(){return n===e}}function D(e,n){var t=String(n).toLowerCase();return N(e,function(e){return e.search(t)})}function E(e,n){return-1!==e.indexOf(n)}function w(n){return function(e){return E(e,n)}}function k(e,n){return e.dom()===n.dom()}function A(e,n,t){return e.isSome()&&n.isSome()?$e.some(t(e.getOrDie(),n.getOrDie())):$e.none()}function x(e){return $e.from(e.dom().parentNode).map(bn.fromDom)}function R(e){return g(e.dom().childNodes,bn.fromDom)}function I(e,n){var t=e.dom().childNodes;return $e.from(t[n]).map(bn.fromDom)}function _(e){return I(e,0)}function B(e){return I(e,e.dom().childNodes.length-1)}function P(n,t){x(n).each(function(e){e.dom().insertBefore(t.dom(),n.dom())})}function M(e,n){e.dom().appendChild(n.dom())}function U(n,e){p(e,function(e){M(n,e)})}function F(e){var n=e.dom();null!==n.parentNode&&n.parentNode.removeChild(n)}function j(e,n,t){return e.fire("ListMutation",{action:n,element:t})}function H(e,n){return function(e,n){for(var t=n!==undefined&&null!==n?n:Rn,r=0;r<e.length&&t!==undefined&&null!==t;++r)t=t[e[r]];return t}(e.split("."),n)}function $(e){return e&&"BR"===e.nodeName}function q(e){var n=e.selection.getStart(!0);return e.dom.getParent(n,"OL,UL,DL",Yn(e,n))}function W(e){var n=e.selection.getSelectedBlocks();return Pn.grep(function(t,e){var n=Pn.map(e,function(e){var n=t.dom.getParent(e,"li,dd,dt",Yn(t,e));return n||e});return Bn.unique(n)}(e,n),function(e){return Hn(e)})}function V(e,n){var t=e.dom.getParents(n,"ol,ul",Yn(e,n));return O(t)}function z(e,n){var t,r,o,i,u=e.dom,s=e.schema.getBlockElements(),a=u.createFragment();if(e.settings.forced_root_block&&(o=e.settings.forced_root_block),o&&((r=u.create(o)).tagName===e.settings.forced_root_block&&u.setAttribs(r,e.settings.forced_root_block_attrs),zn(n.firstChild,s)||a.appendChild(r)),n)for(;t=n.firstChild;){var c=t.nodeName;i||"SPAN"===c&&"bookmark"===t.getAttribute("data-mce-type")||(i=!0),zn(t,s)?(a.appendChild(t),r=null):o?(r||(r=u.create(o),a.appendChild(r)),r.appendChild(t)):a.appendChild(t)}return e.settings.forced_root_block?i||r.appendChild(u.create("br",{"data-mce-bogus":"1"})):a.appendChild(u.create("br")),a}function K(e){return e.dom().nodeName.toLowerCase()}function X(e,n){var t=e.dom();!function(e,n){for(var t=xn(e),r=0,o=t.length;r<o;r++){var i=t[r];n(e[i],i)}}(n,function(e,n){!function(e,n,t){if(!(qe(t)||Ve(t)||Ke(t)))throw r.console.error("Invalid call to Attr.set. Key ",n,":: Value ",t,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(n,t+"")}(t,n,e)})}function Q(e){return h(e.dom().attributes,function(e,n){return e[n.name]=n.value,e},{})}function Y(e,n,t){if(!qe(t))throw r.console.error("Invalid call to CSS.set. Property ",n,":: Value ",t,":: Element ",e),new Error("CSS value must be a string: "+t);!function(e){return e.style!==undefined&&ze(e.style.getPropertyValue)}(e)||e.style.setProperty(n,t)}function G(e){return function(e,n){return bn.fromDom(e.dom().cloneNode(n))}(e,!0)}function J(e,n){var t=function(e,n){var t=bn.fromTag(n),r=Q(e);return X(t,r),t}(e,n);P(e,t);var r=R(e);return U(t,r),F(e),t}function Z(e,n){M(e.item,n.list)}function ee(n,e,t){var r=e.slice(0,t.depth);return O(r).each(function(e){!function(e,n){M(e.list,n),e.item=n}(e,function(e,n,t){var r=bn.fromTag("li",e);return X(r,n),U(r,t),r}(n,t.itemAttributes,t.content)),function(e,n){K(e.list)!==n.listType&&(e.list=J(e.list,n.listType)),X(e.list,n.listAttributes)}(e,t)}),r}function ne(e,n,t){var r=function(e,n,t){for(var r,o,i,u=[],s=0;s<t;s++)u.push((r=e,o=n.listType,void 0,i={list:bn.fromTag(o,r),item:bn.fromTag("li",r)},M(i.list,i.item),i));return u}(e,t,t.depth-n.length);return function(e){for(var n=1;n<e.length;n++)Z(e[n-1],e[n])}(r),function(e,n){for(var t=0;t<e.length-1;t++)r=e[t].item,o="list-style-type",i="none",void 0,u=r.dom(),Y(u,o,i);var r,o,i,u;O(e).each(function(e){X(e.list,n.listAttributes),X(e.item,n.itemAttributes),U(e.item,n.content)})}(r,t),function(e,n){A(O(e),S(n),Z)}(n,r),n.concat(r)}function te(e){return En(e,"OL,UL")}function re(e){return _(e).map(te).getOr(!1)}function oe(e){return 0<e.depth}function ie(e){return e.isSelected}function ue(e){var n=R(e),t=function(e){return B(e).map(te).getOr(!1)}(e)?n.slice(0,-1):n;return g(t,G)}function se(t){p(t,function(n,e){(function(e,n){for(var t=e[n].depth,r=n-1;0<=r;r--){if(e[r].depth===t)return $e.some(e[r]);if(e[r].depth<t)break}return $e.none()})(t,e).each(function(e){!function(e,n){e.listType=n.listType,e.listAttributes=nt({},n.listAttributes)}(n,e)})})}function ae(t,r,o,i){return _(i).filter(te).fold(function(){r.each(function(e){k(e.start,i)&&o.set(!0)});var e=function(n,t,r){return x(n).filter(Zn).map(function(e){return{depth:t,isSelected:r,content:ue(n),itemAttributes:Q(n),listAttributes:Q(e),listType:K(e)}})}(i,t,o.get());r.each(function(e){k(e.end,i)&&o.set(!1)});var n=B(i).filter(te).map(function(e){return tt(t,r,o,e)}).getOr([]);return e.toArray().concat(n)},function(e){return tt(t,r,o,e)})}function ce(t,e){return g(e,function(e){var n=function(e,n){var t=(n||r.document).createDocumentFragment();return p(e,function(e){t.appendChild(e.dom())}),bn.fromDom(t)}(e.content);return bn.fromDom(z(t,n.dom()))})}function fe(e,n){return se(n),function(t,e){var n=h(e,function(e,n){return n.depth>e.length?ne(t,e,n):ee(t,e,n)},[]);return S(n).map(function(e){return e.list})}(e.contentDocument,n).toArray()}function de(e){var n=g(Jn.getSelectedListItems(e),bn.fromDom);return A(N(n,t(re)),N(function(e){var n=Xe.call(e,0);return n.reverse(),n}(n),t(re)),function(e,n){return{start:e,end:n}})}function le(t,e,r){var n=function(e,n){var t=Ge(!1);return g(e,function(e){return{sourceList:e,entries:tt(0,n,t,e)}})}(e,de(t));p(n,function(e){!function(e,n){p(v(e,ie),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(n,e)})}(e.entries,r);var n=function(n,e){return y(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i<u;i++){var s=e[i],a=n(s);a!==t&&(r.push(o),o=[]),t=a,o.push(s)}return 0!==o.length&&r.push(o),r}(e,oe),function(e){return S(e).map(oe).getOr(!1)?fe(n,e):ce(n,e)})}(t,e.entries);p(n,function(e){j(t,"Indent"===r?"IndentList":"OutdentList",e.dom())}),function(n,e){p(e,function(e){P(n,e)})}(e.sourceList,n),F(e.sourceList)})}function me(e){En(e,"dt")&&J(e,"dd")}function ge(n,e,t){p(t,"Indent"===e?me:function(e){return function(n,t){En(t,"dd")?J(t,"dt"):En(t,"dt")&&x(t).each(function(e){return it(n,e.dom(),t.dom())})}(n,e)})}function pe(e,n){if(Mn(e))return{container:e,offset:n};var t=wn.getNode(e,n);return Mn(t)?{container:t,offset:n>=e.childNodes.length?t.data.length:0}:t.previousSibling&&Mn(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&Mn(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}}function ve(e,n){var t=g(Jn.getSelectedListRoots(e),bn.fromDom),r=g(Jn.getSelectedDlItems(e),bn.fromDom),o=!1;if(t.length||r.length){var i=e.selection.getBookmark();le(e,t,n),ge(e,n,r),e.selection.moveToBookmark(i),e.selection.setRng(ut(e.selection.getRng())),e.nodeChanged(),o=!0}return o}function he(e){return ve(e,"Indent")}function Ne(e){return ve(e,"Outdent")}function ye(e){return ve(e,"Flatten")}function Se(e){return/\btox\-/.test(e.className)}function Oe(e){switch(e){case"UL":return"ToggleUlList";case"OL":return"ToggleOlList";case"DL":return"ToggleDLList"}}function Ce(t,e){Pn.each(e,function(e,n){t.setAttribute(n,e)})}function be(e,n,t){!function(e,n,t){var r=t["list-style-type"]?t["list-style-type"]:null;e.setStyle(n,"list-style-type",r)}(e,n,t),function(e,n,t){Ce(n,t["list-attributes"]),Pn.each(e.select("li",n),function(e){Ce(e,t["list-item-attributes"])})}(e,n,t)}function Le(e,n,t,r){var o,i;for(o=n[t?"startContainer":"endContainer"],i=n[t?"startOffset":"endOffset"],1===o.nodeType&&(o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o),!t&&qn(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){if(Vn(e,o))return o;if(/^(TD|TH)$/.test(o.parentNode.nodeName))return o;o=o.parentNode}return o}function Te(r,o,i){void 0===i&&(i={});var e,n=r.selection.getRng(!0),u="LI",t=Jn.getClosestListRootElm(r,r.selection.getStart(!0)),s=r.dom;"false"!==s.getContentEditable(r.selection.getNode())&&("DL"===(o=o.toUpperCase())&&(u="DT"),e=ct(n),Pn.each(function(t,e,r){for(var o,i=[],u=t.dom,n=Le(t,e,!0,r),s=Le(t,e,!1,r),a=[],c=n;c&&(a.push(c),c!==s);c=c.nextSibling);return Pn.each(a,function(e){if(Vn(t,e))return i.push(e),void(o=null);if(u.isBlock(e)||qn(e))return qn(e)&&u.remove(e),void(o=null);var n=e.nextSibling;st.isBookmarkNode(e)&&(Vn(t,n)||!n&&e.parentNode===r)?o=null:(o||(o=u.create("p"),e.parentNode.insertBefore(o,e),i.push(o)),o.appendChild(e))}),i}(r,n,t),function(e){var n,t;(t=e.previousSibling)&&Un(t)&&t.nodeName===o&&function(e,n,t){var r=e.getStyle(n,"list-style-type"),o=t?t["list-style-type"]:"";return r===(o=null===o?"":o)}(s,t,i)?(n=t,e=s.rename(e,u),t.appendChild(e)):(n=s.create(o),e.parentNode.insertBefore(n,e),n.appendChild(e),e=s.rename(e,u)),function(t,r,e){Pn.each(e,function(e){var n;return t.setStyle(r,((n={})[e]="",n))})}(s,e,["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"]),be(s,n,i),dt(r.dom,n)}),r.selection.setRng(ft(e)))}function De(e,n,t){return function(e,n){return e&&n&&Un(e)&&e.nodeName===n.nodeName}(n,t)&&function(e,n,t){return e.getStyle(n,"list-style-type",!0)===e.getStyle(t,"list-style-type",!0)}(e,n,t)&&function(e,n){return e.className===n.className}(n,t)}function Ee(n,e,t,r,o){if(e.nodeName!==r||lt(o)){var i=ct(n.selection.getRng(!0));Pn.each([e].concat(t),function(e){!function(e,n,t,r){if(n.nodeName!==t){var o=e.dom.rename(n,t);be(e.dom,o,r),j(e,Oe(t),o)}else be(e.dom,n,r),j(e,Oe(t),n)}(n,e,r,o)}),n.selection.setRng(ft(i))}else ye(n)}function we(e,n){var t,r=n.parentNode;"LI"===r.nodeName&&r.firstChild===n&&((t=r.previousSibling)&&"LI"===t.nodeName?(t.appendChild(n),Xn(e,r)&>.remove(r)):gt.setStyle(r,"listStyleType","none")),Un(r)&&(t=r.previousSibling)&&"LI"===t.nodeName&&t.appendChild(n)}function ke(e,n,t,r){var o=n.startContainer,i=n.startOffset;if(Mn(o)&&(t?i<o.data.length:0<i))return o;var u=e.schema.getNonEmptyElements();1===o.nodeType&&(o=wn.getNode(o,i));var s=new kn(o,r);for(t&&Kn(e.dom,o)&&s.next();o=s[t?"next":"prev2"]();){if("LI"===o.nodeName&&!o.hasChildNodes())return o;if(u[o.nodeName])return o;if(Mn(o)&&0<o.data.length)return o}}function Ae(e,n){var t=n.childNodes;return 1===t.length&&!Un(t[0])&&e.isBlock(t[0])}function xe(e,n,t){var r,o;if(o=Ae(e,t)?t.firstChild:t,function(e,n){Ae(e,n)&&e.remove(n.firstChild,!0)}(e,n),!Xn(e,n,!0))for(;r=n.firstChild;)o.appendChild(r)}function Re(n,e,t){var r,o,i=e.parentNode;if(Qn(n,e)&&Qn(n,t)){Un(t.lastChild)&&(o=t.lastChild),i===t.lastChild&&qn(i.previousSibling)&&n.remove(i.previousSibling),(r=t.lastChild)&&qn(r)&&e.hasChildNodes()&&n.remove(r),Xn(n,t,!0)&&n.$(t).empty(),xe(n,e,t),o&&t.appendChild(o);var u=Dn(bn.fromDom(t),bn.fromDom(e))?n.getParents(e,Un,t):[];n.remove(e),p(u,function(e){Xn(n,e)&&e!==n.getRoot()&&n.remove(e)})}}function Ie(e,n,t,r){var o=e.dom;if(o.isEmpty(r))!function(e,n,t){e.dom.$(t).empty(),Re(e.dom,n,t),e.selection.setCursorLocation(t)}(e,t,r);else{var i=ct(n);Re(o,t,r),e.selection.setRng(ft(i))}}function _e(e,n){var t=e.dom,r=e.selection,o=r.getStart(),i=Jn.getClosestListRootElm(e,o),u=t.getParent(r.getStart(),"LI",i);if(u){var s=u.parentNode;if(s===e.getBody()&&Xn(t,s))return!0;var a=ut(r.getRng()),c=t.getParent(ke(e,a,n,i),"LI",i);if(c&&c!==u)return e.undoManager.transact(function(){n?Ie(e,a,c,u):Wn(u)?Ne(e):function(e,n,t,r){var o=ct(n);Re(e.dom,t,r);var i=ft(o);e.selection.setRng(i)}(e,a,u,c)}),!0;if(!c&&!n&&0===a.startOffset&&0===a.endOffset)return e.undoManager.transact(function(){ye(e)}),!0}return!1}function Be(e,n){return _e(e,n)||function(e,n){var t=e.dom,r=e.selection.getStart(),o=Jn.getClosestListRootElm(e,r),i=t.getParent(r,t.isBlock,o);if(i&&t.isEmpty(i)){var u=ut(e.selection.getRng()),s=t.getParent(ke(e,u,n,o),"LI",o);if(s)return e.undoManager.transact(function(){!function(e,n,t){var r=e.getParent(n.parentNode,e.isBlock,t);e.remove(n),r&&e.isEmpty(r)&&e.remove(r)}(t,i,o),mt.mergeWithAdjacentLists(t,s.parentNode),e.selection.select(s,!0),e.selection.collapse(n)}),!0}return!1}(e,n)}function Pe(e,n){return e.selection.isCollapsed()?Be(e,n):function(e){var n=e.selection.getStart(),t=Jn.getClosestListRootElm(e,n);return!!(e.dom.getParent(n,"LI,DT,DD",t)||0<Jn.getSelectedListItems(e).length)&&(e.undoManager.transact(function(){e.execCommand("Delete"),pt(e.dom,e.getBody())}),!0)}(e)}function Me(n,t){return function(){var e=n.dom.getParent(n.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===t}}function Ue(n,i){return function(o){function e(e){var n=function(e,n){for(var t=0;t<e.length;t++){if(n(e[t]))return t}return-1}(e.parents,$n),t=-1!==n?e.parents.slice(0,n):e.parents,r=Pn.grep(t,Un);o.setActive(0<r.length&&r[0].nodeName===i&&!Se(r[0]))}return n.on("NodeChange",e),function(){return n.off("NodeChange",e)}}}var Fe,je,He=function(t){function e(){return o}function n(e){return e(t)}var r=l(t),o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:s,isNone:u,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:e,orThunk:e,map:function(e){return He(e(t))},each:function(e){e(t)},bind:n,exists:n,forall:n,filter:function(e){return e(t)?o:a},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(u,function(e){return n(t,e)})}};return o},$e={some:He,none:n,from:function(e){return null===e||e===undefined?a:He(e)}},qe=m("string"),We=m("array"),Ve=m("boolean"),ze=m("function"),Ke=m("number"),Xe=Array.prototype.slice,Qe=Array.prototype.push,Ye=(ze(Array.from)&&Array.from,function(e,n){return C(e,n,r.Node.DOCUMENT_POSITION_CONTAINED_BY)}),Ge=function(e){function n(){return t}var t=e;return{get:n,set:function(e){t=e},clone:function(){return Ge(n())}}},Je=function(){return Ze(0,0)},Ze=function(e,n){return{major:e,minor:n}},en={nu:Ze,detect:function(e,n){var t=String(n).toLowerCase();return 0===e.length?Je():b(e,t)},unknown:Je},nn="Edge",tn="Chrome",rn="Opera",on="Firefox",un="Safari",sn=function(e){var n=e.current;return{current:n,version:e.version,isEdge:L(nn,n),isChrome:L(tn,n),isIE:L("IE",n),isOpera:L(rn,n),isFirefox:L(on,n),isSafari:L(un,n)}},an={unknown:function(){return sn({current:undefined,version:en.unknown()})},nu:sn,edge:l(nn),chrome:l(tn),ie:l("IE"),opera:l(rn),firefox:l(on),safari:l(un)},cn="Windows",fn="Android",dn="Solaris",ln="FreeBSD",mn=function(e){var n=e.current;return{current:n,version:e.version,isWindows:T(cn,n),isiOS:T("iOS",n),isAndroid:T(fn,n),isOSX:T("OSX",n),isLinux:T("Linux",n),isSolaris:T(dn,n),isFreeBSD:T(ln,n)}},gn={unknown:function(){return mn({current:undefined,version:en.unknown()})},nu:mn,windows:l(cn),ios:l("iOS"),android:l(fn),linux:l("Linux"),osx:l("OSX"),solaris:l(dn),freebsd:l(ln)},pn=function(e,t){return D(e,t).map(function(e){var n=en.detect(e.versionRegexes,t);return{current:e.name,version:n}})},vn=function(e,t){return D(e,t).map(function(e){var n=en.detect(e.versionRegexes,t);return{current:e.name,version:n}})},hn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Nn=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return E(e,"edge/")&&E(e,"chrome")&&E(e,"safari")&&E(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,hn],search:function(e){return E(e,"chrome")&&!E(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return E(e,"msie")||E(e,"trident")}},{name:"Opera",versionRegexes:[hn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:w("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:w("firefox")},{name:"Safari",versionRegexes:[hn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(E(e,"safari")||E(e,"mobile/"))&&E(e,"applewebkit")}}],yn=[{name:"Windows",search:w("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return E(e,"iphone")||E(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:w("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:w("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:w("linux"),versionRegexes:[]},{name:"Solaris",search:w("sunos"),versionRegexes:[]},{name:"FreeBSD",search:w("freebsd"),versionRegexes:[]}],Sn={browsers:l(Nn),oses:l(yn)},On=Ge(function(e,n){var t=Sn.browsers(),r=Sn.oses(),o=pn(t,e).fold(an.unknown,an.nu),i=vn(r,e).fold(gn.unknown,gn.nu);return{browser:o,os:i,deviceType:function(e,n,t,r){var o=e.isiOS()&&!0===/ipad/i.test(t),i=e.isiOS()&&!o,u=e.isiOS()||e.isAndroid(),s=u||r("(pointer:coarse)"),a=o||!i&&u&&r("(min-device-width:768px)"),c=i||u&&!a,f=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(t),d=!c&&!a&&!f;return{isiPad:l(o),isiPhone:l(i),isTablet:l(a),isPhone:l(c),isTouch:l(s),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:l(f),isDesktop:l(d)}}(i,o,e,n)}}(r.navigator.userAgent,function(e){return r.window.matchMedia(e).matches})),Cn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:l(e)}},bn={fromHtml:function(e,n){var t=(n||r.document).createElement("div");if(t.innerHTML=e,!t.hasChildNodes()||1<t.childNodes.length)throw r.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return Cn(t.childNodes[0])},fromTag:function(e,n){var t=(n||r.document).createElement(e);return Cn(t)},fromText:function(e,n){var t=(n||r.document).createTextNode(e);return Cn(t)},fromDom:Cn,fromPoint:function(e,n,t){var r=e.dom();return $e.from(r.elementFromPoint(n,t)).map(Cn)}},Ln=(r.Node.ATTRIBUTE_NODE,r.Node.CDATA_SECTION_NODE,r.Node.COMMENT_NODE,r.Node.DOCUMENT_NODE,r.Node.DOCUMENT_TYPE_NODE,r.Node.DOCUMENT_FRAGMENT_NODE,r.Node.ELEMENT_NODE),Tn=(r.Node.TEXT_NODE,r.Node.PROCESSING_INSTRUCTION_NODE,r.Node.ENTITY_REFERENCE_NODE,r.Node.ENTITY_NODE,r.Node.NOTATION_NODE,Ln),Dn=On.get().browser.isIE()?function(e,n){return Ye(e.dom(),n.dom())}:function(e,n){var t=e.dom(),r=n.dom();return t!==r&&t.contains(r)},En=function(e,n){var t=e.dom();if(t.nodeType!==Tn)return!1;var r=t;if(r.matches!==undefined)return r.matches(n);if(r.msMatchesSelector!==undefined)return r.msMatchesSelector(n);if(r.webkitMatchesSelector!==undefined)return r.webkitMatchesSelector(n);if(r.mozMatchesSelector!==undefined)return r.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")},wn=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),kn=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),An=tinymce.util.Tools.resolve("tinymce.util.VK"),xn=Object.keys,Rn=(function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n]}("element","offset"),"undefined"!=typeof r.window?r.window:Function("return this;")()),In=function(e,n){var t=function(e,n){return H(e,n)}(e,n);if(t===undefined||null===t)throw new Error(e+" not available on this browser");return t},_n=function(e){return function(e){return In("HTMLElement",e)}(H("ownerDocument.defaultView",e)).prototype.isPrototypeOf(e)},Bn=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Pn=tinymce.util.Tools.resolve("tinymce.util.Tools"),Mn=function(e){return e&&3===e.nodeType},Un=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},Fn=function(e){return e&&/^(OL|UL)$/.test(e.nodeName)},jn=function(e){return e&&/^(DT|DD)$/.test(e.nodeName)},Hn=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},$n=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},qn=$,Wn=function(e){return e.parentNode.firstChild===e},Vn=function(e,n){return n&&!!e.schema.getTextBlockElements()[n.nodeName]},zn=function(e,n){return e&&e.nodeName in n},Kn=function(e,n){return!!$(n)&&!(!e.isBlock(n.nextSibling)||$(n.previousSibling))},Xn=function(e,n,t){var r=e.isEmpty(n);return!(t&&0<e.select("span[data-mce-type=bookmark]",n).length)&&r},Qn=function(e,n){return e.isChildOf(n,e.getRoot())},Yn=function(e,n){var t=e.dom.getParents(n,"TD,TH");return 0<t.length?t[0]:e.getBody()},Gn=function(n,e){var t=g(e,function(e){return V(n,e).getOr(e)});return Bn.unique(t)},Jn={isList:function(e){var n=q(e);return _n(n)},getParentList:q,getSelectedSubLists:function(e){var n=q(e),t=e.selection.getSelectedBlocks();return function(e,n){return e&&1===n.length&&n[0]===e}(n,t)?function(e){return Pn.grep(e.querySelectorAll("ol,ul,dl"),function(e){return Un(e)})}(n):Pn.grep(t,function(e){return Un(e)&&n!==e})},getSelectedListItems:W,getClosestListRootElm:Yn,getSelectedDlItems:function(e){return v(W(e),jn)},getSelectedListRoots:function(e){var n=function(e){var n=V(e,e.selection.getStart()),t=v(e.selection.getSelectedBlocks(),Fn);return n.toArray().concat(t)}(e);return Gn(e,n)}},Zn=(Fe=Ln,function(e){return function(e){return e.dom().nodeType}(e)===Fe}),et=Object.prototype.hasOwnProperty,nt=(je=function(e,n){return n},function(){for(var e=new Array(arguments.length),n=0;n<e.length;n++)e[n]=arguments[n];if(0===e.length)throw new Error("Can't merge zero objects");for(var t={},r=0;r<e.length;r++){var o=e[r];for(var i in o)et.call(o,i)&&(t[i]=je(t[i],o[i]))}return t}),tt=function(n,t,r,e){return y(R(e),function(e){return(te(e)?tt:ae)(n+1,t,r,e)})},rt=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),ot=rt.DOM,it=function(e,n,t){var r,o,i,u,s,a;for(i=ot.select('span[data-mce-type="bookmark"]',n),s=z(e,t),(r=ot.createRng()).setStartAfter(t),r.setEndAfter(n),u=(o=r.extractContents()).firstChild;u;u=u.firstChild)if("LI"===u.nodeName&&e.dom.isEmpty(u)){ot.remove(u);break}e.dom.isEmpty(o)||ot.insertAfter(o,n),ot.insertAfter(s,n),Xn(e.dom,t.parentNode)&&(a=t.parentNode,Pn.each(i,function(e){a.parentNode.insertBefore(e,t.parentNode)}),ot.remove(a)),ot.remove(t),Xn(e.dom,n)&&ot.remove(n)},ut=function(e){var n=e.cloneRange(),t=pe(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=pe(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},st=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),at=rt.DOM,ct=function(o){function e(e){var n,t,r;t=o[e?"startContainer":"endContainer"],r=o[e?"startOffset":"endOffset"],1===t.nodeType&&(n=at.create("span",{"data-mce-type":"bookmark"}),t.hasChildNodes()?(r=Math.min(r,t.childNodes.length-1),e?t.insertBefore(n,t.childNodes[r]):at.insertAfter(n,t.childNodes[r])):t.appendChild(n),t=n,r=0),i[e?"startContainer":"endContainer"]=t,i[e?"startOffset":"endOffset"]=r}var i={};return e(!0),o.collapsed||e(),i},ft=function(o){function e(e){var n,t,r;n=r=o[e?"startContainer":"endContainer"],t=o[e?"startOffset":"endOffset"],n&&(1===n.nodeType&&(t=function(e){for(var n=e.parentNode.firstChild,t=0;n;){if(n===e)return t;1===n.nodeType&&"bookmark"===n.getAttribute("data-mce-type")||t++,n=n.nextSibling}return-1}(n),n=n.parentNode,at.remove(r),!n.hasChildNodes()&&at.isBlock(n)&&n.appendChild(at.create("br"))),o[e?"startContainer":"endContainer"]=n,o[e?"startOffset":"endOffset"]=t)}e(!0),e();var n=at.createRng();return n.setStart(o.startContainer,o.startOffset),o.endContainer&&n.setEnd(o.endContainer,o.endOffset),ut(n)},dt=function(e,n){var t,r;if(t=n.nextSibling,De(e,n,t)){for(;r=t.firstChild;)n.appendChild(r);e.remove(t)}if(t=n.previousSibling,De(e,n,t)){for(;r=t.lastChild;)n.insertBefore(r,n.firstChild);e.remove(t)}},lt=function(e){return"list-style-type"in e},mt={toggleList:function(e,n,t){var r=Jn.getParentList(e),o=Jn.getSelectedSubLists(e);t=t||{},r&&0<o.length?Ee(e,r,o,n,t):function(e,n,t,r){if(n!==e.getBody())if(n)if(n.nodeName!==t||lt(r)||Se(n)){var o=ct(e.selection.getRng(!0));be(e.dom,n,r);var i=e.dom.rename(n,t);dt(e.dom,i),e.selection.setRng(ft(o)),j(e,Oe(t),i)}else ye(e);else Te(e,t,r),j(e,Oe(t),n)}(e,r,n,t)},mergeWithAdjacentLists:dt},gt=rt.DOM,pt=function(n,e){Pn.each(Pn.grep(n.select("ol,ul",e)),function(e){we(n,e)})},vt=function(n){n.on("keydown",function(e){e.keyCode===An.BACKSPACE?Pe(n,!1)&&e.preventDefault():e.keyCode===An.DELETE&&Pe(n,!0)&&e.preventDefault()})},ht=Pe,Nt=function(n){return{backspaceDelete:function(e){ht(n,e)}}},yt=function(t){t.on("BeforeExecCommand",function(e){var n=e.command.toLowerCase();"indent"===n?he(t):"outdent"===n&&Ne(t)}),t.addCommand("InsertUnorderedList",function(e,n){mt.toggleList(t,"UL",n)}),t.addCommand("InsertOrderedList",function(e,n){mt.toggleList(t,"OL",n)}),t.addCommand("InsertDefinitionList",function(e,n){mt.toggleList(t,"DL",n)}),t.addCommand("RemoveList",function(){ye(t)}),t.addQueryStateHandler("InsertUnorderedList",Me(t,"UL")),t.addQueryStateHandler("InsertOrderedList",Me(t,"OL")),t.addQueryStateHandler("InsertDefinitionList",Me(t,"DL"))},St=function(e){return e.getParam("lists_indent_on_tab",!0)},Ot=function(e){St(e)&&function(n){n.on("keydown",function(e){e.keyCode!==An.TAB||An.metaKeyPressed(e)||n.undoManager.transact(function(){(e.shiftKey?Ne(n):he(n))&&e.preventDefault()})})}(e),vt(e)},Ct=function(n){function e(e){return function(){return n.execCommand(e)}}var t,r,o;r="advlist",o=(t=n).settings.plugins?t.settings.plugins:"",-1===Pn.inArray(o.split(/[ ,]/),r)&&(n.ui.registry.addToggleButton("numlist",{icon:"ordered-list",active:!1,tooltip:"Numbered list",onAction:e("InsertOrderedList"),onSetup:Ue(n,"OL")}),n.ui.registry.addToggleButton("bullist",{icon:"unordered-list",active:!1,tooltip:"Bullet list",onAction:e("InsertUnorderedList"),onSetup:Ue(n,"UL")}))};!function bt(){i.add("lists",function(e){return Ot(e),Ct(e),yt(e),Nt(e)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function e(){}function o(e){return function(){return e}}function t(){return u}var r,n=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=function(){return(d=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},a=o(!1),c=o(!0),u=(r={fold:function(e,t){return e()},is:a,isSome:a,isNone:c,getOr:l,getOrThunk:s,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:o(null),getOrUndefined:o(undefined),or:l,orThunk:s,map:t,each:e,bind:t,exists:a,forall:c,filter:t,equals:i,equals_:i,toArray:function(){return[]},toString:o("none()")},Object.freeze&&Object.freeze(r),r);function i(e){return e.isNone()}function s(e){return e()}function l(e){return e}function m(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"==t&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":t}(e)===t}}function f(e,t){for(var r=0,n=e.length;r<n;r++){t(e[r],r)}}function h(e,t){return G(e,t)?E(e[t]):D()}function p(t){return function(e){return e?function(e){return e.replace(/px$/,"")}(e.style[t]):""}}function g(r){return function(e,t){e&&(e.style[r]=function(e){return/^[0-9.]+$/.test(e)?e+"px":e}(t))}}function v(e,t){if(e)for(var r=0;r<e.length;r++)if(-1!==t.indexOf(e[r].filter))return e[r]}function b(e){return ae.getAttrib(e,"data-ephox-embed-iri")}function w(e,t){return function(e){var t=ae.createFragment(e);return""!==b(t.firstChild)}(t)?function(e){var t=ae.createFragment(e).firstChild;return{type:"ephox-embed-iri",source1:b(t),source2:"",poster:"",width:oe.getMaxWidth(t),height:oe.getMaxHeight(t)}}(t):function(n,e){var i={};return ne({validate:!1,allow_conditional_comments:!0,start:function(e,t){if(i.source1||"param"!==e||(i.source1=t.map.movie),"iframe"!==e&&"object"!==e&&"embed"!==e&&"video"!==e&&"audio"!==e||(i.type||(i.type=e),i=re.extend(t.map,i)),"script"===e){var r=v(n,t.map.src);if(!r)return;i={type:"script",source1:t.map.src,width:String(r.width),height:String(r.height)}}"source"===e&&(i.source1?i.source2||(i.source2=t.map.src):i.source1=t.map.src),"img"!==e||i.poster||(i.poster=t.map.src)}}).parse(e),i.source1=i.source1||i.src||i.data,i.source2=i.source2||"",i.poster=i.poster||"",i}(e,t)}function y(e,t){var r,n,i,o;for(r in t)if(i=""+t[r],e.map[r])for(n=e.length;n--;)(o=e[n]).name===r&&(i?(e.map[r]=i,o.value=i):(delete e.map[r],e.splice(n,1)));else i&&(e.push({name:r,value:i}),e.map[r]=i)}function x(e,t){var r=me.createFragment(e).firstChild;return oe.setMaxWidth(r,t.width),oe.setMaxHeight(r,t.height),function(e){var t=se();return ne(t).parse(e),t.getContent()}(r.outerHTML)}function j(r,e){var n=re.extend({},e);if(!n.source1&&(re.extend(n,w(J(r),n.embed)),!n.source1))return"";n.source2||(n.source2=""),n.poster||(n.poster=""),n.source1=r.convertURL(n.source1,"source"),n.source2=r.convertURL(n.source2,"source"),n.source1mime=ue(n.source1),n.source2mime=ue(n.source2),n.poster=r.convertURL(n.poster,"poster");var t=function(t){var e=fe.filter(function(e){return e.regex.test(t)});return 0<e.length?re.extend({},e[0],{url:function(e,t){for(var r=e.regex.exec(t),n=e.url,i=function(e){n=n.replace("$"+e,function(){return r[e]?r[e]:""})},o=0;o<r.length;o++)i(o);return n.replace(/\?$/,"")}(e[0],t)}):null}(n.source1);if(t&&(n.source1=t.url,n.type=t.type,n.allowFullscreen=t.allowFullscreen,n.width=n.width||String(t.w),n.height=n.height||String(t.h)),n.embed)return de(n.embed,n,!0);var i=v(J(r),n.source1);i&&(n.type="script",n.width=String(i.width),n.height=String(i.height));var o=K(r),a=Q(r);return n.width=n.width||"300",n.height=n.height||"150",re.each(n,function(e,t){n[t]=r.dom.encode(""+e)}),"iframe"===n.type?function(e){var t=e.allowFullscreen?' allowFullscreen="1"':"";return'<iframe src="'+e.source1+'" width="'+e.width+'" height="'+e.height+'"'+t+"></iframe>"}(n):"application/x-shockwave-flash"===n.source1mime?function(e){var t='<object data="'+e.source1+'" width="'+e.width+'" height="'+e.height+'" type="application/x-shockwave-flash">';return e.poster&&(t+='<img src="'+e.poster+'" width="'+e.width+'" height="'+e.height+'" />'),t+="</object>"}(n):-1!==n.source1mime.indexOf("audio")?function(e,t){return t?t(e):'<audio controls="controls" src="'+e.source1+'">'+(e.source2?'\n<source src="'+e.source2+'"'+(e.source2mime?' type="'+e.source2mime+'"':"")+" />\n":"")+"</audio>"}(n,o):"script"===n.type?function(e){return'<script src="'+e.source1+'"><\/script>'}(n):function(e,t){return t?t(e):'<video width="'+e.width+'" height="'+e.height+'"'+(e.poster?' poster="'+e.poster+'"':"")+' controls="controls">\n<source src="'+e.source1+'"'+(e.source1mime?' type="'+e.source1mime+'"':"")+" />\n"+(e.source2?'<source src="'+e.source2+'"'+(e.source2mime?' type="'+e.source2mime+'"':"")+" />\n":"")+"</video>"}(n,a)}function O(t){return function(e){return j(t,e)}}function A(e){var r=q(e,{source1:e.source1.value,source2:h(e,"source2").bind(function(e){return h(e,"value")}).getOr(""),poster:h(e,"poster").bind(function(e){return h(e,"value")}).getOr("")});return h(e,"dimensions").each(function(e){f(["width","height"],function(t){h(e,t).each(function(e){return r[t]=e})})}),r}function S(e){var n=q(e,{source1:{value:h(e,"source1").getOr("")},source2:{value:h(e,"source2").getOr("")},poster:{value:h(e,"poster").getOr("")}});return f(["width","height"],function(r){h(e,r).each(function(e){var t=n.dimensions||{};t[r]=e,n.dimensions=t})}),n}function _(r){return function(e){var t=e&&e.msg?"Media embed handler error: "+e.msg:"Media embed handler threw unknown error.";r.notificationManager.open({type:"error",text:t})}}function C(e,t){return w(J(e),t)}function M(i,o){return function(e){if(N(e.url)&&0<e.url.trim().length){var t=e.html,r=C(o,t),n=d(d({},r),{source1:e.url,embed:t});i.setData(S(n))}}}function F(e,t){var r=e.dom.select("img[data-mce-object]");e.insertContent(t),function(e,t){for(var r=e.dom.select("img[data-mce-object]"),n=0;n<t.length;n++)for(var i=r.length-1;0<=i;i--)t[n]===r[i]&&r.splice(i,1);e.selection.select(r[0])}(e,r),e.nodeChanged()}function P(e,t){var r,n=t.name;return(r=new ye("img",1)).shortEnded=!0,Oe(e,t,r),r.attr({width:t.attr("width")||"300",height:t.attr("height")||("audio"===n?"30":"150"),style:t.attr("style"),src:xe.transparentSrc,"data-mce-object":n,"class":"mce-object mce-object-"+n}),r}function k(e,t){var r,n,i,o=t.name;return(r=new ye("span",1)).attr({contentEditable:"false",style:t.attr("style"),"data-mce-object":o,"class":"mce-preview-object mce-object-"+o}),Oe(e,t,r),(n=new ye(o,1)).attr({src:t.attr("src"),allowfullscreen:t.attr("allowfullscreen"),style:t.attr("style"),"class":t.attr("class"),width:t.attr("width"),height:t.attr("height"),frameborder:"0"}),(i=new ye("span",1)).attr("class","mce-shim"),r.append(n),r.append(i),r}function T(e){for(;e=e.parent;)if(e.attr("data-ephox-embed-iri")||(void 0,(t=e.attr("class"))&&/\btiny-pageembed\b/.test(t)))return!0;var t;return!1}var $,z=function(r){function e(){return i}function t(e){return e(r)}var n=o(r),i={fold:function(e,t){return t(r)},is:function(e){return r===e},isSome:c,isNone:a,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:e,orThunk:e,map:function(e){return z(e(r))},each:function(e){e(r)},bind:t,exists:t,forall:t,filter:function(e){return e(r)?i:u},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(e){return e.is(r)},equals_:function(e,t){return e.fold(a,function(e){return t(r,e)})}};return i},D=t,E=function(e){return null===e||e===undefined?u:z(e)},N=m("string"),U=m("array"),R=m("function"),L=Array.prototype.slice,W=Array.prototype.push,H=(R(Array.from)&&Array.from,function(e){function t(){return r}var r=e;return{get:t,set:function(e){r=e},clone:function(){return H(t())}}}),I=Object.prototype.hasOwnProperty,q=($=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var r={},n=0;n<e.length;n++){var i=e[n];for(var o in i)I.call(i,o)&&(r[o]=$(r[o],i[o]))}return r}),B=Object.hasOwnProperty,G=function(e,t){return B.call(e,t)},J=function(e){return e.getParam("media_scripts")},K=function(e){return e.getParam("audio_template_callback")},Q=function(e){return e.getParam("video_template_callback")},V=function(e){return e.getParam("media_live_embeds",!0)},X=function(e){return e.getParam("media_filter_html",!0)},Y=function(e){return e.getParam("media_url_resolver")},Z=function(e){return e.getParam("media_alt_source",!0)},ee=function(e){return e.getParam("media_poster",!0)},te=function(e){return e.getParam("media_dimensions",!0)},re=tinymce.util.Tools.resolve("tinymce.util.Tools"),ne=tinymce.util.Tools.resolve("tinymce.html.SaxParser"),ie=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),oe={getMaxWidth:p("maxWidth"),getMaxHeight:p("maxHeight"),setMaxWidth:g("maxWidth"),setMaxHeight:g("maxHeight")},ae=ie.DOM,ce=tinymce.util.Tools.resolve("tinymce.util.Promise"),ue=function(e){var t={mp3:"audio/mpeg",m4a:"audio/x-m4a",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"}[e.toLowerCase().split(".").pop()];return t||""},se=tinymce.util.Tools.resolve("tinymce.html.Writer"),le=tinymce.util.Tools.resolve("tinymce.html.Schema"),me=ie.DOM,de=function(e,t,r){return function(e){var t=me.createFragment(e);return""!==me.getAttrib(t.firstChild,"data-ephox-embed-iri")}(e)?x(e,t):function(e,i,o){var a,c=se(),u=0;return ne({validate:!1,allow_conditional_comments:!0,comment:function(e){c.comment(e)},cdata:function(e){c.cdata(e)},text:function(e,t){c.text(e,t)},start:function(e,t,r){switch(e){case"video":case"object":case"embed":case"img":case"iframe":i.height!==undefined&&i.width!==undefined&&y(t,{width:i.width,height:i.height})}if(o)switch(e){case"video":y(t,{poster:i.poster,src:""}),i.source2&&y(t,{src:""});break;case"iframe":y(t,{src:i.source1});break;case"source":if(++u<=2&&(y(t,{src:i["source"+u],type:i["source"+u+"mime"]}),!i["source"+u]))return;break;case"img":if(!i.poster)return;a=!0}c.start(e,t,r)},end:function(e){if("video"===e&&o)for(var t=1;t<=2;t++)if(i["source"+t]){var r=[];r.map={},u<t&&(y(r,{src:i["source"+t],type:i["source"+t+"mime"]}),c.start("source",r,!0))}if(i.poster&&"object"===e&&o&&!a){var n=[];n.map={},y(n,{src:i.poster,width:i.width,height:i.height}),c.start("img",n,!0)}c.end(e)}},le({})).parse(e),c.getContent()}(e,t,r)},fe=[{regex:/youtu\.be\/([\w\-_\?&=.]+)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$2?$4",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowFullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&byline=0",allowFullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0},{regex:/dai\.ly\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0}],he={},pe=function(e,t){var r=Y(e);return r?function(n,i,o){return new ce(function(t,e){function r(e){return e.html&&(he[n.source1]=e),t({url:n.source1,html:e.html?e.html:i(n)})}he[n.source1]?r(he[n.source1]):o({url:n.source1},r,e)})}(t,O(e),r):function(t,r){return new ce(function(e){e({html:r(t),url:t.source1})})}(t,O(e))},ge=function(e){return he.hasOwnProperty(e)},ve=function(n){function i(e){return A(e.getData())}var e=function(e){var t=e.selection.getNode(),r=function(e){return e.getAttribute("data-mce-object")||e.getAttribute("data-ephox-embed-iri")}(t)?e.serializer.serialize(t,{selection:!0}):"";return q({embed:r},w(J(e),r))}(n),r=H(e),t=S(e),o={title:"General",name:"general",items:function(e){for(var t=[],r=0,n=e.length;r<n;++r){if(!U(e[r]))throw new Error("Arr.flatten item "+r+" was not an array, input: "+e);W.apply(t,e[r])}return t}([[{name:"source1",type:"urlinput",filetype:"media",label:"Source"}],te(n)?[{type:"sizeinput",name:"dimensions",label:"Constrain proportions",constrain:!0}]:[]])},a={title:"Embed",items:[{type:"textarea",name:"embed",label:"Paste your embed code below:"}]},c=[];Z(n)&&c.push({name:"source2",type:"urlinput",filetype:"media",label:"Alternative source URL"}),ee(n)&&c.push({name:"poster",type:"urlinput",filetype:"image",label:"Media poster (Image URL)"});var u={title:"Advanced",name:"advanced",items:c},s=[o,a];0<c.length&&s.push(u);var l={type:"tabpanel",tabs:s},m=n.windowManager.open({title:"Insert/Edit Media",size:"normal",body:l,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:function(e){var t=i(e);!function(e,t,r){t.embed=de(t.embed,t),t.embed&&(e.source1===t.source1||ge(t.source1))?F(r,t.embed):pe(r,t).then(function(e){F(r,e.html)})["catch"](_(r))}(r.get(),t,n),e.close()},onChange:function(e,t){switch(t.name){case"source1":!function(e,t){var r=i(t);e.source1!==r.source1&&(M(m,n)({url:r.source1,html:""}),pe(n,r).then(M(m,n))["catch"](_(n)))}(r.get(),e);break;case"embed":!function(e){var t=A(e.getData()),r=C(n,t.embed);e.setData(S(r))}(e);break;case"dimensions":case"poster":!function(e){var t=i(e),r=j(n,t);e.setData(S(d(d({},t),{embed:r})))}(e)}r.set(i(e))},initialData:t})},be=function(e){return{showDialog:function(){ve(e)}}},we=function(e){e.addCommand("mceMedia",function(){ve(e)})},ye=tinymce.util.Tools.resolve("tinymce.html.Node"),xe=tinymce.util.Tools.resolve("tinymce.Env"),je=function(i,e){if(!1===X(i))return e;var o,a=se();return ne({validate:!1,allow_conditional_comments:!1,comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,t,r){if(o=!0,"script"!==e&&"noscript"!==e){for(var n=0;n<t.length;n++){if(0===t[n].name.indexOf("on"))return;"style"===t[n].name&&(t[n].value=i.dom.serializeStyle(i.dom.parseStyle(t[n].value),e))}a.start(e,t,r),o=!1}},end:function(e){o||a.end(e)}},le({})).parse(e),a.getContent()},Oe=function(e,t,r){var n,i,o,a,c;for(a=(o=t.attributes).length;a--;)n=o[a].name,i=o[a].value,"width"!==n&&"height"!==n&&"style"!==n&&("data"!==n&&"src"!==n||(i=e.convertURL(i,n)),r.attr("data-mce-p-"+n,i));(c=t.firstChild&&t.firstChild.value)&&(r.attr("data-mce-html",escape(je(e,c))),r.firstChild=null)},Ae=function(i){return function(e){for(var t,r,n=e.length;n--;)(t=e[n]).parent&&(t.parent.attr("data-mce-object")||"script"===t.name&&!(r=v(J(i),t.attr("src")))||(r&&(r.width&&t.attr("width",r.width.toString()),r.height&&t.attr("height",r.height.toString())),"iframe"===t.name&&V(i)&&xe.ceFalse?T(t)||t.replace(k(i,t)):T(t)||t.replace(P(i,t))))}},Se=function(d){d.on("preInit",function(){var t=d.schema.getSpecialElements();re.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var r=d.schema.getBoolAttrs();re.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){r[e]={}}),d.parser.addNodeFilter("iframe,video,audio,object,embed,script",Ae(d)),d.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var r,n,i,o,a,c,u,s,l=e.length;l--;)if((r=e[l]).parent){for(u=r.attr(t),n=new ye(u,1),"audio"!==u&&"script"!==u&&((s=r.attr("class"))&&-1!==s.indexOf("mce-preview-object")?n.attr({width:r.firstChild.attr("width"),height:r.firstChild.attr("height")}):n.attr({width:r.attr("width"),height:r.attr("height")})),n.attr({style:r.attr("style")}),i=(o=r.attributes).length;i--;){var m=o[i].name;0===m.indexOf("data-mce-p-")&&n.attr(m.substr(11),o[i].value)}"script"===u&&n.attr("type","text/javascript"),(a=r.attr("data-mce-html"))&&((c=new ye("#text",3)).raw=!0,c.value=je(d,unescape(a)),n.append(c)),r.replace(n)}})}),d.on("SetContent",function(){d.$("span.mce-preview-object").each(function(e,t){var r=d.$(t);0===r.find("span.mce-shim").length&&r.append('<span class="mce-shim"></span>')})})},_e=function(e){e.on("ResolveName",function(e){var t;1===e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)})},Ce=function(t){t.on("click keyup touchend",function(){var e=t.selection.getNode();e&&t.dom.hasClass(e,"mce-preview-object")&&t.dom.getAttrib(e,"data-mce-selected")&&e.setAttribute("data-mce-selected","2")}),t.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");"audio"!==t&&"script"!==t||e.preventDefault()}),t.on("ObjectResized",function(e){var t,r=e.target;r.getAttribute("data-mce-object")&&(t=r.getAttribute("data-mce-html"))&&(t=unescape(t),r.setAttribute("data-mce-html",escape(de(t,{width:String(e.width),height:String(e.height)}))))})},Me=function(e){e.ui.registry.addToggleButton("media",{tooltip:"Insert/edit media",icon:"embed",onAction:function(){e.execCommand("mceMedia")},onSetup:function(t,r){return function(e){return t.selection.selectorChangedWithUnbind(r.join(","),e.setActive).unbind}}(e,["img[data-mce-object]","span[data-mce-object]","div[data-ephox-embed-iri]"])}),e.ui.registry.addMenuItem("media",{icon:"embed",text:"Media...",onAction:function(){e.execCommand("mceMedia")}})};!function Fe(){n.add("media",function(e){return we(e),Me(e),_e(e),Se(e),Ce(e),be(e)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function o(n,e){for(var t="",o=0;o<e;o++)t+=n;return t}var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n){var e=n.getParam("nonbreaking_force_tab",0);return"boolean"==typeof e?!0===e?3:0:e},a=function(n){return n.getParam("nonbreaking_wrap",!0,"boolean")},r=function(n,e){var t=a(n)||n.plugins.visualchars?'<span class="'+(function(n){return!!n.plugins.visualchars&&n.plugins.visualchars.isEnabled()}(n)?"mce-nbsp-wrap mce-nbsp":"mce-nbsp-wrap")+'" contenteditable="false">'+o(" ",e)+"</span>":o(" ",e);n.undoManager.transact(function(){return n.insertContent(t)})},e=function(n){n.addCommand("mceNonBreaking",function(){r(n,1)})},c=tinymce.util.Tools.resolve("tinymce.util.VK"),t=function(e){var t=i(e);0<t&&e.on("keydown",function(n){if(n.keyCode===c.TAB&&!n.isDefaultPrevented()){if(n.shiftKey)return;n.preventDefault(),n.stopImmediatePropagation(),r(e,t)}})},u=function(n){n.ui.registry.addButton("nonbreaking",{icon:"non-breaking",tooltip:"Nonbreaking space",onAction:function(){return n.execCommand("mceNonBreaking")}}),n.ui.registry.addMenuItem("nonbreaking",{icon:"non-breaking",text:"Nonbreaking space",onAction:function(){return n.execCommand("mceNonBreaking")}})};!function s(){n.add("nonbreaking",function(n){e(n),u(n),t(n)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function c(n){return function(t){return-1!==(" "+t.attr("class")+" ").indexOf(n)}}function l(i,o,c){return function(t){var n=arguments,e=n[n.length-2],r=0<e?o.charAt(e-1):"";if('"'===r)return t;if(">"===r){var a=o.lastIndexOf("<",e);if(-1!==a)if(-1!==o.substring(a,e).indexOf('contenteditable="false"'))return t}return'<span class="'+c+'" data-mce-content="'+i.dom.encode(n[0])+'">'+i.dom.encode("string"==typeof n[1]?n[1]:n[0])+"</span>"}}var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=function(t){return t.getParam("noneditable_noneditable_class","mceNonEditable")},s=function(t){return t.getParam("noneditable_editable_class","mceEditable")},d=function(t){var n=t.getParam("noneditable_regexp",[]);return n&&n.constructor===RegExp?[n]:n},n=function(n){var t,e,r="contenteditable";t=" "+u.trim(s(n))+" ",e=" "+u.trim(f(n))+" ";var a=c(t),i=c(e),o=d(n);n.on("PreInit",function(){0<o.length&&n.on("BeforeSetContent",function(t){!function(t,n,e){var r=n.length,a=e.content;if("raw"!==e.format){for(;r--;)a=a.replace(n[r],l(t,a,f(t)));e.content=a}}(n,o,t)}),n.parser.addAttributeFilter("class",function(t){for(var n,e=t.length;e--;)n=t[e],a(n)?n.attr(r,"true"):i(n)&&n.attr(r,"false")}),n.serializer.addAttributeFilter(r,function(t){for(var n,e=t.length;e--;)n=t[e],(a(n)||i(n))&&(0<o.length&&n.attr("data-mce-content")?(n.name="#text",n.type=3,n.raw=!0,n.value=n.attr("data-mce-content")):n.attr(r,null))})})};!function e(){t.add("noneditable",function(t){n(t)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function e(){return"mce-pagebreak"}function a(){return'<img src="'+t.transparentSrc+'" class="mce-pagebreak" data-mce-resize="false" data-mce-placeholder />'}var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),r=function(e){return e.getParam("pagebreak_separator","\x3c!-- pagebreak --\x3e")},i=function(e){return e.getParam("pagebreak_split_block",!1)},o=function(o){var c=r(o),n=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi");o.on("BeforeSetContent",function(e){e.content=e.content.replace(n,a())}),o.on("PreInit",function(){o.serializer.addNodeFilter("img",function(e){for(var n,a,t=e.length;t--;)if((a=(n=e[t]).attr("class"))&&-1!==a.indexOf("mce-pagebreak")){var r=n.parent;if(o.schema.getBlockElements()[r.name]&&i(o)){r.type=3,r.value=c,r.raw=!0,n.remove();continue}n.type=3,n.value=c,n.raw=!0}})})},c=a,u=e,g=function(e){e.addCommand("mcePageBreak",function(){e.settings.pagebreak_split_block?e.insertContent("<p>"+c()+"</p>"):e.insertContent(c())})},m=function(n){n.on("ResolveName",function(e){"IMG"===e.target.nodeName&&n.dom.hasClass(e.target,u())&&(e.name="pagebreak")})},s=function(e){e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:function(){return e.execCommand("mcePageBreak")}}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:function(){return e.execCommand("mcePageBreak")}})};!function l(){n.add("pagebreak",function(e){g(e),s(e),o(e),m(e)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(f){"use strict";function t(){}function i(t){return function(){return t}}function e(){return v}var n,d=function(t){function e(){return n}var n=t;return{get:e,set:function(t){n=t},clone:function(){return d(e())}}},r=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=function(t){return!(!/(^|[ ,])powerpaste([, ]|$)/.test(t.settings.plugins)||!r.get("powerpaste"))&&("undefined"!=typeof f.window.console&&f.window.console.log&&f.window.console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."),!0)},a=function(t,e){return{clipboard:t,quirks:e}},s=function(t,e,n,r){return t.fire("PastePreProcess",{content:e,internal:n,wordContent:r})},c=function(t,e,n,r){return t.fire("PastePostProcess",{node:e,internal:n,wordContent:r})},o=function(t,e){return t.fire("PastePlainTextToggle",{state:e})},m=function(t,e){return t.fire("paste",{ieFake:e})},l=function(t,e){"text"===e.pasteFormat.get()?(e.pasteFormat.set("html"),o(t,!1)):(e.pasteFormat.set("text"),o(t,!0)),t.focus()},p=function(t,n){t.addCommand("mceTogglePlainTextPaste",function(){l(t,n)}),t.addCommand("mceInsertClipboardContent",function(t,e){e.content&&n.pasteHtml(e.content,e.internal),e.text&&n.pasteText(e.text)})},g=i(!1),h=i(!0),v=(n={fold:function(t,e){return t()},is:g,isSome:g,isNone:h,getOr:w,getOrThunk:b,getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:w,orThunk:b,map:e,each:t,bind:e,exists:g,forall:h,filter:e,equals:y,equals_:y,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(n),n);function y(t){return t.isNone()}function b(t){return t()}function w(t){return t}function x(t,e){for(var n=t.length,r=new Array(n),o=0;o<n;o++){var i=t[o];r[o]=e(i,o)}return r}function _(t,e){for(var n=0,r=t.length;n<r;n++){e(t[n],n)}}var P,T,D,C,k,S=function(n){function t(){return o}function e(t){return t(n)}var r=i(n),o={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:h,isNone:g,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:t,orThunk:t,map:function(t){return S(t(n))},each:function(t){t(n)},bind:e,exists:e,forall:e,filter:function(t){return t(n)?o:v},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(g,function(t){return e(n,t)})}};return o},F={some:S,none:e,from:function(t){return null===t||t===undefined?v:S(t)}},E=(P="function",function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"==e&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":e}(t)===P}),I=Array.prototype.slice,O=E(Array.from)?Array.from:function(t){return I.call(t)},R={},A={exports:R};T=undefined,D=R,C=A,k=undefined,function(t){"object"==typeof D&&void 0!==C?C.exports=t():"function"==typeof T&&T.amd?T([],t):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EphoxContactWrapper=t()}(function(){return function l(i,u,a){function s(e,t){if(!u[e]){if(!i[e]){var n="function"==typeof k&&k;if(!t&&n)return n(e,!0);if(c)return c(e,!0);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}var o=u[e]={exports:{}};i[e][0].call(o.exports,function(t){return s(i[e][1][t]||t)},o,o.exports,l,i,u,a)}return u[e].exports}for(var c="function"==typeof k&&k,t=0;t<a.length;t++)s(a[t]);return s}({1:[function(t,e,n){var r,o,i=e.exports={};function u(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(t){if(r===setTimeout)return setTimeout(t,0);if((r===u||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:u}catch(t){r=u}try{o="function"==typeof clearTimeout?clearTimeout:a}catch(t){o=a}}();var c,l=[],f=!1,d=-1;function m(){f&&c&&(f=!1,c.length?l=c.concat(l):d=-1,l.length&&p())}function p(){if(!f){var t=s(m);f=!0;for(var e=l.length;e;){for(c=l,l=[];++d<e;)c&&c[d].run();d=-1,e=l.length}c=null,f=!1,function n(t){if(o===clearTimeout)return clearTimeout(t);if((o===a||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(t);try{return o(t)}catch(e){try{return o.call(null,t)}catch(e){return o.call(this,t)}}}(t)}}function g(t,e){this.fun=t,this.array=e}function h(){}i.nextTick=function(t){var e=new Array(arguments.length-1);if(1<arguments.length)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];l.push(new g(t,e)),1!==l.length||f||s(p)},g.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=h,i.addListener=h,i.once=h,i.off=h,i.removeListener=h,i.removeAllListeners=h,i.emit=h,i.prependListener=h,i.prependOnceListener=h,i.listeners=function(t){return[]},i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],2:[function(t,f,e){(function(e){function r(){}function i(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],l(t,this)}function o(r,o){for(;3===r._state;)r=r._value;0!==r._state?(r._handled=!0,i._immediateFn(function(){var t=1===r._state?o.onFulfilled:o.onRejected;if(null!==t){var e;try{e=t(r._value)}catch(n){return void a(o.promise,n)}u(o.promise,e)}else(1===r._state?u:a)(o.promise,r._value)})):r._deferreds.push(o)}function u(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof i)return t._state=3,t._value=e,void s(t);if("function"==typeof n)return void l(function r(t,e){return function(){t.apply(e,arguments)}}(n,e),t)}t._state=1,t._value=e,s(t)}catch(o){a(t,o)}}function a(t,e){t._state=2,t._value=e,s(t)}function s(t){2===t._state&&0===t._deferreds.length&&i._immediateFn(function(){t._handled||i._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)o(t,t._deferreds[e]);t._deferreds=null}function c(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function l(t,e){var n=!1;try{t(function(t){n||(n=!0,u(e,t))},function(t){n||(n=!0,a(e,t))})}catch(r){if(n)return;n=!0,a(e,r)}}var t,n;t=this,n=setTimeout,i.prototype["catch"]=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=new this.constructor(r);return o(this,new c(t,e,n)),n},i.all=function(t){var s=Array.prototype.slice.call(t);return new i(function(o,i){if(0===s.length)return o([]);var u=s.length;function a(e,t){try{if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void n.call(t,function(t){a(e,t)},i)}s[e]=t,0==--u&&o(s)}catch(r){i(r)}}for(var t=0;t<s.length;t++)a(t,s[t])})},i.resolve=function(e){return e&&"object"==typeof e&&e.constructor===i?e:new i(function(t){t(e)})},i.reject=function(n){return new i(function(t,e){e(n)})},i.race=function(o){return new i(function(t,e){for(var n=0,r=o.length;n<r;n++)o[n].then(t,e)})},i._immediateFn="function"==typeof e?function(t){e(t)}:function(t){n(t,0)},i._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)},i._setImmediateFn=function(t){i._immediateFn=t},i._setUnhandledRejectionFn=function(t){i._unhandledRejectionFn=t},void 0!==f&&f.exports?f.exports=i:t.Promise||(t.Promise=i)}).call(this,t("timers").setImmediate)},{timers:3}],3:[function(s,t,c){(function(t,e){var r=s("process/browser.js").nextTick,n=Function.prototype.apply,o=Array.prototype.slice,i={},u=0;function a(t,e){this._id=t,this._clearFn=e}c.setTimeout=function(){return new a(n.call(setTimeout,window,arguments),clearTimeout)},c.setInterval=function(){return new a(n.call(setInterval,window,arguments),clearInterval)},c.clearTimeout=c.clearInterval=function(t){t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(window,this._id)},c.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},c.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},c._unrefActive=c.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;0<=e&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},c.setImmediate="function"==typeof t?t:function(t){var e=u++,n=!(arguments.length<2)&&o.call(arguments,1);return i[e]=!0,r(function(){i[e]&&(n?t.apply(null,n):t.call(null),c.clearImmediate(e))}),e},c.clearImmediate="function"==typeof e?e:function(t){delete i[t]}}).call(this,s("timers").setImmediate,s("timers").clearImmediate)},{"process/browser.js":1,timers:3}],4:[function(t,e,n){var r=t("promise-polyfill"),o="undefined"!=typeof window?window:Function("return this;")();e.exports={boltExport:o.Promise||r}},{"promise-polyfill":2}]},{},[4])(4)});function j(t){f.setTimeout(function(){throw t},0)}function M(i,t){return t(function(n){var r=[],o=0;0===i.length?n([]):_(i,function(t,e){t.get(function(e){return function(t){r[e]=t,++o>=i.length&&n(r)}}(e))})})}function L(t,e){return function(t){return M(t,z)}(x(t,e))}function N(t){return t.replace(/\r?\n/g,"<br>")}function B(t,e,n){var r=t.split(/\n\n/),o=function(t,e){var n,r=[],o="<"+t;if("object"==typeof e){for(n in e)e.hasOwnProperty(n)&&r.push(n+'="'+et.encodeAllRaw(e[n])+'"');r.length&&(o+=" "+r.join(" "))}return o+">"}(e,n),i="</"+e+">",u=K.map(r,function(t){return t.split(/\n/).join("<br />")});return 1===u.length?u[0]:K.map(u,function(t){return o+t+i}).join("")}var H=A.exports.boltExport,$=function(t){var n=F.none(),e=[],r=function(t){o()?u(t):e.push(t)},o=function(){return n.isSome()},i=function(t){_(t,u)},u=function(e){n.each(function(t){f.setTimeout(function(){e(t)},0)})};return t(function(t){n=F.some(t),i(e),e=[]}),{get:r,map:function(n){return $(function(e){r(function(t){e(n(t))})})},isReady:o}},W={nu:$,pure:function(e){return $(function(t){t(e)})}},U=function(n){function t(t){n().then(t,j)}return{map:function(t){return U(function(){return n().then(t)})},bind:function(e){return U(function(){return n().then(function(t){return e(t).toPromise()})})},anonBind:function(t){return U(function(){return n().then(function(){return t.toPromise()})})},toLazy:function(){return W.nu(t)},toCached:function(){var t=null;return U(function(){return null===t&&(t=n()),t})},toPromise:n,get:t}},z=function(t){return U(function(){return new H(t)})},V=tinymce.util.Tools.resolve("tinymce.Env"),q=tinymce.util.Tools.resolve("tinymce.util.Delay"),K=tinymce.util.Tools.resolve("tinymce.util.Tools"),G=tinymce.util.Tools.resolve("tinymce.util.VK"),X="x-tinymce/html",Y="\x3c!-- "+X+" --\x3e",Z=function(t){return Y+t},J=function(t){return t.replace(Y,"")},Q=function(t){return-1!==t.indexOf(Y)},tt=function(){return X},et=tinymce.util.Tools.resolve("tinymce.html.Entities"),nt=function(t){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(t)},rt=function(t,e,n){return e?B(t,!0===e?"p":e,n):N(t)},ot=tinymce.util.Tools.resolve("tinymce.html.DomParser"),it=tinymce.util.Tools.resolve("tinymce.html.Node"),ut=tinymce.util.Tools.resolve("tinymce.html.Schema"),at=tinymce.util.Tools.resolve("tinymce.html.Serializer"),st={shouldBlockDrop:function(t){return t.getParam("paste_block_drop",!1)},shouldPasteDataImages:function(t){return t.getParam("paste_data_images",!1)},shouldFilterDrop:function(t){return t.getParam("paste_filter_drop",!0)},getPreProcess:function(t){return t.getParam("paste_preprocess")},getPostProcess:function(t){return t.getParam("paste_postprocess")},getWebkitStyles:function(t){return t.getParam("paste_webkit_styles")},shouldRemoveWebKitStyles:function(t){return t.getParam("paste_remove_styles_if_webkit",!0)},shouldMergeFormats:function(t){return t.getParam("paste_merge_formats",!0)},isSmartPasteEnabled:function(t){return t.getParam("smart_paste",!0)},isPasteAsTextEnabled:function(t){return t.getParam("paste_as_text",!1)},getRetainStyleProps:function(t){return t.getParam("paste_retain_style_properties")},getWordValidElements:function(t){return t.getParam("paste_word_valid_elements","-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody")},shouldConvertWordFakeLists:function(t){return t.getParam("paste_convert_word_fake_lists",!0)},shouldUseDefaultFilters:function(t){return t.getParam("paste_enable_default_filters",!0)}};function ct(e,t){return K.each(t,function(t){e=t.constructor===RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}var lt={filter:ct,innerText:function ae(t){var e=ut(),n=ot({},e),r="",o=e.getShortEndedElements(),i=K.makeMap("script noscript style textarea video audio iframe object"," "),u=e.getBlockElements();return t=ct(t,[/<!\[[^\]]+\]>/g]),function a(t){var e=t.name,n=t;if("br"!==e){if("wbr"!==e)if(o[e]&&(r+=" "),i[e])r+=" ";else{if(3===t.type&&(r+=t.value),!t.shortEnded&&(t=t.firstChild))for(;a(t),t=t.next;);u[e]&&n.next&&(r+="\n","p"===e&&(r+="\n"))}}else r+="\n"}(n.parse(t)),r},trimHtml:function se(t){return t=ct(t,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,function r(t,e,n){return e||n?"\xa0":" "}],/<br class="Apple-interchange-newline">/g,/<br>$/i])},createIdGenerator:function ce(t){var e=0;return function(){return t+e++}},isMsEdge:function(){return-1!==f.navigator.userAgent.indexOf(" Edge/")}};function ft(e){var n,t;return t=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],e=e.replace(/^[\u00a0 ]+/,""),K.each(t,function(t){if(t.test(e))return!(n=!0)}),n}function dt(t){var i,u,a=1;function n(t){var e="";if(3===t.type)return t.value;if(t=t.firstChild)for(;e+=n(t),t=t.next;);return e}function s(t,e){if(3===t.type&&e.test(t.value))return t.value=t.value.replace(e,""),!1;if(t=t.firstChild)do{if(!s(t,e))return!1}while(t=t.next);return!0}function e(t,e,n){var r=t._listLevel||a;r!==a&&(i=r<a?i&&i.parent.parent:(u=i,null)),i&&i.name===e?i.append(t):(u=u||i,i=new it(e,1),1<n&&i.attr("start",""+n),t.wrap(i)),t.name="li",a<r&&u&&u.lastChild.append(i),a=r,function o(t){if(t._listIgnore)t.remove();else if(t=t.firstChild)for(;o(t),t=t.next;);}(t),s(t,/^\u00a0+/),s(t,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),s(t,/^\u00a0+/)}for(var r=[],o=t.firstChild;null!=o;)if(r.push(o),null!==(o=o.walk()))for(;void 0!==o&&o.parent!==t;)o=o.walk();for(var c=0;c<r.length;c++)if("p"===(t=r[c]).name&&t.firstChild){var l=n(t);if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(l)){e(t,"ul");continue}if(ft(l)){var f=/([0-9]+)\./.exec(l),d=1;f&&(d=parseInt(f[1],10)),e(t,"ol",d);continue}if(t._listLevel){e(t,"ul",1);continue}i=null}else u=i,i=null}function mt(n,r,o,i){var u,a={},t=n.dom.parseStyle(i);return K.each(t,function(t,e){switch(e){case"mso-list":(u=/\w+ \w+([0-9]+)/i.exec(i))&&(o._listLevel=parseInt(u[1],10)),/Ignore/i.test(t)&&o.firstChild&&(o._listIgnore=!0,o.firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!==t&&(a[e]=t));case"mso-element":if(/^(comment|comment-list)$/i.test(t))return void o.remove()}0!==e.indexOf("mso-comment")?0!==e.indexOf("mso-")&&("all"===st.getRetainStyleProps(n)||r&&r[e])&&(a[e]=t):o.remove()}),/(bold)/i.test(a["font-weight"])&&(delete a["font-weight"],o.wrap(new it("b",1))),/(italic)/i.test(a["font-style"])&&(delete a["font-style"],o.wrap(new it("i",1))),(a=n.dom.serializeStyle(a,o.name))||null}function pt(t,e){return{content:t,cancelled:e}}function gt(t,e,n,r){var o=s(t,e,n,r);return t.hasEventListeners("PastePostProcess")&&!o.isDefaultPrevented()?function(t,e,n,r){var o=t.dom.create("div",{style:"display:none"},e),i=c(t,o,n,r);return pt(i.node.innerHTML,i.isDefaultPrevented())}(t,o.content,n,r):pt(o.content,o.isDefaultPrevented())}function ht(t,e){return t.insertContent(function(t,e){var n=t.dom.create("body",{},e);return K.each(n.querySelectorAll("meta"),function(t){return t.parentNode.removeChild(t)}),n.innerHTML}(t,e),{merge:st.shouldMergeFormats(t),paste:!0}),!0}function vt(t){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(t)}function yt(t){return vt(t)&&/.(gif|jpe?g|png)$/.test(t)}function bt(t,e,n){return!(!1!==t.selection.isCollapsed()||!vt(e))&&function(t,e,n){return t.undoManager.extra(function(){n(t,e)},function(){t.execCommand("mceInsertLink",!1,e)}),!0}(t,e,n)}function wt(t,e,n){return!!yt(e)&&function(t,e,n){return t.undoManager.extra(function(){n(t,e)},function(){t.insertContent('<img src="'+e+'">')}),!0}(t,e,n)}function xt(t){return"\n"===t||"\r"===t}function _t(n){return function(t,e,n){return _(t,function(t){n=e(n,t)}),n}(n,function(t,e){return function(t){return-1!==" \f\t\x0B".indexOf(t)}(e)||"\xa0"===e?t.pcIsSpace||""===t.str||t.str.length===n.length-1||function(t,e){return e<t.length&&0<=e&&xt(t[e])}(n,t.str.length+1)?{pcIsSpace:!1,str:t.str+"\xa0"}:{pcIsSpace:!0,str:t.str+" "}:{pcIsSpace:xt(e),str:t.str+e}},{pcIsSpace:!1,str:""}).str}function Pt(t,e,n){var r=n||Q(e),o=Vt(t,J(e),r);!1===o.cancelled&&qt(t,o.content)}function Tt(t,e){var n=t.dom.encode(e).replace(/\r\n/g,"\n"),r=_t(n),o=rt(r,t.settings.forced_root_block,t.settings.forced_root_block_attrs);Pt(t,o,!1)}function Dt(t){var e={};if(t){if(t.getData){var n=t.getData("Text");n&&0<n.length&&-1===n.indexOf("data:text/mce-internal,")&&(e["text/plain"]=n)}if(t.types)for(var r=0;r<t.types.length;r++){var o=t.types[r];try{e[o]=t.getData(o)}catch(i){e[o]=""}}}return e}function Ct(t,e){return e in t&&0<t[e].length}function kt(t){return Ct(t,"text/html")||Ct(t,"text/plain")}function St(e,t,n){var r=function(t){return"paste"===t.type}(t)?t.clipboardData:t.dataTransfer;if(e.settings.paste_data_images&&r){var o=function(t){var e=t.items?x(O(t.items),function(t){return t.getAsFile()}):[],n=t.files?O(t.files):[];return function(t,e){for(var n=[],r=0,o=t.length;r<o;r++){var i=t[r];e(i,r)&&n.push(i)}return n}(0<e.length?e:n,function(t){return/^image\/(jpeg|png|gif|bmp)$/.test(t.type)})}(r);if(0<o.length)return t.preventDefault(),function(t){return L(t,function(r){return z(function(t){var e=r.getAsFile?r.getAsFile():r,n=new window.FileReader;n.onload=function(){t({blob:e,uri:n.result})},n.readAsDataURL(e)})})}(o).get(function(t){n&&e.selection.setRng(n),_(t,function(t){!function(t,e){var n=function(t){var e;return-1!==(e=t.indexOf(","))?t.substr(e+1):null}(e.uri),r=Kt(),o=t.settings.images_reuse_filename&&e.blob.name?function(t,e){var n=e.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i);return n?t.dom.encode(n[1]):null}(t,e.blob.name):r,i=new f.Image;if(i.src=e.uri,function(t,e){return!t.images_dataimg_filter||t.images_dataimg_filter(e)}(t.settings,i)){var u,a=t.editorUpload.blobCache,s=void 0;(u=a.findFirst(function(t){return t.base64()===n}))?s=u:(s=a.create(r,e.blob,n,o),a.add(s)),Pt(t,'<img src="'+s.blobUri()+'">',!1)}else Pt(t,'<img src="'+e.uri+'">',!1)}(e,t)})}),!0}return!1}function Ft(t){return G.metaKeyPressed(t)&&86===t.keyCode||t.shiftKey&&45===t.keyCode}function Et(u,a,i){var s,c=function(){var e=d(F.none());return{clear:function(){e.set(F.none())},set:function(t){e.set(F.some(t))},isSet:function(){return e.get().isSome()},on:function(t){e.get().each(t)}}}();function l(t,e,n,r){var o,i;Ct(t,"text/html")?o=t["text/html"]:(o=a.getHtml(),r=r||Q(o),a.isDefaultContent(o)&&(n=!0)),o=lt.trimHtml(o),a.remove(),i=!1===r&&nt(o),o.length&&!i||(n=!0),n&&(o=Ct(t,"text/plain")&&i?t["text/plain"]:lt.innerText(o)),a.isDefaultContent(o)?e||u.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."):n?Tt(u,o):Pt(u,o,r)}u.on("keydown",function(t){function e(t){Ft(t)&&!t.isDefaultPrevented()&&a.remove()}if(Ft(t)&&!t.isDefaultPrevented()){if((s=t.shiftKey&&86===t.keyCode)&&V.webkit&&-1!==f.navigator.userAgent.indexOf("Version/"))return;if(t.stopImmediatePropagation(),c.set(t),window.setTimeout(function(){c.clear()},100),V.ie&&s)return t.preventDefault(),void m(u,!0);a.remove(),a.create(),u.once("keyup",e),u.once("paste",function(){u.off("keyup",e)})}}),u.on("paste",function(t){var e=c.isSet(),n=function(t,e){var n=Dt(e.clipboardData||t.getDoc().dataTransfer);return lt.isMsEdge()?K.extend(n,{"text/html":""}):n}(u,t),r="text"===i.get()||s,o=Ct(n,tt());s=!1,t.isDefaultPrevented()||function(t){var e=t.clipboardData;return-1!==f.navigator.userAgent.indexOf("Android")&&e&&e.items&&0===e.items.length}(t)?a.remove():kt(n)||!St(u,t,a.getLastRng()||u.selection.getRng())?(e||t.preventDefault(),!V.ie||e&&!t.ieFake||Ct(n,"text/html")||(a.create(),u.dom.bind(a.getEl(),"paste",function(t){t.stopPropagation()}),u.getDoc().execCommand("Paste",!1,null),n["text/html"]=a.getHtml()),Ct(n,"text/html")?(t.preventDefault(),o=o||Q(n["text/html"]),l(n,e,r,o)):q.setEditorTimeout(u,function(){l(n,e,r,o)},0)):a.remove()})}function It(t){return V.ie&&t.inline?f.document.body:t.getBody()}function Ot(e,t,n){!function(t){return It(t)!==t.getBody()}(e)||e.dom.bind(t,"paste keyup",function(t){Xt(e,n)||e.fire("paste")})}function Rt(t,e){return e===t}function At(t){var e=d(null),n="%MCEPASTEBIN%";return{create:function(){return function(t,e,n){var r,o=t.dom,i=t.getBody();e.set(t.selection.getRng()),r=t.dom.add(It(t),"div",{id:"mcepastebin","class":"mce-pastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0"},n),(V.ie||V.gecko)&&o.setStyle(r,"left","rtl"===o.getStyle(i,"direction",!0)?65535:-65535),o.bind(r,"beforedeactivate focusin focusout",function(t){t.stopPropagation()}),Ot(t,r,n),r.focus(),t.selection.select(r,!0)}(t,e,n)},remove:function(){return function(t,e){if(Gt(t)){for(var n=void 0,r=e.get();n=t.dom.get("mcepastebin");)t.dom.remove(n),t.dom.unbind(n);r&&t.selection.setRng(r)}e.set(null)}(t,e)},getEl:function(){return Gt(t)},getHtml:function(){return function(n){function e(t,e){t.appendChild(e),n.dom.remove(e,!0)}var r,t,o,i,u;for(t=K.grep(It(n).childNodes,function(t){return"mcepastebin"===t.id}),r=t.shift(),K.each(t,function(t){e(r,t)}),o=(i=n.dom.select("div[id=mcepastebin]",r)).length-1;0<=o;o--)u=n.dom.create("div"),r.insertBefore(u,i[o]),e(u,i[o]);return r?r.innerHTML:""}(t)},getLastRng:function(){return function(t){return t.get()}(e)},isDefault:function(){return Xt(t,n)},isDefaultContent:function(t){return Rt(n,t)}}}function jt(n,t){var e=At(n);return n.on("PreInit",function(){return function(u,t,e){var a;Et(u,t,e),u.parser.addNodeFilter("img",function(t,e,n){function r(t){t.attr("data-mce-object")||a===V.transparentSrc||t.remove()}var o;if(!u.settings.paste_data_images&&((o=n).data&&!0===o.data.paste))for(var i=t.length;i--;)(a=t[i].attr("src"))&&(0===a.indexOf("webkit-fake-url")?r(t[i]):u.settings.allow_html_data_urls||0!==a.indexOf("data:")||r(t[i]))})}(n,e,t)}),{pasteFormat:t,pasteHtml:function(t,e){return Pt(n,t,e)},pasteText:function(t){return Tt(n,t)},pasteImageData:function(t,e){return St(n,t,e)},getDataTransferItems:Dt,hasHtmlOrText:kt,hasContentType:Ct}}function Mt(){}function Lt(t,e,n){if(!function(t){return!1===V.iOS&&t!==undefined&&"function"==typeof t.setData&&!0!==lt.isMsEdge()}(t))return!1;try{return t.clearData(),t.setData("text/html",e),t.setData("text/plain",n),t.setData(tt(),e),!0}catch(r){return!1}}function Nt(t,e,n,r){Lt(t.clipboardData,e.html,e.text)?(t.preventDefault(),r()):n(e.html,r)}function Bt(a){return function(t,e){var n=Z(t),r=a.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),o=a.dom.create("div",{contenteditable:"true"},n);a.dom.setStyles(r,{position:"fixed",top:"0",left:"-3000px",width:"1000px",overflow:"hidden"}),r.appendChild(o),a.dom.add(a.getBody(),r);var i=a.selection.getRng();o.focus();var u=a.dom.createRng();u.selectNodeContents(o),a.selection.setRng(u),q.setTimeout(function(){a.selection.setRng(i),r.parentNode.removeChild(r),e()},0)}}function Ht(t){return{html:t.selection.getContent({contextual:!0}),text:t.selection.getContent({format:"text"})}}function $t(t){return!t.selection.isCollapsed()||function(t){return!!t.dom.getParent(t.selection.getStart(),"td[data-mce-selected],th[data-mce-selected]",t.getBody())}(t)}function Wt(t,e){return Zt.getCaretRangeFromPoint(e.clientX,e.clientY,t.getDoc())}function Ut(t,e){t.focus(),t.selection.setRng(e)}var zt={preProcess:function(t,e){return st.shouldUseDefaultFilters(t)?function(r,t){var e,o;(e=st.getRetainStyleProps(r))&&(o=K.makeMap(e.split(/[, ]/))),t=lt.filter(t,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(t,e){return 0<e.length?e.replace(/./," ").slice(Math.floor(e.length/2)).split("").join("\xa0"):""}]]);var n=st.getWordValidElements(r),i=ut({valid_elements:n,valid_children:"-li[p]"});K.each(i.elements,function(t){t.attributes["class"]||(t.attributes["class"]={},t.attributesOrder.push("class")),t.attributes.style||(t.attributes.style={},t.attributesOrder.push("style"))});var u=ot({},i);u.addAttributeFilter("style",function(t){for(var e,n=t.length;n--;)(e=t[n]).attr("style",mt(r,o,e,e.attr("style"))),"span"===e.name&&e.parent&&!e.attributes.length&&e.unwrap()}),u.addAttributeFilter("class",function(t){for(var e,n,r=t.length;r--;)n=(e=t[r]).attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&e.remove(),e.attr("class",null)}),u.addNodeFilter("del",function(t){for(var e=t.length;e--;)t[e].remove()}),u.addNodeFilter("a",function(t){for(var e,n,r,o=t.length;o--;)if(n=(e=t[o]).attr("href"),r=e.attr("name"),n&&-1!==n.indexOf("#_msocom_"))e.remove();else if(n&&0===n.indexOf("file://")&&(n=(n=n.split("#")[1])&&"#"+n),n||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){e.unwrap();continue}e.attr({href:n,name:r})}else e.unwrap()});var a=u.parse(t);return st.shouldConvertWordFakeLists(r)&&dt(a),t=at({validate:r.settings.validate},i).serialize(a)}(t,e):e},isWordContent:function le(t){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(t)||/class="OutlineElement/.test(t)||/id="?docs\-internal\-guid\-/.test(t)}},Vt=function(t,e,n){var r=zt.isWordContent(e),o=r?zt.preProcess(t,e):e;return gt(t,o,n,r)},qt=function(t,e){!1===st.isSmartPasteEnabled(t)?ht(t,e):function(e,n){K.each([bt,wt,ht],function(t){return!0!==t(e,n,ht)})}(t,e)},Kt=lt.createIdGenerator("mceclip"),Gt=function(t){return t.dom.get("mcepastebin")},Xt=function(t,e){var n=Gt(t);return function(t){return t&&"mcepastebin"===t.id}(n)&&Rt(e,n.innerHTML)},Yt=function(t){t.on("cut",function(e){return function(t){$t(e)&&Nt(t,Ht(e),Bt(e),function(){if(V.browser.isChrome()){var t=e.selection.getRng();q.setEditorTimeout(e,function(){e.selection.setRng(t),e.execCommand("Delete")},0)}else e.execCommand("Delete")})}}(t)),t.on("copy",function(e){return function(t){$t(e)&&Nt(t,Ht(e),Bt(e),Mt)}}(t))},Zt=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),Jt=function(i,u,a){st.shouldBlockDrop(i)&&i.on("dragend dragover draggesture dragdrop drop drag",function(t){t.preventDefault(),t.stopPropagation()}),st.shouldPasteDataImages(i)||i.on("drop",function(t){var e=t.dataTransfer;e&&e.files&&0<e.files.length&&t.preventDefault()}),i.on("drop",function(t){var e,n;if(n=Wt(i,t),!t.isDefaultPrevented()&&!a.get()){e=u.getDataTransferItems(t.dataTransfer);var r=u.hasContentType(e,tt());if((u.hasHtmlOrText(e)&&!function(t){var e=t["text/plain"];return!!e&&0===e.indexOf("file://")}(e)||!u.pasteImageData(t,n))&&n&&st.shouldFilterDrop(i)){var o=e["mce-internal"]||e["text/html"]||e["text/plain"];o&&(t.preventDefault(),q.setEditorTimeout(i,function(){i.undoManager.transact(function(){e["mce-internal"]&&i.execCommand("Delete"),Ut(i,n),o=lt.trimHtml(o),e["text/html"]?u.pasteHtml(o,r):u.pasteText(o)})}))}}}),i.on("dragstart",function(t){a.set(!0)}),i.on("dragover dragend",function(t){st.shouldPasteDataImages(i)&&!1===a.get()&&(t.preventDefault(),Ut(i,Wt(i,t))),"dragend"===t.type&&a.set(!1)})},Qt=function(t){var e=t.plugins.paste,n=st.getPreProcess(t);n&&t.on("PastePreProcess",function(t){n.call(e,e,t)});var r=st.getPostProcess(t);r&&t.on("PastePostProcess",function(t){r.call(e,e,t)})};function te(e,n){e.on("PastePreProcess",function(t){t.content=n(e,t.content,t.internal,t.wordContent)})}function ee(t,e){if(!zt.isWordContent(e))return e;var n=[];K.each(t.schema.getBlockElements(),function(t,e){n.push(e)});var r=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+n.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return e=lt.filter(e,[[r,"$1"]]),e=lt.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function ne(t,e,n,r){if(r||n)return e;var c,o=st.getWebkitStyles(t);if(!1===st.shouldRemoveWebKitStyles(t)||"all"===o)return e;if(o&&(c=o.split(/[, ]/)),c){var l=t.dom,f=t.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(t,e,n,r){var o=l.parseStyle(l.decode(n)),i={};if("none"===c)return e+r;for(var u=0;u<c.length;u++){var a=o[c[u]],s=l.getStyle(f,c[u],!0);/color/.test(c[u])&&(a=l.toHex(a),s=l.toHex(s)),s!==a&&(i[c[u]]=a)}return(i=l.serializeStyle(i,"span"))?e+' style="'+i+'"'+r:e+r})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(t,e,n,r){return e+' style="'+n+'"'+r})}function re(n,t){n.$("a",t).find("font,u").each(function(t,e){n.dom.remove(e,!0)})}function oe(n,r){return function(e){e.setActive("text"===r.pasteFormat.get());function t(t){return e.setActive(t.state)}return n.on("PastePlainTextToggle",t),function(){return n.off("PastePlainTextToggle",t)}}}var ie=function(t){V.webkit&&te(t,ne),V.ie&&(te(t,ee),function r(e,n){e.on("PastePostProcess",function(t){n(e,t.node)})}(t,re))},ue=function(t,e){t.ui.registry.addToggleButton("pastetext",{active:!1,icon:"paste-text",tooltip:"Paste as text",onAction:function(){return t.execCommand("mceTogglePlainTextPaste")},onSetup:oe(t,e)}),t.ui.registry.addToggleMenuItem("pastetext",{text:"Paste as text",onAction:function(){return t.execCommand("mceTogglePlainTextPaste")},onSetup:oe(t,e)})};!function fe(){r.add("paste",function(t){if(!1===u(t)){var e=d(!1),n=d(st.isPasteAsTextEnabled(t)?"text":"html"),r=jt(t,n),o=ie(t);return ue(t,r),p(t,r),Qt(t),Yt(t),Jt(t,r,e),a(r,o)}})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=tinymce.util.Tools.resolve("tinymce.util.Tools"),m=function(e){return e.getParam("content_style","")},u=function(e){return e.getParam("content_css_cors",!1,"boolean")},y=tinymce.util.Tools.resolve("tinymce.Env"),n=function(t){var n="",i=t.dom.encode,e=m(t);n+='<base href="'+i(t.documentBaseURI.getURI())+'">',e&&(n+='<style type="text/css">'+e+"</style>");var o=u(t)?' crossorigin="anonymous"':"";l.each(t.contentCSS,function(e){n+='<link type="text/css" rel="stylesheet" href="'+i(t.documentBaseURI.toAbsolute(e))+'"'+o+">"});var r=t.settings.body_id||"tinymce";-1!==r.indexOf("=")&&(r=(r=t.getParam("body_id","","hash"))[t.id]||r);var a=t.settings.body_class||"";-1!==a.indexOf("=")&&(a=(a=t.getParam("body_class","","hash"))[t.id]||"");var c='<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A" && !('+(y.mac?"e.metaKey":"e.ctrlKey && !e.altKey")+")) {e.preventDefault();}}}, false);<\/script> ",s=t.getBody().dir,d=s?' dir="'+i(s)+'"':"";return"<!DOCTYPE html><html><head>"+n+'</head><body id="'+i(r)+'" class="mce-content-body '+i(a)+'"'+d+">"+t.getContent()+c+"</body></html>"},t=function(e){e.addCommand("mcePreview",function(){!function(e){var t=n(e);e.windowManager.open({title:"Preview",size:"large",body:{type:"panel",items:[{name:"preview",type:"iframe",sandboxed:!0}]},buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{preview:t}}).focus("close")}(e)})},i=function(e){e.ui.registry.addButton("preview",{icon:"preview",tooltip:"Preview",onAction:function(){return e.execCommand("mcePreview")}}),e.ui.registry.addMenuItem("preview",{icon:"preview",text:"Preview",onAction:function(){return e.execCommand("mcePreview")}})};!function o(){e.add("preview",function(e){t(e),i(e)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),i=function(n){n.addCommand("mcePrint",function(){t.browser.isIE()?n.getDoc().execCommand("print",!1,null):n.getWin().print()})},e=function(n){n.ui.registry.addButton("print",{icon:"print",tooltip:"Print",onAction:function(){return n.execCommand("mcePrint")}}),n.ui.registry.addMenuItem("print",{text:"Print...",icon:"print",onAction:function(){return n.execCommand("mcePrint")}})};!function o(){n.add("print",function(n){i(n),e(n),n.addShortcut("Meta+P","","mcePrint")})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(u){"use strict";function e(){}function l(e){return function(){return e}}function n(){return p}var r,t=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=0,o=function(e,n,r){e.plugins.table?e.plugins.table.insertTable(n,r):function(r,t,o){r.undoManager.transact(function(){var e,n;r.insertContent(function(e,n){var r,t,o;for(o='<table data-mce-id="mce" style="width: 100%">',o+="<tbody>",t=0;t<n;t++){for(o+="<tr>",r=0;r<e;r++)o+="<td><br></td>";o+="</tr>"}return o+="</tbody>",o+="</table>"}(t,o)),(e=function(e){return e.dom.select("*[data-mce-id]")[0]}(r)).removeAttribute("data-mce-id"),n=r.dom.select("td,th",e),r.selection.setCursorLocation(n[0],0)})}(e,n,r)},c=function(e,n,r){var t,o;o=(t=e.editorUpload.blobCache).create(function(e){var n=(new Date).getTime();return e+"_"+Math.floor(1e9*Math.random())+ ++i+String(n)}("mceu"),r,n),t.add(o),e.insertContent(e.dom.createHTML("img",{src:o.blobUri()}))},s=tinymce.util.Tools.resolve("tinymce.util.Promise"),a=function(r){return new s(function(e){var n=new u.FileReader;n.onloadend=function(){e(n.result.split(",")[1])},n.readAsDataURL(r)})},f=tinymce.util.Tools.resolve("tinymce.Env"),d=tinymce.util.Tools.resolve("tinymce.util.Delay"),m=function(i){return new s(function(r){var t=u.document.createElement("input");t.type="file",t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.opacity="0.001",u.document.body.appendChild(t);t.addEventListener("change",function(e){r(Array.prototype.slice.call(e.target.files))});var o=function(e){function n(){r([]),t.parentNode.removeChild(t)}f.os.isAndroid()&&"remove"!==e.type?d.setEditorTimeout(i,n,0):n(),i.off("focusin remove",o)};i.on("focusin remove",o),t.click()})},g=function(r){r.ui.registry.addButton("quickimage",{icon:"image",tooltip:"Insert image",onAction:function(){m(r).then(function(e){if(0<e.length){var n=e[0];a(n).then(function(e){c(r,e,n)})}})}}),r.ui.registry.addButton("quicktable",{icon:"table",tooltip:"Insert table",onAction:function(){o(r,2,2)}})},v=l(!1),h=l(!0),p=(r={fold:function(e,n){return e()},is:v,isSome:v,isNone:h,getOr:b,getOrThunk:O,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:l(null),getOrUndefined:l(undefined),or:b,orThunk:O,map:n,each:e,bind:n,exists:v,forall:h,filter:n,equals:N,equals_:N,toArray:function(){return[]},toString:l("none()")},Object.freeze&&Object.freeze(r),r);function N(e){return e.isNone()}function O(e){return e()}function b(e){return e}function E(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===n}}var w=function(r){function e(){return o}function n(e){return e(r)}var t=l(r),o={fold:function(e,n){return n(r)},is:function(e){return r===e},isSome:h,isNone:v,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:e,orThunk:e,map:function(e){return w(e(r))},each:function(e){e(r)},bind:n,exists:n,forall:n,filter:function(e){return e(r)?o:p},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(e){return e.is(r)},equals_:function(e,n){return e.fold(v,function(e){return n(r,e)})}};return o},T={some:w,none:n,from:function(e){return null===e||e===undefined?p:w(e)}},y=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:l(e)}},S={fromHtml:function(e,n){var r=(n||u.document).createElement("div");if(r.innerHTML=e,!r.hasChildNodes()||1<r.childNodes.length)throw u.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return y(r.childNodes[0])},fromTag:function(e,n){var r=(n||u.document).createElement(e);return y(r)},fromText:function(e,n){var r=(n||u.document).createTextNode(e);return y(r)},fromDom:y,fromPoint:function(e,n,r){var t=e.dom();return T.from(t.elementFromPoint(n,r)).map(y)}},x=(u.Node.ATTRIBUTE_NODE,u.Node.CDATA_SECTION_NODE,u.Node.COMMENT_NODE,u.Node.DOCUMENT_NODE,u.Node.DOCUMENT_TYPE_NODE,u.Node.DOCUMENT_FRAGMENT_NODE,u.Node.ELEMENT_NODE),D=(u.Node.TEXT_NODE,u.Node.PROCESSING_INSTRUCTION_NODE,u.Node.ENTITY_REFERENCE_NODE,u.Node.ENTITY_NODE,u.Node.NOTATION_NODE,"undefined"!=typeof u.window?u.window:Function("return this;")(),E("string")),k=E("object"),_=E("array"),C=E("boolean"),A=E("undefined"),M=E("function"),R=Array.prototype.slice;M(Array.from)&&Array.from;function I(e,n,r,t,o){return e(r,t)?T.some(r):M(o)&&o(r)?T.none():n(r,t,o)}function q(e,n,r){return 0!=(e.compareDocumentPosition(n)&r)}function L(e,n){var r=function(e,n){for(var r=0;r<e.length;r++){var t=e[r];if(t.test(n))return t}return undefined}(e,n);if(!r)return{major:0,minor:0};function t(e){return Number(n.replace(r,"$"+e))}return V(t(1),t(2))}function P(e,n){return function(){return n===e}}function F(e,n){return function(){return n===e}}function U(e,n){var r=String(n).toLowerCase();return function(e,n){for(var r=0,t=e.length;r<t;r++){var o=e[r];if(n(o,r))return T.some(o)}return T.none()}(e,function(e){return e.search(r)})}function B(e,n){return-1!==e.indexOf(n)}function j(n){return function(e){return B(e,n)}}function H(e,n){var r=e.dom();if(r.nodeType!==me)return!1;var t=r;if(t.matches!==undefined)return t.matches(n);if(t.msMatchesSelector!==undefined)return t.msMatchesSelector(n);if(t.webkitMatchesSelector!==undefined)return t.webkitMatchesSelector(n);if(t.mozMatchesSelector!==undefined)return t.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")}function X(e,n,r){for(var t=e.dom(),o=M(r)?r:l(!1);t.parentNode;){t=t.parentNode;var i=S.fromDom(t);if(n(i))return T.some(i);if(o(i))break}return T.none()}function z(e,n,r){return X(e,function(e){return H(e,n)},r)}var G,W=function(e,n){return q(e,n,u.Node.DOCUMENT_POSITION_CONTAINED_BY)},Y=function(e){function n(){return r}var r=e;return{get:n,set:function(e){r=e},clone:function(){return Y(n())}}},$=function(){return V(0,0)},V=function(e,n){return{major:e,minor:n}},J={nu:V,detect:function(e,n){var r=String(n).toLowerCase();return 0===e.length?$():L(e,r)},unknown:$},K="Firefox",Q=function(e){var n=e.current;return{current:n,version:e.version,isEdge:P("Edge",n),isChrome:P("Chrome",n),isIE:P("IE",n),isOpera:P("Opera",n),isFirefox:P(K,n),isSafari:P("Safari",n)}},Z={unknown:function(){return Q({current:undefined,version:J.unknown()})},nu:Q,edge:l("Edge"),chrome:l("Chrome"),ie:l("IE"),opera:l("Opera"),firefox:l(K),safari:l("Safari")},ee="Windows",ne="Android",re="Solaris",te="FreeBSD",oe=function(e){var n=e.current;return{current:n,version:e.version,isWindows:F(ee,n),isiOS:F("iOS",n),isAndroid:F(ne,n),isOSX:F("OSX",n),isLinux:F("Linux",n),isSolaris:F(re,n),isFreeBSD:F(te,n)}},ie={unknown:function(){return oe({current:undefined,version:J.unknown()})},nu:oe,windows:l(ee),ios:l("iOS"),android:l(ne),linux:l("Linux"),osx:l("OSX"),solaris:l(re),freebsd:l(te)},ue=function(e,r){return U(e,r).map(function(e){var n=J.detect(e.versionRegexes,r);return{current:e.name,version:n}})},ce=function(e,r){return U(e,r).map(function(e){var n=J.detect(e.versionRegexes,r);return{current:e.name,version:n}})},se=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,ae=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return B(e,"edge/")&&B(e,"chrome")&&B(e,"safari")&&B(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,se],search:function(e){return B(e,"chrome")&&!B(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return B(e,"msie")||B(e,"trident")}},{name:"Opera",versionRegexes:[se,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:j("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:j("firefox")},{name:"Safari",versionRegexes:[se,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(B(e,"safari")||B(e,"mobile/"))&&B(e,"applewebkit")}}],fe=[{name:"Windows",search:j("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return B(e,"iphone")||B(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:j("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:j("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:j("linux"),versionRegexes:[]},{name:"Solaris",search:j("sunos"),versionRegexes:[]},{name:"FreeBSD",search:j("freebsd"),versionRegexes:[]}],de={browsers:l(ae),oses:l(fe)},le=Y(function(e,n){var r=de.browsers(),t=de.oses(),o=ue(r,e).fold(Z.unknown,Z.nu),i=ce(t,e).fold(ie.unknown,ie.nu);return{browser:o,os:i,deviceType:function(e,n,r,t){var o=e.isiOS()&&!0===/ipad/i.test(r),i=e.isiOS()&&!o,u=e.isiOS()||e.isAndroid(),c=u||t("(pointer:coarse)"),s=o||!i&&u&&t("(min-device-width:768px)"),a=i||u&&!s,f=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(r),d=!a&&!s&&!f;return{isiPad:l(o),isiPhone:l(i),isTablet:l(s),isPhone:l(a),isTouch:l(c),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:l(f),isDesktop:l(d)}}(i,o,e,n)}}(u.navigator.userAgent,function(e){return u.window.matchMedia(e).matches})),me=x,ge=(le.get().browser.isIE(),{getToolbarItemsOr:(G=D,function(e,n,r){return function(e,n){if(!n(e))throw new Error("Default value doesn't match requested type.")}(r,G),function(e,n){if(_(e)||k(e))throw new Error("expected a string but found: "+e);return A(e)?n:C(e)?!1===e?"":n:e}(e.getParam(n,r),r)})}),ve=function(e){return ge.getToolbarItemsOr(e,"quickbars_selection_toolbar","bold italic | quicklink h2 h3 blockquote")},he=function(e){return ge.getToolbarItemsOr(e,"quickbars_insert_toolbar","quickimage quicktable")},pe=function(o){var e=he(o);0<e.trim().length&&o.ui.registry.addContextToolbar("quickblock",{predicate:function(e){function n(e){return e.dom()===o.getBody()}var r=S.fromDom(e),t=o.schema.getTextBlockElements();return function(e,n,r){return I(H,z,e,n,r)}(r,"table",n).fold(function(){return function(e,n,r){return I(function(e,n){return n(e)},X,e,n,r)}(r,function(e){return function(e){return e.dom().nodeName.toLowerCase()}(e)in t&&o.dom.isEmpty(e.dom())},n).isSome()},function(){return!1})},items:e,position:"line",scope:"editor"})},Ne=function(n){n.ui.registry.addContextToolbar("imageselection",{predicate:function(e){return"IMG"===e.nodeName||"FIGURE"===e.nodeName&&/image/i.test(e.className)},items:"alignleft aligncenter alignright",position:"node"});var e=ve(n);0<e.trim().length&&n.ui.registry.addContextToolbar("textselection",{predicate:function(e){return!n.selection.isCollapsed()},items:e,position:"selection"})};!function Oe(){t.add("quickbars",function(e){g(e),pe(e),Ne(e)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function t(n,e){n.notificationManager.open({text:e,type:"error"})}function e(t){return function(n){function e(){n.setDisabled(a(t)&&!t.isDirty())}return t.on("NodeChange dirty",e),function(){return t.off("NodeChange dirty",e)}}}var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=function(n){return n.getParam("save_enablewhendirty",!0)},c=function(n){return!!n.getParam("save_onsavecallback")},r=function(n){return!!n.getParam("save_oncancelcallback")},u=function(n){var e;if(e=o.DOM.getParent(n.id,"form"),!a(n)||n.isDirty()){if(n.save(),c(n))return n.execCallback("save_onsavecallback",n),void n.nodeChanged();e?(n.setDirty(!1),e.onsubmit&&!e.onsubmit()||("function"==typeof e.submit?e.submit():t(n,"Error: Form submit field collision.")),n.nodeChanged()):t(n,"Error: No form element found.")}},l=function(n){var e=i.trim(n.startContent);r(n)?n.execCallback("save_oncancelcallback",n):n.resetContent(e)},s=function(n){n.addCommand("mceSave",function(){u(n)}),n.addCommand("mceCancel",function(){l(n)})},d=function(n){n.ui.registry.addButton("save",{icon:"save",tooltip:"Save",disabled:!0,onAction:function(){return n.execCommand("mceSave")},onSetup:e(n)}),n.ui.registry.addButton("cancel",{icon:"cancel",tooltip:"Cancel",disabled:!0,onAction:function(){return n.execCommand("mceCancel")},onSetup:e(n)}),n.addShortcut("Meta+S","","mceSave")};!function m(){n.add("save",function(n){d(n),s(n)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";var s=function(e){function n(){return t}var t=e;return{get:n,set:function(e){t=e},clone:function(){return s(n())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),p=function(){return(p=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e}).apply(this,arguments)},g=tinymce.util.Tools.resolve("tinymce.util.Tools");function x(e){return e&&1===e.nodeType&&"false"===e.contentEditable}function h(e){var n=e.getAttribute("data-mce-index");return"number"==typeof n?""+n:n}function v(e){var n=e.parentNode;e.firstChild&&n.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function c(e,n){var t,r=[];if((t=g.toArray(e.getBody().getElementsByTagName("span"))).length)for(var o=0;o<t.length;o++){var i=h(t[o]);null!==i&&i.length&&i===n.toString()&&r.push(t[o])}return r}function u(e,n,t){var r=n.get(),o=r.index,i=e.dom;(t=!1!==t)?o+1===r.count?o=0:o++:o-1==-1?o=r.count-1:o--,i.removeClass(c(e,r.index),"mce-match-marker-selected");var a=c(e,o);return a.length?(i.addClass(c(e,o),"mce-match-marker-selected"),e.selection.scrollIntoView(a[0]),o):-1}function y(e,n){var t=n.parentNode;e.remove(n),e.isEmpty(t)&&e.remove(t)}function f(e,n,t,r,o){t=(t=t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")).replace(/\s/g,"[^\\S\\r\\n]"),t=o?"\\b"+t+"\\b":t;var i=function(e,n,t){var r,o;return(o=e.dom.create("span",{"data-mce-bogus":1})).className="mce-match-marker",r=e.getBody(),C(e,n,!1),d.findAndReplaceDOMText(t,r,o,!1,e.schema)}(e,n,new RegExp(t,r?"g":"gi"));if(i){var a=u(e,n,!0);n.set({index:a,count:i,text:t,matchCase:r,wholeWord:o})}return i}function b(e,n){var t=u(e,n,!0);n.set(p(p({},n.get()),{index:t}))}function N(e,n){var t=u(e,n,!1);n.set(p(p({},n.get()),{index:t}))}function w(e){var n=h(e);return null!==n&&0<n.length}function m(e,n,t,r,o){var i,a,c,u,d,l=n.get(),s=l.index,f=s;for(r=!1!==r,c=e.getBody(),a=g.grep(g.toArray(c.getElementsByTagName("span")),w),i=0;i<a.length;i++){var m=h(a[i]);if(u=d=parseInt(m,10),o||u===l.index){for(t.length?(a[i].firstChild.nodeValue=t,v(a[i])):y(e.dom,a[i]);a[++i];){if((u=parseInt(h(a[i]),10))!==d){i--;break}y(e.dom,a[i])}r&&f--}else s<d&&a[i].setAttribute("data-mce-index",String(d-1))}return n.set(p(p({},l),{count:o?0:l.count-1,index:f})),r?b(e,n):N(e,n),!o&&0<n.get().count}function n(){}function i(e){return function(){return e}}function t(){return T}var r,d={findAndReplaceDOMText:function z(e,n,t,r,o){var i,a,h,f,m,p,c=[],u=0;function d(e,n){if(n=n||0,!e[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");var t=e.index;if(0<n){var r=e[n];if(!r)throw new Error("Invalid capture group");t+=e[0].indexOf(r),e[0]=r}return[t,t+e[0].length,[e[0]]]}if(h=n.ownerDocument,f=o.getBlockElements(),m=o.getWhiteSpaceElements(),p=o.getShortEndedElements(),a=function l(e){var n;if(3===e.nodeType)return e.data;if(m[e.nodeName]&&!f[e.nodeName])return"";if(n="",x(e))return"\n";if((f[e.nodeName]||p[e.nodeName])&&(n+="\n"),e=e.firstChild)for(;n+=l(e),e=e.nextSibling;);return n}(n)){if(e.global)for(;i=e.exec(a);)c.push(d(i,r));else i=a.match(e),c.push(d(i,r));return c.length&&(u=c.length,function g(e,n,t){var r,o,i,a,c=[],u=0,d=e,l=n.shift(),s=0;e:for(;;){if((f[d.nodeName]||p[d.nodeName]||x(d))&&u++,3===d.nodeType&&(!o&&d.length+u>=l[1]?(o=d,a=l[1]-u):r&&c.push(d),!r&&d.length+u>l[0]&&(r=d,i=l[0]-u),u+=d.length),r&&o){if(d=t({startNode:r,startNodeIndex:i,endNode:o,endNodeIndex:a,innerNodes:c,match:l[2],matchIndex:s}),u-=o.length-a,o=r=null,c=[],s++,!(l=n.shift()))break}else if(m[d.nodeName]&&!f[d.nodeName]||!d.firstChild){if(d.nextSibling){d=d.nextSibling;continue}}else if(!x(d)){d=d.firstChild;continue}for(;;){if(d.nextSibling){d=d.nextSibling;break}if(d.parentNode===e)break e;d=d.parentNode}}}(n,c,function s(e){var g;if("function"!=typeof e){var r=e.nodeType?e:h.createElement(e);g=function(e,n){var t=r.cloneNode(!1);return t.setAttribute("data-mce-index",n),e&&t.appendChild(h.createTextNode(e)),t}}else g=e;return function(e){var n,t,r,o=e.startNode,i=e.endNode,a=e.matchIndex;if(o===i){var c=o;r=c.parentNode,0<e.startNodeIndex&&(n=h.createTextNode(c.data.substring(0,e.startNodeIndex)),r.insertBefore(n,c));var u=g(e.match[0],a);return r.insertBefore(u,c),e.endNodeIndex<c.length&&(t=h.createTextNode(c.data.substring(e.endNodeIndex)),r.insertBefore(t,c)),c.parentNode.removeChild(c),u}n=h.createTextNode(o.data.substring(0,e.startNodeIndex)),t=h.createTextNode(i.data.substring(e.endNodeIndex));for(var d=g(o.data.substring(e.startNodeIndex),a),l=0,s=e.innerNodes.length;l<s;++l){var f=e.innerNodes[l],m=g(f.data,a);f.parentNode.replaceChild(m,f)}var p=g(i.data.substring(0,e.endNodeIndex),a);return(r=o.parentNode).insertBefore(n,o),r.insertBefore(d,o),r.removeChild(o),(r=i.parentNode).insertBefore(p,i),r.insertBefore(t,i),r.removeChild(i),p}}(t))),u}}},C=function(e,n,t){var r,o,i,a,c=n.get();for(o=g.toArray(e.getBody().getElementsByTagName("span")),r=0;r<o.length;r++){var u=h(o[r]);null!==u&&u.length&&(u===c.index.toString()&&(i=i||o[r].firstChild,a=o[r].firstChild),v(o[r]))}if(n.set(p(p({},c),{index:-1,count:0,text:""})),i&&a){var d=e.dom.createRng();return d.setStart(i,0),d.setEnd(a,a.data.length),!1!==t&&e.selection.setRng(d),d}},o=function(r,o){return{done:function(e){return C(r,o,e)},find:function(e,n,t){return f(r,o,e,n,t)},next:function(){return b(r,o)},prev:function(){return N(r,o)},replace:function(e,n,t){return m(r,o,e,n,t)}}},a=i(!1),l=i(!0),T=(r={fold:function(e,n){return e()},is:a,isSome:a,isNone:l,getOr:A,getOrThunk:O,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:A,orThunk:O,map:t,each:n,bind:t,exists:a,forall:l,filter:t,equals:S,equals_:S,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(r),r);function S(e){return e.isNone()}function O(e){return e()}function A(e){return e}function B(e,n){return function(){F(e,n)}}var I,k=function(t){function e(){return o}function n(e){return e(t)}var r=i(t),o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:l,isNone:a,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:e,orThunk:e,map:function(e){return k(e(t))},each:function(e){e(t)},bind:n,exists:n,forall:n,filter:function(e){return e(t)?o:T},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(a,function(e){return n(t,e)})}};return o},E={some:k,none:t,from:function(e){return null===e||e===undefined?T:k(e)}},M=(I="function",function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===I}),R=Array.prototype.slice,D=(M(Array.from)&&Array.from,tinymce.util.Tools.resolve("tinymce.Env")),F=function(i,a){var e=function(){var n=s(E.none());return{clear:function(){n.set(E.none())},set:function(e){n.set(E.some(e))},isSet:function(){return n.get().isSome()},on:function(e){n.get().each(e)}}}();i.undoManager.add();var n=g.trim(i.selection.getContent({format:"text"}));function c(e){(function(e,n){return 1<n.get().count}(0,a)?e.enable:e.disable)("next"),(function(e,n){return 1<n.get().count}(0,a)?e.enable:e.disable)("prev")}function u(e,n){!function(e,n){for(var t=0,r=e.length;t<r;t++){n(e[t],t)}}(["replace","replaceall","prev","next"],n?e.disable:e.enable)}function r(e,n){D.browser.isSafari()&&D.deviceType.isTouch()&&("find"===n||"replace"===n||"replaceall"===n)&&e.focus(n)}function d(e){C(i,a,!1),u(e,!0),c(e)}function o(e){var n=e.getData(),t=a.get();if(n.findtext.length){if(t.text===n.findtext&&t.matchCase===n.matchcase&&t.wholeWord===n.wholewords)b(i,a);else{var r=f(i,a,n.findtext,n.matchcase,n.wholewords);r<=0&&!function o(e){i.windowManager.alert("Could not find the specified string.",function(){e.focus("findtext")})}(e),u(e,0===r)}c(e)}else d(e)}var t=a.get(),l={title:"Find and Replace",size:"normal",body:{type:"panel",items:[{type:"bar",items:[{type:"input",name:"findtext",placeholder:"Find",maximized:!0,inputMode:"search"},{type:"button",name:"prev",text:"Previous",icon:"action-prev",disabled:!0,borderless:!0},{type:"button",name:"next",text:"Next",icon:"action-next",disabled:!0,borderless:!0}]},{type:"input",name:"replacetext",placeholder:"Replace with",inputMode:"search"}]},buttons:[{type:"menu",name:"options",icon:"preferences",tooltip:"Preferences",align:"start",items:[{type:"togglemenuitem",name:"matchcase",text:"Match case"},{type:"togglemenuitem",name:"wholewords",text:"Find whole words only"}]},{type:"custom",name:"find",text:"Find",primary:!0},{type:"custom",name:"replace",text:"Replace",disabled:!0},{type:"custom",name:"replaceall",text:"Replace All",disabled:!0}],initialData:{findtext:n,replacetext:"",wholewords:t.wholeWord,matchcase:t.matchCase},onChange:function(e,n){"findtext"===n.name&&0<a.get().count&&d(e)},onAction:function(e,n){var t=e.getData();switch(n.name){case"find":o(e);break;case"replace":m(i,a,t.replacetext)?c(e):d(e);break;case"replaceall":m(i,a,t.replacetext,!0,!0),d(e);break;case"prev":N(i,a),c(e);break;case"next":b(i,a),c(e)}r(e,n.name)},onSubmit:function(e){o(e),r(e,"find")},onClose:function(){i.focus(),C(i,a),i.undoManager.add()}};e.set(i.windowManager.open(l,{inline:"toolbar"}))},j=function(e,n){e.addCommand("SearchReplace",function(){F(e,n)})},P=function(e,n){e.ui.registry.addMenuItem("searchreplace",{text:"Find and replace...",shortcut:"Meta+F",onAction:B(e,n),icon:"search"}),e.ui.registry.addButton("searchreplace",{tooltip:"Find and replace",onAction:B(e,n),icon:"search"}),e.shortcuts.add("Meta+F","",B(e,n))};!function W(){e.add("searchreplace",function(e){var n=s({index:-1,count:0,text:"",matchCase:!1,wholeWord:!1});return j(e,n),P(e,n),o(e,n)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(t){"use strict";var a=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return a(t())}}},n=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=function(e){return!(!/(^|[ ,])tinymcespellchecker([, ]|$)/.test(e.settings.plugins)||!n.get("tinymcespellchecker"))&&("undefined"!=typeof t.window.console&&t.window.console.log&&t.window.console.log("Spell Checker Pro is incompatible with Spell Checker plugin! Remove 'spellchecker' from the 'plugins' option."),!0)},l=tinymce.util.Tools.resolve("tinymce.util.Tools"),u=tinymce.util.Tools.resolve("tinymce.util.URI"),d=tinymce.util.Tools.resolve("tinymce.util.XHR"),f=function(e){return e.fire("SpellcheckStart")},o=function(e){return e.fire("SpellcheckEnd")},g=function(e){return e.getParam("spellchecker_languages","English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv")},s=function(e){var t=e.getParam("language","en");return e.getParam("spellchecker_language",t)},h=function(e){return e.getParam("spellchecker_rpc_url")},p=function(e){return e.getParam("spellchecker_callback")},m=function(e){var t=new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e\xa0\u2002\u2003\u2009]+',"g");return e.getParam("spellchecker_wordchar_pattern",t)};function b(e){return e&&1===e.nodeType&&"false"===e.contentEditable}function r(a,r){var n,o,g,h,p,i=[],v=r.dom;function c(e,t){if(!e[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return{start:e.index,end:e.index+e[0].length,text:e[0],data:t}}function s(e){var t=a.getElementsByTagName("*"),n=[];e="number"==typeof e?""+e:null;for(var r=0;r<t.length;r++){var o=t[r],i=o.getAttribute("data-mce-index");null!==i&&i.length&&-1!==o.className.indexOf("mce-spellchecker-word")&&(i!==e&&null!==e||n.push(o))}return n}function u(e){for(var t=i.length;t--;)if(i[t]===e)return t;return-1}function e(e){for(var t=0,n=i.length;t<n&&!1!==e(i[t],t);t++);return this}function t(e){var t,n,r=s(e?u(e):null);for(t=r.length;t--;)(n=r[t]).parentNode.insertBefore(n.firstChild,n),n.parentNode.removeChild(n);return this}function l(e){var t=s(u(e)),n=r.dom.createRng();return n.setStartBefore(t[0]),n.setEndAfter(t[t.length-1]),n}return g=r.schema.getBlockElements(),h=r.schema.getWhiteSpaceElements(),p=r.schema.getShortEndedElements(),{text:o=function d(e){var t;if(3===e.nodeType)return e.data;if(h[e.nodeName]&&!g[e.nodeName])return"";if(b(e))return"\n";if(t="",(g[e.nodeName]||p[e.nodeName])&&(t+="\n"),e=e.firstChild)for(;t+=d(e),e=e.nextSibling;);return t}(a),matches:i,each:e,filter:function f(n){var r=[];return e(function(e,t){n(e,t)&&r.push(e)}),i=r,this},reset:function m(){return i.splice(0,i.length),t(),this},matchFromElement:function x(e){return i[e.getAttribute("data-mce-index")]},elementFromMatch:function k(e){return s(u(e))[0]},find:function N(e,t){if(o&&e.global)for(;n=e.exec(o);)i.push(c(n,t));return this},add:function y(e,t,n){return i.push({start:e,end:e+t,text:o.substr(e,t),data:n}),this},wrap:function S(e){return i.length&&function f(e,t,n){var r,o,i,a,c,s=[],u=0,l=e,d=0;(t=t.slice(0)).sort(function(e,t){return e.start-t.start}),c=t.shift();e:for(;;){if((g[l.nodeName]||p[l.nodeName]||b(l))&&u++,3===l.nodeType&&(!o&&l.length+u>=c.end?(o=l,a=c.end-u):r&&s.push(l),!r&&l.length+u>c.start&&(r=l,i=c.start-u),u+=l.length),r&&o){if(l=n({startNode:r,startNodeIndex:i,endNode:o,endNodeIndex:a,innerNodes:s,match:c.text,matchIndex:d}),u-=o.length-a,o=r=null,s=[],d++,!(c=t.shift()))break}else if(h[l.nodeName]&&!g[l.nodeName]||!l.firstChild){if(l.nextSibling){l=l.nextSibling;continue}}else if(!b(l)){l=l.firstChild;continue}for(;;){if(l.nextSibling){l=l.nextSibling;break}if(l.parentNode===e)break e;l=l.parentNode}}}(a,i,function t(o){function m(e,t){var n=i[t];n.stencil||(n.stencil=o(n));var r=n.stencil.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(v.doc.createTextNode(e)),r}return function(e){var t,n,r,o=e.startNode,i=e.endNode,a=e.matchIndex,c=v.doc;if(o===i){var s=o;r=s.parentNode,0<e.startNodeIndex&&(t=c.createTextNode(s.data.substring(0,e.startNodeIndex)),r.insertBefore(t,s));var u=m(e.match,a);return r.insertBefore(u,s),e.endNodeIndex<s.length&&(n=c.createTextNode(s.data.substring(e.endNodeIndex)),r.insertBefore(n,s)),s.parentNode.removeChild(s),u}t=c.createTextNode(o.data.substring(0,e.startNodeIndex)),n=c.createTextNode(i.data.substring(e.endNodeIndex));for(var l=m(o.data.substring(e.startNodeIndex),a),d=0,f=e.innerNodes.length;d<f;++d){var g=e.innerNodes[d],h=m(g.data,a);g.parentNode.replaceChild(h,g)}var p=m(i.data.substring(0,e.endNodeIndex),a);return(r=o.parentNode).insertBefore(t,o),r.insertBefore(l,o),r.removeChild(o),(r=i.parentNode).insertBefore(p,i),r.insertBefore(n,i),r.removeChild(i),p}}(e)),this},unwrap:t,replace:function w(e,t){var n=l(e);return n.deleteContents(),0<t.length&&n.insertNode(r.dom.doc.createTextNode(t)),n},rangeFromMatch:l,indexOf:u}}function v(e,t){if(!t.get()){var n=r(e.getBody(),e);t.set(n)}return t.get()}function x(e,t,n,r,o,i,a){var c=p(e);(c||function(a,c,s){return function(e,t,r,o){var n={method:e,lang:s.get()},i="";n["addToDictionary"===e?"word":"text"]=t,l.each(n,function(e,t){i&&(i+="&"),i+=t+"="+encodeURIComponent(e)}),d.send({url:new u(c).toAbsolute(h(a)),type:"post",content_type:"application/x-www-form-urlencoded",data:i,success:function(e){var t=JSON.parse(e);if(t)t.error?o(t.error):r(t);else{var n=a.translate("Server response wasn't proper JSON.");o(n)}},error:function(){var e=a.translate("The spelling service was not found: (")+h(a)+a.translate(")");o(e)}})}}(e,t,n)).call(e.plugins.spellchecker,r,o,i,a)}function k(e,t,n){e.dom.select("span.mce-spellchecker-word").length||y(e,t,n)}function N(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}var y=function(e,t,n){var r=e.selection.getBookmark();if(v(e,n).reset(),e.selection.moveToBookmark(r),n.set(null),t.get())return t.set(!1),o(e),!0},S=function(t,e,n,r,o){var i=!!o.dictionary,a=o.words;if(t.setProgressState(!1),function(e){for(var t in e)return!1;return!0}(a)){var c=t.translate("No misspellings found.");return t.notificationManager.open({text:c,type:"info"}),void e.set(!1)}r.set({suggestions:a,hasDictionarySupport:i});var s=t.selection.getBookmark();v(t,n).find(m(t)).filter(function(e){return!!a[e.text]}).wrap(function(e){return t.dom.create("span",{"class":"mce-spellchecker-word","aria-invalid":"spelling","data-mce-bogus":1,"data-mce-word":e.text})}),t.selection.moveToBookmark(s),e.set(!0),f(t)},w={spellcheck:function(t,e,n,r,o,i){if(!y(t,n,r)){t.setProgressState(!0),x(t,e,i,"spellcheck",v(t,r).text,function(e){S(t,n,r,o,e)},function(e){t.notificationManager.open({text:e,type:"error"}),t.setProgressState(!1),y(t,n,r)}),t.focus()}},checkIfFinished:k,addToDictionary:function(t,e,n,r,o,i,a){t.setProgressState(!0),x(t,e,o,"addToDictionary",i,function(){t.setProgressState(!1),t.dom.remove(a,!0),k(t,n,r)},function(e){t.notificationManager.open({text:e,type:"error"}),t.setProgressState(!1)})},ignoreWord:function(t,e,n,r,o,i){t.selection.collapse(),i?l.each(t.dom.select("span.mce-spellchecker-word"),function(e){e.getAttribute("data-mce-word")===r&&t.dom.remove(e,!0)}):t.dom.remove(o,!0),k(t,e,n)},findSpansByIndex:function(e,t){var n,r=[];if((n=l.toArray(e.getBody().getElementsByTagName("span"))).length)for(var o=0;o<n.length;o++){var i=N(n[o]);null!==i&&i.length&&i===t.toString()&&r.push(n[o])}return r},getElmIndex:N,markErrors:S},T=function(t,n,r,o,e,i){return{getTextMatcher:function(){return o.get()},getWordCharPattern:function(){return m(t)},markErrors:function(e){w.markErrors(t,n,o,r,e)},getLanguage:function(){return e.get()}}},I=function(e,t,n,r,o,i){e.addCommand("mceSpellCheck",function(){w.spellcheck(e,t,n,r,o,i)})},B=function(){return(B=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},A="SpellcheckStart SpellcheckEnd",E=function(n,e,r,t,o,i){function a(){w.spellcheck(n,e,r,t,i,o)}var c=function(e,t){var n=[];return l.each(t,function(e){n.push({selectable:!0,text:e.name,data:e.value})}),n}(0,function(e){return l.map(g(e).split(","),function(e){return{name:(e=e.split("="))[0],value:e[1]}})}(n)),s={tooltip:"Spellcheck",onAction:a,icon:"spell-check",onSetup:function(e){function t(){e.setActive(r.get())}return n.on(A,t),function(){n.off(A,t)}}},u=B(B({},s),{type:"splitbutton",select:function(e){return e===o.get()},fetch:function(e){e(l.map(c,function(e){return{type:"choiceitem",value:e.data,text:e.text}}))},onItemAction:function(e,t){o.set(t)}});1<c.length?n.ui.registry.addSplitButton("spellchecker",u):n.ui.registry.addToggleButton("spellchecker",s),n.ui.registry.addToggleMenuItem("spellchecker",{text:"Spellcheck",onSetup:function(e){e.setActive(r.get());function t(){e.setActive(r.get())}return n.on(A,t),function(){n.off(A,t)}},onAction:a})},C=function(o,i,a,c,s,u){o.ui.registry.addContextMenu("spellchecker",{update:function(e){var t=e;if("mce-spellchecker-word"!==t.className)return[];var n=w.findSpansByIndex(o,w.getElmIndex(t));if(0<n.length){var r=o.dom.createRng();return r.setStartBefore(n[0]),r.setEndAfter(n[n.length-1]),o.selection.setRng(r),function(t,e,n,r,o,i,a,c){var s=[],u=n.get().suggestions[a];return l.each(u,function(e){s.push({text:e,onAction:function(){t.insertContent(t.dom.encode(e)),t.dom.remove(c),w.checkIfFinished(t,r,o)}})}),n.get().hasDictionarySupport&&(s.push({type:"separator"}),s.push({text:"Add to dictionary",onAction:function(){w.addToDictionary(t,e,r,o,i,a,c)}})),s.push.apply(s,[{type:"separator"},{text:"Ignore",onAction:function(){w.ignoreWord(t,r,o,a,c)}},{text:"Ignore all",onAction:function(){w.ignoreWord(t,r,o,a,c,!0)}}]),s}(o,i,a,c,s,u,t.getAttribute("data-mce-word"),n)}}})};!function e(){n.add("spellchecker",function(e,t){if(!1===c(e)){var n=a(!1),r=a(s(e)),o=a(null),i=a(null);return E(e,t,n,o,r,i),C(e,t,i,n,o,r),I(e,t,n,o,i,r),T(e,n,i,o,r,t)}})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(c){"use strict";function t(e){e.keyCode!==d.TAB||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),s=tinymce.util.Tools.resolve("tinymce.EditorManager"),a=tinymce.util.Tools.resolve("tinymce.Env"),y=tinymce.util.Tools.resolve("tinymce.util.Delay"),f=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=tinymce.util.Tools.resolve("tinymce.util.VK"),m=function(e){return e.getParam("tab_focus",function(e){return e.getParam("tabfocus_elements",":prev,:next")}(e))},v=n.DOM,i=function(r){function e(n){var i,o,e,l;if(!(n.keyCode!==d.TAB||n.ctrlKey||n.altKey||n.metaKey||n.isDefaultPrevented())&&(1===(e=f.explode(m(r))).length&&(e[1]=e[0],e[0]=":prev"),o=n.shiftKey?":prev"===e[0]?u(-1):v.get(e[0]):":next"===e[1]?u(1):v.get(e[1]))){var t=s.get(o.id||o.name);o.id&&t?t.focus():y.setTimeout(function(){a.webkit||c.window.focus(),o.focus()},10),n.preventDefault()}function u(e){function t(e){return/INPUT|TEXTAREA|BUTTON/.test(e.tagName)&&s.get(n.id)&&-1!==e.tabIndex&&function t(e){return"BODY"===e.nodeName||"hidden"!==e.type&&"none"!==e.style.display&&"hidden"!==e.style.visibility&&t(e.parentNode)}(e)}if(o=v.select(":input:enabled,*[tabindex]:not(iframe)"),f.each(o,function(e,t){if(e.id===r.id)return i=t,!1}),0<e){for(l=i+1;l<o.length;l++)if(t(o[l]))return o[l]}else for(l=i-1;0<=l;l--)if(t(o[l]))return o[l];return null}}r.on("init",function(){r.inline&&v.setAttrib(r.getBody(),"tabIndex",null),r.on("keyup",t),a.gecko?r.on("keypress keydown",e):r.on("keydown",e)})};!function o(){e.add("tabfocus",function(e){i(e)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(f){"use strict";function o(e){return e}var R=function(e){function n(){return t}var t=e;return{get:n,set:function(e){t=e},clone:function(){return R(n())}}},T=function(){},O=function(t,r){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t(r.apply(null,e))}},D=function(e){return function(){return e}};function b(r){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var t=o.concat(e);return r.apply(null,t)}}function d(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return!t.apply(null,e)}}function e(){return u}var n,s=D(!1),i=D(!0),u=(n={fold:function(e,n){return e()},is:s,isSome:s,isNone:i,getOr:c,getOrThunk:r,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:D(null),getOrUndefined:D(undefined),or:c,orThunk:r,map:e,each:T,bind:e,exists:s,forall:i,filter:e,equals:t,equals_:t,toArray:function(){return[]},toString:D("none()")},Object.freeze&&Object.freeze(n),n);function t(e){return e.isNone()}function r(e){return e()}function c(e){return e}function a(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===n}}function l(e,n){return-1<function(e,n){return Ue.call(e,n)}(e,n)}function m(e,n){for(var t=0,r=e.length;t<r;t++){if(n(e[t],t))return!0}return!1}function g(e,n){for(var t=e.length,r=new Array(t),o=0;o<t;o++){var i=e[o];r[o]=n(i,o)}return r}function p(e,n){for(var t=0,r=e.length;t<r;t++){n(e[t],t)}}function h(e,n){for(var t=[],r=0,o=e.length;r<o;r++){var i=e[r];n(i,r)&&t.push(i)}return t}function v(e,n,t){return function(e,n){for(var t=e.length-1;0<=t;t--){n(e[t],t)}}(e,function(e){t=n(t,e)}),t}function w(e,n,t){return p(e,function(e){t=n(t,e)}),t}function y(e,n){for(var t=0,r=e.length;t<r;t++){var o=e[t];if(n(o,t))return Me.some(o)}return Me.none()}function C(e,n){for(var t=0,r=e.length;t<r;t++){if(n(e[t],t))return Me.some(t)}return Me.none()}function S(e){for(var n=[],t=0,r=e.length;t<r;++t){if(!Le(e[t]))throw new Error("Arr.flatten item "+t+" was not an array, input: "+e);qe.apply(n,e[t])}return n}function x(e,n){var t=g(e,n);return S(t)}function A(e,n){for(var t=0,r=e.length;t<r;++t){if(!0!==n(e[t],t))return!1}return!0}function E(e){var n=Fe.call(e,0);return n.reverse(),n}function N(e,n){for(var t=Ve(e),r=0,o=t.length;r<o;r++){var i=t[r];n(e[i],i)}}function k(e,t){return Ye(e,function(e,n){return{k:n,v:t(e,n)}})}function I(e,n){return Ke(e,n)?Me.from(e[n]):Me.none()}function B(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(n.length!==t.length)throw new Error('Wrong number of arguments to struct. Expected "['+n.length+']", got '+t.length+" arguments");var r={};return p(n,function(e,n){r[e]=D(t[n])}),r}}function P(e){return e.slice(0).sort()}function M(e,n){throw new Error("All required keys ("+P(e).join(", ")+") were not specified. Specified keys were: "+P(n).join(", ")+".")}function W(e){throw new Error("Unsupported keys for object: "+P(e).join(", "))}function _(n,e){if(!Le(e))throw new Error("The "+n+" fields must be an array. Was: "+e+".");p(e,function(e){if(!_e(e))throw new Error("The value "+e+" in the "+n+" fields was not a string.")})}function L(e){var t=P(e);y(t,function(e,n){return n<t.length-1&&e===t[n+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+t.join(", ")+"].")})}function j(e){return e.dom().nodeType}function z(n){return function(e){return j(e)===n}}function H(e){return j(e)===$e||"#comment"===en(e)}function F(e,n,t){if(!(_e(t)||je(t)||He(t)))throw f.console.error("Invalid call to Attr.set. Key ",n,":: Value ",t,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(n,t+"")}function U(e,n,t){F(e.dom(),n,t)}function q(e,n){var t=e.dom();N(n,function(e,n){F(t,n,e)})}function V(e,n){var t=e.dom().getAttribute(n);return null===t?undefined:t}function G(e,n){var t=e.dom();return!(!t||!t.hasAttribute)&&t.hasAttribute(n)}function Y(e,n){e.dom().removeAttribute(n)}function K(e){return w(e.dom().attributes,function(e,n){return e[n.name]=n.value,e},{})}function X(e,n,t){return""===n||!(e.length<n.length)&&e.substr(t,t+n.length)===n}function $(e,n){return-1!==e.indexOf(n)}function J(e,n){return X(e,n,0)}function Q(e){return e.style!==undefined&&ze(e.style.getPropertyValue)}function Z(t){var r,o=!1;return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return o||(o=!0,r=t.apply(null,e)),r}}function ee(e){var n=tn(e)?e.dom().parentNode:e.dom();return n!==undefined&&null!==n&&n.ownerDocument.body.contains(n)}function ne(e,n,t){if(!_e(t))throw f.console.error("Invalid call to CSS.set. Property ",n,":: Value ",t,":: Element ",e),new Error("CSS value must be a string: "+t);Q(e)&&e.style.setProperty(n,t)}function te(e,n,t){var r=e.dom();ne(r,n,t)}function re(e,n){var t=e.dom();N(n,function(e,n){ne(t,n,e)})}function oe(e,n){var t=e.dom(),r=f.window.getComputedStyle(t).getPropertyValue(n),o=""!==r||ee(e)?r:an(t,n);return null===o?undefined:o}function ie(e,n){var t=e.dom(),r=an(t,n);return Me.from(r).filter(function(e){return 0<e.length})}function ue(e,n){!function(e,n){Q(e)&&e.style.removeProperty(n)}(e.dom(),n),G(e,"style")&&""===function(e){return e.replace(/^\s+|\s+$/g,"")}(V(e,"style"))&&Y(e,"style")}function ce(e,n,t){return 0!=(e.compareDocumentPosition(n)&t)}function ae(e,n){var t=function(e,n){for(var t=0;t<e.length;t++){var r=e[t];if(r.test(n))return r}return undefined}(e,n);if(!t)return{major:0,minor:0};function r(e){return Number(n.replace(t,"$"+e))}return dn(r(1),r(2))}function le(e,n){return function(){return n===e}}function fe(e,n){return function(){return n===e}}function se(e,n){var t=String(n).toLowerCase();return y(e,function(e){return e.search(t)})}function de(n){return function(e){return $(e,n)}}function me(){return En.get()}function ge(e,n){var t=e.dom();if(t.nodeType!==Nn)return!1;var r=t;if(r.matches!==undefined)return r.matches(n);if(r.msMatchesSelector!==undefined)return r.msMatchesSelector(n);if(r.webkitMatchesSelector!==undefined)return r.webkitMatchesSelector(n);if(r.mozMatchesSelector!==undefined)return r.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")}function pe(e){return e.nodeType!==Nn&&e.nodeType!==kn||0===e.childElementCount}function he(e){return on.fromDom(e.dom().ownerDocument)}function ve(e){return Me.from(e.dom().parentNode).map(on.fromDom)}function be(e,n){for(var t=ze(n)?n:s,r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,u=on.fromDom(i);if(o.push(u),!0===t(u))break;r=i}return o}function we(e){return Me.from(e.dom().previousSibling).map(on.fromDom)}function ye(e){return Me.from(e.dom().nextSibling).map(on.fromDom)}function Ce(e){return g(e.dom().childNodes,on.fromDom)}function Se(e,n){var t=e.dom().childNodes;return Me.from(t[n]).map(on.fromDom)}function xe(n,t){ve(n).each(function(e){e.dom().insertBefore(t.dom(),n.dom())})}function Re(e,n){ye(e).fold(function(){ve(e).each(function(e){Mn(e,n)})},function(e){xe(e,n)})}function Te(n,t){(function(e){return Se(e,0)})(n).fold(function(){Mn(n,t)},function(e){n.dom().insertBefore(t.dom(),e.dom())})}function Oe(e,n){xe(e,n),Mn(n,e)}function De(r,o){p(o,function(e,n){var t=0===n?r:o[n-1];Re(t,e)})}function Ae(n,e){p(e,function(e){Mn(n,e)})}function Ee(e){e.dom().textContent="",p(Ce(e),function(e){Wn(e)})}function Ne(e){var n=Ce(e);0<n.length&&function(n,e){p(e,function(e){xe(n,e)})}(e,n),Wn(e)}function ke(e,n,t){return function(e,n,t){return h(be(e,t),n)}(e,function(e){return ge(e,n)},t)}function Ie(e,n){return function(e,n){return h(Ce(e),n)}(e,function(e){return ge(e,n)})}function Be(e,n){return function(e,n){var t=n===undefined?f.document:n.dom();return pe(t)?[]:g(t.querySelectorAll(e),on.fromDom)}(n,e)}var Pe=function(t){function e(){return o}function n(e){return e(t)}var r=D(t),o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:i,isNone:s,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:e,orThunk:e,map:function(e){return Pe(e(t))},each:function(e){e(t)},bind:n,exists:n,forall:n,filter:function(e){return e(t)?o:u},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(s,function(e){return n(t,e)})}};return o},Me={some:Pe,none:e,from:function(e){return null===e||e===undefined?u:Pe(e)}},We=tinymce.util.Tools.resolve("tinymce.PluginManager"),_e=a("string"),Le=a("array"),je=a("boolean"),ze=a("function"),He=a("number"),Fe=Array.prototype.slice,Ue=Array.prototype.indexOf,qe=Array.prototype.push,Ve=(ze(Array.from)&&Array.from,Object.keys),Ge=Object.hasOwnProperty,Ye=function(e,r){var o={};return N(e,function(e,n){var t=r(e,n);o[t.k]=t.v}),o},Ke=function(e,n){return Ge.call(e,n)},Xe=function(o,i){var u=o.concat(i);if(0===u.length)throw new Error("You must specify at least one required or optional field.");return _("required",o),_("optional",i),L(u),function(n){var t=Ve(n);A(o,function(e){return l(t,e)})||M(o,t);var e=h(t,function(e){return!l(u,e)});0<e.length&&W(e);var r={};return p(o,function(e){r[e]=D(n[e])}),p(i,function(e){r[e]=D(Object.prototype.hasOwnProperty.call(n,e)?Me.some(n[e]):Me.none())}),r}},$e=(f.Node.ATTRIBUTE_NODE,f.Node.CDATA_SECTION_NODE,f.Node.COMMENT_NODE),Je=f.Node.DOCUMENT_NODE,Qe=(f.Node.DOCUMENT_TYPE_NODE,f.Node.DOCUMENT_FRAGMENT_NODE,f.Node.ELEMENT_NODE),Ze=f.Node.TEXT_NODE,en=(f.Node.PROCESSING_INSTRUCTION_NODE,f.Node.ENTITY_REFERENCE_NODE,f.Node.ENTITY_NODE,f.Node.NOTATION_NODE,"undefined"!=typeof f.window?f.window:Function("return this;")(),function(e){return e.dom().nodeName.toLowerCase()}),nn=z(Qe),tn=z(Ze),rn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:D(e)}},on={fromHtml:function(e,n){var t=(n||f.document).createElement("div");if(t.innerHTML=e,!t.hasChildNodes()||1<t.childNodes.length)throw f.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return rn(t.childNodes[0])},fromTag:function(e,n){var t=(n||f.document).createElement(e);return rn(t)},fromText:function(e,n){var t=(n||f.document).createTextNode(e);return rn(t)},fromDom:rn,fromPoint:function(e,n,t){var r=e.dom();return Me.from(r.elementFromPoint(n,t)).map(rn)}},un=Z(function(){return cn(on.fromDom(f.document))}),cn=function(e){var n=e.dom().body;if(null===n||n===undefined)throw new Error("Body is not available yet");return on.fromDom(n)},an=function(e,n){return Q(e)?e.style.getPropertyValue(n):""},ln=function(e,n){return ce(e,n,f.Node.DOCUMENT_POSITION_CONTAINED_BY)},fn=function(){return(fn=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e}).apply(this,arguments)},sn=function(){return dn(0,0)},dn=function(e,n){return{major:e,minor:n}},mn={nu:dn,detect:function(e,n){var t=String(n).toLowerCase();return 0===e.length?sn():ae(e,t)},unknown:sn},gn="Firefox",pn=function(e){var n=e.current;return{current:n,version:e.version,isEdge:le("Edge",n),isChrome:le("Chrome",n),isIE:le("IE",n),isOpera:le("Opera",n),isFirefox:le(gn,n),isSafari:le("Safari",n)}},hn={unknown:function(){return pn({current:undefined,version:mn.unknown()})},nu:pn,edge:D("Edge"),chrome:D("Chrome"),ie:D("IE"),opera:D("Opera"),firefox:D(gn),safari:D("Safari")},vn="Windows",bn="Android",wn="Solaris",yn="FreeBSD",Cn=function(e){var n=e.current;return{current:n,version:e.version,isWindows:fe(vn,n),isiOS:fe("iOS",n),isAndroid:fe(bn,n),isOSX:fe("OSX",n),isLinux:fe("Linux",n),isSolaris:fe(wn,n),isFreeBSD:fe(yn,n)}},Sn={unknown:function(){return Cn({current:undefined,version:mn.unknown()})},nu:Cn,windows:D(vn),ios:D("iOS"),android:D(bn),linux:D("Linux"),osx:D("OSX"),solaris:D(wn),freebsd:D(yn)},xn=function(e,t){return se(e,t).map(function(e){var n=mn.detect(e.versionRegexes,t);return{current:e.name,version:n}})},Rn=function(e,t){return se(e,t).map(function(e){var n=mn.detect(e.versionRegexes,t);return{current:e.name,version:n}})},Tn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,On=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return $(e,"edge/")&&$(e,"chrome")&&$(e,"safari")&&$(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Tn],search:function(e){return $(e,"chrome")&&!$(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return $(e,"msie")||$(e,"trident")}},{name:"Opera",versionRegexes:[Tn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:de("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:de("firefox")},{name:"Safari",versionRegexes:[Tn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return($(e,"safari")||$(e,"mobile/"))&&$(e,"applewebkit")}}],Dn=[{name:"Windows",search:de("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return $(e,"iphone")||$(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:de("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:de("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:de("linux"),versionRegexes:[]},{name:"Solaris",search:de("sunos"),versionRegexes:[]},{name:"FreeBSD",search:de("freebsd"),versionRegexes:[]}],An={browsers:D(On),oses:D(Dn)},En=R(function(e,n){var t=An.browsers(),r=An.oses(),o=xn(t,e).fold(hn.unknown,hn.nu),i=Rn(r,e).fold(Sn.unknown,Sn.nu);return{browser:o,os:i,deviceType:function(e,n,t,r){var o=e.isiOS()&&!0===/ipad/i.test(t),i=e.isiOS()&&!o,u=e.isiOS()||e.isAndroid(),c=u||r("(pointer:coarse)"),a=o||!i&&u&&r("(min-device-width:768px)"),l=i||u&&!a,f=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(t),s=!l&&!a&&!f;return{isiPad:D(o),isiPhone:D(i),isTablet:D(a),isPhone:D(l),isTouch:D(c),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:D(f),isDesktop:D(s)}}(i,o,e,n)}}(f.navigator.userAgent,function(e){return f.window.matchMedia(e).matches})),Nn=Qe,kn=Je,In=function(e,n){return e.dom()===n.dom()},Bn=me().browser.isIE()?function(e,n){return ln(e.dom(),n.dom())}:function(e,n){var t=e.dom(),r=n.dom();return t!==r&&t.contains(r)},Pn=ge,Mn=(B("element","offset"),function(e,n){e.dom().appendChild(n.dom())}),Wn=function(e){var n=e.dom();null!==n.parentNode&&n.parentNode.removeChild(n)},_n=(B("width","height"),B("width","height"),B("rows","columns")),Ln=B("row","column"),jn=(B("x","y"),B("element","rowspan","colspan")),zn=B("element","rowspan","colspan","isNew"),Hn=B("element","rowspan","colspan","row","column"),Fn=B("element","cells","section"),Un=B("element","isNew"),qn=B("element","cells","section","isNew"),Vn=B("cells","section"),Gn=B("details","section"),Yn=B("startRow","startCol","finishRow","finishCol"),Kn=function(e,n){var t=[];return p(Ce(e),function(e){n(e)&&(t=t.concat([e])),t=t.concat(Kn(e,n))}),t};function Xn(e,n,t,r,o){return e(t,r)?Me.some(t):ze(o)&&o(t)?Me.none():n(t,r,o)}function $n(e,n,t){for(var r=e.dom(),o=ze(t)?t:D(!1);r.parentNode;){r=r.parentNode;var i=on.fromDom(r);if(n(i))return Me.some(i);if(o(i))break}return Me.none()}function Jn(e,n,t){return $n(e,function(e){return ge(e,n)},t)}function Qn(e,n){return function(e,n){return y(e.dom().childNodes,function(e){return n(on.fromDom(e))}).map(on.fromDom)}(e,function(e){return ge(e,n)})}function Zn(e,n){return function(e,n){var t=n===undefined?f.document:n.dom();return pe(t)?Me.none():Me.from(t.querySelector(e)).map(on.fromDom)}(n,e)}function et(e,n,t){return Xn(ge,Jn,e,n,t)}function nt(e,n,t){return void 0===t&&(t=s),t(n)?Me.none():l(e,en(n))?Me.some(n):Jn(n,e.join(","),function(e){return ge(e,"table")||t(e)})}function tt(n,e){return ve(e).map(function(e){return Ie(e,n)})}function rt(e,n){return parseInt(V(e,n),10)}function ot(e,n){return e+","+n}var it=function(e,n,t){return x(Ce(e),function(e){return ge(e,n)?t(e)?[e]:[]:it(e,n,t)})},ut={firstLayer:function(e,n){return it(e,n,D(!0))},filterFirstLayer:it},ct=b(tt,"th,td"),at=b(tt,"tr"),lt={cell:function(e,n){return nt(["td","th"],e,n)},firstCell:function(e){return Zn(e,"th,td")},cells:function(e){return ut.firstLayer(e,"th,td")},neighbourCells:ct,table:function(e,n){return et(e,"table",n)},row:function(e,n){return nt(["tr"],e,n)},rows:function(e){return ut.firstLayer(e,"tr")},notCell:function(e,n){return nt(["caption","tr","tbody","tfoot","thead"],e,n)},neighbourRows:at,attr:rt,grid:function(e,n,t){var r=rt(e,n),o=rt(e,t);return _n(r,o)}},ft=function(e){var n=lt.rows(e);return g(n,function(e){var n=e,t=ve(n).map(function(e){var n=en(e);return"tfoot"===n||"thead"===n||"tbody"===n?n:"tbody"}).getOr("tbody"),r=g(lt.cells(e),function(e){var n=G(e,"rowspan")?parseInt(V(e,"rowspan"),10):1,t=G(e,"colspan")?parseInt(V(e,"colspan"),10):1;return jn(e,n,t)});return Fn(n,r,t)})},st=function(e,t){return g(e,function(e){var n=g(lt.cells(e),function(e){var n=G(e,"rowspan")?parseInt(V(e,"rowspan"),10):1,t=G(e,"colspan")?parseInt(V(e,"colspan"),10):1;return jn(e,n,t)});return Fn(e,n,t.section())})},dt=function(e,n){var t=x(e.all(),function(e){return e.cells()});return h(t,n)},mt={generate:function(e){var l={},n=[],t=e.length,f=0;p(e,function(e,c){var a=[];p(e.cells(),function(e){for(var n=0;l[ot(c,n)]!==undefined;)n++;for(var t=Hn(e.element(),e.rowspan(),e.colspan(),c,n),r=0;r<e.colspan();r++)for(var o=0;o<e.rowspan();o++){var i=n+r,u=ot(c+o,i);l[u]=t,f=Math.max(f,i+1)}a.push(t)}),n.push(Fn(e.element(),a,e.section()))});var r=_n(t,f);return{grid:D(r),access:D(l),all:D(n)}},getAt:function(e,n,t){var r=e.access()[ot(n,t)];return r!==undefined?Me.some(r):Me.none()},findItem:function(e,n,t){var r=dt(e,function(e){return t(n,e.element())});return 0<r.length?Me.some(r[0]):Me.none()},filterItems:dt,justCells:function(e){var n=g(e.all(),function(e){return e.cells()});return S(n)}},gt=B("minRow","minCol","maxRow","maxCol"),pt=function(e,n){function t(e){return ge(e.element(),n)}var r=ft(e),o=mt.generate(r),i=function(e,i){var n=e.grid().columns(),u=e.grid().rows(),c=n,a=0,l=0;return N(e.access(),function(e){if(i(e)){var n=e.row(),t=n+e.rowspan()-1,r=e.column(),o=r+e.colspan()-1;n<u?u=n:a<t&&(a=t),r<c?c=r:l<o&&(l=o)}}),gt(u,c,a,l)}(o,t),u="th:not("+n+"),td:not("+n+")",c=ut.filterFirstLayer(e,"th,td",function(e){return ge(e,u)});return p(c,Wn),function(e,n,t,r){for(var o,i,u,c=n.grid().columns(),a=n.grid().rows(),l=0;l<a;l++)for(var f=!1,s=0;s<c;s++){if(!(l<t.minRow()||l>t.maxRow()||s<t.minCol()||s>t.maxCol()))mt.getAt(n,l,s).filter(r).isNone()?(o=f,void 0,i=e[l].element(),u=on.fromTag("td"),Mn(u,on.fromTag("br")),(o?Mn:Te)(i,u)):f=!0}}(r,o,i,t),function(e,n){var t=h(ut.firstLayer(e,"tr"),function(e){return 0===e.dom().childElementCount});p(t,Wn),n.minCol()!==n.maxCol()&&n.minRow()!==n.maxRow()||p(ut.firstLayer(e,"th,td"),function(e){Y(e,"rowspan"),Y(e,"colspan")}),Y(e,"width"),Y(e,"height"),ue(e,"width"),ue(e,"height")}(e,i),e};function ht(e){return Bt.get(e)}function vt(e){return Bt.getOption(e)}function bt(e,n){Bt.set(e,n)}function wt(e){return"img"===en(e)?1:vt(e).fold(function(){return Ce(e).length},function(e){return e.length})}function yt(e){return function(e){return vt(e).filter(function(e){return 0!==e.trim().length||-1<e.indexOf("\xa0")}).isSome()}(e)||l(Pt,en(e))}function Ct(e){return function(e,o){var i=function(e){for(var n=0;n<e.childNodes.length;n++){var t=on.fromDom(e.childNodes[n]);if(o(t))return Me.some(t);var r=i(e.childNodes[n]);if(r.isSome())return r}return Me.none()};return i(e.dom())}(e,yt)}function St(e){return Mt(e,yt)}function xt(e,n){return on.fromDom(e.dom().cloneNode(n))}function Rt(e){return xt(e,!1)}function Tt(e){return xt(e,!0)}function Ot(e,n){var t=function(e,n){var t=on.fromTag(n),r=K(e);return q(t,r),t}(e,n),r=Ce(Tt(e));return Ae(t,r),t}function Dt(){var e=on.fromTag("td");return Mn(e,on.fromTag("br")),e}function At(e,n,t){var r=Ot(e,n);return N(t,function(e,n){null===e?Y(r,n):U(r,n,e)}),r}function Et(e){return e}function Nt(e){return function(){return on.fromTag("tr",e.dom())}}function kt(e,n){return n.column()>=e.startCol()&&n.column()+n.colspan()-1<=e.finishCol()&&n.row()>=e.startRow()&&n.row()+n.rowspan()-1<=e.finishRow()}function It(e,n,t){var r=mt.findItem(e,n,In),o=mt.findItem(e,t,In);return r.bind(function(n){return o.map(function(e){return function(e,n){return Yn(Math.min(e.row(),n.row()),Math.min(e.column(),n.column()),Math.max(e.row()+e.rowspan()-1,n.row()+n.rowspan()-1),Math.max(e.column()+e.colspan()-1,n.column()+n.colspan()-1))}(n,e)})})}var Bt=function Qf(t,r){var n=function(e){return t(e)?Me.from(e.dom().nodeValue):Me.none()};return{get:function(e){if(!t(e))throw new Error("Can only get "+r+" value of a "+r+" node");return n(e).getOr("")},getOption:n,set:function(e,n){if(!t(e))throw new Error("Can only set raw "+r+" value of a "+r+" node");e.dom().nodeValue=n}}}(tn,"text"),Pt=["img","br"],Mt=function(e,i){var u=function(e){for(var n=Ce(e),t=n.length-1;0<=t;t--){var r=n[t];if(i(r))return Me.some(r);var o=u(r);if(o.isSome())return o}return Me.none()};return u(e)},Wt={cellOperations:function(i,e,u){return{row:Nt(e),cell:function(e){var n=he(e.element()),t=on.fromTag(en(e.element()),n.dom()),r=u.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),o=0<r.length?function(r,o,i){return Ct(r).map(function(e){var n=i.join(","),t=ke(e,n,function(e){return In(e,r)});return v(t,function(e,n){var t=Rt(n);return Y(t,"contenteditable"),Mn(e,t),t},o)}).getOr(o)}(e.element(),t,r):t;return Mn(o,on.fromTag("br")),function(e,n){var t=e.dom(),r=n.dom();Q(t)&&Q(r)&&(r.style.cssText=t.style.cssText)}(e.element(),t),ue(t,"height"),1!==e.colspan()&&ue(e.element(),"width"),i(e.element(),t),t},replace:At,gap:Dt}},paste:function(e){return{row:Nt(e),cell:Dt,replace:Et,gap:Dt}}},_t=function(e,n){var t=n.column(),r=n.column()+n.colspan()-1,o=n.row(),i=n.row()+n.rowspan()-1;return t<=e.finishCol()&&r>=e.startCol()&&o<=e.finishRow()&&i>=e.startRow()},Lt=function(e,n){for(var t=!0,r=b(kt,n),o=n.startRow();o<=n.finishRow();o++)for(var i=n.startCol();i<=n.finishCol();i++)t=t&&mt.getAt(e,o,i).exists(r);return t?Me.some(n):Me.none()},jt=It,zt=function(n,e,t){return It(n,e,t).bind(function(e){return Lt(n,e)})},Ht=function(r,e,o,i){return mt.findItem(r,e,In).bind(function(e){var n=0<o?e.row()+e.rowspan()-1:e.row(),t=0<i?e.column()+e.colspan()-1:e.column();return mt.getAt(r,n+o,t+i).map(function(e){return e.element()})})},Ft=function(t,e,n){return jt(t,e,n).map(function(e){var n=mt.filterItems(t,b(_t,e));return g(n,function(e){return e.element()})})},Ut=function(e,n){return mt.findItem(e,n,function(e,n){return Bn(n,e)}).map(function(e){return e.element()})},qt=function(e){var n=ft(e);return mt.generate(n)},Vt=function(t,r,o){return lt.table(t).bind(function(e){var n=qt(e);return Ht(n,t,r,o)})},Gt=function(e,n,t){var r=qt(e);return Ft(r,n,t)},Yt=function(e,n,t,r,o){var i=qt(e),u=In(e,t)?Me.some(n):Ut(i,n),c=In(e,o)?Me.some(r):Ut(i,r);return u.bind(function(n){return c.bind(function(e){return Ft(i,n,e)})})},Kt=function(e,n,t){var r=qt(e);return zt(r,n,t)},Xt=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"];function $t(){return{up:D({selector:Jn,closest:et,predicate:$n,all:be}),down:D({selector:Be,predicate:Kn}),styles:D({get:oe,getRaw:ie,set:te,remove:ue}),attrs:D({get:V,set:U,remove:Y,copyTo:function(e,n){var t=K(e);q(n,t)}}),insert:D({before:xe,after:Re,afterAll:De,append:Mn,appendAll:Ae,prepend:Te,wrap:Oe}),remove:D({unwrap:Ne,remove:Wn}),create:D({nu:on.fromTag,clone:function(e){return on.fromDom(e.dom().cloneNode(!1))},text:on.fromText}),query:D({comparePosition:function(e,n){return e.dom().compareDocumentPosition(n.dom())},prevSibling:we,nextSibling:ye}),property:D({children:Ce,name:en,parent:ve,document:function(e){return e.dom().ownerDocument},isText:tn,isComment:H,isElement:nn,getText:ht,setText:bt,isBoundary:function(e){return!!nn(e)&&("body"===en(e)||l(Xt,en(e)))},isEmptyTag:function(e){return!!nn(e)&&l(["br","img","hr","input"],en(e))}}),eq:In,is:Pn}}function Jt(e,n,t){var r=e.property().children(n);return C(r,b(e.eq,t)).map(function(e){return{before:D(r.slice(0,e)),after:D(r.slice(e+1))}})}function Qt(e,n){return b(e.eq,n)}function Zt(n,e,t,r){function o(n){return C(n,r).fold(function(){return n},function(e){return n.slice(0,e+1)})}void 0===r&&(r=s);var i=[e].concat(n.up().all(e)),u=[t].concat(n.up().all(t)),c=o(i),a=o(u),l=y(c,function(e){return m(a,Qt(n,e))});return{firstpath:D(c),secondpath:D(a),shared:D(l)}}function er(e){return Jn(e,"table")}function nr(c,a,r){function l(n){return function(e){return r!==undefined&&r(e)||In(e,n)}}return In(c,a)?Me.some(sr.create({boxes:Me.some([c]),start:c,finish:a})):er(c).bind(function(u){return er(a).bind(function(i){if(In(u,i))return Me.some(sr.create({boxes:Gt(u,c,a),start:c,finish:a}));if(Bn(u,i)){var e=0<(n=ke(a,"td,th",l(u))).length?n[n.length-1]:a;return Me.some(sr.create({boxes:Yt(u,c,u,a,i),start:c,finish:e}))}if(Bn(i,u)){var n,t=0<(n=ke(c,"td,th",l(i))).length?n[n.length-1]:c;return Me.some(sr.create({boxes:Yt(i,c,u,a,i),start:c,finish:t}))}return fr.ancestors(c,a).shared().bind(function(e){return et(e,"table",r).bind(function(e){var n=ke(a,"td,th",l(e)),t=0<n.length?n[n.length-1]:a,r=ke(c,"td,th",l(e)),o=0<r.length?r[r.length-1]:c;return Me.some(sr.create({boxes:Yt(e,c,u,a,i),start:o,finish:t}))})})})})}function tr(e,n){return Rr.cata(n.get(),D([]),o,D([e]))}function rr(e){return{element:D(e),mergable:Me.none,unmergable:Me.none,selection:D([e])}}var or=B("left","right"),ir=B("first","second","splits"),ur=function(r,o,e,n){var t=o(r,e);return v(n,function(e,n){var t=o(r,n);return cr(r,e,t)},t)},cr=function(n,e,t){return e.bind(function(e){return t.filter(b(n.eq,e))})},ar={sharedOne:function(e,n,t){return 0<t.length?function(e,n,t,r){return r(e,n,t[0],t.slice(1))}(e,n,t,ur):Me.none()},subset:function(n,e,t){var r=Zt(n,e,t);return r.shared().bind(function(e){return function(o,i,e,n){var u=o.property().children(i);if(o.eq(i,e[0]))return Me.some([e[0]]);if(o.eq(i,n[0]))return Me.some([n[0]]);function t(e){var n=E(e),t=C(n,Qt(o,i)).getOr(-1),r=t<n.length-1?n[t+1]:n[t];return C(u,Qt(o,r))}var r=t(e),c=t(n);return r.bind(function(r){return c.map(function(e){var n=Math.min(r,e),t=Math.max(r,e);return u.slice(n,t+1)})})}(n,e,r.firstpath(),r.secondpath())})},ancestors:Zt,breakToLeft:function(t,r,o){return Jt(t,r,o).map(function(e){var n=t.create().clone(r);return t.insert().appendAll(n,e.before().concat([o])),t.insert().appendAll(r,e.after()),t.insert().before(r,n),or(n,r)})},breakToRight:function(t,r,e){return Jt(t,r,e).map(function(e){var n=t.create().clone(r);return t.insert().appendAll(n,e.after()),t.insert().after(r,n),or(r,n)})},breakPath:function(i,e,u,c){var a=function(e,n,o){var t=ir(e,Me.none(),o);return u(e)?ir(e,n,o):i.property().parent(e).bind(function(r){return c(i,r,e).map(function(e){var n=[{first:e.left,second:e.right}],t=u(r)?r:e.left();return a(t,Me.some(e.right()),o.concat(n))})}).getOr(t)};return a(e,Me.none(),[])}},lr=$t(),fr={sharedOne:function(t,e){return ar.sharedOne(lr,function(e,n){return t(n)},e)},subset:function(e,n){return ar.subset(lr,e,n)},ancestors:function(e,n,t){return ar.ancestors(lr,e,n,t)},breakToLeft:function(e,n){return ar.breakToLeft(lr,e,n)},breakToRight:function(e,n){return ar.breakToRight(lr,e,n)},breakPath:function(e,n,r){return ar.breakPath(lr,e,n,function(e,n,t){return r(n,t)})}},sr={create:Xe(["boxes","start","finish"],[])},dr=nr,mr=function(e,n){var t=Be(e,n);return 0<t.length?Me.some(t):Me.none()},gr=function(e,n,t,r,o){return function(e,n){return y(e,function(e){return ge(e,n)})}(e,o).bind(function(e){return Vt(e,n,t).bind(function(e){return function(n,t){return Jn(n,"table").bind(function(e){return Zn(e,t).bind(function(e){return nr(e,n).bind(function(n){return n.boxes().map(function(e){return{boxes:D(e),start:D(n.start()),finish:D(n.finish())}})})})})}(e,r)})})},pr=function(e,n,r){return Zn(e,n).bind(function(t){return Zn(e,r).bind(function(n){return fr.sharedOne(er,[t,n]).map(function(e){return{first:D(t),last:D(n),table:D(e)}})})})},hr=function(e,n){return mr(e,n)},vr=function(o,e,n){return pr(o,e,n).bind(function(t){function e(e){return In(o,e)}var n=Jn(t.first(),"thead,tfoot,tbody,table",e),r=Jn(t.last(),"thead,tfoot,tbody,table",e);return n.bind(function(n){return r.bind(function(e){return In(n,e)?Kt(t.table(),t.first(),t.last()):Me.none()})})})},br="data-mce-selected",wr="data-mce-first-selected",yr="data-mce-last-selected",Cr={selected:D(br),selectedSelector:D("td[data-mce-selected],th[data-mce-selected]"),attributeSelector:D("[data-mce-selected]"),firstSelected:D(wr),firstSelectedSelector:D("td[data-mce-first-selected],th[data-mce-first-selected]"),lastSelected:D(yr),lastSelectedSelector:D("td[data-mce-last-selected],th[data-mce-last-selected]")},Sr=function(u){if(!Le(u))throw new Error("cases must be an array");if(0===u.length)throw new Error("there must be at least one case");var c=[],t={};return p(u,function(e,r){var n=Ve(e);if(1!==n.length)throw new Error("one and only one name per case");var o=n[0],i=e[o];if(t[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!Le(i))throw new Error("case arguments must be an array");c.push(o),t[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var t=new Array(e),n=0;n<t.length;n++)t[n]=arguments[n];return{fold:function(){if(arguments.length!==u.length)throw new Error("Wrong number of arguments to fold. Expected "+u.length+", got "+arguments.length);return arguments[r].apply(null,t)},match:function(e){var n=Ve(e);if(c.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+c.join(",")+"\nActual: "+n.join(","));if(!A(c,function(e){return l(n,e)}))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+c.join(", "));return e[o].apply(null,t)},log:function(e){f.console.log(e,{constructors:c,constructor:o,params:t})}}}}),t},xr=Sr([{none:[]},{multiple:["elements"]},{single:["selection"]}]),Rr={cata:function(e,n,t,r){return e.fold(n,t,r)},none:xr.none,multiple:xr.multiple,single:xr.single},Tr=function(t,e){return Rr.cata(e.get(),Me.none,function(n,e){return 0===n.length?Me.none():vr(t,Cr.firstSelectedSelector(),Cr.lastSelectedSelector()).bind(function(e){return 1<n.length?Me.some({bounds:D(e),cells:D(n)}):Me.none()})},Me.none)},Or=function(e,n){var t=tr(e,n);return 0<t.length&&A(t,function(e){return G(e,"rowspan")&&1<parseInt(V(e,"rowspan"),10)||G(e,"colspan")&&1<parseInt(V(e,"colspan"),10)})?Me.some(t):Me.none()},Dr=tr,Ar=B("element","clipboard","generators"),Er={noMenu:rr,forMenu:function(e,n,t){return{element:D(t),mergable:D(Tr(n,e)),unmergable:D(Or(t,e)),selection:D(Dr(t,e))}},notCell:function(e){return rr(e)},paste:Ar,pasteRows:function(e,n,t,r,o){return{element:D(t),mergable:Me.none,unmergable:Me.none,selection:D(Dr(t,e)),clipboard:D(r),generators:D(o)}}},Nr={registerEvents:function(c,e,a,l){c.on("BeforeGetContent",function(n){!0===n.selection&&Rr.cata(e.get(),T,function(e){n.preventDefault(),function(e){return lt.table(e[0]).map(Tt).map(function(e){return[pt(e,Cr.attributeSelector())]})}(e).each(function(e){n.content="text"===n.format?function(e){return g(e,function(e){return e.dom().innerText}).join("")}(e):function(n,e){return g(e,function(e){return n.selection.serializer.serialize(e.dom(),{})}).join("")}(c,e)})},T)}),c.on("BeforeSetContent",function(u){!0===u.selection&&!0===u.paste&&Me.from(c.dom.getParent(c.selection.getStart(),"th,td")).each(function(e){var i=on.fromDom(e);lt.table(i).each(function(n){var e=h(function(e,n){var t=(n||f.document).createElement("div");return t.innerHTML=e,Ce(on.fromDom(t))}(u.content),function(e){return"meta"!==en(e)});if(1===e.length&&"table"===en(e[0])){u.preventDefault();var t=on.fromDom(c.getDoc()),r=Wt.paste(t),o=Er.paste(i,e[0],r);a.pasteCells(n,o).each(function(e){c.selection.setRng(e),c.focus(),l.clear(n)})}})})})}};function kr(r,o){function e(e){var n=o(e);if(n<=0||null===n){var t=oe(e,r);return parseFloat(t)||0}return n}function i(o,e){return w(e,function(e,n){var t=oe(o,n),r=t===undefined?0:parseInt(t,10);return isNaN(r)?e:e+r},0)}return{set:function(e,n){if(!He(n)&&!n.match(/^[0-9]+$/))throw new Error(r+".set accepts only positive integer values. Value was "+n);var t=e.dom();Q(t)&&(t.style[r]=n+"px")},get:e,getOuter:e,aggregate:i,max:function(e,n,t){var r=i(e,t);return r<n?n-r:0}}}function Ir(e){return Qr.get(e)}function Br(e){return Qr.getOuter(e)}function Pr(e){return Zr.get(e)}function Mr(e){return Zr.getOuter(e)}function Wr(e,n,t){return function(e,n){var t=parseFloat(e);return isNaN(t)?n:t}(oe(e,n),t)}function _r(e,n){te(e,"height",n+"px")}function Lr(e,n,t,r){var o=parseInt(e,10);return function(e,n){return X(e,n,e.length-n.length)}(e,"%")&&"table"!==en(n)?function(e,t,r,n){var o=lt.table(e).map(function(e){var n=r(e);return Math.floor(t/100*n)}).getOr(t);return n(e,o),o}(n,o,t,r):o}function jr(e){var n=function(e){return ie(e,"height").getOrThunk(function(){return no(e)+"px"})}(e);return n?Lr(n,e,Ir,_r):Ir(e)}function zr(e){return ie(e,"width").fold(function(){return Me.from(V(e,"width"))},function(e){return Me.some(e)})}function Hr(e,n){return e/n.pixelWidth()*100}function Fr(e,n){return e!==undefined?e:n!==undefined?n:0}function Ur(e){var n=e.dom().ownerDocument,t=n.body,r=n.defaultView,o=n.documentElement;if(t===e.dom())return lo(t.offsetLeft,t.offsetTop);var i=Fr(r.pageYOffset,o.scrollTop),u=Fr(r.pageXOffset,o.scrollLeft),c=Fr(o.clientTop,t.clientTop),a=Fr(o.clientLeft,t.clientLeft);return fo(e).translate(u-a,i-c)}function qr(e){return Ur(e).left()+Mr(e)}function Vr(e){return Ur(e).left()}function Gr(e,n){return mo(e,Vr(n))}function Yr(e,n){return mo(e,qr(n))}function Kr(e){return Ur(e).top()}function Xr(e,n){return so(e,Kr(n))}function $r(e,n){return so(e,Kr(n)+Br(n))}function Jr(t,n,r){if(0===r.length)return[];var e=g(r.slice(1),function(e,n){return e.map(function(e){return t(n,e)})}),o=r[r.length-1].map(function(e){return n(r.length-1,e)});return e.concat([o])}var Qr=kr("height",function(e){var n=e.dom();return ee(e)?n.getBoundingClientRect().height:n.offsetHeight}),Zr=kr("width",function(e){return e.dom().offsetWidth}),eo=me(),no=function(e){return eo.browser.isIE()||eo.browser.isEdge()?function(e){var n=Wr(e,"padding-top",0),t=Wr(e,"padding-bottom",0),r=Wr(e,"border-top-width",0),o=Wr(e,"border-bottom-width",0),i=e.dom().getBoundingClientRect().height;return"border-box"===oe(e,"box-sizing")?i:i-n-t-(r+o)}(e):Wr(e,"height",Ir(e))},to=/(\d+(\.\d+)?)(\w|%)*/,ro=/(\d+(\.\d+)?)%/,oo=/(\d+(\.\d+)?)px|em/,io=function(e,n){return G(e,n)?parseInt(V(e,n),10):1},uo={percentageBasedSizeRegex:D(ro),pixelBasedSizeRegex:D(oo),setPixelWidth:function(e,n){te(e,"width",n+"px")},setPercentageWidth:function(e,n){te(e,"width",n+"%")},setHeight:_r,getPixelWidth:function(n,t){return zr(n).fold(function(){return Pr(n)},function(e){return function(e,n,t){var r=oo.exec(n);if(null!==r)return parseInt(r[1],10);var o=ro.exec(n);return null===o?Pr(e):function(e,n){return e/100*n.pixelWidth()}(parseFloat(o[1]),t)}(n,e,t)})},getPercentageWidth:function(n,t){return zr(n).fold(function(){var e=Pr(n);return Hr(e,t)},function(e){return function(e,n,t){var r=ro.exec(n);if(null!==r)return parseFloat(r[1]);var o=Pr(e);return Hr(o,t)}(n,e,t)})},getGenericWidth:function(e){return zr(e).bind(function(e){var n=to.exec(e);return null!==n?Me.some({width:D(parseFloat(n[1])),unit:D(n[3])}):Me.none()})},setGenericWidth:function(e,n,t){te(e,"width",n+t)},getHeight:function(e){return function(e,n,t){return t(e)/io(e,n)}(e,"rowspan",jr)},getRawWidth:zr},co=function(t,r){uo.getGenericWidth(t).each(function(e){var n=e.width()/2;uo.setGenericWidth(t,n,e.unit()),uo.setGenericWidth(r,n,e.unit())})},ao=function(t,r){return{left:D(t),top:D(r),translate:function(e,n){return ao(t+e,r+n)}}},lo=ao,fo=function(e){var n=e.dom(),t=n.ownerDocument.body;return t===n?lo(t.offsetLeft,t.offsetTop):ee(e)?function(e){var n=e.getBoundingClientRect();return lo(n.left,n.top)}(n):lo(0,0)},so=B("row","y"),mo=B("col","x"),go={height:{delta:o,positions:function(e){return Jr(Xr,$r,e)},edge:Kr},rtl:{delta:function(e){return-e},edge:qr,positions:function(e){return Jr(Yr,Gr,e)}},ltr:{delta:o,edge:Vr,positions:function(e){return Jr(Gr,Yr,e)}}},po={ltr:go.ltr,rtl:go.rtl};function ho(n){function t(e){return n(e).isRtl()?po.rtl:po.ltr}return{delta:function(e,n){return t(n).delta(e,n)},edge:function(e){return t(e).edge(e)},positions:function(e,n){return t(n).positions(e,n)}}}function vo(e){for(var n=[],t=function(e){n.push(e)},r=0;r<e.length;r++)e[r].each(t);return n}function bo(e,n){for(var t=0;t<e.length;t++){var r=n(e[t],t);if(r.isSome())return r}return Me.none()}function wo(e,n,t,r){t===r?Y(e,n):U(e,n,t)}function yo(e,n){var t=V(e,n);return t===undefined||""===t?[]:t.split(" ")}function Co(e){return e.dom().classList!==undefined}function So(e,n){return function(e,n,t){var r=yo(e,n).concat([t]);return U(e,n,r.join(" ")),!0}(e,"class",n)}function xo(e,n){return function(e,n,t){var r=h(yo(e,n),function(e){return e!==t});return 0<r.length?U(e,n,r.join(" ")):Y(e,n),!1}(e,"class",n)}function Ro(e,n){Co(e)?e.dom().classList.add(n):So(e,n)}function To(e){0===(Co(e)?e.dom().classList:function(e){return yo(e,"class")}(e)).length&&Y(e,"class")}function Oo(e,n){return Co(e)&&e.dom().classList.contains(n)}function Do(e,n){for(var t=[],r=e;r<n;r++)t.push(r);return t}function Ao(n,t){if(t<0||t>=n.length-1)return Me.none();var e=n[t].fold(function(){var e=E(n.slice(0,t));return bo(e,function(e,n){return e.map(function(e){return{value:e,delta:n+1}})})},function(e){return Me.some({value:e,delta:0})}),r=n[t+1].fold(function(){var e=n.slice(t+1);return bo(e,function(e,n){return e.map(function(e){return{value:e,delta:n+1}})})},function(e){return Me.some({value:e,delta:1})});return e.bind(function(t){return r.map(function(e){var n=e.delta+t.delta;return Math.abs(e.value-t.value)/n})})}function Eo(e){var n=e.replace(/\./g,"-");return{resolve:function(e){return n+"-"+e}}}function No(e){var n=Be(e.parent(),"."+iu);p(n,Wn)}function ko(t,e,r){var o=t.origin();p(e,function(e,n){e.each(function(e){var n=r(o,e);Ro(n,iu),Mn(t.parent(),n)})})}function Io(e,n,t,r,o,i){var u=Ur(n);!function(e,n,r,o){ko(e,n,function(e,n){var t=ou(n.row(),r.left()-e.left(),n.y()-e.top(),o,7);return Ro(t,uu),t})}(e,0<t.length?o.positions(t,n):[],u,Mr(n)),function(e,n,r,o){ko(e,n,function(e,n){var t=ru(n.col(),n.x()-e.left(),r.top()-e.top(),7,o);return Ro(t,cu),t})}(e,0<r.length?i.positions(r,n):[],u,Br(n))}function Bo(e,n){var t=Be(e.parent(),"."+iu);p(t,n)}function Po(e,n){return e.cells()[n]}function Mo(e,n){if(0===e.length)return 0;var t=e[0];return C(e,function(e){return!n(t.element(),e.element())}).fold(function(){return e.length},function(e){return e})}function Wo(e,t){return g(e,function(e){var n=function(e){return bo(e,function(e){return ve(e.element()).map(function(e){var n=ve(e).isNone();return Un(e,n)})}).getOrThunk(function(){return Un(t.row(),!0)})}(e.details());return qn(n.element(),e.details(),e.section(),n.isNew())})}function _o(e,n){var t=vu(e,In);return Wo(t,n)}function Lo(e,n){var t=S(g(e.all(),function(e){return e.cells()}));return y(t,function(e){return In(n,e.element())})}function jo(c,a,l,f,s){return function(t,r,e,o,i){var n=ft(r),u=mt.generate(n);return a(u,e).map(function(e){var n=function(e,n){return bu(e,n,!1)}(u,o),t=c(n,e,In,s(o)),r=_o(t.grid(),o);return{grid:D(r),cursor:t.cursor}}).fold(function(){return Me.none()},function(e){var n=Ji(r,e.grid());return l(r,e.grid(),i),f(r),au(t,r,go.height,i),Me.some({cursor:e.cursor,newRows:n.newRows,newCells:n.newCells})})}}function zo(n,e){return lt.cell(e.element()).bind(function(e){return Lo(n,e)})}function Ho(n,e){var t=g(e.selection(),function(e){return lt.cell(e).bind(function(e){return Lo(n,e)})}),r=vo(t);return 0<r.length?Me.some({cells:r,generators:e.generators,clipboard:e.clipboard}):Me.none()}function Fo(n,e){var t=g(e.selection(),function(e){return lt.cell(e).bind(function(e){return Lo(n,e)})}),r=vo(t);return 0<r.length?Me.some(r):Me.none()}function Uo(e,n){return g(e,function(){return Un(n.cell(),!0)})}function qo(n,e,t){return n.concat(function(e,n){for(var t=[],r=0;r<e;r++)t.push(n(r));return t}(e,function(e){return pu.setCells(n[n.length-1],Uo(n[n.length-1].cells(),t))}))}function Vo(e,n,t){return g(e,function(e){return pu.setCells(e,e.cells().concat(Uo(Do(0,n),t)))})}function Go(e,t,r,n){return g(e,function(e){return pu.mapCells(e,function(e){return function(n){return m(t,function(e){return r(n.element(),e.element())})}(e)?Un(n(e.element(),r),!0):e})})}function Yo(e,n,t,r){return pu.getCellElement(e[n],t)!==undefined&&0<n&&r(pu.getCellElement(e[n-1],t),pu.getCellElement(e[n],t))}function Ko(e,n,t){return 0<n&&t(pu.getCellElement(e,n-1),pu.getCellElement(e,n))}function Xo(e,n){return G(e,n)&&1<parseInt(V(e,n),10)}function $o(e,n,t){return ie(e,n).fold(function(){return t(e)+"px"},function(e){return e})}function Jo(e,n){return $o(e,"width",function(e){return uo.getPixelWidth(e,n)})}function Qo(e){return $o(e,"height",uo.getHeight)}function Zo(e,n,t,r,o){var i=eu(e),u=g(i,function(e){return e.map(n.edge)});return g(i,function(e,n){return e.filter(d(Hu.hasColspan)).fold(function(){var e=Ao(u,n);return r(e)},function(e){return t(e,o)})})}function ei(e){return e.map(function(e){return e+"px"}).getOr("")}function ni(e,n,t,r){var o=nu(e),i=g(o,function(e){return e.map(n.edge)});return g(o,function(e,n){return e.filter(d(Hu.hasRowspan)).fold(function(){var e=Ao(i,n);return r(e)},function(e){return t(e)})})}function ti(e,n,t){for(var r=0,o=e;o<n;o++)r+=t[o]!==undefined?t[o]:0;return r}function ri(e){var n=o;return{width:D(e),pixelWidth:D(e),getWidths:Fu.getPixelWidths,getCellDelta:n,singleColumnWidth:function(e,n){return[Math.max(Hu.minWidth(),e+n)-e]},minCellWidth:Hu.minWidth,setElementWidth:uo.setPixelWidth,setTableWidth:function(e,n,t){var r=v(n,function(e,n){return e+n},0);uo.setPixelWidth(e,r)}}}function oi(e,n){var t=uo.percentageBasedSizeRegex().exec(n);if(null!==t)return function(e,n){var o=parseFloat(e),t=Pr(n);return{width:D(o),pixelWidth:D(t),getWidths:Fu.getPercentageWidths,getCellDelta:function(e){return e/t*100},singleColumnWidth:function(e,n){return[100-e]},minCellWidth:function(){return Hu.minWidth()/t*100},setElementWidth:uo.setPercentageWidth,setTableWidth:function(e,n,t){var r=t/100*o;uo.setPercentageWidth(e,o+r)}}}(t[1],e);var r=uo.pixelBasedSizeRegex().exec(n);if(null!==r){var o=parseInt(r[1],10);return ri(o)}var i=Pr(e);return ri(i)}function ii(e){return mt.generate(e)}function ui(e){var n=ft(e);return ii(n)}function ci(n,e){var t=h(e,function(e){return!l(n,e)});0<t.length&&W(t)}function ai(e){return function(e,n){return $u(e,n,{validate:ze,label:"function"})}(ci,e)}function li(e){var n=G(e,"colspan")?parseInt(V(e,"colspan"),10):1,t=G(e,"rowspan")?parseInt(V(e,"rowspan"),10):1;return{element:D(e),colspan:D(n),rowspan:D(t)}}function fi(e,n){var t=e.property().name(n);return l(nc,t)}function si(e,n){return l(["br","img","hr","input"],e.property().name(n))}function di(e){0===lt.cells(e).length&&Wn(e)}function mi(e,n,t){return sc(e,n,t).orThunk(function(){return sc(e,0,0)})}function gi(e,n,t){return fc(e,sc(e,n,t))}function pi(e){return w(e,function(e,n){return m(e,function(e){return e.row()===n.row()})?e:e.concat([n])},[]).sort(function(e,n){return e.row()-n.row()})}function hi(e){return w(e,function(e,n){return m(e,function(e){return e.column()===n.column()})?e:e.concat([n])},[]).sort(function(e,n){return e.column()-n.column()})}function vi(e,n,t){var r=st(e,t),o=mt.generate(r);return bu(o,n,!0)}function bi(e){return e.getBoundingClientRect().width}function wi(e){return e.getBoundingClientRect().height}function yi(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function Ci(e){var n=Be(e,"td[data-mce-style],th[data-mce-style]");Y(e,"data-mce-style"),p(n,function(e){Y(e,"data-mce-style")})}function Si(e){return e.getParam("table_default_attributes",yc,"object")}function xi(e){return e.getParam("table_default_styles",wc,"object")}function Ri(e){return e.getParam("table_cell_advtab",!0,"boolean")}function Ti(e){return e.getParam("table_row_advtab",!0,"boolean")}function Oi(e){return e.getParam("table_advtab",!0,"boolean")}function Di(e){return e.getParam("table_style_by_css",!1,"boolean")}function Ai(e){return e.getParam("table_class_list",[],"array")}function Ei(e){return!1===e.getParam("table_responsive_width")}function Ni(e,n){return e.fire("newrow",{node:n})}function ki(e,n){return e.fire("newcell",{node:n})}function Ii(e,n,t,r){e.fire("ObjectResizeStart",{target:n,width:t,height:r})}function Bi(e,n,t,r){e.fire("ObjectResized",{target:n,width:t,height:r})}function Pi(n,e){function t(e){return J(e,"rgb")?n.toHex(e):e}return{borderwidth:ie(on.fromDom(e),"border-width").getOr(""),borderstyle:ie(on.fromDom(e),"border-style").getOr(""),bordercolor:ie(on.fromDom(e),"border-color").map(t).getOr(""),backgroundcolor:ie(on.fromDom(e),"background-color").map(t).getOr("")}}function Mi(e,n,t,r,o){var i={};return Dc.each(e.split(" "),function(e){r.formatter.matchNode(o,n+e)&&(i[t]=e)}),i[t]||(i[t]=""),i}function Wi(e,n){e.setAttrib("scope",n.scope),e.setAttrib("class",n["class"]),e.setStyle("width",yi(n.width)),e.setStyle("height",yi(n.height))}function _i(e,n){e.setStyle("background-color",n.backgroundcolor),e.setStyle("border-color",n.bordercolor),e.setStyle("border-style",n.borderstyle),e.setStyle("border-width",yi(n.borderwidth))}function Li(e,n,t){var r=e.dom,o=t.celltype&&n[0].nodeName.toLowerCase()!==t.celltype?r.rename(n[0],t.celltype):n[0],i=qc.normal(r,o);Wi(i,t),Ri(e)&&_i(i,t),Nc(e,o),kc(e,o),t.halign&&Ac(e,o,t.halign),t.valign&&Ec(e,o,t.valign)}function ji(t,e,r){var o=t.dom;Dc.each(e,function(e){r.celltype&&e.nodeName.toLowerCase()!==r.celltype&&(e=o.rename(e,r.celltype));var n=qc.ifTruthy(o,e);Wi(n,r),Ri(t)&&_i(n,r),r.halign&&Ac(t,e,r.halign),r.valign&&Ec(t,e,r.valign)})}function zi(e,n,t){var r=t.getData();t.close(),e.undoManager.transact(function(){(1===n.length?Li:ji)(e,n,r),e.focus()})}function Hi(t,e,r,n){var o=t.dom,i=n.getData();n.close();var u=1===e.length?qc.normal:qc.ifTruthy;t.undoManager.transact(function(){Dc.each(e,function(e){i.type!==e.parentNode.nodeName.toLowerCase()&&function(e,n,t){var r=e.getParent(n,"table"),o=n.parentNode,i=e.select(t,r)[0];i||(i=e.create(t),r.firstChild?"CAPTION"===r.firstChild.nodeName?e.insertAfter(i,r.firstChild):r.insertBefore(i,r.firstChild):r.appendChild(i)),i.appendChild(n),o.hasChildNodes()||e.remove(o)}(t.dom,e,i.type);var n=u(o,e);n.setAttrib("scope",i.scope),n.setAttrib("class",i["class"]),n.setStyle("height",yi(i.height)),Ti(t)&&function(e,n){e.setStyle("background-color",n.backgroundcolor),e.setStyle("border-color",n.bordercolor),e.setStyle("border-style",n.borderstyle)}(n,i),i.align!==r.align&&(Nc(t,e),Ac(t,e,i.align))}),t.focus()})}function Fi(e,n,t,r,o){void 0===o&&(o=Qc);var i=on.fromTag("table");re(i,o.styles),q(i,o.attributes);var u=on.fromTag("tbody");Mn(i,u);for(var c=[],a=0;a<e;a++){for(var l=on.fromTag("tr"),f=0;f<n;f++){var s=a<t||f<r?on.fromTag("th"):on.fromTag("td");f<r&&U(s,"scope","row"),a<t&&U(s,"scope","col"),Mn(s,on.fromTag("br")),o.percentages&&te(s,"width",100/n+"%"),Mn(l,s)}c.push(l)}return Ae(u,c),i}function Ui(e,n){e.selection.select(n.dom(),!0),e.selection.collapse(!0)}function qi(t,r,e){var o,i=t.dom,u=e.getData();e.close(),""===u["class"]&&delete u["class"],t.undoManager.transact(function(){if(!r){var e=parseInt(u.cols,10)||1,n=parseInt(u.rows,10)||1;r=Zc(t,e,n)}!function(e,n,t){var r=e.dom,o={},i={};if(o["class"]=t["class"],i.height=yi(t.height),r.getAttrib(n,"width")&&!Di(e)?o.width=function(e){return e?e.replace(/px$/,""):""}(t.width):i.width=yi(t.width),Di(e)?(i["border-width"]=yi(t.border),i["border-spacing"]=yi(t.cellspacing)):(o.border=t.border,o.cellpadding=t.cellpadding,o.cellspacing=t.cellspacing),Di(e)&&n.children)for(var u=0;u<n.children.length;u++)na(r,n.children[u],{"border-width":yi(t.border),padding:yi(t.cellpadding)}),Oi(e)&&na(r,n.children[u],{"border-color":t.bordercolor});Oi(e)&&(i["background-color"]=t.backgroundcolor,i["border-color"]=t.bordercolor,i["border-style"]=t.borderstyle),o.style=r.serializeStyle($c(xi(e),i)),r.setAttribs(n,$c(Si(e),o))}(t,r,u),(o=i.select("caption",r)[0])&&!u.caption&&i.remove(o),!o&&u.caption&&((o=i.create("caption")).innerHTML=Jc.ie?"\xa0":'<br data-mce-bogus="1"/>',r.insertBefore(o,r.firstChild)),""===u.align?Nc(t,r):Ac(t,r,u.align),t.focus(),t.addVisual()})}function Vi(n){return function(e){return Me.from(e.dom.getParent(e.selection.getStart(),n)).map(on.fromDom)}}function Gi(e){function n(){e.stopPropagation()}function t(){e.preventDefault()}var r=on.fromDom(e.target),o=O(t,n);return function(e,n,t,r,o,i,u){return{target:D(e),x:D(n),y:D(t),stop:r,prevent:o,kill:i,raw:D(u)}}(r,e.clientX,e.clientY,n,t,o,e)}function Yi(e,n,t,r,o){var i=function(n,t){return function(e){n(e)&&t(Gi(e))}}(t,r);return e.dom().addEventListener(n,i,o),{unbind:b(sa,e,n,i,o)}}function Ki(e,n,t){return function(e,n,t,r){return Yi(e,n,t,r,!1)}(e,n,da,t)}var Xi,$i=function(e){var n=ft(e);return mt.generate(n).grid()},Ji=function(o,e){function n(e,n){0<e.length?function(e,n){var t=Qn(o,n).getOrThunk(function(){var e=on.fromTag(n,he(o).dom());return Mn(o,e),e});Ee(t);var r=g(e,function(e){e.isNew()&&i.push(e.element());var n=e.element();return Ee(n),p(e.cells(),function(e){e.isNew()&&u.push(e.element()),wo(e.element(),"colspan",e.colspan(),1),wo(e.element(),"rowspan",e.rowspan(),1),Mn(n,e.element())}),n});Ae(t,r)}(e,n):function(e){Qn(o,e).each(Wn)}(n)}var i=[],u=[],t=[],r=[],c=[];return p(e,function(e){switch(e.section()){case"thead":t.push(e);break;case"tbody":r.push(e);break;case"tfoot":c.push(e)}}),n(t,"thead"),n(r,"tbody"),n(c,"tfoot"),{newRows:D(i),newCells:D(u)}},Qi=function(e){return g(e,function(e){var t=Rt(e.element());return p(e.cells(),function(e){var n=Tt(e.element());wo(n,"colspan",e.colspan(),1),wo(n,"rowspan",e.rowspan(),1),Mn(t,n)}),t})},Zi=function(e,n,t){var r=e();return y(r,n).orThunk(function(){return Me.from(r[0]).orThunk(t)}).map(function(e){return e.element()})},eu=function(t){var e=t.grid(),n=Do(0,e.columns()),r=Do(0,e.rows());return g(n,function(n){return Zi(function(){return x(r,function(e){return mt.getAt(t,e,n).filter(function(e){return e.column()===n}).fold(D([]),function(e){return[e]})})},function(e){return 1===e.colspan()},function(){return mt.getAt(t,0,n)})})},nu=function(t){var e=t.grid(),n=Do(0,e.rows()),r=Do(0,e.columns());return g(n,function(n){return Zi(function(){return x(r,function(e){return mt.getAt(t,n,e).filter(function(e){return e.row()===n}).fold(D([]),function(e){return[e]})})},function(e){return 1===e.rowspan()},function(){return mt.getAt(t,n,0)})})},tu={resolve:Eo("ephox-snooker").resolve},ru=function(e,n,t,r,o){var i=on.fromTag("div");return re(i,{position:"absolute",left:n-r/2+"px",top:t+"px",height:o+"px",width:r+"px"}),q(i,{"data-column":e,role:"presentation"}),i},ou=function(e,n,t,r,o){var i=on.fromTag("div");return re(i,{position:"absolute",left:n+"px",top:t-o/2+"px",height:o+"px",width:r+"px"}),q(i,{"data-row":e,role:"presentation"}),i},iu=tu.resolve("resizer-bar"),uu=tu.resolve("resizer-rows"),cu=tu.resolve("resizer-cols"),au=function(e,n,t,r){No(e);var o=ft(n),i=mt.generate(o),u=nu(i),c=eu(i);Io(e,n,u,c,t,r)},lu=function(e){Bo(e,function(e){te(e,"display","none")})},fu=function(e){Bo(e,function(e){te(e,"display","block")})},su=No,du=function(e){return Oo(e,uu)},mu=function(e){return Oo(e,cu)},gu=function(e,n){return Vn(n,e.section())},pu={addCell:function(e,n,t){var r=e.cells(),o=r.slice(0,n),i=r.slice(n),u=o.concat([t]).concat(i);return gu(e,u)},setCells:gu,mutateCell:function(e,n,t){e.cells()[n]=t},getCell:Po,getCellElement:function(e,n){return Po(e,n).element()},mapCells:function(e,n){var t=e.cells(),r=g(t,n);return Vn(r,e.section())},cellLength:function(e){return e.cells().length}},hu=function(e,n,t,r){var o=function(e,n){return e[n]}(e,n).cells().slice(t),i=Mo(o,r),u=function(e,n){return g(e,function(e){return pu.getCell(e,n)})}(e,t).slice(n),c=Mo(u,r);return{colspan:D(i),rowspan:D(c)}},vu=function(o,i){var u=g(o,function(e,n){return g(e.cells(),function(e,n){return!1})});return g(o,function(e,r){var n=x(e.cells(),function(e,n){if(!1!==u[r][n])return[];var t=hu(o,r,n,i);return function(e,n,t,r){for(var o=e;o<e+t;o++)for(var i=n;i<n+r;i++)u[o][i]=!0}(r,n,t.rowspan(),t.colspan()),[zn(e.element(),t.rowspan(),t.colspan(),e.isNew())]});return Gn(n,e.section())})},bu=function(e,n,t){for(var r=[],o=0;o<e.grid().rows();o++){for(var i=[],u=0;u<e.grid().columns();u++){var c=mt.getAt(e,o,u).map(function(e){return Un(e.element(),t)}).getOrThunk(function(){return Un(n.gap(),!0)});i.push(c)}var a=Vn(i,e.all()[o].section());r.push(a)}return r},wu=function(t){return{is:function(e){return t===e},isValue:i,isError:s,getOr:D(t),getOrThunk:D(t),getOrDie:D(t),or:function(e){return wu(t)},orThunk:function(e){return wu(t)},fold:function(e,n){return n(t)},map:function(e){return wu(e(t))},mapError:function(e){return wu(t)},each:function(e){e(t)},bind:function(e){return e(t)},exists:function(e){return e(t)},forall:function(e){return e(t)},toOption:function(){return Me.some(t)}}},yu=function(t){return{is:s,isValue:s,isError:i,getOr:o,getOrThunk:function(e){return e()},getOrDie:function(){return function(e){return function(){throw new Error(e)}}(String(t))()},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,n){return e(t)},map:function(e){return yu(t)},mapError:function(e){return yu(e(t))},each:T,bind:function(e){return yu(t)},exists:s,forall:i,toOption:Me.none}},Cu={value:wu,error:yu,fromOption:function(e,n){return e.fold(function(){return yu(n)},wu)}},Su=function(e,n,t){if(e.row()>=n.length||e.column()>pu.cellLength(n[0]))return Cu.error("invalid start address out of table bounds, row: "+e.row()+", column: "+e.column());var r=n.slice(e.row()),o=r[0].cells().slice(e.column()),i=pu.cellLength(t[0]),u=t.length;return Cu.value({rowDelta:D(r.length-u),colDelta:D(o.length-i)})},xu=function(e,n){var t=pu.cellLength(e[0]),r=pu.cellLength(n[0]);return{rowDelta:D(0),colDelta:D(t-r)}},Ru=function(e,n,t){var r=n.colDelta()<0?Vo:o;return(n.rowDelta()<0?qo:o)(r(e,Math.abs(n.colDelta()),t),Math.abs(n.rowDelta()),t)},Tu=function(e,n,t,r){if(0===e.length)return e;for(var o=n.startRow();o<=n.finishRow();o++)for(var i=n.startCol();i<=n.finishCol();i++)pu.mutateCell(e[o],i,Un(r(),!1));return e},Ou=function(e,n,t,r){for(var o=!0,i=0;i<e.length;i++)for(var u=0;u<pu.cellLength(e[0]);u++){var c=t(pu.getCellElement(e[i],u),n);!0===c&&!1===o?pu.mutateCell(e[i],u,Un(r(),!0)):!0===c&&(o=!1)}return e},Du=function(i,t,u,c){if(0<t&&t<i.length){var e=function(e,t){return w(e,function(e,n){return m(e,function(e){return t(e.element(),n.element())})?e:e.concat([n])},[])}(i[t-1].cells(),u);p(e,function(r){for(var o=Me.none(),e=function(t){for(var e=function(n){var e=i[t].cells()[n];u(e.element(),r.element())&&(o.isNone()&&(o=Me.some(c())),o.each(function(e){pu.mutateCell(i[t],n,Un(e,!0))}))},n=0;n<pu.cellLength(i[0]);n++)e(n)},n=t;n<i.length;n++)e(n)})}return i},Au=function(t,r,o,i,u){return Su(t,r,o).map(function(e){var n=Ru(r,e,i);return function(e,n,t,r,o){for(var i,u,c,a,l,f=e.row(),s=e.column(),d=f+t.length,m=s+pu.cellLength(t[0]),g=f;g<d;g++)for(var p=s;p<m;p++){i=n,u=g,c=p,l=a=void 0,a=b(o,pu.getCell(i[u],c).element()),l=i[u],1<i.length&&1<pu.cellLength(l)&&(0<c&&a(pu.getCellElement(l,c-1))||c<l.cells().length-1&&a(pu.getCellElement(l,c+1))||0<u&&a(pu.getCellElement(i[u-1],c))||u<i.length-1&&a(pu.getCellElement(i[u+1],c)))&&Ou(n,pu.getCellElement(n[g],p),o,r.cell);var h=pu.getCellElement(t[g-f],p-s),v=r.replace(h);pu.mutateCell(n[g],p,Un(v,!0))}return n}(t,n,o,i,u)})},Eu=function(e,n,t,r,o){Du(n,e,o,r.cell);var i=xu(t,n),u=Ru(t,i,r),c=xu(n,u),a=Ru(n,c,r);return a.slice(0,e).concat(u).concat(a.slice(e,a.length))},Nu=function(t,r,e,o,i){var n=t.slice(0,r),u=t.slice(r),c=pu.mapCells(t[e],function(e,n){return 0<r&&r<t.length&&o(pu.getCellElement(t[r-1],n),pu.getCellElement(t[r],n))?pu.getCell(t[r],n):Un(i(e.element(),o),!0)});return n.concat([c]).concat(u)},ku=function(e,t,r,o,i){return g(e,function(e){var n=0<t&&t<pu.cellLength(e)&&o(pu.getCellElement(e,t-1),pu.getCellElement(e,t))?pu.getCell(e,t):Un(i(pu.getCellElement(e,r),o),!0);return pu.addCell(e,t,n)})},Iu=function(e,r,o,i,u){var c=o+1;return g(e,function(e,n){var t=n===r?Un(u(pu.getCellElement(e,o),i),!0):pu.getCell(e,o);return pu.addCell(e,c,t)})},Bu=function(e,n,t,r,o){var i=n+1,u=e.slice(0,i),c=e.slice(i),a=pu.mapCells(e[n],function(e,n){return n===t?Un(o(e.element(),r),!0):e});return u.concat([a]).concat(c)},Pu=function(e,n,t){return e.slice(0,n).concat(e.slice(t+1))},Mu=function(e,t,r){var n=g(e,function(e){var n=e.cells().slice(0,t).concat(e.cells().slice(r+1));return Vn(n,e.section())});return h(n,function(e){return 0<e.cells().length})},Wu=function(t,r,o,e){var n=x(t,function(e,n){return Yo(t,n,r,o)||Ko(e,r,o)?[]:[pu.getCell(e,r)]});return Go(t,n,o,e)},_u=function(t,r,o,e){var i=t[r],n=x(i.cells(),function(e,n){return Yo(t,r,n,o)||Ko(i,n,o)?[]:[e]});return Go(t,n,o,e)},Lu=Sr([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}]),ju=fn({},Lu),zu=function(e,n,i,u){function c(e){return g(e,D(0))}function r(e,n){if(0<=i){var t=Math.max(u.minCellWidth(),a[n]-i);return c(a.slice(0,e)).concat([i,t-a[n]]).concat(c(a.slice(n+1)))}var r=Math.max(u.minCellWidth(),a[e]+i),o=a[e]-r;return c(a.slice(0,e)).concat([r-a[e],o]).concat(c(a.slice(n+1)))}var a=e.slice(0),t=function(e,n){return 0===e.length?ju.none():1===e.length?ju.only(0):0===n?ju.left(0,1):n===e.length-1?ju.right(n-1,n):0<n&&n<e.length-1?ju.middle(n-1,n,n+1):ju.none()}(e,n),o=D(c(a)),l=r;return t.fold(o,function(e){return u.singleColumnWidth(a[e],i)},l,function(e,n,t){return r(n,t)},function(e,n){if(0<=i)return c(a.slice(0,n)).concat([i]);var t=Math.max(u.minCellWidth(),a[n]+i);return c(a.slice(0,n)).concat([t-a[n]])})},Hu={hasColspan:function(e){return Xo(e,"colspan")},hasRowspan:function(e){return Xo(e,"rowspan")},minWidth:D(10),minHeight:D(10),getInt:function(e,n){return parseInt(oe(e,n),10)}},Fu={getRawWidths:function(e,n,t){return Zo(e,n,Jo,ei,t)},getPixelWidths:function(e,n,t){return Zo(e,n,uo.getPixelWidth,function(e){return e.getOrThunk(t.minCellWidth)},t)},getPercentageWidths:function(e,n,t){return Zo(e,n,uo.getPercentageWidth,function(e){return e.fold(function(){return t.minCellWidth()},function(e){return e/t.pixelWidth()*100})},t)},getPixelHeights:function(e,n){return ni(e,n,uo.getHeight,function(e){return e.getOrThunk(Hu.minHeight)})},getRawHeights:function(e,n){return ni(e,n,Qo,ei)}},Uu=function(e,t){var n=mt.justCells(e);return g(n,function(e){var n=ti(e.column(),e.column()+e.colspan(),t);return{element:e.element,width:D(n),colspan:e.colspan}})},qu=function(e,t){var n=mt.justCells(e);return g(n,function(e){var n=ti(e.row(),e.row()+e.rowspan(),t);return{element:e.element,height:D(n),rowspan:e.rowspan}})},Vu=function(e,t){return g(e.all(),function(e,n){return{element:e.element,height:D(t[n])}})},Gu=function(n){return uo.getRawWidth(n).fold(function(){var e=Pr(n);return ri(e)},function(e){return oi(n,e)})},Yu=function(e,n,t,r){var o=Gu(e),i=o.getCellDelta(n),u=ui(e),c=o.getWidths(u,r,o),a=zu(c,t,i,o),l=g(a,function(e,n){return e+c[n]}),f=Uu(u,l);p(f,function(e){o.setElementWidth(e.element(),e.width())}),t===u.grid().columns()-1&&o.setTableWidth(e,l,i)},Ku=function(e,t,r,n){var o=ui(e),i=Fu.getPixelHeights(o,n),u=g(i,function(e,n){return r===n?Math.max(t+e,Hu.minHeight()):e}),c=qu(o,u),a=Vu(o,u);p(a,function(e){uo.setHeight(e.element(),e.height())}),p(c,function(e){uo.setHeight(e.element(),e.height())});var l=function(e){return v(e,function(e,n){return e+n},0)}(u);uo.setHeight(e,l)},Xu=function(e,n,t){var r=Gu(e),o=ii(n),i=r.getWidths(o,t,r),u=Uu(o,i);p(u,function(e){r.setElementWidth(e.element(),e.width())}),0<u.length&&r.setTableWidth(e,i,r.getCellDelta(0))},$u=function(r,o,i){if(0===o.length)throw new Error("You must specify at least one required field.");return _("required",o),L(o),function(n){var t=Ve(n);A(o,function(e){return l(t,e)})||M(o,t),r(o,t);var e=h(o,function(e){return!i.validate(n[e],e)});return 0<e.length&&function(e,n){throw new Error("All values need to be of type: "+n+". Keys ("+P(e).join(", ")+") were not.")}(e,i.label),n}},Ju=ai(["cell","row","replace","gap"]),Qu=function(n,t){void 0===t&&(t=li),Ju(n);function r(e){return function(e){return n.cell(e)}(t(e))}function o(e){var n=r(e);return i.get().isNone()&&i.set(Me.some(n)),u=Me.some({item:e,replacement:n}),n}var i=R(Me.none()),u=Me.none();return{getOrInit:function(n,t){return u.fold(function(){return o(n)},function(e){return t(n,e.item)?e.replacement:o(n)})},cursor:i.get}},Zu=function(c,a){return function(r){var o=R(Me.none());Ju(r);function i(e){var n={scope:c},t=r.replace(e,a,n);return u.push({item:e,sub:t}),o.get().isNone()&&o.set(Me.some(t)),t}var u=[];return{replaceOrInit:function(n,t){return function(n,t){return y(u,function(e){return t(e.item,n)})}(n,t).fold(function(){return i(n)},function(e){return t(n,e.item)?e.sub:i(n)})},cursor:o.get}}},ec=function(t){Ju(t);var e=R(Me.none());return{combine:function(n){return e.get().isNone()&&e.set(Me.some(n)),function(){var e=t.cell({element:D(n),colspan:D(1),rowspan:D(1)});return ue(e,"width"),ue(n,"width"),e}},cursor:e.get}},nc=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","table","thead","tfoot","tbody","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],tc=fi,rc=function(e,n){var t=e.property().name(n);return l(["ol","ul"],t)},oc=si,ic=$t(),uc=function(e){return tc(ic,e)},cc=function(e){return rc(ic,e)},ac=function(e){return oc(ic,e)},lc=function(e){function o(e){return"br"===en(e)}function t(r){return St(r).bind(function(n){var t=function(e){return ye(e).map(function(e){return!!uc(e)||!!ac(e)&&"img"!==en(e)}).getOr(!1)}(n);return ve(n).map(function(e){return!0===t||function(e){return"li"===en(e)||$n(e,cc).isSome()}(e)||o(n)||uc(e)&&!In(r,e)?[]:[on.fromTag("br")]})}).getOr([])}var n,r=0===(n=x(e,function(e){var n=Ce(e);return function(e){return A(e,function(e){return o(e)||tn(e)&&0===ht(e).trim().length})}(n)?[]:n.concat(t(e))})).length?[on.fromTag("br")]:n;Ee(e[0]),Ae(e[0],r)},fc=B("grid","cursor"),sc=function(e,n,t){return Me.from(e[n]).bind(function(e){return Me.from(e.cells()[t]).bind(function(e){return Me.from(e.element())})})},dc=Xu,mc={insertRowBefore:jo(function(e,n,t,r){var o=n.row(),i=n.row(),u=Nu(e,i,o,t,r.getOrInit);return gi(u,i,n.column())},zo,T,T,Qu),insertRowsBefore:jo(function(e,n,t,r){var o=n[0].row(),i=n[0].row(),u=pi(n),c=w(u,function(e,n){return Nu(e,i,o,t,r.getOrInit)},e);return gi(c,i,n[0].column())},Fo,T,T,Qu),insertRowAfter:jo(function(e,n,t,r){var o=n.row(),i=n.row()+n.rowspan(),u=Nu(e,i,o,t,r.getOrInit);return gi(u,i,n.column())},zo,T,T,Qu),insertRowsAfter:jo(function(e,n,t,r){var o=pi(n),i=o[o.length-1].row(),u=o[o.length-1].row()+o[o.length-1].rowspan(),c=w(o,function(e,n){return Nu(e,u,i,t,r.getOrInit)},e);return gi(c,u,n[0].column())},Fo,T,T,Qu),insertColumnBefore:jo(function(e,n,t,r){var o=n.column(),i=n.column(),u=ku(e,i,o,t,r.getOrInit);return gi(u,n.row(),i)},zo,dc,T,Qu),insertColumnsBefore:jo(function(e,n,t,r){var o=hi(n),i=o[0].column(),u=o[0].column(),c=w(o,function(e,n){return ku(e,u,i,t,r.getOrInit)},e);return gi(c,n[0].row(),u)},Fo,dc,T,Qu),insertColumnAfter:jo(function(e,n,t,r){var o=n.column(),i=n.column()+n.colspan(),u=ku(e,i,o,t,r.getOrInit);return gi(u,n.row(),i)},zo,dc,T,Qu),insertColumnsAfter:jo(function(e,n,t,r){var o=n[n.length-1].column(),i=n[n.length-1].column()+n[n.length-1].colspan(),u=hi(n),c=w(u,function(e,n){return ku(e,i,o,t,r.getOrInit)},e);return gi(c,n[0].row(),i)},Fo,dc,T,Qu),splitCellIntoColumns:jo(function(e,n,t,r){var o=Iu(e,n.row(),n.column(),t,r.getOrInit);return gi(o,n.row(),n.column())},zo,dc,T,Qu),splitCellIntoRows:jo(function(e,n,t,r){var o=Bu(e,n.row(),n.column(),t,r.getOrInit);return gi(o,n.row(),n.column())},zo,T,T,Qu),eraseColumns:jo(function(e,n,t,r){var o=hi(n),i=Mu(e,o[0].column(),o[o.length-1].column()),u=mi(i,n[0].row(),n[0].column());return fc(i,u)},Fo,dc,di,Qu),eraseRows:jo(function(e,n,t,r){var o=pi(n),i=Pu(e,o[0].row(),o[o.length-1].row()),u=mi(i,n[0].row(),n[0].column());return fc(i,u)},Fo,T,di,Qu),makeColumnHeader:jo(function(e,n,t,r){var o=Wu(e,n.column(),t,r.replaceOrInit);return gi(o,n.row(),n.column())},zo,T,T,Zu("row","th")),unmakeColumnHeader:jo(function(e,n,t,r){var o=Wu(e,n.column(),t,r.replaceOrInit);return gi(o,n.row(),n.column())},zo,T,T,Zu(null,"td")),makeRowHeader:jo(function(e,n,t,r){var o=_u(e,n.row(),t,r.replaceOrInit);return gi(o,n.row(),n.column())},zo,T,T,Zu("col","th")),unmakeRowHeader:jo(function(e,n,t,r){var o=_u(e,n.row(),t,r.replaceOrInit);return gi(o,n.row(),n.column())},zo,T,T,Zu(null,"td")),mergeCells:jo(function(e,n,t,r){var o=n.cells();lc(o);var i=Tu(e,n.bounds(),t,D(o[0]));return fc(i,Me.from(o[0]))},function(e,n){return n.mergable()},T,T,ec),unmergeCells:jo(function(e,n,t,r){var o=v(n,function(e,n){return Ou(e,n,t,r.combine(n))},e);return fc(o,Me.from(n[0]))},function(e,n){return n.unmergable()},dc,T,ec),pasteCells:jo(function(e,t,n,r){var o,i,u,c,a=(o=t.clipboard(),i=t.generators(),u=ft(o),c=mt.generate(u),bu(c,i,!0)),l=Ln(t.row(),t.column());return Au(l,e,a,t.generators(),n).fold(function(){return fc(e,Me.some(t.element()))},function(e){var n=mi(e,t.row(),t.column());return fc(e,n)})},function(n,t){return lt.cell(t.element()).bind(function(e){return Lo(n,e).map(function(e){return fn(fn({},e),{generators:t.generators,clipboard:t.clipboard})})})},dc,T,Qu),pasteRowsBefore:jo(function(e,n,t,r){var o=e[n.cells[0].row()],i=n.cells[0].row(),u=vi(n.clipboard(),n.generators(),o),c=Eu(i,e,u,n.generators(),t),a=mi(c,n.cells[0].row(),n.cells[0].column());return fc(c,a)},Ho,T,T,Qu),pasteRowsAfter:jo(function(e,n,t,r){var o=e[n.cells[0].row()],i=n.cells[n.cells.length-1].row()+n.cells[n.cells.length-1].rowspan(),u=vi(n.clipboard(),n.generators(),o),c=Eu(i,e,u,n.generators(),t),a=mi(c,n.cells[0].row(),n.cells[0].column());return fc(c,a)},Ho,T,T,Qu)},gc=function(e){return on.fromDom(e.getBody())},pc=function(n){return function(e){return In(e,gc(n))}},hc={isRtl:D(!1)},vc={isRtl:D(!0)},bc={directionAt:function(e){return"rtl"===function(e){return"rtl"===oe(e,"direction")?"rtl":"ltr"}(e)?vc:hc}},wc={"border-collapse":"collapse",width:"100%"},yc={border:"1"},Cc=function(e){return e.getParam("table_tab_navigation",!0,"boolean")},Sc=function(e){var n=e.getParam("table_clone_elements");return _e(n)?Me.some(n.split(/[ ,]/)):Array.isArray(n)?Me.some(n):Me.none()},xc=function(e,n,t,r,o){e.fire("TableSelectionChange",{cells:n,start:t,finish:r,otherCells:o})},Rc=function(e){e.fire("TableSelectionClear")},Tc=function(f,e){function t(e){return"table"===en(gc(e))}function n(u,c,a,l){return function(e,n){Ci(e);var t=l(),r=on.fromDom(f.getDoc()),o=ho(bc.directionAt),i=Wt.cellOperations(a,r,s);return c(e)?u(t,e,n,i,o).bind(function(e){return p(e.newRows(),function(e){Ni(f,e.dom())}),p(e.newCells(),function(e){ki(f,e.dom())}),e.cursor().map(function(e){var n=f.dom.createRng();return n.setStart(e.dom(),0),n.setEnd(e.dom(),0),n})}):Me.none()}}var s=Sc(f);return{deleteRow:n(mc.eraseRows,function(e){var n=$i(e);return!1===t(f)||1<n.rows()},T,e),deleteColumn:n(mc.eraseColumns,function(e){var n=$i(e);return!1===t(f)||1<n.columns()},T,e),insertRowsBefore:n(mc.insertRowsBefore,i,T,e),insertRowsAfter:n(mc.insertRowsAfter,i,T,e),insertColumnsBefore:n(mc.insertColumnsBefore,i,co,e),insertColumnsAfter:n(mc.insertColumnsAfter,i,co,e),mergeCells:n(mc.mergeCells,i,T,e),unmergeCells:n(mc.unmergeCells,i,T,e),pasteRowsBefore:n(mc.pasteRowsBefore,i,T,e),pasteRowsAfter:n(mc.pasteRowsAfter,i,T,e),pasteCells:n(mc.pasteCells,i,T,e)}},Oc=function(e,n,r){var t=ft(e),o=mt.generate(t);return Fo(o,n).map(function(e){var n=bu(o,r,!1).slice(e[0].row(),e[e.length-1].row()+e[e.length-1].rowspan()),t=_o(n,r);return Qi(t)})},Dc=tinymce.util.Tools.resolve("tinymce.util.Tools"),Ac=function(e,n,t){t&&e.formatter.apply("align"+t,{},n)},Ec=function(e,n,t){t&&e.formatter.apply("valign"+t,{},n)},Nc=function(n,t){Dc.each("left center right".split(" "),function(e){n.formatter.remove("align"+e,{},t)})},kc=function(n,t){Dc.each("top middle bottom".split(" "),function(e){n.formatter.remove("valign"+e,{},t)})},Ic=function(o,e,i){var n;return n=function(e,n){for(var t=0;t<n.length;t++){var r=o.getStyle(n[t],i);if(void 0===e&&(e=r),e!==r)return""}return e}(n,o.select("td,th",e))},Bc=b(Mi,"left center right"),Pc=b(Mi,"top middle bottom"),Mc=function(e,r,n){var o=function(e,t){return t=t||[],Dc.each(e,function(e){var n={text:e.text||e.title};e.menu?n.menu=o(e.menu):(n.value=e.value,r&&r(n)),t.push(n)}),t};return o(e,n||[])},Wc=function(e){var o=e[0],n=e.slice(1),t=Ve(o);return p(n,function(e){p(t,function(r){N(e,function(e,n){var t=o[r];""!==t&&r===n&&t!==e&&(o[r]="")})})}),o},_c=function(e){var n=[{name:"borderstyle",type:"selectbox",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]},{name:"bordercolor",type:"colorinput",label:"Border color"},{name:"backgroundcolor",type:"colorinput",label:"Background color"}];return{title:"Advanced",name:"advanced",items:"cell"===e?[{name:"borderwidth",type:"input",label:"Border width"}].concat(n):n}},Lc=function(e,n,t){var r,o,i,u=e.dom;return fn(fn({width:u.getStyle(n,"width")||u.getAttrib(n,"width"),height:u.getStyle(n,"height")||u.getAttrib(n,"height"),cellspacing:u.getStyle(n,"border-spacing")||u.getAttrib(n,"cellspacing"),cellpadding:u.getAttrib(n,"cellpadding")||Ic(e.dom,n,"padding"),border:(r=u,o=n,i=ie(on.fromDom(o),"border-width"),Di(e)&&i.isSome()?i.getOr(""):r.getAttrib(o,"border")||Ic(e.dom,o,"border-width")||Ic(e.dom,o,"border")),caption:!!u.select("caption",n)[0],"class":u.getAttrib(n,"class","")},Bc("align","align",e,n)),t?Pi(u,n):{})},jc=function(e,n,t){var r=e.dom;return fn(fn({height:r.getStyle(n,"height")||r.getAttrib(n,"height"),scope:r.getAttrib(n,"scope"),"class":r.getAttrib(n,"class",""),align:"",type:n.parentNode.nodeName.toLowerCase()},Bc("align","align",e,n)),t?Pi(r,n):{})},zc=function(e,n,t){var r=e.dom;return fn(fn(fn({width:r.getStyle(n,"width")||r.getAttrib(n,"width"),height:r.getStyle(n,"height")||r.getAttrib(n,"height"),scope:r.getAttrib(n,"scope"),celltype:n.nodeName.toLowerCase(),"class":r.getAttrib(n,"class","")},Bc("align","halign",e,n)),Pc("valign","valign",e,n)),t?Pi(r,n):{})},Hc=function(e,n){var t,r,o,i,u=xi(e),c=Si(e),a=e.dom,l=n?(t=a,r=I(u,"border-style").getOr(""),o=I(u,"border-color").getOr(""),i=I(u,"background-color").getOr(""),{borderstyle:r,bordercolor:f(o),backgroundcolor:f(i)}):{};function f(e){return J(e,"rgb")?t.toHex(e):e}var s,d,m;return fn(fn(fn(fn(fn(fn({},{height:"",width:"100%",cellspacing:"",cellpadding:"",caption:!1,"class":"",align:"",border:""}),u),c),l),(m=u["border-width"],Di(e)&&m?{border:m}:I(c,"border").fold(function(){return{}},function(e){return{border:e}}))),(s=I(u,"border-spacing").or(I(c,"cellspacing")).fold(function(){return{}},function(e){return{cellspacing:e}}),d=I(u,"border-padding").or(I(c,"cellpadding")).fold(function(){return{}},function(e){return{cellpadding:e}}),fn(fn({},s),d)))},Fc=[{name:"width",type:"input",label:"Width"},{name:"height",type:"input",label:"Height"},{name:"celltype",type:"selectbox",label:"Cell type",items:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{name:"scope",type:"selectbox",label:"Scope",items:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{name:"halign",type:"selectbox",label:"H Align",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{name:"valign",type:"selectbox",label:"V Align",items:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}],Uc=function(e){return function(n){var e=function(e){return e.getParam("table_cell_class_list",[],"array")}(n),t=Mc(e,function(e){e.value&&(e.textStyle=function(){return n.formatter.getCssText({block:"tr",classes:[e.value]})})});return 0<e.length?Me.some({name:"class",type:"selectbox",label:"Class",items:t}):Me.none()}(e).fold(function(){return Fc},function(e){return Fc.concat(e)})},qc={normal:function(t,r){return{setAttrib:function(e,n){t.setAttrib(r,e,n)},setStyle:function(e,n){t.setStyle(r,e,n)}}},ifTruthy:function(t,r){return{setAttrib:function(e,n){n&&t.setAttrib(r,e,n)},setStyle:function(e,n){n&&t.setStyle(r,e,n)}}}},Vc=function(n){var e,t=[];if(t=n.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=n.dom.getParent(n.selection.getStart(),"td,th"),!t.length&&e&&t.push(e),e=e||t[0]){var r=Dc.map(t,function(e){return zc(n,e,Ri(n))}),o=Wc(r),i={type:"tabpanel",tabs:[{title:"General",name:"general",items:Uc(n)},_c("cell")]},u={type:"panel",items:[{type:"grid",columns:2,items:Uc(n)}]};n.windowManager.open({title:"Cell Properties",size:"normal",body:Ri(n)?i:u,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:o,onSubmit:b(zi,n,t)})}},Gc=[{type:"selectbox",name:"type",label:"Row type",items:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"selectbox",name:"align",label:"Alignment",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height",type:"input"}],Yc=function(e){return function(n){var e=function(e){return e.getParam("table_row_class_list",[],"array")}(n),t=Mc(e,function(e){e.value&&(e.textStyle=function(){return n.formatter.getCssText({block:"tr",classes:[e.value]})})});return 0<e.length?Me.some({name:"class",type:"selectbox",label:"Class",items:t}):Me.none()}(e).fold(function(){return Gc},function(e){return Gc.concat(e)})},Kc=function(n){var e,t,r=n.dom,o=[];if((e=r.getParent(n.selection.getStart(),"table"))&&(t=r.getParent(n.selection.getStart(),"td,th"),Dc.each(e.rows,function(n){Dc.each(n.cells,function(e){if((r.getAttrib(e,"data-mce-selected")||e===t)&&o.indexOf(n)<0)return o.push(n),!1})}),o[0])){var i=Dc.map(o,function(e){return jc(n,e,Ti(n))}),u=Wc(i),c={type:"tabpanel",tabs:[{title:"General",name:"general",items:Yc(n)},_c("row")]},a={type:"panel",items:[{type:"grid",columns:2,items:Yc(n)}]};n.windowManager.open({title:"Row Properties",size:"normal",body:Ti(n)?c:a,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:u,onSubmit:b(Hi,n,o,u)})}},Xc=Object.prototype.hasOwnProperty,$c=(Xi=function(e,n){return n},function(){for(var e=new Array(arguments.length),n=0;n<e.length;n++)e[n]=arguments[n];if(0===e.length)throw new Error("Can't merge zero objects");for(var t={},r=0;r<e.length;r++){var o=e[r];for(var i in o)Xc.call(o,i)&&(t[i]=Xi(t[i],o[i]))}return t}),Jc=tinymce.util.Tools.resolve("tinymce.Env"),Qc={styles:{"border-collapse":"collapse",width:"100%"},attributes:{border:"1"},percentages:!0},Zc=function(n,e,t){var r=xi(n),o={styles:r,attributes:Si(n),percentages:function(e){return _e(e)&&-1!==e.indexOf("%")}(r.width)&&!Ei(n)},i=Fi(t,e,0,0,o);U(i,"data-mce-id","__mce");var u=function(e){var n=on.fromTag("div"),t=on.fromDom(e.dom().cloneNode(!0));return Mn(n,t),function(e){return e.dom().innerHTML}(n)}(i);return n.insertContent(u),Zn(gc(n),'table[data-mce-id="__mce"]').map(function(e){return Ei(n)&&te(e,"width",oe(e,"width")),Y(e,"data-mce-id"),function(n,e){p(Be(e,"tr"),function(e){Ni(n,e.dom()),p(Be(e,"th,td"),function(e){ki(n,e.dom())})})}(n,e),function(e,n){Zn(n,"td,th").each(b(Ui,e))}(n,e),e.dom()}).getOr(null)},ea=function(n,e,t){var r=t?[{type:"input",name:"cols",label:"Cols",inputMode:"numeric"},{type:"input",name:"rows",label:"Rows",inputMode:"numeric"}]:[],o=function(e){return e.getParam("table_appearance_options",!0,"boolean")}(n)?[{type:"input",name:"cellspacing",label:"Cell spacing",inputMode:"numeric"},{type:"input",name:"cellpadding",label:"Cell padding",inputMode:"numeric"},{type:"input",name:"border",label:"Border width"},{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[],i=e?[{type:"selectbox",name:"class",label:"Class",items:Mc(Ai(n),function(e){e.value&&(e.textStyle=function(){return n.formatter.getCssText({block:"table",classes:[e.value]})})})}]:[];return r.concat([{type:"input",name:"width",label:"Width"},{type:"input",name:"height",label:"Height"}]).concat(o).concat([{type:"selectbox",name:"align",label:"Alignment",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]).concat(i)},na=function(e,n,t,r){if("TD"===n.tagName||"TH"===n.tagName)_e(t)?e.setStyle(n,t,r):e.setStyle(n,t);else if(n.children)for(var o=0;o<n.children.length;o++)na(e,n.children[o],t,r)},ta=function(e,n){var t,r=e.dom,o=Hc(e,Oi(e));!1===n?(t=r.getParent(e.selection.getStart(),"table"))?o=Lc(e,t,Oi(e)):Oi(e)&&(o.borderstyle="",o.bordercolor="",o.backgroundcolor=""):(o.cols="1",o.rows="1",Oi(e)&&(o.borderstyle="",o.bordercolor="",o.backgroundcolor=""));var i=0<Ai(e).length;i&&o["class"]&&(o["class"]=o["class"].replace(/\s*mce\-item\-table\s*/g,""));var u={type:"grid",columns:2,items:ea(e,i,n)},c=Oi(e)?{type:"tabpanel",tabs:[{title:"General",name:"general",items:[u]},_c("table")]}:{type:"panel",items:[u]};e.windowManager.open({title:"Table Properties",size:"normal",body:c,onSubmit:b(qi,e,t),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:o})},ra=Vi("th,td"),oa=Vi("th,td,caption"),ia=Dc.each,ua={registerCommands:function(c,n,a,l,t){function f(e){return lt.table(e,s)}function i(e){return{width:bi(e.dom()),height:bi(e.dom())}}function r(o){ra(c).each(function(r){f(r).each(function(n){var e=Er.forMenu(l,n,r),t=i(n);o(n,e).each(function(e){!function(e,n,t){var r=i(t);n.width===r.width&&n.height===r.height||(Ii(e,t.dom(),n.width,n.height),Bi(e,t.dom(),r.width,r.height))}(c,t,n),c.selection.setRng(e),c.focus(),a.clear(n),Ci(n)})})})}function o(e){return ra(c).map(function(o){return f(o).bind(function(e){var n=on.fromDom(c.getDoc()),t=Er.forMenu(l,e,o),r=Wt.cellOperations(T,n,Me.none());return Oc(e,t,r)})})}function u(u){t.get().each(function(e){var i=g(e,function(e){return Tt(e)});ra(c).each(function(o){f(o).each(function(n){var e=on.fromDom(c.getDoc()),t=Wt.paste(e),r=Er.pasteRows(l,n,o,i,t);u(n,r).each(function(e){c.selection.setRng(e),c.focus(),a.clear(n)})})})})}var s=pc(c);ia({mceTableSplitCells:function(){r(n.unmergeCells)},mceTableMergeCells:function(){r(n.mergeCells)},mceTableInsertRowBefore:function(){r(n.insertRowsBefore)},mceTableInsertRowAfter:function(){r(n.insertRowsAfter)},mceTableInsertColBefore:function(){r(n.insertColumnsBefore)},mceTableInsertColAfter:function(){r(n.insertColumnsAfter)},mceTableDeleteCol:function(){r(n.deleteColumn)},mceTableDeleteRow:function(){r(n.deleteRow)},mceTableCutRow:function(e){o().each(function(e){t.set(e),r(n.deleteRow)})},mceTableCopyRow:function(e){o().each(function(e){t.set(e)})},mceTablePasteRowBefore:function(e){u(n.pasteRowsBefore)},mceTablePasteRowAfter:function(e){u(n.pasteRowsAfter)},mceTableDelete:function(){oa(c).each(function(e){lt.table(e,s).filter(d(s)).each(function(e){var n=on.fromText("");if(Re(e,n),Wn(e),c.dom.isEmpty(c.getBody()))c.setContent(""),c.selection.setCursorLocation();else{var t=c.dom.createRng();t.setStart(n.dom(),0),t.setEnd(n.dom(),0),c.selection.setRng(t),c.nodeChanged()}})})}},function(e,n){c.addCommand(n,e)}),ia({mceInsertTable:b(ta,c,!0),mceTableProps:b(ta,c,!1),mceTableRowProps:b(Kc,c),mceTableCellProps:b(Vc,c)},function(e,n){c.addCommand(n,function(){e()})})}},ca=function(e){var n=Me.from(e.dom().documentElement).map(on.fromDom).getOr(e);return{parent:D(n),view:D(e),origin:D(lo(0,0))}},aa=function(e,n){return{parent:D(n),view:D(e),origin:D(lo(0,0))}},la=function(e){var r=B.apply(null,e),o=[];return{bind:function(e){if(e===undefined)throw new Error("Event bind error: undefined handler");o.push(e)},unbind:function(n){o=h(o,function(e){return e!==n})},trigger:function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var t=r.apply(null,e);p(o,function(e){e(t)})}}},fa={create:function(e){return{registry:k(e,function(e){return{bind:e.bind,unbind:e.unbind}}),trigger:k(e,function(e){return e.trigger})}}},sa=function(e,n,t,r){e.dom().removeEventListener(n,t,r)},da=D(!0),ma={resolve:Eo("ephox-dragster").resolve},ga=ai(["compare","extract","mutate","sink"]),pa=ai(["element","start","stop","destroy"]),ha=ai(["forceDrop","drop","move","delayDrop"]),va=ga({compare:function(e,n){return lo(n.left()-e.left(),n.top()-e.top())},extract:function(e){return Me.some(lo(e.x(),e.y()))},sink:function(e,n){var t=function(e){var n=$c({layerClass:ma.resolve("blocker")},e),t=on.fromTag("div");U(t,"role","presentation"),re(t,{position:"fixed",left:"0px",top:"0px",width:"100%",height:"100%"}),Ro(t,ma.resolve("blocker")),Ro(t,n.layerClass);return{element:function(){return t},destroy:function(){Wn(t)}}}(n),r=Ki(t.element(),"mousedown",e.forceDrop),o=Ki(t.element(),"mouseup",e.drop),i=Ki(t.element(),"mousemove",e.move),u=Ki(t.element(),"mouseout",e.delayDrop);return pa({element:t.element,start:function(e){Mn(e,t.element())},stop:function(){Wn(t.element())},destroy:function(){t.destroy(),o.unbind(),i.unbind(),u.unbind(),r.unbind()}})},mutate:function(e,n){e.mutate(n.left(),n.top())}});function ba(){var r=Me.none(),t=fa.create({move:la(["info"])});return{onEvent:function(e,n){n.extract(e).each(function(e){(function(n,t){var e=r.map(function(e){return n.compare(e,t)});return r=Me.some(t),e})(n,e).each(function(e){t.trigger.move(e)})})},reset:function(){r=Me.none()},events:t.registry}}function wa(){var e=function r(){return{onEvent:T,reset:T}}(),n=ba(),t=e;return{on:function(){t.reset(),t=n},off:function(){t.reset(),t=e},isOn:function(){return t===n},onEvent:function(e,n){t.onEvent(e,n)},events:n.events}}function ya(){var t=fa.create({drag:la(["xDelta","yDelta","target"])}),r=Me.none(),e=function(){var t=fa.create({drag:la(["xDelta","yDelta"])});return{mutate:function(e,n){t.trigger.drag(e,n)},events:t.registry}}();return e.events.drag.bind(function(n){r.each(function(e){t.trigger.drag(n.xDelta(),n.yDelta(),e)})}),{assign:function(e){r=Me.some(e)},get:function(){return r},mutate:e.mutate,events:t.registry}}function Ca(e){return"true"===V(e,"contenteditable")}function Sa(o,n,i){function e(e,n){return Me.from(V(e,n))}var t=ya(),r=vl(t,{}),u=Me.none();function c(e,n){return Hu.getInt(e,n)-parseInt(V(e,"data-initial-"+n),10)}function a(e,n){m.trigger.startAdjust(),t.assign(e),U(e,"data-initial-"+n,parseInt(oe(e,n),10)),Ro(e,bl),te(e,"opacity","0.2"),r.go(o.parent())}function l(e){return In(e,o.view())}function f(e){return et(e,"table",l).filter(function(e){return function(e,n){return et(e,"[contenteditable]",n)}(e,l).exists(Ca)})}t.events.drag.bind(function(t){e(t.target(),"data-row").each(function(e){var n=Hu.getInt(t.target(),"top");te(t.target(),"top",n+t.yDelta()+"px")}),e(t.target(),"data-column").each(function(e){var n=Hu.getInt(t.target(),"left");te(t.target(),"left",n+t.xDelta()+"px")})}),r.events.stop.bind(function(){t.get().each(function(r){u.each(function(t){e(r,"data-row").each(function(e){var n=c(r,"top");Y(r,"data-initial-top"),m.trigger.adjustHeight(t,n,parseInt(e,10))}),e(r,"data-column").each(function(e){var n=c(r,"left");Y(r,"data-initial-left"),m.trigger.adjustWidth(t,n,parseInt(e,10))}),au(o,t,i,n)})})});var s=Ki(o.parent(),"mousedown",function(e){du(e.target())&&a(e.target(),"top"),mu(e.target())&&a(e.target(),"left")}),d=Ki(o.view(),"mouseover",function(e){f(e.target()).fold(function(){ee(e.target())&&su(o)},function(e){u=Me.some(e),au(o,e,i,n)})}),m=fa.create({adjustHeight:la(["table","delta","row"]),adjustWidth:la(["table","delta","column"]),startAdjust:la([])});return{destroy:function(){s.unbind(),d.unbind(),r.destroy(),su(o)},refresh:function(e){au(o,e,i,n)},on:r.on,off:r.off,hideBars:b(lu,o),showBars:b(fu,o),events:m.registry}}function xa(e,n){return bi(e.dom())/bi(n.dom())*100+"%"}function Ra(t,e){return lt.table(t,e).bind(function(e){var n=lt.cells(e);return C(n,function(e){return In(t,e)}).map(function(e){return{index:D(e),all:D(n)}})})}function Ta(e,n,t){var r=e.document.createRange();return function(t,e){e.fold(function(e){t.setStartBefore(e.dom())},function(e,n){t.setStart(e.dom(),n)},function(e){t.setStartAfter(e.dom())})}(r,n),function(t,e){e.fold(function(e){t.setEndBefore(e.dom())},function(e,n){t.setEnd(e.dom(),n)},function(e){t.setEndAfter(e.dom())})}(r,t),r}function Oa(e,n,t,r,o){var i=e.document.createRange();return i.setStart(n.dom(),t),i.setEnd(r.dom(),o),i}function Da(e){return{left:D(e.left),top:D(e.top),right:D(e.right),bottom:D(e.bottom),width:D(e.width),height:D(e.height)}}function Aa(e,n,t){return n(on.fromDom(t.startContainer),t.startOffset,on.fromDom(t.endContainer),t.endOffset)}function Ea(e,n){return function(e,n){var t=n.ltr();return t.collapsed?n.rtl().filter(function(e){return!1===e.collapsed}).map(function(e){return Bl.rtl(on.fromDom(e.endContainer),e.endOffset,on.fromDom(e.startContainer),e.startOffset)}).getOrThunk(function(){return Aa(0,Bl.ltr,t)}):Aa(0,Bl.ltr,t)}(0,function(o,e){return e.match({domRange:function(e){return{ltr:D(e),rtl:Me.none}},relative:function(e,n){return{ltr:Z(function(){return Ta(o,e,n)}),rtl:Z(function(){return Me.some(Ta(o,n,e))})}},exact:function(e,n,t,r){return{ltr:Z(function(){return Oa(o,e,n,t,r)}),rtl:Z(function(){return Me.some(Oa(o,t,r,e,n))})}}})}(e,n))}function Na(e,n,t){return n>=e.left&&n<=e.right&&t>=e.top&&t<=e.bottom}function ka(t,r,e,n,o){function i(e){var n=t.dom().createRange();return n.setStart(r.dom(),e),n.collapse(!0),n}var u=ht(r).length,c=function(e,n,t,r,o){if(0===o)return 0;if(n===r)return o-1;for(var i=r,u=1;u<o;u++){var c=e(u),a=Math.abs(n-c.left);if(t<=c.bottom){if(t<c.top||i<a)return u-1;i=a}}return 0}(function(e){return i(e).getBoundingClientRect()},e,n,o.right,u);return i(c)}function Ia(e,n){return n-e.left<e.right-n}function Ba(e,n,t){var r=e.dom().createRange();return r.selectNode(n.dom()),r.collapse(t),r}function Pa(n,e,t){var r=n.dom().createRange();r.selectNode(e.dom());var o=r.getBoundingClientRect(),i=Ia(o,t);return(!0===i?Ct:St)(e).map(function(e){return Ba(n,e,i)})}function Ma(e,n,t){var r=n.dom().getBoundingClientRect(),o=Ia(r,t);return Me.some(Ba(e,n,o))}function Wa(e,n,t,r){var o=e.dom().createRange();o.selectNode(n.dom());var i=o.getBoundingClientRect();return function(e,n,t,r){var o=e.dom().createRange();o.selectNode(n.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,t)),c=Math.max(i.top,Math.min(i.bottom,r));return Ml(e,n,u,c)}(e,n,Math.max(i.left,Math.min(i.right,t)),Math.max(i.top,Math.min(i.bottom,r)))}function _a(e,n){var t=en(e);return"input"===t?El.after(e):l(["br","img"],t)?0===n?El.before(e):El.after(e):El.on(e,n)}function La(e,n){var t=e.fold(El.before,_a,El.after),r=n.fold(El.before,_a,El.after);return kl.relative(t,r)}function ja(e,n,t,r){var o=_a(e,n),i=_a(t,r);return kl.relative(o,i)}function za(e,n,t,r){var o=function(e,n,t,r){var o=he(e).dom().createRange();return o.setStart(e.dom(),n),o.setEnd(t.dom(),r),o}(e,n,t,r),i=In(e,t)&&n===r;return o.collapsed&&!i}function Ha(e,n){Me.from(e.getSelection()).each(function(e){e.removeAllRanges(),e.addRange(n)})}function Fa(e,n,t,r,o){var i=Oa(e,n,t,r,o);Ha(e,i)}function Ua(u,e){return Ea(u,e).match({ltr:function(e,n,t,r){Fa(u,e,n,t,r)},rtl:function(e,n,t,r){var o=u.getSelection();if(o.setBaseAndExtent)o.setBaseAndExtent(e.dom(),n,t.dom(),r);else if(o.extend)try{!function(e,n,t,r,o,i){n.collapse(t.dom(),r),n.extend(o.dom(),i)}(0,o,e,n,t,r)}catch(i){Fa(u,t,r,e,n)}else Fa(u,t,r,e,n)}})}function qa(e,n,t,r,o){var i=ja(n,t,r,o);Ua(e,i)}function Va(e,n,t){var r=La(n,t);Ua(e,r)}function Ga(e){function n(e,n,t,r){return Oa(o,e,n,t,r)}var o=kl.getWin(e).dom(),t=function(e){return e.match({domRange:function(e){var n=on.fromDom(e.startContainer),t=on.fromDom(e.endContainer);return ja(n,e.startOffset,t,e.endOffset)},relative:La,exact:ja})}(e);return Ea(o,t).match({ltr:n,rtl:n})}function Ya(e){var n=on.fromDom(e.anchorNode),t=on.fromDom(e.focusNode);return za(n,e.anchorOffset,t,e.focusOffset)?Me.some(Dl.create(n,e.anchorOffset,t,e.focusOffset)):function(e){if(0<e.rangeCount){var n=e.getRangeAt(0),t=e.getRangeAt(e.rangeCount-1);return Me.some(Dl.create(on.fromDom(n.startContainer),n.startOffset,on.fromDom(t.endContainer),t.endOffset))}return Me.none()}(e)}function Ka(e,n){var t=function(e,n){var t=e.document.createRange();return Il(t,n),t}(e,n);Ha(e,t)}function Xa(e){return function(e){return Me.from(e.getSelection()).filter(function(e){return 0<e.rangeCount}).bind(Ya)}(e).map(function(e){return kl.exact(e.start(),e.soffset(),e.finish(),e.foffset())})}function $a(e,n){return function(e){var n=e.getClientRects(),t=0<n.length?n[0]:e.getBoundingClientRect();return 0<t.width||0<t.height?Me.some(t).map(Da):Me.none()}(Pl(e,n))}function Ja(e,n,t){return function(e,n,t){var r=on.fromDom(e.document);return Wl(r,n,t).map(function(e){return Dl.create(on.fromDom(e.startContainer),e.startOffset,on.fromDom(e.endContainer),e.endOffset)})}(e,n,t)}function Qa(e,n,t,r){return Ll(e,n,Tl(t),r)}function Za(e,n,t,r){return Ll(e,n,Ol(t),r)}function el(e,n){var t=kl.exact(n,0,n,0);return Ga(t)}function nl(e,n){return function(e){return 0===e.length?Me.none():Me.some(e[e.length-1])}(Be(n,"tr")).bind(function(e){return Zn(e,"td,th").map(function(e){return el(0,e)})})}function tl(e,n,t,r){return void 0===r&&(r=Yl),e.property().parent(n).map(function(e){return Gl(e,r)})}function rl(n){return function(e){return 0===n.property().children(e).length}}function ol(e,n){return function(e,n,t){return ef(e,n,rl(e),t)}(tf,e,n)}function il(e,n){return function(e,n,t){return nf(e,n,rl(e),t)}(tf,e,n)}function ul(e){return et(e,"tr")}function cl(e){return"br"===en(e)}function al(n,e,t,r){return function(e,n){return Se(e,n).filter(cl).orThunk(function(){return Se(e,n-1).filter(cl)})}(e,t).bind(function(e){return r.traverse(e).fold(function(){return lf(e,r.gather,n).map(r.relative)},function(e){return function(r){return ve(r).bind(function(n){var t=Ce(n);return af(t,r).map(function(e){return cf(n,t,r,e)})})}(e).map(function(e){return El.on(e.parent(),e.index())})})})}function ll(e){return mf.nu({left:e.left,top:e.top,right:e.right,bottom:e.bottom})}function fl(e,n){return Me.some(e.getRect(n))}function sl(n,e,t){return function(e,n,t){return Xn(function(e,n){return n(e)},$n,e,n,t)}(e,uc).fold(D(!1),function(e){return pf(n,e).exists(function(e){return function(e,n){return e.left()<n.left()||Math.abs(n.right()-e.left())<1||e.left()>n.right()}(t,e)})})}function dl(n,t,e){var r=n.move(e,5),o=wf(t,n,e,r,100).getOr(r);return function(e,n,t){return e.point(n)>t.getInnerHeight()?Me.some(e.point(n)-t.getInnerHeight()):e.point(n)<0?Me.some(-e.point(n)):Me.none()}(n,o,t).fold(function(){return t.situsFromPoint(o.left(),n.point(o))},function(e){return t.scrollBy(0,e),t.situsFromPoint(o.left(),n.point(o)-e)})}function ml(e,n){return function(e,n,t){return $n(e,n,t).isSome()}(e,function(e){return ve(e).exists(function(e){return In(e,n)})})}function gl(n,r,o,e,i){return et(e,"td,th",r).bind(function(t){return et(t,"table",r).bind(function(e){return ml(i,e)?Of(n,r,o).bind(function(n){return et(n.finish(),"td,th",r).map(function(e){return{start:D(t),finish:D(e),range:D(n)}})}):Me.none()})})}function pl(e,n){return et(e,"td,th",n)}var hl=function(n,t,e){function r(){l.stop(),u.isOn()&&(u.off(),i.trigger.stop())}var o=!1,i=fa.create({start:la([]),stop:la([])}),u=wa(),c=function(t,r){var o=null;return{cancel:function(){null!==o&&(f.clearTimeout(o),o=null)},throttle:function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];null!==o&&f.clearTimeout(o),o=f.setTimeout(function(){t.apply(null,e),o=null},r)}}}(r,200);u.events.move.bind(function(e){t.mutate(n,e.info())});function a(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];o&&t.apply(null,e)}}var l=t.sink(ha({forceDrop:r,drop:a(r),move:a(function(e){c.cancel(),u.onEvent(e,t)}),delayDrop:a(c.throttle)}),e);return{element:l.element,go:function(e){l.start(e),u.on(),i.trigger.start()},on:function(){o=!0},off:function(){o=!1},destroy:function(){l.destroy()},events:i.registry}},vl=function(e,n){void 0===n&&(n={});var t=n.mode!==undefined?n.mode:va;return hl(e,t,n)},bl=tu.resolve("resizer-bar-dragging"),wl=function(e,t){var r=go.height,n=Sa(e,t,r),o=fa.create({beforeResize:la(["table"]),afterResize:la(["table"]),startDrag:la([])});return n.events.adjustHeight.bind(function(e){o.trigger.beforeResize(e.table());var n=r.delta(e.delta(),e.table());Ku(e.table(),n,e.row(),r),o.trigger.afterResize(e.table())}),n.events.startAdjust.bind(function(e){o.trigger.startDrag()}),n.events.adjustWidth.bind(function(e){o.trigger.beforeResize(e.table());var n=t.delta(e.delta(),e.table());Yu(e.table(),n,e.column(),t),o.trigger.afterResize(e.table())}),{on:n.on,off:n.off,hideBars:n.hideBars,showBars:n.showBars,destroy:n.destroy,events:o.registry}},yl=function(e,n){return e.inline?aa(gc(e),function(){var e=on.fromTag("div");return re(e,{position:"static",height:"0",width:"0",padding:"0",margin:"0",border:"0"}),Mn(un(),e),e}()):ca(on.fromDom(e.getDoc()))},Cl=function(e,n){e.inline&&Wn(n.parent())},Sl=function(u){function c(e){return"TABLE"===e.nodeName}function r(e){var n=u.dom.getStyle(e,"width")||u.dom.getAttrib(e,"width");return Me.from(n).filter(function(e){return 0<e.length})}function e(){return i}var a,l,o=Me.none(),i=Me.none(),f=Me.none(),s=/(\d+(\.\d+)?)%/;return u.on("init",function(){var e=ho(bc.directionAt),n=yl(u);if(f=Me.some(n),function(e){var n=e.getParam("object_resizing",!0);return _e(n)?"table"===n:n}(u)&&function(e){return e.getParam("table_resize_bars",!0,"boolean")}(u)){var t=wl(n,e);t.on(),t.events.startDrag.bind(function(e){o=Me.some(u.selection.getRng())}),t.events.beforeResize.bind(function(e){var n=e.table().dom();Ii(u,n,bi(n),wi(n))}),t.events.afterResize.bind(function(e){var n=e.table(),t=n.dom();Ci(n),o.each(function(e){u.selection.setRng(e),u.focus()}),Bi(u,t,bi(t),wi(t)),u.undoManager.add()}),i=Me.some(t)}}),u.on("ObjectResizeStart",function(e){var n=e.target;if(c(n)){var t=r(n).map(function(e){return s.test(e)}).getOr(!1);t&&Ei(u)?function(e){te(on.fromDom(e),"width",bi(e).toString()+"px")}(n):!t&&function(e){return!0===e.getParam("table_responsive_width")}(u)&&function(e){var n=on.fromDom(e);ve(n).map(function(e){return xa(n,e)}).each(function(e){te(n,"width",e),p(Be(n,"tr"),function(n){p(Ce(n),function(e){te(e,"width",xa(e,n))})})})}(n),a=e.width,l=r(n).getOr("")}}),u.on("ObjectResized",function(e){var n=e.target;if(c(n)){var t=n;if(s.test(l)){var r=parseFloat(s.exec(l)[1]),o=e.width*r/a;u.dom.setStyle(t,"width",o+"%")}else{var i=[];Dc.each(t.rows,function(e){Dc.each(e.cells,function(e){var n=u.dom.getStyle(e,"width",!0);i.push({cell:e,width:n})})}),Dc.each(i,function(e){u.dom.setStyle(e.cell,"width",e.width),u.dom.setAttrib(e.cell,"width",null)})}}}),u.on("SwitchMode",function(){e().each(function(e){u.readonly?e.hideBars():e.showBars()})}),{lazyResize:e,lazyWire:function(){return f.getOr(ca(on.fromDom(u.getBody())))},destroy:function(){i.each(function(e){e.destroy()}),f.each(function(e){Cl(u,e)})}}},xl=Sr([{none:["current"]},{first:["current"]},{middle:["current","target"]},{last:["current"]}]),Rl=fn(fn({},xl),{none:function(e){return void 0===e&&(e=undefined),xl.none(e)}}),Tl=function(n,e){return Ra(n,e).fold(function(){return Rl.none(n)},function(e){return e.index()+1<e.all().length?Rl.middle(n,e.all()[e.index()+1]):Rl.last(n)})},Ol=function(n,e){return Ra(n,e).fold(function(){return Rl.none()},function(e){return 0<=e.index()-1?Rl.middle(n,e.all()[e.index()-1]):Rl.first(n)})},Dl={create:B("start","soffset","finish","foffset")},Al=Sr([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),El={before:Al.before,on:Al.on,after:Al.after,cata:function(e,n,t,r){return e.fold(n,t,r)},getStart:function(e){return e.fold(o,o,o)}},Nl=Sr([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),kl={domRange:Nl.domRange,relative:Nl.relative,exact:Nl.exact,exactFromRange:function(e){return Nl.exact(e.start(),e.soffset(),e.finish(),e.foffset())},getWin:function(e){return function(e){return on.fromDom(e.dom().ownerDocument.defaultView)}(function(e){return e.match({domRange:function(e){return on.fromDom(e.startContainer)},relative:function(e,n){return El.getStart(e)},exact:function(e,n,t,r){return e}})}(e))},range:Dl.create},Il=function(e,n){e.selectNodeContents(n.dom())},Bl=Sr([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),Pl=function(i,e){return Ea(i,e).match({ltr:function(e,n,t,r){var o=i.document.createRange();return o.setStart(e.dom(),n),o.setEnd(t.dom(),r),o},rtl:function(e,n,t,r){var o=i.document.createRange();return o.setStart(t.dom(),r),o.setEnd(e.dom(),n),o}})},Ml=function(e,n,t,r){return tn(n)?function(n,t,r,o){var e=n.dom().createRange();e.selectNode(t.dom());var i=e.getClientRects();return bo(i,function(e){return Na(e,r,o)?Me.some(e):Me.none()}).map(function(e){return ka(n,t,r,o,e)})}(e,n,t,r):function(n,e,t,r){var o=n.dom().createRange(),i=Ce(e);return bo(i,function(e){return o.selectNode(e.dom()),Na(o.getBoundingClientRect(),t,r)?Ml(n,e,t,r):Me.none()})}(e,n,t,r)},Wl=document.caretPositionFromPoint?function(t,e,n){return Me.from(t.dom().caretPositionFromPoint(e,n)).bind(function(e){if(null===e.offsetNode)return Me.none();var n=t.dom().createRange();return n.setStart(e.offsetNode,e.offset),n.collapse(),Me.some(n)})}:document.caretRangeFromPoint?function(e,n,t){return Me.from(e.dom().caretRangeFromPoint(n,t))}:function(t,r,o){return on.fromPoint(t,r,o).bind(function(e){function n(){return function(e,n,t){return(0===Ce(n).length?Ma:Pa)(e,n,t)}(t,e,r)}return 0===Ce(e).length?n():Wa(t,e,r,o).orThunk(n)})},_l=tinymce.util.Tools.resolve("tinymce.util.VK"),Ll=function(r,e,n,o,t){return n.fold(Me.none,Me.none,function(e,n){return Ct(n).map(function(e){return el(0,e)})},function(t){return lt.table(t,e).bind(function(e){var n=Er.noMenu(t);return r.undoManager.transact(function(){o.insertRowsAfter(e,n)}),nl(0,e)})})},jl=["table","li","dl"],zl={handle:function(n,t,r,o){if(n.keyCode===_l.TAB){var i=gc(t),u=function(e){var n=en(e);return In(e,i)||l(jl,n)},e=t.selection.getRng();if(e.collapsed){var c=on.fromDom(e.startContainer);lt.cell(c,u).each(function(e){n.preventDefault(),(n.shiftKey?Za:Qa)(t,u,e,r,o).each(function(e){t.selection.setRng(e)})})}}}},Hl={create:B("selection","kill")},Fl=function(e,n,t,r){return{start:D(El.on(e,n)),finish:D(El.on(t,r))}},Ul={convertToRange:function(e,n){var t=Pl(e,n);return Dl.create(on.fromDom(t.startContainer),t.startOffset,on.fromDom(t.endContainer),t.endOffset)},makeSitus:Fl},ql=function(t,e,r,n,o){return In(r,n)?Me.none():dr(r,n,e).bind(function(e){var n=e.boxes().getOr([]);return 0<n.length?(o(t,n,e.start(),e.finish()),Me.some(Hl.create(Me.some(Ul.makeSitus(r,0,r,wt(r))),!0))):Me.none()})},Vl={sync:function(t,r,e,n,o,i,u){return In(e,o)&&n===i?Me.none():et(e,"td,th",r).bind(function(n){return et(o,"td,th",r).bind(function(e){return ql(t,r,n,e,u)})})},detect:ql,update:function(e,n,t,r,o){return gr(r,e,n,o.firstSelectedSelector(),o.lastSelectedSelector()).map(function(e){return o.clearBeforeUpdate(t),o.selectRange(t,e.boxes(),e.start(),e.finish()),e.boxes()})}},Gl=B("item","mode"),Yl=function(e,n,t,r){return void 0===r&&(r=Kl),t.sibling(e,n).map(function(e){return Gl(e,r)})},Kl=function(e,n,t,r){void 0===r&&(r=Kl);var o=e.property().children(n);return t.first(o).map(function(e){return Gl(e,r)})},Xl=[{current:tl,next:Yl,fallback:Me.none()},{current:Yl,next:Kl,fallback:Me.some(tl)},{current:Kl,next:Kl,fallback:Me.some(Yl)}],$l=function(n,t,r,o,e){return void 0===e&&(e=Xl),y(e,function(e){return e.current===r}).bind(function(e){return e.current(n,t,o,e.next).orThunk(function(){return e.fallback.bind(function(e){return $l(n,t,e,o)})})})},Jl=function(){return{sibling:function(e,n){return e.query().prevSibling(n)},first:function(e){return 0<e.length?Me.some(e[e.length-1]):Me.none()}}},Ql=function(){return{sibling:function(e,n){return e.query().nextSibling(n)},first:function(e){return 0<e.length?Me.some(e[0]):Me.none()}}},Zl=function(n,e,t,r,o,i){return $l(n,e,r,o).bind(function(e){return i(e.item())?Me.none():t(e.item())?Me.some(e.item()):Zl(n,e.item(),t,e.mode(),o,i)})},ef=function(e,n,t,r){return Zl(e,n,t,Yl,Jl(),r)},nf=function(e,n,t,r){return Zl(e,n,t,Yl,Ql(),r)},tf=$t(),rf=B("element","offset"),of=(B("element","deltaOffset"),B("element","start","finish"),B("begin","end"),B("element","text"),Sr([{none:["message"]},{success:[]},{failedUp:["cell"]},{failedDown:["cell"]}])),uf=fn(fn({},of),{verify:function(t,n,e,r,o,i,u){return et(r,"td,th",u).bind(function(e){return et(n,"td,th",u).map(function(n){return In(e,n)?In(r,e)&&wt(e)===o?i(n):of.none("in same cell"):fr.sharedOne(ul,[e,n]).fold(function(){return function(e,n,t){var r=e.getRect(n),o=e.getRect(t);return o.right>r.left&&o.left<r.right}(t,n,e)?of.success():i(n)},function(e){return i(n)})})}).getOr(of.none("default"))},cata:function(e,n,t,r,o){return e.fold(n,t,r,o)}}),cf=(B("ancestor","descendants","element","index"),B("parent","children","element","index")),af=function(e,n){return C(e,b(In,n))},lf=function(e,n,t){return n(e,t).bind(function(e){return tn(e)&&0===ht(e).trim().length?lf(e,n,t):Me.some(e)})},ff=function(e,n,t,r){return(cl(n)?function(e,n,t){return t.traverse(n).orThunk(function(){return lf(n,t.gather,e)}).map(t.relative)}(e,n,r):al(e,n,t,r)).map(function(e){return{start:D(e),finish:D(e)}})},sf=function(e){return uf.cata(e,function(e){return Me.none()},function(){return Me.none()},function(e){return Me.some(rf(e,0))},function(e){return Me.some(rf(e,wt(e)))})},df=Xe(["left","top","right","bottom"],[]),mf={nu:df,moveUp:function(e,n){return df({left:e.left(),top:e.top()-n,right:e.right(),bottom:e.bottom()-n})},moveDown:function(e,n){return df({left:e.left(),top:e.top()+n,right:e.right(),bottom:e.bottom()+n})},moveBottomTo:function(e,n){var t=e.bottom()-e.top();return df({left:e.left(),top:n-t,right:e.right(),bottom:n})},moveTopTo:function(e,n){var t=e.bottom()-e.top();return df({left:e.left(),top:n,right:e.right(),bottom:n+t})},getTop:function(e){return e.top()},getBottom:function(e){return e.bottom()},translate:function(e,n,t){return df({left:e.left()+n,top:e.top()+t,right:e.right()+n,bottom:e.bottom()+t})},toString:function(e){return"("+e.left()+", "+e.top()+") -> ("+e.right()+", "+e.bottom()+")"}},gf=function(e,n,t){return nn(n)?fl(e,n).map(ll):tn(n)?function(e,n,t){return 0<=t&&t<wt(n)?e.getRangedRect(n,t,n,t+1):0<t?e.getRangedRect(n,t-1,n,t):Me.none()}(e,n,t).map(ll):Me.none()},pf=function(e,n){return nn(n)?fl(e,n).map(ll):tn(n)?e.getRangedRect(n,0,n,wt(n)).map(ll):Me.none()},hf=Sr([{none:[]},{retry:["caret"]}]),vf={point:mf.getTop,adjuster:function(e,n,t,r,o){var i=mf.moveUp(o,5);return Math.abs(t.top()-r.top())<1?hf.retry(i):t.bottom()<o.top()?hf.retry(i):t.bottom()===o.top()?hf.retry(mf.moveUp(o,1)):sl(e,n,o)?hf.retry(mf.translate(i,5,0)):hf.none()},move:mf.moveUp,gather:ol},bf={point:mf.getBottom,adjuster:function(e,n,t,r,o){var i=mf.moveDown(o,5);return Math.abs(t.bottom()-r.bottom())<1?hf.retry(i):t.top()>o.bottom()?hf.retry(i):t.top()===o.bottom()?hf.retry(mf.moveDown(o,1)):sl(e,n,o)?hf.retry(mf.translate(i,5,0)):hf.none()},move:mf.moveDown,gather:il},wf=function(t,r,o,i,u){return 0===u?Me.some(i):function(e,n,t){return e.elementFromPoint(n,t).filter(function(e){return"table"===en(e)}).isSome()}(t,i.left(),r.point(i))?function(e,n,t,r,o){return wf(e,n,t,n.move(r,5),o)}(t,r,o,i,u-1):t.situsFromPoint(i.left(),r.point(i)).bind(function(e){return e.start().fold(Me.none,function(n){return pf(t,n).bind(function(e){return r.adjuster(t,n,e,o,i).fold(Me.none,function(e){return wf(t,r,o,e,u-1)})}).orThunk(function(){return Me.some(i)})},Me.none)})},yf={tryUp:b(dl,vf),tryDown:b(dl,bf),ieTryUp:function(e,n){return e.situsFromPoint(n.left(),n.top()-5)},ieTryDown:function(e,n){return e.situsFromPoint(n.left(),n.bottom()+5)},getJumpSize:D(5)},Cf=me(),Sf=function(r,o,i,u,c,a){return 0===a?Me.none():Tf(r,o,i,u,c).bind(function(e){var n=r.fromSitus(e),t=uf.verify(r,i,u,n.finish(),n.foffset(),c.failure,o);return uf.cata(t,function(){return Me.none()},function(){return Me.some(e)},function(e){return In(i,e)&&0===u?xf(r,i,u,mf.moveUp,c):Sf(r,o,e,0,c,a-1)},function(e){return In(i,e)&&u===wt(e)?xf(r,i,u,mf.moveDown,c):Sf(r,o,e,wt(e),c,a-1)})})},xf=function(n,e,t,r,o){return gf(n,e,t).bind(function(e){return Rf(n,o,r(e,yf.getJumpSize()))})},Rf=function(e,n,t){return Cf.browser.isChrome()||Cf.browser.isSafari()||Cf.browser.isFirefox()||Cf.browser.isEdge()?n.otherRetry(e,t):Cf.browser.isIE()?n.ieRetry(e,t):Me.none()},Tf=function(n,e,t,r,o){return gf(n,t,r).bind(function(e){return Rf(n,o,e)})},Of=function(n,t,r){return function(o,i,u){return o.getSelection().bind(function(r){return ff(i,r.finish(),r.foffset(),u).fold(function(){return Me.some(rf(r.finish(),r.foffset()))},function(e){var n=o.fromSitus(e),t=uf.verify(o,r.finish(),r.foffset(),n.finish(),n.foffset(),u.failure,i);return sf(t)})})}(n,t,r).bind(function(e){return Sf(n,t,e.element(),e.offset(),r,20).map(n.fromSitus)})},Df=me(),Af=function(e,n,t,r,o,i){return Df.browser.isIE()?Me.none():i(r,n).orThunk(function(){return gl(e,n,t,r,o).map(function(e){var n=e.range();return Hl.create(Me.some(Ul.makeSitus(n.start(),n.soffset(),n.finish(),n.foffset())),!0)})})},Ef=function(e,n,t,r,o,i,u){return gl(e,t,r,o,i).bind(function(e){return Vl.detect(n,t,e.start(),e.finish(),u)})},Nf=function(e,r){return et(e,"tr",r).bind(function(t){return et(t,"table",r).bind(function(e){var n=Be(e,"tr");return In(t,n[0])?function(e,n,t){return ef(tf,e,n,t)}(e,function(e){return St(e).isSome()},r).map(function(e){var n=wt(e);return Hl.create(Me.some(Ul.makeSitus(e,n,e,n)),!0)}):Me.none()})})},kf=function(e,r){return et(e,"tr",r).bind(function(t){return et(t,"table",r).bind(function(e){var n=Be(e,"tr");return In(t,n[n.length-1])?function(e,n,t){return nf(tf,e,n,t)}(e,function(e){return Ct(e).isSome()},r).map(function(e){return Hl.create(Me.some(Ul.makeSitus(e,0,e,0)),!0)}):Me.none()})})};function If(n){return function(e){return e===n}}function Bf(c){return{elementFromPoint:function(e,n){return on.fromPoint(on.fromDom(c.document),e,n)},getRect:function(e){return e.dom().getBoundingClientRect()},getRangedRect:function(e,n,t,r){var o=kl.exact(e,n,t,r);return $a(c,o).map(jf)},getSelection:function(){return Xa(c).map(function(e){return Ul.convertToRange(c,e)})},fromSitus:function(e){var n=kl.relative(e.start(),e.finish());return Ul.convertToRange(c,n)},situsFromPoint:function(e,n){return Ja(c,e,n).map(function(e){return Fl(e.start(),e.soffset(),e.finish(),e.foffset())})},clearSelection:function(){!function(e){e.getSelection().removeAllRanges()}(c)},collapseSelection:function(u){void 0===u&&(u=!1),Xa(c).each(function(e){return e.fold(function(e){return e.collapse(u)},function(e,n){var t=u?e:n;Va(c,t,t)},function(e,n,t,r){var o=u?e:t,i=u?n:r;qa(c,o,i,o,i)})})},setSelection:function(e){qa(c,e.start(),e.soffset(),e.finish(),e.foffset())},setRelativeSelection:function(e,n){Va(c,e,n)},selectContents:function(e){Ka(c,e)},getInnerHeight:function(){return c.innerHeight},getScrollY:function(){return function(e){var n=e!==undefined?e.dom():f.document,t=n.body.scrollLeft||n.documentElement.scrollLeft,r=n.body.scrollTop||n.documentElement.scrollTop;return lo(t,r)}(on.fromDom(c.document)).top()},scrollBy:function(e,n){!function(e,n,t){(t!==undefined?t.dom():f.document).defaultView.scrollBy(e,n)}(e,n,on.fromDom(c.document))}}}function Pf(n,e){p(e,function(e){!function(e,n){Co(e)?e.dom().classList.remove(n):xo(e,n);To(e)}(n,e)})}var Mf={down:{traverse:ye,gather:il,relative:El.before,otherRetry:yf.tryDown,ieRetry:yf.ieTryDown,failure:uf.failedDown},up:{traverse:we,gather:ol,relative:El.before,otherRetry:yf.tryUp,ieRetry:yf.ieTryUp,failure:uf.failedUp}},Wf=If(38),_f=If(40),Lf={ltr:{isBackward:If(37),isForward:If(39)},rtl:{isBackward:If(39),isForward:If(37)},isUp:Wf,isDown:_f,isNavigation:function(e){return 37<=e&&e<=40}},jf=function(e){return{left:e.left(),top:e.top(),right:e.right(),bottom:e.bottom(),width:e.width(),height:e.height()}},zf=(me().browser.isSafari(),B("rows","cols")),Hf={mouse:function(e,n,t,r){var o=function c(o,i,n,u){function t(){r=Me.none()}var r=Me.none();return{mousedown:function(e){u.clear(i),r=pl(e.target(),n)},mouseover:function(e){r.each(function(r){u.clearBeforeUpdate(i),pl(e.target(),n).each(function(t){dr(r,t,n).each(function(e){var n=e.boxes().getOr([]);(1<n.length||1===n.length&&!In(r,t))&&(u.selectRange(i,n,e.start(),e.finish()),o.selectContents(t))})})})},mouseup:function(e){r.each(t)}}}(Bf(e),n,t,r);return{mousedown:o.mousedown,mouseover:o.mouseover,mouseup:o.mouseup}},keyboard:function(e,l,f,s){function d(){return s.clear(l),Me.none()}var m=Bf(e);return{keydown:function(e,n,t,r,o,i){var u=e.raw(),c=u.which,a=!0===u.shiftKey;return mr(l,s.selectedSelector()).fold(function(){return Lf.isDown(c)&&a?b(Ef,m,l,f,Mf.down,r,n,s.selectRange):Lf.isUp(c)&&a?b(Ef,m,l,f,Mf.up,r,n,s.selectRange):Lf.isDown(c)?b(Af,m,f,Mf.down,r,n,kf):Lf.isUp(c)?b(Af,m,f,Mf.up,r,n,Nf):Me.none},function(n){function e(e){return function(){return bo(e,function(e){return Vl.update(e.rows(),e.cols(),l,n,s)}).fold(function(){return pr(l,s.firstSelectedSelector(),s.lastSelectedSelector()).map(function(e){var n=Lf.isDown(c)||i.isForward(c)?El.after:El.before;return m.setRelativeSelection(El.on(e.first(),0),n(e.table())),s.clear(l),Hl.create(Me.none(),!0)})},function(e){return Me.some(Hl.create(Me.none(),!0))})}}return Lf.isDown(c)&&a?e([zf(1,0)]):Lf.isUp(c)&&a?e([zf(-1,0)]):i.isBackward(c)&&a?e([zf(0,-1),zf(-1,0)]):i.isForward(c)&&a?e([zf(0,1),zf(1,0)]):Lf.isNavigation(c)&&!1==a?d:Me.none})()},keyup:function(t,r,o,i,u){return mr(l,s.selectedSelector()).fold(function(){var e=t.raw(),n=e.which;return!1==(!0===e.shiftKey)?Me.none():Lf.isNavigation(n)?Vl.sync(l,f,r,o,i,u,s.selectRange):Me.none()},Me.none)}}},external:function(e,r,n,o){var i=Bf(e);return function(e,t){o.clearBeforeUpdate(r),dr(e,t,n).each(function(e){var n=e.boxes().getOr([]);o.selectRange(r,n,e.start(),e.finish()),i.selectContents(t),i.collapseSelection()})}}},Ff={byClass:function(o){function i(e){var n=Be(e,o.selectedSelector());p(n,t)}var u=function(n){return function(e){Ro(e,n)}}(o.selected()),t=function(n){return function(e){Pf(e,n)}}([o.selected(),o.lastSelected(),o.firstSelected()]);return{clearBeforeUpdate:i,clear:i,selectRange:function(e,n,t,r){i(e),p(n,u),Ro(t,o.firstSelected()),Ro(r,o.lastSelected())},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}},byAttr:function(o,i,n){function t(e){Y(e,o.selected()),Y(e,o.firstSelected()),Y(e,o.lastSelected())}function u(e){U(e,o.selected(),"1")}function c(e){r(e),n()}var r=function(e){var n=Be(e,o.selectedSelector());p(n,t)};return{clearBeforeUpdate:r,clear:c,selectRange:function(e,n,t,r){c(e),p(n,u),U(t,o.firstSelected(),"1"),U(r,o.lastSelected(),"1"),i(n,t,r)},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}}},Uf={getOtherCells:function(e,n,t){var r=ft(e),o=mt.generate(r);return Fo(o,n).map(function(e){var n=bu(o,t,!1);return{upOrLeftCells:function(e,t,n){var r=e.slice(0,t[t.length-1].row()+1),o=_o(r,n);return x(o,function(e){var n=e.cells().slice(0,t[t.length-1].column()+1);return g(n,function(e){return e.element()})})}(n,e,t),downOrRightCells:function(e,t,n){var r=e.slice(t[0].row()+t[0].rowspan()-1,e.length),o=_o(r,n);return x(o,function(e){var n=e.cells().slice(t[0].column()+t[0].colspan()-1,+e.cells().length);return g(n,function(e){return e.element()})})}(n,e,t)}})}},qf=function(e){return!1===Oo(on.fromDom(e.target),"ephox-snooker-resizer-bar")};function Vf(w,y,e){var C=Xe(["mousedown","mouseover","mouseup","keyup","keydown"],[]),S=Me.none(),a=Sc(w),x=Ff.byAttr(Cr,function(i,u,c){e.targets().each(function(o){lt.table(u).each(function(e){var n=on.fromDom(w.getDoc()),t=Wt.cellOperations(T,n,a),r=Uf.getOtherCells(e,o,t);xc(w,i,u,c,r)})})},function(){Rc(w)});w.on("init",function(e){var r=w.getWin(),o=gc(w),n=pc(w),t=Hf.mouse(r,o,n,x),c=Hf.keyboard(r,o,n,x),i=Hf.external(r,o,n,x);w.on("TableSelectorChange",function(e){i(e.start,e.finish)});function a(e,n){!function(e){return!0===e.raw().shiftKey}(e)||(n.kill()&&e.kill(),n.selection().each(function(e){var n=kl.relative(e.start(),e.finish()),t=Pl(r,n);w.selection.setRng(t)}))}function u(e){var n=v(e);if(n.raw().shiftKey&&Lf.isNavigation(n.raw().which)){var t=w.selection.getRng(),r=on.fromDom(t.startContainer),o=on.fromDom(t.endContainer);c.keyup(n,r,t.startOffset,o,t.endOffset).each(function(e){a(n,e)})}}function l(e){var n=v(e);y().each(function(e){e.hideBars()});var t=w.selection.getRng(),r=on.fromDom(w.selection.getStart()),o=on.fromDom(t.startContainer),i=on.fromDom(t.endContainer),u=bc.directionAt(r).isRtl()?Lf.rtl:Lf.ltr;c.keydown(n,o,t.startOffset,i,t.endOffset,u).each(function(e){a(n,e)}),y().each(function(e){e.showBars()})}function f(e){return e.hasOwnProperty("x")&&e.hasOwnProperty("y")}function s(e){return 0===e.button}function d(e){s(e)&&qf(e)&&t.mousedown(v(e))}function m(e){(function(e){return e.buttons===undefined||0!=(1&e.buttons)})(e)&&qf(e)&&t.mouseover(v(e))}function g(e){s(e)&&qf(e)&&t.mouseup(v(e))}var p,h,v=function(e){function n(){e.stopPropagation()}function t(){e.preventDefault()}var r=on.fromDom(e.target),o=O(t,n);return{target:D(r),x:D(f(e)?e.x:null),y:D(f(e)?e.y:null),stop:n,prevent:t,kill:o,raw:D(e)}},b=(p=R(on.fromDom(o)),h=R(0),{touchEnd:function(e){var n=on.fromDom(e.target);if("td"===en(n)||"th"===en(n)){var t=p.get(),r=h.get();In(t,n)&&e.timeStamp-r<300&&(e.preventDefault(),i(n,n))}p.set(n),h.set(e.timeStamp)}});w.on("mousedown",d),w.on("mouseover",m),w.on("mouseup",g),w.on("touchend",b.touchEnd),w.on("keyup",u),w.on("keydown",l),w.on("NodeChange",function(){var e=w.selection,n=on.fromDom(e.getStart()),t=on.fromDom(e.getEnd());fr.sharedOne(lt.table,[n,t]).fold(function(){x.clear(o)},T)}),S=Me.some(C({mousedown:d,mouseover:m,mouseup:g,keyup:u,keydown:l}))});return{clear:x.clear,destroy:function(){S.each(function(e){})}}}var Gf=function(n){return{get:function(){var e=gc(n);return hr(e,Cr.selectedSelector()).fold(function(){return n.selection.getStart()===undefined?Rr.none():Rr.single(n.selection)},function(e){return Rr.multiple(e)})}}},Yf=function(e,t){function n(){return oa(e).bind(function(n){return lt.table(n).map(function(e){return"caption"===en(n)?Er.notCell(n):Er.forMenu(t,e,n)})})}function r(){i.set(Z(n)()),p(u.get(),function(e){return e()})}function o(n,t){function r(){return i.get().fold(function(){n.setDisabled(!0)},function(e){n.setDisabled(t(e))})}return r(),u.set(u.get().concat([r])),function(){u.set(h(u.get(),function(e){return e!==r}))}}var i=R(Me.none()),u=R([]);return e.on("NodeChange TableSelectorChange",r),{onSetupTable:function(e){return o(e,function(e){return!1})},onSetupCellOrRow:function(e){return o(e,function(e){return"caption"===en(e.element())})},onSetupMergeable:function(e){return o(e,function(e){return e.mergable().isNone()})},onSetupUnmergeable:function(e){return o(e,function(e){return e.unmergable().isNone()})},resetTargets:r,targets:function(){return i.get()}}},Kf={addButtons:function(n,e){n.ui.registry.addMenuButton("table",{tooltip:"Table",icon:"table",fetch:function(e){return e("inserttable | cell row column | advtablesort | tableprops deletetable")}});function t(e){return function(){return n.execCommand(e)}}n.ui.registry.addButton("tableprops",{tooltip:"Table properties",onAction:t("mceTableProps"),icon:"table",onSetup:e.onSetupTable}),n.ui.registry.addButton("tabledelete",{tooltip:"Delete table",onAction:t("mceTableDelete"),icon:"table-delete-table",onSetup:e.onSetupTable}),n.ui.registry.addButton("tablecellprops",{tooltip:"Cell properties",onAction:t("mceTableCellProps"),icon:"table-cell-properties",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tablemergecells",{tooltip:"Merge cells",onAction:t("mceTableMergeCells"),icon:"table-merge-cells",onSetup:e.onSetupMergeable}),n.ui.registry.addButton("tablesplitcells",{tooltip:"Split cell",onAction:t("mceTableSplitCells"),icon:"table-split-cells",onSetup:e.onSetupUnmergeable}),n.ui.registry.addButton("tableinsertrowbefore",{tooltip:"Insert row before",onAction:t("mceTableInsertRowBefore"),icon:"table-insert-row-above",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tableinsertrowafter",{tooltip:"Insert row after",onAction:t("mceTableInsertRowAfter"),icon:"table-insert-row-after",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tabledeleterow",{tooltip:"Delete row",onAction:t("mceTableDeleteRow"),icon:"table-delete-row",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tablerowprops",{tooltip:"Row properties",onAction:t("mceTableRowProps"),icon:"table-row-properties",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tableinsertcolbefore",{tooltip:"Insert column before",onAction:t("mceTableInsertColBefore"),icon:"table-insert-column-before",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tableinsertcolafter",{tooltip:"Insert column after",onAction:t("mceTableInsertColAfter"),icon:"table-insert-column-after",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tabledeletecol",{tooltip:"Delete column",onAction:t("mceTableDeleteCol"),icon:"table-delete-column",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tablecutrow",{tooltip:"Cut row",onAction:t("mceTableCutRow"),icon:"temporary-placeholder",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tablecopyrow",{tooltip:"Copy row",onAction:t("mceTableCopyRow"),icon:"temporary-placeholder",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tablepasterowbefore",{tooltip:"Paste row before",onAction:t("mceTablePasteRowBefore"),icon:"temporary-placeholder",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tablepasterowafter",{tooltip:"Paste row after",onAction:t("mceTablePasteRowAfter"),icon:"temporary-placeholder",onSetup:e.onSetupCellOrRow}),n.ui.registry.addButton("tableinsertdialog",{tooltip:"Insert table",onAction:t("mceInsertTable"),icon:"table"})},addToolbars:function(n){var e=function(e){return e.getParam("table_toolbar","tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol")}(n);0<e.length&&n.ui.registry.addContextToolbar("table",{predicate:function(e){return n.dom.is(e,"table")&&n.getBody().contains(e)},items:e,scope:"node",position:"node"})}},Xf={addMenuItems:function(r,e){function n(e){return function(){return r.execCommand(e)}}function t(e){var n=e.numRows,t=e.numColumns;r.undoManager.transact(function(){Zc(r,t,n)}),r.addVisual()}var o={text:"Table properties",onSetup:e.onSetupTable,onAction:n("mceTableProps")},i={text:"Delete table",icon:"table-delete-table",onSetup:e.onSetupTable,onAction:n("mceTableDelete")},u=[{type:"menuitem",text:"Insert row before",icon:"table-insert-row-above",onAction:n("mceTableInsertRowBefore"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Insert row after",icon:"table-insert-row-after",onAction:n("mceTableInsertRowAfter"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Delete row",icon:"table-delete-row",onAction:n("mceTableDeleteRow"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Row properties",icon:"table-row-properties",onAction:n("mceTableRowProps"),onSetup:e.onSetupCellOrRow},{type:"separator"},{type:"menuitem",text:"Cut row",onAction:n("mceTableCutRow"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Copy row",onAction:n("mceTableCopyRow"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Paste row before",onAction:n("mceTablePasteRowBefore"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Paste row after",onAction:n("mceTablePasteRowAfter"),onSetup:e.onSetupCellOrRow}],c={type:"nestedmenuitem",text:"Row",getSubmenuItems:function(){return u}},a=[{type:"menuitem",text:"Insert column before",icon:"table-insert-column-before",onAction:n("mceTableInsertColBefore"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Insert column after",icon:"table-insert-column-after",onAction:n("mceTableInsertColAfter"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Delete column",icon:"table-delete-column",onAction:n("mceTableDeleteCol"),onSetup:e.onSetupCellOrRow}],l={type:"nestedmenuitem",text:"Column",getSubmenuItems:function(){return a}},f=[{type:"menuitem",text:"Cell properties",icon:"table-cell-properties",onAction:n("mceTableCellProps"),onSetup:e.onSetupCellOrRow},{type:"menuitem",text:"Merge cells",icon:"table-merge-cells",onAction:n("mceTableMergeCells"),onSetup:e.onSetupMergeable},{type:"menuitem",text:"Split cell",icon:"table-split-cells",onAction:n("mceTableSplitCells"),onSetup:e.onSetupUnmergeable}],s={type:"nestedmenuitem",text:"Cell",getSubmenuItems:function(){return f}};!1===function(e){return e.getParam("table_grid",!0,"boolean")}(r)?r.ui.registry.addMenuItem("inserttable",{text:"Table",icon:"table",onAction:n("mceInsertTable")}):r.ui.registry.addNestedMenuItem("inserttable",{text:"Table",icon:"table",getSubmenuItems:function(){return[{type:"fancymenuitem",fancytype:"inserttable",onAction:t}]}}),r.ui.registry.addMenuItem("inserttabledialog",{text:"Insert table",icon:"table",onAction:n("mceInsertTable")}),r.ui.registry.addMenuItem("tableprops",o),r.ui.registry.addMenuItem("deletetable",i),r.ui.registry.addNestedMenuItem("row",c),r.ui.registry.addNestedMenuItem("column",l),r.ui.registry.addNestedMenuItem("cell",s),r.ui.registry.addContextMenu("table",{update:function(){return e.resetTargets(),e.targets().fold(function(){return""},function(e){return"caption"===en(e.element())?"tableprops deletetable":"cell row column | advtablesort | tableprops deletetable"})}})}},$f=function(t,n,e,r){return{insertTable:function(e,n){return Zc(t,e,n)},setClipboardRows:function(e){return function(e,n){var t=g(e,on.fromDom);n.set(Me.from(t))}(e,n)},getClipboardRows:function(){return function(e){return e.get().fold(function(){},function(e){return g(e,function(e){return e.dom()})})}(n)},resizeHandler:e,selectionTargets:r}};function Jf(n){var e=Gf(n),t=Yf(n,e),r=Sl(n),o=Vf(n,r.lazyResize,t),i=Tc(n,r.lazyWire),u=R(Me.none());return ua.registerCommands(n,i,o,e,u),Nr.registerEvents(n,e,i,o),Xf.addMenuItems(n,t),Kf.addButtons(n,t),Kf.addToolbars(n),n.on("PreInit",function(){n.serializer.addTempAttr(Cr.firstSelected()),n.serializer.addTempAttr(Cr.lastSelected())}),Cc(n)&&n.on("keydown",function(e){zl.handle(e,n,i,r.lazyWire)}),n.on("remove",function(){r.destroy(),o.destroy()}),$f(n,u,r,t)}!function Zf(){We.add("table",Jf)}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function e(){}function a(e){return function(){return e}}var t=tinymce.util.Tools.resolve("tinymce.PluginManager");function c(e,t){if((e=""+e).length<t)for(var n=0;n<t-e.length;n++)e="0"+e;return e}function i(n,e){return p.each(e,function(e,t){"function"==typeof e&&(e=e(t)),n=n.replace(new RegExp("\\{\\$"+t+"\\}","g"),e)}),n}function l(e,t){var r=e.dom,o=h(e);p.each(r.select("*",t),function(n){p.each(o,function(e,t){r.hasClass(n,t)&&"function"==typeof o[t]&&o[t](n)})})}function s(e,t){return new RegExp("\\b"+t+"\\b","g").test(e.className)}function n(){return w}var r,u=a(!1),f=a(!0),p=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=tinymce.util.Tools.resolve("tinymce.util.XHR"),m=function(e){return e.getParam("template_cdate_classes","cdate")},d=function(e){return e.getParam("template_mdate_classes","mdate")},g=function(e){return e.getParam("template_selected_content_classes","selcontent")},y=function(e){return e.getParam("template_preview_replace_values")},h=function(e){return e.getParam("template_replace_values")},v=function(e){return e.templates},b=function(e){return e.getParam("template_cdate_format",e.translate("%Y-%m-%d"))},O=function(e){return e.getParam("template_mdate_format",e.translate("%Y-%m-%d"))},T=function(e,t,n){var r="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),a="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),u="January February March April May June July August September October November December".split(" ");return n=n||new Date,t=(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",""+n.getFullYear())).replace("%y",""+n.getYear())).replace("%m",c(n.getMonth()+1,2))).replace("%d",c(n.getDate(),2))).replace("%H",""+c(n.getHours(),2))).replace("%M",""+c(n.getMinutes(),2))).replace("%S",""+c(n.getSeconds(),2))).replace("%I",""+((n.getHours()+11)%12+1))).replace("%p",n.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(u[n.getMonth()]))).replace("%b",""+e.translate(a[n.getMonth()]))).replace("%A",""+e.translate(o[n.getDay()]))).replace("%a",""+e.translate(r[n.getDay()]))).replace("%%","%")},M=function(t,n){return function(){var e=v(t);"function"!=typeof e?"string"==typeof e?o.send({url:e,success:function(e){n(JSON.parse(e))}}):n(e):e(n)}},S=i,_=l,x=function(t,e,n){var r,o,a=t.dom,u=t.selection.getContent();n=i(n,h(t)),r=a.create("div",null,n),(o=a.select(".mceTmpl",r))&&0<o.length&&(r=a.create("div",null)).appendChild(o[0].cloneNode(!0)),p.each(a.select("*",r),function(e){s(e,m(t).replace(/\s+/g,"|"))&&(e.innerHTML=T(t,b(t))),s(e,d(t).replace(/\s+/g,"|"))&&(e.innerHTML=T(t,O(t))),s(e,g(t).replace(/\s+/g,"|"))&&(e.innerHTML=u)}),l(t,r),t.execCommand("mceInsertContent",!1,r.innerHTML),t.addVisual()},P=function(e){e.addCommand("mceInsertTemplate",function t(r){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=o.concat(e);return r.apply(null,n)}}(x,e))},A=function(r){r.on("PreProcess",function(e){var t=r.dom,n=O(r);p.each(t.select("div",e.node),function(e){t.hasClass(e,"mceTmpl")&&(p.each(t.select("*",e),function(e){t.hasClass(e,r.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(e.innerHTML=T(r,n))}),_(r,e))})})},w=(r={fold:function(e,t){return e()},is:u,isSome:u,isNone:f,getOr:N,getOrThunk:C,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:a(null),getOrUndefined:a(undefined),or:N,orThunk:C,map:n,each:e,bind:n,exists:u,forall:f,filter:n,equals:D,equals_:D,toArray:function(){return[]},toString:a("none()")},Object.freeze&&Object.freeze(r),r);function D(e){return e.isNone()}function C(e){return e()}function N(e){return e}function H(e){return e.replace(/["'<>&]/g,function(e){return function(e,t){return B(e,t)?L.from(e[t]):L.none()}(E,e).getOr(e)})}function k(t){return function(e){R(t,e)}}var I,J=function(n){function e(){return o}function t(e){return e(n)}var r=a(n),o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:f,isNone:u,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:e,orThunk:e,map:function(e){return J(e(n))},each:function(e){e(n)},bind:t,exists:t,forall:t,filter:function(e){return e(n)?o:w},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(u,function(e){return t(n,e)})}};return o},L={some:J,none:n,from:function(e){return null===e||e===undefined?w:J(e)}},Y=(I="function",function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"==t&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":t}(e)===I}),j=Array.prototype.slice,q=(Y(Array.from)&&Array.from,tinymce.util.Tools.resolve("tinymce.util.Promise")),F=Object.hasOwnProperty,B=function(e,t){return F.call(e,t)},E={'"':""","<":"<",">":">","&":"&","'":"'"},R=function(i,t){function e(e){return function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var a=e[o];r[o]=t(a,o)}return r}(e,function(e){return{text:e.text,value:e.text}})}function a(e,t){return function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n))return L.some(o)}return L.none()}(e,function(e){return e.text===t})}function l(e){return new q(function(t,n){e.value.url.fold(function(){return t(e.value.content.getOr(""))},function(e){return o.send({url:e,success:function(e){t(e)},error:function(e){n(e)}})})})}(function(){if(t&&0!==t.length)return L.from(p.map(t,function(e,t){function n(e){return e.url!==undefined}return{selected:0===t,text:e.title,value:{url:n(e)?L.from(e.url):L.none(),content:n(e)?L.none():L.from(e.content),description:e.description}}}));var e=i.translate("No templates defined.");return i.notificationManager.open({text:e,type:"info"}),L.none()})().each(function(n){function u(e,t){return{title:"Insert Template",size:"large",body:{type:"panel",items:e},initialData:t,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:function(n){return function(t){var e=t.getData();a(n,e.template).each(function(e){l(e).then(function(e){x(i,!1,e),t.close()})})}}(n),onChange:function(r,o){return function(n,e){if("template"===e.name){var t=n.getData().template;a(r,t).each(function(t){n.block("Loading..."),l(t).then(function(e){o(n,t,e),n.unblock()})})}}}(n,r)}}var c=e(n),r=function(e,t,n){var r=function(t,e){if(-1===e.indexOf("<html>")){var n="";p.each(t.contentCSS,function(e){n+='<link type="text/css" rel="stylesheet" href="'+t.documentBaseURI.toAbsolute(e)+'">'});var r=t.settings.body_class||"";-1!==r.indexOf("=")&&(r=(r=t.getParam("body_class","","hash"))[t.id]||"");var o=t.dom.encode,a=t.getBody().dir,u=a?' dir="'+o(a)+'"':"";e="<!DOCTYPE html><html><head>"+n+'</head><body class="'+o(r)+'"'+u+">"+e+"</body></html>"}return S(e,y(t))}(i,n),o=[{type:"selectbox",name:"template",label:"Templates",items:c},{type:"htmlpanel",html:'<p aria-live="polite">'+H(t.value.description)+"</p>"},{label:"Preview",type:"iframe",name:"preview",sandboxed:!1}],a={template:t.text,preview:r};e.unblock(),e.redial(u(o,a)),e.focus("template")},t=i.windowManager.open(u([],{template:"",preview:""}));t.block("Loading..."),l(n[0]).then(function(e){r(t,n[0],e)})})},z=function(e){e.ui.registry.addButton("template",{icon:"template",tooltip:"Insert template",onAction:M(e.settings,k(e))}),e.ui.registry.addMenuItem("template",{icon:"template",text:"Insert template...",onAction:M(e.settings,k(e))})};!function U(){t.add("template",function(e){z(e),P(e),A(e)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(o){"use strict";var i=tinymce.util.Tools.resolve("tinymce.PluginManager");!function n(){i.add("textcolor",function(){o.console.warn("Text color plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(f){"use strict";var r=function(t){function n(){return e}var e=t;return{get:n,set:function(t){e=t},clone:function(){return r(n())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=function(){return(u=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)};function n(){}function a(t){return function(){return t}}function o(t){return t}function e(){return l}var i,c=a(!1),s=a(!0),l=(i={fold:function(t,n){return t()},is:c,isSome:c,isNone:s,getOr:g,getOrThunk:m,getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:a(null),getOrUndefined:a(undefined),or:g,orThunk:m,map:e,each:n,bind:e,exists:c,forall:s,filter:e,equals:d,equals_:d,toArray:function(){return[]},toString:a("none()")},Object.freeze&&Object.freeze(i),i);function d(t){return t.isNone()}function m(t){return t()}function g(t){return t}function p(n){return function(t){return function(t){if(null===t)return"null";var n=typeof t;return"object"==n&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":n}(t)===n}}function h(t,n){return-1<function(t,n){return lt.call(t,n)}(t,n)}function v(t,n){for(var e=t.length,r=new Array(e),o=0;o<e;o++){var a=t[o];r[o]=n(a,o)}return r}function y(t,n){for(var e=0,r=t.length;e<r;e++){n(t[e],e)}}function b(t,n){for(var e=[],r=0,o=t.length;r<o;r++){var a=t[r];n(a,r)&&e.push(a)}return e}function k(t,n,e){return function(t,n){for(var e=t.length-1;0<=e;e--){n(t[e],e)}}(t,function(t){e=n(e,t)}),e}function O(t,n){for(var e=0,r=t.length;e<r;++e){if(!0!==n(t[e],e))return!1}return!0}function w(t){var n=[],e=[];return y(t,function(t){t.fold(function(t){n.push(t)},function(t){e.push(t)})}),{errors:n,values:e}}function x(t){return"inline-command"===t.type||"inline-format"===t.type}function C(t){return"block-command"===t.type||"block-format"===t.type}function E(t){return function(t,n){var e=st.call(t,0);return e.sort(n),e}(t,function(t,n){return t.start.length===n.start.length?0:t.start.length>n.start.length?-1:1})}function T(o){function a(t){return yt.error({message:t,pattern:o})}function t(t,n,e){if(o.format===undefined)return o.cmd!==undefined?it(o.cmd)?yt.value(e(o.cmd,o.value)):a(t+" pattern has non-string `cmd` parameter"):a(t+" pattern is missing both `format` and `cmd` parameters");var r=void 0;if(ft(o.format)){if(!O(o.format,it))return a(t+" pattern has non-string items in the `format` array");r=o.format}else{if(!it(o.format))return a(t+" pattern has non-string `format` parameter");r=[o.format]}return yt.value(n(r))}if(!ut(o))return a("Raw pattern is not an object");if(!it(o.start))return a("Raw pattern is missing `start` parameter");if(o.end===undefined)return o.replacement!==undefined?it(o.replacement)?0===o.start.length?a("Replacement pattern has empty `start` parameter"):yt.value({type:"inline-command",start:"",end:o.start,cmd:"mceInsertContent",value:o.replacement}):a("Replacement pattern has non-string `replacement` parameter"):0===o.start.length?a("Block pattern has empty `start` parameter"):t("Block",function(t){return{type:"block-format",start:o.start,format:t[0]}},function(t,n){return{type:"block-command",start:o.start,cmd:t,value:n}});if(!it(o.end))return a("Inline pattern has non-string `end` parameter");if(0===o.start.length&&0===o.end.length)return a("Inline pattern has empty `start` and `end` parameters");var e=o.start,r=o.end;return 0===r.length&&(r=e,e=""),t("Inline",function(t){return{type:"inline-format",start:e,end:r,format:t}},function(t,n){return{type:"inline-command",start:e,end:r,cmd:t,value:n}})}function R(t){return"block-command"===t.type?{start:t.start,cmd:t.cmd,value:t.value}:"block-format"===t.type?{start:t.start,format:t.format}:"inline-command"===t.type?"mceInsertContent"===t.cmd&&""===t.start?{start:t.end,replacement:t.value}:{start:t.start,end:t.end,cmd:t.cmd,value:t.value}:"inline-format"===t.type?{start:t.start,end:t.end,format:1===t.format.length?t.format[0]:t.format}:void 0}function N(t){return{inlinePatterns:b(t,x),blockPatterns:E(b(t,C))}}function P(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=kt.console;e&&(e.error?e.error.apply(e,t):e.log.apply(e,t))}function S(t){var n=function(t,n){return gt(t,n)?at.from(t[n]):at.none()}(t,"textpattern_patterns").getOr(Ot);if(!ft(n))return P("The setting textpattern_patterns should be an array"),{inlinePatterns:[],blockPatterns:[]};var e=w(v(n,T));return y(e.errors,function(t){return P(t.message,t.pattern)}),N(e.values)}function M(t){var n=t.getParam("forced_root_block","p");return!1===n?"":!0===n?"p":n}function A(t){return t.nodeType===f.Node.TEXT_NODE}function j(t,n,e,r){void 0===r&&(r=!0);var o=n.startContainer.parentNode,a=n.endContainer.parentNode;n.deleteContents(),r&&!e(n.startContainer)&&(A(n.startContainer)&&0===n.startContainer.data.length&&t.remove(n.startContainer),A(n.endContainer)&&0===n.endContainer.data.length&&t.remove(n.endContainer),Tt(t,o,e),o!==a&&Tt(t,a,e))}function B(t,n){var e=n.get(t);return ft(e)&&function(t){return 0===t.length?at.none():at.some(t[0])}(e).exists(function(t){return gt(t,"block")})}function D(t){return 0===t.start.length}function I(t,n){var e=at.from(t.dom.getParent(n.startContainer,t.dom.isBlock));return""===M(t)?e.orThunk(function(){return at.some(t.getBody())}):e}function _(t,n){return{element:t,offset:n}}function U(t,n){function e(t){for(var n=r[t]();n&&n.nodeType!==f.Node.TEXT_NODE;)n=r[t]();return n&&n.nodeType===f.Node.TEXT_NODE?at.some(n):at.none()}var r=new Et(t,n);return{next:function(){return e("next")},prev:function(){return e("prev")},prev2:function(){return e("prev2")}}}function q(t,n,e){return A(t)&&0<=n?at.some(_(t,n)):U(t,e).prev().map(function(t){return _(t,t.data.length)})}function L(t,n,e){if(A(n)&&(e<0||e>n.data.length))return[];for(var r=[e],o=n;o!==t&&o.parentNode;){for(var a=o.parentNode,i=0;i<a.childNodes.length;i++)if(a.childNodes[i]===o){r.push(i);break}o=a}return o===t?r.reverse():[]}function V(t,n,e,r,o){return{start:L(t,n,e),end:L(t,r,o)}}function W(t,n){var e=n.slice(),r=e.pop();return function(t,n,e){return y(t,function(t){e=n(e,t)}),e}(e,function(t,n){return t.bind(function(t){return at.from(t.childNodes[n])})},at.some(t)).bind(function(t){return A(t)&&0<=r&&t.data.length,at.some({node:t,offset:r})})}function X(n,e){return W(n,e.start).bind(function(t){var o=t.node,a=t.offset;return W(n,e.end).map(function(t){var n=t.node,e=t.offset,r=f.document.createRange();return r.setStart(o,a),r.setEnd(n,e),r})})}function z(r,o,t){U(o,o).next().each(function(e){Nt(e,t.start.length,o).each(function(t){var n=r.createRng();n.setStart(e,0),n.setEnd(t.element,t.offset),j(r,n,function(t){return t===o})})})}function F(t,n){var e=n.replace("\xa0"," ");return function(t,n){for(var e=0,r=t.length;e<r;e++){var o=t[e];if(n(o,e))return at.some(o)}return at.none()}(t,function(t){return 0===n.indexOf(t.start)||0===e.indexOf(t.start)})}function G(n,t){if(0!==t.length){var e=n.selection.getBookmark();y(t,function(t){return function(n,t){var e=n.dom,r=t.pattern,o=X(e.getRoot(),t.range).getOrDie("Unable to resolve path range");return I(n,o).each(function(t){"block-format"===r.type?B(r.format,n.formatter)&&n.undoManager.transact(function(){z(n.dom,t,r),n.formatter.apply(r.format)}):"block-command"===r.type&&n.undoManager.transact(function(){z(n.dom,t,r),n.execCommand(r.cmd,!1,r.value)})}),!0}(n,t)}),n.selection.moveToBookmark(e)}}function H(t,n){return t.create("span",{"data-mce-type":"bookmark",id:n})}function J(t,n){var e=t.createRng();return e.setStartAfter(n.start),e.setEndBefore(n.end),e}function K(t,n,e){var r=X(t.getRoot(),e).getOrDie("Unable to resolve path range"),o=r.startContainer,a=r.endContainer,i=0===r.endOffset?a:a.splitText(r.endOffset),u=0===r.startOffset?o:o.splitText(r.startOffset);return{prefix:n,end:i.parentNode.insertBefore(H(t,n+"-end"),i),start:u.parentNode.insertBefore(H(t,n+"-start"),u)}}function Q(t,n,e){Tt(t,t.get(n.prefix+"-end"),e),Tt(t,t.get(n.prefix+"-start"),e)}function Y(t,e,n,r,o,a){if(void 0===a&&(a=!1),0!==e.start.length||a)return q(n,r,o).bind(function(n){return function(t,n,e,r,o){var a=new Et(n,o);return Mt(t,n,at.some(e),r,a.prev,at.none())}(t,n.element,n.offset,function(f,c,s){return function(e,r,t,n){if(r===c)return e.abort();var o=t.substring(0,n.getOr(t.length)),a=o.lastIndexOf(s.charAt(s.length-1)),i=o.lastIndexOf(s);if(-1===i)return-1!==a?Rt(r,a+1-s.length,c).fold(function(){return e.kontinue()},function(t){var n=f.createRng();return n.setStart(t.element,t.offset),n.setEnd(r,a+1),n.toString()===s?e.finish(n):e.kontinue()}):e.kontinue();var u=f.createRng();return u.setStart(r,i),u.setEnd(r,i+s.length),e.finish(u)}}(t,o,e.start),o).fold(at.none,at.none,at.some).bind(function(t){if(a){if(t.endContainer===n.element&&t.endOffset===n.offset)return at.none();if(0===n.offset&&t.endContainer.textContent.length===t.endOffset)return at.none()}return at.some(t)})});var i=t.createRng();return i.setStart(n,r),i.setEnd(n,r),at.some(i)}function Z(a,i,u){var f=a.dom,c=f.getRoot(),s=u.pattern,l=u.position.element,d=u.position.offset;return Rt(l,d-u.pattern.end.length,i).bind(function(t){var e=V(c,t.element,t.offset,l,d);if(D(s))return at.some({matches:[{pattern:s,startRng:e,endRng:e}],position:t});var n=jt(a,u.remainingPatterns,t.element,t.offset,i),r=n.getOr({matches:[],position:t}),o=r.position;return Y(f,s,o.element,o.offset,i,n.isNone()).map(function(t){var n=function(t,n){return V(t,n.startContainer,n.startOffset,n.endContainer,n.endOffset)}(c,t);return{matches:r.matches.concat([{pattern:s,startRng:n,endRng:e}]),position:_(t.startContainer,t.startOffset)}})})}function $(n,t,e){n.selection.setRng(e),"inline-format"===t.type?y(t.format,function(t){n.formatter.apply(t)}):n.execCommand(t.cmd,!1,t.value)}function tt(o,t){var a=function(t){var n=(new Date).getTime();return t+"_"+Math.floor(1e9*Math.random())+ ++At+String(n)}("mce_textpattern"),i=k(t,function(t,n){var e=K(o,a+"_end"+t.length,n.endRng);return t.concat([u(u({},n),{endMarker:e})])},[]);return k(i,function(t,n){var e=i.length-t.length-1,r=D(n.pattern)?n.endMarker:K(o,a+"_start"+e,n.startRng);return t.concat([u(u({},n),{startMarker:r})])},[])}function nt(e,r,o){var a=e.selection.getRng();return!1===a.collapsed?[]:I(e,a).bind(function(t){var n=a.startOffset-(o?1:0);return jt(e,r,a.startContainer,n,t)}).fold(function(){return[]},function(t){return t.matches})}function et(r,t){if(0!==t.length){var o=r.dom,n=r.selection.getBookmark(),e=tt(o,t);y(e,function(t){function n(t){return t===e}var e=o.getParent(t.startMarker.start,o.isBlock);D(t.pattern)?function(t,n,e,r){var o=J(t.dom,e);j(t.dom,o,r),$(t,n,o)}(r,t.pattern,t.endMarker,n):function(t,n,e,r,o){var a=t.dom,i=J(a,r),u=J(a,e);j(a,u,o),j(a,i,o);var f={prefix:e.prefix,start:e.end,end:r.start},c=J(a,f);$(t,n,c)}(r,t.pattern,t.startMarker,t.endMarker,n),Q(o,t.endMarker,n),Q(o,t.startMarker,n)}),r.selection.moveToBookmark(n)}}function rt(t,n,e){for(var r=0;r<t.length;r++)if(e(t[r],n))return!0}var ot=function(e){function t(){return o}function n(t){return t(e)}var r=a(e),o={fold:function(t,n){return n(e)},is:function(t){return e===t},isSome:s,isNone:c,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:t,orThunk:t,map:function(t){return ot(t(e))},each:function(t){t(e)},bind:n,exists:n,forall:n,filter:function(t){return t(e)?o:l},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(t){return t.is(e)},equals_:function(t,n){return t.fold(c,function(t){return n(e,t)})}};return o},at={some:ot,none:e,from:function(t){return null===t||t===undefined?l:ot(t)}},it=p("string"),ut=p("object"),ft=p("array"),ct=p("function"),st=Array.prototype.slice,lt=Array.prototype.indexOf,dt=(ct(Array.from)&&Array.from,Object.keys),mt=Object.hasOwnProperty,gt=function(t,n){return mt.call(t,n)},pt=function(i){if(!ft(i))throw new Error("cases must be an array");if(0===i.length)throw new Error("there must be at least one case");var u=[],e={};return y(i,function(t,r){var n=dt(t);if(1!==n.length)throw new Error("one and only one name per case");var o=n[0],a=t[o];if(e[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!ft(a))throw new Error("case arguments must be an array");u.push(o),e[o]=function(){var t=arguments.length;if(t!==a.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+a.length+" ("+a+"), got "+t);for(var e=new Array(t),n=0;n<e.length;n++)e[n]=arguments[n];return{fold:function(){if(arguments.length!==i.length)throw new Error("Wrong number of arguments to fold. Expected "+i.length+", got "+arguments.length);return arguments[r].apply(null,e)},match:function(t){var n=dt(t);if(u.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+u.join(",")+"\nActual: "+n.join(","));if(!O(u,function(t){return h(n,t)}))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+u.join(", "));return t[o].apply(null,e)},log:function(t){f.console.log(t,{constructors:u,constructor:o,params:e})}}}}),e},ht=(pt([{bothErrors:["error1","error2"]},{firstError:["error1","value2"]},{secondError:["value1","error2"]},{bothValues:["value1","value2"]}]),function(e){return{is:function(t){return e===t},isValue:s,isError:c,getOr:a(e),getOrThunk:a(e),getOrDie:a(e),or:function(t){return ht(e)},orThunk:function(t){return ht(e)},fold:function(t,n){return n(e)},map:function(t){return ht(t(e))},mapError:function(t){return ht(e)},each:function(t){t(e)},bind:function(t){return t(e)},exists:function(t){return t(e)},forall:function(t){return t(e)},toOption:function(){return at.some(e)}}}),vt=function(e){return{is:c,isValue:c,isError:s,getOr:o,getOrThunk:function(t){return t()},getOrDie:function(){return function(t){return function(){throw new Error(t)}}(String(e))()},or:function(t){return t},orThunk:function(t){return t()},fold:function(t,n){return t(e)},map:function(t){return vt(e)},mapError:function(t){return vt(t(e))},each:n,bind:function(t){return vt(e)},exists:c,forall:s,toOption:at.none}},yt={value:ht,error:vt,fromOption:function(t,n){return t.fold(function(){return vt(n)},ht)}},bt=function(r){return{setPatterns:function(t){var n=w(v(t,T));if(0<n.errors.length){var e=n.errors[0];throw new Error(e.message+":\n"+JSON.stringify(e.pattern,null,2))}r.set(N(n.values))},getPatterns:function(){return function f(){for(var t=0,n=0,e=arguments.length;n<e;n++)t+=arguments[n].length;var r=Array(t),o=0;for(n=0;n<e;n++)for(var a=arguments[n],i=0,u=a.length;i<u;i++,o++)r[o]=a[i];return r}(v(r.get().inlinePatterns,R),v(r.get().blockPatterns,R))}}},kt="undefined"!=typeof f.window?f.window:Function("return this;")(),Ot=[{start:"*",end:"*",format:"italic"},{start:"**",end:"**",format:"bold"},{start:"#",format:"h1"},{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:"1. ",cmd:"InsertOrderedList"},{start:"* ",cmd:"InsertUnorderedList"},{start:"- ",cmd:"InsertUnorderedList"}],wt=tinymce.util.Tools.resolve("tinymce.util.Delay"),xt=tinymce.util.Tools.resolve("tinymce.util.VK"),Ct=tinymce.util.Tools.resolve("tinymce.util.Tools"),Et=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),Tt=function(t,n,e){if(n&&t.isEmpty(n)&&!e(n)){var r=n.parentNode;t.remove(n),Tt(t,r,e)}},Rt=function(t,e,r){if(!A(t))return at.none();var n=t.textContent;return 0<=e&&e<=n.length?at.some(_(t,e)):U(t,r).prev().bind(function(t){var n=t.textContent;return Rt(t,e+n.length,r)})},Nt=function(t,n,e){if(!A(t))return at.none();var r=t.textContent;return n<=r.length?at.some(_(t,n)):U(t,e).next().bind(function(t){return Nt(t,n-r.length,e)})},Pt=pt([{aborted:[]},{edge:["element"]},{success:["info"]}]),St=pt([{abort:[]},{kontinue:[]},{finish:["info"]}]),Mt=function(n,e,t,r,o,a){function i(){return a.fold(Pt.aborted,Pt.edge)}function u(){var t=o();return t?Mt(n,t,at.none(),r,o,at.some(e)):i()}if(function(t,n){return t.isBlock(n)||h(["BR","IMG","HR","INPUT"],n.nodeName)||"false"===t.getContentEditable(n)}(n,e))return i();if(A(e)){var f=e.textContent;return r(St,e,f,t).fold(Pt.aborted,function(){return u()},Pt.success)}return u()},At=0,jt=function(c,s,l,d,m){var g=c.dom;return q(l,d,g.getRoot()).bind(function(t){var n=g.createRng();n.setStart(m,0),n.setEnd(l,d);for(var e,r,o=n.toString(),a=0;a<s.length;a++){var i=s[a];if(e=o,r=i.end,function(t,n,e){return""===n||!(t.length<n.length)&&t.substr(e,e+n.length)===n}(e,r,e.length-r.length)){var u=s.slice();u.splice(a,1);var f=Z(c,m,{pattern:i,remainingPatterns:u,position:t});if(f.isSome())return f}}return at.none()})},Bt=function(e,t){if(!e.selection.isCollapsed())return!1;var r=nt(e,t.inlinePatterns,!1),o=function(r,t){var o=r.dom,n=r.selection.getRng();return I(r,n).filter(function(t){var n=M(r),e=""===n&&o.is(t,"body")||o.is(t,n);return null!==t&&e}).bind(function(n){var e=n.textContent;return F(t,e).map(function(t){return Ct.trim(e).length===t.start.length?[]:[{pattern:t,range:V(o.getRoot(),n,0,n,0)}]})}).getOr([])}(e,t.blockPatterns);return(0<o.length||0<r.length)&&(e.undoManager.add(),e.undoManager.extra(function(){e.execCommand("mceInsertNewLine")},function(){e.insertContent("\ufeff"),et(e,r),G(e,o);var t=e.selection.getRng(),n=q(t.startContainer,t.startOffset,e.dom.getRoot());e.execCommand("mceInsertNewLine"),n.each(function(t){"\ufeff"===t.element.data.charAt(t.offset-1)&&(t.element.deleteData(t.offset-1,1),Tt(e.dom,t.element.parentNode,function(t){return t===e.dom.getRoot()}))})}),!0)},Dt=function(t,n){var e=nt(t,n.inlinePatterns,!0);0<e.length&&t.undoManager.transact(function(){et(t,e)})},It=function(t,n){return rt(t,n,function(t,n){return t.charCodeAt(0)===n.charCode})},_t=function(t,n){return rt(t,n,function(t,n){return t===n.keyCode&&!1===xt.modifierPressed(n)})},Ut=function(n,e){var r=[",",".",";",":","!","?"],o=[32];n.on("keydown",function(t){13!==t.keyCode||xt.modifierPressed(t)||Bt(n,e.get())&&t.preventDefault()},!0),n.on("keyup",function(t){_t(o,t)&&Dt(n,e.get())}),n.on("keypress",function(t){It(r,t)&&wt.setEditorTimeout(n,function(){Dt(n,e.get())})})};!function qt(){t.add("textpattern",function(t){var n=r(S(t.settings));return Ut(t,n),bt(n)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function e(n){return function(t){function e(){return t.setDisabled(n.readonly||!v.hasHeaders(n))}return e(),n.on("LoadContent SetContent change",e),function(){return n.on("LoadContent SetContent change",e)}}}var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),l=tinymce.util.Tools.resolve("tinymce.util.I18n"),i=tinymce.util.Tools.resolve("tinymce.util.Tools"),c=function(t){return t.getParam("toc_class","mce-toc")},d=function(t){var e=t.getParam("toc_header","h2");return/^h[1-6]$/.test(e)?e:"h2"},a=function(t){var e=parseInt(t.getParam("toc_depth","3"),10);return 1<=e&&e<=9?e:3},s=function(e){var n=0;return function(){var t=(new Date).getTime().toString(32);return e+t+(n++).toString(32)}}("mcetoc_"),f=function f(t){var e,n=[];for(e=1;e<=t;e++)n.push("h"+e);return n.join(",")},m=function(n){var o=c(n),t=d(n),e=f(a(n)),r=n.$(e);return r.length&&/^h[1-9]$/i.test(t)&&(r=r.filter(function(t,e){return!n.dom.hasClass(e.parentNode,o)})),i.map(r,function(t){return{id:t.id?t.id:s(),level:parseInt(t.nodeName.replace(/^H/i,""),10),title:n.$.text(t),element:t}})},o=function(t){var e,n,o,r,i="",c=m(t),a=function(t){var e,n=9;for(e=0;e<t.length;e++)if(t[e].level<n&&(n=t[e].level),1===n)return n;return n}(c)-1;if(!c.length)return"";for(i+=function(t,e){var n="</"+t+">";return"<"+t+' contenteditable="true">'+u.DOM.encode(e)+n}(d(t),l.translate("Table of Contents")),e=0;e<c.length;e++){if((o=c[e]).element.id=o.id,r=c[e+1]&&c[e+1].level,a===o.level)i+="<li>";else for(n=a;n<o.level;n++)i+="<ul><li>";if(i+='<a href="#'+o.id+'">'+o.title+"</a>",r!==o.level&&r)for(n=o.level;r<n;n--)i+="</li></ul><li>";else i+="</li>",r||(i+="</ul>");a=o.level}return i},r=function(t){var e=c(t),n=t.$("."+e);n.length&&t.undoManager.transact(function(){n.html(o(t))})},v={hasHeaders:function(t){return 0<m(t).length},insertToc:function(t){var e=c(t),n=t.$("."+e);!function(t,e){return!e.length||0<t.dom.getParents(e[0],".mce-offscreen-selection").length}(t,n)?r(t):t.insertContent(function(t){var e=o(t);return'<div class="'+t.dom.encode(c(t))+'" contenteditable="false">'+e+"</div>"}(t))},updateToc:r},n=function(t){t.addCommand("mceInsertToc",function(){v.insertToc(t)}),t.addCommand("mceUpdateToc",function(){v.updateToc(t)})},g=function(t){var n=t.$,o=c(t);t.on("PreProcess",function(t){var e=n("."+o,t.node);e.length&&(e.removeAttr("contentEditable"),e.find("[contenteditable]").removeAttr("contentEditable"))}),t.on("SetContent",function(){var t=n("."+o);t.length&&(t.attr("contentEditable",!1),t.children(":first-child").attr("contentEditable",!0))})},h=function(t){t.ui.registry.addButton("toc",{icon:"toc",tooltip:"Table of contents",onAction:function(){return t.execCommand("mceInsertToc")},onSetup:e(t)}),t.ui.registry.addButton("tocupdate",{icon:"reload",tooltip:"Update",onAction:function(){return t.execCommand("mceUpdateToc")}}),t.ui.registry.addMenuItem("toc",{icon:"toc",text:"Table of contents",onAction:function(){return t.execCommand("mceInsertToc")},onSetup:e(t)}),t.ui.registry.addContextToolbar("toc",{items:"tocupdate",predicate:function(e){return function(t){return t&&e.dom.is(t,"."+c(e))&&e.getBody().contains(t)}}(t),scope:"node",position:"node"})};!function p(){t.add("toc",function(t){n(t),h(t),g(t)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function n(n,e){return function(o){o.setActive(e.get());function t(t){return o.setActive(t.state)}return n.on("VisualBlocks",t),function(){return n.off("VisualBlocks",t)}}}var e=function(t){function o(){return n}var n=t;return{get:o,set:function(t){n=t},clone:function(){return e(o())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(t,o){t.fire("VisualBlocks",{state:o})},u=function(t,o,n){t.dom.toggleClass(t.getBody(),"mce-visualblocks"),n.set(!n.get()),i(t,n.get())},c=function(t,o,n){t.addCommand("mceVisualBlocks",function(){u(t,o,n)})},s=function(t){return t.getParam("visualblocks_default_state",!1,"boolean")},l=function(o,t,n){o.on("PreviewFormats AfterPreviewFormats",function(t){n.get()&&o.dom.toggleClass(o.getBody(),"mce-visualblocks","afterpreviewformats"===t.type)}),o.on("init",function(){s(o)&&u(o,t,n)}),o.on("remove",function(){o.dom.removeClass(o.getBody(),"mce-visualblocks")})},r=function(t,o){t.ui.registry.addToggleButton("visualblocks",{icon:"visualblocks",tooltip:"Show blocks",onAction:function(){return t.execCommand("mceVisualBlocks")},onSetup:n(t,o)}),t.ui.registry.addToggleMenuItem("visualblocks",{text:"Show blocks",onAction:function(){return t.execCommand("mceVisualBlocks")},onSetup:n(t,o)})};!function o(){t.add("visualblocks",function(t,o){var n=e(!1);c(t,o,n),r(t,n),l(t,o,n)})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(r){"use strict";function n(){}function u(n){return function(){return n}}function e(){return l}var t,o=function(n){function e(){return t}var t=n;return{get:e,set:function(n){t=n},clone:function(){return o(e())}}},i=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=function(n){return{isEnabled:function(){return n.get()}}},a=function(n,e){return n.fire("VisualChars",{state:e})},f=u(!1),s=u(!0),l=(t={fold:function(n,e){return n()},is:f,isSome:f,isNone:s,getOr:g,getOrThunk:m,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:u(null),getOrUndefined:u(undefined),or:g,orThunk:m,map:e,each:n,bind:e,exists:f,forall:s,filter:e,equals:d,equals_:d,toArray:function(){return[]},toString:u("none()")},Object.freeze&&Object.freeze(t),t);function d(n){return n.isNone()}function m(n){return n()}function g(n){return n}function N(e){return function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"==e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e}(n)===e}}function v(n,e){for(var t=0,r=n.length;t<r;t++){e(n[t],t)}}function h(n){return n.dom().nodeValue}function p(n,e,t){!function(n,e,t){if(!(L(t)||P(t)||R(t)))throw r.console.error("Invalid call to Attr.set. Key ",e,":: Value ",t,":: Element ",n),new Error("Attribute value was not simple");n.setAttribute(e,t+"")}(n.dom(),e,t)}function E(n,e){n.dom().removeAttribute(e)}function T(n,e){var t=function(n,e){var t=n.dom().getAttribute(e);return null===t?undefined:t}(n,e);return t===undefined||""===t?[]:t.split(" ")}function O(n){return n.dom().classList!==undefined}function y(n,e){return function(n,e,t){var r=T(n,e).concat([t]);return p(n,e,r.join(" ")),!0}(n,"class",e)}function b(n,e){return function(n,e,t){var r=function(n,e){for(var t=[],r=0,o=n.length;r<o;r++){var u=n[r];e(u,r)&&t.push(u)}return t}(T(n,e),function(n){return n!==t});return 0<r.length?p(n,e,r.join(" ")):E(n,e),!1}(n,"class",e)}function D(n){0===(O(n)?n.dom().classList:function(n){return T(n,"class")}(n)).length&&E(n,"class")}function C(n,e){var t,r="";for(t in n)r+=t;return new RegExp("["+r+"]",e?"g":"")}function A(n){var e,t="";for(e in n)t&&(t+=","),t+="span.mce-"+n[e];return t}function _(n){return"span"===n.nodeName.toLowerCase()&&n.classList.contains("mce-nbsp-wrap")}function w(u,n){var e=W.filterDescendants(F.fromDom(n),W.isMatch);v(e,function(n){var e=n.dom().parentNode;if(_(e))!function(n,e){O(n)?n.dom().classList.add(e):y(n,e)}(F.fromDom(e),H.nbspClass);else{for(var t=W.replaceWithSpans(h(n)),r=u.dom.create("div",null,t),o=void 0;o=r.lastChild;)u.dom.insertAfter(o,n.dom());u.dom.remove(n.dom())}})}function M(e,n){var t=e.dom.select(H.selector,n);v(t,function(n){_(n)?function(n,e){O(n)?n.dom().classList.remove(e):b(n,e);D(n)}(F.fromDom(n),H.nbspClass):e.dom.remove(n,!0)})}function S(t,r){return function(e){e.setActive(r.get());function n(n){return e.setActive(n.state)}return t.on("VisualChars",n),function(){return t.off("VisualChars",n)}}}var k,x=function(t){function n(){return o}function e(n){return n(t)}var r=u(t),o={fold:function(n,e){return e(t)},is:function(n){return t===n},isSome:s,isNone:f,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){return x(n(t))},each:function(n){n(t)},bind:e,exists:e,forall:e,filter:function(n){return n(t)?o:l},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(n){return n.is(t)},equals_:function(n,e){return n.fold(f,function(n){return e(t,n)})}};return o},I=function(n){return null===n||n===undefined?l:x(n)},L=N("string"),P=N("boolean"),B=N("function"),R=N("number"),V=Array.prototype.slice,U=(B(Array.from)&&Array.from,r.Node.ATTRIBUTE_NODE,r.Node.CDATA_SECTION_NODE,r.Node.COMMENT_NODE,r.Node.DOCUMENT_NODE,r.Node.DOCUMENT_TYPE_NODE,r.Node.DOCUMENT_FRAGMENT_NODE,r.Node.ELEMENT_NODE,r.Node.TEXT_NODE),j=(r.Node.PROCESSING_INSTRUCTION_NODE,r.Node.ENTITY_REFERENCE_NODE,r.Node.ENTITY_NODE,r.Node.NOTATION_NODE,"undefined"!=typeof r.window?r.window:Function("return this;")(),k=U,function(n){return function(n){return n.dom().nodeType}(n)===k}),q=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:u(n)}},F={fromHtml:function(n,e){var t=(e||r.document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||1<t.childNodes.length)throw r.console.error("HTML does not have a single root node",n),new Error("HTML must have a single root node");return q(t.childNodes[0])},fromTag:function(n,e){var t=(e||r.document).createElement(n);return q(t)},fromText:function(n,e){var t=(e||r.document).createTextNode(n);return q(t)},fromDom:q,fromPoint:function(n,e,t){var r=n.dom();return I(r.elementFromPoint(e,t)).map(q)}},G={"\xa0":"nbsp","\xad":"shy"},H={charMap:G,regExp:C(G),regExpGlobal:C(G,!0),selector:A(G),nbspClass:"mce-nbsp",charMapToRegExp:C,charMapToSelector:A},Y=function(n){return'<span data-mce-bogus="1" class="mce-'+H.charMap[n]+'">'+n+"</span>"},z=function(n,e){var t=[],r=function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var u=n[o];r[o]=e(u,o)}return r}(n.dom().childNodes,F.fromDom);return v(r,function(n){e(n)&&(t=t.concat([n])),t=t.concat(z(n,e))}),t},W={isMatch:function(n){return j(n)&&h(n)!==undefined&&H.regExp.test(h(n))},filterDescendants:z,findParentElm:function(n,e){for(;n.parentNode;){if(n.parentNode===e)return n;n=n.parentNode}},replaceWithSpans:function(n){return n.replace(H.regExpGlobal,Y)}},K=w,X=M,J=function(n){var e=n.getBody(),t=n.selection.getBookmark(),r=W.findParentElm(n.selection.getNode(),e);r=r!==undefined?r:e,M(n,r),w(n,r),n.selection.moveToBookmark(t)},Q=function(n,e){var t,r=n.getBody(),o=n.selection;e.set(!e.get()),a(n,e.get()),t=o.getBookmark(),!0===e.get()?K(n,r):X(n,r),o.moveToBookmark(t)},Z=function(n,e){n.addCommand("mceVisualChars",function(){Q(n,e)})},$=tinymce.util.Tools.resolve("tinymce.util.Delay"),nn=function(e,t){var r=$.debounce(function(){J(e)},300);!1!==e.settings.forced_root_block&&e.on("keydown",function(n){!0===t.get()&&(13===n.keyCode?J(e):r())})},en=function(n){return n.getParam("visualchars_default_state",!1)},tn=function(e,t){e.on("init",function(){var n=!en(e);t.set(n),Q(e,t)})};!function rn(){i.add("visualchars",function(n){var e=o(!1);return Z(n,e),function(n,e){n.ui.registry.addToggleButton("visualchars",{tooltip:"Show invisible characters",icon:"visualchars",onAction:function(){return n.execCommand("mceVisualChars")},onSetup:S(n,e)}),n.ui.registry.addToggleMenuItem("visualchars",{text:"Show invisible characters",onAction:function(){return n.execCommand("mceVisualChars")},onSetup:S(n,e)})}(n,e),nn(n,e),tn(n,e),c(e)})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(){"use strict";function t(){}function n(t){return function(){return t}}function r(t){return t}function e(){return U}var o,u=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=n(!1),c=n(!0),a=function(){return(a=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)},f="[-'\\.\u2018\u2019\u2024\ufe52\uff07\uff0e]",s="[:\xb7\xb7\u05f4\u2027\ufe13\ufe55\uff1a]",l="[\xb1+*/,;;\u0589\u060c\u060d\u066c\u07f8\u2044\ufe10\ufe14\ufe50\ufe54\uff0c\uff1b]",g="[0-9\u0660-\u0669\u066b\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\uaa50-\uaa59\uabf0-\uabf9]",p="\\r",d="\\n",h="[\x0B\f\x85\u2028\u2029]",y="[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f\u109a-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b6-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u192b\u1930-\u193b\u19b0-\u19c0\u19c8\u19c9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f\u1b00-\u1b04\u1b34-\u1b44\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1baa\u1be6-\u1bf3\u1c24-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe3-\uabea\uabec\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]",C="[\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200e\u200f\u202a-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb]",v="[\u3031-\u3035\u309b\u309c\u30a0-\u30fa\u30fc-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff9d]",w="[=_\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f\u2200-\u22ff<>]",m="[!-#%-*,-\\/:;?@\\[-\\]_{}\xa1\xab\xb7\xbb\xbf;\xb7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]",b=0,E=1,S=2,x=3,W=4,R=5,O=6,A=7,j=8,D=9,T=10,k=11,P=12,B=13,F=[new RegExp("[A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f3\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u10a0-\u10c5\u10d0-\u10fa\u10fc\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1a00-\u1a16\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bc0-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2d00-\u2d25\u2d30-\u2d65\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005\u303b\u303c\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790\ua791\ua7a0-\ua7a9\ua7fa-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),new RegExp(f),new RegExp(s),new RegExp(l),new RegExp(g),new RegExp(p),new RegExp(d),new RegExp(h),new RegExp(y),new RegExp(C),new RegExp(v),new RegExp(w),new RegExp("@")],N=new RegExp("^"+m+"$"),U=(o={fold:function(t,n){return t()},is:i,isSome:i,isNone:c,getOr:M,getOrThunk:z,getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:n(null),getOrUndefined:n(undefined),or:M,orThunk:z,map:e,each:t,bind:e,exists:i,forall:c,filter:e,equals:_,equals_:_,toArray:function(){return[]},toString:n("none()")},Object.freeze&&Object.freeze(o),o);function _(t){return t.isNone()}function z(t){return t()}function M(t){return t}function q(t){for(var n=ot,e=rt.length,r=0;r<e;++r){var o=rt[r];if(o&&o.test(t)){n=r;break}}return n}function $(t){return function(t,n){for(var e=t.length,r=new Array(e),o=0;o<e;o++){var u=t[o];r[o]=n(u,o)}return r}(t,function(e){var r={};return function(t){if(r[t])return r[t];var n=e(t);return r[t]=n}}(q))}function I(t,n){var e=function(t,n){var e;for(e=n;e<t.length&&!ut.test(t[e]);e++);return e}(t,n+1);return"://"===t.slice(n+1,e).join("").substr(0,3)?e:n}function Z(t,n){for(var e,r=n.getBlockElements(),o=n.getShortEndedElements(),u=[],i="",c=new at(t,t);t=c.next();)3===t.nodeType?i+=t.data:(r[(e=t).nodeName]||o[e.nodeName])&&i.length&&(u.push(i),i="");return i.length&&u.push(i),u}function G(t){return t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length}function H(t,n){var e=Z(t,n).join("\n");return ct(e.split(""),r).length}function J(t,n){var e=Z(t,n).join("");return G(e)}function K(t,n){var e=Z(t,n).join("").replace(/\s/g,"");return G(e)}function L(t,n){return function(){return n(t.getBody(),t.schema)}}function Q(t,n){return function(){return n(t.selection.getRng().cloneContents(),t.schema)}}function V(t){return L(t,H)}function X(t,n){!function(t,n){t.fire("wordCountUpdate",{wordCount:{words:n.body.getWordCount(),characters:n.body.getCharacterCount(),charactersWithoutSpaces:n.body.getCharacterCountWithoutSpaces()}})}(t,n)}function Y(t,n){t.windowManager.open({title:"Word Count",body:{type:"panel",items:[{type:"table",header:["Count","Document","Selection"],cells:[["Words",String(n.body.getWordCount()),String(n.selection.getWordCount())],["Characters (no spaces)",String(n.body.getCharacterCountWithoutSpaces()),String(n.selection.getCharacterCountWithoutSpaces())],["Characters",String(n.body.getCharacterCount()),String(n.selection.getCharacterCount())]]}]},buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}]})}var tt,nt=(tt="function",function(t){return function(t){if(null===t)return"null";var n=typeof t;return"object"==n&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":n}(t)===tt}),et=Array.prototype.slice,rt=(nt(Array.from)&&Array.from,F),ot=B,ut=/^\s+$/,it=N,ct=function(t,n,e){e=a(a({},{includeWhitespace:!1,includePunctuation:!1}),e);for(var r=[],o=[],u=0;u<t.length;u++){var i=n(t[u]);"\ufeff"!==i&&(r.push(t[u]),o.push(i))}return function(t,n,e,r){for(var o,u,i,c,a,f,s,l=[],g=[],p=0;p<e.length;++p)if(g.push(t[p]),a=c=void 0,f=(u=e)[i=p],s=u[i+1],!(i<0||i>u.length-1&&0!==i||f===b&&s===b||(a=u[i+2],f===b&&(s===S||s===E||s===P)&&a===b||(c=u[i-1],(f===S||f===E||s===P)&&s===b&&c===b||!(f!==W&&f!==b||s!==W&&s!==b)||(f===x||f===E)&&s===W&&c===W||f===W&&(s===x||s===E)&&a===W||f===j||f===D||c===j||c===D||s===j||s===D||f===R&&s===O||f!==A&&f!==R&&f!==O&&s!==A&&s!==R&&s!==O&&(f===T&&s===T||s===k&&(f===b||f===W||f===T||f===k)||f===k&&(s===b||s===W||s===T)||f===P))))){var d=n[p];if((r.includeWhitespace||!ut.test(d))&&(r.includePunctuation||!it.test(d))){var h=p-g.length+1,y=p+1,C=n.slice(h,y).join("");if("http"===(o=C)||"https"===o){var v=I(n,p),w=t.slice(y,v);Array.prototype.push.apply(g,w),p=v}l.push(g)}g=[]}return l}(r,o,$(o),e)},at=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),ft=tinymce.util.Tools.resolve("tinymce.util.Delay");!function st(e){void 0===e&&(e=300),u.add("wordcount",function(t){var n=function(t){return{body:{getWordCount:V(t),getCharacterCount:L(t,J),getCharacterCountWithoutSpaces:L(t,K)},selection:{getWordCount:Q(t,H),getCharacterCount:Q(t,J),getCharacterCountWithoutSpaces:Q(t,K)},getCount:V(t)}}(t);return function(t,n){t.ui.registry.addButton("wordcount",{tooltip:"Word count",icon:"character-count",onAction:function(){return Y(t,n)}}),t.ui.registry.addMenuItem("wordcount",{text:"Word count",icon:"character-count",onAction:function(){return Y(t,n)}})}(t,n),function(t,n,e){var r=ft.debounce(function(){return X(t,n)},e);t.on("init",function(){X(t,n),ft.setEditorTimeout(t,function(){t.on("SetContent BeforeAddUndo Undo Redo keyup",r)},0)})}(t,n,e),n})}()}();
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-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 td,table th{border:1px solid #6d737b;padding:.4rem}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}td[data-mce-selected],th[data-mce-selected]{color:#333}.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}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-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 td,table th{border:1px solid #ccc;padding:.4rem}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}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-@media screen{html{background:#f4f4f4}}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 td,table th{border:1px solid #ccc;padding:.4rem}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}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-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 td,table th{border:1px solid #ccc;padding:.4rem}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}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size:100%;content:'';cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentcolor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-9999999999px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{content:"";display:block}.tiny-pageembed--21by9::before{padding-top:42.857143%}.tiny-pageembed--16by9::before{padding-top:56.25%}.tiny-pageembed--4by3::before{padding-top:75%}.tiny-pageembed--1by1::before{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-clonedresizable{opacity:.5;outline:1px dashed #000;position:absolute;z-index:10000}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10001}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color:#b4d7ff!important}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size:100%;content:'';cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6272a4}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#ff79c6}.token.boolean,.token.number{color:#bd93f9}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#50fa7b}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#f1fa8c}.token.keyword{color:#8be9fd}.token.important,.token.regex{color:#ffb86c}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentcolor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-9999999999px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{content:"";display:block}.tiny-pageembed--21by9::before{padding-top:42.857143%}.tiny-pageembed--16by9::before{padding-top:56.25%}.tiny-pageembed--4by3::before{padding-top:75%}.tiny-pageembed--1by1::before{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-clonedresizable{opacity:.5;outline:1px dashed #000;position:absolute;z-index:10000}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10001}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline:3px solid #4099ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #4099ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #4099ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #4099ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #4099ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#4099ff}.mce-content-body .mce-edit-focus{outline:3px solid #4099ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color:#b4d7ff!important}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#4099ff;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.tox{box-sizing:content-box;color:#2a3746;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg){background:0 0;border:0;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #000;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{border:1px solid #000;border-bottom:0;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #000;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#000;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.5);border-color:#207ab7;color:#fff}.tox .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:#207ab7}.tox .accessibility-issue--info h2{color:#fff}.tox .accessibility-issue--info .tox-icon svg{fill:#fff}.tox .accessibility-issue--info a .tox-icon{color:#fff}.tox .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.5);border-color:rgba(255,165,0,.8);color:#fff}.tox .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.8)}.tox .accessibility-issue--warn h2{color:#fff}.tox .accessibility-issue--warn .tox-icon svg{fill:#fff}.tox .accessibility-issue--warn a .tox-icon{color:#fff}.tox .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.5);border-color:rgba(204,0,0,.8);color:#fff}.tox .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.8)}.tox .accessibility-issue--error h2{color:#fff}.tox .accessibility-issue--error .tox-icon svg{fill:#fff}.tox .accessibility-issue--error a .tox-icon{color:#fff}.tox .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.5);border-color:rgba(120,171,70,.8);color:#fff}.tox .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.8)}.tox .accessibility-issue--success h2{color:#fff}.tox .accessibility-issue--success .tox-icon svg{fill:#fff}.tox .accessibility-issue--success a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:none;background-repeat:none;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:700;letter-spacing:1;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:capitalize;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#3d546f;background-image:none;background-position:none;background-repeat:none;border-color:#3d546f;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#fff;outline:0;padding:4px 16px;text-decoration:none;text-transform:capitalize}.tox .tox-button--secondary[disabled]{background-color:#3d546f;background-image:none;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:hover:not(:disabled){background-color:#34485f;background-image:none;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--secondary:active:not(:disabled){background-color:#2b3b4e;background-image:none;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#fff}.tox .tox-button--naked[disabled]{background-color:#3d546f;border-color:#3d546f;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:focus:not(:disabled){background-color:#34485f;border-color:#34485f;box-shadow:none;color:#fff}.tox .tox-button--naked:active:not(:disabled){background-color:#2b3b4e;border-color:#2b3b4e;box-shadow:none;color:#fff}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#fff}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(255,255,255,.2)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(255,255,255,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(255,255,255,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#1a1a1a;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#333;color:#fff;cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#fff;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:inherit;color:contrast(inherit,#2a3746,#fff)}.tox .tox-collection--list .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#757d87;color:#fff}.tox .tox-collection--grid .tox-collection__item--active{background-color:#4a5562}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#fff}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(255,255,255,.5);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:normal}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#fff}.tox .tox-collection__item[role=menuitemcheckbox]:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--horizontal{background-color:#2b3b4e;border:1px solid #1a1a1a;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #000}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #000}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg{transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#4a5562}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#2b3b4e;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#fff;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(255,255,255,.5);font-size:12px}.tox .tox-comment__body{color:#fff;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(255,255,255,.5);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#2b3b4e;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(43,59,78,0),#2b3b4e);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#2b3b4e;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#fff;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#2b3b4e;box-shadow:0 0 8px 8px #2b3b4e;color:#fff;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#2b3b4e;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(255,255,255,.5)}.tox .tox-user__name{color:rgba(255,255,255,.5);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(34,47,62,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#222f3e}.tox .tox-dialog{background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(42,55,70,.15),0 0 40px 1px rgba(42,55,70,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#2b3b4e;border-bottom:none;color:#fff;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:normal}.tox .tox-dialog__body{color:#fff;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:normal}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(255,255,255,.5);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{font-size:20px;font-weight:700;margin-bottom:16px;margin-top:2rem}.tox .tox-dialog__body-content .tox-form__group h2{font-size:16px;font-weight:700;margin-bottom:16px;margin-top:2rem}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#2b3b4e;border-top:1px solid #000;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(34,47,62,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #000}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}body.tox-dialog__disable-scroll{overflow:hidden}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #000;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(255,255,255,.5);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #000}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex}.tox .tox-color-input .tox-textfield{border-radius:3px 0 0 3px;display:flex}.tox .tox-color-input span{border-color:rgba(42,55,70,.2);border-radius:0 3px 3px 0;border-style:solid;border-width:1px 1px 1px 0;box-shadow:none;box-sizing:border-box;cursor:pointer;display:flex;width:35px}.tox .tox-color-input span:focus{border-color:#207ab7}.tox[dir=rtl] .tox-color-input .tox-textfield{border-radius:0 3px 3px 0}.tox[dir=rtl] .tox-color-input span{border-radius:3px 0 0 3px;border-width:1px 0 1px 1px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(255,255,255,.5);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:normal;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-selectfield select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2b3b4e;border-color:#000;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#222f3e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-selectfield select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#fff}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select[disabled]{background-color:#19232e;color:rgba(255,255,255,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox-fullscreen .tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-fullscreen .tox.tox-tinymce.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux{z-index:1201}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:169px}.tox .tox-insert-table-picker>div{border-color:#000;border-style:solid;border-width:0 1px 1px 0;box-sizing:content-box;height:16px;width:16px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:#fff;display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:normal;width:auto}.tox .tox-mbtn[disabled]{background-color:none;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn--active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#fff}.tox .tox-notification--success p{color:#fff}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#fff}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#fff}.tox .tox-notification--error p{color:#fff}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#fff}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#fff}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#fff}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#fff}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#fff}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#fff}.tox .tox-notification--info p{color:#fff}.tox .tox-notification--info a{color:#fff}.tox .tox-notification--info svg{fill:#fff}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#fff;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar{flex-wrap:nowrap}.tox .tox-pop__dialog{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#222f3e transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#000 transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #222f3e transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #000 transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #222f3e transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #000 transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #222f3e;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #000;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#222f3e;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #000;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(255,255,255,.5);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#222f3e;border-top:1px solid #000;color:#fff;display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:#fff;text-decoration:none}.tox .tox-statusbar a:focus,.tox .tox-statusbar a:hover,.tox .tox-statusbar__path-item:focus,.tox .tox-statusbar__path-item:hover,.tox .tox-statusbar__wordcount:focus,.tox .tox-statusbar__wordcount:hover{cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:#fff}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1400}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(34,47,62,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:normal;width:34px}.tox .tox-tbtn svg{display:block;fill:#fff}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#4a5562;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:hover svg{fill:#fff}.tox .tox-tbtn:active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn:active svg{fill:#fff}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#fff}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#fff}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #4a5562 inset}.tox .tox-split-button:focus{background:#4a5562;box-shadow:none;color:#fff}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(255,255,255,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(255,255,255,.5)}.tox .tox-toolbar-overlord{background-color:#222f3e}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#222f3e;border:1px solid #000;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox[dir=rtl] .tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #000}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #000}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#3d546f;border-radius:3px;box-shadow:0 2px 4px rgba(42,55,70,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:normal}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #3d546f;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #3d546f;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #3d546f;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #3d546f;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #000;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #000;border-radius:3px;display:flex;height:525px}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size:100%;content:'';cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentcolor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-9999999999px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{content:"";display:block}.tiny-pageembed--21by9::before{padding-top:42.857143%}.tiny-pageembed--16by9::before{padding-top:56.25%}.tiny-pageembed--4by3::before{padding-top:75%}.tiny-pageembed--1by1::before{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-clonedresizable{opacity:.5;outline:1px dashed #000;position:absolute;z-index:10000}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10001}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color:#b4d7ff!important}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment{background-color:#fff0b7}.tox-comments-visible .tox-comment--active{background-color:#ffe168}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size:100%;content:'';cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentcolor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-9999999999px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{content:"";display:block}.tiny-pageembed--21by9::before{padding-top:42.857143%}.tiny-pageembed--16by9::before{padding-top:56.25%}.tiny-pageembed--4by3::before{padding-top:75%}.tiny-pageembed--1by1::before{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:10000}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-clonedresizable{opacity:.5;outline:1px dashed #000;position:absolute;z-index:10000}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10001}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color:#b4d7ff!important}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mce-content-body img::-moz-selection{background:0 0}.mce-content-body img::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.tox{box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg){background:0 0;border:0;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{border:1px solid #ccc;border-bottom:0;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}.tox .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}.tox .accessibility-issue--info h2{color:#207ab7}.tox .accessibility-issue--info .tox-icon svg{fill:#207ab7}.tox .accessibility-issue--info a .tox-icon{color:#207ab7}.tox .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}.tox .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}.tox .accessibility-issue--warn h2{color:#cc8500}.tox .accessibility-issue--warn .tox-icon svg{fill:#cc8500}.tox .accessibility-issue--warn a .tox-icon{color:#cc8500}.tox .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}.tox .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}.tox .accessibility-issue--error h2{color:#c00}.tox .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .accessibility-issue--error a .tox-icon{color:#c00}.tox .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}.tox .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}.tox .accessibility-issue--success h2{color:#78ab46}.tox .accessibility-issue--success .tox-icon svg{fill:#78ab46}.tox .accessibility-issue--success a .tox-icon{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:none;background-repeat:none;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-weight:700;letter-spacing:1;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:capitalize;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:none;background-repeat:none;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;outline:0;padding:4px 16px;text-decoration:none;text-transform:capitalize}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:inherit;color:contrast(inherit,#222f3e,#fff)}.tox .tox-collection--list .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:normal}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection__item[role=menuitemcheckbox]:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg{transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#dee0e2}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:normal}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:normal}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{font-size:20px;font-weight:700;margin-bottom:16px;margin-top:2rem}.tox .tox-dialog__body-content .tox-form__group h2{font-size:16px;font-weight:700;margin-bottom:16px;margin-top:2rem}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #ccc}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}body.tox-dialog__disable-scroll{overflow:hidden}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #ccc}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex}.tox .tox-color-input .tox-textfield{border-radius:3px 0 0 3px;display:flex}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:0 3px 3px 0;border-style:solid;border-width:1px 1px 1px 0;box-shadow:none;box-sizing:border-box;cursor:pointer;display:flex;width:35px}.tox .tox-color-input span:focus{border-color:#207ab7}.tox[dir=rtl] .tox-color-input .tox-textfield{border-radius:0 3px 3px 0}.tox[dir=rtl] .tox-color-input span{border-radius:3px 0 0 3px;border-width:1px 0 1px 1px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:normal;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-selectfield select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox-fullscreen .tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-fullscreen .tox.tox-tinymce.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux{z-index:1201}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:169px}.tox .tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:content-box;height:16px;width:16px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:normal;width:auto}.tox .tox-mbtn[disabled]{background-color:none;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#222f3e}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#222f3e}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar{flex-wrap:nowrap}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus,.tox .tox-statusbar a:hover,.tox .tox-statusbar__path-item:focus,.tox .tox-statusbar__path-item:hover,.tox .tox-statusbar__wordcount:focus,.tox .tox-statusbar__wordcount:hover{cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1400}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:normal;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}.tox .tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox[dir=rtl] .tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:normal}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;height:525px}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- */
-.tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}}
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(d){"use strict";var x=function(){return(x=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}).apply(this,arguments)};function u(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(n);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(t[r[o]]=n[r[o]])}return t}function w(){}function y(n){return n}var i=function(t,r){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return t(r.apply(null,n))}},v=function(n){return function(){return n}};function l(r){for(var o=[],n=1;n<arguments.length;n++)o[n-1]=arguments[n];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var t=o.concat(n);return r.apply(null,t)}}function m(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(null,n)}}function o(n){return function(){throw new Error(n)}}function t(n){return n()}function n(){return f}var e,c=v(!1),a=v(!0),f=(e={fold:function(n,e){return n()},is:c,isSome:c,isNone:a,getOr:g,getOrThunk:s,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:v(null),getOrUndefined:v(undefined),or:g,orThunk:s,map:n,each:w,bind:n,exists:c,forall:a,filter:n,equals:r,equals_:r,toArray:function(){return[]},toString:v("none()")},Object.freeze&&Object.freeze(e),e);function r(n){return n.isNone()}function s(n){return n()}function g(n){return n}function S(n,t){return jn(n,function(n,e){return{k:e,v:t(n,e)}})}function p(n,e){return Vn.call(n,e)}function h(n,e){var t=function(n,e){for(var t=0;t<n.length;t++){var r=n[t];if(r.test(e))return r}return undefined}(n,e);if(!t)return{major:0,minor:0};function r(n){return Number(e.replace(t,"$"+n))}return zn(r(1),r(2))}function b(n,e){return function(){return e===n}}function T(n,e){return function(){return e===n}}function O(e){return function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"==e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e}(n)===e}}function k(n,e){return-1<function(n,e){return se.call(n,e)}(n,e)}function E(n,e){for(var t=0,r=n.length;t<r;t++){if(e(n[t],t))return!0}return!1}function C(n,e){for(var t=0,r=n.length;t<r;t++){e(n[t],t)}}function D(n,e){for(var t=[],r=0,o=n.length;r<o;r++){var i=n[r];e(i,r)&&t.push(i)}return t}function M(n,e,t){return function(n,e){for(var t=n.length-1;0<=t;t--){e(n[t],t)}}(n,function(n){t=e(t,n)}),t}function I(n,e,t){return C(n,function(n){t=e(t,n)}),t}function R(n,e){for(var t=0,r=n.length;t<r;t++){var o=n[t];if(e(o,t))return Fn.some(o)}return Fn.none()}function A(n,e){for(var t=0,r=n.length;t<r;t++){if(e(n[t],t))return Fn.some(t)}return Fn.none()}function F(n){for(var e=[],t=0,r=n.length;t<r;++t){if(!ie(n[t]))throw new Error("Arr.flatten item "+t+" was not an array, input: "+n);le.apply(e,n[t])}return e}function B(n,e){var t=de(n,e);return F(t)}function V(n,e){for(var t=0,r=n.length;t<r;++t){if(!0!==e(n[t],t))return!1}return!0}function N(n){var e=fe.call(n,0);return e.reverse(),e}function j(n,e){return D(n,function(n){return!k(e,n)})}function _(n){return[n]}function P(n,e){var t=String(e).toLowerCase();return R(n,function(n){return n.search(t)})}function H(n,e){return-1!==n.indexOf(e)}function z(e){return function(n){return H(n,e)}}function L(){return be.get()}function G(n,e){Ye(n,n.element(),e,{})}function U(n,e,t){Ye(n,n.element(),e,t)}function $(n){G(n,Pe())}function W(n,e,t){Ye(n,e,t,{})}function X(t){var r,o=!1;return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return o||(o=!0,r=t.apply(null,n)),r}}function q(n){return n.dom().nodeName.toLowerCase()}function Y(e){return function(n){return function(n){return n.dom().nodeType}(n)===e}}function K(n){var e=tt(n)?n.dom().parentNode:n.dom();return e!==undefined&&null!==e&&e.ownerDocument.body.contains(e)}function J(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];if(e.length!==t.length)throw new Error('Wrong number of arguments to struct. Expected "['+e.length+']", got '+t.length+" arguments");var r={};return C(e,function(n,e){r[n]=v(t[e])}),r}}function Q(n){return n.slice(0).sort()}function Z(e,n){if(!ie(n))throw new Error("The "+e+" fields must be an array. Was: "+n+".");C(n,function(n){if(!re(n))throw new Error("The value "+n+" in the "+e+" fields was not a string.")})}function nn(o,i){var u=o.concat(i);if(0===u.length)throw new Error("You must specify at least one required or optional field.");return Z("required",o),Z("optional",i),function(n){var t=Q(n);R(t,function(n,e){return e<t.length-1&&n===t[e+1]}).each(function(n){throw new Error("The field: "+n+" occurs more than once in the combined fields: ["+t.join(", ")+"].")})}(u),function(e){var t=Bn(e);V(o,function(n){return k(t,n)})||function(n,e){throw new Error("All required keys ("+Q(n).join(", ")+") were not specified. Specified keys were: "+Q(e).join(", ")+".")}(o,t);var n=D(t,function(n){return!k(u,n)});0<n.length&&function(n){throw new Error("Unsupported keys for object: "+Q(n).join(", "))}(n);var r={};return C(o,function(n){r[n]=v(e[n])}),C(i,function(n){r[n]=v(Object.prototype.hasOwnProperty.call(e,n)?Fn.some(e[n]):Fn.none())}),r}}function en(n,e,t){return 0!=(n.compareDocumentPosition(e)&t)}function tn(n,e){var t=n.dom();if(t.nodeType!==ut)return!1;var r=t;if(r.matches!==undefined)return r.matches(e);if(r.msMatchesSelector!==undefined)return r.msMatchesSelector(e);if(r.webkitMatchesSelector!==undefined)return r.webkitMatchesSelector(e);if(r.mozMatchesSelector!==undefined)return r.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}function rn(n){return n.nodeType!==ut&&n.nodeType!==ct||0===n.childElementCount}function on(n,e){var t=e===undefined?d.document:e.dom();return rn(t)?[]:de(t.querySelectorAll(n),Je.fromDom)}function un(n,e){var t=e===undefined?d.document:e.dom();return rn(t)?Fn.none():Fn.from(t.querySelector(n)).map(Je.fromDom)}function cn(n,e){return n.dom()===e.dom()}function an(n){return Je.fromDom(n.dom().ownerDocument)}function fn(n){return Fn.from(n.dom().parentNode).map(Je.fromDom)}function sn(n,e){var t=n.dom().childNodes;return Fn.from(t[e]).map(Je.fromDom)}function ln(e,t){fn(e).each(function(n){n.dom().insertBefore(t.dom(),e.dom())})}function dn(n,e){(function(n){return Fn.from(n.dom().nextSibling).map(Je.fromDom)})(n).fold(function(){fn(n).each(function(n){ft(n,e)})},function(n){ln(n,e)})}function mn(e,t){(function(n){return sn(n,0)})(e).fold(function(){ft(e,t)},function(n){e.dom().insertBefore(t.dom(),n.dom())})}function gn(e,n){C(n,function(n){ft(e,n)})}function pn(n){n.dom().textContent="",C(at(n),function(n){st(n)})}function hn(n,e){ft(n.element(),e.element())}function vn(e,n){var t=e.components();!function(n){C(n.components(),function(n){return st(n.element())}),pn(n.element()),n.syncComponents()}(e);var r=j(t,n);C(r,function(n){lt(n),e.getSystem().removeFromWorld(n)}),C(n,function(n){n.getSystem().isConnected()?hn(e,n):(e.getSystem().addToWorld(n),hn(e,n),K(e.element())&&dt(n)),e.syncComponents()})}function yn(e){var n=fn(e.element()).bind(function(n){return e.getSystem().getByDom(n).toOption()});!function(n){lt(n),st(n.element()),n.getSystem().removeFromWorld(n)}(e),n.each(function(n){n.syncComponents()})}function bn(u){return function(){for(var n=new Array(arguments.length),e=0;e<n.length;e++)n[e]=arguments[e];if(0===n.length)throw new Error("Can't merge zero objects");for(var t={},r=0;r<n.length;r++){var o=n[r];for(var i in o)bt.call(o,i)&&(t[i]=u(t[i],o[i]))}return t}}function xn(n){return St.defaultedThunk(v(n))}function wn(e){return function(n){return p(n,e)?Fn.from(n[e]):Fn.none()}}function Sn(n,e){return wn(e)(n)}function Tn(n,e){var t={};return t[n]=e,t}function On(n,e){return function(n,t){var r={};return Nn(n,function(n,e){k(t,e)||(r[e]=n)}),r}(n,e)}function kn(n,e){return function(e,t){return function(n){return p(n,e)?n[e]:t}}(n,e)}function En(n,e){return Tn(n,e)}function Cn(n){return function(n){var e={};return C(n,function(n){e[n.key]=n.value}),e}(n)}function Dn(n,e){var t=function(n){var e=[],t=[];return C(n,function(n){n.fold(function(n){e.push(n)},function(n){t.push(n)})}),{errors:e,values:t}}(n);return 0<t.errors.length?function(n){return vt.error(F(n))}(t.errors):function(n,e){return 0===n.length?vt.value(e):vt.value(xt(e,wt.apply(undefined,n)))}(t.values,e)}function Mn(n,e){return function(n,e){return p(n,e)&&n[e]!==undefined&&null!==n[e]}(n,e)}var In,Rn,An=function(t){function n(){return o}function e(n){return n(t)}var r=v(t),o={fold:function(n,e){return e(t)},is:function(n){return t===n},isSome:a,isNone:c,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){return An(n(t))},each:function(n){n(t)},bind:e,exists:e,forall:e,filter:function(n){return n(t)?o:f},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(n){return n.is(t)},equals_:function(n,e){return n.fold(c,function(n){return e(t,n)})}};return o},Fn={some:An,none:n,from:function(n){return null===n||n===undefined?f:An(n)}},Bn=Object.keys,Vn=Object.hasOwnProperty,Nn=function(n,e){for(var t=Bn(n),r=0,o=t.length;r<o;r++){var i=t[r];e(n[i],i)}},jn=function(n,r){var o={};return Nn(n,function(n,e){var t=r(n,e);o[t.k]=t.v}),o},_n=function(n,t){var r=[];return Nn(n,function(n,e){r.push(t(n,e))}),r},Pn=function(n){function e(){return t}var t=n;return{get:e,set:function(n){t=n},clone:function(){return Pn(e())}}},Hn=function(){return zn(0,0)},zn=function(n,e){return{major:n,minor:e}},Ln={nu:zn,detect:function(n,e){var t=String(e).toLowerCase();return 0===n.length?Hn():h(n,t)},unknown:Hn},Gn="Edge",Un="Chrome",$n="Opera",Wn="Firefox",Xn="Safari",qn=function(n){var e=n.current;return{current:e,version:n.version,isEdge:b(Gn,e),isChrome:b(Un,e),isIE:b("IE",e),isOpera:b($n,e),isFirefox:b(Wn,e),isSafari:b(Xn,e)}},Yn={unknown:function(){return qn({current:undefined,version:Ln.unknown()})},nu:qn,edge:v(Gn),chrome:v(Un),ie:v("IE"),opera:v($n),firefox:v(Wn),safari:v(Xn)},Kn="Windows",Jn="Android",Qn="Linux",Zn="Solaris",ne="FreeBSD",ee=function(n){var e=n.current;return{current:e,version:n.version,isWindows:T(Kn,e),isiOS:T("iOS",e),isAndroid:T(Jn,e),isOSX:T("OSX",e),isLinux:T(Qn,e),isSolaris:T(Zn,e),isFreeBSD:T(ne,e)}},te={unknown:function(){return ee({current:undefined,version:Ln.unknown()})},nu:ee,windows:v(Kn),ios:v("iOS"),android:v(Jn),linux:v(Qn),osx:v("OSX"),solaris:v(Zn),freebsd:v(ne)},re=O("string"),oe=O("object"),ie=O("array"),ue=O("boolean"),ce=O("function"),ae=O("number"),fe=Array.prototype.slice,se=Array.prototype.indexOf,le=Array.prototype.push,de=function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var i=n[o];r[o]=e(i,o)}return r},me=(ce(Array.from)&&Array.from,function(n,t){return P(n,t).map(function(n){var e=Ln.detect(n.versionRegexes,t);return{current:n.name,version:e}})}),ge=function(n,t){return P(n,t).map(function(n){var e=Ln.detect(n.versionRegexes,t);return{current:n.name,version:e}})},pe=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,he=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(n){return H(n,"edge/")&&H(n,"chrome")&&H(n,"safari")&&H(n,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,pe],search:function(n){return H(n,"chrome")&&!H(n,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(n){return H(n,"msie")||H(n,"trident")}},{name:"Opera",versionRegexes:[pe,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:z("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:z("firefox")},{name:"Safari",versionRegexes:[pe,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(n){return(H(n,"safari")||H(n,"mobile/"))&&H(n,"applewebkit")}}],ve=[{name:"Windows",search:z("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(n){return H(n,"iphone")||H(n,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:z("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:z("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:z("linux"),versionRegexes:[]},{name:"Solaris",search:z("sunos"),versionRegexes:[]},{name:"FreeBSD",search:z("freebsd"),versionRegexes:[]}],ye={browsers:v(he),oses:v(ve)},be=Pn(function(n,e){var t=ye.browsers(),r=ye.oses(),o=me(t,n).fold(Yn.unknown,Yn.nu),i=ge(r,n).fold(te.unknown,te.nu);return{browser:o,os:i,deviceType:function(n,e,t,r){var o=n.isiOS()&&!0===/ipad/i.test(t),i=n.isiOS()&&!o,u=n.isiOS()||n.isAndroid(),c=u||r("(pointer:coarse)"),a=o||!i&&u&&r("(min-device-width:768px)"),f=i||u&&!a,s=e.isSafari()&&n.isiOS()&&!1===/safari/i.test(t),l=!f&&!a&&!s;return{isiPad:v(o),isiPhone:v(i),isTablet:v(a),isPhone:v(f),isTouch:v(c),isAndroid:n.isAndroid,isiOS:n.isiOS,isWebView:v(s),isDesktop:v(l)}}(i,o,n,e)}}(d.navigator.userAgent,function(n){return d.window.matchMedia(n).matches})),xe=v("touchstart"),we=v("touchmove"),Se=v("touchend"),Te=v("mousedown"),Oe=v("mousemove"),ke=v("mouseup"),Ee=v("mouseover"),Ce=v("keydown"),De=v("keyup"),Me=v("input"),Ie=v("change"),Re=v("click"),Ae=v("transitionend"),Fe=v("selectstart"),Be={tap:v("alloy.tap")},Ve=v("alloy.focus"),Ne=v("alloy.blur.post"),je=v("alloy.paste.post"),_e=v("alloy.receive"),Pe=v("alloy.execute"),He=v("alloy.focus.item"),ze=Be.tap,Le=v("alloy.longpress"),Ge=v("alloy.system.init"),Ue=v("alloy.system.attached"),$e=v("alloy.system.detached"),We=v("alloy.focusmanager.shifted"),Xe=v("alloy.highlight"),qe=v("alloy.dehighlight"),Ye=function(n,e,t,r){var o=x({target:e},r);n.getSystem().triggerEvent(t,e,S(o,v))},Ke=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:v(n)}},Je={fromHtml:function(n,e){var t=(e||d.document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||1<t.childNodes.length)throw d.console.error("HTML does not have a single root node",n),new Error("HTML must have a single root node");return Ke(t.childNodes[0])},fromTag:function(n,e){var t=(e||d.document).createElement(n);return Ke(t)},fromText:function(n,e){var t=(e||d.document).createTextNode(n);return Ke(t)},fromDom:Ke,fromPoint:function(n,e,t){var r=n.dom();return Fn.from(r.elementFromPoint(e,t)).map(Ke)}},Qe=(d.Node.ATTRIBUTE_NODE,d.Node.CDATA_SECTION_NODE,d.Node.COMMENT_NODE,d.Node.DOCUMENT_NODE),Ze=(d.Node.DOCUMENT_TYPE_NODE,d.Node.DOCUMENT_FRAGMENT_NODE,d.Node.ELEMENT_NODE),nt=d.Node.TEXT_NODE,et=(d.Node.PROCESSING_INSTRUCTION_NODE,d.Node.ENTITY_REFERENCE_NODE,d.Node.ENTITY_NODE,d.Node.NOTATION_NODE,"undefined"!=typeof d.window?d.window:Function("return this;")(),Y(Ze)),tt=Y(nt),rt=X(function(){return ot(Je.fromDom(d.document))}),ot=function(n){var e=n.dom().body;if(null===e||e===undefined)throw new Error("Body is not available yet");return Je.fromDom(e)},it=function(n,e){return en(n,e,d.Node.DOCUMENT_POSITION_CONTAINED_BY)},ut=Ze,ct=Qe,at=(L().browser.isIE(),function(n){return de(n.dom().childNodes,Je.fromDom)}),ft=(J("element","offset"),function(n,e){n.dom().appendChild(e.dom())}),st=function(n){var e=n.dom();null!==e.parentNode&&e.parentNode.removeChild(e)},lt=function(n){G(n,$e());var e=n.components();C(e,lt)},dt=function(n){var e=n.components();C(e,dt),G(n,Ue())},mt=function(n,e,t){n.getSystem().addToWorld(e),t(n.element(),e.element()),K(n.element())&&dt(e),n.syncComponents()},gt=function(n,e,t){t(n,e.element());var r=at(e.element());C(r,function(n){e.getByDom(n).each(dt)})},pt=function(t){return{is:function(n){return t===n},isValue:a,isError:c,getOr:v(t),getOrThunk:v(t),getOrDie:v(t),or:function(n){return pt(t)},orThunk:function(n){return pt(t)},fold:function(n,e){return e(t)},map:function(n){return pt(n(t))},mapError:function(n){return pt(t)},each:function(n){n(t)},bind:function(n){return n(t)},exists:function(n){return n(t)},forall:function(n){return n(t)},toOption:function(){return Fn.some(t)}}},ht=function(t){return{is:c,isValue:c,isError:a,getOr:y,getOrThunk:function(n){return n()},getOrDie:function(){return o(String(t))()},or:function(n){return n},orThunk:function(n){return n()},fold:function(n,e){return n(t)},map:function(n){return ht(t)},mapError:function(n){return ht(n(t))},each:w,bind:function(n){return ht(t)},exists:c,forall:a,toOption:Fn.none}},vt={value:pt,error:ht,fromOption:function(n,e){return n.fold(function(){return ht(e)},pt)}},yt=function(u){if(!ie(u))throw new Error("cases must be an array");if(0===u.length)throw new Error("there must be at least one case");var c=[],t={};return C(u,function(n,r){var e=Bn(n);if(1!==e.length)throw new Error("one and only one name per case");var o=e[0],i=n[o];if(t[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!ie(i))throw new Error("case arguments must be an array");c.push(o),t[o]=function(){var n=arguments.length;if(n!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+n);for(var t=new Array(n),e=0;e<t.length;e++)t[e]=arguments[e];return{fold:function(){if(arguments.length!==u.length)throw new Error("Wrong number of arguments to fold. Expected "+u.length+", got "+arguments.length);return arguments[r].apply(null,t)},match:function(n){var e=Bn(n);if(c.length!==e.length)throw new Error("Wrong number of arguments to match. Expected: "+c.join(",")+"\nActual: "+e.join(","));if(!V(c,function(n){return k(e,n)}))throw new Error("Not all branches were specified when using match. Specified: "+e.join(", ")+"\nRequired: "+c.join(", "));return n[o].apply(null,t)},log:function(n){d.console.log(n,{constructors:c,constructor:o,params:t})}}}}),t},bt=Object.prototype.hasOwnProperty,xt=bn(function(n,e){return oe(n)&&oe(e)?xt(n,e):e}),wt=bn(function(n,e){return e}),St=yt([{strict:[]},{defaultedThunk:["fallbackThunk"]},{asOption:[]},{asDefaultedOptionThunk:["fallbackThunk"]},{mergeWithThunk:["baseThunk"]}]),Tt=St.strict,Ot=St.asOption,kt=St.defaultedThunk,Et=St.mergeWithThunk,Ct=(yt([{bothErrors:["error1","error2"]},{firstError:["error1","value2"]},{secondError:["value1","error2"]},{bothValues:["value1","value2"]}]),function(n){return wn(n)}),Dt=function(n,e){return Sn(n,e)};(Rn=In=In||{})[Rn.Error=0]="Error",Rn[Rn.Value=1]="Value";function Mt(n,e,t){return n.stype===In.Error?e(n.serror):t(n.svalue)}function It(n){return{stype:In.Value,svalue:n}}function Rt(n){return{stype:In.Error,serror:n}}function At(n){return i(gr,F)(n)}function Ft(n){return oe(n)&&100<Bn(n).length?" removed due to size":JSON.stringify(n,null,2)}function Bt(n,e){return gr([{path:n,getErrorInfo:e}])}function Vt(n,e,t){return Sn(e,t).fold(function(){return function(n,e,t){return Bt(n,function(){return'Could not find valid *strict* value for "'+e+'" in '+Ft(t)})}(n,t,e)},dr)}function Nt(n,e,t){var r=Sn(n,e).fold(function(){return t(n)},y);return dr(r)}function jt(u,c,n,a){return n.fold(function(r,t,n,o){function i(n){var e=o.extract(u.concat([r]),a,n);return vr(e,function(n){return Tn(t,a(n))})}function e(n){return n.fold(function(){var n=Tn(t,a(Fn.none()));return dr(n)},function(n){var e=o.extract(u.concat([r]),a,n);return vr(e,function(n){return Tn(t,a(Fn.some(n)))})})}return n.fold(function(){return pr(Vt(u,c,r),i)},function(n){return pr(Nt(c,r,n),i)},function(){return pr(function(n,e){return dr(Sn(n,e))}(c,r),e)},function(n){return pr(function(e,n,t){var r=Sn(e,n).map(function(n){return!0===n?t(e):n});return dr(r)}(c,r,n),e)},function(n){var e=n(c),t=vr(Nt(c,r,v({})),function(n){return xt(e,n)});return pr(t,i)})},function(n,e){var t=e(c);return dr(Tn(n,a(t)))})}function _t(r){return{extract:function(e,n,t){return hr(r(t,n),function(n){return function(n,e){return Bt(n,function(){return e})}(e,n)})},toString:function(){return"val"},toDsl:function(){return wr.itemOf(r)}}}function Pt(n){var i=Or(n),u=M(n,function(e,n){return n.fold(function(n){return xt(e,En(n,!0))},v(e))},{});return{extract:function(n,e,t){var r=ue(t)?[]:function(e){var n=Bn(e);return D(n,function(n){return Mn(e,n)})}(t),o=D(r,function(n){return!Mn(u,n)});return 0===o.length?i.extract(n,e,t):function(n,e){return Bt(n,function(){return"There are unsupported fields: ["+e.join(", ")+"] specified"})}(n,o)},toString:i.toString,toDsl:i.toDsl}}function Ht(t,i){function u(n,e){return function(o){return{extract:function(t,r,n){var e=de(n,function(n,e){return o.extract(t.concat(["["+e+"]"]),r,n)});return xr(e)},toString:function(){return"array("+o.toString()+")"},toDsl:function(){return wr.arrOf(o)}}}(_t(t)).extract(n,y,e)}return{extract:function(t,r,o){var n=Bn(o),e=u(t,n);return pr(e,function(n){var e=de(n,function(n){return Tr.field(n,n,Tt(),i)});return Or(e).extract(t,r,o)})},toString:function(){return"setOf("+i.toString()+")"},toDsl:function(){return wr.setOf(t,i)}}}function zt(e,t,r,n,o){return Dt(n,o).fold(function(){return function(n,e,t){return Bt(n,function(){return'The chosen schema: "'+t+'" did not exist in branches: '+Ft(e)})}(e,n,o)},function(n){return n.extract(e.concat(["branch: "+o]),t,r)})}function Lt(n,o){return{extract:function(e,t,r){return Dt(r,n).fold(function(){return function(n,e){return Bt(n,function(){return'Choice schema did not contain choice key: "'+e+'"'})}(e,n)},function(n){return zt(e,t,r,o,n)})},toString:function(){return"chooseOn("+n+"). Possible values: "+Bn(o)},toDsl:function(){return wr.choiceOf(n,o)}}}function Gt(e){return _t(function(n){return e(n).fold(gr,dr)})}function Ut(e,n){return Ht(function(n){return sr(e(n))},n)}function $t(n,e,t){return lr(function(n,e,t,r){var o=e.extract([n],t,r);return yr(o,function(n){return{input:r,errors:n}})}(n,e,y,t))}function Wt(n){return n.fold(function(n){throw new Error(Mr(n))},y)}function Xt(n,e,t){return Wt($t(n,e,t))}function qt(n,e){return Lt(n,S(e,Or))}function Yt(n){return Cr(n,n,Tt(),kr())}function Kt(n,e){return Cr(n,n,Tt(),e)}function Jt(n,e){return Cr(n,n,Tt(),Or(e))}function Qt(n){return Cr(n,n,Ot(),kr())}function Zt(n,e){return Cr(n,n,Ot(),e)}function nr(n,e){return Zt(n,Or(e))}function er(n,e){return Zt(n,Pt(e))}function tr(n,e){return Cr(n,n,xn(e),kr())}function rr(n,e,t){return Cr(n,n,xn(e),t)}function or(n,e){return Er(n,e)}function ir(n,e){return cn(n.element(),e.event().target())}function ur(n){if(!Mn(n,"can")&&!Mn(n,"abort")&&!Mn(n,"run"))throw new Error("EventHandler defined by: "+JSON.stringify(n,null,2)+" does not have can, abort, or run!");return Xt("Extracting event.handler",Pt([tr("can",v(!0)),tr("abort",v(!1)),tr("run",w)]),n)}function cr(t){var n=function(e,r){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return I(e,function(n,e){return n&&r(e).apply(undefined,t)},!0)}}(t,function(n){return n.can}),e=function(e,r){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return I(e,function(n,e){return n||r(e).apply(undefined,t)},!1)}}(t,function(n){return n.abort});return ur({can:n,abort:e,run:function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];C(t,function(n){n.run.apply(undefined,e)})}})}var ar,fr,sr=function(n){return n.fold(Rt,It)},lr=function(n){return Mt(n,vt.error,vt.value)},dr=It,mr=function(n){var e=[],t=[];return C(n,function(n){Mt(n,function(n){return t.push(n)},function(n){return e.push(n)})}),{values:e,errors:t}},gr=Rt,pr=function(n,e){return n.stype===In.Value?e(n.svalue):n},hr=function(n,e){return n.stype===In.Error?e(n.serror):n},vr=function(n,e){return n.stype===In.Value?{stype:In.Value,svalue:e(n.svalue)}:n},yr=function(n,e){return n.stype===In.Error?{stype:In.Error,serror:e(n.serror)}:n},br=function(n,e){var t=mr(n);return 0<t.errors.length?At(t.errors):function(n,e){return 0<n.length?dr(xt(e,wt.apply(undefined,n))):dr(e)}(t.values,e)},xr=function(n){var e=mr(n);return 0<e.errors.length?At(e.errors):dr(e.values)},wr=yt([{setOf:["validator","valueType"]},{arrOf:["valueType"]},{objOf:["fields"]},{itemOf:["validator"]},{choiceOf:["key","branches"]},{thunk:["description"]},{func:["args","outputSchema"]}]),Sr=yt([{field:["name","presence","type"]},{state:["name"]}]),Tr=yt([{field:["key","okey","presence","prop"]},{state:["okey","instantiator"]}]),Or=function(r){return{extract:function(n,e,t){return function(e,t,n,r){var o=de(n,function(n){return jt(e,t,n,r)});return br(o,{})}(n,t,r,e)},toString:function(){return"obj{\n"+de(r,function(n){return n.fold(function(n,e,t,r){return n+" -> "+r.toString()},function(n,e){return"state("+n+")"})}).join("\n")+"}"},toDsl:function(){return wr.objOf(de(r,function(n){return n.fold(function(n,e,t,r){return Sr.field(n,t,r)},function(n,e){return Sr.state(n)})}))}}},kr=v(_t(dr)),Er=Tr.state,Cr=Tr.field,Dr=_t(dr),Mr=function(n){return"Errors: \n"+function(n){var e=10<n.length?n.slice(0,10).concat([{path:[],getErrorInfo:function(){return"... (only showing first ten failures)"}}]):n;return de(e,function(n){return"Failed path: ("+n.path.join(" > ")+")\n"+n.getErrorInfo()})}(n.errors)+"\n\nInput object: "+Ft(n.input)},Ir=v(Dr),Rr=(ar=ce,fr="function",_t(function(n){var e=typeof n;return ar(n)?dr(n):gr("Expected type: "+fr+" but got: "+e)}));function Ar(n,e,t,r,o){return n(t,r)?Fn.some(t):ce(o)&&o(t)?Fn.none():e(t,r,o)}function Fr(n,e,t){for(var r=n.dom(),o=ce(t)?t:v(!1);r.parentNode;){r=r.parentNode;var i=Je.fromDom(r);if(e(i))return Fn.some(i);if(o(i))break}return Fn.none()}function Br(n,e,t){return Ar(function(n,e){return e(n)},Fr,n,e,t)}function Vr(n,o){var i=function(n){for(var e=0;e<n.childNodes.length;e++){var t=Je.fromDom(n.childNodes[e]);if(o(t))return Fn.some(t);var r=i(n.childNodes[e]);if(r.isSome())return r}return Fn.none()};return i(n.dom())}function Nr(n){return Cn(n)}function jr(n,e){return{key:n,value:ur({abort:e})}}function _r(n,e){return{key:n,value:ur({run:e})}}function Pr(n,e,t){return{key:n,value:ur({run:function(n){e.apply(undefined,[n].concat(t))}})}}function Hr(n){return function(t){return{key:n,value:ur({run:function(n,e){ir(n,e)&&t(n,e)}})}}}function zr(n,e,t){return function(t,r){return _r(t,function(n,e){n.getSystem().getByUid(r).each(function(n){!function(n,e,t,r){n.getSystem().triggerEvent(t,e,r.event())}(n,n.element(),t,e)})})}(n,e.partUids[t])}function Lr(n){return _r(n,function(n,e){e.cut()})}function Gr(n,e){var t=n.toString(),r=t.indexOf(")")+1,o=t.indexOf("("),i=t.substring(o+1,r-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:e,parameters:Io(i)}},n}function Ur(n){return{classes:n.classes!==undefined?n.classes:[],attributes:n.attributes!==undefined?n.attributes:{},styles:n.styles!==undefined?n.styles:{}}}function $r(t,r,o){return Do(function(n,e){o(n,t,r)})}function Wr(o,i,u){return function(n,e,t){var r=t.toString(),o=r.indexOf(")")+1,i=r.indexOf("("),u=r.substring(i+1,o-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:e,parameters:Io(u.slice(0,1).concat(u.slice(3)))}},n}(function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=[t].concat(n);return t.config({name:v(o)}).fold(function(){throw new Error("We could not find any behaviour configuration for: "+o+". Using API: "+u)},function(n){var e=Array.prototype.slice.call(r,1);return i.apply(undefined,[t,n.config,n.state].concat(e))})},u,i)}function Xr(n){return{key:n,value:undefined}}function qr(n){var e=Xt("Creating behaviour: "+n.name,Vo,n);return function(n,e,t,r,o,i){var u=Pt(n),c=nr(e,[er("config",n)]);return Ro(u,c,e,t,r,o,i)}(e.fields,e.name,e.active,e.apis,e.extra,e.state)}function Yr(n,e,t){if(!(re(t)||ue(t)||ae(t)))throw d.console.error("Invalid call to Attr.set. Key ",e,":: Value ",t,":: Element ",n),new Error("Attribute value was not simple");n.setAttribute(e,t+"")}function Kr(n,e,t){Yr(n.dom(),e,t)}function Jr(n,e){var t=n.dom();Nn(e,function(n,e){Yr(t,e,n)})}function Qr(n,e){var t=n.dom().getAttribute(e);return null===t?undefined:t}function Zr(n,e){var t=n.dom();return!(!t||!t.hasAttribute)&&t.hasAttribute(e)}function no(n,e){n.dom().removeAttribute(e)}function eo(n,e){var t=Qr(n,e);return t===undefined||""===t?[]:t.split(" ")}function to(n){return n.dom().classList!==undefined}function ro(n,e){return function(n,e,t){var r=eo(n,e).concat([t]);return Kr(n,e,r.join(" ")),!0}(n,"class",e)}function oo(n,e){return function(n,e,t){var r=D(eo(n,e),function(n){return n!==t});return 0<r.length?Kr(n,e,r.join(" ")):no(n,e),!1}(n,"class",e)}function io(n,e){to(n)?n.dom().classList.add(e):ro(n,e)}function uo(n){0===(to(n)?n.dom().classList:function(n){return eo(n,"class")}(n)).length&&no(n,"class")}function co(n,e){to(n)?n.dom().classList.remove(e):oo(n,e),uo(n)}function ao(n,e){return to(n)&&n.dom().classList.contains(e)}function fo(n,e,t){co(n,t),io(n,e)}function so(n){n.dom().focus()}function lo(n){n.dom().blur()}function mo(n){var e=n!==undefined?n.dom():d.document;return Fn.from(e.activeElement).map(Je.fromDom)}function go(e){return mo(an(e)).filter(function(n){return e.dom().contains(n.dom())})}function po(n){return n.dom().innerHTML}function ho(n,e){var t=an(n).dom(),r=Je.fromDom(t.createDocumentFragment()),o=function(n,e){var t=(e||d.document).createElement("div");return t.innerHTML=n,at(Je.fromDom(t))}(e,t);gn(r,o),pn(n),ft(n,r)}function vo(n){return function(n,e){return Je.fromDom(n.dom().cloneNode(e))}(n,!1)}function yo(n){return function(n){var e=Je.fromTag("div"),t=Je.fromDom(n.dom().cloneNode(!0));return ft(e,t),po(e)}(vo(n))}function bo(n){return yo(n)}function xo(n){for(var e=[],t=function(n){e.push(n)},r=0;r<n.length;r++)n[r].each(t);return e}function wo(n,e){for(var t=0;t<n.length;t++){var r=e(n[t],t);if(r.isSome())return r}return Fn.none()}var So,To,Oo,ko=function(n,e,t){return Br(n,function(n){return e(n).isSome()},t).bind(e)},Eo=Hr(Ue()),Co=Hr($e()),Do=Hr(Ge()),Mo=(So=Pe(),function(n){return _r(So,n)}),Io=function(n){return de(n,function(n){return function(n,e){return function(n,e,t){return""===e||!(n.length<e.length)&&n.substr(t,t+e.length)===e}(n,e,n.length-e.length)}(n,"/*")?n.substring(0,n.length-"/*".length):n})},Ro=function(t,n,r,o,e,i,u){function c(n){return Mn(n,r)?n[r]():Fn.none()}var a=S(e,function(n,e){return Wr(r,n,e)}),f=S(i,function(n,e){return Gr(n,e)}),s=x(x(x({},f),a),{revoke:l(Xr,r),config:function(n){var e=Xt(r+"-config",t,n);return{key:r,value:{config:e,me:s,configAsRaw:X(function(){return Xt(r+"-config",t,n)}),initialConfig:n,state:u}}},schema:function(){return n},exhibit:function(n,t){return c(n).bind(function(e){return Dt(o,"exhibit").map(function(n){return n(t,e.config,e.state)})}).getOr(Ur({}))},name:function(){return r},handlers:function(n){return c(n).map(function(n){return kn("events",function(n,e){return{}})(o)(n.config,n.state)}).getOr({})}});return s},Ao={init:function(){return Fo({readState:function(){return"No State required"}})}},Fo=function(n){return n},Bo=function(n){return Cn(n)},Vo=Pt([Yt("fields"),Yt("name"),tr("active",{}),tr("apis",{}),tr("state",Ao),tr("extra",{})]),No=Pt([Yt("branchKey"),Yt("branches"),Yt("name"),tr("active",{}),tr("apis",{}),tr("state",Ao),tr("extra",{})]),jo=v(undefined),_o=/* */Object.freeze({toAlpha:function(n,e,t){fo(n.element(),e.alpha,e.omega)},toOmega:function(n,e,t){fo(n.element(),e.omega,e.alpha)},isAlpha:function(n,e,t){return ao(n.element(),e.alpha)},isOmega:function(n,e,t){return ao(n.element(),e.omega)},clear:function(n,e,t){co(n.element(),e.alpha),co(n.element(),e.omega)}}),Po=[Yt("alpha"),Yt("omega")],Ho=qr({fields:Po,name:"swapping",apis:_o}),zo=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),Lo=tinymce.util.Tools.resolve("tinymce.ThemeManager"),Go=function(n){var e=d.document.createElement("a");e.target="_blank",e.href=n.href,e.rel="noreferrer noopener";var t=d.document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,d.window,0,0,0,0,0,!1,!1,!1,!1,0,null),d.document.body.appendChild(e),e.dispatchEvent(t),d.document.body.removeChild(e)},Uo={formatChanged:v("formatChanged"),orientationChanged:v("orientationChanged"),dropupDismissed:v("dropupDismissed")},$o=/* */Object.freeze({events:function(e){return Nr([_r(_e(),function(o,i){var u=e.channels,n=function(n,e){return e.universal()?n:D(n,function(n){return k(e.channels(),n)})}(Bn(u),i);C(n,function(n){var e=u[n],t=e.schema,r=Xt("channel["+n+"] data\nReceiver: "+bo(o.element()),t,i.data());e.onReceive(o,r)})})])}}),Wo="unknown";(Oo=To=To||{})[Oo.STOP=0]="STOP",Oo[Oo.NORMAL=1]="NORMAL",Oo[Oo.LOGGING=2]="LOGGING";function Xo(e,n,t){switch(Dt(yi.get(),e).orThunk(function(){var n=Bn(yi.get());return wo(n,function(n){return-1<e.indexOf(n)?Fn.some(yi.get()[n]):Fn.none()})}).getOr(To.NORMAL)){case To.NORMAL:return t(xi());case To.LOGGING:var r=function(e,t){var r=[],o=(new Date).getTime();return{logEventCut:function(n,e,t){r.push({outcome:"cut",target:e,purpose:t})},logEventStopped:function(n,e,t){r.push({outcome:"stopped",target:e,purpose:t})},logNoParent:function(n,e,t){r.push({outcome:"no-parent",target:e,purpose:t})},logEventNoHandlers:function(n,e){r.push({outcome:"no-handlers-left",target:e})},logEventResponse:function(n,e,t){r.push({outcome:"response",purpose:t,target:e})},write:function(){var n=(new Date).getTime();k(["mousemove","mouseover","mouseout",Ge()],e)||d.console.log(e,{event:e,time:n-o,target:t.dom(),sequence:de(r,function(n){return k(["cut","stopped","response"],n.outcome)?"{"+n.purpose+"} "+n.outcome+" at ("+bo(n.target)+")":n.outcome})})}}}(e,n),o=t(r);return r.write(),o;case To.STOP:return!0}}function qo(n,e,t){return Xo(n,e,t)}function Yo(n,e,t){return function(){var n=new Error;if(n.stack===undefined)return;var e=n.stack.split("\n");R(e,function(e){return 0<e.indexOf("alloy")&&!E(bi,function(n){return-1<e.indexOf(n)})}).getOr(Wo)}(),Cr(e,e,t,Gt(function(t){return vt.value(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return t.apply(undefined,n)})}))}function Ko(n){return Yo(0,n,xn(w))}function Jo(n){return Yo(0,n,xn(Fn.none))}function Qo(n){return Yo(0,n,Tt())}function Zo(n){return Yo(0,n,Tt())}function ni(n,e){return or(n,v(e))}function ei(n){return or(n,y)}function ti(n,e,t){var r=e.aria;r.update(n,r,t.get())}function ri(e,n,t){n.toggleClass.each(function(n){t.get()?io(e.element(),n):co(e.element(),n)})}function oi(n,e,t){Di(n,e,t,!t.get())}function ii(n,e,t){t.set(!0),ri(n,e,t),ti(n,e,t)}function ui(n,e,t){t.set(!1),ri(n,e,t),ti(n,e,t)}function ci(n,e,t){Di(n,e,t,e.selected)}function ai(){return[_r(L().deviceType.isTouch()?Be.tap():Re(),function(n,e){e.stop(),$(n)}),Lr(L().deviceType.isTouch()?xe():Te())]}function fi(n,e){e.ignore||(so(n.element()),e.onFocus(n))}function si(n){return n.style!==undefined&&ce(n.style.getPropertyValue)}function li(n,e,t){if(!re(t))throw d.console.error("Invalid call to CSS.set. Property ",e,":: Value ",t,":: Element ",n),new Error("CSS value must be a string: "+t);si(n)&&n.style.setProperty(e,t)}function di(n,e){var t=n.dom();Nn(e,function(n,e){li(t,e,n)})}function mi(n,e){var t=n.dom(),r=d.window.getComputedStyle(t).getPropertyValue(e),o=""!==r||K(n)?r:Ui(t,e);return null===o?undefined:o}function gi(n,e){var t=n.dom(),r=Ui(t,e);return Fn.from(r).filter(function(n){return 0<n.length})}function pi(n,e){!function(n,e){si(n)&&n.style.removeProperty(e)}(n.dom(),e),Zr(n,"style")&&""===function(n){return n.replace(/^\s+|\s+$/g,"")}(Qr(n,"style"))&&no(n,"style")}function hi(n){return n.dom().offsetWidth}var vi,yi=Pn({}),bi=["alloy/data/Fields","alloy/debugging/Debugging"],xi=v({logEventCut:w,logEventStopped:w,logNoParent:w,logEventNoHandlers:w,logEventResponse:w,write:w}),wi=v([Yt("menu"),Yt("selectedMenu")]),Si=v([Yt("item"),Yt("selectedItem")]),Ti=(v(Or(Si().concat(wi()))),v(Or(Si()))),Oi=Jt("initSize",[Yt("numColumns"),Yt("numRows")]),ki=v(Oi),Ei=[Kt("channels",Ut(vt.value,Pt([Qo("onReceive"),tr("schema",Ir())])))],Ci=qr({fields:Ei,name:"receiving",active:$o}),Di=function(n,e,t,r){(r?ii:ui)(n,e,t)},Mi=/* */Object.freeze({onLoad:ci,toggle:oi,isOn:function(n,e,t){return t.get()},on:ii,off:ui,set:Di}),Ii=/* */Object.freeze({exhibit:function(n,e,t){return Ur({})},events:function(n,e){var t=function(e,t,r){return Mo(function(n){r(n,e,t)})}(n,e,oi),r=$r(n,e,ci);return Nr(F([n.toggleOnExecute?[t]:[],[r]]))}}),Ri=function(n,e,t){Kr(n.element(),"aria-expanded",t)},Ai=[tr("selected",!1),Qt("toggleClass"),tr("toggleOnExecute",!0),rr("aria",{mode:"none"},qt("mode",{pressed:[tr("syncWithExpanded",!1),ni("update",function(n,e,t){Kr(n.element(),"aria-pressed",t),e.syncWithExpanded&&Ri(n,e,t)})],checked:[ni("update",function(n,e,t){Kr(n.element(),"aria-checked",t)})],expanded:[ni("update",Ri)],selected:[ni("update",function(n,e,t){Kr(n.element(),"aria-selected",t)})],none:[ni("update",w)]}))],Fi=qr({fields:Ai,name:"toggling",active:Ii,apis:Mi,state:(vi=!1,{init:function(){var e=Pn(vi);return{get:function(){return e.get()},set:function(n){return e.set(n)},clear:function(){return e.set(vi)},readState:function(){return e.get()}}}})}),Bi=function(t,r){return Ci.config({channels:En(Uo.formatChanged(),{onReceive:function(n,e){e.command===t&&r(n,e.state)}})})},Vi=function(n){return Ci.config({channels:En(Uo.orientationChanged(),{onReceive:n})})},Ni=function(n,e){return{key:n,value:{onReceive:e}}},ji="tinymce-mobile",_i={resolve:function(n){return ji+"-"+n},prefix:v(ji)},Pi=/* */Object.freeze({focus:fi,blur:function(n,e){e.ignore||lo(n.element())},isFocused:function(n){return function(n){var e=an(n).dom();return n.dom()===e.activeElement}(n.element())}}),Hi=/* */Object.freeze({exhibit:function(n,e){var t=e.ignore?{}:{attributes:{tabindex:"-1"}};return Ur(t)},events:function(t){return Nr([_r(Ve(),function(n,e){fi(n,t),e.stop()})].concat(t.stopMousedown?[_r(Te(),function(n,e){e.event().prevent()})]:[]))}}),zi=[Ko("onFocus"),tr("stopMousedown",!1),tr("ignore",!1)],Li=qr({fields:zi,name:"focusing",active:Hi,apis:Pi}),Gi=function(n,e,t){var r=n.dom();li(r,e,t)},Ui=function(n,e){return si(n)?n.style.getPropertyValue(e):""};function $i(r,o){function n(n){var e=o(n);if(e<=0||null===e){var t=mi(n,r);return parseFloat(t)||0}return e}function i(o,n){return I(n,function(n,e){var t=mi(o,e),r=t===undefined?0:parseInt(t,10);return isNaN(r)?n:n+r},0)}return{set:function(n,e){if(!ae(e)&&!e.match(/^[0-9]+$/))throw new Error(r+".set accepts only positive integer values. Value was "+e);var t=n.dom();si(t)&&(t.style[r]=e+"px")},get:n,getOuter:n,aggregate:i,max:function(n,e,t){var r=i(n,t);return r<e?e-r:0}}}function Wi(n){return yu.get(n)}function Xi(n,e,t){return D(function(n,e){for(var t=ce(e)?e:c,r=n.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,u=Je.fromDom(i);if(o.push(u),!0===t(u))break;r=i}return o}(n,t),e)}function qi(n,e){return D(function(e){return fn(e).map(at).map(function(n){return D(n,function(n){return!cn(e,n)})}).getOr([])}(n),e)}function Yi(n,e){return on(e,n)}function Ki(n){return un(n)}function Ji(n,e,t){return Fr(n,function(n){return tn(n,e)},t)}function Qi(n,e){return un(e,n)}function Zi(n,e,t){return Ar(tn,Ji,n,e,t)}function nu(n,e,t){var r=N(n.slice(0,e)),o=N(n.slice(e+1));return R(r.concat(o),t)}function eu(n,e,t){var r=N(n.slice(0,e));return R(r,t)}function tu(n,e,t){var r=n.slice(0,e),o=n.slice(e+1);return R(o.concat(r),t)}function ru(n,e,t){var r=n.slice(e+1);return R(r,t)}function ou(t){return function(n){var e=n.raw();return k(t,e.which)}}function iu(n){return function(e){return V(n,function(n){return n(e)})}}function uu(n){return!0===n.raw().shiftKey}function cu(n){return!0===n.raw().ctrlKey}function au(n,e){return{matches:n,classification:e}}function fu(n,e,t,r){var o=n+e;return r<o?t:o<t?r:o}function su(n,e,t){return n<=e?e:t<=n?t:n}function lu(t,r,n,o){var e=Yi(t.element(),"."+r.highlightClass);C(e,function(e){E(o,function(n){return n.element()===e})||(co(e,r.highlightClass),t.getSystem().getByDom(e).each(function(n){r.onDehighlight(t,n),G(n,qe())}))})}function du(n,e,t,r){lu(n,e,0,[r]),xu(n,e,t,r)||(io(r.element(),e.highlightClass),e.onHighlight(n,r),G(r,Xe()))}function mu(t,e,n,r){var o=Yi(t.element(),"."+e.itemClass);return A(o,function(n){return ao(n,e.highlightClass)}).bind(function(n){var e=fu(n,r,0,o.length-1);return t.getSystem().getByDom(o[e]).toOption()})}function gu(n,e,t){e.exists(function(e){return t.exists(function(n){return cn(n,e)})})||U(n,We(),{prevFocus:e,newFocus:t})}function pu(){function o(n){return go(n.element())}return{get:o,set:function(n,e){var t=o(n);n.getSystem().triggerFocus(e,n.element());var r=o(n);gu(n,t,r)}}}var hu,vu,yu=$i("height",function(n){var e=n.dom();return K(n)?e.getBoundingClientRect().height:e.offsetHeight}),bu=m(uu),xu=function(n,e,t,r){return ao(r.element(),e.highlightClass)},wu=function(n,e,t,r){var o=Yi(n.element(),"."+e.itemClass);return Fn.from(o[r]).fold(function(){return vt.error("No element found with index "+r)},n.getSystem().getByDom)},Su=function(e,n,t){return Qi(e.element(),"."+n.itemClass).bind(function(n){return e.getSystem().getByDom(n).toOption()})},Tu=function(e,n,t){var r=Yi(e.element(),"."+n.itemClass);return(0<r.length?Fn.some(r[r.length-1]):Fn.none()).bind(function(n){return e.getSystem().getByDom(n).toOption()})},Ou=function(e,n,t){var r=Yi(e.element(),"."+n.itemClass);return xo(de(r,function(n){return e.getSystem().getByDom(n).toOption()}))},ku=/* */Object.freeze({dehighlightAll:function(n,e,t){return lu(n,e,0,[])},dehighlight:function(n,e,t,r){xu(n,e,t,r)&&(co(r.element(),e.highlightClass),e.onDehighlight(n,r),G(r,qe()))},highlight:du,highlightFirst:function(e,t,r){Su(e,t).each(function(n){du(e,t,r,n)})},highlightLast:function(e,t,r){Tu(e,t).each(function(n){du(e,t,r,n)})},highlightAt:function(e,t,r,n){wu(e,t,r,n).fold(function(n){throw new Error(n)},function(n){du(e,t,r,n)})},highlightBy:function(e,t,r,n){var o=Ou(e,t);R(o,n).each(function(n){du(e,t,r,n)})},isHighlighted:xu,getHighlighted:function(e,n,t){return Qi(e.element(),"."+n.highlightClass).bind(function(n){return e.getSystem().getByDom(n).toOption()})},getFirst:Su,getLast:Tu,getPrevious:function(n,e,t){return mu(n,e,0,-1)},getNext:function(n,e,t){return mu(n,e,0,1)},getCandidates:Ou}),Eu=[Yt("highlightClass"),Yt("itemClass"),Ko("onHighlight"),Ko("onDehighlight")],Cu=qr({fields:Eu,name:"highlighting",apis:ku});(vu=hu=hu||{}).OnFocusMode="onFocus",vu.OnEnterOrSpaceMode="onEnterOrSpace",vu.OnApiMode="onApi";function Du(n,e,t,i,u){function c(e,t,n,r,o){return function(n,e){return R(n,function(n){return n.matches(e)}).map(function(n){return n.classification})}(n(e,t,r,o),t.event()).bind(function(n){return n(e,t,r,o)})}var r={schema:function(){return n.concat([tr("focusManager",pu()),rr("focusInside","onFocus",Gt(function(n){return k(["onFocus","onEnterOrSpace","onApi"],n)?vt.value(n):vt.error("Invalid value for focusInside")})),ni("handler",r),ni("state",e),ni("sendFocusIn",u)])},processKey:c,toEvents:function(r,o){var n=r.focusInside!==hu.OnFocusMode?Fn.none():u(r).map(function(t){return _r(Ve(),function(n,e){t(n,r,o),e.stop()})});return Nr(n.toArray().concat([_r(Ce(),function(n,e){c(n,e,t,r,o).fold(function(){!function(e,t){var n=ou([32].concat([13]))(t.event());r.focusInside===hu.OnEnterOrSpaceMode&&n&&ir(e,t)&&u(r).each(function(n){n(e,r,o),t.stop()})}(n,e)},function(n){e.stop()})}),_r(De(),function(n,e){c(n,e,i,r,o).each(function(n){e.stop()})})]))}};return r}function Mu(n){function i(n,e){var t=n.visibilitySelector.bind(function(n){return Zi(e,n)}).getOr(e);return 0<Wi(t)}function e(e,t){(function(n,e){var t=Yi(n.element(),e.selector),r=D(t,function(n){return i(e,n)});return Fn.from(r[e.firstTabstop])})(e,t).each(function(n){t.focusManager.set(e,n)})}function u(e,n,t,r,o){return o(n,t,function(n){return function(n,e){return i(n,e)&&n.useTabstopAt(e)}(r,n)}).fold(function(){return r.cyclic?Fn.some(!0):Fn.none()},function(n){return r.focusManager.set(e,n),Fn.some(!0)})}function c(e,n,t,r){var o=Yi(e.element(),t.selector);return function(n,e){return e.focusManager.get(n).bind(function(n){return Zi(n,e.selector)})}(e,t).bind(function(n){return A(o,l(cn,n)).bind(function(n){return u(e,o,n,t,r)})})}var t=[Qt("onEscape"),Qt("onEnter"),tr("selector",'[data-alloy-tabstop="true"]:not(:disabled)'),tr("firstTabstop",0),tr("useTabstopAt",v(!0)),Qt("visibilitySelector")].concat([n]),r=v([au(iu([uu,ou([9])]),function(n,e,t,r){var o=t.cyclic?nu:eu;return c(n,0,t,o)}),au(ou([9]),function(n,e,t,r){var o=t.cyclic?tu:ru;return c(n,0,t,o)}),au(ou([27]),function(e,t,n,r){return n.onEscape.bind(function(n){return n(e,t)})}),au(iu([bu,ou([13])]),function(e,t,n,r){return n.onEnter.bind(function(n){return n(e,t)})})]),o=v([]);return Du(t,Ao.init,r,o,function(){return Fn.some(e)})}function Iu(n){return"input"===q(n)&&"radio"!==Qr(n,"type")||"textarea"===q(n)}function Ru(n,e,t){return Iu(t)&&ou([32])(e.event())?Fn.none():function(n,e,t){return W(n,t,Pe()),Fn.some(!0)}(n,0,t)}function Au(n,e){return Fn.some(!0)}function Fu(n,e,t){return t.execute(n,e,n.element())}function Bu(n){var t=Pn(Fn.none());return Fo({readState:function(){return t.get().map(function(n){return{numRows:n.numRows(),numColumns:n.numColumns()}}).getOr({numRows:"?",numColumns:"?"})},setGridSize:function(n,e){t.set(Fn.some({numRows:v(n),numColumns:v(e)}))},getNumRows:function(){return t.get().map(function(n){return n.numRows()})},getNumColumns:function(){return t.get().map(function(n){return n.numColumns()})}})}function Vu(e,t){return function(n){return"rtl"===Yc(n)?t:e}}function Nu(i){return function(n,e,t,r){var o=i(n.element());return Kc(o,n,e,t,r)}}function ju(n,e){var t=Vu(n,e);return Nu(t)}function _u(n,e){var t=Vu(e,n);return Nu(t)}function Pu(o){return function(n,e,t,r){return Kc(o,n,e,t,r)}}function Hu(n){return!function(n){return n.offsetWidth<=0&&n.offsetHeight<=0}(n.dom())}function zu(n,e,t){var r=l(cn,e),o=Yi(n,t);return function(e,n){return A(e,n).map(function(n){return na({index:n,candidates:e})})}(D(o,Hu),r)}function Lu(n,e){return A(n,function(n){return cn(e,n)})}function Gu(t,n,r,e){return e(Math.floor(n/r),n%r).bind(function(n){var e=n.row()*r+n.column();return 0<=e&&e<t.length?Fn.some(t[e]):Fn.none()})}function Uu(o,n,i,u,c){return Gu(o,n,u,function(n,e){var t=n===i-1?o.length-n*u:u,r=fu(e,c,0,t-1);return Fn.some({row:v(n),column:v(r)})})}function $u(i,n,u,c,a){return Gu(i,n,c,function(n,e){var t=fu(n,a,0,u-1),r=t===u-1?i.length-t*c:c,o=su(e,0,r-1);return Fn.some({row:v(t),column:v(o)})})}function Wu(e,t,n){Qi(e.element(),t.selector).each(function(n){t.focusManager.set(e,n)})}function Xu(o){return function(n,e,t,r){return zu(n,e,t.selector).bind(function(n){return o(n.candidates(),n.index(),r.getNumRows().getOr(t.initSize.numRows),r.getNumColumns().getOr(t.initSize.numColumns))})}}function qu(n,e,t,r){return t.captureTab?Fn.some(!0):Fn.none()}function Yu(n,e,t,o){var i=function(n,e,t){var r=fu(e,o,0,t.length-1);return r===n?Fn.none():function(n){return"button"===q(n)&&"disabled"===Qr(n,"disabled")}(t[r])?i(n,r,t):Fn.from(t[r])};return zu(n,t,e).bind(function(n){var e=n.index(),t=n.candidates();return i(e,e,t)})}function Ku(e,t,r){return function(n,e){return e.focusManager.get(n).bind(function(n){return Zi(n,e.selector)})}(e,r).bind(function(n){return r.execute(e,t,n)})}function Ju(e,t){t.getInitial(e).orThunk(function(){return Qi(e.element(),t.selector)}).each(function(n){t.focusManager.set(e,n)})}function Qu(n,e,t){return Yu(n,t.selector,e,-1)}function Zu(n,e,t){return Yu(n,t.selector,e,1)}function nc(r){return function(n,e,t){return r(n,e,t).bind(function(){return t.executeOnMove?Ku(n,e,t):Fn.some(!0)})}}function ec(n,e,t,r){return t.onEscape(n,e)}function tc(n,e,t){return Fn.from(n[e]).bind(function(n){return Fn.from(n[t]).map(function(n){return da({rowIndex:e,columnIndex:t,cell:n})})})}function rc(n,e,t,r){var o=n[e].length,i=fu(t,r,0,o-1);return tc(n,e,i)}function oc(n,e,t,r){var o=fu(t,r,0,n.length-1),i=n[o].length,u=su(e,0,i-1);return tc(n,o,u)}function ic(n,e,t,r){var o=n[e].length,i=su(t+r,0,o-1);return tc(n,e,i)}function uc(n,e,t,r){var o=su(t+r,0,n.length-1),i=n[o].length,u=su(e,0,i-1);return tc(n,o,u)}function cc(e,t){t.previousSelector(e).orThunk(function(){var n=t.selectors;return Qi(e.element(),n.cell)}).each(function(n){t.focusManager.set(e,n)})}function ac(n,e){return function(o,t,i){var u=i.cycles?n:e;return Zi(t,i.selectors.row).bind(function(n){var e=Yi(n,i.selectors.cell);return Lu(e,t).bind(function(t){var r=Yi(o,i.selectors.row);return Lu(r,n).bind(function(n){var e=function(n,e){return de(n,function(n){return Yi(n,e.selectors.cell)})}(r,i);return u(e,n,t).map(function(n){return n.cell()})})})})}}function fc(e,t,r){return r.focusManager.get(e).bind(function(n){return r.execute(e,t,n)})}function sc(e,t){Qi(e.element(),t.selector).each(function(n){t.focusManager.set(e,n)})}function lc(n,e,t){return Yu(n,t.selector,e,-1)}function dc(n,e,t){return Yu(n,t.selector,e,1)}function mc(e,n){return function(n,e,t){return rr(n,e,Or(t))}(e,{},de(n,function(n){return function(e,t){return Cr(e,e,Ot(),_t(function(n){return gr("The field: "+e+" is forbidden. "+t)}))}(n.name(),"Cannot configure "+n.name()+" for "+e)}).concat([or("dump",y)]))}function gc(n){return n.dump}function pc(n,e){return x(x({},n.dump),Bo(e))}function hc(n,e,t,r){return t.uiType===_a?function(n,e,t,r){return n.exists(function(n){return n!==t.owner})?Pa.single(!0,v(t)):Dt(r,t.name).fold(function(){throw new Error("Unknown placeholder component: "+t.name+"\nKnown: ["+Bn(r)+"]\nNamespace: "+n.getOr("none")+"\nSpec: "+JSON.stringify(t,null,2))},function(n){return n.replace()})}(n,0,t,r):Pa.single(!1,v(t))}function vc(e,t,n,r){var o=S(r,function(n,e){return function(n,e){var t=!1;return{name:v(n),required:function(){return e.fold(function(n,e){return n},function(n,e){return n})},used:function(){return t},replace:function(){if(!0===t)throw new Error("Trying to use the same placeholder more than once: "+n);return t=!0,e}}}(e,n)}),i=function(e,t,n,r){return B(n,function(n){return Ha(e,t,n,r)})}(e,t,n,o);return Nn(o,function(n){if(!1===n.used()&&n.required())throw new Error("Placeholder: "+n.name()+" was not found in components list\nNamespace: "+e.getOr("none")+"\nComponents: "+JSON.stringify(t.components,null,2))}),i}function yc(n){var e=(new Date).getTime();return n+"_"+Math.floor(1e9*Math.random())+ ++Ua+String(e)}function bc(n){function e(n){return n.name}return n.fold(e,e,e,e)}function xc(t,r){return function(n){var e=Xt("Converting part type",r,n);return t(e)}}function wc(n,e,t,r){return xt(e.defaults(n,t,r),t,{uid:n.partUids[e.name]},e.overrides(n,t,r))}function Sc(o,n){var e={};return C(n,function(n){(function(n){return n.fold(Fn.some,Fn.none,Fn.some,Fn.some)})(n).each(function(t){var r=cf(o,t.pname);e[t.name]=function(n){var e=Xt("Part: "+t.name+" in "+o,Or(t.schema),n);return x(x({},r),{config:n,validated:e})}})}),e}function Tc(n,e,t){return function(n,t,e){var i={},r={};return C(e,function(n){n.fold(function(r){i[r.pname]=za(!0,function(n,e,t){return r.factory.sketch(wc(n,r,e,t))})},function(n){var e=t.parts[n.name];r[n.name]=v(n.factory.sketch(wc(t,n,e[uf()]),e))},function(r){i[r.pname]=za(!1,function(n,e,t){return r.factory.sketch(wc(n,r,e,t))})},function(o){i[o.pname]=La(!0,function(e,n,t){var r=e[o.name];return de(r,function(n){return o.factory.sketch(xt(o.defaults(e,n,t),n,o.overrides(e,n)))})})})}),{internals:v(i),externals:v(r)}}(0,e,t)}function Oc(n,e,t){return vc(Fn.some(n),e,e.components,t)}function kc(n,e,t){var r=e.partUids[t];return n.getSystem().getByUid(r).toOption()}function Ec(n,e,t){return kc(n,e,t).getOrDie("Could not find part: "+t)}function Cc(e,n){var t=function(n){return de(n,bc)}(n);return Cn(de(t,function(n){return{key:n,value:e+"-"+n}}))}function Dc(e){return Cr("partUids","partUids",Et(function(n){return Cc(n.uid,e)}),Ir())}function Mc(n){return En(af,n)}function Ic(r){return function(n,e){var t=e.toString(),r=t.indexOf(")")+1,o=t.indexOf("("),i=t.substring(o+1,r-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:"OVERRIDE",parameters:Io(i.slice(1))}},n}(function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return r.apply(undefined,[n.getApis()].concat([n].concat(e)))},r)}function Rc(n){return yc(n)}function Ac(n,e,t,r,o){var i=function(n,e){return(0<n.length?[Jt("parts",n)]:[]).concat([Yt("uid"),tr("dom",{}),tr("components",[]),ei("originalSpec"),tr("debug.sketcher",{})]).concat(e)}(r,o);return Xt(n+" [SpecSchema]",Pt(i.concat(e)),t)}function Fc(n,e,t,r,o){var i=pf(o),u=function(n){return B(n,function(n){return n.fold(Fn.none,Fn.some,Fn.none,Fn.none).map(function(n){return Jt(n.name,n.schema.concat([ei(uf())]))}).toArray()})}(t),c=Dc(t),a=Ac(n,e,i,u,[c]),f=Tc(0,a,t);return r(a,Oc(n,a,f.internals()),i,f.externals())}var Bc,Vc,Nc,jc,_c,Pc,Hc,zc,Lc,Gc,Uc=Mu(or("cyclic",v(!1))),$c=Mu(or("cyclic",v(!0))),Wc=[tr("execute",Ru),tr("useSpace",!1),tr("useEnter",!0),tr("useControlEnter",!1),tr("useDown",!1)],Xc=Du(Wc,Ao.init,function(n,e,t,r){var o=t.useSpace&&!Iu(n.element())?[32]:[],i=t.useEnter?[13]:[],u=t.useDown?[40]:[],c=o.concat(i).concat(u);return[au(ou(c),Fu)].concat(t.useControlEnter?[au(iu([cu,ou([13])]),Fu)]:[])},function(n,e,t,r){return t.useSpace&&!Iu(n.element())?[au(ou([32]),Au)]:[]},function(){return Fn.none()}),qc=/* */Object.freeze({flatgrid:Bu,init:function(n){return n.state(n)}}),Yc=function(n){return"rtl"===mi(n,"direction")?"rtl":"ltr"},Kc=function(e,t,n,r,o){return r.focusManager.get(t).bind(function(n){return e(t.element(),n,r,o)}).map(function(n){return r.focusManager.set(t,n),!0})},Jc=Pu,Qc=Pu,Zc=Pu,na=nn(["index","candidates"],[]),ea=[Yt("selector"),tr("execute",Ru),Jo("onEscape"),tr("captureTab",!1),ki()],ta=Xu(function(n,e,t,r){return Uu(n,e,t,r,-1)}),ra=Xu(function(n,e,t,r){return Uu(n,e,t,r,1)}),oa=Xu(function(n,e,t,r){return $u(n,e,t,r,-1)}),ia=Xu(function(n,e,t,r){return $u(n,e,t,r,1)}),ua=v([au(ou([37]),ju(ta,ra)),au(ou([39]),_u(ta,ra)),au(ou([38]),Jc(oa)),au(ou([40]),Qc(ia)),au(iu([uu,ou([9])]),qu),au(iu([bu,ou([9])]),qu),au(ou([27]),function(n,e,t,r){return t.onEscape(n,e)}),au(ou([32].concat([13])),function(e,t,r,n){return function(n,e){return e.focusManager.get(n).bind(function(n){return Zi(n,e.selector)})}(e,r).bind(function(n){return r.execute(e,t,n)})})]),ca=v([au(ou([32]),Au)]),aa=Du(ea,Bu,ua,ca,function(){return Fn.some(Wu)}),fa=[Yt("selector"),tr("getInitial",Fn.none),tr("execute",Ru),Jo("onEscape"),tr("executeOnMove",!1),tr("allowVertical",!0)],sa=v([au(ou([32]),Au)]),la=Du(fa,Ao.init,function(n,e,t,r){var o=[37].concat(t.allowVertical?[38]:[]),i=[39].concat(t.allowVertical?[40]:[]);return[au(ou(o),nc(ju(Qu,Zu))),au(ou(i),nc(_u(Qu,Zu))),au(ou([13]),Ku),au(ou([32]),Ku),au(ou([27]),ec)]},sa,function(){return Fn.some(Ju)}),da=nn(["rowIndex","columnIndex","cell"],[]),ma=[Jt("selectors",[Yt("row"),Yt("cell")]),tr("cycles",!0),tr("previousSelector",Fn.none),tr("execute",Ru)],ga=ac(function(n,e,t){return rc(n,e,t,-1)},function(n,e,t){return ic(n,e,t,-1)}),pa=ac(function(n,e,t){return rc(n,e,t,1)},function(n,e,t){return ic(n,e,t,1)}),ha=ac(function(n,e,t){return oc(n,t,e,-1)},function(n,e,t){return uc(n,t,e,-1)}),va=ac(function(n,e,t){return oc(n,t,e,1)},function(n,e,t){return uc(n,t,e,1)}),ya=v([au(ou([37]),ju(ga,pa)),au(ou([39]),_u(ga,pa)),au(ou([38]),Jc(ha)),au(ou([40]),Qc(va)),au(ou([32].concat([13])),function(e,t,r){return go(e.element()).bind(function(n){return r.execute(e,t,n)})})]),ba=v([au(ou([32]),Au)]),xa=Du(ma,Ao.init,ya,ba,function(){return Fn.some(cc)}),wa=[Yt("selector"),tr("execute",Ru),tr("moveOnTab",!1)],Sa=v([au(ou([38]),Zc(lc)),au(ou([40]),Zc(dc)),au(iu([uu,ou([9])]),function(n,e,t){return t.moveOnTab?Zc(lc)(n,e,t):Fn.none()}),au(iu([bu,ou([9])]),function(n,e,t){return t.moveOnTab?Zc(dc)(n,e,t):Fn.none()}),au(ou([13]),fc),au(ou([32]),fc)]),Ta=v([au(ou([32]),Au)]),Oa=Du(wa,Ao.init,Sa,Ta,function(){return Fn.some(sc)}),ka=[Jo("onSpace"),Jo("onEnter"),Jo("onShiftEnter"),Jo("onLeft"),Jo("onRight"),Jo("onTab"),Jo("onShiftTab"),Jo("onUp"),Jo("onDown"),Jo("onEscape"),tr("stopSpaceKeyup",!1),Qt("focusIn")],Ea=Du(ka,Ao.init,function(n,e,t){return[au(ou([32]),t.onSpace),au(iu([bu,ou([13])]),t.onEnter),au(iu([uu,ou([13])]),t.onShiftEnter),au(iu([uu,ou([9])]),t.onShiftTab),au(iu([bu,ou([9])]),t.onTab),au(ou([38]),t.onUp),au(ou([40]),t.onDown),au(ou([37]),t.onLeft),au(ou([39]),t.onRight),au(ou([32]),t.onSpace),au(ou([27]),t.onEscape)]},function(n,e,t){return t.stopSpaceKeyup?[au(ou([32]),Au)]:[]},function(n){return n.focusIn}),Ca=Uc.schema(),Da=$c.schema(),Ma=la.schema(),Ia=aa.schema(),Ra=xa.schema(),Aa=Xc.schema(),Fa=Oa.schema(),Ba=Ea.schema(),Va=(Gc=Xt("Creating behaviour: "+(Lc={branchKey:"mode",branches:/* */Object.freeze({acyclic:Ca,cyclic:Da,flow:Ma,flatgrid:Ia,matrix:Ra,execution:Aa,menu:Fa,special:Ba}),name:"keying",active:{events:function(n,e){return n.handler.toEvents(n,e)}},apis:{focusIn:function(e,t,r){t.sendFocusIn(t).fold(function(){e.getSystem().triggerFocus(e.element(),e.element())},function(n){n(e,t,r)})},setGridSize:function(n,e,t,r,o){Mn(t,"setGridSize")?t.setGridSize(r,o):d.console.error("Layout does not support setGridSize")}},state:qc}).name,No,Lc),Bc=qt(Gc.branchKey,Gc.branches),Vc=Gc.name,Nc=Gc.active,jc=Gc.apis,_c=Gc.extra,Pc=Gc.state,zc=nr(Vc,[Zt("config",Hc=Bc)]),Ro(Hc,zc,Vc,Nc,jc,_c,Pc)),Na=mc,ja=pc,_a="placeholder",Pa=yt([{single:["required","valueThunk"]},{multiple:["required","valueThunks"]}]),Ha=function(i,u,c,a){return hc(i,0,c,a).fold(function(n,e){var t=e(u,c.config,c.validated),r=Dt(t,"components").getOr([]),o=B(r,function(n){return Ha(i,u,n,a)});return[x(x({},t),{components:o})]},function(n,e){var t=e(u,c.config,c.validated);return c.validated.preprocess.getOr(y)(t)})},za=Pa.single,La=Pa.multiple,Ga=v(_a),Ua=0,$a=yt([{required:["data"]},{external:["data"]},{optional:["data"]},{group:["data"]}]),Wa=tr("factory",{sketch:y}),Xa=tr("schema",[]),qa=Yt("name"),Ya=Cr("pname","pname",kt(function(n){return"<alloy."+yc(n.name)+">"}),Ir()),Ka=or("schema",function(){return[Qt("preprocess")]}),Ja=tr("defaults",v({})),Qa=tr("overrides",v({})),Za=Or([Wa,Xa,qa,Ya,Ja,Qa]),nf=Or([Wa,Xa,qa,Ya,Ja,Qa]),ef=Or([Wa,Ka,qa,Yt("unit"),Ya,Ja,Qa]),tf=xc($a.required,Za),rf=xc($a.optional,nf),of=xc($a.group,ef),uf=v("entirety"),cf=function(n,e){return{uiType:Ga(),owner:n,name:e}},af=yc("alloy-premade"),ff=v("alloy-id-"),sf=v("data-alloy-id"),lf=ff(),df=sf(),mf=function(n,e){Object.defineProperty(n.dom(),df,{value:e,writable:!0})},gf=function(n){var e=et(n)?n.dom()[df]:null;return Fn.from(e)},pf=function(n){return n.hasOwnProperty("uid")?n:x(x({},n),{uid:Rc("uid")})};function hf(n){var e=Xt("Sketcher for "+n.name,Hs,n),t=S(e.apis,Ic),r=S(e.extraApis,function(n,e){return Gr(n,e)});return x(x({name:v(e.name),partFields:v([]),configFields:v(e.configFields),sketch:function(n){return function(n,e,t,r){var o=pf(r);return t(Ac(n,e,o,[],[]),o)}(e.name,e.configFields,e.factory,n)}},t),r)}function vf(n){var e=Xt("Sketcher for "+n.name,zs,n),t=Sc(e.name,e.partFields),r=S(e.apis,Ic),o=S(e.extraApis,function(n,e){return Gr(n,e)});return x(x({name:v(e.name),partFields:v(e.partFields),configFields:v(e.configFields),sketch:function(n){return Fc(e.name,e.configFields,e.partFields,e.factory,n)},parts:v(t)},r),o)}function yf(n){var e=Je.fromHtml(n),t=at(e),r=function(n){var e=n.dom().attributes!==undefined?n.dom().attributes:[];return I(e,function(n,e){var t;return"class"===e.name?n:x(x({},n),((t={})[e.name]=e.value,t))},{})}(e),o=function(n){return Array.prototype.slice.call(n.dom().classList,0)}(e),i=0===t.length?{}:{innerHtml:po(e)};return x({tag:q(e),classes:o,attributes:r},i)}function bf(n){return{dom:Us(n)}}function xf(n){return Bo([Fi.config({toggleClass:_i.resolve("toolbar-button-selected"),toggleOnExecute:!1,aria:{mode:"pressed"}}),Bi(n,function(n,e){(e?Fi.on:Fi.off)(n)})])}function wf(n,e){var t=e.ui.registry.getAll().icons;return Fn.from(t[n]).fold(function(){return Us('<span class="${prefix}-toolbar-button ${prefix}-toolbar-group-item ${prefix}-icon-'+n+' ${prefix}-icon"></span>')},function(n){return Us('<span class="${prefix}-toolbar-button ${prefix}-toolbar-group-item">'+n+"</span>")})}function Sf(n){return rf({name:n+"-edge",overrides:function(r){return r.model.manager.edgeActions[n].fold(function(){return{}},function(t){var n=Nr([Pr(xe(),t,[r])]),e=Nr([Pr(Te(),t,[r]),Pr(Oe(),function(n,e){e.mouseIsDown.get()&&t(n,e)},[r])]);return{events:Xs?n:e}})}})}function Tf(n,e,t){e.store.manager.onLoad(n,e,t)}function Of(n,e,t){e.store.manager.onUnload(n,e,t)}function kf(){var n=Pn(null);return Fo({set:n.set,get:n.get,isNotSet:function(){return null===n.get()},clear:function(){n.set(null)},readState:function(){return{mode:"memory",value:n.get()}}})}function Ef(){var i=Pn({}),u=Pn({});return Fo({readState:function(){return{mode:"dataset",dataByValue:i.get(),dataByText:u.get()}},lookup:function(n){return Dt(i.get(),n).orThunk(function(){return Dt(u.get(),n)})},update:function(n){var e=i.get(),t=u.get(),r={},o={};C(n,function(e){r[e.value]=e,Dt(e,"meta").each(function(n){Dt(n,"text").each(function(n){o[n]=e})})}),i.set(x(x({},e),r)),u.set(x(x({},t),o))},clear:function(){i.set({}),u.set({})}})}function Cf(n,e,t,r){var o=e.store;t.update([r]),o.setValue(n,r),e.onSetValue(n,r)}function Df(n,e){ll.set(n,e)}function Mf(n){return ll.get(n)}function If(n){var e=n.event().raw();if(gl){var t=e;return t.touches!==undefined&&1===t.touches.length?Fn.some(t.touches[0]).map(function(n){return ml(n.clientX,n.clientY)}):Fn.none()}var r=e;return r.clientX!==undefined?Fn.some(r).map(function(n){return ml(n.clientX,n.clientY)}):Fn.none()}function Rf(n){return n.model.minX}function Af(n){return n.model.minY}function Ff(n){return n.model.minX-1}function Bf(n){return n.model.minY-1}function Vf(n){return n.model.maxX}function Nf(n){return n.model.maxY}function jf(n){return n.model.maxX+1}function _f(n){return n.model.maxY+1}function Pf(n,e,t){return e(n)-t(n)}function Hf(n){return Pf(n,Vf,Rf)}function zf(n){return Pf(n,Nf,Af)}function Lf(n){return Hf(n)/2}function Gf(n){return zf(n)/2}function Uf(n){return n.stepSize}function $f(n){return n.snapToGrid}function Wf(n){return n.snapStart}function Xf(n){return n.rounded}function qf(n,e){return n[e+"-edge"]!==undefined}function Yf(n){return qf(n,"left")}function Kf(n){return qf(n,"right")}function Jf(n){return qf(n,"top")}function Qf(n){return qf(n,"bottom")}function Zf(n){return n.model.value.get()}function ns(n){return{x:v(n)}}function es(n){return{y:v(n)}}function ts(n,e){return{x:v(n),y:v(e)}}function rs(n,e){U(n,pl(),{value:e})}function os(n,e,t,r){return n<e?n:t<n?t:n===e?e-1:Math.max(e,n-r)}function is(n,e,t,r){return t<n?n:n<e?e:n===t?t+1:Math.min(t,n+r)}function us(n,e,t){return Math.max(e,Math.min(t,n))}function cs(n){var e=n.min,t=n.max,r=n.range,o=n.value,i=n.step,u=n.snap,c=n.snapStart,a=n.rounded,f=n.hasMinEdge,s=n.hasMaxEdge,l=n.minBound,d=n.maxBound,m=n.screenRange,g=f?e-1:e,p=s?t+1:t;if(o<l)return g;if(d<o)return p;var h=function(n,e,t){return Math.min(t,Math.max(n,e))-e}(o,l,d),v=us(h/m*r+e,g,p);return u&&e<=v&&v<=t?function(u,t,c,a,n){return n.fold(function(){var n=u-t,e=Math.round(n/a)*a;return us(t+e,t-1,c+1)},function(n){var e=(u-n)%a,t=Math.round(e/a),r=Math.floor((u-n)/a),o=Math.floor((c-n)/a),i=n+Math.min(o,r+t)*a;return Math.max(n,i)})}(v,e,t,i,c):a?Math.round(v):v}function as(n){var e=n.min,t=n.max,r=n.range,o=n.value,i=n.hasMinEdge,u=n.hasMaxEdge,c=n.maxBound,a=n.maxOffset,f=n.centerMinEdge,s=n.centerMaxEdge;return o<e?i?0:f:t<o?u?c:s:(o-e)/r*a}function fs(n){return n.element().dom().getBoundingClientRect()}function ss(n,e){return n[e]}function ls(n){var e=fs(n);return ss(e,hl)}function ds(n){var e=fs(n);return ss(e,"right")}function ms(n){var e=fs(n);return ss(e,"top")}function gs(n){var e=fs(n);return ss(e,"bottom")}function ps(n){var e=fs(n);return ss(e,"width")}function hs(n){var e=fs(n);return ss(e,"height")}function vs(n,e,t){return(n+e)/2-t}function ys(n,e){var t=fs(n),r=fs(e),o=ss(t,hl),i=ss(t,"right"),u=ss(r,hl);return vs(o,i,u)}function bs(n,e){var t=fs(n),r=fs(e),o=ss(t,"top"),i=ss(t,"bottom"),u=ss(r,"top");return vs(o,i,u)}function xs(n,e){U(n,pl(),{value:e})}function ws(n){return{x:v(n)}}function Ss(n,e,t){var r={min:Rf(e),max:Vf(e),range:Hf(e),value:t,step:Uf(e),snap:$f(e),snapStart:Wf(e),rounded:Xf(e),hasMinEdge:Yf(e),hasMaxEdge:Kf(e),minBound:ls(n),maxBound:ds(n),screenRange:ps(n)};return cs(r)}function Ts(t){return function(n,e){return function(n,e,t){var r=(0<n?is:os)(Zf(t).x(),Rf(t),Vf(t),Uf(t));return xs(e,ws(r)),Fn.some(r)}(t,n,e).map(function(){return!0})}}function Os(n,e,t,r,o,i){var u=function(e,n,t,r,o){var i=ps(e),u=r.bind(function(n){return Fn.some(ys(n,e))}).getOr(0),c=o.bind(function(n){return Fn.some(ys(n,e))}).getOr(i),a={min:Rf(n),max:Vf(n),range:Hf(n),value:t,hasMinEdge:Yf(n),hasMaxEdge:Kf(n),minBound:ls(e),minOffset:0,maxBound:ds(e),maxOffset:i,centerMinEdge:u,centerMaxEdge:c};return as(a)}(e,i,t,r,o);return ls(e)-ls(n)+u}function ks(n,e){U(n,pl(),{value:e})}function Es(n){return{y:v(n)}}function Cs(n,e,t){var r={min:Af(e),max:Nf(e),range:zf(e),value:t,step:Uf(e),snap:$f(e),snapStart:Wf(e),rounded:Xf(e),hasMinEdge:Jf(e),hasMaxEdge:Qf(e),minBound:ms(n),maxBound:gs(n),screenRange:hs(n)};return cs(r)}function Ds(t){return function(n,e){return function(n,e,t){var r=(0<n?is:os)(Zf(t).y(),Af(t),Nf(t),Uf(t));return ks(e,Es(r)),Fn.some(r)}(t,n,e).map(function(){return!0})}}function Ms(n,e,t,r,o,i){var u=function(e,n,t,r,o){var i=hs(e),u=r.bind(function(n){return Fn.some(bs(n,e))}).getOr(0),c=o.bind(function(n){return Fn.some(bs(n,e))}).getOr(i),a={min:Af(n),max:Nf(n),range:zf(n),value:t,hasMinEdge:Jf(n),hasMaxEdge:Qf(n),minBound:ms(e),minOffset:0,maxBound:gs(e),maxOffset:i,centerMinEdge:u,centerMaxEdge:c};return as(a)}(e,i,t,r,o);return ms(e)-ms(n)+u}function Is(n,e){U(n,pl(),{value:e})}function Rs(n,e){return{x:v(n),y:v(e)}}function As(t,r){return function(n,e){return function(n,e,t,r){var o=0<n?is:os,i=e?Zf(r).x():o(Zf(r).x(),Rf(r),Vf(r),Uf(r)),u=e?o(Zf(r).y(),Af(r),Nf(r),Uf(r)):Zf(r).y();return Is(t,Rs(i,u)),Fn.some(i)}(t,r,n,e).map(function(){return!0})}}function Fs(e,t,r,n){return Ws.forToolbar(t,function(){var n=r();e.setContextToolbar([{label:t+" group",items:n}])},{},n)}function Bs(n){return[function(o){function i(n){return n<0?"black":360<n?"white":"hsl("+n+", 100%, 50%)"}return _l.sketch({dom:Us('<div class="${prefix}-slider ${prefix}-hue-slider-container"></div>'),components:[_l.parts()["left-edge"](bf('<div class="${prefix}-hue-slider-black"></div>')),_l.parts().spectrum({dom:Us('<div class="${prefix}-slider-gradient-container"></div>'),components:[bf('<div class="${prefix}-slider-gradient"></div>')],behaviours:Bo([Fi.config({toggleClass:_i.resolve("thumb-active")})])}),_l.parts()["right-edge"](bf('<div class="${prefix}-hue-slider-white"></div>')),_l.parts().thumb({dom:Us('<div class="${prefix}-slider-thumb"></div>'),behaviours:Bo([Fi.config({toggleClass:_i.resolve("thumb-active")})])})],onChange:function(n,e,t){var r=i(t.x());Gi(e.element(),"background-color",r),o.onChange(n,e,r)},onDragStart:function(n,e){Fi.on(e)},onDragEnd:function(n,e){Fi.off(e)},onInit:function(n,e,t,r){var o=i(r.x());Gi(e.element(),"background-color",o)},stepSize:10,model:{mode:"x",minX:0,maxX:360,getInitialValue:function(){return{x:function(){return o.getInitialValue()}}}},sliderBehaviours:Bo([Vi(_l.refresh)])})}(n)]}function Vs(n){var e=n.selection.getStart(),t=Je.fromDom(e),r=Je.fromDom(n.getBody()),o=function(e,n){return(et(n)?Fn.some(n):fn(n).filter(et)).map(function(n){return Br(n,function(n){return gi(n,"font-size").isSome()},e).bind(function(n){return gi(n,"font-size")}).getOrThunk(function(){return mi(n,"font-size")})}).getOr("")}(function(n){return cn(r,n)},t);return R(Ll,function(n){return o===n}).getOr("medium")}function Ns(n){return[bf('<span class="${prefix}-toolbar-button ${prefix}-icon-small-font ${prefix}-icon"></span>'),function(n){return zl({onChange:n.onChange,sizes:Ul,category:"font",getInitialValue:n.getInitialValue})}(n),bf('<span class="${prefix}-toolbar-button ${prefix}-icon-large-font ${prefix}-icon"></span>')]}function js(n){var e=function t(n){return n.uid!==undefined}(n)&&Mn(n,"uid")?n.uid:Rc("memento");return{get:function(n){return n.getSystem().getByUid(e).getOrDie()},getOpt:function(n){return n.getSystem().getByUid(e).toOption()},asSpec:function(){return x(x({},n),{uid:e})}}}var _s,Ps,Hs=Pt([Yt("name"),Yt("factory"),Yt("configFields"),tr("apis",{}),tr("extraApis",{})]),zs=Pt([Yt("name"),Yt("factory"),Yt("configFields"),Yt("partFields"),tr("apis",{}),tr("extraApis",{})]),Ls=hf({name:"Button",factory:function(n){function t(e){return Dt(n.dom,"attributes").bind(function(n){return Dt(n,e)})}var e=function(n){return Nr(F([n.map(function(t){return Mo(function(n,e){t(n),e.stop()})}).toArray(),ai()]))}(n.action),r=n.dom.tag;return{uid:n.uid,dom:n.dom,components:n.components,events:e,behaviours:ja(n.buttonBehaviours,[Li.config({}),Va.config({mode:"execution",useSpace:!0,useEnter:!0})]),domModification:{attributes:function(){if("button"!==r)return{role:t("role").getOr("button")};var n=t("type").getOr("button"),e=t("role").map(function(n){return{role:n}}).getOr({});return x({type:n},e)}()},eventOrder:n.eventOrder}},configFields:[tr("uid",undefined),Yt("dom"),tr("components",[]),Na("buttonBehaviours",[Li,Va]),Qt("action"),Qt("role"),tr("eventOrder",{})]}),Gs=qr({fields:[],name:"unselecting",active:/* */Object.freeze({events:function(n){return Nr([jr(Fe(),v(!0))])},exhibit:function(n,e){return Ur({styles:{"-webkit-user-select":"none","user-select":"none","-ms-user-select":"none","-moz-user-select":"-moz-none"},attributes:{unselectable:"on"}})}})}),Us=function(n){var e=function(n,r){return n.replace(/\$\{([^{}]*)\}/g,function(n,e){var t=r[e];return function(n){var e=typeof n;return"string"==e||"number"==e}(t)?t.toString():n})}(n,{prefix:_i.prefix()});return yf(e)},$s=function(n,e,t,r){return Ls.sketch({dom:wf(n,r),action:e,buttonBehaviours:xt(Bo([Gs.config({})]),t)})},Ws={forToolbar:$s,forToolbarCommand:function(n,e){return $s(e,function(){n.execCommand(e)},{},n)},forToolbarStateAction:function(n,e,t,r){var o=xf(t);return $s(e,r,o,n)},forToolbarStateCommand:function(n,e){var t=xf(e);return $s(e,function(){n.execCommand(e)},t,n)},getToolbarIconButton:wf},Xs=L().deviceType.isTouch(),qs=rf({schema:[Yt("dom")],name:"label"}),Ys=Sf("top-left"),Ks=Sf("top"),Js=Sf("top-right"),Qs=Sf("right"),Zs=Sf("bottom-right"),nl=Sf("bottom"),el=Sf("bottom-left"),tl=[qs,Sf("left"),Qs,Ks,nl,Ys,Js,el,Zs,tf({name:"thumb",defaults:v({dom:{styles:{position:"absolute"}}}),overrides:function(n){return{events:Nr([zr(xe(),n,"spectrum"),zr(we(),n,"spectrum"),zr(Se(),n,"spectrum"),zr(Te(),n,"spectrum"),zr(Oe(),n,"spectrum"),zr(ke(),n,"spectrum")])}}}),tf({schema:[or("mouseIsDown",function(){return Pn(!1)})],name:"spectrum",overrides:function(t){function r(e,n){return o.getValueFromEvent(n).map(function(n){return o.setValueFrom(e,t,n)})}var o=t.model.manager,n=Nr([_r(xe(),r),_r(we(),r)]),e=Nr([_r(Te(),r),_r(Oe(),function(n,e){t.mouseIsDown.get()&&r(n,e)})]);return{behaviours:Bo(Xs?[]:[Va.config({mode:"special",onLeft:function(n){return o.onLeft(n,t)},onRight:function(n){return o.onRight(n,t)},onUp:function(n){return o.onUp(n,t)},onDown:function(n){return o.onDown(n,t)}}),Li.config({})]),events:Xs?n:e}}})],rl=/* */Object.freeze({onLoad:Tf,onUnload:Of,setValue:function(n,e,t,r){e.store.manager.setValue(n,e,t,r)},getValue:function(n,e,t){return e.store.manager.getValue(n,e,t)},getState:function(n,e,t){return t}}),ol=/* */Object.freeze({events:function(t,r){var n=t.resetOnDom?[Eo(function(n,e){Tf(n,t,r)}),Co(function(n,e){Of(n,t,r)})]:[$r(t,r,Tf)];return Nr(n)}}),il=/* */Object.freeze({memory:kf,dataset:Ef,manual:function(){return Fo({readState:function(){}})},init:function(n){return n.store.manager.state(n)}}),ul=[Qt("initialValue"),Yt("getFallbackEntry"),Yt("getDataKey"),Yt("setValue"),ni("manager",{setValue:Cf,getValue:function(n,e,t){var r=e.store,o=r.getDataKey(n);return t.lookup(o).fold(function(){return r.getFallbackEntry(o)},function(n){return n})},onLoad:function(e,t,r){t.store.initialValue.each(function(n){Cf(e,t,r,n)})},onUnload:function(n,e,t){t.clear()},state:Ef})],cl=[Yt("getValue"),tr("setValue",w),Qt("initialValue"),ni("manager",{setValue:function(n,e,t,r){e.store.setValue(n,r),e.onSetValue(n,r)},getValue:function(n,e,t){return e.store.getValue(n)},onLoad:function(e,t,n){t.store.initialValue.each(function(n){t.store.setValue(e,n)})},onUnload:w,state:Ao.init})],al=[Qt("initialValue"),ni("manager",{setValue:function(n,e,t,r){t.set(r),e.onSetValue(n,r)},getValue:function(n,e,t){return t.get()},onLoad:function(n,e,t){e.store.initialValue.each(function(n){t.isNotSet()&&t.set(n)})},onUnload:function(n,e,t){t.clear()},state:kf})],fl=[rr("store",{mode:"memory"},qt("mode",{memory:al,manual:cl,dataset:ul})),Ko("onSetValue"),tr("resetOnDom",!1)],sl=qr({fields:fl,name:"representing",active:ol,apis:rl,extra:{setValueFrom:function(n,e){var t=sl.getValue(e);sl.setValue(n,t)}},state:il}),ll=$i("width",function(n){return n.dom().offsetWidth}),dl=function(t,r){return{left:v(t),top:v(r),translate:function(n,e){return dl(t+n,r+e)}}},ml=dl,gl=L().deviceType.isTouch(),pl=v("slider.change.value"),hl="left",vl=Ts(-1),yl=Ts(1),bl=Fn.none,xl=Fn.none,wl={"top-left":Fn.none(),top:Fn.none(),"top-right":Fn.none(),right:Fn.some(function(n,e){rs(n,ns(jf(e)))}),"bottom-right":Fn.none(),bottom:Fn.none(),"bottom-left":Fn.none(),left:Fn.some(function(n,e){rs(n,ns(Ff(e)))})},Sl=/* */Object.freeze({setValueFrom:function(n,e,t){var r=Ss(n,e,t),o=ws(r);return xs(n,o),r},setToMin:function(n,e){var t=Rf(e);xs(n,ws(t))},setToMax:function(n,e){var t=Vf(e);xs(n,ws(t))},findValueOfOffset:Ss,getValueFromEvent:function(n){return If(n).map(function(n){return n.left()})},findPositionOfValue:Os,setPositionFromValue:function(n,e,t,r){var o=Zf(t),i=Os(n,r.getSpectrum(n),o.x(),r.getLeftEdge(n),r.getRightEdge(n),t),u=Mf(e.element())/2;Gi(e.element(),"left",i-u+"px")},onLeft:vl,onRight:yl,onUp:bl,onDown:xl,edgeActions:wl}),Tl=Fn.none,Ol=Fn.none,kl=Ds(-1),El=Ds(1),Cl={"top-left":Fn.none(),top:Fn.some(function(n,e){rs(n,es(Bf(e)))}),"top-right":Fn.none(),right:Fn.none(),"bottom-right":Fn.none(),bottom:Fn.some(function(n,e){rs(n,es(_f(e)))}),"bottom-left":Fn.none(),left:Fn.none()},Dl=/* */Object.freeze({setValueFrom:function(n,e,t){var r=Cs(n,e,t),o=Es(r);return ks(n,o),r},setToMin:function(n,e){var t=Af(e);ks(n,Es(t))},setToMax:function(n,e){var t=Nf(e);ks(n,Es(t))},findValueOfOffset:Cs,getValueFromEvent:function(n){return If(n).map(function(n){return n.top()})},findPositionOfValue:Ms,setPositionFromValue:function(n,e,t,r){var o=Zf(t),i=Ms(n,r.getSpectrum(n),o.y(),r.getTopEdge(n),r.getBottomEdge(n),t),u=Wi(e.element())/2;Gi(e.element(),"top",i-u+"px")},onLeft:Tl,onRight:Ol,onUp:kl,onDown:El,edgeActions:Cl}),Ml=As(-1,!1),Il=As(1,!1),Rl=As(-1,!0),Al=As(1,!0),Fl={"top-left":Fn.some(function(n,e){rs(n,ts(Ff(e),Bf(e)))}),top:Fn.some(function(n,e){rs(n,ts(Lf(e),Bf(e)))}),"top-right":Fn.some(function(n,e){rs(n,ts(jf(e),Bf(e)))}),right:Fn.some(function(n,e){rs(n,ts(jf(e),Gf(e)))}),"bottom-right":Fn.some(function(n,e){rs(n,ts(jf(e),_f(e)))}),bottom:Fn.some(function(n,e){rs(n,ts(Lf(e),_f(e)))}),"bottom-left":Fn.some(function(n,e){rs(n,ts(Ff(e),_f(e)))}),left:Fn.some(function(n,e){rs(n,ts(Ff(e),Gf(e)))})},Bl=/* */Object.freeze({setValueFrom:function(n,e,t){var r=Ss(n,e,t.left()),o=Cs(n,e,t.top()),i=Rs(r,o);return Is(n,i),i},setToMin:function(n,e){var t=Rf(e),r=Af(e);Is(n,Rs(t,r))},setToMax:function(n,e){var t=Vf(e),r=Nf(e);Is(n,Rs(t,r))},getValueFromEvent:function(n){return If(n)},setPositionFromValue:function(n,e,t,r){var o=Zf(t),i=Os(n,r.getSpectrum(n),o.x(),r.getLeftEdge(n),r.getRightEdge(n),t),u=Ms(n,r.getSpectrum(n),o.y(),r.getTopEdge(n),r.getBottomEdge(n),t),c=Mf(e.element())/2,a=Wi(e.element())/2;Gi(e.element(),"left",i-c+"px"),Gi(e.element(),"top",u-a+"px")},onLeft:Ml,onRight:Il,onUp:Rl,onDown:Al,edgeActions:Fl}),Vl=L().deviceType.isTouch(),Nl=[tr("stepSize",1),tr("onChange",w),tr("onChoose",w),tr("onInit",w),tr("onDragStart",w),tr("onDragEnd",w),tr("snapToGrid",!1),tr("rounded",!0),Qt("snapStart"),Kt("model",qt("mode",{x:[tr("minX",0),tr("maxX",100),or("value",function(n){return Pn(n.mode.minX)}),Yt("getInitialValue"),ni("manager",Sl)],y:[tr("minY",0),tr("maxY",100),or("value",function(n){return Pn(n.mode.minY)}),Yt("getInitialValue"),ni("manager",Dl)],xy:[tr("minX",0),tr("maxX",100),tr("minY",0),tr("maxY",100),or("value",function(n){return Pn({x:v(n.mode.minX),y:v(n.mode.minY)})}),Yt("getInitialValue"),ni("manager",Bl)]})),mc("sliderBehaviours",[Va,sl])].concat(Vl?[]:[or("mouseIsDown",function(){return Pn(!1)})]),jl=L().deviceType.isTouch(),_l=vf({name:"Slider",configFields:Nl,partFields:tl,factory:function(i,n,e,t){function u(n){return Ec(n,i,"thumb")}function c(n){return Ec(n,i,"spectrum")}function r(n){return kc(n,i,"left-edge")}function o(n){return kc(n,i,"right-edge")}function a(n){return kc(n,i,"top-edge")}function f(n){return kc(n,i,"bottom-edge")}function s(n,e){m.setPositionFromValue(n,e,i,{getLeftEdge:r,getRightEdge:o,getTopEdge:a,getBottomEdge:f,getSpectrum:c})}function l(n,e){d.value.set(e);var t=u(n);return s(n,t),i.onChange(n,t,e),Fn.some(!0)}var d=i.model,m=d.manager,g=[_r(xe(),function(n,e){i.onDragStart(n,u(n))}),_r(Se(),function(n,e){i.onDragEnd(n,u(n))})],p=[_r(Te(),function(n,e){e.stop(),i.onDragStart(n,u(n)),i.mouseIsDown.set(!0)}),_r(ke(),function(n,e){i.onDragEnd(n,u(n))})],h=jl?g:p;return{uid:i.uid,dom:i.dom,components:n,behaviours:pc(i.sliderBehaviours,F([jl?[]:[Va.config({mode:"special",focusIn:function(n){return kc(n,i,"spectrum").map(Va.focusIn).map(v(!0))}})],[sl.config({store:{mode:"manual",getValue:function(n){return d.value.get()}}}),Ci.config({channels:{"mouse.released":{onReceive:function(t,n){function e(){kc(t,i,"thumb").each(function(n){var e=d.value.get();i.onChoose(t,n,e)})}if(jl)e();else{var r=i.mouseIsDown.get();i.mouseIsDown.set(!1),r&&e()}}}}})]])),events:Nr([_r(pl(),function(n,e){l(n,e.event().value())}),Eo(function(n,e){var t=d.getInitialValue();d.value.set(t);var r=u(n);s(n,r);var o=c(n);i.onInit(n,r,o,d.value.get())})].concat(h)),apis:{resetToMin:function(n){m.setToMin(n,i)},resetToMax:function(n){m.setToMax(n,i)},changeValue:l,refresh:s},domModification:{styles:{position:"relative"}}}},apis:{resetToMin:function(n,e){n.resetToMin(e)},resetToMax:function(n,e){n.resetToMax(e)},refresh:function(n,e){n.refresh(e)}}}),Pl=function(n,r){var e={onChange:function(n,e,t){r.undoManager.transact(function(){r.formatter.apply("forecolor",{value:t}),r.nodeChanged()})},getInitialValue:function(){return-1}};return Fs(n,"color-levels",function(){return Bs(e)},r)},Hl=Pt([Yt("getInitialValue"),Yt("onChange"),Yt("category"),Yt("sizes")]),zl=function(n){var o=Xt("SizeSlider",Hl,n);return _l.sketch({dom:{tag:"div",classes:[_i.resolve("slider-"+o.category+"-size-container"),_i.resolve("slider"),_i.resolve("slider-size-container")]},onChange:function(n,e,t){var r=t.x();!function(n){return 0<=n&&n<o.sizes.length}(r)||o.onChange(r)},onDragStart:function(n,e){Fi.on(e)},onDragEnd:function(n,e){Fi.off(e)},model:{mode:"x",minX:0,maxX:o.sizes.length-1,getInitialValue:function(){return{x:function(){return o.getInitialValue()}}}},stepSize:1,snapToGrid:!0,sliderBehaviours:Bo([Vi(_l.refresh)]),components:[_l.parts().spectrum({dom:Us('<div class="${prefix}-slider-size-container"></div>'),components:[bf('<div class="${prefix}-slider-size-line"></div>')]}),_l.parts().thumb({dom:Us('<div class="${prefix}-slider-thumb"></div>'),behaviours:Bo([Fi.config({toggleClass:_i.resolve("thumb-active")})])})]})},Ll=["9px","10px","11px","12px","14px","16px","18px","20px","24px","32px","36px"],Gl={candidates:v(Ll),get:function(n){return function(e){return A(Ll,function(n){return n===e})}(Vs(n)).getOr(2)},apply:function(e,n){(function(n){return Fn.from(Ll[n])})(n).each(function(n){!function(n,e){Vs(n)!==e&&n.execCommand("fontSize",!1,e)}(e,n)})}},Ul=Gl.candidates(),$l=window.Promise?window.Promise:(_s=Wl.immediateFn||"function"==typeof window.setImmediate&&window.setImmediate||function(n){d.setTimeout(n,1)},Ps=Array.isArray||function(n){return"[object Array]"===Object.prototype.toString.call(n)},Wl.prototype["catch"]=function(n){return this.then(null,n)},Wl.prototype.then=function(t,r){var o=this;return new Wl(function(n,e){ql.call(o,new Ql(t,r,n,e))})},Wl.all=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var a=Array.prototype.slice.call(1===n.length&&Ps(n[0])?n[0]:n);return new Wl(function(o,i){if(0===a.length)return o([]);var u=a.length;function c(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var t=n.then;if("function"==typeof t)return void t.call(n,function(n){c(e,n)},i)}a[e]=n,0==--u&&o(a)}catch(r){i(r)}}for(var n=0;n<a.length;n++)c(n,a[n])})},Wl.resolve=function(e){return e&&"object"==typeof e&&e.constructor===Wl?e:new Wl(function(n){n(e)})},Wl.reject=function(t){return new Wl(function(n,e){e(t)})},Wl.race=function(o){return new Wl(function(n,e){for(var t=0,r=o;t<r.length;t++)r[t].then(n,e)})},Wl);function Wl(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof n)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],Zl(n,Xl(Yl,this),Xl(Kl,this))}function Xl(n,e){return function(){return n.apply(e,arguments)}}function ql(r){var o=this;null!==this._state?_s(function(){var n=o._state?r.onFulfilled:r.onRejected;if(null!==n){var e;try{e=n(o._value)}catch(t){return void r.reject(t)}r.resolve(e)}else(o._state?r.resolve:r.reject)(o._value)}):this._deferreds.push(r)}function Yl(n){try{if(n===this)throw new TypeError("A promise cannot be resolved with itself.");if(n&&("object"==typeof n||"function"==typeof n)){var e=n.then;if("function"==typeof e)return void Zl(Xl(e,n),Xl(Yl,this),Xl(Kl,this))}this._state=!0,this._value=n,Jl.call(this)}catch(t){Kl.call(this,t)}}function Kl(n){this._state=!1,this._value=n,Jl.call(this)}function Jl(){for(var n=0,e=this._deferreds;n<e.length;n++){var t=e[n];ql.call(this,t)}this._deferreds=[]}function Ql(n,e,t,r){this.onFulfilled="function"==typeof n?n:null,this.onRejected="function"==typeof e?e:null,this.resolve=t,this.reject=r}function Zl(n,e,t){var r=!1;try{n(function(n){r||(r=!0,e(n))},function(n){r||(r=!0,t(n))})}catch(o){if(r)return;r=!0,t(o)}}function nd(n){return function e(t){return new $l(function(n){var e=new d.FileReader;e.onloadend=function(){n(e.result)},e.readAsDataURL(t)})}(n).then(function(n){return n.split(",")[1]})}function ed(o,i){(function(n){return nd(n)})(i).then(function(r){o.undoManager.transact(function(){var n=o.editorUpload.blobCache,e=n.create(yc("mceu"),i,r);n.add(e);var t=o.dom.createHTML("img",{src:e.blobUri()});o.insertContent(t)})})}function td(t){var e=js({dom:{tag:"input",attributes:{accept:"image/*",type:"file",title:""},styles:{visibility:"hidden",position:"absolute"}},events:Nr([Lr(Re()),_r(Ie(),function(n,e){(function(n){var e=n.event(),t=e.raw().target.files||e.raw().dataTransfer.files;return Fn.from(t[0])})(e).each(function(n){ed(t,n)})})])});return Ls.sketch({dom:Ws.getToolbarIconButton("image",t),components:[e.asSpec()],action:function(n){e.get(n).element().dom().click()}})}function rd(n){return n.dom().textContent}function od(n){return 0<n.length}function id(n){return n===undefined||null===n?"":n}function ud(n,e,t){return t.text.toOption().filter(od).fold(function(){return function(n){return Qr(n,"href")===rd(n)}(n)?Fn.some(e):Fn.none()},Fn.some)}function cd(n,e){var t=e.selection.getRng();n(),e.selection.setRng(t)}function ad(n){return n.dom().value}function fd(n,e){if(e===undefined)throw new Error("Value.set was undefined");n.dom().value=e}function sd(n){return x(x({},function(n){return Bo([Li.config({onFocus:!1===n.selectOnFocus?w:function(n){var e=n.element(),t=ad(e);e.dom().setSelectionRange(0,t.length)}})])}(n)),pc(n.inputBehaviours,[sl.config({store:{mode:"manual",initialValue:n.data.getOr(undefined),getValue:function(n){return ad(n.element())},setValue:function(n,e){ad(n.element())!==e&&fd(n.element(),e)}},onSetValue:n.onSetValue})]))}function ld(n,e){var t=js(ym.sketch({inputAttributes:{placeholder:Sm.translate(e)},onSetValue:function(n,e){G(n,Me())},inputBehaviours:Bo([gm.config({find:Fn.some}),wm.config({}),Va.config({mode:"execution"})]),selectOnFocus:!1})),r=js(Ls.sketch({dom:Us('<button class="${prefix}-input-container-x ${prefix}-icon-cancel-circle ${prefix}-icon"></button>'),action:function(n){var e=t.get(n);sl.setValue(e,"")}}));return{name:n,spec:pm.sketch({dom:Us('<div class="${prefix}-input-container"></div>'),components:[t.asSpec(),r.asSpec()],containerBehaviours:Bo([Fi.config({toggleClass:_i.resolve("input-container-empty")}),gm.config({find:function(n){return Fn.some(t.get(n))}}),lm("input-clearing",[_r(Me(),function(n){var e=t.get(n);(0<sl.getValue(e).length?Fi.off:Fi.on)(n)})])])})}}function dd(n,e,t){e.disabled&&Om(n,e)}function md(n,e){return!0===e.useNative&&k(Tm,q(n.element()))}function gd(n){Kr(n.element(),"disabled","disabled")}function pd(n){no(n.element(),"disabled")}function hd(n){Kr(n.element(),"aria-disabled","true")}function vd(n){Kr(n.element(),"aria-disabled","false")}function yd(e,n,t){n.disableClass.each(function(n){co(e.element(),n)}),(md(e,n)?pd:vd)(e),n.onEnabled(e)}function bd(n,e){return md(n,e)?function(n){return Zr(n.element(),"disabled")}(n):function(n){return"true"===Qr(n.element(),"aria-disabled")}(n)}function xd(n){return"<alloy.field."+n+">"}function wd(){function e(){t.get().each(function(n){n.destroy()})}var t=Pn(Fn.none());return{clear:function(){e(),t.set(Fn.none())},isSet:function(){return t.get().isSome()},set:function(n){e(),t.set(Fn.some(n))},run:function(n){t.get().each(n)}}}function Sd(){var e=Pn(Fn.none());return{clear:function(){e.set(Fn.none())},set:function(n){e.set(Fn.some(n))},isSet:function(){return e.get().isSome()},on:function(n){e.get().each(n)}}}function Td(n){function r(e,n,t){return Ls.sketch({dom:Us('<span class="${prefix}-icon-'+n+' ${prefix}-icon"></span>'),action:function(n){U(n,u,{direction:e})},buttonBehaviours:Bo([Dm.config({disableClass:_i.resolve("toolbar-navigation-disabled"),disabled:!t})])})}function o(n,o){var i=Yi(n.element(),"."+_i.resolve("serialised-dialog-screen"));Qi(n.element(),"."+_i.resolve("serialised-dialog-chain")).each(function(r){0<=c.state.currentScreen.get()+o&&c.state.currentScreen.get()+o<i.length&&(gi(r,"left").each(function(n){var e=parseInt(n,10),t=Mf(i[0]);Gi(r,"left",e-o*t+"px")}),c.state.currentScreen.set(c.state.currentScreen.get()+o))})}function i(e){var n=Yi(e.element(),"input");Fn.from(n[c.state.currentScreen.get()]).each(function(n){e.getSystem().getByDom(n).each(function(n){!function(n,e){n.getSystem().triggerFocus(e,n.element())}(e,n.element())})});var t=f.get(e);Cu.highlightAt(t,c.state.currentScreen.get())}var u="navigateEvent",e=Or([Yt("fields"),tr("maxFieldIndex",n.fields.length-1),Yt("onExecute"),Yt("getInitialValue"),or("state",function(){return{dialogSwipeState:Sd(),currentScreen:Pn(0)}})]),c=Xt("SerialisedDialog",e,n),a=js(Rm(function(t){return{dom:Us('<div class="${prefix}-serialised-dialog"></div>'),components:[pm.sketch({dom:Us('<div class="${prefix}-serialised-dialog-chain" style="left: 0px; position: absolute;"></div>'),components:de(c.fields,function(n,e){return e<=c.maxFieldIndex?pm.sketch({dom:Us('<div class="${prefix}-serialised-dialog-screen"></div>'),components:[r(-1,"previous",0<e),t.field(n.name,n.spec),r(1,"next",e<c.maxFieldIndex)]}):t.field(n.name,n.spec)})})],formBehaviours:Bo([Vi(function(n,e){!function(n,e){Qi(n.element(),"."+_i.resolve("serialised-dialog-chain")).each(function(n){Gi(n,"left",-c.state.currentScreen.get()*e.width+"px")})}(n,e)}),Va.config({mode:"special",focusIn:function(n){i(n)},onTab:function(n){return o(n,1),Fn.some(!0)},onShiftTab:function(n){return o(n,-1),Fn.some(!0)}}),lm("form-events",[Eo(function(e,n){c.state.currentScreen.set(0),c.state.dialogSwipeState.clear();var t=f.get(e);Cu.highlightFirst(t),c.getInitialValue(e).each(function(n){sl.setValue(e,n)})}),Mo(c.onExecute),_r(Ae(),function(n,e){"left"===e.event().raw().propertyName&&i(n)}),_r(u,function(n,e){var t=e.event().direction();o(n,t)})])])}})),f=js({dom:Us('<div class="${prefix}-dot-container"></div>'),behaviours:Bo([Cu.config({highlightClass:_i.resolve("dot-active"),itemClass:_i.resolve("dot-item")})]),components:B(c.fields,function(n,e){return e<=c.maxFieldIndex?[bf('<div class="${prefix}-dot-item ${prefix}-icon-full-dot ${prefix}-icon"></div>')]:[]})});return{dom:Us('<div class="${prefix}-serializer-wrapper"></div>'),components:[a.asSpec(),f.asSpec()],behaviours:Bo([Va.config({mode:"special",focusIn:function(n){var e=a.get(n);Va.focusIn(e)}}),lm("serializer-wrapper-events",[_r(xe(),function(n,e){var t=e.event();c.state.dialogSwipeState.set(Am(t.raw().touches[0].clientX))}),_r(we(),function(n,e){var t=e.event();c.state.dialogSwipeState.on(function(n){e.event().prevent(),c.state.dialogSwipeState.set(Fm(n,t.raw().touches[0].clientX))})}),_r(Se(),function(r){c.state.dialogSwipeState.on(function(n){var e=a.get(r),t=-1*Bm(n);o(e,t)})})])])}}function Od(e){function n(n){return function(){throw new Error("The component must be in a context to send: "+n+"\n"+bo(e().element())+" is not in context.")}}return{debugInfo:v("fake"),triggerEvent:n("triggerEvent"),triggerFocus:n("triggerFocus"),triggerEscape:n("triggerEscape"),build:n("build"),addToWorld:n("addToWorld"),removeFromWorld:n("removeFromWorld"),addToGui:n("addToGui"),removeFromGui:n("removeFromGui"),getByUid:n("getByUid"),getByDom:n("getByDom"),broadcast:n("broadcast"),broadcastOn:n("broadcastOn"),broadcastEvent:n("broadcastEvent"),isConnected:v(!1)}}function kd(n,o){var i={};return Nn(n,function(n,r){Nn(n,function(n,e){var t=kn(e,[])(i);i[e]=t.concat([o(r,n)])})}),i}function Ed(n){return n.cHandler}function Cd(n,e){return{name:v(n),handler:v(e)}}function Dd(n,e,t){var r=x(x({},t),function(n,e){var t={};return C(n,function(n){t[n.name()]=n.handlers(e)}),t}(e,n));return kd(r,Cd)}function Md(n){var i=function(n){return ce(n)?{can:v(!0),abort:v(!1),run:n}:n}(n);return function(n,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];var o=[n,e].concat(t);i.abort.apply(undefined,o)?e.stop():i.can.apply(undefined,o)&&i.run.apply(undefined,o)}}function Id(n,e,t){var r=e[t];return r?function(u,c,n,a){var e=n.slice(0);try{var t=e.sort(function(n,e){var t=n[c](),r=e[c](),o=a.indexOf(t),i=a.indexOf(r);if(-1===o)throw new Error("The ordering for "+u+" does not have an entry for "+t+".\nOrder specified: "+JSON.stringify(a,null,2));if(-1===i)throw new Error("The ordering for "+u+" does not have an entry for "+r+".\nOrder specified: "+JSON.stringify(a,null,2));return o<i?-1:i<o?1:0});return vt.value(t)}catch(r){return vt.error([r])}}("Event: "+t,"name",n,r).map(function(n){var e=de(n,function(n){return n.handler()});return cr(e)}):function(n,e){return vt.error(["The event ("+n+') has more than one behaviour that listens to it.\nWhen this occurs, you must specify an event ordering for the behaviours in your spec (e.g. [ "listing", "toggling" ]).\nThe behaviours that can trigger it are: '+JSON.stringify(de(e,function(n){return n.name()}),null,2)])}(t,n)}function Rd(n){return $t("custom.definition",Or([Cr("dom","dom",Tt(),Or([Yt("tag"),tr("styles",{}),tr("classes",[]),tr("attributes",{}),Qt("value"),Qt("innerHtml")])),Yt("components"),Yt("uid"),tr("events",{}),tr("apis",{}),Cr("eventOrder","eventOrder",function(n){return St.mergeWithThunk(v(n))}({"alloy.execute":["disabling","alloy.base.behaviour","toggling","typeaheadevents"],"alloy.focus":["alloy.base.behaviour","focusing","keying"],"alloy.system.init":["alloy.base.behaviour","disabling","toggling","representing"],input:["alloy.base.behaviour","representing","streaming","invalidating"],"alloy.system.detached":["alloy.base.behaviour","representing","item-events","tooltipping"],mousedown:["focusing","alloy.base.behaviour","item-type-events"],touchstart:["focusing","alloy.base.behaviour","item-type-events"],mouseover:["item-type-events","tooltipping"]}),Ir()),Qt("domModification")]),n)}function Ad(e,n){C(n,function(n){io(e,n)})}function Fd(e,n){C(n,function(n){co(e,n)})}function Bd(n,e){return function(e,n){var t=de(n,function(n){return nr(n.name(),[Yt("config"),tr("state",Ao)])}),r=$t("component.behaviours",Or(t),e.behaviours).fold(function(n){throw new Error(Mr(n)+"\nComplete spec:\n"+JSON.stringify(e,null,2))},function(n){return n});return{list:n,data:S(r,function(n){var e=n.map(function(n){return{config:n.config,state:n.state.init(n.config)}});return function(){return e}})}}(n,e)}function Vd(n){var e=function(n){var e=kn("behaviours",{})(n),t=D(Bn(e),function(n){return e[n]!==undefined});return de(t,function(n){return e[n].me})}(n);return Bd(n,e)}function Nd(n,e,t){var r=function(n){return x(x({},n.dom),{uid:n.uid,domChildren:de(n.components,function(n){return n.element()})})}(n),o=function(n){return n.domModification.fold(function(){return Ur({})},Ur)}(n),i={"alloy.base.modification":o};return function(n,e){return x(x({},n),{attributes:x(x({},n.attributes),e.attributes),styles:x(x({},n.styles),e.styles),classes:n.classes.concat(e.classes)})}(r,0<e.length?function(e,n,t,r){var o=x({},n);C(t,function(n){o[n.name()]=n.exhibit(e,r)});function i(n){return M(n,function(n,e){return x(x({},e.modification),n)},{})}var u=kd(o,function(n,e){return{name:n,modification:e}}),c=M(u.classes,function(n,e){return e.modification.concat(n)},[]),a=i(u.attributes),f=i(u.styles);return Ur({classes:c,attributes:a,styles:f})}(t,i,e,r):o)}function jd(n,e,t){var r={"alloy.base.behaviour":function(n){return n.events}(n)};return function(n,e,t,r){var o=Dd(n,t,r);return Lm(o,e)}(t,n.eventOrder,e,r).getOrDie()}function _d(t){function n(){return s}var r=Pn(Hm),e=Wt(Rd(t)),o=Vd(t),i=function(n){return n.list}(o),u=function(n){return n.data}(o),c=function(n){var e=Je.fromTag(n.tag);Jr(e,n.attributes),Ad(e,n.classes),di(e,n.styles),n.innerHtml.each(function(n){return ho(e,n)});var t=n.domChildren;return gn(e,t),n.value.each(function(n){fd(e,n)}),n.uid,mf(e,n.uid),e}(Nd(e,i,u)),a=jd(e,i,u),f=Pn(e.components),s={getSystem:r.get,config:function(n){var e=u;return(ce(e[n.name()])?e[n.name()]:function(){throw new Error("Could not find "+n.name()+" in "+JSON.stringify(t,null,2))})()},hasConfigured:function(n){return ce(u[n.name()])},spec:v(t),readState:function(n){return u[n]().map(function(n){return n.state.readState()}).getOr("not enabled")},getApis:function(){return e.apis},connect:function(n){r.set(n)},disconnect:function(){r.set(Od(n))},element:v(c),syncComponents:function(){var n=at(c),e=B(n,function(n){return r.get().getByDom(n).fold(function(){return[]},function(n){return[n]})});f.set(e)},components:f.get,events:v(a)};return s}function Pd(n){var e=Pm(n),t=e.events,r=u(e,["events"]),o=function(n){var e=kn("components",[])(n);return de(e,$m)}(r),i=x(x({},r),{events:x(x({},_m),t),components:o});return vt.value(_d(i))}function Hd(n){var e=Je.fromText(n);return Gm({element:e})}function zd(n){(go(n.element()).isNone()||Li.isFocused(n))&&(Li.isFocused(n)||Li.focus(n),U(n,Xm,{item:n}))}function Ld(n){U(n,qm,{item:n})}function Gd(n,e,t,r){var o=n.getSystem().build(r);mt(n,o,t)}function Ud(n,e,t,r){var o=ug(n);R(o,function(n){return cn(r.element(),n.element())}).each(yn)}function $d(e,n,t,r,o){var i=ug(e);return Fn.from(i[r]).map(function(n){return Ud(e,0,0,n),o.each(function(n){Gd(e,0,function(n,e){!function(n,e,t){sn(n,t).fold(function(){ft(n,e)},function(n){ln(n,e)})}(n,e,r)},n)}),n})}function Wd(n,e){var t={};Nn(n,function(n,e){C(n,function(n){t[n]=e})});var r=e,o=function(n){return jn(n,function(n,e){return{k:n,v:e}})}(e),i=S(o,function(n,e){return[e].concat(ag(t,r,o,e))});return S(t,function(n){return Dt(i,n).getOr([n])})}function Xd(n,e,t,r){return Dt(e.routes,r.start).bind(function(n){return Dt(n,r.destination)})}function qd(t,r,n){(function(e,t,r){return gg(e,t).bind(function(n){return mg(e,t,r,n)})})(t,r,n).each(function(n){var e=n.transition;co(t.element(),e.transitionClass),no(t.element(),r.destinationAttr)})}function Yd(n,e,t,r){qd(n,e,t),Zr(n.element(),e.stateAttr)&&Qr(n.element(),e.stateAttr)!==r&&e.onFinish(n,r),Kr(n.element(),e.stateAttr,r)}function Kd(n){return Dt(n,"format").getOr(n.title)}function Jd(n){return Mn(n,"items")?function(n){var e=xt(On(n,["items"]),{menu:!0}),t=Og(n.items);return{item:e,menus:xt(t.menus,En(n.title,t.items)),expansions:xt(t.expansions,En(n.title,n.title))}}(n):{item:n,menus:{},expansions:{}}}function Qd(n){var e=n.replace(/\|/g," ").trim();return 0<e.length?e.split(/\s+/):[]}function Zd(n){var e=n.toolbar!==undefined?n.toolbar:Dg;return ie(e)?Mg(e):Qd(e)}function nm(n){function e(){n.stopPropagation()}function t(){n.preventDefault()}var r=Je.fromDom(n.target),o=i(t,e);return function(n,e,t,r,o,i,u){return{target:v(n),x:v(e),y:v(t),stop:r,prevent:o,kill:i,raw:v(u)}}(r,n.clientX,n.clientY,e,t,o,n)}function em(n,e,t,r,o){var i=function(e,t){return function(n){e(n)&&t(nm(n))}}(t,r);return n.dom().addEventListener(e,i,o),{unbind:l(Ag,n,e,i,o)}}function tm(n,e,t){return function(n,e,t,r){return em(n,e,t,r,!1)}(n,e,Fg,t)}function rm(n,e,t){return function(n,e,t,r){return em(n,e,t,r,!0)}(n,e,Fg,t)}function om(n){var e=n.matchMedia("(orientation: portrait)").matches;return{isPortrait:v(e)}}var im,um,cm=function(n){var e=Je.fromDom(n.selection.getStart());return Zi(e,"a")},am={getInfo:function(n){return cm(n).fold(function(){return function(n){return{url:"",text:n.selection.getContent({format:"text"}),title:"",target:"",link:Fn.none()}}(n)},function(n){return function(n){var e=rd(n),t=Qr(n,"href"),r=Qr(n,"title"),o=Qr(n,"target");return{url:id(t),text:e!==t?id(e):"",title:id(r),target:id(o),link:Fn.some(n)}}(n)})},applyInfo:function(e,o){o.url.toOption().filter(od).fold(function(){!function(e,n){n.link.bind(y).each(function(n){e.execCommand("unlink")})}(e,o)},function(t){var r=function(n,e){var t={};return t.href=n,e.title.toOption().filter(od).each(function(n){t.title=n}),e.target.toOption().filter(od).each(function(n){t.target=n}),t}(t,o);o.link.bind(y).fold(function(){var n=o.text.toOption().filter(od).getOr(t);e.insertContent(e.dom.createHTML("a",r,e.dom.encode(n)))},function(e){var n=ud(e,t,o);Jr(e,r),n.each(function(n){!function(n,e){n.dom().textContent=e}(e,n)})})})},query:cm},fm=L(),sm=function(n,e){(fm.os.isAndroid()?cd:t)(e,n)},lm=function(n,e){return{key:n,value:{config:{},me:function(n,e){var t=Nr(e);return qr({fields:[Yt("enabled")],name:n,active:{events:v(t)}})}(n,e),configAsRaw:v({}),initialConfig:{},state:Ao}}},dm=/* */Object.freeze({getCurrent:function(n,e,t){return e.find(n)}}),mm=[Yt("find")],gm=qr({fields:mm,name:"composing",apis:dm}),pm=hf({name:"Container",factory:function(n){var e=n.dom,t=e.attributes,r=u(e,["attributes"]);return{uid:n.uid,dom:x({tag:"div",attributes:x({role:"presentation"},t)},r),components:n.components,behaviours:gc(n.containerBehaviours),events:n.events,domModification:n.domModification,eventOrder:n.eventOrder}},configFields:[tr("components",[]),mc("containerBehaviours",[]),tr("events",{}),tr("domModification",{}),tr("eventOrder",{})]}),hm=hf({name:"DataField",factory:function(t){return{uid:t.uid,dom:t.dom,behaviours:ja(t.dataBehaviours,[sl.config({store:{mode:"memory",initialValue:t.getInitialValue()}}),gm.config({find:Fn.some})]),events:Nr([Eo(function(n,e){sl.setValue(n,t.getInitialValue())})])}},configFields:[Yt("uid"),Yt("dom"),Yt("getInitialValue"),Na("dataBehaviours",[sl,gm])]}),vm=v([Qt("data"),tr("inputAttributes",{}),tr("inputStyles",{}),tr("tag","input"),tr("inputClasses",[]),Ko("onSetValue"),tr("styles",{}),tr("eventOrder",{}),mc("inputBehaviours",[sl,Li]),tr("selectOnFocus",!0)]),ym=hf({name:"Input",configFields:vm(),factory:function(n,e){return{uid:n.uid,dom:function(n){return{tag:n.tag,attributes:x({type:"text"},n.inputAttributes),styles:n.inputStyles,classes:n.inputClasses}}(n),components:[],behaviours:sd(n),eventOrder:n.eventOrder}}}),bm=/* */Object.freeze({exhibit:function(n,e){return Ur({attributes:Cn([{key:e.tabAttr,value:"true"}])})}}),xm=[tr("tabAttr","data-alloy-tabstop")],wm=qr({fields:xm,name:"tabstopping",active:bm}),Sm=tinymce.util.Tools.resolve("tinymce.util.I18n"),Tm=["input","button","textarea","select"],Om=function(e,n,t){n.disableClass.each(function(n){io(e.element(),n)}),(md(e,n)?gd:hd)(e),n.onDisabled(e)},km=/* */Object.freeze({enable:yd,disable:Om,isDisabled:bd,onLoad:dd,set:function(n,e,t,r){(r?Om:yd)(n,e,t)}}),Em=/* */Object.freeze({exhibit:function(n,e,t){return Ur({classes:e.disabled?e.disableClass.map(_).getOr([]):[]})},events:function(t,n){return Nr([jr(Pe(),function(n,e){return bd(n,t)}),$r(t,n,dd)])}}),Cm=[tr("disabled",!1),tr("useNative",!0),Qt("disableClass"),Ko("onDisabled"),Ko("onEnabled")],Dm=qr({fields:Cm,name:"disabling",active:Em,apis:km}),Mm=[mc("formBehaviours",[sl])],Im=function(r,n,e){return{uid:r.uid,dom:r.dom,components:n,behaviours:pc(r.formBehaviours,[sl.config({store:{mode:"manual",getValue:function(n){var e=function(n,e){var t=n.getSystem();return S(e.partUids,function(n,e){return v(t.getByUid(n))})}(n,r);return S(e,function(n,e){return n().bind(function(n){return function(n,e){return n.fold(function(){return vt.error(e)},vt.value)}(gm.getCurrent(n),"missing current")}).map(sl.getValue)})},setValue:function(t,n){Nn(n,function(e,n){kc(t,r,n).each(function(n){gm.getCurrent(n).each(function(n){sl.setValue(n,e)})})})}}})]),apis:{getField:function(n,e){return kc(n,r,e).bind(gm.getCurrent)}}}},Rm=(Ic(function(n,e,t){return n.getField(e,t)}),function(n){var t,e=(t=[],{field:function(n,e){return t.push(n),function(n,e,t){return{uiType:Ga(),owner:n,name:e,config:t,validated:{}}}("form",xd(n),e)},record:function(){return t}}),r=n(e),o=e.record(),i=de(o,function(n){return tf({name:n,pname:xd(n)})});return Fc("form",Mm,i,Im,r)}),Am=function(n){return{xValue:n,points:[]}},Fm=function(n,e){if(e===n.xValue)return n;var t=0<e-n.xValue?1:-1,r={direction:t,xValue:e};return{xValue:e,points:(0===n.points.length?[]:n.points[n.points.length-1].direction===t?n.points.slice(0,n.points.length-1):n.points).concat([r])}},Bm=function(n){if(0===n.points.length)return 0;var e=n.points[0].direction,t=n.points[n.points.length-1].direction;return-1===e&&-1===t?-1:1===e&&1===t?1:0},Vm=X(function(t,r){return[{label:"the link group",items:[Td({fields:[ld("url","Type or paste URL"),ld("text","Link text"),ld("title","Link title"),ld("target","Link target"),function(n){return{name:n,spec:hm.sketch({dom:{tag:"span",styles:{display:"none"}},getInitialValue:function(){return Fn.none()}})}}("link")],maxFieldIndex:["url","text","title","target"].length-1,getInitialValue:function(){return Fn.some(am.getInfo(r))},onExecute:function(n){var e=sl.getValue(n);am.applyInfo(r,e),t.restoreToolbar(),r.focus()}})]}]}),Nm=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],jm=Nr([(im=Ve(),um=function(n,e){var t=e.event().originator(),r=e.event().target();return!function(n,e,t){return cn(e,n.element())&&!cn(e,t)}(n,t,r)||(d.console.warn(Ve()+" did not get interpreted by the desired target. \nOriginator: "+bo(t)+"\nTarget: "+bo(r)+"\nCheck the "+Ve()+" event handlers"),!1)},{key:im,value:ur({can:um})})]),_m=/* */Object.freeze({events:jm}),Pm=y,Hm=Od(),zm=function(n,e){return function(n,e){return{cHandler:n,purpose:v(e)}}(l.apply(undefined,[n.handler].concat(e)),n.purpose())},Lm=function(n,i){var e=_n(n,function(r,o){return(1===r.length?vt.value(r[0].handler()):Id(r,i,o)).map(function(n){var e=Md(n),t=1<r.length?D(i[o],function(e){return E(r,function(n){return n.name()===e})}).join(" > "):r[0].name();return En(o,function(n,e){return{handler:n,purpose:v(e)}}(e,t))})});return Dn(e,{})},Gm=function(n){var e=Xt("external.component",Pt([Yt("element"),Qt("uid")]),n),t=Pn(Od());e.uid.each(function(n){mf(e.element,n)});var r={getSystem:t.get,config:Fn.none,hasConfigured:v(!1),connect:function(n){t.set(n)},disconnect:function(){t.set(Od(function(){return r}))},getApis:function(){return{}},element:v(e.element),spec:v(n),readState:v("No state"),syncComponents:w,components:v([]),events:v({})};return Mc(r)},Um=Rc,$m=function(e){return function(n){return Dt(n,af)}(e).fold(function(){var n=e.hasOwnProperty("uid")?e:x({uid:Um("")},e);return Pd(n).getOrDie()},function(n){return n})},Wm=Mc,Xm="alloy.item-hover",qm="alloy.item-focus",Ym=v(Xm),Km=v(qm),Jm=[Yt("data"),Yt("components"),Yt("dom"),tr("hasSubmenu",!1),Qt("toggling"),Na("itemBehaviours",[Fi,Li,Va,sl]),tr("ignoreFocus",!1),tr("domModification",{}),ni("builder",function(n){return{dom:n.dom,domModification:x(x({},n.domModification),{attributes:x(x(x({role:n.toggling.isSome()?"menuitemcheckbox":"menuitem"},n.domModification.attributes),{"aria-haspopup":n.hasSubmenu}),n.hasSubmenu?{"aria-expanded":!1}:{})}),behaviours:ja(n.itemBehaviours,[n.toggling.fold(Fi.revoke,function(n){return Fi.config(x({aria:{mode:"checked"}},n))}),Li.config({ignore:n.ignoreFocus,stopMousedown:n.ignoreFocus,onFocus:function(n){Ld(n)}}),Va.config({mode:"execution"}),sl.config({store:{mode:"memory",initialValue:n.data}}),lm("item-type-events",function a(){for(var n=0,e=0,t=arguments.length;e<t;e++)n+=arguments[e].length;var r=Array(n),o=0;for(e=0;e<t;e++)for(var i=arguments[e],u=0,c=i.length;u<c;u++,o++)r[o]=i[u];return r}(ai(),[_r(Ee(),zd),_r(He(),Li.focus)]))]),components:n.components,eventOrder:n.eventOrder}}),tr("eventOrder",{})],Qm=[Yt("dom"),Yt("components"),ni("builder",function(n){return{dom:n.dom,components:n.components,events:Nr([function(n){return _r(n,function(n,e){e.stop()})}(He())])}})],Zm=v([tf({name:"widget",overrides:function(e){return{behaviours:Bo([sl.config({store:{mode:"manual",getValue:function(n){return e.data},setValue:function(){}}})])}}})]),ng=[Yt("uid"),Yt("data"),Yt("components"),Yt("dom"),tr("autofocus",!1),tr("ignoreFocus",!1),Na("widgetBehaviours",[sl,Li,Va]),tr("domModification",{}),Dc(Zm()),ni("builder",function(t){function r(n){return kc(n,t,"widget").map(function(n){return Va.focusIn(n),n})}function n(n,e){return Iu(e.event().target())||t.autofocus&&e.setSource(n.element()),Fn.none()}var e=Tc(0,t,Zm()),o=Oc("item-widget",t,e.internals());return{dom:t.dom,components:o,domModification:t.domModification,events:Nr([Mo(function(n,e){r(n).each(function(n){e.stop()})}),_r(Ee(),zd),_r(He(),function(n,e){t.autofocus?r(n):Li.focus(n)})]),behaviours:ja(t.widgetBehaviours,[sl.config({store:{mode:"memory",initialValue:t.data}}),Li.config({ignore:t.ignoreFocus,onFocus:function(n){Ld(n)}}),Va.config({mode:"special",focusIn:t.autofocus?function(n){r(n)}:jo(),onLeft:n,onRight:n,onEscape:function(n,e){return Li.isFocused(n)||t.autofocus?(t.autofocus&&e.setSource(n.element()),Fn.none()):(Li.focus(n),Fn.some(!0))}})])}})],eg=qt("type",{widget:ng,item:Jm,separator:Qm}),tg=v([of({factory:{sketch:function(n){var e=Xt("menu.spec item",eg,n);return e.builder(e)}},name:"items",unit:"item",defaults:function(n,e){return e.hasOwnProperty("uid")?e:x(x({},e),{uid:Rc("item")})},overrides:function(n,e){return{type:e.type,ignoreFocus:n.fakeFocus,domModification:{classes:[n.markers.item]}}}})]),rg=v([Yt("value"),Yt("items"),Yt("dom"),Yt("components"),tr("eventOrder",{}),mc("menuBehaviours",[Cu,sl,gm,Va]),rr("movement",{mode:"menu",moveOnTab:!0},qt("mode",{grid:[ki(),ni("config",function(n,e){return{mode:"flatgrid",selector:"."+n.markers.item,initSize:{numColumns:e.initSize.numColumns,numRows:e.initSize.numRows},focusManager:n.focusManager}})],matrix:[ni("config",function(n,e){return{mode:"matrix",selectors:{row:e.rowSelector,cell:"."+n.markers.item},focusManager:n.focusManager}}),Yt("rowSelector")],menu:[tr("moveOnTab",!0),ni("config",function(n,e){return{mode:"menu",selector:"."+n.markers.item,moveOnTab:e.moveOnTab,focusManager:n.focusManager}})]})),Kt("markers",Ti()),tr("fakeFocus",!1),tr("focusManager",pu()),Ko("onHighlight")]),og=v("alloy.menu-focus"),ig=vf({name:"Menu",configFields:rg(),partFields:tg(),factory:function(n,e,t,r){return{uid:n.uid,dom:n.dom,markers:n.markers,behaviours:pc(n.menuBehaviours,[Cu.config({highlightClass:n.markers.selectedItem,itemClass:n.markers.item,onHighlight:n.onHighlight}),sl.config({store:{mode:"memory",initialValue:n.value}}),gm.config({find:Fn.some}),Va.config(n.movement.config(n,n.movement))]),events:Nr([_r(Km(),function(e,t){var n=t.event();e.getSystem().getByDom(n.target()).each(function(n){Cu.highlight(e,n),t.stop(),U(e,og(),{menu:e,item:n})})}),_r(Ym(),function(n,e){var t=e.event().item();Cu.highlight(n,t)})]),components:e,eventOrder:n.eventOrder,domModification:{attributes:{role:"menu"}}}}}),ug=function(n,e){return n.components()},cg=qr({fields:[],name:"replacing",apis:/* */Object.freeze({append:function(n,e,t,r){Gd(n,0,ft,r)},prepend:function(n,e,t,r){Gd(n,0,mn,r)},remove:Ud,replaceAt:$d,replaceBy:function(e,n,t,r,o){var i=ug(e);return A(i,r).bind(function(n){return $d(e,0,0,n,o)})},set:function(e,n,t,r){!function(n,t){var r=an(t),e=mo(r).bind(function(e){function n(n){return cn(e,n)}return n(t)?Fn.some(t):Vr(t,n)}),o=n(t);e.each(function(e){mo(r).filter(function(n){return cn(n,e)}).fold(function(){so(e)},w)})}(function(){var n=de(r,e.getSystem().build);vn(e,n)},e.element())},contents:ug})}),ag=function(t,r,o,n){return Dt(o,n).bind(function(n){return Dt(t,n).bind(function(n){var e=ag(t,r,o,n);return Fn.some([n].concat(e))})}).getOr([])},fg=function(n){return"prepared"===n.type?Fn.some(n.menu):Fn.none()},sg={init:function(){function o(t){return function(n,e){for(var t=Bn(n),r=0,o=t.length;r<o;r++){var i=t[r],u=n[i];if(e(u,i,n))return Fn.some(u)}return Fn.none()}(i.get(),function(n,e){return n===t})}var i=Pn({}),u=Pn({}),c=Pn({}),a=Pn(Fn.none()),f=Pn({}),s=function(n){return e(n).bind(fg)},e=function(n){return Dt(u.get(),n)},t=function(n){return Dt(i.get(),n)};return{setMenuBuilt:function(n,e){var t;u.set(x(x({},u.get()),((t={})[n]={type:"prepared",menu:e},t)))},setContents:function(n,e,t,r){a.set(Fn.some(n)),i.set(t),u.set(e),f.set(r);var o=Wd(r,t);c.set(o)},expand:function(t){return Dt(i.get(),t).map(function(n){var e=Dt(c.get(),t).getOr([]);return[n].concat(e)})},refresh:function(n){return Dt(c.get(),n)},collapse:function(n){return Dt(c.get(),n).bind(function(n){return 1<n.length?Fn.some(n.slice(1)):Fn.none()})},lookupMenu:e,lookupItem:t,otherMenus:function(n){var e=f.get();return j(Bn(e),n)},getPrimary:function(){return a.get().bind(s)},getMenus:function(){return u.get()},clear:function(){i.set({}),u.set({}),c.set({}),a.set(Fn.none())},isClear:function(){return a.get().isNone()},getTriggeringPath:function(n,r){var e=D(t(n).toArray(),function(n){return s(n).isSome()});return Dt(c.get(),n).bind(function(n){var t=N(e.concat(n));return function(n){for(var e=[],t=0;t<n.length;t++){var r=n[t];if(!r.isSome())return Fn.none();e.push(r.getOrDie())}return Fn.some(e)}(B(t,function(n,e){return function(n,t,r){return s(n).bind(function(e){return o(n).bind(function(n){return t(n).map(function(n){return{triggeredMenu:e,triggeringItem:n,triggeringPath:r}})})})}(n,r,t.slice(0,e+1)).fold(function(){return a.get().is(n)?[]:[Fn.none()]},function(n){return[Fn.some(n)]})}))})}}},extractPreparedMenu:fg},lg=v("collapse-item"),dg=hf({name:"TieredMenu",configFields:[Zo("onExecute"),Zo("onEscape"),Qo("onOpenMenu"),Qo("onOpenSubmenu"),Qo("onRepositionMenu"),Ko("onCollapseMenu"),tr("highlightImmediately",!0),Jt("data",[Yt("primary"),Yt("menus"),Yt("expansions")]),tr("fakeFocus",!1),Ko("onHighlight"),Ko("onHover"),Jt("markers",[Yt("backgroundMenu")].concat(wi()).concat(Si())),Yt("dom"),tr("navigateOnHover",!0),tr("stayInDom",!1),mc("tmenuBehaviours",[Va,Cu,gm,cg]),tr("eventOrder",{})],apis:{collapseMenu:function(n,e){n.collapseMenu(e)},highlightPrimary:function(n,e){n.highlightPrimary(e)},repositionMenus:function(n,e){n.repositionMenus(e)}},factory:function(c,n){function r(r,o,n){return S(n,function(n,e){function t(){return ig.sketch(x(x({dom:n.dom},n),{value:e,items:n.items,markers:c.markers,fakeFocus:c.fakeFocus,onHighlight:c.onHighlight,focusManager:c.fakeFocus?function(){function o(n){return Cu.getHighlighted(n).map(function(n){return n.element()})}return{get:o,set:function(e,n){var t=o(e);e.getSystem().getByDom(n).fold(w,function(n){Cu.highlight(e,n)});var r=o(e);gu(e,t,r)}}}():pu()}))}return e===o?{type:"prepared",menu:r.getSystem().build(t())}:{type:"notbuilt",nbMenu:t}})}function a(n){return sl.getValue(n).value}function u(e,n){Cu.highlight(e,n),Cu.getHighlighted(n).orThunk(function(){return Cu.getFirst(n)}).each(function(n){W(e,n.element(),He())})}function f(e,n){return xo(de(n,function(n){return e.lookupMenu(n).bind(function(n){return"prepared"===n.type?Fn.some(n.menu):Fn.none()})}))}function s(e,n,t){var r=f(n,n.otherMenus(t));C(r,function(n){Fd(n.element(),[c.markers.backgroundMenu]),c.stayInDom||cg.remove(e,n)})}function l(n,r){var e=function(r){return o.get().getOrThunk(function(){var t={},n=Yi(r.element(),"."+c.markers.item),e=D(n,function(n){return"true"===Qr(n,"aria-haspopup")});return C(e,function(n){r.getSystem().getByDom(n).each(function(n){var e=a(n);t[e]=n})}),o.set(Fn.some(t)),t})}(n);Nn(e,function(n,e){var t=k(r,e);Kr(n.element(),"aria-expanded",t)})}function d(r,o,i){return Fn.from(i[0]).bind(function(n){return o.lookupMenu(n).bind(function(n){if("notbuilt"===n.type)return Fn.none();var e=n.menu,t=f(o,i.slice(1));return C(t,function(n){io(n.element(),c.markers.backgroundMenu)}),K(e.element())||cg.append(r,Wm(e)),Fd(e.element(),[c.markers.backgroundMenu]),u(r,e),s(r,o,i),Fn.some(e)})})}var m,e,o=Pn(Fn.none()),g=sg.init(),i=function(n){return S(c.data.menus,function(n,e){return B(n.items,function(n){return"separator"===n.type?[]:[n.data.value]})})};(e=m=m||{})[e.HighlightSubmenu=0]="HighlightSubmenu",e[e.HighlightParent=1]="HighlightParent";function p(o,i,u){void 0===u&&(u=m.HighlightSubmenu);var n=a(i);return g.expand(n).bind(function(r){return l(o,r),Fn.from(r[0]).bind(function(t){return g.lookupMenu(t).bind(function(n){var e=function(n,e,t){if("notbuilt"!==t.type)return t.menu;var r=n.getSystem().build(t.nbMenu());return g.setMenuBuilt(e,r),r}(o,t,n);return K(e.element())||cg.append(o,Wm(e)),c.onOpenSubmenu(o,i,e,N(r)),u===m.HighlightSubmenu?(Cu.highlightFirst(e),d(o,g,r)):(Cu.dehighlightAll(e),Fn.some(i))})})})}function h(e,t){var n=a(t);return g.collapse(n).bind(function(n){return l(e,n),d(e,g,n).map(function(n){return c.onCollapseMenu(e,t,n),n})})}function t(t){return function(e,n){return Zi(n.getSource(),"."+c.markers.item).bind(function(n){return e.getSystem().getByDom(n).toOption().bind(function(n){return t(e,n).map(function(){return!0})})})}}function v(n){return Cu.getHighlighted(n).bind(Cu.getHighlighted)}var y=Nr([_r(og(),function(t,r){var n=r.event().item();g.lookupItem(a(n)).each(function(){var n=r.event().menu();Cu.highlight(t,n);var e=a(r.event().item());g.refresh(e).each(function(n){return s(t,g,n)})})}),Mo(function(e,n){var t=n.event().target();e.getSystem().getByDom(t).each(function(n){0===a(n).indexOf("collapse-item")&&h(e,n),p(e,n,m.HighlightSubmenu).fold(function(){c.onExecute(e,n)},function(){})})}),Eo(function(e,n){(function(n){var e=r(n,c.data.primary,c.data.menus),t=i();return g.setContents(c.data.primary,e,c.data.expansions,t),g.getPrimary()})(e).each(function(n){cg.append(e,Wm(n)),c.onOpenMenu(e,n),c.highlightImmediately&&u(e,n)})})].concat(c.navigateOnHover?[_r(Ym(),function(n,e){var t=e.event().item();!function(e,n){var t=a(n);g.refresh(t).bind(function(n){return l(e,n),d(e,g,n)})}(n,t),p(n,t,m.HighlightParent),c.onHover(n,t)})]:[])),b={collapseMenu:function(e){v(e).each(function(n){h(e,n)})},highlightPrimary:function(e){g.getPrimary().each(function(n){u(e,n)})},repositionMenus:function(r){g.getPrimary().bind(function(e){return v(r).bind(function(n){var e=a(n),t=function(n){return _n(n,function(n){return n})}(g.getMenus()),r=xo(de(t,sg.extractPreparedMenu));return g.getTriggeringPath(e,function(n){return function(n,e,t){return wo(e,function(n){if(!n.getSystem().isConnected())return Fn.none();var e=Cu.getCandidates(n);return R(e,function(n){return a(n)===t})})}(0,r,n)})}).map(function(n){return{primary:e,triggeringPath:n}})}).fold(function(){(function(n){return Fn.from(n.components()[0]).filter(function(n){return"menu"===Qr(n.element(),"role")})})(r).each(function(n){c.onRepositionMenu(r,n,[])})},function(n){var e=n.primary,t=n.triggeringPath;c.onRepositionMenu(r,e,t)})}};return{uid:c.uid,dom:c.dom,markers:c.markers,behaviours:pc(c.tmenuBehaviours,[Va.config({mode:"special",onRight:t(function(n,e){return Iu(e.element())?Fn.none():p(n,e,m.HighlightSubmenu)}),onLeft:t(function(n,e){return Iu(e.element())?Fn.none():h(n,e)}),onEscape:t(function(n,e){return h(n,e).orThunk(function(){return c.onEscape(n,e).map(function(){return n})})}),focusIn:function(e,n){g.getPrimary().each(function(n){W(e,n.element(),He())})}}),Cu.config({highlightClass:c.markers.selectedMenu,itemClass:c.markers.menu}),gm.config({find:function(n){return Cu.getHighlighted(n)}}),cg.config({})]),eventOrder:c.eventOrder,apis:b,events:y}},extraApis:{tieredData:function(n,e,t){return{primary:n,menus:e,expansions:t}},singleData:function(n,e){return{primary:n,menus:En(n,e),expansions:{}}},collapseItem:function(n){return{value:yc(lg()),meta:{text:n}}}}}),mg=function(n,e,t,r){return Xd(0,e,0,r).bind(function(e){return e.transition.map(function(n){return{transition:n,route:e}})})},gg=function(n,e,t){var r=n.element();return Zr(r,e.destinationAttr)?Fn.some({start:Qr(n.element(),e.stateAttr),destination:Qr(n.element(),e.destinationAttr)}):Fn.none()},pg=/* */Object.freeze({findRoute:Xd,disableTransition:qd,getCurrentRoute:gg,jumpTo:Yd,progressTo:function(t,r,o,i){!function(n,e){Zr(n.element(),e.destinationAttr)&&(Kr(n.element(),e.stateAttr,Qr(n.element(),e.destinationAttr)),no(n.element(),e.destinationAttr))}(t,r);var n=function(n,e,t,r){return{start:Qr(n.element(),e.stateAttr),destination:r}}(t,r,0,i);mg(t,r,o,n).fold(function(){Yd(t,r,o,i)},function(n){qd(t,r,o);var e=n.transition;io(t.element(),e.transitionClass),Kr(t.element(),r.destinationAttr,i)})},getState:function(n,e,t){var r=n.element();return Zr(r,e.stateAttr)?Fn.some(Qr(r,e.stateAttr)):Fn.none()}}),hg=/* */Object.freeze({events:function(o,i){return Nr([_r(Ae(),function(t,n){var r=n.event().raw();gg(t,o).each(function(e){Xd(0,o,0,e).each(function(n){n.transition.each(function(n){r.propertyName===n.property&&(Yd(t,o,i,e.destination),o.onTransition(t,e))})})})}),Eo(function(n,e){Yd(n,o,i,o.initialState)})])}}),vg=[tr("destinationAttr","data-transitioning-destination"),tr("stateAttr","data-transitioning-state"),Yt("initialState"),Ko("onTransition"),Ko("onFinish"),Kt("routes",Ut(vt.value,Ut(vt.value,Pt([er("transition",[Yt("property"),Yt("transitionClass")])]))))],yg=qr({fields:vg,name:"transitioning",active:hg,apis:pg,extra:{createRoutes:function(n){var r={};return Nn(n,function(n,e){var t=e.split("<->");r[t[0]]=En(t[1],n),r[t[1]]=En(t[0],n)}),r},createBistate:function(n,e,t){return Cn([{key:n,value:En(e,t)},{key:e,value:En(n,t)}])},createTristate:function(n,e,t,r){return Cn([{key:n,value:Cn([{key:e,value:r},{key:t,value:r}])},{key:e,value:Cn([{key:n,value:r},{key:t,value:r}])},{key:t,value:Cn([{key:n,value:r},{key:e,value:r}])}])}}}),bg=_i.resolve("scrollable"),xg={register:function(n){io(n,bg)},deregister:function(n){co(n,bg)},scrollable:v(bg)},wg=function(n,e,t,r,o){return{data:{value:n,text:e},type:"item",dom:{tag:"div",classes:o?[_i.resolve("styles-item-is-menu")]:[]},toggling:{toggleOnExecute:!1,toggleClass:_i.resolve("format-matches"),selected:t},itemBehaviours:Bo(o?[]:[Bi(n,function(n,e){(e?Fi.on:Fi.off)(n)})]),components:[{dom:{tag:"div",attributes:{style:r},innerHtml:e}}]}},Sg=function(n,e,t,r){return{value:n,dom:{tag:"div"},components:[Ls.sketch({dom:{tag:"div",classes:[_i.resolve("styles-collapser")]},components:r?[{dom:{tag:"span",classes:[_i.resolve("styles-collapse-icon")]}},Hd(n)]:[Hd(n)],action:function(n){if(r){var e=t().get(n);dg.collapseMenu(e)}}}),{dom:{tag:"div",classes:[_i.resolve("styles-menu-items-container")]},components:[ig.parts().items({})],behaviours:Bo([lm("adhoc-scrollable-menu",[Eo(function(n,e){Gi(n.element(),"overflow-y","auto"),Gi(n.element(),"-webkit-overflow-scrolling","touch"),xg.register(n.element())}),Co(function(n){pi(n.element(),"overflow-y"),pi(n.element(),"-webkit-overflow-scrolling"),xg.deregister(n.element())})])])}],items:e,menuBehaviours:Bo([yg.config({initialState:"after",routes:yg.createTristate("before","current","after",{transition:{property:"transform",transitionClass:"transitioning"}})})])}},Tg=function(r){var n=function(r,o){var n=Sg("Styles",[].concat(de(r.items,function(n){return wg(Kd(n),n.title,n.isSelected(),n.getPreview(),Mn(r.expansions,Kd(n)))})),o,!1),e=S(r.menus,function(n,e){var t=de(n,function(n){return wg(Kd(n),n.title,n.isSelected!==undefined&&n.isSelected(),n.getPreview!==undefined?n.getPreview():"",Mn(r.expansions,Kd(n)))});return Sg(e,t,o,!0)}),t=xt(e,En("styles",n));return{tmenu:dg.tieredData("styles",t,r.expansions)}}(r.formats,function(){return e}),e=js(dg.sketch({dom:{tag:"div",classes:[_i.resolve("styles-menu")]},components:[],fakeFocus:!0,stayInDom:!0,onExecute:function(n,e){var t=sl.getValue(e);return r.handle(e,t.value),Fn.none()},onEscape:function(){return Fn.none()},onOpenMenu:function(n,e){var t=Mf(n.element());Df(e.element(),t),yg.jumpTo(e,"current")},onOpenSubmenu:function(n,e,t){var r=Mf(n.element()),o=Ji(e.element(),'[role="menu"]').getOrDie("hacky"),i=n.getSystem().getByDom(o).getOrDie();Df(t.element(),r),yg.progressTo(i,"before"),yg.jumpTo(t,"after"),yg.progressTo(t,"current")},onCollapseMenu:function(n,e,t){var r=Ji(e.element(),'[role="menu"]').getOrDie("hacky"),o=n.getSystem().getByDom(r).getOrDie();yg.progressTo(o,"after"),yg.progressTo(t,"current")},navigateOnHover:!1,highlightImmediately:!0,data:n.tmenu,markers:{backgroundMenu:_i.resolve("styles-background-menu"),menu:_i.resolve("styles-menu"),selectedMenu:_i.resolve("styles-selected-menu"),item:_i.resolve("styles-item"),selectedItem:_i.resolve("styles-selected-item")}}));return e.asSpec()},Og=function(n){return M(n,function(n,e){var t=Jd(e);return{menus:xt(n.menus,t.menus),items:[t.item].concat(n.items),expansions:xt(n.expansions,t.expansions)}},{menus:{},expansions:{},items:[]})},kg={expand:Og},Eg=function(r,n){function o(n){return function(){return r.formatter.match(n)}}function i(n){return function(){return r.formatter.getCssText(n)}}var e=Dt(n,"style_formats").getOr(Nm),t=function(n){return de(n,function(n){if(Mn(n,"items")){var e=t(n.items);return xt(function(n){return xt(n,{isSelected:v(!1),getPreview:v("")})}(n),{items:e})}return Mn(n,"format")?function(n){return xt(n,{isSelected:o(n.format),getPreview:i(n.format)})}(n):function(n){var e=yc(n.title),t=xt(n,{format:e,isSelected:o(e),getPreview:i(e)});return r.formatter.register(e,t),t}(n)})};return t(e)},Cg=function(t,n,r){var e=function(e,n){var t=function(n){return B(n,function(n){return n.items===undefined?!Mn(n,"format")||e.formatter.canApply(n.format)?[n]:[]:0<t(n.items).length?[n]:[]})},r=t(n);return kg.expand(r)}(t,n);return Tg({formats:e,handle:function(n,e){t.undoManager.transact(function(){Fi.isOn(n)?t.formatter.remove(e):t.formatter.apply(e)}),r()}})},Dg=["undo","bold","italic","link","image","bullist","styleselect"],Mg=function(n){return B(n,function(n){return ie(n)?Mg(n):Qd(n)})},Ig=function(e,r){function n(n){return function(){return Ws.forToolbarCommand(r,n)}}function t(n){return function(){return Ws.forToolbarStateCommand(r,n)}}function o(n,e,t){return function(){return Ws.forToolbarStateAction(r,n,e,t)}}function i(){return Cg(r,h,function(){r.fire("scrollIntoView")})}function u(n,e){return{isSupported:function(){var e=r.ui.registry.getAll().buttons;return n.forall(function(n){return Mn(e,n)})},sketch:e}}var c=n("undo"),a=n("redo"),f=t("bold"),s=t("italic"),l=t("underline"),d=n("removeformat"),m=o("unlink","link",function(){r.execCommand("unlink",null,!1)}),g=o("unordered-list","ul",function(){r.execCommand("InsertUnorderedList",null,!1)}),p=o("ordered-list","ol",function(){r.execCommand("InsertOrderedList",null,!1)}),h=Eg(r,r.settings);return{undo:u(Fn.none(),c),redo:u(Fn.none(),a),bold:u(Fn.none(),f),italic:u(Fn.none(),s),underline:u(Fn.none(),l),removeformat:u(Fn.none(),d),link:u(Fn.none(),function(){return function(e,t){return Ws.forToolbarStateAction(t,"link","link",function(){var n=Vm(e,t);e.setContextToolbar(n),sm(t,function(){e.focusToolbar()}),am.query(t).each(function(n){t.selection.select(n.dom())})})}(e,r)}),unlink:u(Fn.none(),m),image:u(Fn.none(),function(){return td(r)}),bullist:u(Fn.some("bullist"),g),numlist:u(Fn.some("numlist"),p),fontsizeselect:u(Fn.none(),function(){return function(n,e){var t={onChange:function(n){Gl.apply(e,n)},getInitialValue:function(){return Gl.get(e)}};return Fs(n,"font-size",function(){return Ns(t)},e)}(e,r)}),forecolor:u(Fn.none(),function(){return Pl(e,r)}),styleselect:u(Fn.none(),function(){return Ws.forToolbar("style-formats",function(n){r.fire("toReading"),e.dropup().appear(i,Fi.on,n)},Bo([Fi.config({toggleClass:_i.resolve("toolbar-button-selected"),toggleOnExecute:!1,aria:{mode:"pressed"}}),Ci.config({channels:Cn([Ni(Uo.orientationChanged(),Fi.off),Ni(Uo.dropupDismissed(),Fi.off)])})]),r)})}},Rg=function(n,t){var e=Zd(n),r={};return B(e,function(n){var e=!Mn(r,n)&&Mn(t,n)&&t[n].isSupported()?[t[n].sketch()]:[];return r[n]=!0,e})},Ag=function(n,e,t,r){n.dom().removeEventListener(e,t,r)},Fg=v(!0),Bg=tinymce.util.Tools.resolve("tinymce.util.Delay"),Vg=om,Ng=function(r,e){var n=Je.fromDom(r),o=null,t=tm(n,"orientationchange",function(){Bg.clearInterval(o);var n=om(r);e.onChange(n),i(function(){e.onReady(n)})}),i=function(n){Bg.clearInterval(o);var e=r.innerHeight,t=0;o=Bg.setInterval(function(){e!==r.innerHeight?(Bg.clearInterval(o),n(Fn.some(r.innerHeight))):20<t&&(Bg.clearInterval(o),n(Fn.none())),t++},50)};return{onAdjustment:i,destroy:function(){t.unbind()}}},jg=function(n){var e=L().os.isiOS(),t=om(n).isPortrait();return e&&!t?n.screen.height:n.screen.width};function _g(n){var e=n.raw();return e.touches===undefined||1!==e.touches.length?Fn.none():Fn.some(e.touches[0])}function Pg(t){var r=Pn(Fn.none()),o=Pn(!1),i=function n(t,r){var o=null;return{cancel:function(){null!==o&&(d.clearTimeout(o),o=null)},schedule:function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];o=d.setTimeout(function(){t.apply(null,n),o=null},r)}}}(function(n){t.triggerEvent(Le(),n),o.set(!0)},400),u=Cn([{key:xe(),value:function(t){return _g(t).each(function(n){i.cancel();var e={x:v(n.clientX),y:v(n.clientY),target:t.target};i.schedule(t),o.set(!1),r.set(Fn.some(e))}),Fn.none()}},{key:we(),value:function(n){return i.cancel(),_g(n).each(function(e){r.get().each(function(n){!function(n,e){var t=Math.abs(n.clientX-e.x()),r=Math.abs(n.clientY-e.y());return 5<t||5<r}(e,n)||r.set(Fn.none())})}),Fn.none()}},{key:Se(),value:function(e){i.cancel();return r.get().filter(function(n){return cn(n.target(),e.target())}).map(function(n){return o.get()?(e.prevent(),!1):t.triggerEvent(ze(),e)})}}]);return{fireIfReady:function(e,n){return Dt(u,n).bind(function(n){return n(e)})}}}var Hg=function(t){var e=Pg({triggerEvent:function(n,e){t.onTapContent(e)}});return{fireTouchstart:function(n){e.fireIfReady(n,"touchstart")},onTouchend:function(){return tm(t.body(),"touchend",function(n){e.fireIfReady(n,"touchend")})},onTouchmove:function(){return tm(t.body(),"touchmove",function(n){e.fireIfReady(n,"touchmove")})}}},zg=6<=L().os.version.major,Lg=function(r,e,t){function o(n){return!cn(n.start(),n.finish())||n.soffset()!==n.foffset()}function n(){var n=r.doc().dom().hasFocus()&&r.getSelection().exists(o);t.getByDom(e).each(!0===(n||mo(u).filter(function(n){return"input"===q(n)}).exists(function(n){return n.dom().selectionStart!==n.dom().selectionEnd}))?Fi.on:Fi.off)}var i=Hg(r),u=an(e),c=[tm(r.body(),"touchstart",function(n){r.onTouchContent(),i.fireTouchstart(n)}),i.onTouchmove(),i.onTouchend(),tm(e,"touchstart",function(n){r.onTouchToolstrip()}),r.onToReading(function(){lo(r.body())}),r.onToEditing(w),r.onScrollToCursor(function(n){n.preventDefault(),r.getCursorBox().each(function(n){var e=r.win(),t=n.top()>e.innerHeight||n.bottom()>e.innerHeight?n.bottom()-e.innerHeight+50:0;0!=t&&e.scrollTo(e.pageXOffset,e.pageYOffset+t)})})].concat(!0==zg?[]:[tm(Je.fromDom(r.win()),"blur",function(){t.getByDom(e).each(Fi.off)}),tm(u,"select",n),tm(r.doc(),"selectionchange",n)]);return{destroy:function(){C(c,function(n){n.unbind()})}}},Gg=function(n,e){var t=parseInt(Qr(n,e),10);return isNaN(t)?0:t};function Ug(n){return Ip.getOption(n)}function $g(n){return function(n){return Ug(n).filter(function(n){return 0!==n.trim().length||-1<n.indexOf("\xa0")}).isSome()}(n)||k(Rp,q(n))}function Wg(n,e,t){var r=n.document.createRange();return function(t,n){n.fold(function(n){t.setStartBefore(n.dom())},function(n,e){t.setStart(n.dom(),e)},function(n){t.setStartAfter(n.dom())})}(r,e),function(t,n){n.fold(function(n){t.setEndBefore(n.dom())},function(n,e){t.setEnd(n.dom(),e)},function(n){t.setEndAfter(n.dom())})}(r,t),r}function Xg(n,e,t,r,o){var i=n.document.createRange();return i.setStart(e.dom(),t),i.setEnd(r.dom(),o),i}function qg(n){return{left:v(n.left),top:v(n.top),right:v(n.right),bottom:v(n.bottom),width:v(n.width),height:v(n.height)}}function Yg(n,e,t){return e(Je.fromDom(t.startContainer),t.startOffset,Je.fromDom(t.endContainer),t.endOffset)}function Kg(n,e){return function(n,e){var t=e.ltr();return t.collapsed?e.rtl().filter(function(n){return!1===n.collapsed}).map(function(n){return jp.rtl(Je.fromDom(n.endContainer),n.endOffset,Je.fromDom(n.startContainer),n.startOffset)}).getOrThunk(function(){return Yg(0,jp.ltr,t)}):Yg(0,jp.ltr,t)}(0,function(o,n){return n.match({domRange:function(n){return{ltr:v(n),rtl:Fn.none}},relative:function(n,e){return{ltr:X(function(){return Wg(o,n,e)}),rtl:X(function(){return Fn.some(Wg(o,e,n))})}},exact:function(n,e,t,r){return{ltr:X(function(){return Xg(o,n,e,t,r)}),rtl:X(function(){return Fn.some(Xg(o,t,r,n,e))})}}})}(n,e))}function Jg(n,e,t){return e>=n.left&&e<=n.right&&t>=n.top&&t<=n.bottom}function Qg(t,r,n,e,o){function i(n){var e=t.dom().createRange();return e.setStart(r.dom(),n),e.collapse(!0),e}var u=function(n){return Ip.get(n)}(r).length,c=function(n,e,t,r,o){if(0===o)return 0;if(e===r)return o-1;for(var i=r,u=1;u<o;u++){var c=n(u),a=Math.abs(e-c.left);if(t<=c.bottom){if(t<c.top||i<a)return u-1;i=a}}return 0}(function(n){return i(n).getBoundingClientRect()},n,e,o.right,u);return i(c)}function Zg(n){return Vr(n,$g)}function np(n){return Pp(n,$g)}function ep(n,e){return e-n.left<n.right-e}function tp(n,e,t){var r=n.dom().createRange();return r.selectNode(e.dom()),r.collapse(t),r}function rp(e,n,t){var r=e.dom().createRange();r.selectNode(n.dom());var o=r.getBoundingClientRect(),i=ep(o,t);return(!0===i?Zg:np)(n).map(function(n){return tp(e,n,i)})}function op(n,e,t){var r=e.dom().getBoundingClientRect(),o=ep(r,t);return Fn.some(tp(n,e,o))}function ip(n,e,t,r){var o=n.dom().createRange();o.selectNode(e.dom());var i=o.getBoundingClientRect();return function(n,e,t,r){var o=n.dom().createRange();o.selectNode(e.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,t)),c=Math.max(i.top,Math.min(i.bottom,r));return _p(n,e,u,c)}(n,e,Math.max(i.left,Math.min(i.right,t)),Math.max(i.top,Math.min(i.bottom,r)))}function up(n,e){var t=q(n);return"input"===t?Bp.after(n):k(["br","img"],t)?0===e?Bp.before(n):Bp.after(n):Bp.on(n,e)}function cp(n,e,t,r){var o=function(n,e,t,r){var o=an(n).dom().createRange();return o.setStart(n.dom(),e),o.setEnd(t.dom(),r),o}(n,e,t,r),i=cn(n,t)&&e===r;return o.collapsed&&!i}function ap(n,e,t,r,o){!function(n,e){Fn.from(n.getSelection()).each(function(n){n.removeAllRanges(),n.addRange(e)})}(n,Xg(n,e,t,r,o))}function fp(n,e,t,r,o){!function(u,n){Kg(u,n).match({ltr:function(n,e,t,r){ap(u,n,e,t,r)},rtl:function(n,e,t,r){var o=u.getSelection();if(o.setBaseAndExtent)o.setBaseAndExtent(n.dom(),e,t.dom(),r);else if(o.extend)try{!function(n,e,t,r,o,i){e.collapse(t.dom(),r),e.extend(o.dom(),i)}(0,o,n,e,t,r)}catch(i){ap(u,t,r,n,e)}else ap(u,t,r,n,e)}})}(n,function(n,e,t,r){var o=up(n,e),i=up(t,r);return Np.relative(o,i)}(e,t,r,o))}function sp(n){var e=Je.fromDom(n.anchorNode),t=Je.fromDom(n.focusNode);return cp(e,n.anchorOffset,t,n.focusOffset)?Fn.some(Ap.create(e,n.anchorOffset,t,n.focusOffset)):function(n){if(0<n.rangeCount){var e=n.getRangeAt(0),t=n.getRangeAt(n.rangeCount-1);return Fn.some(Ap.create(Je.fromDom(e.startContainer),e.startOffset,Je.fromDom(t.endContainer),t.endOffset))}return Fn.none()}(n)}function lp(n){return Fn.from(n.getSelection()).filter(function(n){return 0<n.rangeCount}).bind(sp)}function dp(n,e){return function(n){var e=n.getClientRects(),t=0<e.length?e[0]:n.getBoundingClientRect();return 0<t.width||0<t.height?Fn.some(t).map(qg):Fn.none()}(function(i,n){return Kg(i,n).match({ltr:function(n,e,t,r){var o=i.document.createRange();return o.setStart(n.dom(),e),o.setEnd(t.dom(),r),o},rtl:function(n,e,t,r){var o=i.document.createRange();return o.setStart(t.dom(),r),o.setEnd(n.dom(),e),o}})}(n,e))}function mp(n){return{left:n.left,top:n.top,right:n.right,bottom:n.bottom,width:v(2),height:n.height}}function gp(n){return{left:v(n.left),top:v(n.top),right:v(n.right),bottom:v(n.bottom),width:v(n.width),height:v(n.height)}}function pp(t){if(t.collapsed){var r=Je.fromDom(t.startContainer);return fn(r).bind(function(n){var e=Np.exact(r,t.startOffset,n,function(n){return"img"===q(n)?1:Ug(n).fold(function(){return at(n).length},function(n){return n.length})}(n));return dp(t.startContainer.ownerDocument.defaultView,e).map(mp).map(_)}).getOr([])}return de(t.getClientRects(),gp)}function hp(n,e){Kr(n,Lp,e)}function vp(n){return{top:v(n.top()),bottom:v(n.top()+n.height())}}function yp(n,e){var t=function(n){return Gg(n,Lp)}(e),r=n.innerHeight;return r<t?Fn.some(t-r):Fn.none()}function bp(n){return Fn.some(Je.fromDom(n.dom().contentWindow.document.body))}function xp(n){return Fn.some(Je.fromDom(n.dom().contentWindow.document))}function wp(n){return Fn.from(n.dom().contentWindow)}function Sp(n){return wp(n).bind(lp)}function Tp(n){return n.getFrame()}function Op(n,t){return function(e){return e[n].getOrThunk(function(){var n=Tp(e);return function(){return t(n)}})()}}function kp(n,e,t,r){return n[t].getOrThunk(function(){return function(n){return tm(e,r,n)}})}function Ep(n){return{left:v(n.left),top:v(n.top),right:v(n.right),bottom:v(n.bottom),width:v(n.width),height:v(n.height)}}function Cp(t,r){var o=null;return{cancel:function(){null!==o&&(d.clearTimeout(o),o=null)},throttle:function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];null!==o&&d.clearTimeout(o),o=d.setTimeout(function(){t.apply(null,n),o=null},r)}}}function Dp(n){return"true"===Qr(n,ah)?function(n){return 0<n.dom().scrollLeft||function(n){n.dom().scrollLeft=1;var e=0!==n.dom().scrollLeft;return n.dom().scrollLeft=0,e}(n)}(n):function(n){return 0<n.dom().scrollTop||function(n){n.dom().scrollTop=1;var e=0!==n.dom().scrollTop;return n.dom().scrollTop=0,e}(n)}(n)}var Mp,Ip=function cy(t,r){var e=function(n){return t(n)?Fn.from(n.dom().nodeValue):Fn.none()};return{get:function(n){if(!t(n))throw new Error("Can only get "+r+" value of a "+r+" node");return e(n).getOr("")},getOption:e,set:function(n,e){if(!t(n))throw new Error("Can only set raw "+r+" value of a "+r+" node");n.dom().nodeValue=e}}}(tt,"text"),Rp=["img","br"],Ap={create:J("start","soffset","finish","foffset")},Fp=yt([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),Bp={before:Fp.before,on:Fp.on,after:Fp.after,cata:function(n,e,t,r){return n.fold(e,t,r)},getStart:function(n){return n.fold(y,y,y)}},Vp=yt([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),Np={domRange:Vp.domRange,relative:Vp.relative,exact:Vp.exact,exactFromRange:function(n){return Vp.exact(n.start(),n.soffset(),n.finish(),n.foffset())},getWin:function(n){return function(n){return Je.fromDom(n.dom().ownerDocument.defaultView)}(function(n){return n.match({domRange:function(n){return Je.fromDom(n.startContainer)},relative:function(n,e){return Bp.getStart(n)},exact:function(n,e,t,r){return n}})}(n))},range:Ap.create},jp=yt([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),_p=function(n,e,t,r){return tt(e)?function(e,t,r,o){var n=e.dom().createRange();n.selectNode(t.dom());var i=n.getClientRects();return wo(i,function(n){return Jg(n,r,o)?Fn.some(n):Fn.none()}).map(function(n){return Qg(e,t,r,o,n)})}(n,e,t,r):function(e,n,t,r){var o=e.dom().createRange(),i=at(n);return wo(i,function(n){return o.selectNode(n.dom()),Jg(o.getBoundingClientRect(),t,r)?_p(e,n,t,r):Fn.none()})}(n,e,t,r)},Pp=function(n,i){var u=function(n){for(var e=at(n),t=e.length-1;0<=t;t--){var r=e[t];if(i(r))return Fn.some(r);var o=u(r);if(o.isSome())return o}return Fn.none()};return u(n)},Hp=(document.caretPositionFromPoint||document.caretRangeFromPoint,function(n){var e=n.getSelection();return e!==undefined&&0<e.rangeCount?pp(e.getRangeAt(0)):[]}),zp=function(n){n.focus();var e=Je.fromDom(n.document.body);(mo().exists(function(n){return k(["input","textarea"],q(n))})?function(n){Bg.setTimeout(function(){n()},0)}:t)(function(){mo().each(lo),so(e)})},Lp="data-"+_i.resolve("last-outer-height"),Gp=function(n,r){var e=Je.fromDom(r.document.body),t=tm(Je.fromDom(n),"resize",function(){yp(n,e).each(function(t){(function(n){var e=Hp(n);return 0<e.length?Fn.some(e[0]).map(vp):Fn.none()})(r).each(function(n){var e=function(n,e,t){return e.top()>n.innerHeight||e.bottom()>n.innerHeight?Math.min(t,e.bottom()-n.innerHeight+50):0}(r,n,t);0!==e&&r.scrollTo(r.pageXOffset,r.pageYOffset+e)})}),hp(e,n.innerHeight)});hp(e,n.innerHeight);return{toEditing:function(){zp(r)},destroy:function(){t.unbind()}}},Up={getBody:Op("getBody",bp),getDoc:Op("getDoc",xp),getWin:Op("getWin",wp),getSelection:Op("getSelection",Sp),getFrame:Tp,getActiveApi:function(c){var a=Tp(c);return bp(a).bind(function(u){return xp(a).bind(function(i){return wp(a).map(function(o){var n=Je.fromDom(i.dom().documentElement),e=c.getCursorBox.getOrThunk(function(){return function(){return function(n){return lp(n).map(function(n){return Np.exact(n.start(),n.soffset(),n.finish(),n.foffset())})}(o).bind(function(n){return dp(o,n).orThunk(function(){return function(n){return lp(n).filter(function(n){return cn(n.start(),n.finish())&&n.soffset()===n.foffset()}).bind(function(n){var e=n.start().dom().getBoundingClientRect();return 0<e.width||0<e.height?Fn.some(e).map(Ep):Fn.none()})}(o)})})}}),t=c.setSelection.getOrThunk(function(){return function(n,e,t,r){fp(o,n,e,t,r)}}),r=c.clearSelection.getOrThunk(function(){return function(){!function(n){n.getSelection().removeAllRanges()}(o)}});return{body:v(u),doc:v(i),win:v(o),html:v(n),getSelection:l(Sp,a),setSelection:t,clearSelection:r,frame:v(a),onKeyup:kp(c,i,"onKeyup","keyup"),onNodeChanged:kp(c,i,"onNodeChanged","SelectionChange"),onDomChanged:c.onDomChanged,onScrollToCursor:c.onScrollToCursor,onScrollToElement:c.onScrollToElement,onToReading:c.onToReading,onToEditing:c.onToEditing,onToolbarScrollStart:c.onToolbarScrollStart,onTouchContent:c.onTouchContent,onTapContent:c.onTapContent,onTouchToolstrip:c.onTouchToolstrip,getCursorBox:e}})})})}},$p="data-ephox-mobile-fullscreen-style",Wp="position:absolute!important;",Xp="top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;",qp=L().os.isAndroid(),Yp=function(n,e){function t(r){return function(n){var e=Qr(n,"style"),t=e===undefined?"no-styles":e.trim();t!==r&&(Kr(n,$p,t),Kr(n,"style",r))}}var r=function(n,e,t){return Xi(n,function(n){return tn(n,e)},t)}(n,"*"),o=B(r,function(n){return function(n,e){return qi(n,function(n){return tn(n,e)})}(n,"*")}),i=function(n){var e=mi(n,"background-color");return e!==undefined&&""!==e?"background-color:"+e+"!important":"background-color:rgb(255,255,255)!important;"}(e);C(o,t("display:none!important;")),C(r,t(Wp+Xp+i)),t((!0===qp?"":Wp)+Xp+i)(n)},Kp=function(){var n=function(n){return on(n)}("["+$p+"]");C(n,function(n){var e=Qr(n,$p);"no-styles"!==e?Kr(n,"style",e):no(n,"style"),no(n,$p)})},Jp=function(){var e=Ki("head").getOrDie(),n=Ki('meta[name="viewport"]').getOrThunk(function(){var n=Je.fromTag("meta");return Kr(n,"name","viewport"),ft(e,n),n}),t=Qr(n,"content");return{maximize:function(){Kr(n,"content","width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1.0")},restore:function(){t!==undefined&&null!==t&&0<t.length?Kr(n,"content",t):Kr(n,"content","user-scalable=yes")}}},Qp=function(e,n){var t=Jp(),r=wd(),o=wd();return{enter:function(){n.hide(),io(e.container,_i.resolve("fullscreen-maximized")),io(e.container,_i.resolve("android-maximized")),t.maximize(),io(e.body,_i.resolve("android-scroll-reload")),r.set(Gp(e.win,Up.getWin(e.editor).getOrDie("no"))),Up.getActiveApi(e.editor).each(function(n){Yp(e.container,n.body()),o.set(Lg(n,e.toolstrip,e.alloy))})},exit:function(){t.restore(),n.show(),co(e.container,_i.resolve("fullscreen-maximized")),co(e.container,_i.resolve("android-maximized")),Kp(),co(e.body,_i.resolve("android-scroll-reload")),o.clear(),r.clear()}}},Zp=function(n,e){var t=js(pm.sketch({dom:Us('<div aria-hidden="true" class="${prefix}-mask-tap-icon"></div>'),containerBehaviours:Bo([Fi.config({toggleClass:_i.resolve("mask-tap-icon-selected"),toggleOnExecute:!1})])})),r=function(t,r){var o=null;return{cancel:function(){null!==o&&(d.clearTimeout(o),o=null)},throttle:function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];null===o&&(o=d.setTimeout(function(){t.apply(null,n),o=null},r))}}}(n,200);return pm.sketch({dom:Us('<div class="${prefix}-disabled-mask"></div>'),components:[pm.sketch({dom:Us('<div class="${prefix}-content-container"></div>'),components:[Ls.sketch({dom:Us('<div class="${prefix}-content-tap-section"></div>'),components:[t.asSpec()],action:function(n){r.throttle()},buttonBehaviours:Bo([Fi.config({toggleClass:_i.resolve("mask-tap-icon-selected")})])})]})]})},nh=Or([Jt("editor",[Yt("getFrame"),Qt("getBody"),Qt("getDoc"),Qt("getWin"),Qt("getSelection"),Qt("setSelection"),Qt("clearSelection"),Qt("cursorSaver"),Qt("onKeyup"),Qt("onNodeChanged"),Qt("getCursorBox"),Yt("onDomChanged"),tr("onTouchContent",w),tr("onTapContent",w),tr("onTouchToolstrip",w),tr("onScrollToCursor",v({unbind:w})),tr("onScrollToElement",v({unbind:w})),tr("onToEditing",v({unbind:w})),tr("onToReading",v({unbind:w})),tr("onToolbarScrollStart",y)]),Yt("socket"),Yt("toolstrip"),Yt("dropup"),Yt("toolbar"),Yt("container"),Yt("alloy"),or("win",function(n){return an(n.socket).dom().defaultView}),or("body",function(n){return Je.fromDom(n.socket.dom().ownerDocument.body)}),tr("translate",y),tr("setReadOnly",w),tr("readOnlyOnInit",v(!0))]),eh=function(n){var e=Xt("Getting AndroidWebapp schema",nh,n);Gi(e.toolstrip,"width","100%");var t=$m(Zp(function(){e.setReadOnly(e.readOnlyOnInit()),o.enter()},e.translate));e.alloy.add(t);var r={show:function(){e.alloy.add(t)},hide:function(){e.alloy.remove(t)}};ft(e.container,t.element());var o=Qp(e,r);return{setReadOnly:e.setReadOnly,refreshStructure:w,enter:o.enter,exit:o.exit,destroy:w}},th=v([Yt("dom"),tr("shell",!0),mc("toolbarBehaviours",[cg])]),rh=v([rf({name:"groups",overrides:function(n){return{behaviours:Bo([cg.config({})])}}})]),oh=vf({name:"Toolbar",configFields:th(),partFields:rh(),factory:function(e,n,t,r){var o=function(n){return e.shell?Fn.some(n):kc(n,e,"groups")},i=e.shell?{behaviours:[cg.config({})],components:[]}:{behaviours:[],components:n};return{uid:e.uid,dom:e.dom,components:i.components,behaviours:pc(e.toolbarBehaviours,i.behaviours),apis:{setGroups:function(n,e){o(n).fold(function(){throw d.console.error("Toolbar was defined to not be a shell, but no groups container was specified in components"),new Error("Toolbar was defined to not be a shell, but no groups container was specified in components")},function(n){cg.set(n,e)})}},domModification:{attributes:{role:"group"}}}},apis:{setGroups:function(n,e,t){n.setGroups(e,t)}}}),ih=v([Yt("items"),(Mp=["itemSelector"],Jt("markers",de(Mp,Yt))),mc("tgroupBehaviours",[Va])]),uh=v([of({name:"items",unit:"item"})]),ch=vf({name:"ToolbarGroup",configFields:ih(),partFields:uh(),factory:function(n,e,t,r){return{uid:n.uid,dom:n.dom,components:e,behaviours:pc(n.tgroupBehaviours,[Va.config({mode:"flow",selector:n.markers.itemSelector})]),domModification:{attributes:{role:"toolbar"}}}}}),ah="data-"+_i.resolve("horizontal-scroll"),fh={exclusive:function(n,e){return tm(n,"touchmove",function(n){Zi(n.target(),e).filter(Dp).fold(function(){n.raw().preventDefault()},w)})},markAsHorizontal:function(n){Kr(n,ah,"true")}};function sh(){function e(n){var e=!0===n.scrollable?"${prefix}-toolbar-scrollable-group":"";return{dom:Us('<div aria-label="'+n.label+'" class="${prefix}-toolbar-group '+e+'"></div>'),tgroupBehaviours:Bo([lm("adhoc-scrollable-toolbar",!0===n.scrollable?[Do(function(n,e){Gi(n.element(),"overflow-x","auto"),fh.markAsHorizontal(n.element()),xg.register(n.element())})]:[])]),components:[pm.sketch({components:[ch.parts().items({})]})],markers:{itemSelector:"."+_i.resolve("toolbar-group-item")},items:n.items}}function t(){oh.setGroups(r,o.get()),Fi.off(r)}var r=$m(oh.sketch({dom:Us('<div class="${prefix}-toolbar"></div>'),components:[oh.parts().groups({})],toolbarBehaviours:Bo([Fi.config({toggleClass:_i.resolve("context-toolbar"),toggleOnExecute:!1,aria:{mode:"none"}}),Va.config({mode:"cyclic"})]),shell:!0})),n=$m(pm.sketch({dom:{classes:[_i.resolve("toolstrip")]},components:[Wm(r)],containerBehaviours:Bo([Fi.config({toggleClass:_i.resolve("android-selection-context-toolbar"),toggleOnExecute:!1})])})),o=Pn([]);return{wrapper:v(n),toolbar:v(r),createGroups:function(n){return de(n,i(ch.sketch,e))},setGroups:function(n){o.set(n),t()},setContextToolbar:function(n){Fi.on(r),oh.setGroups(r,n)},restoreToolbar:function(){Fi.isOn(r)&&t()},refresh:function(){},focus:function(){Va.focusIn(r)}}}function lh(n,e){cg.append(n,Wm(e))}function dh(n,e){cg.remove(n,e)}function mh(e,n){return n.getAnimationRoot.fold(function(){return e.element()},function(n){return n(e)})}function gh(n){return n.dimension.property}function ph(n,e){return n.dimension.getDimension(e)}function hh(n,e){var t=mh(n,e);Fd(t,[e.shrinkingClass,e.growingClass])}function vh(n,e){co(n.element(),e.openClass),io(n.element(),e.closedClass),Gi(n.element(),gh(e),"0px"),hi(n.element())}function yh(n,e){co(n.element(),e.closedClass),io(n.element(),e.openClass),pi(n.element(),gh(e))}function bh(n,e,t,r){t.setCollapsed(),Gi(n.element(),gh(e),ph(e,n.element())),hi(n.element()),hh(n,e),vh(n,e),e.onStartShrink(n),e.onShrunk(n)}function xh(n,e,t,r){var o=r.getOrThunk(function(){return ph(e,n.element())});t.setCollapsed(),Gi(n.element(),gh(e),o),hi(n.element());var i=mh(n,e);co(i,e.growingClass),io(i,e.shrinkingClass),vh(n,e),e.onStartShrink(n)}function wh(n,e,t){var r=ph(e,n.element());("0px"===r?bh:xh)(n,e,t,Fn.some(r))}function Sh(n,e,t){var r=mh(n,e),o=ao(r,e.shrinkingClass),i=ph(e,n.element());yh(n,e);var u=ph(e,n.element());(o?function(){Gi(n.element(),gh(e),i),hi(n.element())}:function(){vh(n,e)})(),co(r,e.shrinkingClass),io(r,e.growingClass),yh(n,e),Gi(n.element(),gh(e),u),t.setExpanded(),e.onStartGrow(n)}function Th(n,e,t){var r=mh(n,e);return!0===ao(r,e.growingClass)}function Oh(n,e,t){var r=mh(n,e);return!0===ao(r,e.shrinkingClass)}function kh(e,t){var r=$m(pm.sketch({dom:{tag:"div",classes:[_i.resolve("dropup")]},components:[],containerBehaviours:Bo([cg.config({}),_h.config({closedClass:_i.resolve("dropup-closed"),openClass:_i.resolve("dropup-open"),shrinkingClass:_i.resolve("dropup-shrinking"),growingClass:_i.resolve("dropup-growing"),dimension:{property:"height"},onShrunk:function(n){e(),t(),cg.set(n,[])},onGrown:function(n){e(),t()}}),Vi(function(n,e){o(w)})])})),o=function(n){d.window.requestAnimationFrame(function(){n(),_h.shrink(r)})};return{appear:function(n,e,t){!0===_h.hasShrunk(r)&&!1===_h.isTransitioning(r)&&d.window.requestAnimationFrame(function(){e(t),cg.set(r,[n()]),_h.grow(r)})},disappear:o,component:v(r),element:r.element}}function Eh(n){return 8===n.raw().which&&!k(["input","textarea"],q(n.target()))&&!function(n,e,t){return Zi(n,e,t).isSome()}(n.target(),'[contenteditable="true"]')}function Ch(e,n){var t=Xt("Getting GUI events settings",Hh,n),r=L().deviceType.isTouch()?["touchstart","touchmove","touchend","touchcancel","gesturestart"]:["mousedown","mouseup","mouseover","mousemove","mouseout","click"],o=Pg(t),i=de(r.concat(["selectstart","input","contextmenu","change","transitionend","drag","dragstart","dragend","dragenter","dragleave","dragover","drop","keyup"]),function(n){return tm(e,n,function(e){o.fireIfReady(e,n).each(function(n){n&&e.kill()}),t.triggerEvent(n,e)&&e.kill()})}),u=Pn(Fn.none()),c=tm(e,"paste",function(e){o.fireIfReady(e,"paste").each(function(n){n&&e.kill()}),t.triggerEvent("paste",e)&&e.kill(),u.set(Fn.some(d.setTimeout(function(){t.triggerEvent(je(),e)},0)))}),a=tm(e,"keydown",function(n){t.triggerEvent("keydown",n)?n.kill():!0===t.stopBackspace&&Eh(n)&&n.prevent()}),f=function(n,e){return Ph?rm(n,"focus",e):tm(n,"focusin",e)}(e,function(n){t.triggerEvent("focusin",n)&&n.kill()}),s=Pn(Fn.none()),l=function(n,e){return Ph?rm(n,"blur",e):tm(n,"focusout",e)}(e,function(n){t.triggerEvent("focusout",n)&&n.kill(),s.set(Fn.some(d.setTimeout(function(){t.triggerEvent(Ne(),n)},0)))});return{unbind:function(){C(i,function(n){n.unbind()}),a.unbind(),f.unbind(),l.unbind(),c.unbind(),u.get().each(d.clearTimeout),s.get().each(d.clearTimeout)}}}function Dh(n,e){var t=Dt(n,"target").map(function(n){return n()}).getOr(e);return Pn(t)}function Mh(n,r,e,t,o,i){var u=n(r,t),c=function(n,e){var t=Pn(!1),r=Pn(!1);return{stop:function(){t.set(!0)},cut:function(){r.set(!0)},isStopped:t.get,isCut:r.get,event:v(n),setSource:e.set,getSource:e.get}}(e,o);return u.fold(function(){return i.logEventNoHandlers(r,t),zh.complete()},function(e){var t=e.descHandler();return Ed(t)(c),c.isStopped()?(i.logEventStopped(r,e.element(),t.purpose()),zh.stopped()):c.isCut()?(i.logEventCut(r,e.element(),t.purpose()),zh.complete()):fn(e.element()).fold(function(){return i.logNoParent(r,e.element(),t.purpose()),zh.complete()},function(n){return i.logEventResponse(r,e.element(),t.purpose()),zh.resume(n)})})}function Ih(n,e,t){var r=function(n){var e=Pn(!1);return{stop:function(){e.set(!0)},cut:w,isStopped:e.get,isCut:v(!1),event:v(n),setSource:o("Cannot set source of a broadcasted event"),getSource:o("Cannot get source of a broadcasted event")}}(e);return C(n,function(n){var e=n.descHandler();Ed(e)(r)}),r.isStopped()}var Rh,Ah=function(n){return $m(Ls.sketch({dom:Us('<div class="${prefix}-mask-edit-icon ${prefix}-icon"></div>'),action:function(){n.run(function(n){n.setReadOnly(!1)})}}))},Fh=function(){return $m(pm.sketch({dom:Us('<div class="${prefix}-editor-socket"></div>'),components:[],containerBehaviours:Bo([cg.config({})])}))},Bh=function(n,e,t,r){(!0===t?Ho.toAlpha:Ho.toOmega)(r),(t?lh:dh)(n,e)},Vh=/* */Object.freeze({refresh:function(n,e,t){if(t.isExpanded()){pi(n.element(),gh(e));var r=ph(e,n.element());Gi(n.element(),gh(e),r)}},grow:function(n,e,t){t.isExpanded()||Sh(n,e,t)},shrink:function(n,e,t){t.isExpanded()&&wh(n,e,t)},immediateShrink:function(n,e,t){t.isExpanded()&&bh(n,e,t)},hasGrown:function(n,e,t){return t.isExpanded()},hasShrunk:function(n,e,t){return t.isCollapsed()},isGrowing:Th,isShrinking:Oh,isTransitioning:function(n,e,t){return!0===Th(n,e)||!0===Oh(n,e)},toggleGrow:function(n,e,t){(t.isExpanded()?wh:Sh)(n,e,t)},disableTransitions:hh}),Nh=/* */Object.freeze({exhibit:function(n,e){var t=e.expanded;return Ur(t?{classes:[e.openClass],styles:{}}:{classes:[e.closedClass],styles:En(e.dimension.property,"0px")})},events:function(t,r){return Nr([function(n,e){return Hr(n)(e)}(Ae(),function(n,e){e.event().raw().propertyName===t.dimension.property&&(hh(n,t),r.isExpanded()&&pi(n.element(),t.dimension.property),(r.isExpanded()?t.onGrown:t.onShrunk)(n))})])}}),jh=[Yt("closedClass"),Yt("openClass"),Yt("shrinkingClass"),Yt("growingClass"),Qt("getAnimationRoot"),Ko("onShrunk"),Ko("onStartShrink"),Ko("onGrown"),Ko("onStartGrow"),tr("expanded",!1),Kt("dimension",qt("property",{width:[ni("property","width"),ni("getDimension",function(n){return Mf(n)+"px"})],height:[ni("property","height"),ni("getDimension",function(n){return Wi(n)+"px"})]}))],_h=qr({fields:jh,name:"sliding",active:Nh,apis:Vh,state:/* */Object.freeze({init:function(n){var e=Pn(n.expanded);return Fo({isExpanded:function(){return!0===e.get()},isCollapsed:function(){return!1===e.get()},setCollapsed:l(e.set,!1),setExpanded:l(e.set,!0),readState:function(){return"expanded: "+e.get()}})}})}),Ph=L().browser.isFirefox(),Hh=Pt([(Rh="triggerEvent",Kt(Rh,Rr)),tr("stopBackspace",!0)]),zh=yt([{stopped:[]},{resume:["element"]},{complete:[]}]),Lh=function(e,t,r,n,o,i){return Mh(e,t,r,n,o,i).fold(function(){return!0},function(n){return Lh(e,t,r,n,o,i)},function(){return!1})},Gh=function(n,e,t,r,o){var i=Dh(t,r);return Lh(n,e,t,r,i,o)},Uh=J("element","descHandler"),$h=function(n,e){return{id:v(n),descHandler:v(e)}};function Wh(){var i={};return{registerId:function(r,o,n){Nn(n,function(n,e){var t=i[e]!==undefined?i[e]:{};t[o]=zm(n,r),i[e]=t})},unregisterId:function(t){Nn(i,function(n,e){n.hasOwnProperty(t)&&delete n[t]})},filterByType:function(n){return Dt(i,n).map(function(n){return _n(n,function(n,e){return $h(e,n)})}).getOr([])},find:function(n,e,t){var r=Ct(e)(i);return ko(t,function(n){return function(t,r){return gf(r).fold(function(){return Fn.none()},function(n){var e=Ct(n);return t.bind(e).map(function(n){return Uh(r,n)})})}(r,n)},n)}}}function Xh(){function r(n){var e=n.element();return gf(e).fold(function(){return function(n,e){var t=yc(lf+n);return mf(e,t),t}("uid-",n.element())},function(n){return n})}var o=Wh(),i={},u=function(n){gf(n.element()).each(function(n){delete i[n],o.unregisterId(n)})};return{find:function(n,e,t){return o.find(n,e,t)},filter:function(n){return o.filterByType(n)},register:function(n){var e=r(n);Mn(i,e)&&function(n,e){var t=i[e];if(t!==n)throw new Error('The tagId "'+e+'" is already used by: '+bo(t.element())+"\nCannot use it for: "+bo(n.element())+"\nThe conflicting element is"+(K(t.element())?" ":" not ")+"already in the DOM");u(n)}(n,e);var t=[n];o.registerId(t,e,n.events()),i[e]=n},unregister:u,getById:function(n){return Ct(n)(i)}}}var qh=function(t){function r(e){return fn(t.element()).fold(function(){return!0},function(n){return cn(e,n)})}function o(n,e){return u.find(r,n,e)}function i(t){var n=u.filter(_e());C(n,function(n){var e=n.descHandler();Ed(e)(t)})}var u=Xh(),n=Ch(t.element(),{triggerEvent:function(e,t){return qo(e,t.target(),function(n){return function(n,e,t,r){var o=t.target();return Gh(n,e,t,o,r)}(o,e,t,n)})}}),c={debugInfo:v("real"),triggerEvent:function(e,t,r){qo(e,t,function(n){Gh(o,e,r,t,n)})},triggerFocus:function(e,t){gf(e).fold(function(){so(e)},function(n){qo(Ve(),e,function(n){!function(n,e,t,r,o){var i=Dh(t,r);Mh(n,e,t,r,i,o)}(o,Ve(),{originator:v(t),kill:w,prevent:w,target:v(e)},e,n)})})},triggerEscape:function(n,e){c.triggerEvent("keydown",n.element(),e.event())},getByUid:function(n){return g(n)},getByDom:function(n){return p(n)},build:$m,addToGui:function(n){f(n)},removeFromGui:function(n){s(n)},addToWorld:function(n){e(n)},removeFromWorld:function(n){a(n)},broadcast:function(n){l(n)},broadcastOn:function(n,e){d(n,e)},broadcastEvent:function(n,e){m(n,e)},isConnected:v(!0)},e=function(n){n.connect(c),tt(n.element())||(u.register(n),C(n.components(),e),c.triggerEvent(Ge(),n.element(),{target:v(n.element())}))},a=function(n){tt(n.element())||(C(n.components(),a),u.unregister(n)),n.disconnect()},f=function(n){!function(n,e){mt(n,e,ft)}(t,n)},s=function(n){yn(n)},l=function(n){i({universal:v(!0),data:v(n)})},d=function(n,e){i({universal:v(!1),channels:v(n),data:v(e)})},m=function(n,e){var t=u.filter(n);return Ih(t,e)},g=function(n){return u.getById(n).fold(function(){return vt.error(new Error('Could not find component with uid: "'+n+'" in system.'))},vt.value)},p=function(n){var e=gf(n).getOr("not found");return g(e)};return e(t),{root:v(t),element:t.element,destroy:function(){n.unbind(),st(t.element())},add:f,remove:s,getByUid:g,getByDom:p,addToWorld:e,removeFromWorld:a,broadcast:l,broadcastOn:d,broadcastEvent:m}},Yh=v(_i.resolve("readonly-mode")),Kh=v(_i.resolve("edit-mode"));function Jh(n){var e=$m(pm.sketch({dom:{classes:[_i.resolve("outer-container")].concat(n.classes)},containerBehaviours:Bo([Ho.config({alpha:Yh(),omega:Kh()})])}));return qh(e)}var Qh=function(n,e){var t=Je.fromTag("input");di(t,{opacity:"0",position:"absolute",top:"-1000px",left:"-1000px"}),ft(n,t),so(t),e(t),st(t)},Zh=function(n){var e=n.getSelection();if(0<e.rangeCount){var t=e.getRangeAt(0),r=n.document.createRange();r.setStart(t.startContainer,t.startOffset),r.setEnd(t.endContainer,t.endOffset),e.removeAllRanges(),e.addRange(r)}},nv=function(n,e){mo().each(function(n){cn(n,e)||lo(n)}),n.focus(),so(Je.fromDom(n.document.body)),Zh(n)},ev={stubborn:function(n,e,t,r){function o(){nv(e,r)}var i=tm(t,"keydown",function(n){k(["input","textarea"],q(n.target()))||o()});return{toReading:function(){Qh(n,lo)},toEditing:o,onToolbarTouch:function(){},destroy:function(){i.unbind()}}},timid:function(n,e,t,r){function o(){lo(r)}return{toReading:function(){o()},toEditing:function(){nv(e,r)},onToolbarTouch:function(){o()},destroy:w}}},tv=function(e,r,t,o,n){function i(){r.run(function(n){n.refreshSelection()})}function u(n,e){var t=n-o.dom().scrollTop;r.run(function(n){n.scrollIntoView(t,t+e)})}function c(){r.run(function(n){n.clearSelection()})}function a(){e.getCursorBox().each(function(n){u(n.top(),n.height())}),r.run(function(n){n.syncHeight()})}var f=Hg(e),s=Cp(a,300),l=[e.onKeyup(function(){c(),s.throttle()}),e.onNodeChanged(i),e.onDomChanged(s.throttle),e.onDomChanged(i),e.onScrollToCursor(function(n){n.preventDefault(),s.throttle()}),e.onScrollToElement(function(n){n.element(),u(r,o)}),e.onToEditing(function(){r.run(function(n){n.toEditing()})}),e.onToReading(function(){r.run(function(n){n.toReading()})}),tm(e.doc(),"touchend",function(n){cn(e.html(),n.target())||cn(e.body(),n.target())}),tm(t,"transitionend",function(n){"height"===n.raw().propertyName&&function(){var e=Wi(t);r.run(function(n){n.setViewportOffset(e)}),i(),a()}()}),rm(t,"touchstart",function(n){r.run(function(n){n.highlightSelection()}),function(e){r.run(function(n){n.onToolbarTouch(e)})}(n),e.onTouchToolstrip()}),tm(e.body(),"touchstart",function(n){c(),e.onTouchContent(),f.fireTouchstart(n)}),f.onTouchmove(),f.onTouchend(),tm(e.body(),"click",function(n){n.kill()}),tm(t,"touchmove",function(){e.onToolbarScrollStart()})];return{destroy:function(){C(l,function(n){n.unbind()})}}};var rv,ov,iv,uv,cv={},av={exports:cv};rv=undefined,ov=cv,iv=av,uv=undefined,function(n){"object"==typeof ov&&void 0!==iv?iv.exports=n():"function"==typeof rv&&rv.amd?rv([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EphoxContactWrapper=n()}(function(){return function s(i,u,c){function a(e,n){if(!u[e]){if(!i[e]){var t="function"==typeof uv&&uv;if(!n&&t)return t(e,!0);if(f)return f(e,!0);var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}var o=u[e]={exports:{}};i[e][0].call(o.exports,function(n){return a(i[e][1][n]||n)},o,o.exports,s,i,u,c)}return u[e].exports}for(var f="function"==typeof uv&&uv,n=0;n<c.length;n++)a(c[n]);return a}({1:[function(n,e,t){var r,o,i=e.exports={};function u(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function a(n){if(r===setTimeout)return setTimeout(n,0);if((r===u||!r)&&setTimeout)return r=setTimeout,setTimeout(n,0);try{return r(n,0)}catch(e){try{return r.call(null,n,0)}catch(e){return r.call(this,n,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:u}catch(n){r=u}try{o="function"==typeof clearTimeout?clearTimeout:c}catch(n){o=c}}();var f,s=[],l=!1,d=-1;function m(){l&&f&&(l=!1,f.length?s=f.concat(s):d=-1,s.length&&g())}function g(){if(!l){var n=a(m);l=!0;for(var e=s.length;e;){for(f=s,s=[];++d<e;)f&&f[d].run();d=-1,e=s.length}f=null,l=!1,function t(n){if(o===clearTimeout)return clearTimeout(n);if((o===c||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(n);try{return o(n)}catch(e){try{return o.call(null,n)}catch(e){return o.call(this,n)}}}(n)}}function p(n,e){this.fun=n,this.array=e}function h(){}i.nextTick=function(n){var e=new Array(arguments.length-1);if(1<arguments.length)for(var t=1;t<arguments.length;t++)e[t-1]=arguments[t];s.push(new p(n,e)),1!==s.length||l||a(g)},p.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=h,i.addListener=h,i.once=h,i.off=h,i.removeListener=h,i.removeAllListeners=h,i.emit=h,i.prependListener=h,i.prependOnceListener=h,i.listeners=function(n){return[]},i.binding=function(n){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(n){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],2:[function(n,l,e){(function(e){function r(){}function i(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof n)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],s(n,this)}function o(r,o){for(;3===r._state;)r=r._value;0!==r._state?(r._handled=!0,i._immediateFn(function(){var n=1===r._state?o.onFulfilled:o.onRejected;if(null!==n){var e;try{e=n(r._value)}catch(t){return void c(o.promise,t)}u(o.promise,e)}else(1===r._state?u:c)(o.promise,r._value)})):r._deferreds.push(o)}function u(n,e){try{if(e===n)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if(e instanceof i)return n._state=3,n._value=e,void a(n);if("function"==typeof t)return void s(function r(n,e){return function(){n.apply(e,arguments)}}(t,e),n)}n._state=1,n._value=e,a(n)}catch(o){c(n,o)}}function c(n,e){n._state=2,n._value=e,a(n)}function a(n){2===n._state&&0===n._deferreds.length&&i._immediateFn(function(){n._handled||i._unhandledRejectionFn(n._value)});for(var e=0,t=n._deferreds.length;e<t;e++)o(n,n._deferreds[e]);n._deferreds=null}function f(n,e,t){this.onFulfilled="function"==typeof n?n:null,this.onRejected="function"==typeof e?e:null,this.promise=t}function s(n,e){var t=!1;try{n(function(n){t||(t=!0,u(e,n))},function(n){t||(t=!0,c(e,n))})}catch(r){if(t)return;t=!0,c(e,r)}}var n,t;n=this,t=setTimeout,i.prototype["catch"]=function(n){return this.then(null,n)},i.prototype.then=function(n,e){var t=new this.constructor(r);return o(this,new f(n,e,t)),t},i.all=function(n){var a=Array.prototype.slice.call(n);return new i(function(o,i){if(0===a.length)return o([]);var u=a.length;function c(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var t=n.then;if("function"==typeof t)return void t.call(n,function(n){c(e,n)},i)}a[e]=n,0==--u&&o(a)}catch(r){i(r)}}for(var n=0;n<a.length;n++)c(n,a[n])})},i.resolve=function(e){return e&&"object"==typeof e&&e.constructor===i?e:new i(function(n){n(e)})},i.reject=function(t){return new i(function(n,e){e(t)})},i.race=function(o){return new i(function(n,e){for(var t=0,r=o.length;t<r;t++)o[t].then(n,e)})},i._immediateFn="function"==typeof e?function(n){e(n)}:function(n){t(n,0)},i._unhandledRejectionFn=function(n){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",n)},i._setImmediateFn=function(n){i._immediateFn=n},i._setUnhandledRejectionFn=function(n){i._unhandledRejectionFn=n},void 0!==l&&l.exports?l.exports=i:n.Promise||(n.Promise=i)}).call(this,n("timers").setImmediate)},{timers:3}],3:[function(a,n,f){(function(n,e){var r=a("process/browser.js").nextTick,t=Function.prototype.apply,o=Array.prototype.slice,i={},u=0;function c(n,e){this._id=n,this._clearFn=e}f.setTimeout=function(){return new c(t.call(setTimeout,window,arguments),clearTimeout)},f.setInterval=function(){return new c(t.call(setInterval,window,arguments),clearInterval)},f.clearTimeout=f.clearInterval=function(n){n.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(window,this._id)},f.enroll=function(n,e){clearTimeout(n._idleTimeoutId),n._idleTimeout=e},f.unenroll=function(n){clearTimeout(n._idleTimeoutId),n._idleTimeout=-1},f._unrefActive=f.active=function(n){clearTimeout(n._idleTimeoutId);var e=n._idleTimeout;0<=e&&(n._idleTimeoutId=setTimeout(function(){n._onTimeout&&n._onTimeout()},e))},f.setImmediate="function"==typeof n?n:function(n){var e=u++,t=!(arguments.length<2)&&o.call(arguments,1);return i[e]=!0,r(function(){i[e]&&(t?n.apply(null,t):n.call(null),f.clearImmediate(e))}),e},f.clearImmediate="function"==typeof e?e:function(n){delete i[n]}}).call(this,a("timers").setImmediate,a("timers").clearImmediate)},{"process/browser.js":1,timers:3}],4:[function(n,e,t){var r=n("promise-polyfill"),o="undefined"!=typeof window?window:Function("return this;")();e.exports={boltExport:o.Promise||r}},{"promise-polyfill":2}]},{},[4])(4)});function fv(n){d.setTimeout(function(){throw n},0)}function sv(n,e,t){return Math.abs(n-e)<=t?Fn.none():n<e?Fn.some(n+t):Fn.some(n-t)}function lv(e,t){return wo([{width:320,height:480,keyboard:{portrait:300,landscape:240}},{width:320,height:568,keyboard:{portrait:300,landscape:240}},{width:375,height:667,keyboard:{portrait:305,landscape:240}},{width:414,height:736,keyboard:{portrait:320,landscape:240}},{width:768,height:1024,keyboard:{portrait:320,landscape:400}},{width:1024,height:1366,keyboard:{portrait:380,landscape:460}}],function(n){return function(n,e){return n?Fn.some(e):Fn.none()}(e<=n.width&&t<=n.height,n.keyboard)}).getOr({portrait:t/5,landscape:e/4})}function dv(n){var e=Vg(n).isPortrait(),t=function(n){return lv(n.screen.width,n.screen.height)}(n),r=e?t.portrait:t.landscape;return(e?n.screen.height:n.screen.width)-n.innerHeight>r?0:r}function mv(n,e){var t=an(n).dom().defaultView;return Wi(n)+Wi(e)-dv(t)}function gv(n){return Gg(n,Av)}function pv(n,e){var t=function(n){return Qr(n,Fv)}(n);return Rv.fixed(n,t,e)}function hv(n,e){return Rv.scroller(n,e)}function vv(n){var e=gv(n);return("true"===Qr(n,Bv)?hv:pv)(n,e)}function yv(n,e,t){var r=an(n).dom().defaultView.innerHeight;return Kr(n,Vv,r+"px"),r-e-t}function bv(n){var e=gi(n,"top").getOr("0");return parseInt(e,10)}function xv(n){return parseInt(n.dom().scrollTop,10)}function wv(n,e){var t=e+_v(n)+"px";Gi(n,"top",t)}var Sv=av.exports.boltExport,Tv=function(n){var t=Fn.none(),e=[],r=function(n){o()?u(n):e.push(n)},o=function(){return t.isSome()},i=function(n){C(n,u)},u=function(e){t.each(function(n){d.setTimeout(function(){e(n)},0)})};return n(function(n){t=Fn.some(n),i(e),e=[]}),{get:r,map:function(t){return Tv(function(e){r(function(n){e(t(n))})})},isReady:o}},Ov={nu:Tv,pure:function(e){return Tv(function(n){n(e)})}},kv=function(t){function n(n){t().then(n,fv)}return{map:function(n){return kv(function(){return t().then(n)})},bind:function(e){return kv(function(){return t().then(function(n){return e(n).toPromise()})})},anonBind:function(n){return kv(function(){return t().then(function(){return n.toPromise()})})},toLazy:function(){return Ov.nu(n)},toCached:function(){var n=null;return kv(function(){return null===n&&(n=t()),n})},toPromise:t,get:n}},Ev=function(n){return kv(function(){return new Sv(n)})},Cv=function(n){return kv(function(){return Sv.resolve(n)})},Dv=function(){var f=null;return{animate:function(r,o,n,i,e,t){function u(n){c=!0,e(n)}var c=!1;Bg.clearInterval(f);function a(n){Bg.clearInterval(f),u(n)}f=Bg.setInterval(function(){var t=r();sv(t,o,n).fold(function(){Bg.clearInterval(f),u(o)},function(n){if(i(n,a),!c){var e=r();(e!==n||Math.abs(e-o)>Math.abs(t-o))&&(Bg.clearInterval(f),u(o))}})},t)}}},Mv=mv,Iv=function(n,e,t){var r=mv(e,t),o=Wi(e)+Wi(t)-r;Gi(n,"padding-bottom",o+"px")},Rv=yt([{fixed:["element","property","offsetY"]},{scroller:["element","offsetY"]}]),Av="data-"+_i.resolve("position-y-fixed"),Fv="data-"+_i.resolve("y-property"),Bv="data-"+_i.resolve("scrolling"),Vv="data-"+_i.resolve("last-window-height"),Nv=function(n){var e=Yi(n,"["+Av+"]");return de(e,vv)},jv=function(r,o,i,u){function n(){var n=t.innerHeight;return function(n){return Gg(n,Vv)}(r)<n}function e(){if(d){var n=Wi(i),e=Wi(u),t=yv(r,n,e);Kr(r,Av,n+"px"),Gi(r,"height",t+"px"),Iv(o,r,u)}}var t=an(r).dom().defaultView,c=function(n){var e=Qr(n,"style");di(n,{position:"absolute",top:"0px"}),Kr(n,Av,"0px"),Kr(n,Fv,"top");return{restore:function(){Kr(n,"style",e||""),no(n,Av),no(n,Fv)}}}(i),a=Wi(i),f=Wi(u),s=function(n,e,t){var r=Qr(t,"style");xg.register(t),di(t,{position:"absolute",height:e+"px",width:"100%",top:n+"px"}),Kr(t,Av,n+"px"),Kr(t,Bv,"true"),Kr(t,Fv,"top");return{restore:function(){xg.deregister(t),Kr(t,"style",r||""),no(t,Av),no(t,Bv),no(t,Fv)}}}(a,yv(r,a,f),r),l=function(n){var e=Qr(n,"style");di(n,{position:"absolute",bottom:"0px"}),Kr(n,Av,"0px"),Kr(n,Fv,"bottom");return{restore:function(){Kr(n,"style",e||""),no(n,Av),no(n,Fv)}}}(u),d=!0;return Iv(o,r,u),{setViewportOffset:function(n){Kr(r,Av,n+"px"),e()},isExpanding:n,isShrinking:m(n),refresh:e,restore:function(){d=!1,c.restore(),s.restore(),l.restore()}}},_v=gv,Pv=Dv(),Hv="data-"+_i.resolve("last-scroll-top"),zv=function(t,r,o){return Ev(function(n){var e=l(xv,t);Pv.animate(e,r,15,function(n){t.dom().scrollTop=n,Gi(t,"top",bv(t)+15+"px")},function(){t.dom().scrollTop=r,Gi(t,"top",o+"px"),n(r)},10)})},Lv=function(o,i){return Ev(function(n){var e=l(xv,o);Kr(o,Hv,e());var t=Math.abs(i-e()),r=Math.ceil(t/10);Pv.animate(e,i,r,function(n,e){Gg(o,Hv)!==o.dom().scrollTop?e(o.dom().scrollTop):(o.dom().scrollTop=n,Kr(o,Hv,n))},function(){o.dom().scrollTop=i,Kr(o,Hv,i),n(i)},10)})},Gv=function(i,u){return Ev(function(n){function e(n){Gi(i,"top",n+"px")}var t=l(bv,i),r=Math.abs(u-t()),o=Math.ceil(r/10);Pv.animate(t,u,o,e,function(){e(u),n(u)},10)})},Uv=function(e,t,r){var o=an(e).dom().defaultView;return Ev(function(n){wv(e,r),wv(t,r),o.scrollTo(0,r),n(r)})};function $v(i,n){return n(function(t){var r=[],o=0;0===i.length?t([]):C(i,function(n,e){n.get(function(e){return function(n){r[e]=n,++o>=i.length&&t(r)}}(e))})})}function Wv(n,r){return n.fold(function(n,e,t){return function(n,e,t,r){return Gi(n,e,t+r+"px"),Cv(r)}(n,e,r,t)},function(n,e){return function(n,e,t){var r=e+t,o=gi(n,"top").getOr(t),i=r-parseInt(o,10),u=n.dom().scrollTop+i;return zv(n,u,r)}(n,r,e)})}function Xv(e,t,n,r,o,i){var u=function f(t){var r=Pn(Ov.pure({}));return{start:function(e){var n=Ov.nu(function(n){return t(e).get(n)});r.set(n)},idle:function(n){r.get().get(function(){n()})}}}(function(n){return Uv(e,t,n)}),c=Cp(function(){u.idle(function(){Yv(n,r.pageYOffset).get(function(){(function(){var n=Hp(i);return Fn.from(n[0]).bind(function(n){var e=n.top()-t.dom().scrollTop;return e>r.innerHeight+5||e<-5?Fn.some({top:v(e),bottom:v(e+n.height())}):Fn.none()})})().each(function(n){t.dom().scrollTop=t.dom().scrollTop+n.top()}),u.start(0),o.refresh()})})},1e3),a=tm(Je.fromDom(r),"scroll",function(){r.pageYOffset<0||c.throttle()});return Yv(n,r.pageYOffset).get(y),{unbind:a.unbind}}var qv=function(n,e,t,r,o){var i=Mv(e,t),u=l(Zh,n);i<r||i<o?Lv(e,e.dom().scrollTop-i+o).get(u):r<0&&Lv(e,e.dom().scrollTop+r).get(u)},Yv=function(n,e){var t=Nv(n);return function(n){return $v(n,Ev)}(de(t,function(n){return Wv(n,e)}))},Kv=function(n){var t=n.cWin(),e=n.ceBody(),r=n.socket(),o=n.toolstrip(),i=n.toolbar(),u=n.contentElement(),c=n.keyboardType(),a=n.outerWindow(),f=n.dropup(),s=jv(r,e,o,f),l=c(n.outerBody(),t,rt(),u,o,i),d=Ng(a,{onChange:w,onReady:s.refresh});d.onAdjustment(function(){s.refresh()});var m=tm(Je.fromDom(a),"resize",function(){s.isExpanding()&&s.refresh()}),g=Xv(o,r,n.outerBody(),a,s,t),p=function v(t,e){var n=t.document,r=Je.fromTag("div");function o(n){var e=Je.fromTag("span");return Ad(e,[_i.resolve("layer-editor"),_i.resolve("unfocused-selection")]),di(e,{left:n.left()+"px",top:n.top()+"px",width:n.width()+"px",height:n.height()+"px"}),e}io(r,_i.resolve("unfocused-selections")),ft(Je.fromDom(n.documentElement),r);var i=tm(r,"touchstart",function(n){n.prevent(),nv(t,e),u()}),u=function(){pn(r)};return{update:function(){u();var n=Hp(t),e=de(n,o);gn(r,e)},isActive:function(){return 0<at(r).length},destroy:function(){i.unbind(),st(r)},clear:u}}(t,u),h=function(){p.clear()};return{toEditing:function(){l.toEditing(),h()},toReading:function(){l.toReading()},onToolbarTouch:function(n){l.onToolbarTouch(n)},refreshSelection:function(){p.isActive()&&p.update()},clearSelection:h,highlightSelection:function(){p.update()},scrollIntoView:function(n,e){qv(t,r,f,n,e)},updateToolbarPadding:w,setViewportOffset:function(n){s.setViewportOffset(n),Gv(r,n).get(y)},syncHeight:function(){Gi(u,"height",u.dom().contentWindow.document.body.scrollHeight+"px")},refreshStructure:s.refresh,destroy:function(){s.restore(),d.destroy(),g.unbind(),m.unbind(),l.destroy(),p.destroy(),Qh(rt(),lo)}}},Jv=function(r,n){var o=Jp(),i=Sd(),u=Sd(),c=wd(),a=wd();return{enter:function(){n.hide();var t=Je.fromDom(d.document);Up.getActiveApi(r.editor).each(function(n){i.set({socketHeight:gi(r.socket,"height"),iframeHeight:gi(n.frame(),"height"),outerScroll:d.document.body.scrollTop}),u.set({exclusives:fh.exclusive(t,"."+xg.scrollable())}),io(r.container,_i.resolve("fullscreen-maximized")),Yp(r.container,n.body()),o.maximize(),Gi(r.socket,"overflow","scroll"),Gi(r.socket,"-webkit-overflow-scrolling","touch"),so(n.body());var e=nn(["cWin","ceBody","socket","toolstrip","toolbar","dropup","contentElement","cursor","keyboardType","isScrolling","outerWindow","outerBody"],[]);c.set(Kv(e({cWin:n.win(),ceBody:n.body(),socket:r.socket,toolstrip:r.toolstrip,toolbar:r.toolbar,dropup:r.dropup.element(),contentElement:n.frame(),cursor:w,outerBody:r.body,outerWindow:r.win,keyboardType:ev.stubborn,isScrolling:function(){return u.get().exists(function(n){return n.socket.isScrolling()})}}))),c.run(function(n){n.syncHeight()}),a.set(tv(n,c,r.toolstrip,r.socket,r.dropup))})},refreshStructure:function(){c.run(function(n){n.refreshStructure()})},exit:function(){o.restore(),a.clear(),c.clear(),n.show(),i.on(function(n){n.socketHeight.each(function(n){Gi(r.socket,"height",n)}),n.iframeHeight.each(function(n){Gi(r.editor.getFrame(),"height",n)}),d.document.body.scrollTop=n.scrollTop}),i.clear(),u.on(function(n){n.exclusives.unbind()}),u.clear(),co(r.container,_i.resolve("fullscreen-maximized")),Kp(),xg.deregister(r.toolbar),pi(r.socket,"overflow"),pi(r.socket,"-webkit-overflow-scrolling"),lo(r.editor.getFrame()),Up.getActiveApi(r.editor).each(function(n){n.clearSelection()})}}},Qv=function(n){var e=Xt("Getting IosWebapp schema",nh,n);Gi(e.toolstrip,"width","100%"),Gi(e.container,"position","relative");var t=$m(Zp(function(){e.setReadOnly(e.readOnlyOnInit()),o.enter()},e.translate));e.alloy.add(t);var r={show:function(){e.alloy.add(t)},hide:function(){e.alloy.remove(t)}},o=Jv(e,r);return{setReadOnly:e.setReadOnly,refreshStructure:o.refreshStructure,enter:o.enter,exit:o.exit,destroy:w}};function Zv(n,e,t){n.system().broadcastOn([Uo.formatChanged()],{command:e,state:t})}function ny(m){return{getNotificationManagerImpl:function(){return{open:v({progressBar:{value:w},close:w,text:w,getEl:v(null),moveTo:w,moveRel:w,settings:{}}),close:w,reposition:w,getArgs:v({})}},renderUI:function(){var n=m.getElement(),e=ty(m);!1===function(n){return!1===n.settings.skin}(m)?(m.contentCSS.push(e.content),zo.DOM.styleSheetLoader.load(e.ui,oy(m))):oy(m)();function t(){m.fire("ScrollIntoView")}var f=L().os.isAndroid()?function c(n){var e=Jh({classes:[_i.resolve("android-container")]}),t=sh(),r=wd(),o=Ah(r),i=Fh(),u=kh(w,n);return e.add(t.wrapper()),e.add(i),e.add(u.component()),{system:v(e),element:e.element,init:function(n){r.set(eh(n))},exit:function(){r.run(function(n){n.exit(),cg.remove(i,o)})},setToolbarGroups:function(n){var e=t.createGroups(n);t.setGroups(e)},setContextToolbar:function(n){var e=t.createGroups(n);t.setContextToolbar(e)},focusToolbar:function(){t.focus()},restoreToolbar:function(){t.restoreToolbar()},updateMode:function(n){Bh(i,o,n,e.root())},socket:v(i),dropup:v(u)}}(t):function a(n){var e=Jh({classes:[_i.resolve("ios-container")]}),t=sh(),r=wd(),o=Ah(r),i=Fh(),u=kh(function(){r.run(function(n){n.refreshStructure()})},n);return e.add(t.wrapper()),e.add(i),e.add(u.component()),{system:v(e),element:e.element,init:function(n){r.set(Qv(n))},exit:function(){r.run(function(n){cg.remove(i,o),n.exit()})},setToolbarGroups:function(n){var e=t.createGroups(n);t.setGroups(e)},setContextToolbar:function(n){var e=t.createGroups(n);t.setContextToolbar(e)},focusToolbar:function(){t.focus()},restoreToolbar:function(){t.restoreToolbar()},updateMode:function(n){Bh(i,o,n,e.root())},socket:v(i),dropup:v(u)}}(t);!function(n,e){gt(n,e,dn)}(Je.fromDom(n),f.system());function s(n,e,t,r){!1===r&&m.selection.collapse();var o=i(n,e,t);f.setToolbarGroups(!0===r?o.readOnly:o.main),m.setMode(!0===r?"readonly":"design"),m.fire(!0===r?iy():uy()),f.updateMode(r)}function l(n,e){return m.on(n,e),{unbind:function(){m.off(n)}}}var r=n.ownerDocument.defaultView,d=Ng(r,{onChange:function(){f.system().broadcastOn([Uo.orientationChanged()],{width:jg(r)})},onReady:w}),i=function(n,e,t){var r=n.get();return{readOnly:r.backToMask.concat(e.get()),main:r.backToMask.concat(t.get())}};return m.on("init",function(){f.init({editor:{getFrame:function(){return Je.fromDom(m.contentAreaContainer.querySelector("iframe"))},onDomChanged:function(){return{unbind:w}},onToReading:function(n){return l(iy(),n)},onToEditing:function(n){return l(uy(),n)},onScrollToCursor:function(e){m.on("ScrollIntoView",function(n){e(n)});return{unbind:function(){m.off("ScrollIntoView"),d.destroy()}}},onTouchToolstrip:function(){n()},onTouchContent:function(){(function(n){return go(n).bind(function(n){return f.system().getByDom(n).toOption()})})(Je.fromDom(m.editorContainer.querySelector("."+_i.resolve("toolbar")))).each($),f.restoreToolbar(),n()},onTapContent:function(n){var e=n.target();if("img"===q(e))m.selection.select(e.dom()),n.kill();else if("a"===q(e)){f.system().getByDom(Je.fromDom(m.editorContainer)).each(function(n){Ho.isAlpha(n)&&Go(e.dom())})}}},container:Je.fromDom(m.editorContainer),socket:Je.fromDom(m.contentAreaContainer),toolstrip:Je.fromDom(m.editorContainer.querySelector("."+_i.resolve("toolstrip"))),toolbar:Je.fromDom(m.editorContainer.querySelector("."+_i.resolve("toolbar"))),dropup:f.dropup(),alloy:f.system(),translate:w,setReadOnly:function(n){s(a,c,u,n)},readOnlyOnInit:function(){return!1}});var n=function(){f.dropup().disappear(function(){f.system().broadcastOn([Uo.dropupDismissed()],{})})},e={label:"The first group",scrollable:!1,items:[Ws.forToolbar("back",function(){m.selection.collapse(),f.exit()},{},m)]},t={label:"Back to read only",scrollable:!1,items:[Ws.forToolbar("readonly-back",function(){s(a,c,u,!0)},{},m)]},r=Ig(f,m),o=Rg(m.settings,r),i={label:"The extra group",scrollable:!1,items:[]},u=Pn([{label:"the action group",scrollable:!0,items:o},i]),c=Pn([{label:"The read only mode group",scrollable:!0,items:[]},i]),a=Pn({backToMask:[e],backToReadOnly:[t]});ry(f,m)}),m.on("remove",function(){f.exit()}),m.on("detach",function(){!function(e){var n=at(e.element());C(n,function(n){e.getByDom(n).each(lt)}),st(e.element())}(f.system()),f.system().destroy()}),{iframeContainer:f.socket().element().dom(),editorContainer:f.element().dom()}}}}var ey=tinymce.util.Tools.resolve("tinymce.EditorManager"),ty=function(n){var e=Dt(n.settings,"skin_url").fold(function(){return ey.baseURL+"/skins/ui/oxide"},function(n){return n});return{content:e+"/content.mobile.min.css",ui:e+"/skin.mobile.min.css"}},ry=function(r,n){var e=Bn(n.formatter.get());C(e,function(e){n.formatter.formatChanged(e,function(n){Zv(r,e,n)})}),C(["ul","ol"],function(t){n.selection.selectorChanged(t,function(n,e){Zv(r,t,n)})})},oy=(v(["x-small","small","medium","large","x-large"]),function(n){function e(){n._skinLoaded=!0,n.fire("SkinLoaded")}return function(){n.initialized?e():n.on("init",e)}}),iy=v("toReading"),uy=v("toEditing");!function ay(){Lo.add("mobile",ny)}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(v){"use strict";function Z(){}function i(e,o){return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return e(o.apply(null,n))}}function l(n){return n}var nn=function(n){return function(){return n}};function d(o){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=r.concat(n);return o.apply(null,e)}}function b(e){return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return!e.apply(null,n)}}function r(n){return function(){throw new Error(n)}}var u=nn(!1),a=nn(!0),n=tinymce.util.Tools.resolve("tinymce.ThemeManager"),N=function(){return(N=Object.assign||function(n){for(var t,e=1,o=arguments.length;e<o;e++)for(var r in t=arguments[e])Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}).apply(this,arguments)};function c(n,t){var e={};for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&t.indexOf(o)<0&&(e[o]=n[o]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(n);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(n,o[r])&&(e[o[r]]=n[o[r]])}return e}function g(){for(var n=0,t=0,e=arguments.length;t<e;t++)n+=arguments[t].length;var o=Array(n),r=0;for(t=0;t<e;t++)for(var i=arguments[t],u=0,a=i.length;u<a;u++,r++)o[r]=i[u];return o}function t(){return s}var e,s=(e={fold:function(n,t){return n()},is:u,isSome:u,isNone:a,getOr:m,getOrThunk:f,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:nn(null),getOrUndefined:nn(undefined),or:m,orThunk:f,map:t,each:Z,bind:t,exists:u,forall:a,filter:t,equals:o,equals_:o,toArray:function(){return[]},toString:nn("none()")},Object.freeze&&Object.freeze(e),e);function o(n){return n.isNone()}function f(n){return n()}function m(n){return n}function p(t){return function(n){return function(n){if(null===n)return"null";var t=typeof n;return"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t}(n)===t}}function h(n,t){if(fn(n)){for(var e=0,o=n.length;e<o;++e)if(!0!==t(n[e]))return!1;return!0}return!1}function y(n,t){return pn.call(n,t)}function x(n,t){for(var e=0,o=n.length;e<o;e++){if(t(n[e],e))return!0}return!1}function w(n,t){for(var e=[],o=0;o<n.length;o+=t){var r=gn.call(n,o,o+t);e.push(r)}return e}function S(n,t){for(var e=n.length,o=new Array(e),r=0;r<e;r++){var i=n[r];o[r]=t(i,r)}return o}function C(n,t){for(var e=[],o=0,r=n.length;o<r;o++){var i=n[o];t(i,o)&&e.push(i)}return e}function k(n,t,e){return function(n,t){for(var e=n.length-1;0<=e;e--){t(n[e],e)}}(n,function(n){e=t(e,n)}),e}function O(n,t,e){return bn(n,function(n){e=t(e,n)}),e}function T(n,t){for(var e=0,o=n.length;e<o;e++){var r=n[e];if(t(r,e))return on.some(r)}return on.none()}function E(n,t){for(var e=0,o=n.length;e<o;e++){if(t(n[e],e))return on.some(e)}return on.none()}function H(n){for(var t=[],e=0,o=n.length;e<o;++e){if(!fn(n[e]))throw new Error("Arr.flatten item "+e+" was not an array, input: "+n);hn.apply(t,n[e])}return t}function D(n,t){var e=S(n,t);return H(e)}function B(n,t){for(var e=0,o=n.length;e<o;++e){if(!0!==t(n[e],e))return!1}return!0}function A(n){var t=gn.call(n,0);return t.reverse(),t}function _(n,t){return C(n,function(n){return!vn(t,n)})}function M(n){return[n]}function F(n){return 0===n.length?on.none():on.some(n[n.length-1])}function P(n,e){return kn(n,function(n,t){return{k:t,v:e(n,t)}})}function I(n,t){for(var e=wn(n),o=0,r=e.length;o<r;o++){var i=e[o],u=n[i];if(t(u,i,n))return on.some(u)}return on.none()}function R(n){return On(n,function(n){return n})}function V(n,t){return Tn(n,t)?on.from(n[t]):on.none()}function z(u){return function(){for(var n=new Array(arguments.length),t=0;t<n.length;t++)n[t]=arguments[t];if(0===n.length)throw new Error("Can't merge zero objects");for(var e={},o=0;o<n.length;o++){var r=n[o];for(var i in r)Dn.call(r,i)&&(e[i]=u(e[i],r[i]))}return e}}function L(e){var o,r=!1;return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return r||(r=!0,o=e.apply(null,n)),o}}function j(n){return _n.defaultedThunk(nn(n))}function U(t){return function(n){return Tn(n,t)?on.from(n[t]):on.none()}}function W(n,t){return U(t)(n)}function G(n,t){var e={};return e[n]=t,e}function X(n,t){return function(n,e){var o={};return Cn(n,function(n,t){vn(e,t)||(o[t]=n)}),o}(n,t)}function Y(n,t){return function(t,e){return function(n){return Tn(n,t)?n[t]:e}}(n,t)}function q(n,t){return G(n,t)}function K(n){return function(n){var t={};return bn(n,function(n){t[n.key]=n.value}),t}(n)}function J(n,t){var e=function(n){var t=[],e=[];return bn(n,function(n){n.fold(function(n){t.push(n)},function(n){e.push(n)})}),{errors:t,values:e}}(n);return 0<e.errors.length?function(n){return an.error(H(n))}(e.errors):function(n,t){return 0===n.length?an.value(t):an.value(Bn(t,An.apply(undefined,n)))}(e.values,t)}function $(n,t){return function(n,t){return Tn(n,t)&&n[t]!==undefined&&null!==n[t]}(n,t)}var Q,tn,en=function(e){function n(){return r}function t(n){return n(e)}var o=nn(e),r={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:a,isNone:u,getOr:o,getOrThunk:o,getOrDie:o,getOrNull:o,getOrUndefined:o,or:n,orThunk:n,map:function(n){return en(n(e))},each:function(n){n(e)},bind:t,exists:t,forall:t,filter:function(n){return n(e)?r:s},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(u,function(n){return t(e,n)})}};return r},on={some:en,none:t,from:function(n){return null===n||n===undefined?s:en(n)}},rn=function(e){return{is:function(n){return e===n},isValue:a,isError:u,getOr:nn(e),getOrThunk:nn(e),getOrDie:nn(e),or:function(n){return rn(e)},orThunk:function(n){return rn(e)},fold:function(n,t){return t(e)},map:function(n){return rn(n(e))},mapError:function(n){return rn(e)},each:function(n){n(e)},bind:function(n){return n(e)},exists:function(n){return n(e)},forall:function(n){return n(e)},toOption:function(){return on.some(e)}}},un=function(e){return{is:u,isValue:u,isError:a,getOr:l,getOrThunk:function(n){return n()},getOrDie:function(){return r(String(e))()},or:function(n){return n},orThunk:function(n){return n()},fold:function(n,t){return n(e)},map:function(n){return un(e)},mapError:function(n){return un(n(e))},each:Z,bind:function(n){return un(e)},exists:u,forall:a,toOption:on.none}},an={value:rn,error:un,fromOption:function(n,t){return n.fold(function(){return un(t)},rn)}},cn=p("string"),sn=p("object"),fn=p("array"),ln=p("boolean"),dn=p("function"),mn=p("number"),gn=Array.prototype.slice,pn=Array.prototype.indexOf,hn=Array.prototype.push,vn=function(n,t){return-1<y(n,t)},bn=function(n,t){for(var e=0,o=n.length;e<o;e++){t(n[e],e)}},yn=function(n){return 0===n.length?on.none():on.some(n[0])},xn=dn(Array.from)?Array.from:function(n){return gn.call(n)},wn=Object.keys,Sn=Object.hasOwnProperty,Cn=function(n,t){for(var e=wn(n),o=0,r=e.length;o<r;o++){var i=e[o];t(n[i],i)}},kn=function(n,o){var r={};return Cn(n,function(n,t){var e=o(n,t);r[e.k]=e.v}),r},On=function(n,e){var o=[];return Cn(n,function(n,t){o.push(e(n,t))}),o},Tn=function(n,t){return Sn.call(n,t)},En=function(u){if(!fn(u))throw new Error("cases must be an array");if(0===u.length)throw new Error("there must be at least one case");var a=[],e={};return bn(u,function(n,o){var t=wn(n);if(1!==t.length)throw new Error("one and only one name per case");var r=t[0],i=n[r];if(e[r]!==undefined)throw new Error("duplicate key detected:"+r);if("cata"===r)throw new Error("cannot have a case named cata (sorry)");if(!fn(i))throw new Error("case arguments must be an array");a.push(r),e[r]=function(){var n=arguments.length;if(n!==i.length)throw new Error("Wrong number of arguments to case "+r+". Expected "+i.length+" ("+i+"), got "+n);for(var e=new Array(n),t=0;t<e.length;t++)e[t]=arguments[t];return{fold:function(){if(arguments.length!==u.length)throw new Error("Wrong number of arguments to fold. Expected "+u.length+", got "+arguments.length);return arguments[o].apply(null,e)},match:function(n){var t=wn(n);if(a.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+a.join(",")+"\nActual: "+t.join(","));if(!B(a,function(n){return vn(t,n)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+a.join(", "));return n[r].apply(null,e)},log:function(n){v.console.log(n,{constructors:a,constructor:r,params:e})}}}}),e},Dn=Object.prototype.hasOwnProperty,Bn=z(function(n,t){return sn(n)&&sn(t)?Bn(n,t):t}),An=z(function(n,t){return t}),_n=En([{strict:[]},{defaultedThunk:["fallbackThunk"]},{asOption:[]},{asDefaultedOptionThunk:["fallbackThunk"]},{mergeWithThunk:["baseThunk"]}]),Mn=_n.strict,Fn=_n.asOption,In=_n.defaultedThunk,Rn=_n.mergeWithThunk,Vn=(En([{bothErrors:["error1","error2"]},{firstError:["error1","value2"]},{secondError:["value1","error2"]},{bothValues:["value1","value2"]}]),function(n){return U(n)}),Nn=function(n,t){return W(n,t)};(tn=Q=Q||{})[tn.Error=0]="Error",tn[tn.Value=1]="Value";function Hn(n,t,e){return n.stype===Q.Error?t(n.serror):e(n.svalue)}function Pn(n){return{stype:Q.Value,svalue:n}}function zn(n){return{stype:Q.Error,serror:n}}function Ln(n){return i(ee,H)(n)}function jn(n){return sn(n)&&100<wn(n).length?" removed due to size":JSON.stringify(n,null,2)}function Un(n,t){return ee([{path:n,getErrorInfo:t}])}function Wn(n,t,e){return W(t,e).fold(function(){return function(n,t,e){return Un(n,function(){return'Could not find valid *strict* value for "'+t+'" in '+jn(e)})}(n,e,t)},ne)}function Gn(n,t,e){var o=W(n,t).fold(function(){return e(n)},l);return ne(o)}function Xn(u,a,n,c){return n.fold(function(o,e,n,r){function i(n){var t=r.extract(u.concat([o]),c,n);return ie(t,function(n){return G(e,c(n))})}function t(n){return n.fold(function(){var n=G(e,c(on.none()));return ne(n)},function(n){var t=r.extract(u.concat([o]),c,n);return ie(t,function(n){return G(e,c(on.some(n)))})})}return n.fold(function(){return oe(Wn(u,a,o),i)},function(n){return oe(Gn(a,o,n),i)},function(){return oe(function(n,t){return ne(W(n,t))}(a,o),t)},function(n){return oe(function(t,n,e){var o=W(t,n).map(function(n){return!0===n?e(t):n});return ne(o)}(a,o,n),t)},function(n){var t=n(a),e=ie(Gn(a,o,nn({})),function(n){return Bn(t,n)});return oe(e,i)})},function(n,t){var e=t(a);return ne(G(n,c(e)))})}function Yn(o){return{extract:function(t,n,e){return re(o(e,n),function(n){return function(n,t){return Un(n,function(){return t})}(t,n)})},toString:function(){return"val"},toDsl:function(){return se.itemOf(o)}}}function qn(n){var i=de(n),u=k(n,function(t,n){return n.fold(function(n){return Bn(t,q(n,!0))},nn(t))},{});return{extract:function(n,t,e){var o=ln(e)?[]:function(t){var n=wn(t);return C(n,function(n){return $(t,n)})}(e),r=C(o,function(n){return!$(u,n)});return 0===r.length?i.extract(n,t,e):function(n,t){return Un(n,function(){return"There are unsupported fields: ["+t.join(", ")+"] specified"})}(n,r)},toString:i.toString,toDsl:i.toDsl}}function Kn(r){return{extract:function(e,o,n){var t=S(n,function(n,t){return r.extract(e.concat(["["+t+"]"]),o,n)});return ce(t)},toString:function(){return"array("+r.toString()+")"},toDsl:function(){return se.arrOf(r)}}}function Jn(i,u){return{extract:function(e,o,r){var n=wn(r),t=function(n,t){return Kn(Yn(i)).extract(n,l,t)}(e,n);return oe(t,function(n){var t=S(n,function(n){return le.field(n,n,Mn(),u)});return de(t).extract(e,o,r)})},toString:function(){return"setOf("+u.toString()+")"},toDsl:function(){return se.setOf(i,u)}}}function $n(t,e,o,n,r){return Nn(n,r).fold(function(){return function(n,t,e){return Un(n,function(){return'The chosen schema: "'+e+'" did not exist in branches: '+jn(t)})}(t,n,r)},function(n){return n.extract(t.concat(["branch: "+r]),e,o)})}function Qn(n,r){return{extract:function(t,e,o){return Nn(o,n).fold(function(){return function(n,t){return Un(n,function(){return'Choice schema did not contain choice key: "'+t+'"'})}(t,n)},function(n){return $n(t,e,o,r,n)})},toString:function(){return"chooseOn("+n+"). Possible values: "+wn(r)},toDsl:function(){return se.choiceOf(n,r)}}}function Zn(t){return Yn(function(n){return t(n).fold(ee,ne)})}function nt(t,n){return Jn(function(n){return Qt(t(n))},n)}function tt(n,t,e){return Zt(function(n,t,e,o){var r=t.extract([n],e,o);return ue(r,function(n){return{input:o,errors:n}})}(n,t,l,e))}function et(n){return n.fold(function(n){throw new Error(ye(n))},l)}function ot(n,t,e){return et(tt(n,t,e))}function rt(n,t){return Qn(n,t)}function it(n,t){return Qn(n,P(t,de))}function ut(e,o){return Yn(function(n){var t=typeof n;return e(n)?ne(n):ee("Expected type: "+o+" but got: "+t)})}function at(t){return Zn(function(n){return vn(t,n)?an.value(n):an.error('Unsupported value: "'+n+'", choose one of "'+t.join(", ")+'".')})}function ct(n){return he(n,n,Mn(),me())}function st(n,t){return he(n,n,Mn(),t)}function ft(n){return st(n,Se)}function lt(n,t){return he(n,n,Mn(),at(t))}function dt(n){return st(n,ke)}function mt(n,t){return he(n,n,Mn(),de(t))}function gt(n,t){return he(n,n,Mn(),ge(t))}function pt(n,t){return he(n,n,Mn(),Kn(t))}function ht(n){return he(n,n,Fn(),me())}function vt(n,t){return he(n,n,Fn(),t)}function bt(n){return vt(n,we)}function yt(n){return vt(n,Se)}function xt(n){return vt(n,ke)}function wt(n,t){return vt(n,de(t))}function St(n,t){return he(n,n,j(t),me())}function Ct(n,t,e){return he(n,n,j(t),e)}function kt(n,t){return Ct(n,t,we)}function Ot(n,t){return Ct(n,t,Se)}function Tt(n,t,e){return Ct(n,t,at(e))}function Et(n,t){return Ct(n,t,Ce)}function Dt(n,t){return Ct(n,t,ke)}function Bt(n,t,e){return Ct(n,t,de(e))}function At(n,t){return pe(n,t)}function _t(n,t,e){return 0!=(n.compareDocumentPosition(t)&e)}function Mt(n,t){var e=function(n,t){for(var e=0;e<n.length;e++){var o=n[e];if(o.test(t))return o}return undefined}(n,t);if(!e)return{major:0,minor:0};function o(n){return Number(t.replace(e,"$"+n))}return Me(o(1),o(2))}function Ft(n,t){return function(){return t===n}}function It(n,t){return function(){return t===n}}function Rt(n,t){var e=String(t).toLowerCase();return T(n,function(n){return n.search(e)})}function Vt(n,t){return-1!==n.indexOf(t)}function Nt(t){return function(n){return Vt(n,t)}}function Ht(){return Ke.get()}function Pt(n,t){var e=n.dom();if(e.nodeType!==Ze)return!1;var o=e;if(o.matches!==undefined)return o.matches(t);if(o.msMatchesSelector!==undefined)return o.msMatchesSelector(t);if(o.webkitMatchesSelector!==undefined)return o.webkitMatchesSelector(t);if(o.mozMatchesSelector!==undefined)return o.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}function zt(n){return n.nodeType!==Ze&&n.nodeType!==no||0===n.childElementCount}function Lt(n,t){var e=t===undefined?v.document:t.dom();return zt(e)?[]:S(e.querySelectorAll(n),Be.fromDom)}function jt(n,t){return n.dom()===t.dom()}function Ut(n,t){return jt(n.element(),t.event().target())}function Wt(n){if(!$(n,"can")&&!$(n,"abort")&&!$(n,"run"))throw new Error("EventHandler defined by: "+JSON.stringify(n,null,2)+" does not have can, abort, or run!");return ot("Extracting event.handler",qn([St("can",nn(!0)),St("abort",nn(!1)),St("run",Z)]),n)}function Gt(e){var n=function(t,o){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return O(t,function(n,t){return n&&o(t).apply(undefined,e)},!0)}}(e,function(n){return n.can}),t=function(t,o){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return O(t,function(n,t){return n||o(t).apply(undefined,e)},!1)}}(e,function(n){return n.abort});return Wt({can:n,abort:t,run:function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];bn(e,function(n){n.run.apply(undefined,t)})}})}function Xt(){return Ht().deviceType.isTouch()?wo.tap():bo()}function Yt(n,t){Yo(n,n.element(),t,{})}function qt(n,t,e){Yo(n,n.element(),t,e)}function Kt(n){Yt(n,To())}function Jt(n,t,e){Yo(n,t,e,{})}function $t(n,t,e,o){n.getSystem().triggerEvent(e,t,o.event())}var Qt=function(n){return n.fold(zn,Pn)},Zt=function(n){return Hn(n,an.error,an.value)},ne=Pn,te=function(n){var t=[],e=[];return bn(n,function(n){Hn(n,function(n){return e.push(n)},function(n){return t.push(n)})}),{values:t,errors:e}},ee=zn,oe=function(n,t){return n.stype===Q.Value?t(n.svalue):n},re=function(n,t){return n.stype===Q.Error?t(n.serror):n},ie=function(n,t){return n.stype===Q.Value?{stype:Q.Value,svalue:t(n.svalue)}:n},ue=function(n,t){return n.stype===Q.Error?{stype:Q.Error,serror:t(n.serror)}:n},ae=function(n,t){var e=te(n);return 0<e.errors.length?Ln(e.errors):function(n,t){return 0<n.length?ne(Bn(t,An.apply(undefined,n))):ne(t)}(e.values,t)},ce=function(n){var t=te(n);return 0<t.errors.length?Ln(t.errors):ne(t.values)},se=En([{setOf:["validator","valueType"]},{arrOf:["valueType"]},{objOf:["fields"]},{itemOf:["validator"]},{choiceOf:["key","branches"]},{thunk:["description"]},{func:["args","outputSchema"]}]),fe=En([{field:["name","presence","type"]},{state:["name"]}]),le=En([{field:["key","okey","presence","prop"]},{state:["okey","instantiator"]}]),de=function(o){return{extract:function(n,t,e){return function(t,e,n,o){var r=S(n,function(n){return Xn(t,e,n,o)});return ae(r,{})}(n,e,o,t)},toString:function(){return"obj{\n"+S(o,function(n){return n.fold(function(n,t,e,o){return n+" -> "+o.toString()},function(n,t){return"state("+n+")"})}).join("\n")+"}"},toDsl:function(){return se.objOf(S(o,function(n){return n.fold(function(n,t,e,o){return fe.field(n,e,o)},function(n,t){return fe.state(n)})}))}}},me=nn(Yn(ne)),ge=i(Kn,de),pe=le.state,he=le.field,ve=Yn(ne),be=function(o){return{extract:function(n,t,e){return o().extract(n,t,e)},toString:function(){return o().toString()},toDsl:function(){return o().toDsl()}}},ye=function(n){return"Errors: \n"+function(n){var t=10<n.length?n.slice(0,10).concat([{path:[],getErrorInfo:function(){return"... (only showing first ten failures)"}}]):n;return S(t,function(n){return"Failed path: ("+n.path.join(" > ")+")\n"+n.getErrorInfo()})}(n.errors)+"\n\nInput object: "+jn(n.input)},xe=nn(ve),we=ut(mn,"number"),Se=ut(cn,"string"),Ce=ut(ln,"boolean"),ke=ut(dn,"function"),Oe=function(t){function n(n,t){for(var e=n.next();!e.done;){if(!t(e.value))return!1;e=n.next()}return!0}if(Object(t)!==t)return!0;switch({}.toString.call(t).slice(8,-1)){case"Boolean":case"Number":case"String":case"Date":case"RegExp":case"Blob":case"FileList":case"ImageData":case"ImageBitmap":case"ArrayBuffer":return!0;case"Array":case"Object":return Object.keys(t).every(function(n){return Oe(t[n])});case"Map":return n(t.keys(),Oe)&&n(t.values(),Oe);case"Set":return n(t.keys(),Oe);default:return!1}},Te=Yn(function(n){return Oe(n)?ne(n):ee("Expected value to be acceptable for sending via postMessage")}),Ee=function(n){function t(){return e}var e=n;return{get:t,set:function(n){e=n},clone:function(){return Ee(t())}}},De=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:nn(n)}},Be={fromHtml:function(n,t){var e=(t||v.document).createElement("div");if(e.innerHTML=n,!e.hasChildNodes()||1<e.childNodes.length)throw v.console.error("HTML does not have a single root node",n),new Error("HTML must have a single root node");return De(e.childNodes[0])},fromTag:function(n,t){var e=(t||v.document).createElement(n);return De(e)},fromText:function(n,t){var e=(t||v.document).createTextNode(n);return De(e)},fromDom:De,fromPoint:function(n,t,e){var o=n.dom();return on.from(o.elementFromPoint(t,e)).map(De)}},Ae=function(n,t){return _t(n,t,v.Node.DOCUMENT_POSITION_CONTAINED_BY)},_e=function(){return Me(0,0)},Me=function(n,t){return{major:n,minor:t}},Fe={nu:Me,detect:function(n,t){var e=String(t).toLowerCase();return 0===n.length?_e():Mt(n,e)},unknown:_e},Ie="Firefox",Re=function(n){var t=n.current;return{current:t,version:n.version,isEdge:Ft("Edge",t),isChrome:Ft("Chrome",t),isIE:Ft("IE",t),isOpera:Ft("Opera",t),isFirefox:Ft(Ie,t),isSafari:Ft("Safari",t)}},Ve={unknown:function(){return Re({current:undefined,version:Fe.unknown()})},nu:Re,edge:nn("Edge"),chrome:nn("Chrome"),ie:nn("IE"),opera:nn("Opera"),firefox:nn(Ie),safari:nn("Safari")},Ne="Windows",He="Android",Pe="Solaris",ze="FreeBSD",Le=function(n){var t=n.current;return{current:t,version:n.version,isWindows:It(Ne,t),isiOS:It("iOS",t),isAndroid:It(He,t),isOSX:It("OSX",t),isLinux:It("Linux",t),isSolaris:It(Pe,t),isFreeBSD:It(ze,t)}},je={unknown:function(){return Le({current:undefined,version:Fe.unknown()})},nu:Le,windows:nn(Ne),ios:nn("iOS"),android:nn(He),linux:nn("Linux"),osx:nn("OSX"),solaris:nn(Pe),freebsd:nn(ze)},Ue=function(n,e){return Rt(n,e).map(function(n){var t=Fe.detect(n.versionRegexes,e);return{current:n.name,version:t}})},We=function(n,e){return Rt(n,e).map(function(n){var t=Fe.detect(n.versionRegexes,e);return{current:n.name,version:t}})},Ge=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Xe=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(n){return Vt(n,"edge/")&&Vt(n,"chrome")&&Vt(n,"safari")&&Vt(n,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Ge],search:function(n){return Vt(n,"chrome")&&!Vt(n,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(n){return Vt(n,"msie")||Vt(n,"trident")}},{name:"Opera",versionRegexes:[Ge,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Nt("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Nt("firefox")},{name:"Safari",versionRegexes:[Ge,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(n){return(Vt(n,"safari")||Vt(n,"mobile/"))&&Vt(n,"applewebkit")}}],Ye=[{name:"Windows",search:Nt("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(n){return Vt(n,"iphone")||Vt(n,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Nt("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Nt("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Nt("linux"),versionRegexes:[]},{name:"Solaris",search:Nt("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Nt("freebsd"),versionRegexes:[]}],qe={browsers:nn(Xe),oses:nn(Ye)},Ke=Ee(function(n,t){var e=qe.browsers(),o=qe.oses(),r=Ue(e,n).fold(Ve.unknown,Ve.nu),i=We(o,n).fold(je.unknown,je.nu);return{browser:r,os:i,deviceType:function(n,t,e,o){var r=n.isiOS()&&!0===/ipad/i.test(e),i=n.isiOS()&&!r,u=n.isiOS()||n.isAndroid(),a=u||o("(pointer:coarse)"),c=r||!i&&u&&o("(min-device-width:768px)"),s=i||u&&!c,f=t.isSafari()&&n.isiOS()&&!1===/safari/i.test(e),l=!s&&!c&&!f;return{isiPad:nn(r),isiPhone:nn(i),isTablet:nn(c),isPhone:nn(s),isTouch:nn(a),isAndroid:n.isAndroid,isiOS:n.isiOS,isWebView:nn(f),isDesktop:nn(l)}}(i,r,n,t)}}(v.navigator.userAgent,function(n){return v.window.matchMedia(n).matches})),Je=(v.Node.ATTRIBUTE_NODE,v.Node.CDATA_SECTION_NODE,v.Node.COMMENT_NODE,v.Node.DOCUMENT_NODE),$e=(v.Node.DOCUMENT_TYPE_NODE,v.Node.DOCUMENT_FRAGMENT_NODE,v.Node.ELEMENT_NODE),Qe=v.Node.TEXT_NODE,Ze=(v.Node.PROCESSING_INSTRUCTION_NODE,v.Node.ENTITY_REFERENCE_NODE,v.Node.ENTITY_NODE,v.Node.NOTATION_NODE,$e),no=Je,to=Ht().browser.isIE()?function(n,t){return Ae(n.dom(),t.dom())}:function(n,t){var e=n.dom(),o=t.dom();return e!==o&&e.contains(o)},eo=nn("touchstart"),oo=nn("touchmove"),ro=nn("touchend"),io=nn("touchcancel"),uo=nn("mousedown"),ao=nn("mousemove"),co=nn("mouseout"),so=nn("mouseup"),fo=nn("mouseover"),lo=nn("focusin"),mo=nn("focusout"),go=nn("keydown"),po=nn("keyup"),ho=nn("input"),vo=nn("change"),bo=nn("click"),yo=nn("transitionend"),xo=nn("selectstart"),wo={tap:nn("alloy.tap")},So=nn("alloy.focus"),Co=nn("alloy.blur.post"),ko=nn("alloy.paste.post"),Oo=nn("alloy.receive"),To=nn("alloy.execute"),Eo=nn("alloy.focus.item"),Do=wo.tap,Bo=nn("alloy.longpress"),Ao=nn("alloy.sandbox.close"),_o=nn("alloy.typeahead.cancel"),Mo=nn("alloy.system.init"),Fo=nn("alloy.system.touchmove"),Io=nn("alloy.system.touchend"),Ro=nn("alloy.system.scroll"),Vo=nn("alloy.system.resize"),No=nn("alloy.system.attached"),Ho=nn("alloy.system.detached"),Po=nn("alloy.system.dismissRequested"),zo=nn("alloy.system.repositionRequested"),Lo=nn("alloy.focusmanager.shifted"),jo=nn("alloy.slotcontainer.visibility"),Uo=nn("alloy.change.tab"),Wo=nn("alloy.dismiss.tab"),Go=nn("alloy.highlight"),Xo=nn("alloy.dehighlight"),Yo=function(n,t,e,o){var r=N({target:t},o);n.getSystem().triggerEvent(e,t,P(r,nn))};function qo(n,t,e,o,r){return n(e,o)?on.some(e):dn(r)&&r(e)?on.none():t(e,o,r)}function Ko(n){return n.dom().nodeName.toLowerCase()}function Jo(t){return function(n){return function(n){return n.dom().nodeType}(n)===t}}"undefined"!=typeof v.window?v.window:Function("return this;")();function $o(n){var t=_i(n)?n.dom().parentNode:n.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}function Qo(n,t,e){for(var o=n.dom(),r=dn(e)?e:nn(!1);o.parentNode;){o=o.parentNode;var i=Be.fromDom(o);if(t(i))return on.some(i);if(r(i))break}return on.none()}function Zo(n,t,e){return qo(function(n,t){return t(n)},Qo,n,t,e)}function nr(n,r){var i=function(n){for(var t=0;t<n.childNodes.length;t++){var e=Be.fromDom(n.childNodes[t]);if(r(e))return on.some(e);var o=i(n.childNodes[t]);if(o.isSome())return o}return on.none()};return i(n.dom())}function tr(n){return K(n)}function er(n,t){return{key:n,value:Wt({abort:t})}}function or(n){return{key:n,value:Wt({run:function(n,t){t.event().prevent()}})}}function rr(n,t){return{key:n,value:Wt({run:t})}}function ir(n,t,e){return{key:n,value:Wt({run:function(n){t.apply(undefined,[n].concat(e))}})}}function ur(n){return function(e){return{key:n,value:Wt({run:function(n,t){Ut(n,t)&&e(n,t)}})}}}function ar(n,t,e){return function(e,o){return rr(e,function(n,t){n.getSystem().getByUid(o).each(function(n){$t(n,n.element(),e,t)})})}(n,t.partUids[e])}function cr(n,r){return rr(n,function(t,n){var e=n.event(),o=t.getSystem().getByDom(e.target()).fold(function(){return Ii(e.target(),function(n){return t.getSystem().getByDom(n).toOption()},nn(!1)).getOr(t)},function(n){return n});r(t,o,n)})}function sr(n){return rr(n,function(n,t){t.cut()})}function fr(n,t){return ur(n)(t)}function lr(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(t.length!==e.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+e.length+" arguments");var o={};return bn(t,function(n,t){o[n]=nn(e[t])}),o}}function dr(n){return n.slice(0).sort()}function mr(t,n){if(!fn(n))throw new Error("The "+t+" fields must be an array. Was: "+n+".");bn(n,function(n){if(!cn(n))throw new Error("The value "+n+" in the "+t+" fields was not a string.")})}function gr(r,i){var u=r.concat(i);if(0===u.length)throw new Error("You must specify at least one required or optional field.");return mr("required",r),mr("optional",i),function(n){var e=dr(n);T(e,function(n,t){return t<e.length-1&&n===e[t+1]}).each(function(n){throw new Error("The field: "+n+" occurs more than once in the combined fields: ["+e.join(", ")+"].")})}(u),function(t){var e=wn(t);B(r,function(n){return vn(e,n)})||function(n,t){throw new Error("All required keys ("+dr(n).join(", ")+") were not specified. Specified keys were: "+dr(t).join(", ")+".")}(r,e);var n=C(e,function(n){return!vn(u,n)});0<n.length&&function(n){throw new Error("Unsupported keys for object: "+dr(n).join(", "))}(n);var o={};return bn(r,function(n){o[n]=nn(t[n])}),bn(i,function(n){o[n]=nn(Object.prototype.hasOwnProperty.call(t,n)?on.some(t[n]):on.none())}),o}}function pr(n){return Be.fromDom(n.dom().ownerDocument)}function hr(n){return Be.fromDom(n.dom().ownerDocument.documentElement)}function vr(n){return Be.fromDom(n.dom().ownerDocument.defaultView)}function br(n){return on.from(n.dom().parentNode).map(Be.fromDom)}function yr(n){return on.from(n.dom().offsetParent).map(Be.fromDom)}function xr(n){return S(n.dom().childNodes,Be.fromDom)}function wr(n,t){var e=n.dom().childNodes;return on.from(e[t]).map(Be.fromDom)}function Sr(t,e){br(t).each(function(n){n.dom().insertBefore(e.dom(),t.dom())})}function Cr(n,t){(function(n){return on.from(n.dom().nextSibling).map(Be.fromDom)})(n).fold(function(){br(n).each(function(n){Pi(n,t)})},function(n){Sr(n,t)})}function kr(t,e){(function(n){return wr(n,0)})(t).fold(function(){Pi(t,e)},function(n){t.dom().insertBefore(e.dom(),n.dom())})}function Or(t,n){bn(n,function(n){Pi(t,n)})}function Tr(n){n.dom().textContent="",bn(xr(n),function(n){zi(n)})}function Er(n){var t=xr(n);0<t.length&&function(t,n){bn(n,function(n){Sr(t,n)})}(n,t),zi(n)}function Dr(n){return n.dom().innerHTML}function Br(n,t){var e=pr(n).dom(),o=Be.fromDom(e.createDocumentFragment()),r=function(n,t){var e=(t||v.document).createElement("div");return e.innerHTML=n,xr(Be.fromDom(e))}(t,e);Or(o,r),Tr(n),Pi(n,o)}function Ar(n,t,e){if(!(cn(e)||ln(e)||mn(e)))throw v.console.error("Invalid call to Attr.set. Key ",t,":: Value ",e,":: Element ",n),new Error("Attribute value was not simple");n.setAttribute(t,e+"")}function _r(n,t,e){Ar(n.dom(),t,e)}function Mr(n,t){var e=n.dom().getAttribute(t);return null===e?undefined:e}function Fr(n,t){var e=n.dom();return!(!e||!e.hasAttribute)&&e.hasAttribute(t)}function Ir(n,t){n.dom().removeAttribute(t)}function Rr(n){return function(n,t){return Be.fromDom(n.dom().cloneNode(t))}(n,!1)}function Vr(n){return function(n){var t=Be.fromTag("div"),e=Be.fromDom(n.dom().cloneNode(!0));return Pi(t,e),Dr(t)}(Rr(n))}function Nr(n){return Vr(n)}function Hr(n){var t=(new Date).getTime();return n+"_"+Math.floor(1e9*Math.random())+ ++Ui+String(t)}function Pr(n){return Hr(n)}function zr(t){function n(n){return function(){throw new Error("The component must be in a context to send: "+n+"\n"+Nr(t().element())+" is not in context.")}}return{debugInfo:nn("fake"),triggerEvent:n("triggerEvent"),triggerFocus:n("triggerFocus"),triggerEscape:n("triggerEscape"),build:n("build"),addToWorld:n("addToWorld"),removeFromWorld:n("removeFromWorld"),addToGui:n("addToGui"),removeFromGui:n("removeFromGui"),getByUid:n("getByUid"),getByDom:n("getByDom"),broadcast:n("broadcast"),broadcastOn:n("broadcastOn"),broadcastEvent:n("broadcastEvent"),isConnected:nn(!1)}}function Lr(n,t){var e=n.toString(),o=e.indexOf(")")+1,r=e.indexOf("("),i=e.substring(r+1,o-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:t,parameters:Qi(i)}},n}function jr(n){return q(Zi,n)}function Ur(o){return function(n,t){var e=t.toString(),o=e.indexOf(")")+1,r=e.indexOf("("),i=e.substring(r+1,o-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:"OVERRIDE",parameters:Qi(i.slice(1))}},n}(function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return o.apply(undefined,[n.getApis()].concat([n].concat(t)))},o)}function Wr(n,r){var i={};return Cn(n,function(n,o){Cn(n,function(n,t){var e=Y(t,[])(i);i[t]=e.concat([r(o,n)])})}),i}function Gr(n){return{classes:n.classes!==undefined?n.classes:[],attributes:n.attributes!==undefined?n.attributes:{},styles:n.styles!==undefined?n.styles:{}}}function Xr(n){return n.cHandler}function Yr(n,t){return{name:nn(n),handler:nn(t)}}function qr(n,t,e){var o=N(N({},e),function(n,t){var e={};return bn(n,function(n){e[n.name()]=n.handlers(t)}),e}(t,n));return Wr(o,Yr)}function Kr(n){var i=function(n){return dn(n)?{can:nn(!0),abort:nn(!1),run:n}:n}(n);return function(n,t){for(var e=[],o=2;o<arguments.length;o++)e[o-2]=arguments[o];var r=[n,t].concat(e);i.abort.apply(undefined,r)?t.stop():i.can.apply(undefined,r)&&i.run.apply(undefined,r)}}function Jr(n,t,e){var o=t[e];return o?function(u,a,n,c){var t=n.slice(0);try{var e=t.sort(function(n,t){var e=n[a](),o=t[a](),r=c.indexOf(e),i=c.indexOf(o);if(-1===r)throw new Error("The ordering for "+u+" does not have an entry for "+e+".\nOrder specified: "+JSON.stringify(c,null,2));if(-1===i)throw new Error("The ordering for "+u+" does not have an entry for "+o+".\nOrder specified: "+JSON.stringify(c,null,2));return r<i?-1:i<r?1:0});return an.value(e)}catch(o){return an.error([o])}}("Event: "+e,"name",n,o).map(function(n){var t=S(n,function(n){return n.handler()});return Gt(t)}):function(n,t){return an.error(["The event ("+n+') has more than one behaviour that listens to it.\nWhen this occurs, you must specify an event ordering for the behaviours in your spec (e.g. [ "listing", "toggling" ]).\nThe behaviours that can trigger it are: '+JSON.stringify(S(t,function(n){return n.name()}),null,2)])}(e,n)}function $r(n){return tt("custom.definition",de([he("dom","dom",Mn(),de([ct("tag"),St("styles",{}),St("classes",[]),St("attributes",{}),ht("value"),ht("innerHtml")])),ct("components"),ct("uid"),St("events",{}),St("apis",{}),he("eventOrder","eventOrder",function(n){return _n.mergeWithThunk(nn(n))}({"alloy.execute":["disabling","alloy.base.behaviour","toggling","typeaheadevents"],"alloy.focus":["alloy.base.behaviour","focusing","keying"],"alloy.system.init":["alloy.base.behaviour","disabling","toggling","representing"],input:["alloy.base.behaviour","representing","streaming","invalidating"],"alloy.system.detached":["alloy.base.behaviour","representing","item-events","tooltipping"],mousedown:["focusing","alloy.base.behaviour","item-type-events"],touchstart:["focusing","alloy.base.behaviour","item-type-events"],mouseover:["item-type-events","tooltipping"]}),xe()),ht("domModification")]),n)}function Qr(n,t){var e=Mr(n,t);return e===undefined||""===e?[]:e.split(" ")}function Zr(n){return n.dom().classList!==undefined}function ni(n,t){return function(n,t,e){var o=Qr(n,t).concat([e]);return _r(n,t,o.join(" ")),!0}(n,"class",t)}function ti(n,t){return function(n,t,e){var o=C(Qr(n,t),function(n){return n!==e});return 0<o.length?_r(n,t,o.join(" ")):Ir(n,t),!1}(n,"class",t)}function ei(n,t){Zr(n)?n.dom().classList.add(t):ni(n,t)}function oi(n){0===(Zr(n)?n.dom().classList:function(n){return Qr(n,"class")}(n)).length&&Ir(n,"class")}function ri(n,t){Zr(n)?n.dom().classList.remove(t):ti(n,t),oi(n)}function ii(n,t){return Zr(n)&&n.dom().classList.contains(t)}function ui(t,n){bn(n,function(n){ei(t,n)})}function ai(t,n){bn(n,function(n){ri(t,n)})}function ci(n){return n.style!==undefined&&dn(n.style.getPropertyValue)}function si(n,t,e){if(!cn(e))throw v.console.error("Invalid call to CSS.set. Property ",t,":: Value ",e,":: Element ",n),new Error("CSS value must be a string: "+e);ci(n)&&n.style.setProperty(t,e)}function fi(n,t){ci(n)&&n.style.removeProperty(t)}function li(n,t,e){var o=n.dom();si(o,t,e)}function di(n,t){var e=n.dom();Cn(t,function(n,t){si(e,t,n)})}function mi(n,t){var e=n.dom(),o=v.window.getComputedStyle(e).getPropertyValue(t),r=""!==o||$o(n)?o:ru(e,t);return null===r?undefined:r}function gi(n,t){var e=n.dom(),o=ru(e,t);return on.from(o).filter(function(n){return 0<n.length})}function pi(n,t,e){var o=Be.fromTag(n);return li(o,t,e),gi(o,t).isSome()}function hi(n,t){var e=n.dom();fi(e,t),Fr(n,"style")&&""===function(n){return n.replace(/^\s+|\s+$/g,"")}(Mr(n,"style"))&&Ir(n,"style")}function vi(n){return n.dom().offsetWidth}function bi(n){return n.dom().value}function yi(n,t){if(t===undefined)throw new Error("Value.set was undefined");n.dom().value=t}function xi(n){var t=Be.fromTag(n.tag);!function(n,t){var e=n.dom();Cn(t,function(n,t){Ar(e,t,n)})}(t,n.attributes),ui(t,n.classes),di(t,n.styles),n.innerHtml.each(function(n){return Br(t,n)});var e=n.domChildren;return Or(t,e),n.value.each(function(n){yi(t,n)}),n.uid,qi(t,n.uid),t}function wi(n,t){return function(t,n){var e=S(n,function(n){return wt(n.name(),[ct("config"),St("state",nu)])}),o=tt("component.behaviours",de(e),t.behaviours).fold(function(n){throw new Error(ye(n)+"\nComplete spec:\n"+JSON.stringify(t,null,2))},function(n){return n});return{list:n,data:P(o,function(n){var t=n.map(function(n){return{config:n.config,state:n.state.init(n.config)}});return function(){return t}})}}(n,t)}function Si(n){var t=function(n){var t=Y("behaviours",{})(n),e=C(wn(t),function(n){return t[n]!==undefined});return S(e,function(n){return t[n].me})}(n);return wi(n,t)}function Ci(n,t,e){var o=function(n){return N(N({},n.dom),{uid:n.uid,domChildren:S(n.components,function(n){return n.element()})})}(n),r=function(n){return n.domModification.fold(function(){return Gr({})},Gr)}(n),i={"alloy.base.modification":r};return function(n,t){return N(N({},n),{attributes:N(N({},n.attributes),t.attributes),styles:N(N({},n.styles),t.styles),classes:n.classes.concat(t.classes)})}(o,0<t.length?function(t,n,e,o){var r=N({},n);bn(e,function(n){r[n.name()]=n.exhibit(t,o)});function i(n){return k(n,function(n,t){return N(N({},t.modification),n)},{})}var u=Wr(r,function(n,t){return{name:n,modification:t}}),a=k(u.classes,function(n,t){return t.modification.concat(n)},[]),c=i(u.attributes),s=i(u.styles);return Gr({classes:a,attributes:c,styles:s})}(e,i,t,o):r)}function ki(n,t,e){var o={"alloy.base.behaviour":function(n){return n.events}(n)};return function(n,t,e,o){var r=qr(n,e,o);return ou(r,t)}(e,n.eventOrder,t,o).getOrDie()}function Oi(n){var t=Ji(n),e=t.events,o=c(t,["events"]),r=function(n){var t=Y("components",[])(n);return S(t,au)}(o),i=N(N({},o),{events:N(N({},ji),e),components:r});return an.value(function(e){function n(){return l}var o=Ee($i),t=et($r(e)),r=Si(e),i=function(n){return n.list}(r),u=function(n){return n.data}(r),a=Ci(t,i,u),c=xi(a),s=ki(t,i,u),f=Ee(t.components),l={getSystem:o.get,config:function(n){var t=u;return(dn(t[n.name()])?t[n.name()]:function(){throw new Error("Could not find "+n.name()+" in "+JSON.stringify(e,null,2))})()},hasConfigured:function(n){return dn(u[n.name()])},spec:nn(e),readState:function(n){return u[n]().map(function(n){return n.state.readState()}).getOr("not enabled")},getApis:function(){return t.apis},connect:function(n){o.set(n)},disconnect:function(){o.set(zr(n))},element:nn(c),syncComponents:function(){var n=xr(c),t=D(n,function(n){return o.get().getByDom(n).fold(function(){return[]},function(n){return[n]})});f.set(t)},components:f.get,events:nn(s)};return l}(i))}function Ti(n){var t=Be.fromText(n);return iu({element:t})}var Ei,Di,Bi,Ai=Jo($e),_i=Jo(Qe),Mi=L(function(){return Fi(Be.fromDom(v.document))}),Fi=function(n){var t=n.dom().body;if(null===t||t===undefined)throw new Error("Body is not available yet");return Be.fromDom(t)},Ii=function(n,t,e){return Zo(n,function(n){return t(n).isSome()},e).bind(t)},Ri=ur(No()),Vi=ur(Ho()),Ni=ur(Mo()),Hi=(Ei=To(),function(n){return rr(Ei,n)}),Pi=(lr("element","offset"),function(n,t){n.dom().appendChild(t.dom())}),zi=function(n){var t=n.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},Li=tr([(Di=So(),Bi=function(n,t){var e=t.event().originator(),o=t.event().target();return!function(n,t,e){return jt(t,n.element())&&!jt(t,e)}(n,e,o)||(v.console.warn(So()+" did not get interpreted by the desired target. \nOriginator: "+Nr(e)+"\nTarget: "+Nr(o)+"\nCheck the "+So()+" event handlers"),!1)},{key:Di,value:Wt({can:Bi})})]),ji=/* */Object.freeze({events:Li}),Ui=0,Wi=nn("alloy-id-"),Gi=nn("data-alloy-id"),Xi=Wi(),Yi=Gi(),qi=function(n,t){Object.defineProperty(n.dom(),Yi,{value:t,writable:!0})},Ki=function(n){var t=Ai(n)?n.dom()[Yi]:null;return on.from(t)},Ji=l,$i=zr(),Qi=function(n){return S(n,function(n){return function(n,t){return function(n,t,e){return""===t||!(n.length<t.length)&&n.substr(e,e+t.length)===t}(n,t,n.length-t.length)}(n,"/*")?n.substring(0,n.length-"/*".length):n})},Zi=Hr("alloy-premade"),nu={init:function(){return tu({readState:function(){return"No State required"}})}},tu=function(n){return n},eu=function(n,t){return function(n,t){return{cHandler:n,purpose:nn(t)}}(d.apply(undefined,[n.handler].concat(t)),n.purpose())},ou=function(n,i){var t=On(n,function(o,r){return(1===o.length?an.value(o[0].handler()):Jr(o,i,r)).map(function(n){var t=Kr(n),e=1<o.length?C(i[r],function(t){return x(o,function(n){return n.name()===t})}).join(" > "):o[0].name();return q(r,function(n,t){return{handler:n,purpose:nn(t)}}(t,e))})});return J(t,{})},ru=function(n,t){return ci(n)?n.style.getPropertyValue(t):""},iu=function(n){var t=ot("external.component",qn([ct("element"),ht("uid")]),n),e=Ee(zr());t.uid.each(function(n){qi(t.element,n)});var o={getSystem:e.get,config:on.none,hasConfigured:nn(!1),connect:function(n){e.set(n)},disconnect:function(){e.set(zr(function(){return o}))},getApis:function(){return{}},element:nn(t.element),spec:nn(n),readState:nn("No state"),syncComponents:Z,components:nn([]),events:nn({})};return jr(o)},uu=Pr,au=function(t){return function(n){return Nn(n,Zi)}(t).fold(function(){var n=t.hasOwnProperty("uid")?t:N({uid:uu("")},t);return Oi(n).getOrDie()},function(n){return n})},cu=jr;function su(o,r){function n(n){var t=r(n);if(t<=0||null===t){var e=mi(n,o);return parseFloat(e)||0}return t}function i(r,n){return O(n,function(n,t){var e=mi(r,t),o=e===undefined?0:parseInt(e,10);return isNaN(o)?n:n+o},0)}return{set:function(n,t){if(!mn(t)&&!t.match(/^[0-9]+$/))throw new Error(o+".set accepts only positive integer values. Value was "+t);var e=n.dom();ci(e)&&(e.style[o]=t+"px")},get:n,getOuter:n,aggregate:i,max:function(n,t,e){var o=i(n,e);return o<t?t-o:0}}}function fu(n){return Fu.get(n)}function lu(n){return Fu.getOuter(n)}function du(n,t){return n!==undefined?n:t!==undefined?t:0}function mu(n){var t=n.dom().ownerDocument,e=t.body,o=t.defaultView,r=t.documentElement;if(e===n.dom())return Ru(e.offsetLeft,e.offsetTop);var i=du(o.pageYOffset,r.scrollTop),u=du(o.pageXOffset,r.scrollLeft),a=du(r.clientTop,e.clientTop),c=du(r.clientLeft,e.clientLeft);return Vu(n).translate(u-c,i-a)}function gu(n){return Nu.get(n)}function pu(n){return Nu.getOuter(n)}function hu(n){var t=n!==undefined?n.dom():v.document,e=t.body.scrollLeft||t.documentElement.scrollLeft,o=t.body.scrollTop||t.documentElement.scrollTop;return Ru(e,o)}function vu(n,t,e,o){return{x:nn(n),y:nn(t),width:nn(e),height:nn(o),right:nn(n+e),bottom:nn(t+o)}}function bu(n){var t=n===undefined?v.window:n,e=t.document,o=hu(Be.fromDom(e)),r=t.visualViewport;if(r!==undefined)return vu(Math.max(r.pageLeft,o.left()),Math.max(r.pageTop,o.top()),r.width,r.height);var i=e.documentElement,u=i.clientWidth,a=i.clientHeight;return vu(o.left(),o.top(),u,a)}function yu(o){var n=Be.fromDom(v.document),r=hu(n);return function(n,t){var e=t.owner(n),o=Hu(t,e);return on.some(o)}(o,Pu).fold(d(mu,o),function(n){var t=Vu(o),e=k(n,function(n,t){var e=Vu(t);return{left:n.left+e.left(),top:n.top+e.top()}},{left:0,top:0});return Ru(e.left+t.left()+r.left(),e.top+t.top()+r.top())})}function xu(n,t,e,o){return{x:nn(n),y:nn(t),width:nn(e),height:nn(o),right:nn(n+e),bottom:nn(t+o)}}function wu(n){var t=mu(n),e=pu(n),o=lu(n);return xu(t.left(),t.top(),e,o)}function Su(n){var t=yu(n),e=pu(n),o=lu(n);return xu(t.left(),t.top(),e,o)}function Cu(){return bu(v.window)}function ku(n,t,e){return Qo(n,function(n){return Pt(n,t)},e)}function Ou(n,t){return function(n,t){var e=t===undefined?v.document:t.dom();return zt(e)?on.none():on.from(e.querySelector(n)).map(Be.fromDom)}(t,n)}function Tu(n,t,e){return qo(Pt,ku,n,t,e)}function Eu(){var t=Hr("aria-owns");return{id:nn(t),link:function(n){_r(n,"aria-owns",t)},unlink:function(n){Ir(n,"aria-owns")}}}function Du(t,n){return function(n){return Zo(n,function(n){if(!Ai(n))return!1;var t=Mr(n,"id");return t!==undefined&&-1<t.indexOf("aria-owns")}).bind(function(n){var t=Mr(n,"id"),e=pr(n);return Ou(e,'[aria-owns="'+t+'"]')})}(n).exists(function(n){return ju(t,n)})}function Bu(n){for(var t=[],e=function(n){t.push(n)},o=0;o<n.length;o++)n[o].each(e);return t}function Au(n,t){for(var e=0;e<n.length;e++){var o=t(n[e],e);if(o.isSome())return o}return on.none()}var _u,Mu,Fu=su("height",function(n){var t=n.dom();return $o(n)?t.getBoundingClientRect().height:t.offsetHeight}),Iu=function(e,o){return{left:nn(e),top:nn(o),translate:function(n,t){return Iu(e+n,o+t)}}},Ru=Iu,Vu=function(n){var t=n.dom(),e=t.ownerDocument.body;return e===t?Ru(e.offsetLeft,e.offsetTop):$o(n)?function(n){var t=n.getBoundingClientRect();return Ru(t.left,t.top)}(t):Ru(0,0)},Nu=su("width",function(n){return n.dom().offsetWidth}),Hu=(Ht().browser.isSafari(),function(o,n){return o.view(n).fold(nn([]),function(n){var t=o.owner(n),e=Hu(o,t);return[n].concat(e)})}),Pu=/* */Object.freeze({view:function(n){return(n.dom()===v.document?on.none():on.from(n.dom().defaultView.frameElement)).map(Be.fromDom)},owner:function(n){return pr(n)}}),zu=lr("point","width","height"),Lu=lr("x","y","width","height"),ju=function(t,n){return function(n,t,e){return Zo(n,t,e).isSome()}(n,function(n){return jt(n,t.element())},nn(!1))||Du(t,n)},Uu="unknown";(Mu=_u=_u||{})[Mu.STOP=0]="STOP",Mu[Mu.NORMAL=1]="NORMAL",Mu[Mu.LOGGING=2]="LOGGING";function Wu(t,n,e){switch(Nn(za.get(),t).orThunk(function(){var n=wn(za.get());return Au(n,function(n){return-1<t.indexOf(n)?on.some(za.get()[n]):on.none()})}).getOr(_u.NORMAL)){case _u.NORMAL:return e(ja());case _u.LOGGING:var o=function(t,e){var o=[],r=(new Date).getTime();return{logEventCut:function(n,t,e){o.push({outcome:"cut",target:t,purpose:e})},logEventStopped:function(n,t,e){o.push({outcome:"stopped",target:t,purpose:e})},logNoParent:function(n,t,e){o.push({outcome:"no-parent",target:t,purpose:e})},logEventNoHandlers:function(n,t){o.push({outcome:"no-handlers-left",target:t})},logEventResponse:function(n,t,e){o.push({outcome:"response",purpose:e,target:t})},write:function(){var n=(new Date).getTime();vn(["mousemove","mouseover","mouseout",Mo()],t)||v.console.log(t,{event:t,time:n-r,target:e.dom(),sequence:S(o,function(n){return vn(["cut","stopped","response"],n.outcome)?"{"+n.purpose+"} "+n.outcome+" at ("+Nr(n.target)+")":n.outcome})})}}}(t,n),r=e(o);return o.write(),r;case _u.STOP:return!0}}function Gu(n,t,e){return Wu(n,t,e)}function Xu(){return mt("markers",[ct("backgroundMenu")].concat(Ua()).concat(Wa()))}function Yu(n){return mt("markers",S(n,ct))}function qu(n,t,e){return function(){var n=new Error;if(n.stack===undefined)return;var t=n.stack.split("\n");T(t,function(t){return 0<t.indexOf("alloy")&&!x(La,function(n){return-1<t.indexOf(n)})}).getOr(Uu)}(),he(t,t,e,Zn(function(e){return an.value(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return e.apply(undefined,n)})}))}function Ku(n){return qu(0,n,j(Z))}function Ju(n){return qu(0,n,j(on.none))}function $u(n){return qu(0,n,Mn())}function Qu(n){return qu(0,n,Mn())}function Zu(n,t){return At(n,nn(t))}function na(n){return At(n,l)}function ta(n){return n.x()}function ea(n,t){return n.x()+n.width()/2-t.width()/2}function oa(n,t){return n.x()+n.width()-t.width()}function ra(n,t){return n.y()-t.height()}function ia(n){return n.y()+n.height()}function ua(n,t){return n.y()+n.height()/2-t.height()/2}function aa(n,t,e){return qa(ta(n),ia(n),e.southeast(),Ja(),"layout-se")}function ca(n,t,e){return qa(oa(n,t),ia(n),e.southwest(),$a(),"layout-sw")}function sa(n,t,e){return qa(ta(n),ra(n,t),e.northeast(),Qa(),"layout-ne")}function fa(n,t,e){return qa(oa(n,t),ra(n,t),e.northwest(),Za(),"layout-nw")}function la(n,t,e){return qa(function(n){return n.x()+n.width()}(n),ua(n,t),e.east(),ec(),"layout-e")}function da(n,t,e){return qa(function(n,t){return n.x()-t.width()}(n,t),ua(n,t),e.west(),oc(),"layout-w")}function ma(){return[aa,ca,sa,fa,ic,rc]}function ga(){return[ca,aa,fa,sa,ic,rc]}function pa(e,o,r){return Ni(function(n,t){r(n,e,o)})}function ha(n,t,e,o,r,i){var u=qn(n),a=wt(t,[function(n,t){return vt(n,qn(t))}("config",n)]);return uc(u,a,t,e,o,r,i)}function va(r,i,u){return function(n,t,e){var o=e.toString(),r=o.indexOf(")")+1,i=o.indexOf("("),u=o.substring(i+1,r-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:t,parameters:Qi(u.slice(0,1).concat(u.slice(3)))}},n}(function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];var o=[e].concat(n);return e.config({name:nn(r)}).fold(function(){throw new Error("We could not find any behaviour configuration for: "+r+". Using API: "+u)},function(n){var t=Array.prototype.slice.call(o,1);return i.apply(undefined,[e,n.config,n.state].concat(t))})},u,i)}function ba(n){return{key:n,value:undefined}}function ya(n){return K(n)}function xa(n){var t=ot("Creating behaviour: "+n.name,ac,n);return ha(t.fields,t.name,t.active,t.apis,t.extra,t.state)}function wa(n){var t=ot("Creating behaviour: "+n.name,cc,n);return function(n,t,e,o,r,i){var u=n,a=wt(t,[vt("config",n)]);return uc(u,a,t,e,o,r,i)}(it(t.branchKey,t.branches),t.name,t.active,t.apis,t.extra,t.state)}function Sa(n){n.dom().focus()}function Ca(n){var t=n!==undefined?n.dom():v.document;return on.from(t.activeElement).map(Be.fromDom)}function ka(t){return Ca(pr(t)).filter(function(n){return t.dom().contains(n.dom())})}function Oa(n,e){var o=pr(e),t=Ca(o).bind(function(t){function n(n){return jt(t,n)}return n(e)?on.some(e):nr(e,n)}),r=n(e);return t.each(function(t){Ca(o).filter(function(n){return jt(n,t)}).fold(function(){Sa(t)},Z)}),r}function Ta(n,t,e){function r(n){return Nn(e,n).getOr([])}function o(n,t,e){var o=_(gc,e);return{offset:function(){return Ru(n,t)},classesOn:function(){return D(e,r)},classesOff:function(){return D(o,r)}}}return{southeast:function(){return o(-n,t,["top","alignLeft"])},southwest:function(){return o(n,t,["top","alignRight"])},south:function(){return o(-n/2,t,["top","alignCentre"])},northeast:function(){return o(-n,-t,["bottom","alignLeft"])},northwest:function(){return o(n,-t,["bottom","alignRight"])},north:function(){return o(-n/2,-t,["bottom","alignCentre"])},east:function(){return o(n,-t/2,["valignCentre","left"])},west:function(){return o(-n,-t/2,["valignCentre","right"])},innerNorthwest:function(){return o(-n,t,["top","alignRight"])},innerNortheast:function(){return o(n,t,["top","alignLeft"])},innerNorth:function(){return o(-n/2,t,["top","alignCentre"])},innerSouthwest:function(){return o(-n,-t,["bottom","alignRight"])},innerSoutheast:function(){return o(n,-t,["bottom","alignLeft"])},innerSouth:function(){return o(-n/2,-t,["bottom","alignCentre"])},innerWest:function(){return o(n,-t/2,["valignCentre","right"])},innerEast:function(){return o(-n,-t/2,["valignCentre","left"])}}}function Ea(){return Ta(0,0,{})}function Da(n,t,e,o,r,i){var u=t.x()-e,a=t.y()-o,c=r-(u+t.width()),s=i-(a+t.height()),f=on.some(u),l=on.some(a),d=on.some(c),m=on.some(s),g=on.none();return function(n,t,e,o,r,i,u,a,c){return n.fold(t,e,o,r,i,u,a,c)}(t.direction(),function(){return hc(n,f,l,g,g)},function(){return hc(n,g,l,d,g)},function(){return hc(n,f,g,g,m)},function(){return hc(n,g,g,d,m)},function(){return hc(n,f,l,g,g)},function(){return hc(n,f,g,g,m)},function(){return hc(n,f,l,g,g)},function(){return hc(n,g,l,d,g)})}function Ba(n,t){var e=d(yu,t),o=n.fold(e,e,function(){var n=hu();return yu(t).translate(-n.left(),-n.top())}),r=pu(t),i=lu(t);return xu(o.left(),o.top(),r,i)}function Aa(n){return n}function _a(t,e){return function(n){return"rtl"===wc(n)?e:t}}function Ma(){return wt("layouts",[ct("onLtr"),ct("onRtl")])}function Fa(t,n,e,o){var r=n.layouts.map(function(n){return n.onLtr(t)}).getOr(e),i=n.layouts.map(function(n){return n.onRtl(t)}).getOr(o);return _a(r,i)(t)}function Ia(n,t,e){var o=n.document.createRange();return function(e,n){n.fold(function(n){e.setStartBefore(n.dom())},function(n,t){e.setStart(n.dom(),t)},function(n){e.setStartAfter(n.dom())})}(o,t),function(e,n){n.fold(function(n){e.setEndBefore(n.dom())},function(n,t){e.setEnd(n.dom(),t)},function(n){e.setEndAfter(n.dom())})}(o,e),o}function Ra(n,t,e,o,r){var i=n.document.createRange();return i.setStart(t.dom(),e),i.setEnd(o.dom(),r),i}function Va(n){return{left:nn(n.left),top:nn(n.top),right:nn(n.right),bottom:nn(n.bottom),width:nn(n.width),height:nn(n.height)}}function Na(n,t,e){return t(Be.fromDom(e.startContainer),e.startOffset,Be.fromDom(e.endContainer),e.endOffset)}function Ha(n,t){return function(n,t){var e=t.ltr();return e.collapsed?t.rtl().filter(function(n){return!1===n.collapsed}).map(function(n){return Bc.rtl(Be.fromDom(n.endContainer),n.endOffset,Be.fromDom(n.startContainer),n.startOffset)}).getOrThunk(function(){return Na(0,Bc.ltr,e)}):Na(0,Bc.ltr,e)}(0,function(r,n){return n.match({domRange:function(n){return{ltr:nn(n),rtl:on.none}},relative:function(n,t){return{ltr:L(function(){return Ia(r,n,t)}),rtl:L(function(){return on.some(Ia(r,t,n))})}},exact:function(n,t,e,o){return{ltr:L(function(){return Ra(r,n,t,e,o)}),rtl:L(function(){return on.some(Ra(r,e,o,n,t))})}}})}(n,t))}function Pa(n,t,e){return t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom}var za=Ee({}),La=["alloy/data/Fields","alloy/debugging/Debugging"],ja=nn({logEventCut:Z,logEventStopped:Z,logNoParent:Z,logEventNoHandlers:Z,logEventResponse:Z,write:Z}),Ua=nn([ct("menu"),ct("selectedMenu")]),Wa=nn([ct("item"),ct("selectedItem")]),Ga=(nn(de(Wa().concat(Ua()))),nn(de(Wa()))),Xa=mt("initSize",[ct("numColumns"),ct("numRows")]),Ya=nn(Xa),qa=lr("x","y","bubble","direction","label"),Ka=En([{southeast:[]},{southwest:[]},{northeast:[]},{northwest:[]},{south:[]},{north:[]},{east:[]},{west:[]}]),Ja=Ka.southeast,$a=Ka.southwest,Qa=Ka.northeast,Za=Ka.northwest,nc=Ka.south,tc=Ka.north,ec=Ka.east,oc=Ka.west,rc=function(n,t,e){return qa(ea(n,t),ra(n,t),e.north(),tc(),"layout-n")},ic=function(n,t,e){return qa(ea(n,t),ia(n),e.south(),nc(),"layout-s")},uc=function(e,n,o,r,t,i,u){function a(n){return $(n,o)?n[o]():on.none()}var c=P(t,function(n,t){return va(o,n,t)}),s=P(i,function(n,t){return Lr(n,t)}),f=N(N(N({},s),c),{revoke:d(ba,o),config:function(n){var t=ot(o+"-config",e,n);return{key:o,value:{config:t,me:f,configAsRaw:L(function(){return ot(o+"-config",e,n)}),initialConfig:n,state:u}}},schema:function(){return n},exhibit:function(n,e){return a(n).bind(function(t){return Nn(r,"exhibit").map(function(n){return n(e,t.config,t.state)})}).getOr(Gr({}))},name:function(){return o},handlers:function(n){return a(n).map(function(n){return Y("events",function(n,t){return{}})(r)(n.config,n.state)}).getOr({})}});return f},ac=qn([ct("fields"),ct("name"),St("active",{}),St("apis",{}),St("state",nu),St("extra",{})]),cc=qn([ct("branchKey"),ct("branches"),ct("name"),St("active",{}),St("apis",{}),St("state",nu),St("extra",{})]),sc=nn(undefined),fc=/* */Object.freeze({events:function(t){return tr([rr(Oo(),function(r,i){var u=t.channels,n=function(n,t){return t.universal()?n:C(n,function(n){return vn(t.channels(),n)})}(wn(u),i);bn(n,function(n){var t=u[n],e=t.schema,o=ot("channel["+n+"] data\nReceiver: "+Nr(r.element()),e,i.data());t.onReceive(r,o)})})])}}),lc=[st("channels",nt(an.value,qn([$u("onReceive"),St("schema",xe())])))],dc=xa({fields:lc,name:"receiving",active:fc}),mc=/* */Object.freeze({exhibit:function(n,t){return Gr({classes:[],styles:t.useFixed()?{}:{position:"relative"}})}}),gc=["valignCentre","alignLeft","alignRight","alignCentre","top","bottom","left","right"],pc=gr(["x","y","width","height","maxHeight","maxWidth","direction","classes","label","candidateYforTest"],[]),hc=lr("position","left","top","right","bottom"),vc=En([{none:[]},{relative:["x","y","width","height"]},{fixed:["x","y","width","height"]}]),bc=function(n,t,e){var o=Ru(t,e);return n.fold(nn(o),nn(o),function(){var n=hu();return o.translate(-n.left(),-n.top())})},yc=vc.relative,xc=vc.fixed,wc=function(n){return"rtl"===mi(n,"direction")?"rtl":"ltr"},Sc=[ct("hotspot"),ht("bubble"),St("overrides",{}),Ma(),Zu("placement",function(n,t,e){var o=t.hotspot,r=Ba(e,o.element()),i=Fa(n.element(),t,ma(),ga());return on.some(Aa({anchorBox:r,bubble:t.bubble.getOr(Ea()),overrides:t.overrides,layouts:i,placer:on.none()}))})],Cc=[ct("x"),ct("y"),St("height",0),St("width",0),St("bubble",Ea()),St("overrides",{}),Ma(),Zu("placement",function(n,t,e){var o=bc(e,t.x,t.y),r=xu(o.left(),o.top(),t.width,t.height),i=Fa(n.element(),t,[aa,ca,sa,fa,ic,rc,la,da],[ca,aa,fa,sa,ic,rc,la,da]);return on.some(Aa({anchorBox:r,bubble:t.bubble,overrides:t.overrides,layouts:i,placer:on.none()}))})],kc={create:lr("start","soffset","finish","foffset")},Oc=En([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),Tc=(Oc.before,Oc.on,Oc.after,function(n){return n.fold(l,l,l)}),Ec=En([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),Dc={domRange:Ec.domRange,relative:Ec.relative,exact:Ec.exact,exactFromRange:function(n){return Ec.exact(n.start(),n.soffset(),n.finish(),n.foffset())},getWin:function(n){var t=function(n){return n.match({domRange:function(n){return Be.fromDom(n.startContainer)},relative:function(n,t){return Tc(n)},exact:function(n,t,e,o){return n}})}(n);return vr(t)},range:kc.create},Bc=En([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]);function Ac(n){return uf.get(n)}function _c(n){return uf.getOption(n)}function Mc(e,o,n,t,r){function i(n){var t=e.dom().createRange();return t.setStart(o.dom(),n),t.collapse(!0),t}var u=Ac(o).length,a=function(n,t,e,o,r){if(0===r)return 0;if(t===o)return r-1;for(var i=o,u=1;u<r;u++){var a=n(u),c=Math.abs(t-a.left);if(e<=a.bottom){if(e<a.top||i<c)return u-1;i=c}}return 0}(function(n){return i(n).getBoundingClientRect()},n,t,r.right,u);return i(a)}function Fc(n){return function(n){return _c(n).filter(function(n){return 0!==n.trim().length||-1<n.indexOf("\xa0")}).isSome()}(n)||vn(cf,Ko(n))}function Ic(n){return nr(n,Fc)}function Rc(n){return sf(n,Fc)}function Vc(n,t){return t-n.left<n.right-t}function Nc(n,t,e){var o=n.dom().createRange();return o.selectNode(t.dom()),o.collapse(e),o}function Hc(t,n,e){var o=t.dom().createRange();o.selectNode(n.dom());var r=o.getBoundingClientRect(),i=Vc(r,e);return(!0===i?Ic:Rc)(n).map(function(n){return Nc(t,n,i)})}function Pc(n,t,e){var o=t.dom().getBoundingClientRect(),r=Vc(o,e);return on.some(Nc(n,t,r))}function zc(n,t,e,o){var r=n.dom().createRange();r.selectNode(t.dom());var i=r.getBoundingClientRect();return function(n,t,e,o){var r=n.dom().createRange();r.selectNode(t.dom());var i=r.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,e)),a=Math.max(i.top,Math.min(i.bottom,o));return af(n,t,u,a)}(n,t,Math.max(i.left,Math.min(i.right,e)),Math.max(i.top,Math.min(i.bottom,o)))}function Lc(n,t){return Lt(t,n)}function jc(n,t,e,o){var r=function(n,t,e,o){var r=pr(n).dom().createRange();return r.setStart(n.dom(),t),r.setEnd(e.dom(),o),r}(n,t,e,o),i=jt(n,e)&&t===o;return r.collapsed&&!i}function Uc(n){var t=Be.fromDom(n.anchorNode),e=Be.fromDom(n.focusNode);return jc(t,n.anchorOffset,e,n.focusOffset)?on.some(kc.create(t,n.anchorOffset,e,n.focusOffset)):function(n){if(0<n.rangeCount){var t=n.getRangeAt(0),e=n.getRangeAt(n.rangeCount-1);return on.some(kc.create(Be.fromDom(t.startContainer),t.startOffset,Be.fromDom(e.endContainer),e.endOffset))}return on.none()}(n)}function Wc(n,t){return function(n){var t=n.getClientRects(),e=0<t.length?t[0]:n.getBoundingClientRect();return 0<e.width||0<e.height?on.some(e).map(Va):on.none()}(function(i,n){return Ha(i,n).match({ltr:function(n,t,e,o){var r=i.document.createRange();return r.setStart(n.dom(),t),r.setEnd(e.dom(),o),r},rtl:function(n,t,e,o){var r=i.document.createRange();return r.setStart(e.dom(),o),r.setEnd(n.dom(),t),r}})}(n,t))}function Gc(n){return n.fold(function(n){return n},function(n,t,e){return n.translate(-t,-e)})}function Xc(n){return n.fold(function(n){return n},function(n,t,e){return n})}function Yc(n){return O(n,function(n,t){return n.translate(t.left(),t.top())},Ru(0,0))}function qc(n){var t=S(n,Xc);return Yc(t)}function Kc(n,t,e){var o=pr(n.element()),r=hu(o),i=function(o,n,t){var e=vr(t.root).dom();return on.from(e.frameElement).map(Be.fromDom).filter(function(n){var t=pr(n),e=pr(o.element());return jt(t,e)}).map(mu)}(n,0,e).getOr(r);return mf(i,r.left(),r.top())}function Jc(n,t){return _i(n)?hf(n,t):function(n,t){var e=xr(n);if(0===e.length)return ff(n,t);if(t<e.length)return ff(e[t],0);var o=e[e.length-1],r=_i(o)?Ac(o).length:xr(o).length;return ff(o,r)}(n,t)}function $c(n,t){return t.getSelection.getOrThunk(function(){return function(){return function(n){return on.from(n.getSelection()).filter(function(n){return 0<n.rangeCount}).bind(Uc)}(n)}})().map(function(n){var t=Jc(n.start(),n.soffset()),e=Jc(n.finish(),n.foffset());return Dc.range(t.element(),t.offset(),e.element(),e.offset())})}function Qc(n){return n.x()+n.width()}function Zc(n,t){return n.x()-t.width()}function ns(n,t){return n.y()-t.height()+n.height()}function ts(n){return n.y()}function es(n,t,e){return qa(Qc(n),ts(n),e.southeast(),Ja(),"link-layout-se")}function os(n,t,e){return qa(Zc(n,t),ts(n),e.southwest(),$a(),"link-layout-sw")}function rs(n,t,e){return qa(Qc(n),ns(n,t),e.northeast(),Qa(),"link-layout-ne")}function is(n,t,e){return qa(Zc(n,t),ns(n,t),e.northwest(),Za(),"link-layout-nw")}function us(n,t,e,o){var r=n+t;return o<r?e:r<e?o:r}function as(n,t,e){return n<=t?t:e<=n?e:n}function cs(n,t,e,o){var r=n.x(),i=n.y(),u=n.bubble().offset().left(),a=n.bubble().offset().top(),c=o.y(),s=o.bottom(),f=o.x(),l=o.right(),d=i+a,m=function(n,t,e,o,r){var i=r.x(),u=r.y(),a=r.width(),c=r.height(),s=i<=n,f=u<=t,l=s&&f,d=n+e<=i+a&&t+o<=u+c,m=Math.abs(Math.min(e,s?i+a-n:i-(n+e))),g=Math.abs(Math.min(o,f?u+c-t:u-(t+o)));return{originInBounds:l,sizeInBounds:d,limitX:as(n,r.x(),r.right()),limitY:as(t,r.y(),r.bottom()),deltaW:m,deltaH:g}}(r+u,d,t,e,o),g=m.originInBounds,p=m.sizeInBounds,h=m.limitX,v=m.limitY,b=m.deltaW,y=m.deltaH,x=nn(v+y-c),w=nn(s-v),S=function(n,t,e,o){return n.fold(t,t,o,o,t,o,e,e)}(n.direction(),w,w,x),C=nn(h+b-f),k=nn(l-h),O=function(n,t,e,o){return n.fold(t,o,t,o,e,e,t,o)}(n.direction(),k,k,C),T=pc({x:h,y:v,width:b,height:y,maxHeight:S,maxWidth:O,direction:n.direction(),classes:{on:n.bubble().classesOn(),off:n.bubble().classesOff()},label:n.label(),candidateYforTest:d});return g&&p?Sf.fit(T):Sf.nofit(T,b,y)}function ss(n,t,e,o){hi(t,"max-height"),hi(t,"max-width");var r=function(n){return{width:nn(pu(n)),height:nn(lu(n))}}(t);return function(n,e,u,a,c){function o(n,o,r,i){var t=n(e,u,a);return cs(t,s,f,c).fold(Sf.fit,function(n,t,e){return i<e||r<t?Sf.nofit(n,t,e):Sf.nofit(o,r,i)})}var s=u.width(),f=u.height();return O(n,function(n,t){var e=d(o,t);return n.fold(Sf.fit,e)},Sf.nofit(pc({x:e.x(),y:e.y(),width:u.width(),height:u.height(),maxHeight:u.height(),maxWidth:u.width(),direction:Ja(),classes:{on:[],off:[]},label:"none",candidateYforTest:e.y()}),-1,-1)).fold(l,l)}(o.preference(),n,r,e,o.bounds())}function fs(n,t,e){function o(n){return n+"px"}var r=function(n,r){return n.fold(function(){return hc("absolute",on.some(r.x()),on.some(r.y()),on.none(),on.none())},function(n,t,e,o){return Da("absolute",r,n,t,e,o)},function(n,t,e,o){return Da("fixed",r,n,t,e,o)})}(e.origin(),t);!function(n,t){var e=n.dom();Cn(t,function(n,t){n.fold(function(){fi(e,t)},function(n){si(e,t,n)})})}(n,{position:on.some(r.position()),left:r.left().map(o),top:r.top().map(o),right:r.right().map(o),bottom:r.bottom().map(o)})}function ls(n,t){!function(n,t){var e=Fu.max(n,t,["margin-top","border-top-width","padding-top","padding-bottom","border-bottom-width","margin-bottom"]);li(n,"max-height",e+"px")}(n,Math.floor(t))}function ds(n,t,e){return n[t]===undefined?e:n[t]}function ms(n,t,e,o,r,i){var u=ds(i,"maxHeightFunction",Cf()),a=ds(i,"maxWidthFunction",Z),c=n.anchorBox(),s=n.origin(),f=Of({bounds:function(o,n){return n.fold(function(){return o.fold(Cu,Cu,xu)},function(e){return o.fold(e,e,function(){var n=e(),t=bc(o,n.x(),n.y());return xu(t.left(),t.top(),n.width(),n.height())})})}(s,r),origin:s,preference:o,maxHeightFunction:u,maxWidthFunction:a});Tf(c,t,e,f)}function gs(n,t,e,o,r){var i=function(n,t){return wf(n,t)}(e.anchorBox,t);ms(i,r.element(),e.bubble,e.layouts,o,e.overrides)}function ps(n,t){Pi(n.element(),t.element())}function hs(t,n){var e=t.components();!function(n){bn(n.components(),function(n){return zi(n.element())}),Tr(n.element()),n.syncComponents()}(t);var o=_(e,n);bn(o,function(n){Mf(n),t.getSystem().removeFromWorld(n)}),bn(n,function(n){n.getSystem().isConnected()?ps(t,n):(t.getSystem().addToWorld(n),ps(t,n),$o(t.element())&&Ff(n)),t.syncComponents()})}function vs(n,t){If(n,t,Pi)}function bs(n){Mf(n),zi(n.element()),n.getSystem().removeFromWorld(n)}function ys(t){var n=br(t.element()).bind(function(n){return t.getSystem().getByDom(n).toOption()});bs(t),n.each(function(n){n.syncComponents()})}function xs(n){var t=n.components();bn(t,bs),Tr(n.element()),n.syncComponents()}function ws(n,t){Rf(n,t,Pi)}function Ss(t){var n=xr(t.element());bn(n,function(n){t.getByDom(n).each(Mf)}),zi(t.element())}function Cs(t,n,e,o){e.get().each(function(n){xs(t)});var r=n.getAttachPoint(t);vs(r,t);var i=t.getSystem().build(o);return vs(t,i),e.set(i),i}function ks(n,t,e,o){var r=Cs(n,t,e,o);return t.onOpen(n,r),r}function Os(t,e,o){o.get().each(function(n){xs(t),ys(t),e.onClose(t,n),o.clear()})}function Ts(n,t,e){return e.isOpen()}function Es(n){var t,e=ot("Dismissal",Gf,n);return(t={})[jf()]={schema:qn([ct("target")]),onReceive:function(t,n){Lf.isOpen(t)&&(Lf.isPartOf(t,n.target)||e.isExtraPart(t,n.target)||e.fireEventInstead.fold(function(){return Lf.close(t)},function(n){return Yt(t,n.event)}))}},t}function Ds(n){var t,e=ot("Reposition",Xf,n);return(t={})[Uf()]={onReceive:function(t){Lf.isOpen(t)&&e.fireEventInstead.fold(function(){return e.doReposition(t)},function(n){return Yt(t,n.event)})}},t}function Bs(n,t,e){t.store.manager.onLoad(n,t,e)}function As(n,t,e){t.store.manager.onUnload(n,t,e)}function _s(){var n=Ee(null);return tu({set:n.set,get:n.get,isNotSet:function(){return null===n.get()},clear:function(){n.set(null)},readState:function(){return{mode:"memory",value:n.get()}}})}function Ms(){var i=Ee({}),u=Ee({});return tu({readState:function(){return{mode:"dataset",dataByValue:i.get(),dataByText:u.get()}},lookup:function(n){return Nn(i.get(),n).orThunk(function(){return Nn(u.get(),n)})},update:function(n){var t=i.get(),e=u.get(),o={},r={};bn(n,function(t){o[t.value]=t,Nn(t,"meta").each(function(n){Nn(n,"text").each(function(n){r[n]=t})})}),i.set(N(N({},t),o)),u.set(N(N({},e),r))},clear:function(){i.set({}),u.set({})}})}function Fs(n,t,e,o){var r=t.store;e.update([o]),r.setValue(n,o),t.onSetValue(n,o)}function Is(t,n){return Bt(t,{},S(n,function(n){return function(t,e){return he(t,t,Fn(),Yn(function(n){return ee("The field: "+t+" is forbidden. "+e)}))}(n.name(),"Cannot configure "+n.name()+" for "+t)}).concat([At("dump",l)]))}function Rs(n){return n.dump}function Vs(n,t){return N(N({},n.dump),ya(t))}function Ns(n,t,e,o){return e.uiType===ol?function(n,t,e,o){return n.exists(function(n){return n!==e.owner})?rl.single(!0,nn(e)):Nn(o,e.name).fold(function(){throw new Error("Unknown placeholder component: "+e.name+"\nKnown: ["+wn(o)+"]\nNamespace: "+n.getOr("none")+"\nSpec: "+JSON.stringify(e,null,2))},function(n){return n.replace()})}(n,0,e,o):rl.single(!1,nn(e))}function Hs(t,e,n,o){var r=P(o,function(n,t){return function(n,t){var e=!1;return{name:nn(n),required:function(){return t.fold(function(n,t){return n},function(n,t){return n})},used:function(){return e},replace:function(){if(!0===e)throw new Error("Trying to use the same placeholder more than once: "+n);return e=!0,t}}}(t,n)}),i=function(t,e,n,o){return D(n,function(n){return il(t,e,n,o)})}(t,e,n,r);return Cn(r,function(n){if(!1===n.used()&&n.required())throw new Error("Placeholder: "+n.name()+" was not found in components list\nNamespace: "+t.getOr("none")+"\nComponents: "+JSON.stringify(e.components,null,2))}),i}function Ps(n){return n.fold(on.some,on.none,on.some,on.some)}function zs(n){function t(n){return n.name}return n.fold(t,t,t,t)}function Ls(e,o){return function(n){var t=ot("Converting part type",o,n);return e(t)}}function js(n,t,e,o){return Bn(t.defaults(n,e,o),e,{uid:n.partUids[t.name]},t.overrides(n,e,o))}function Us(r,n){var t={};return bn(n,function(n){Ps(n).each(function(e){var o=El(r,e.pname);t[e.name]=function(n){var t=ot("Part: "+e.name+" in "+r,de(e.schema),n);return N(N({},o),{config:n,validated:t})}})}),t}function Ws(n,t,e){return{uiType:cl(),owner:n,name:t,config:e,validated:{}}}function Gs(n){return D(n,function(n){return n.fold(on.none,on.some,on.none,on.none).map(function(n){return mt(n.name,n.schema.concat([na(Ol())]))}).toArray()})}function Xs(n){return S(n,zs)}function Ys(n,t,e){return function(n,e,t){var i={},o={};return bn(t,function(n){n.fold(function(o){i[o.pname]=ul(!0,function(n,t,e){return o.factory.sketch(js(n,o,t,e))})},function(n){var t=e.parts[n.name];o[n.name]=nn(n.factory.sketch(js(e,n,t[Ol()]),t))},function(o){i[o.pname]=ul(!1,function(n,t,e){return o.factory.sketch(js(n,o,t,e))})},function(r){i[r.pname]=al(!0,function(t,n,e){var o=t[r.name];return S(o,function(n){return r.factory.sketch(Bn(r.defaults(t,n,e),n,r.overrides(t,n)))})})})}),{internals:nn(i),externals:nn(o)}}(0,t,e)}function qs(n,t,e){return Hs(on.some(n),t,t.components,e)}function Ks(n,t,e){var o=t.partUids[e];return n.getSystem().getByUid(o).toOption()}function Js(n,t,e){return Ks(n,t,e).getOrDie("Could not find part: "+e)}function $s(n,t,e){var o={},r=t.partUids,i=n.getSystem();return bn(e,function(n){o[n]=nn(i.getByUid(r[n]))}),o}function Qs(n,t){var e=n.getSystem();return P(t.partUids,function(n,t){return nn(e.getByUid(n))})}function Zs(n){return wn(n.partUids)}function nf(n,t,e){var o={},r=t.partUids,i=n.getSystem();return bn(e,function(n){o[n]=nn(i.getByUid(r[n]).getOrDie())}),o}function tf(t,n){var e=Xs(n);return K(S(e,function(n){return{key:n,value:t+"-"+n}}))}function ef(t){return he("partUids","partUids",Rn(function(n){return tf(n.uid,t)}),xe())}function of(n,t,e,o,r){var i=function(n,t){return(0<n.length?[mt("parts",n)]:[]).concat([ct("uid"),St("dom",{}),St("components",[]),na("originalSpec"),St("debug.sketcher",{})]).concat(t)}(o,r);return ot(n+" [SpecSchema]",qn(i.concat(t)),e)}function rf(n,t,e,o,r){var i=Bl(r),u=Gs(e),a=ef(e),c=of(n,t,i,u,[a]),s=Ys(0,c,e);return o(c,qs(n,c,s.internals()),i,s.externals())}var uf=function iI(e,o){var t=function(n){return e(n)?on.from(n.dom().nodeValue):on.none()};return{get:function(n){if(!e(n))throw new Error("Can only get "+o+" value of a "+o+" node");return t(n).getOr("")},getOption:t,set:function(n,t){if(!e(n))throw new Error("Can only set raw "+o+" value of a "+o+" node");n.dom().nodeValue=t}}}(_i,"text"),af=function(n,t,e,o){return _i(t)?function(t,e,o,r){var n=t.dom().createRange();n.selectNode(e.dom());var i=n.getClientRects();return Au(i,function(n){return Pa(n,o,r)?on.some(n):on.none()}).map(function(n){return Mc(t,e,o,r,n)})}(n,t,e,o):function(t,n,e,o){var r=t.dom().createRange(),i=xr(n);return Au(i,function(n){return r.selectNode(n.dom()),Pa(r.getBoundingClientRect(),e,o)?af(t,n,e,o):on.none()})}(n,t,e,o)},cf=["img","br"],sf=function(n,i){var u=function(n){for(var t=xr(n),e=t.length-1;0<=e;e--){var o=t[e];if(i(o))return on.some(o);var r=u(o);if(r.isSome())return r}return on.none()};return u(n)},ff=(document.caretPositionFromPoint||document.caretRangeFromPoint,lr("element","offset")),lf=En([{screen:["point"]},{absolute:["point","scrollLeft","scrollTop"]}]),df=lf.screen,mf=lf.absolute,gf=function(n,t,e,o){var r=n,i=t,u=e,a=o;n<0&&(r=0,u=e+n),t<0&&(i=0,a=o+t);var c=df(Ru(r,i));return on.some(zu(c,u,a))},pf=function(n,i,u,a,c){return n.map(function(n){var t=[i,n.point()],e=function(n,t,e,o){return n.fold(t,e,o)}(a,function(){return qc(t)},function(){return qc(t)},function(){return function(n){var t=S(n,Gc);return Yc(t)}(t)}),o=Lu(e.left(),e.top(),n.width(),n.height()),r=Fa(c,u,u.showAbove?[sa,fa,aa,ca,rc,ic]:[aa,ca,sa,fa,ic,ic],u.showAbove?[fa,sa,ca,aa,rc,ic]:[ca,aa,fa,sa,ic,rc]);return Aa({anchorBox:o,bubble:u.bubble.getOr(Ea()),overrides:u.overrides,layouts:r,placer:on.none()})})},hf=lr("element","offset"),vf=[ht("getSelection"),ct("root"),ht("bubble"),Ma(),St("overrides",{}),St("showAbove",!1),Zu("placement",function(n,t,e){var o=vr(t.root).dom(),r=Kc(n,0,t),i=$c(o,t).bind(function(n){return Wc(o,Dc.exactFromRange(n)).orThunk(function(){var t=Be.fromText("\ufeff");return Sr(n.start(),t),Wc(o,Dc.exact(t,0,t,1)).map(function(n){return zi(t),n})}).bind(function(n){return gf(n.left(),n.top(),n.width(),n.height())})}),u=$c(o,t).bind(function(n){return Ai(n.start())?on.some(n.start()):br(n.start())}).getOr(n.element());return pf(i,r,t,e,u)})],bf=[ct("node"),ct("root"),ht("bubble"),Ma(),St("overrides",{}),St("showAbove",!1),Zu("placement",function(r,i,u){var a=Kc(r,0,i);return i.node.bind(function(n){var t=n.dom().getBoundingClientRect(),e=gf(t.left,t.top,t.width,t.height),o=i.node.getOr(r.element());return pf(e,a,i,u,o)})})],yf=[ct("item"),Ma(),St("overrides",{}),Zu("placement",function(n,t,e){var o=Ba(e,t.item.element()),r=Fa(n.element(),t,[es,os,rs,is],[os,es,is,rs]);return on.some(Aa({anchorBox:o,bubble:Ea(),overrides:t.overrides,layouts:r,placer:on.none()}))})],xf=it("anchor",{selection:vf,node:bf,hotspot:Sc,submenu:yf,makeshift:Cc}),wf=lr("anchorBox","origin"),Sf=En([{fit:["reposition"]},{nofit:["reposition","deltaW","deltaH"]}]),Cf=nn(function(n,t){ls(n,t),di(n,{"overflow-x":"hidden","overflow-y":"auto"})}),kf=nn(function(n,t){ls(n,t)}),Of=gr(["bounds","origin","preference","maxHeightFunction","maxWidthFunction"],[]),Tf=function(n,t,e,o){var r=ss(n,t,e,o);fs(t,r,o),function(n,t){var e=t.classes();ai(n,e.off),ui(n,e.on)}(t,r),function(n,t,e){e.maxHeightFunction()(n,t.maxHeight())}(t,r,o),function(n,t,e){e.maxWidthFunction()(n,t.maxWidth())}(t,r,o)},Ef=function(n,t,e,o,r,i){var u=i.map(wu);return Df(n,t,e,o,r,u)},Df=function(r,i,n,t,u,a){var c=ot("positioning anchor.info",xf,t);Oa(function(){li(u.element(),"position","fixed");var n=gi(u.element(),"visibility");li(u.element(),"visibility","hidden");var t=i.useFixed()?function(){var n=v.document.documentElement;return xc(0,0,n.clientWidth,n.clientHeight)}():function(n){var t=mu(n.element()),e=n.element().dom().getBoundingClientRect();return yc(t.left(),t.top(),e.width,e.height)}(r),e=c.placement,o=a.map(nn).or(i.getBounds);e(r,c,t).each(function(n){n.placer.getOr(gs)(r,t,n,o,u)}),n.fold(function(){hi(u.element(),"visibility")},function(n){li(u.element(),"visibility",n)}),gi(u.element(),"left").isNone()&&gi(u.element(),"top").isNone()&&gi(u.element(),"right").isNone()&&gi(u.element(),"bottom").isNone()&&gi(u.element(),"position").is("fixed")&&hi(u.element(),"position")},u.element())},Bf=/* */Object.freeze({position:function(n,t,e,o,r){Ef(n,t,e,o,r,on.none())},positionWithin:Ef,positionWithinBounds:Df,getMode:function(n,t,e){return t.useFixed()?"fixed":"absolute"}}),Af=[St("useFixed",u),ht("getBounds")],_f=xa({fields:Af,name:"positioning",active:mc,apis:Bf}),Mf=function(n){Yt(n,Ho());var t=n.components();bn(t,Mf)},Ff=function(n){var t=n.components();bn(t,Ff),Yt(n,No())},If=function(n,t,e){n.getSystem().addToWorld(t),e(n.element(),t.element()),$o(n.element())&&Ff(t),n.syncComponents()},Rf=function(n,t,e){e(n,t.element());var o=xr(t.element());bn(o,function(n){t.getByDom(n).each(Ff)})},Vf=function(n,t,e){var o=t.getAttachPoint(n);li(n.element(),"position",_f.getMode(o)),function(t,n,e,o){gi(t.element(),n).fold(function(){Ir(t.element(),e)},function(n){_r(t.element(),e,n)}),li(t.element(),n,o)}(n,"visibility",t.cloakVisibilityAttr,"hidden")},Nf=function(n,t,e){!function(t){return x(["top","left","right","bottom"],function(n){return gi(t,n).isSome()})}(n.element())&&hi(n.element(),"position"),function(n,t,e){if(Fr(n.element(),e)){var o=Mr(n.element(),e);li(n.element(),t,o)}else hi(n.element(),t)}(n,"visibility",t.cloakVisibilityAttr)},Hf=/* */Object.freeze({cloak:Vf,decloak:Nf,open:ks,openWhileCloaked:function(n,t,e,o,r){Vf(n,t),ks(n,t,e,o),r(),Nf(n,t)},close:Os,isOpen:Ts,isPartOf:function(t,e,n,o){return Ts(0,0,n)&&n.get().exists(function(n){return e.isPartOf(t,n,o)})},getState:function(n,t,e){return e.get()},setContent:function(n,t,e,o){return e.get().map(function(){return Cs(n,t,e,o)})}}),Pf=/* */Object.freeze({events:function(e,o){return tr([rr(Ao(),function(n,t){Os(n,e,o)})])}}),zf=[Ku("onOpen"),Ku("onClose"),ct("isPartOf"),ct("getAttachPoint"),St("cloakVisibilityAttr","data-precloak-visibility")],Lf=xa({fields:zf,name:"sandboxing",active:Pf,apis:Hf,state:/* */Object.freeze({init:function(){var t=Ee(on.none()),n=nn("not-implemented");return tu({readState:n,isOpen:function(){return t.get().isSome()},clear:function(){t.set(on.none())},set:function(n){t.set(on.some(n))},get:function(n){return t.get()}})}})}),jf=nn("dismiss.popups"),Uf=nn("reposition.popups"),Wf=nn("mouse.released"),Gf=qn([St("isExtraPart",nn(!1)),wt("fireEventInstead",[St("event",Po())])]),Xf=qn([St("isExtraPart",nn(!1)),wt("fireEventInstead",[St("event",zo())]),dt("doReposition")]),Yf=/* */Object.freeze({onLoad:Bs,onUnload:As,setValue:function(n,t,e,o){t.store.manager.setValue(n,t,e,o)},getValue:function(n,t,e){return t.store.manager.getValue(n,t,e)},getState:function(n,t,e){return e}}),qf=/* */Object.freeze({events:function(e,o){var n=e.resetOnDom?[Ri(function(n,t){Bs(n,e,o)}),Vi(function(n,t){As(n,e,o)})]:[pa(e,o,Bs)];return tr(n)}}),Kf=/* */Object.freeze({memory:_s,dataset:Ms,manual:function(){return tu({readState:function(){}})},init:function(n){return n.store.manager.state(n)}}),Jf=[ht("initialValue"),ct("getFallbackEntry"),ct("getDataKey"),ct("setValue"),Zu("manager",{setValue:Fs,getValue:function(n,t,e){var o=t.store,r=o.getDataKey(n);return e.lookup(r).fold(function(){return o.getFallbackEntry(r)},function(n){return n})},onLoad:function(t,e,o){e.store.initialValue.each(function(n){Fs(t,e,o,n)})},onUnload:function(n,t,e){e.clear()},state:Ms})],$f=[ct("getValue"),St("setValue",Z),ht("initialValue"),Zu("manager",{setValue:function(n,t,e,o){t.store.setValue(n,o),t.onSetValue(n,o)},getValue:function(n,t,e){return t.store.getValue(n)},onLoad:function(t,e,n){e.store.initialValue.each(function(n){e.store.setValue(t,n)})},onUnload:Z,state:nu.init})],Qf=[ht("initialValue"),Zu("manager",{setValue:function(n,t,e,o){e.set(o),t.onSetValue(n,o)},getValue:function(n,t,e){return e.get()},onLoad:function(n,t,e){t.store.initialValue.each(function(n){e.isNotSet()&&e.set(n)})},onUnload:function(n,t,e){e.clear()},state:_s})],Zf=[Ct("store",{mode:"memory"},it("mode",{memory:Qf,manual:$f,dataset:Jf})),Ku("onSetValue"),St("resetOnDom",!1)],nl=xa({fields:Zf,name:"representing",active:qf,apis:Yf,extra:{setValueFrom:function(n,t){var e=nl.getValue(t);nl.setValue(n,e)}},state:Kf}),tl=Is,el=Vs,ol="placeholder",rl=En([{single:["required","valueThunk"]},{multiple:["required","valueThunks"]}]),il=function(i,u,a,c){return Ns(i,0,a,c).fold(function(n,t){var e=t(u,a.config,a.validated),o=Nn(e,"components").getOr([]),r=D(o,function(n){return il(i,u,n,c)});return[N(N({},e),{components:r})]},function(n,t){var e=t(u,a.config,a.validated);return a.validated.preprocess.getOr(l)(e)})},ul=rl.single,al=rl.multiple,cl=nn(ol),sl=En([{required:["data"]},{external:["data"]},{optional:["data"]},{group:["data"]}]),fl=St("factory",{sketch:l}),ll=St("schema",[]),dl=ct("name"),ml=he("pname","pname",In(function(n){return"<alloy."+Hr(n.name)+">"}),xe()),gl=At("schema",function(){return[ht("preprocess")]}),pl=St("defaults",nn({})),hl=St("overrides",nn({})),vl=de([fl,ll,dl,ml,pl,hl]),bl=de([fl,ll,dl,pl,hl]),yl=de([fl,ll,dl,ml,pl,hl]),xl=de([fl,gl,dl,ct("unit"),ml,pl,hl]),wl=Ls(sl.required,vl),Sl=Ls(sl.external,bl),Cl=Ls(sl.optional,yl),kl=Ls(sl.group,xl),Ol=nn("entirety"),Tl=/* */Object.freeze({required:wl,external:Sl,optional:Cl,group:kl,asNamedPart:Ps,name:zs,asCommon:function(n){return n.fold(l,l,l,l)},original:Ol}),El=function(n,t){return{uiType:cl(),owner:n,name:t}},Dl=/* */Object.freeze({generate:Us,generateOne:Ws,schemas:Gs,names:Xs,substitutes:Ys,components:qs,defaultUids:tf,defaultUidsSchema:ef,getAllParts:Qs,getAllPartNames:Zs,getPart:Ks,getPartOrDie:Js,getParts:$s,getPartsOrDie:nf}),Bl=function(n){return n.hasOwnProperty("uid")?n:N(N({},n),{uid:Pr("uid")})};function Al(n){var t=ot("Sketcher for "+n.name,Jl,n),e=P(t.apis,Ur),o=P(t.extraApis,function(n,t){return Lr(n,t)});return N(N({name:nn(t.name),partFields:nn([]),configFields:nn(t.configFields),sketch:function(n){return function(n,t,e,o){var r=Bl(o);return e(of(n,t,r,[],[]),r)}(t.name,t.configFields,t.factory,n)}},e),o)}function _l(n){var t=ot("Sketcher for "+n.name,$l,n),e=Us(t.name,t.partFields),o=P(t.apis,Ur),r=P(t.extraApis,function(n,t){return Lr(n,t)});return N(N({name:nn(t.name),partFields:nn(t.partFields),configFields:nn(t.configFields),sketch:function(n){return rf(t.name,t.configFields,t.partFields,t.factory,n)},parts:nn(e)},o),r)}function Ml(n){return"input"===Ko(n)&&"radio"!==Mr(n,"type")||"textarea"===Ko(n)}function Fl(e,o,n,r){var t=Lc(e.element(),"."+o.highlightClass);bn(t,function(t){x(r,function(n){return n.element()===t})||(ri(t,o.highlightClass),e.getSystem().getByDom(t).each(function(n){o.onDehighlight(e,n),Yt(n,Xo())}))})}function Il(n,t,e,o){Fl(n,t,0,[o]),td(n,t,e,o)||(ei(o.element(),t.highlightClass),t.onHighlight(n,o),Yt(o,Go()))}function Rl(e,t,n,o){var r=Lc(e.element(),"."+t.itemClass);return E(r,function(n){return ii(n,t.highlightClass)}).bind(function(n){var t=us(n,o,0,r.length-1);return e.getSystem().getByDom(r[t]).toOption()})}function Vl(n,t,e){var o=A(n.slice(0,t)),r=A(n.slice(t+1));return T(o.concat(r),e)}function Nl(n,t,e){var o=A(n.slice(0,t));return T(o,e)}function Hl(n,t,e){var o=n.slice(0,t),r=n.slice(t+1);return T(r.concat(o),e)}function Pl(n,t,e){var o=n.slice(t+1);return T(o,e)}function zl(e){return function(n){var t=n.raw();return vn(e,t.which)}}function Ll(n){return function(t){return B(n,function(n){return n(t)})}}function jl(n){return!0===n.raw().shiftKey}function Ul(n){return!0===n.raw().ctrlKey}function Wl(n,t){return{matches:n,classification:t}}function Gl(n,t,e){t.exists(function(t){return e.exists(function(n){return jt(n,t)})})||qt(n,Lo(),{prevFocus:t,newFocus:e})}function Xl(){function r(n){return ka(n.element())}return{get:r,set:function(n,t){var e=r(n);n.getSystem().triggerFocus(t,n.element());var o=r(n);Gl(n,e,o)}}}function Yl(){function r(n){return cd.getHighlighted(n).map(function(n){return n.element()})}return{get:r,set:function(t,n){var e=r(t);t.getSystem().getByDom(n).fold(Z,function(n){cd.highlight(t,n)});var o=r(t);Gl(t,e,o)}}}var ql,Kl,Jl=qn([ct("name"),ct("factory"),ct("configFields"),St("apis",{}),St("extraApis",{})]),$l=qn([ct("name"),ct("factory"),ct("configFields"),ct("partFields"),St("apis",{}),St("extraApis",{})]),Ql=/* */Object.freeze({getCurrent:function(n,t,e){return t.find(n)}}),Zl=[ct("find")],nd=xa({fields:Zl,name:"composing",apis:Ql}),td=function(n,t,e,o){return ii(o.element(),t.highlightClass)},ed=function(n,t,e,o){var r=Lc(n.element(),"."+t.itemClass);return on.from(r[o]).fold(function(){return an.error("No element found with index "+o)},n.getSystem().getByDom)},od=function(t,n,e){return Ou(t.element(),"."+n.itemClass).bind(function(n){return t.getSystem().getByDom(n).toOption()})},rd=function(t,n,e){var o=Lc(t.element(),"."+n.itemClass);return(0<o.length?on.some(o[o.length-1]):on.none()).bind(function(n){return t.getSystem().getByDom(n).toOption()})},id=function(t,n,e){var o=Lc(t.element(),"."+n.itemClass);return Bu(S(o,function(n){return t.getSystem().getByDom(n).toOption()}))},ud=/* */Object.freeze({dehighlightAll:function(n,t,e){return Fl(n,t,0,[])},dehighlight:function(n,t,e,o){td(n,t,e,o)&&(ri(o.element(),t.highlightClass),t.onDehighlight(n,o),Yt(o,Xo()))},highlight:Il,highlightFirst:function(t,e,o){od(t,e).each(function(n){Il(t,e,o,n)})},highlightLast:function(t,e,o){rd(t,e).each(function(n){Il(t,e,o,n)})},highlightAt:function(t,e,o,n){ed(t,e,o,n).fold(function(n){throw new Error(n)},function(n){Il(t,e,o,n)})},highlightBy:function(t,e,o,n){var r=id(t,e);T(r,n).each(function(n){Il(t,e,o,n)})},isHighlighted:td,getHighlighted:function(t,n,e){return Ou(t.element(),"."+n.highlightClass).bind(function(n){return t.getSystem().getByDom(n).toOption()})},getFirst:od,getLast:rd,getPrevious:function(n,t,e){return Rl(n,t,0,-1)},getNext:function(n,t,e){return Rl(n,t,0,1)},getCandidates:id}),ad=[ct("highlightClass"),ct("itemClass"),Ku("onHighlight"),Ku("onDehighlight")],cd=xa({fields:ad,name:"highlighting",apis:ud}),sd=b(jl);(Kl=ql=ql||{}).OnFocusMode="onFocus",Kl.OnEnterOrSpaceMode="onEnterOrSpace",Kl.OnApiMode="onApi";function fd(n,t,e,i,u){function a(t,e,n,o,r){return function(n,t){return T(n,function(n){return n.matches(t)}).map(function(n){return n.classification})}(n(t,e,o,r),e.event()).bind(function(n){return n(t,e,o,r)})}var o={schema:function(){return n.concat([St("focusManager",Xl()),Ct("focusInside","onFocus",Zn(function(n){return vn(["onFocus","onEnterOrSpace","onApi"],n)?an.value(n):an.error("Invalid value for focusInside")})),Zu("handler",o),Zu("state",t),Zu("sendFocusIn",u)])},processKey:a,toEvents:function(o,r){var n=o.focusInside!==ql.OnFocusMode?on.none():u(o).map(function(e){return rr(So(),function(n,t){e(n,o,r),t.stop()})});return tr(n.toArray().concat([rr(go(),function(n,t){a(n,t,e,o,r).fold(function(){!function(t,e){var n=zl([32].concat([13]))(e.event());o.focusInside===ql.OnEnterOrSpaceMode&&n&&Ut(t,e)&&u(o).each(function(n){n(t,o,r),e.stop()})}(n,t)},function(n){t.stop()})}),rr(po(),function(n,t){a(n,t,i,o,r).each(function(n){t.stop()})})]))}};return o}function ld(n){function i(n,t){var e=n.visibilitySelector.bind(function(n){return Tu(t,n)}).getOr(t);return 0<fu(e)}function t(t,e){(function(n,t){var e=Lc(n.element(),t.selector),o=C(e,function(n){return i(t,n)});return on.from(o[t.firstTabstop])})(t,e).each(function(n){e.focusManager.set(t,n)})}function u(t,n,e,o,r){return r(n,e,function(n){return function(n,t){return i(n,t)&&n.useTabstopAt(t)}(o,n)}).fold(function(){return o.cyclic?on.some(!0):on.none()},function(n){return o.focusManager.set(t,n),on.some(!0)})}function a(t,n,e,o){var r=Lc(t.element(),e.selector);return function(n,t){return t.focusManager.get(n).bind(function(n){return Tu(n,t.selector)})}(t,e).bind(function(n){return E(r,d(jt,n)).bind(function(n){return u(t,r,n,e,o)})})}var e=[ht("onEscape"),ht("onEnter"),St("selector",'[data-alloy-tabstop="true"]:not(:disabled)'),St("firstTabstop",0),St("useTabstopAt",nn(!0)),ht("visibilitySelector")].concat([n]),o=nn([Wl(Ll([jl,zl([9])]),function(n,t,e,o){var r=e.cyclic?Vl:Nl;return a(n,0,e,r)}),Wl(zl([9]),function(n,t,e,o){var r=e.cyclic?Hl:Pl;return a(n,0,e,r)}),Wl(zl([27]),function(t,e,n,o){return n.onEscape.bind(function(n){return n(t,e)})}),Wl(Ll([sd,zl([13])]),function(t,e,n,o){return n.onEnter.bind(function(n){return n(t,e)})})]),r=nn([]);return fd(e,nu.init,o,r,function(){return on.some(t)})}function dd(n,t,e){return Ml(e)&&zl([32])(t.event())?on.none():function(n,t,e){return Jt(n,e,To()),on.some(!0)}(n,0,e)}function md(n,t){return on.some(!0)}function gd(n,t,e){return e.execute(n,t,n.element())}function pd(n){var e=Ee(on.none());return tu({readState:function(){return e.get().map(function(n){return{numRows:n.numRows(),numColumns:n.numColumns()}}).getOr({numRows:"?",numColumns:"?"})},setGridSize:function(n,t){e.set(on.some({numRows:nn(n),numColumns:nn(t)}))},getNumRows:function(){return e.get().map(function(n){return n.numRows()})},getNumColumns:function(){return e.get().map(function(n){return n.numColumns()})}})}function hd(i){return function(n,t,e,o){var r=i(n.element());return Em(r,n,t,e,o)}}function vd(n,t){var e=_a(n,t);return hd(e)}function bd(n,t){var e=_a(t,n);return hd(e)}function yd(r){return function(n,t,e,o){return Em(r,n,t,e,o)}}function xd(n){return!function(n){return n.offsetWidth<=0&&n.offsetHeight<=0}(n.dom())}function wd(n,t,e){var o=d(jt,t),r=Lc(n,e);return function(t,n){return E(t,n).map(function(n){return _m({index:n,candidates:t})})}(C(r,xd),o)}function Sd(n,t){return E(n,function(n){return jt(t,n)})}function Cd(e,n,o,t){return t(Math.floor(n/o),n%o).bind(function(n){var t=n.row()*o+n.column();return 0<=t&&t<e.length?on.some(e[t]):on.none()})}function kd(r,n,i,u,a){return Cd(r,n,u,function(n,t){var e=n===i-1?r.length-n*u:u,o=us(t,a,0,e-1);return on.some({row:nn(n),column:nn(o)})})}function Od(i,n,u,a,c){return Cd(i,n,a,function(n,t){var e=us(n,c,0,u-1),o=e===u-1?i.length-e*a:a,r=as(t,0,o-1);return on.some({row:nn(e),column:nn(r)})})}function Td(t,e,n){Ou(t.element(),e.selector).each(function(n){e.focusManager.set(t,n)})}function Ed(r){return function(n,t,e,o){return wd(n,t,e.selector).bind(function(n){return r(n.candidates(),n.index(),o.getNumRows().getOr(e.initSize.numRows),o.getNumColumns().getOr(e.initSize.numColumns))})}}function Dd(n,t,e,o){return e.captureTab?on.some(!0):on.none()}function Bd(n,t,e,r){var i=function(n,t,e){var o=us(t,r,0,e.length-1);return o===n?on.none():function(n){return"button"===Ko(n)&&"disabled"===Mr(n,"disabled")}(e[o])?i(n,o,e):on.from(e[o])};return wd(n,e,t).bind(function(n){var t=n.index(),e=n.candidates();return i(t,t,e)})}function Ad(t,e,o){return function(n,t){return t.focusManager.get(n).bind(function(n){return Tu(n,t.selector)})}(t,o).bind(function(n){return o.execute(t,e,n)})}function _d(t,e){e.getInitial(t).orThunk(function(){return Ou(t.element(),e.selector)}).each(function(n){e.focusManager.set(t,n)})}function Md(n,t,e){return Bd(n,e.selector,t,-1)}function Fd(n,t,e){return Bd(n,e.selector,t,1)}function Id(o){return function(n,t,e){return o(n,t,e).bind(function(){return e.executeOnMove?Ad(n,t,e):on.some(!0)})}}function Rd(n,t,e,o){return e.onEscape(n,t)}function Vd(n,t,e){return on.from(n[t]).bind(function(n){return on.from(n[e]).map(function(n){return Um({rowIndex:t,columnIndex:e,cell:n})})})}function Nd(n,t,e,o){var r=n[t].length,i=us(e,o,0,r-1);return Vd(n,t,i)}function Hd(n,t,e,o){var r=us(e,o,0,n.length-1),i=n[r].length,u=as(t,0,i-1);return Vd(n,r,u)}function Pd(n,t,e,o){var r=n[t].length,i=as(e+o,0,r-1);return Vd(n,t,i)}function zd(n,t,e,o){var r=as(e+o,0,n.length-1),i=n[r].length,u=as(t,0,i-1);return Vd(n,r,u)}function Ld(t,e){e.previousSelector(t).orThunk(function(){var n=e.selectors;return Ou(t.element(),n.cell)}).each(function(n){e.focusManager.set(t,n)})}function jd(n,t){return function(r,e,i){var u=i.cycles?n:t;return Tu(e,i.selectors.row).bind(function(n){var t=Lc(n,i.selectors.cell);return Sd(t,e).bind(function(e){var o=Lc(r,i.selectors.row);return Sd(o,n).bind(function(n){var t=function(n,t){return S(n,function(n){return Lc(n,t.selectors.cell)})}(o,i);return u(t,n,e).map(function(n){return n.cell()})})})})}}function Ud(t,e,o){return o.focusManager.get(t).bind(function(n){return o.execute(t,e,n)})}function Wd(t,e){Ou(t.element(),e.selector).each(function(n){e.focusManager.set(t,n)})}function Gd(n,t,e){return Bd(n,e.selector,t,-1)}function Xd(n,t,e){return Bd(n,e.selector,t,1)}function Yd(n,t,e,o){var r=n.getSystem().build(o);If(n,r,e)}function qd(n,t,e,o){var r=mg(n);T(r,function(n){return jt(o.element(),n.element())}).each(ys)}function Kd(t,n,e,o,r){var i=mg(t);return on.from(i[o]).map(function(n){return qd(t,0,0,n),r.each(function(n){Yd(t,0,function(n,t){!function(n,t,e){wr(n,e).fold(function(){Pi(n,t)},function(n){Sr(n,t)})}(n,t,o)},n)}),n})}function Jd(n,t){return{key:n,value:{config:{},me:function(n,t){var e=tr(t);return xa({fields:[ct("enabled")],name:n,active:{events:nn(e)}})}(n,t),configAsRaw:nn({}),initialConfig:{},state:nu}}}function $d(n,t){t.ignore||(Sa(n.element()),t.onFocus(n))}function Qd(n,t,e){var o=t.aria;o.update(n,o,e.get())}function Zd(t,n,e){n.toggleClass.each(function(n){e.get()?ei(t.element(),n):ri(t.element(),n)})}function nm(n,t,e){yg(n,t,e,!e.get())}function tm(n,t,e){e.set(!0),Zd(n,t,e),Qd(n,t,e)}function em(n,t,e){e.set(!1),Zd(n,t,e),Qd(n,t,e)}function om(n,t,e){yg(n,t,e,t.selected)}function rm(){return[rr(Xt(),function(n,t){t.stop(),Kt(n)}),sr(Ht().deviceType.isTouch()?eo():uo())]}function im(n){return tr(H([n.map(function(e){return Hi(function(n,t){e(n),t.stop()})}).toArray(),rm()]))}function um(n){(ka(n.element()).isNone()||bg.isFocused(n))&&(bg.isFocused(n)||bg.focus(n),qt(n,Og,{item:n}))}function am(n){qt(n,Tg,{item:n})}function cm(n,t){var e={};Cn(n,function(n,t){bn(n,function(n){e[n]=t})});var o=t,r=function(n){return kn(n,function(n,t){return{k:n,v:t}})}(t),i=P(r,function(n,t){return[t].concat(Hg(e,o,r,t))});return P(e,function(n){return Nn(i,n).getOr([n])})}function sm(n){return n.x()}function fm(n,t){return n.x()+n.width()/2-t.width()/2}function lm(n,t){return n.x()+n.width()-t.width()}function dm(n){return n.y()}function mm(n,t){return n.y()+n.height()-t.height()}function gm(n,t,e){return qa(sm(n),mm(n,t),e.innerSoutheast(),Ja(),"layout-se")}function pm(n,t,e){return qa(lm(n,t),mm(n,t),e.innerSouthwest(),$a(),"layout-sw")}function hm(n,t,e){return qa(sm(n),dm(n),e.innerNortheast(),Qa(),"layout-ne")}function vm(n,t,e){return qa(lm(n,t),dm(n),e.innerNorthwest(),Za(),"layout-nw")}function bm(n){var t=function e(n){return n.uid!==undefined}(n)&&$(n,"uid")?n.uid:Pr("memento");return{get:function(n){return n.getSystem().getByUid(t).getOrDie()},getOpt:function(n){return n.getSystem().getByUid(t).toOption()},asSpec:function(){return N(N({},n),{uid:t})}}}function ym(n){return on.from(n()["temporary-placeholder"]).getOr("!not found!")}function xm(n,t){return on.from(t()[n]).getOrThunk(function(){return ym(t)})}var wm,Sm=ld(At("cyclic",nn(!1))),Cm=ld(At("cyclic",nn(!0))),km=[St("execute",dd),St("useSpace",!1),St("useEnter",!0),St("useControlEnter",!1),St("useDown",!1)],Om=fd(km,nu.init,function(n,t,e,o){var r=e.useSpace&&!Ml(n.element())?[32]:[],i=e.useEnter?[13]:[],u=e.useDown?[40]:[],a=r.concat(i).concat(u);return[Wl(zl(a),gd)].concat(e.useControlEnter?[Wl(Ll([Ul,zl([13])]),gd)]:[])},function(n,t,e,o){return e.useSpace&&!Ml(n.element())?[Wl(zl([32]),md)]:[]},function(){return on.none()}),Tm=/* */Object.freeze({flatgrid:pd,init:function(n){return n.state(n)}}),Em=function(t,e,n,o,r){return o.focusManager.get(e).bind(function(n){return t(e.element(),n,o,r)}).map(function(n){return o.focusManager.set(e,n),!0})},Dm=yd,Bm=yd,Am=yd,_m=gr(["index","candidates"],[]),Mm=[ct("selector"),St("execute",dd),Ju("onEscape"),St("captureTab",!1),Ya()],Fm=Ed(function(n,t,e,o){return kd(n,t,e,o,-1)}),Im=Ed(function(n,t,e,o){return kd(n,t,e,o,1)}),Rm=Ed(function(n,t,e,o){return Od(n,t,e,o,-1)}),Vm=Ed(function(n,t,e,o){return Od(n,t,e,o,1)}),Nm=nn([Wl(zl([37]),vd(Fm,Im)),Wl(zl([39]),bd(Fm,Im)),Wl(zl([38]),Dm(Rm)),Wl(zl([40]),Bm(Vm)),Wl(Ll([jl,zl([9])]),Dd),Wl(Ll([sd,zl([9])]),Dd),Wl(zl([27]),function(n,t,e,o){return e.onEscape(n,t)}),Wl(zl([32].concat([13])),function(t,e,o,n){return function(n,t){return t.focusManager.get(n).bind(function(n){return Tu(n,t.selector)})}(t,o).bind(function(n){return o.execute(t,e,n)})})]),Hm=nn([Wl(zl([32]),md)]),Pm=fd(Mm,pd,Nm,Hm,function(){return on.some(Td)}),zm=[ct("selector"),St("getInitial",on.none),St("execute",dd),Ju("onEscape"),St("executeOnMove",!1),St("allowVertical",!0)],Lm=nn([Wl(zl([32]),md)]),jm=fd(zm,nu.init,function(n,t,e,o){var r=[37].concat(e.allowVertical?[38]:[]),i=[39].concat(e.allowVertical?[40]:[]);return[Wl(zl(r),Id(vd(Md,Fd))),Wl(zl(i),Id(bd(Md,Fd))),Wl(zl([13]),Ad),Wl(zl([32]),Ad),Wl(zl([27]),Rd)]},Lm,function(){return on.some(_d)}),Um=gr(["rowIndex","columnIndex","cell"],[]),Wm=[mt("selectors",[ct("row"),ct("cell")]),St("cycles",!0),St("previousSelector",on.none),St("execute",dd)],Gm=jd(function(n,t,e){return Nd(n,t,e,-1)},function(n,t,e){return Pd(n,t,e,-1)}),Xm=jd(function(n,t,e){return Nd(n,t,e,1)},function(n,t,e){return Pd(n,t,e,1)}),Ym=jd(function(n,t,e){return Hd(n,e,t,-1)},function(n,t,e){return zd(n,e,t,-1)}),qm=jd(function(n,t,e){return Hd(n,e,t,1)},function(n,t,e){return zd(n,e,t,1)}),Km=nn([Wl(zl([37]),vd(Gm,Xm)),Wl(zl([39]),bd(Gm,Xm)),Wl(zl([38]),Dm(Ym)),Wl(zl([40]),Bm(qm)),Wl(zl([32].concat([13])),function(t,e,o){return ka(t.element()).bind(function(n){return o.execute(t,e,n)})})]),Jm=nn([Wl(zl([32]),md)]),$m=fd(Wm,nu.init,Km,Jm,function(){return on.some(Ld)}),Qm=[ct("selector"),St("execute",dd),St("moveOnTab",!1)],Zm=nn([Wl(zl([38]),Am(Gd)),Wl(zl([40]),Am(Xd)),Wl(Ll([jl,zl([9])]),function(n,t,e){return e.moveOnTab?Am(Gd)(n,t,e):on.none()}),Wl(Ll([sd,zl([9])]),function(n,t,e){return e.moveOnTab?Am(Xd)(n,t,e):on.none()}),Wl(zl([13]),Ud),Wl(zl([32]),Ud)]),ng=nn([Wl(zl([32]),md)]),tg=fd(Qm,nu.init,Zm,ng,function(){return on.some(Wd)}),eg=[Ju("onSpace"),Ju("onEnter"),Ju("onShiftEnter"),Ju("onLeft"),Ju("onRight"),Ju("onTab"),Ju("onShiftTab"),Ju("onUp"),Ju("onDown"),Ju("onEscape"),St("stopSpaceKeyup",!1),ht("focusIn")],og=fd(eg,nu.init,function(n,t,e){return[Wl(zl([32]),e.onSpace),Wl(Ll([sd,zl([13])]),e.onEnter),Wl(Ll([jl,zl([13])]),e.onShiftEnter),Wl(Ll([jl,zl([9])]),e.onShiftTab),Wl(Ll([sd,zl([9])]),e.onTab),Wl(zl([38]),e.onUp),Wl(zl([40]),e.onDown),Wl(zl([37]),e.onLeft),Wl(zl([39]),e.onRight),Wl(zl([32]),e.onSpace),Wl(zl([27]),e.onEscape)]},function(n,t,e){return e.stopSpaceKeyup?[Wl(zl([32]),md)]:[]},function(n){return n.focusIn}),rg=Sm.schema(),ig=Cm.schema(),ug=jm.schema(),ag=Pm.schema(),cg=$m.schema(),sg=Om.schema(),fg=tg.schema(),lg=og.schema(),dg=wa({branchKey:"mode",branches:/* */Object.freeze({acyclic:rg,cyclic:ig,flow:ug,flatgrid:ag,matrix:cg,execution:sg,menu:fg,special:lg}),name:"keying",active:{events:function(n,t){return n.handler.toEvents(n,t)}},apis:{focusIn:function(t,e,o){e.sendFocusIn(e).fold(function(){t.getSystem().triggerFocus(t.element(),t.element())},function(n){n(t,e,o)})},setGridSize:function(n,t,e,o,r){$(e,"setGridSize")?e.setGridSize(o,r):v.console.error("Layout does not support setGridSize")}},state:Tm}),mg=function(n,t){return n.components()},gg=xa({fields:[],name:"replacing",apis:/* */Object.freeze({append:function(n,t,e,o){Yd(n,0,Pi,o)},prepend:function(n,t,e,o){Yd(n,0,kr,o)},remove:qd,replaceAt:Kd,replaceBy:function(t,n,e,o,r){var i=mg(t);return E(i,o).bind(function(n){return Kd(t,0,0,n,r)})},set:function(t,n,e,o){Oa(function(){var n=S(o,t.getSystem().build);hs(t,n)},t.element())},contents:mg})}),pg=/* */Object.freeze({focus:$d,blur:function(n,t){t.ignore||function(n){n.dom().blur()}(n.element())},isFocused:function(n){return function(n){var t=pr(n).dom();return n.dom()===t.activeElement}(n.element())}}),hg=/* */Object.freeze({exhibit:function(n,t){var e=t.ignore?{}:{attributes:{tabindex:"-1"}};return Gr(e)},events:function(e){return tr([rr(So(),function(n,t){$d(n,e),t.stop()})].concat(e.stopMousedown?[rr(uo(),function(n,t){t.event().prevent()})]:[]))}}),vg=[Ku("onFocus"),St("stopMousedown",!1),St("ignore",!1)],bg=xa({fields:vg,name:"focusing",active:hg,apis:pg}),yg=function(n,t,e,o){(o?tm:em)(n,t,e)},xg=/* */Object.freeze({onLoad:om,toggle:nm,isOn:function(n,t,e){return e.get()},on:tm,off:em,set:yg}),wg=/* */Object.freeze({exhibit:function(n,t,e){return Gr({})},events:function(n,t){var e=function(t,e,o){return Hi(function(n){o(n,t,e)})}(n,t,nm),o=pa(n,t,om);return tr(H([n.toggleOnExecute?[e]:[],[o]]))}}),Sg=function(n,t,e){_r(n.element(),"aria-expanded",e)},Cg=[St("selected",!1),ht("toggleClass"),St("toggleOnExecute",!0),Ct("aria",{mode:"none"},it("mode",{pressed:[St("syncWithExpanded",!1),Zu("update",function(n,t,e){_r(n.element(),"aria-pressed",e),t.syncWithExpanded&&Sg(n,t,e)})],checked:[Zu("update",function(n,t,e){_r(n.element(),"aria-checked",e)})],expanded:[Zu("update",Sg)],selected:[Zu("update",function(n,t,e){_r(n.element(),"aria-selected",e)})],none:[Zu("update",Z)]}))],kg=xa({fields:Cg,name:"toggling",active:wg,apis:xg,state:(wm=!1,{init:function(){var t=Ee(wm);return{get:function(){return t.get()},set:function(n){return t.set(n)},clear:function(){return t.set(wm)},readState:function(){return t.get()}}}})}),Og="alloy.item-hover",Tg="alloy.item-focus",Eg=nn(Og),Dg=nn(Tg),Bg=[ct("data"),ct("components"),ct("dom"),St("hasSubmenu",!1),ht("toggling"),tl("itemBehaviours",[kg,bg,dg,nl]),St("ignoreFocus",!1),St("domModification",{}),Zu("builder",function(n){return{dom:n.dom,domModification:N(N({},n.domModification),{attributes:N(N(N({role:n.toggling.isSome()?"menuitemcheckbox":"menuitem"},n.domModification.attributes),{"aria-haspopup":n.hasSubmenu}),n.hasSubmenu?{"aria-expanded":!1}:{})}),behaviours:el(n.itemBehaviours,[n.toggling.fold(kg.revoke,function(n){return kg.config(N({aria:{mode:"checked"}},n))}),bg.config({ignore:n.ignoreFocus,stopMousedown:n.ignoreFocus,onFocus:function(n){am(n)}}),dg.config({mode:"execution"}),nl.config({store:{mode:"memory",initialValue:n.data}}),Jd("item-type-events",g(rm(),[rr(fo(),um),rr(Eo(),bg.focus)]))]),components:n.components,eventOrder:n.eventOrder}}),St("eventOrder",{})],Ag=[ct("dom"),ct("components"),Zu("builder",function(n){return{dom:n.dom,components:n.components,events:tr([function(n){return rr(n,function(n,t){t.stop()})}(Eo())])}})],_g=nn([wl({name:"widget",overrides:function(t){return{behaviours:ya([nl.config({store:{mode:"manual",getValue:function(n){return t.data},setValue:function(){}}})])}}})]),Mg=[ct("uid"),ct("data"),ct("components"),ct("dom"),St("autofocus",!1),St("ignoreFocus",!1),tl("widgetBehaviours",[nl,bg,dg]),St("domModification",{}),ef(_g()),Zu("builder",function(e){function o(n){return Ks(n,e,"widget").map(function(n){return dg.focusIn(n),n})}function n(n,t){return Ml(t.event().target())||e.autofocus&&t.setSource(n.element()),on.none()}var t=Ys(0,e,_g()),r=qs("item-widget",e,t.internals());return{dom:e.dom,components:r,domModification:e.domModification,events:tr([Hi(function(n,t){o(n).each(function(n){t.stop()})}),rr(fo(),um),rr(Eo(),function(n,t){e.autofocus?o(n):bg.focus(n)})]),behaviours:el(e.widgetBehaviours,[nl.config({store:{mode:"memory",initialValue:e.data}}),bg.config({ignore:e.ignoreFocus,onFocus:function(n){am(n)}}),dg.config({mode:"special",focusIn:e.autofocus?function(n){o(n)}:sc(),onLeft:n,onRight:n,onEscape:function(n,t){return bg.isFocused(n)||e.autofocus?(e.autofocus&&t.setSource(n.element()),on.none()):(bg.focus(n),on.some(!0))}})])}})],Fg=it("type",{widget:Mg,item:Bg,separator:Ag}),Ig=nn([kl({factory:{sketch:function(n){var t=ot("menu.spec item",Fg,n);return t.builder(t)}},name:"items",unit:"item",defaults:function(n,t){return t.hasOwnProperty("uid")?t:N(N({},t),{uid:Pr("item")})},overrides:function(n,t){return{type:t.type,ignoreFocus:n.fakeFocus,domModification:{classes:[n.markers.item]}}}})]),Rg=nn([ct("value"),ct("items"),ct("dom"),ct("components"),St("eventOrder",{}),Is("menuBehaviours",[cd,nl,nd,dg]),Ct("movement",{mode:"menu",moveOnTab:!0},it("mode",{grid:[Ya(),Zu("config",function(n,t){return{mode:"flatgrid",selector:"."+n.markers.item,initSize:{numColumns:t.initSize.numColumns,numRows:t.initSize.numRows},focusManager:n.focusManager}})],matrix:[Zu("config",function(n,t){return{mode:"matrix",selectors:{row:t.rowSelector,cell:"."+n.markers.item},focusManager:n.focusManager}}),ct("rowSelector")],menu:[St("moveOnTab",!0),Zu("config",function(n,t){return{mode:"menu",selector:"."+n.markers.item,moveOnTab:t.moveOnTab,focusManager:n.focusManager}})]})),st("markers",Ga()),St("fakeFocus",!1),St("focusManager",Xl()),Ku("onHighlight")]),Vg=nn("alloy.menu-focus"),Ng=_l({name:"Menu",configFields:Rg(),partFields:Ig(),factory:function(n,t,e,o){return{uid:n.uid,dom:n.dom,markers:n.markers,behaviours:Vs(n.menuBehaviours,[cd.config({highlightClass:n.markers.selectedItem,itemClass:n.markers.item,onHighlight:n.onHighlight}),nl.config({store:{mode:"memory",initialValue:n.value}}),nd.config({find:on.some}),dg.config(n.movement.config(n,n.movement))]),events:tr([rr(Dg(),function(t,e){var n=e.event();t.getSystem().getByDom(n.target()).each(function(n){cd.highlight(t,n),e.stop(),qt(t,Vg(),{menu:t,item:n})})}),rr(Eg(),function(n,t){var e=t.event().item();cd.highlight(n,e)})]),components:t,eventOrder:n.eventOrder,domModification:{attributes:{role:"menu"}}}}}),Hg=function(e,o,r,n){return Nn(r,n).bind(function(n){return Nn(e,n).bind(function(n){var t=Hg(e,o,r,n);return on.some([n].concat(t))})}).getOr([])},Pg=function(n){return"prepared"===n.type?on.some(n.menu):on.none()},zg={init:function(){function r(n,e,o){return f(n).bind(function(t){return function(e){return I(i.get(),function(n,t){return n===e})}(n).bind(function(n){return e(n).map(function(n){return{triggeredMenu:t,triggeringItem:n,triggeringPath:o}})})})}var i=Ee({}),u=Ee({}),a=Ee({}),c=Ee(on.none()),s=Ee({}),f=function(n){return t(n).bind(Pg)},t=function(n){return Nn(u.get(),n)},e=function(n){return Nn(i.get(),n)};return{setMenuBuilt:function(n,t){var e;u.set(N(N({},u.get()),((e={})[n]={type:"prepared",menu:t},e)))},setContents:function(n,t,e,o){c.set(on.some(n)),i.set(e),u.set(t),s.set(o);var r=cm(o,e);a.set(r)},expand:function(e){return Nn(i.get(),e).map(function(n){var t=Nn(a.get(),e).getOr([]);return[n].concat(t)})},refresh:function(n){return Nn(a.get(),n)},collapse:function(n){return Nn(a.get(),n).bind(function(n){return 1<n.length?on.some(n.slice(1)):on.none()})},lookupMenu:t,lookupItem:e,otherMenus:function(n){var t=s.get();return _(wn(t),n)},getPrimary:function(){return c.get().bind(f)},getMenus:function(){return u.get()},clear:function(){i.set({}),u.set({}),a.set({}),c.set(on.none())},isClear:function(){return c.get().isNone()},getTriggeringPath:function(n,o){var t=C(e(n).toArray(),function(n){return f(n).isSome()});return Nn(a.get(),n).bind(function(n){var e=A(t.concat(n));return function(n){for(var t=[],e=0;e<n.length;e++){var o=n[e];if(!o.isSome())return on.none();t.push(o.getOrDie())}return on.some(t)}(D(e,function(n,t){return r(n,o,e.slice(0,t+1)).fold(function(){return c.get().is(n)?[]:[on.none()]},function(n){return[on.some(n)]})}))})}}},extractPreparedMenu:Pg},Lg=nn("collapse-item"),jg=Al({name:"TieredMenu",configFields:[Qu("onExecute"),Qu("onEscape"),$u("onOpenMenu"),$u("onOpenSubmenu"),$u("onRepositionMenu"),Ku("onCollapseMenu"),St("highlightImmediately",!0),mt("data",[ct("primary"),ct("menus"),ct("expansions")]),St("fakeFocus",!1),Ku("onHighlight"),Ku("onHover"),Xu(),ct("dom"),St("navigateOnHover",!0),St("stayInDom",!1),Is("tmenuBehaviours",[dg,cd,nd,gg]),St("eventOrder",{})],apis:{collapseMenu:function(n,t){n.collapseMenu(t)},highlightPrimary:function(n,t){n.highlightPrimary(t)},repositionMenus:function(n,t){n.repositionMenus(t)}},factory:function(a,n){function e(n){var t=function(o,r,n){return P(n,function(n,t){function e(){return Ng.sketch(N(N({dom:n.dom},n),{value:t,items:n.items,markers:a.markers,fakeFocus:a.fakeFocus,onHighlight:a.onHighlight,focusManager:a.fakeFocus?Yl():Xl()}))}return t===r?{type:"prepared",menu:o.getSystem().build(e())}:{type:"notbuilt",nbMenu:e}})}(n,a.data.primary,a.data.menus),e=o();return g.setContents(a.data.primary,t,a.data.expansions,e),g.getPrimary()}function c(n){return nl.getValue(n).value}function u(t,n){cd.highlight(t,n),cd.getHighlighted(n).orThunk(function(){return cd.getFirst(n)}).each(function(n){Jt(t,n.element(),Eo())})}function s(t,n){return Bu(S(n,function(n){return t.lookupMenu(n).bind(function(n){return"prepared"===n.type?on.some(n.menu):on.none()})}))}function f(t,n,e){var o=s(n,n.otherMenus(e));bn(o,function(n){ai(n.element(),[a.markers.backgroundMenu]),a.stayInDom||gg.remove(t,n)})}function l(n,o){var t=function(o){return r.get().getOrThunk(function(){var e={},n=Lc(o.element(),"."+a.markers.item),t=C(n,function(n){return"true"===Mr(n,"aria-haspopup")});return bn(t,function(n){o.getSystem().getByDom(n).each(function(n){var t=c(n);e[t]=n})}),r.set(on.some(e)),e})}(n);Cn(t,function(n,t){var e=vn(o,t);_r(n.element(),"aria-expanded",e)})}function d(o,r,i){return on.from(i[0]).bind(function(n){return r.lookupMenu(n).bind(function(n){if("notbuilt"===n.type)return on.none();var t=n.menu,e=s(r,i.slice(1));return bn(e,function(n){ei(n.element(),a.markers.backgroundMenu)}),$o(t.element())||gg.append(o,cu(t)),ai(t.element(),[a.markers.backgroundMenu]),u(o,t),f(o,r,i),on.some(t)})})}var m,t,r=Ee(on.none()),g=zg.init(),o=function(n){return P(a.data.menus,function(n,t){return D(n.items,function(n){return"separator"===n.type?[]:[n.data.value]})})};(t=m=m||{})[t.HighlightSubmenu=0]="HighlightSubmenu",t[t.HighlightParent=1]="HighlightParent";function i(r,i,u){void 0===u&&(u=m.HighlightSubmenu);var n=c(i);return g.expand(n).bind(function(o){return l(r,o),on.from(o[0]).bind(function(e){return g.lookupMenu(e).bind(function(n){var t=function(n,t,e){if("notbuilt"!==e.type)return e.menu;var o=n.getSystem().build(e.nbMenu());return g.setMenuBuilt(t,o),o}(r,e,n);return $o(t.element())||gg.append(r,cu(t)),a.onOpenSubmenu(r,i,t,A(o)),u===m.HighlightSubmenu?(cd.highlightFirst(t),d(r,g,o)):(cd.dehighlightAll(t),on.some(i))})})})}function p(t,e){var n=c(e);return g.collapse(n).bind(function(n){return l(t,n),d(t,g,n).map(function(n){return a.onCollapseMenu(t,e,n),n})})}function h(e){return function(t,n){return Tu(n.getSource(),"."+a.markers.item).bind(function(n){return t.getSystem().getByDom(n).toOption().bind(function(n){return e(t,n).map(function(){return!0})})})}}function v(n){return cd.getHighlighted(n).bind(cd.getHighlighted)}var b=tr([rr(Vg(),function(e,o){var n=o.event().item();g.lookupItem(c(n)).each(function(){var n=o.event().menu();cd.highlight(e,n);var t=c(o.event().item());g.refresh(t).each(function(n){return f(e,g,n)})})}),Hi(function(t,n){var e=n.event().target();t.getSystem().getByDom(e).each(function(n){0===c(n).indexOf("collapse-item")&&p(t,n),i(t,n,m.HighlightSubmenu).fold(function(){a.onExecute(t,n)},function(){})})}),Ri(function(t,n){e(t).each(function(n){gg.append(t,cu(n)),a.onOpenMenu(t,n),a.highlightImmediately&&u(t,n)})})].concat(a.navigateOnHover?[rr(Eg(),function(n,t){var e=t.event().item();!function(t,n){var e=c(n);g.refresh(e).bind(function(n){return l(t,n),d(t,g,n)})}(n,e),i(n,e,m.HighlightParent),a.onHover(n,e)})]:[])),y={collapseMenu:function(t){v(t).each(function(n){p(t,n)})},highlightPrimary:function(t){g.getPrimary().each(function(n){u(t,n)})},repositionMenus:function(o){g.getPrimary().bind(function(t){return v(o).bind(function(n){var t=c(n),e=R(g.getMenus()),o=Bu(S(e,zg.extractPreparedMenu));return g.getTriggeringPath(t,function(n){return function(n,t,e){return Au(t,function(n){if(!n.getSystem().isConnected())return on.none();var t=cd.getCandidates(n);return T(t,function(n){return c(n)===e})})}(0,o,n)})}).map(function(n){return{primary:t,triggeringPath:n}})}).fold(function(){(function(n){return on.from(n.components()[0]).filter(function(n){return"menu"===Mr(n.element(),"role")})})(o).each(function(n){a.onRepositionMenu(o,n,[])})},function(n){var t=n.primary,e=n.triggeringPath;a.onRepositionMenu(o,t,e)})}};return{uid:a.uid,dom:a.dom,markers:a.markers,behaviours:Vs(a.tmenuBehaviours,[dg.config({mode:"special",onRight:h(function(n,t){return Ml(t.element())?on.none():i(n,t,m.HighlightSubmenu)}),onLeft:h(function(n,t){return Ml(t.element())?on.none():p(n,t)}),onEscape:h(function(n,t){return p(n,t).orThunk(function(){return a.onEscape(n,t).map(function(){return n})})}),focusIn:function(t,n){g.getPrimary().each(function(n){Jt(t,n.element(),Eo())})}}),cd.config({highlightClass:a.markers.selectedMenu,itemClass:a.markers.menu}),nd.config({find:function(n){return cd.getHighlighted(n)}}),gg.config({})]),eventOrder:a.eventOrder,apis:y,events:b}},extraApis:{tieredData:function(n,t,e){return{primary:n,menus:t,expansions:e}},singleData:function(n,t){return{primary:n,menus:q(n,t),expansions:{}}},collapseItem:function(n){return{value:Hr(Lg()),meta:{text:n}}}}}),Ug=Al({name:"InlineView",configFields:[ct("lazySink"),Ku("onShow"),Ku("onHide"),xt("onEscape"),Is("inlineBehaviours",[Lf,nl,dc]),wt("fireDismissalEventInstead",[St("event",Po())]),wt("fireRepositionEventInstead",[St("event",zo())]),St("getRelated",on.none),St("eventOrder",on.none)],factory:function(i,n){function t(e){Lf.isOpen(e)&&nl.getValue(e).each(function(n){switch(n.mode){case"menu":Lf.getState(e).each(function(n){jg.repositionMenus(n)});break;case"position":var t=i.lazySink(e).getOrDie();_f.positionWithinBounds(t,n.anchor,e,n.getBounds())}})}var o=function(n,t,e,o){r(n,t,e,function(){return o.map(function(n){return wu(n)})})},r=function(n,t,e,o){var r=i.lazySink(n).getOrDie();Lf.openWhileCloaked(n,e,function(){return _f.positionWithinBounds(r,t,n,o())}),nl.setValue(n,on.some({mode:"position",anchor:t,getBounds:o}))},u=function(n,t,e,o){var r=function(n,t,r,e,i){function u(){return n.lazySink(t)}function a(n){return function(n){return 2===n.length}(n)?o:{}}var o="horizontal"===e.type?{layouts:{onLtr:function(){return ma()},onRtl:function(){return ga()}}}:{};return jg.sketch({dom:{tag:"div"},data:e.data,markers:e.menu.markers,onEscape:function(){return Lf.close(t),n.onEscape.map(function(n){return n(t)}),on.some(!0)},onExecute:function(){return on.some(!0)},onOpenMenu:function(n,t){_f.positionWithinBounds(u().getOrDie(),r,t,i())},onOpenSubmenu:function(n,t,e,o){var r=u().getOrDie();_f.position(r,N({anchor:"submenu",item:t},a(o)),e)},onRepositionMenu:function(n,t,e){var o=u().getOrDie();_f.positionWithinBounds(o,r,t,i()),bn(e,function(n){var t=a(n.triggeringPath);_f.position(o,N({anchor:"submenu",item:n.triggeringItem},t),n.triggeredMenu)})}})}(i,n,t,e,o);Lf.open(n,r),nl.setValue(n,on.some({mode:"menu",menu:r}))},e={setContent:function(n,t){Lf.setContent(n,t)},showAt:function(n,t,e){o(n,t,e,on.none())},showWithin:o,showWithinBounds:r,showMenuAt:function(n,t,e){u(n,t,e,function(){return on.none()})},showMenuWithinBounds:u,hide:function(n){nl.setValue(n,on.none()),Lf.close(n)},getContent:function(n){return Lf.getState(n)},reposition:t,isOpen:Lf.isOpen};return{uid:i.uid,dom:i.dom,behaviours:Vs(i.inlineBehaviours,[Lf.config({isPartOf:function(n,t,e){return ju(t,e)||function(n,t){return i.getRelated(n).exists(function(n){return ju(n,t)})}(n,e)},getAttachPoint:function(n){return i.lazySink(n).getOrDie()},onOpen:function(n){i.onShow(n)},onClose:function(n){i.onHide(n)}}),nl.config({store:{mode:"memory",initialValue:on.none()}}),dc.config({channels:N(N({},Es(N({isExtraPart:nn(!1)},i.fireDismissalEventInstead.map(function(n){return{fireEventInstead:{event:n.event}}}).getOr({})))),Ds(N(N({isExtraPart:nn(!1)},i.fireRepositionEventInstead.map(function(n){return{fireEventInstead:{event:n.event}}}).getOr({})),{doReposition:t})))})]),eventOrder:i.eventOrder,apis:e}},apis:{showAt:function(n,t,e,o){n.showAt(t,e,o)},showWithin:function(n,t,e,o,r){n.showWithin(t,e,o,r)},showWithinBounds:function(n,t,e,o,r){n.showWithinBounds(t,e,o,r)},showMenuAt:function(n,t,e,o){n.showMenuAt(t,e,o)},showMenuWithinBounds:function(n,t,e,o,r){n.showMenuWithinBounds(t,e,o,r)},hide:function(n,t){n.hide(t)},isOpen:function(n,t){return n.isOpen(t)},getContent:function(n,t){return n.getContent(t)},setContent:function(n,t,e){n.setContent(t,e)},reposition:function(n,t){n.reposition(t)}}}),Wg=function(n,t,e){return qa(fm(n,t),dm(n),e.innerNorth(),tc(),"layout-n")},Gg=function(n,t,e){return qa(fm(n,t),mm(n,t),e.innerSouth(),nc(),"layout-s")},Xg=Al({name:"Button",factory:function(n){function e(t){return Nn(n.dom,"attributes").bind(function(n){return Nn(n,t)})}var t=im(n.action),o=n.dom.tag;return{uid:n.uid,dom:n.dom,components:n.components,events:t,behaviours:el(n.buttonBehaviours,[bg.config({}),dg.config({mode:"execution",useSpace:!0,useEnter:!0})]),domModification:{attributes:function(){if("button"!==o)return{role:e("role").getOr("button")};var n=e("type").getOr("button"),t=e("role").map(function(n){return{role:n}}).getOr({});return N({type:n},t)}()},eventOrder:n.eventOrder}},configFields:[St("uid",undefined),ct("dom"),St("components",[]),tl("buttonBehaviours",[bg,dg]),ht("action"),ht("role"),St("eventOrder",{})]}),Yg={success:"checkmark",error:"warning",err:"error",warning:"warning",warn:"warning",info:"info"},qg=Al({name:"Notification",factory:function(t){function e(n){return{dom:{tag:"div",classes:["tox-bar"],attributes:{style:"width: "+n+"%"}}}}function o(n){return{dom:{tag:"div",classes:["tox-text"],innerHtml:n+"%"}}}var r=bm({dom:{tag:"p",innerHtml:t.translationProvider(t.text)},behaviours:ya([gg.config({})])}),i=bm({dom:{tag:"div",classes:t.progress?["tox-progress-bar","tox-progress-indicator"]:["tox-progress-bar"]},components:[{dom:{tag:"div",classes:["tox-bar-container"]},components:[e(0)]},o(0)],behaviours:ya([gg.config({})])}),n={updateProgress:function(n,t){n.getSystem().isConnected()&&i.getOpt(n).each(function(n){gg.set(n,[{dom:{tag:"div",classes:["tox-bar-container"]},components:[e(t)]},o(t)])})},updateText:function(n,t){if(n.getSystem().isConnected()){var e=r.get(n);gg.set(e,[Ti(t)])}}},u=H([t.icon.toArray(),t.level.toArray(),t.level.bind(function(n){return on.from(Yg[n])}).toArray()]);return{uid:t.uid,dom:{tag:"div",attributes:{role:"alert"},classes:t.level.map(function(n){return["tox-notification","tox-notification--in","tox-notification--"+n]}).getOr(["tox-notification","tox-notification--in"])},components:[{dom:{tag:"div",classes:["tox-notification__icon"],innerHtml:function(n,t){return Au(n,function(n){return on.from(t()[n])}).getOrThunk(function(){return ym(t)})}(u,t.iconProvider)}},{dom:{tag:"div",classes:["tox-notification__body"]},components:[r.asSpec()],behaviours:ya([gg.config({})])}].concat(t.progress?[i.asSpec()]:[]).concat(Xg.sketch({dom:{tag:"button",classes:["tox-notification__dismiss","tox-button","tox-button--naked","tox-button--icon"]},components:[{dom:{tag:"div",classes:["tox-icon"],innerHtml:xm("close",t.iconProvider),attributes:{"aria-label":t.translationProvider("Close")}}}],action:function(n){t.onAction(n)}})),apis:n}},configFields:[ht("level"),ct("progress"),ct("icon"),ct("onAction"),ct("text"),ct("iconProvider"),ct("translationProvider")],apis:{updateProgress:function(n,t,e){n.updateProgress(t,e)},updateText:function(n,t,e){n.updateText(t,e)}}}),Kg=tinymce.util.Tools.resolve("tinymce.util.Delay");function Jg(n,u,o){var a=u.backstage;return{open:function(n,t){function e(){t(),Ug.hide(i)}var r=au(qg.sketch({text:n.text,level:vn(["success","error","warning","warn","info"],n.type)?n.type:undefined,progress:!0===n.progressBar,icon:on.from(n.icon),onAction:e,iconProvider:a.shared.providers.icons,translationProvider:a.shared.providers.translate})),i=au(Ug.sketch({dom:{tag:"div",classes:["tox-notifications-container"]},lazySink:u.backstage.shared.getSink,fireDismissalEventInstead:{}}));return o.add(i),0<n.timeout&&Kg.setTimeout(function(){e()},n.timeout),{close:e,moveTo:function(n,t){Ug.showAt(i,{anchor:"makeshift",x:n,y:t},cu(r))},moveRel:function(n,t){if("banner"!==t){var e=function(n){switch(n){case"bc-bc":return Gg;case"tc-tc":return Wg;case"tc-bc":return rc;case"bc-tc":default:return ic}}(t),o={anchor:"node",root:Mi(),node:on.some(Be.fromDom(n)),layouts:{onRtl:function(){return[e]},onLtr:function(){return[e]}}};Ug.showAt(i,o,cu(r))}else Ug.showAt(i,u.backstage.shared.anchors.banner(),cu(r))},text:function(n){qg.updateText(r,n)},settings:n,getEl:function(){return r.element().dom()},progressBar:{value:function(n){qg.updateProgress(r,n)}}}},close:function(n){n.close()},reposition:function(n){!function(n){bn(n,function(n){return n.moveTo(0,0)})}(n),function(e){0<e.length&&(yn(e).each(function(n){return n.moveRel(null,"banner")}),bn(e,function(n,t){0<t&&n.moveRel(e[t-1].getEl(),"bc-tc")}))}(n)},getArgs:function(n){return n.settings}}}function $g(e,o){var r=null;return{cancel:function(){null!==r&&(v.clearTimeout(r),r=null)},throttle:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];null!==r&&v.clearTimeout(r),r=v.setTimeout(function(){e.apply(null,n),r=null},o)}}}function Qg(n,t,e,o,r){var i=new _p(t,r||n.getRoot());return Ip(n,t,on.some(e),o,i.prev,on.none())}function Zg(t,e){return Rp(Be.fromDom(t.selection.getNode())).getOrThunk(function(){var n=Be.fromHtml('<span data-mce-autocompleter="1" data-mce-bogus="1"></span>',t.getDoc());return Pi(n,Be.fromDom(e.extractContents())),e.insertNode(n.dom()),br(n).each(function(n){return n.dom().normalize()}),Rc(n).map(function(n){t.selection.setCursorLocation(n.dom(),function(n){return"img"===Ko(n)?1:_c(n).fold(function(){return xr(n).length},function(n){return n.length})}(n))}),n})}function np(n,t){return n.toString().substring(t.length).replace(/\u00A0/g," ").replace(/\uFEFF/g,"")}function tp(n,u,a,c){return void 0===c&&(c=0),function(n){return n.collapsed&&3===n.startContainer.nodeType}(u)?Qg(n,u.startContainer,u.startOffset,function(e,o,r,n){var i=n.getOr(r.length);return function(n,t,e,o){var r;for(r=t-1;0<=r;r--){var i=n.charAt(r);if(Vp.test(i))return on.none();if(i===e)break}return-1===r||t-r<o?on.none():on.some(n.substring(r+1,t))}(r,i,a,1).fold(function(){return r.match(Vp)?e.abort():e.kontinue()},function(n){var t=u.cloneRange();return t.setStart(o,i-n.length-1),t.setEnd(u.endContainer,u.endOffset),r.length<c?e.abort():e.finish({text:np(t,a),range:t,triggerChar:a})})}).fold(on.none,on.none,on.some):on.none()}function ep(e,n,o,t){return void 0===t&&(t=0),Rp(Be.fromDom(n.startContainer)).fold(function(){return tp(e,n,o,t)},function(n){var t=e.createRng();return t.selectNode(n.dom()),on.some({range:t,text:np(t,o),triggerChar:o})})}function op(n,t){return{element:n,offset:t}}function rp(t,e){var n=e(),o=t.selection.getRng();return function(t,e,n){return Au(n.triggerChars,function(n){return ep(t,e,n)})}(t.dom,o,n).bind(function(n){return Lp(t,e,n)})}function ip(n){var t=n.ui.registry.getAll().popups,e=P(t,function(n){return function(n){return tt("Autocompleter",Wp,n)}(n).fold(function(n){throw new Error(ye(n))},function(n){return n})}),o=function(n){var t={};return bn(n,function(n){t[n]={}}),wn(t)}(On(e,function(n){return n.ch})),r=R(e);return{dataset:e,triggerChars:o,lookupByChar:function(t){return C(r,function(n){return n.ch===t})}}}function up(n,o,t){var r=Lc(n.element(),"."+t);if(0<r.length){var e=E(r,function(n){var t=n.dom().getBoundingClientRect().top,e=r[0].dom().getBoundingClientRect().top;return Math.abs(t-e)>o}).getOr(r.length);return on.some({numColumns:e,numRows:Math.ceil(r.length/e)})}return on.none()}function ap(n,t){return ya([Jd(n,t)])}function cp(n,t,e){n.getSystem().broadcastOn([nh],{})}function sp(n){var t=Be.fromHtml(n),e=xr(t),o=function(n){var t=n.dom().attributes!==undefined?n.dom().attributes:[];return O(t,function(n,t){var e;return"class"===t.name?n:N(N({},n),((e={})[t.name]=t.value,e))},{})}(t),r=function(n){return Array.prototype.slice.call(n.dom().classList,0)}(t),i=0===e.length?{}:{innerHtml:Dr(t)};return N({tag:Ko(t),classes:r,attributes:o},i)}function fp(n){return Nn(sh,n).getOr(uh)}function lp(n){return{dom:{tag:"div",classes:[lh],innerHtml:n}}}function dp(n){return{dom:{tag:"div",classes:[dh]},components:[Ti(ih.translate(n))]}}function mp(n,t){return{dom:{tag:"div",classes:[dh]},components:[{dom:{tag:n.tag,attributes:{style:n.styleAttr}},components:[Ti(ih.translate(t))]}]}}function gp(n){return{dom:{tag:"div",classes:["tox-collection__item-accessory"],innerHtml:hh(n)}}}function pp(n){return{dom:{tag:"div",classes:[lh,"tox-collection__item-checkmark"],innerHtml:xm("checkmark",n)}}}function hp(n,t,e,o,r){var i=e?n.checkMark.orThunk(function(){return t.or(on.some("")).map(lp)}):on.none(),u=n.ariaLabel.map(function(n){return{attributes:{title:ih.translate(n)}}}).getOr({});return{dom:An({tag:"div",classes:[uh,ah].concat(r?["tox-collection__item-icon-rtl"]:[])},u),optComponents:[i,n.htmlContent.fold(function(){return n.textContent.map(o)},function(n){return on.some(function(n){return{dom:{tag:"div",classes:[dh],innerHtml:n}}}(n))}),n.shortcutContent.map(gp),n.caret]}}function vp(n,t,e,o){void 0===o&&(o=on.none());var r=ih.isRtl()&&n.iconContent.exists(function(n){return vn(bh,n)}),i=n.iconContent.map(function(n){return ih.isRtl()&&vn(vh,n)?n+"-rtl":n}).map(function(n){return function(n,t,e){return on.from(t()[n]).or(e).getOrThunk(function(){return ym(t)})}(n,t.icons,o)}),u=on.from(n.meta).fold(function(){return dp},function(n){return Tn(n,"style")?d(mp,n.style):dp});return"color"===n.presets?function(n,t,e,o){var r,i,u;return{dom:(r=ch,i=e.getOr(""),u=n.map(function(n){return' title="'+o.translate(n)+'"'}).getOr(""),sp("custom"===t?'<button class="'+r+' tox-swatches__picker-btn"'+u+">"+i+"</button>":"remove"===t?'<div class="'+r+' tox-swatch--remove"'+u+">"+i+"</div>":'<div class="'+r+'" style="background-color: '+t+'" data-mce-color="'+t+'"'+u+"></div>")),optComponents:[]}}(n.ariaLabel,n.value,i,t):hp(n,i,e,u,r)}function bp(n,t,e){t.disabled&&xh(n,t)}function yp(n,t){return!0===t.useNative&&vn(yh,Ko(n.element()))}function xp(n){_r(n.element(),"disabled","disabled")}function wp(n){Ir(n.element(),"disabled")}function Sp(n){_r(n.element(),"aria-disabled","true")}function Cp(n){_r(n.element(),"aria-disabled","false")}function kp(t,n,e){n.disableClass.each(function(n){ri(t.element(),n)}),(yp(t,n)?wp:Cp)(t),n.onEnabled(t)}function Op(n,t){return yp(n,t)?function(n){return Fr(n.element(),"disabled")}(n):function(n){return"true"===Mr(n.element(),"aria-disabled")}(n)}function Tp(n,t){var e=n.getApi(t);return function(n){n(e)}}function Ep(e,o){return Ri(function(n){Tp(e,n)(function(n){var t=e.onSetup(n);null!==t&&t!==undefined&&o.set(t)})})}function Dp(t,e){return Vi(function(n){return Tp(t,n)(e.get())})}var Bp,Ap,_p=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),Mp=En([{aborted:[]},{edge:["element"]},{success:["info"]}]),Fp=En([{abort:[]},{kontinue:[]},{finish:["info"]}]),Ip=function(t,e,n,o,r,i){function u(){return i.fold(Mp.aborted,Mp.edge)}function a(){var n=r();return n?Ip(t,n,on.none(),o,r,on.some(e)):u()}if(function(n,t){return n.isBlock(t)||vn(["BR","IMG","HR","INPUT"],t.nodeName)||"false"===n.getContentEditable(t)}(t,e))return u();if(function(n){return n.nodeType===v.Node.TEXT_NODE}(e)){var c=e.textContent;return o(Fp,e,c,n).fold(Mp.aborted,function(){return a()},Mp.success)}return a()},Rp=function(n){return Tu(n,"[data-mce-autocompleter]")},Vp=/[\u00a0 \t\r\n]/,Np=function(e,n){n.on("keypress compositionend",e.onKeypress.throttle),n.on("remove",e.onKeypress.cancel);function o(n,t){qt(n,go(),{raw:t})}n.on("keydown",function(t){function n(){return e.getView().bind(cd.getHighlighted)}8===t.which&&e.onKeypress.throttle(t),e.isActive()&&(27===t.which&&e.cancelIfNecessary(),e.isMenuOpen()?13===t.which?(n().each(Kt),t.preventDefault()):40===t.which?(n().fold(function(){e.getView().each(cd.highlightFirst)},function(n){o(n,t)}),t.preventDefault(),t.stopImmediatePropagation()):37!==t.which&&38!==t.which&&39!==t.which||n().each(function(n){o(n,t),t.preventDefault(),t.stopImmediatePropagation()}):13!==t.which&&38!==t.which&&40!==t.which||e.cancelIfNecessary())}),n.on("NodeChange",function(n){e.isActive()&&!e.isProcessingAction()&&Rp(Be.fromDom(n.element)).isNone()&&e.cancelIfNecessary()})},Hp=tinymce.util.Tools.resolve("tinymce.util.Promise"),Pp=function(n){if(function(n){return n.nodeType===v.Node.TEXT_NODE}(n))return op(n,n.data.length);var t=n.childNodes;return 0<t.length?Pp(t[t.length-1]):op(n,t.length)},zp=function(n,t){var e=n.childNodes;return 0<e.length&&t<e.length?zp(e[t],0):0<e.length&&function(n){return n.nodeType===v.Node.ELEMENT_NODE}(n)&&e.length===t?Pp(e[e.length-1]):op(n,t)},Lp=function(t,n,e,o){void 0===o&&(o={});var r=n(),i=t.selection.getRng().startContainer.nodeValue,u=C(r.lookupByChar(e.triggerChar),function(n){return e.text.length>=n.minChars&&n.matches.getOrThunk(function(){return function(e){function o(n,t,e,o){var r=o.getOr(e.length);return 0===r?n.kontinue():n.finish(/\s/.test(e.charAt(r-1)))}return function(n){var t=zp(n.startContainer,n.startOffset);return Qg(e,t.element,t.offset,o).fold(nn(!0),nn(!0),l)}}(t.dom)})(e.range,i,e.text)});if(0===u.length)return on.none();var a=Hp.all(S(u,function(t){return t.fetch(e.text,t.maxResults,o).then(function(n){return{matchText:e.text,items:n,columns:t.columns,onAction:t.onAction}})}));return on.some({lookupData:a,context:e})},jp=de([ft("type"),yt("text")]),Up=de([At("type",function(){return"autocompleteitem"}),At("active",function(){return!1}),At("disabled",function(){return!1}),St("meta",{}),ft("value"),yt("text"),yt("icon")]),Wp=de([ft("type"),ft("ch"),kt("minChars",1),St("columns",1),kt("maxResults",10),xt("matches"),dt("fetch"),dt("onAction")]),Gp=[Et("disabled",!1),yt("text"),yt("shortcut"),he("value","value",In(function(){return Hr("menuitem-value")}),xe()),St("meta",{})],Xp=de([ft("type"),Dt("onSetup",function(){return Z}),Dt("onAction",Z),yt("icon")].concat(Gp)),Yp=de([ft("type"),dt("getSubmenuItems"),Dt("onSetup",function(){return Z}),yt("icon")].concat(Gp)),qp=de([ft("type"),Et("active",!1),Dt("onSetup",function(){return Z}),dt("onAction")].concat(Gp)),Kp=de([ft("type"),Et("active",!1),yt("icon")].concat(Gp)),Jp=de([ft("type"),lt("fancytype",["inserttable","colorswatch"]),Dt("onAction",Z)]),$p=function(n){return ap(Hr("unnamed-events"),n)},Qp=[ct("lazySink"),ct("tooltipDom"),St("exclusive",!0),St("tooltipComponents",[]),St("delay",300),Tt("mode","normal",["normal","follow-highlight"]),St("anchor",function(n){return{anchor:"hotspot",hotspot:n,layouts:{onLtr:nn([ic,rc,aa,sa,ca,fa]),onRtl:nn([ic,rc,aa,sa,ca,fa])}}}),Ku("onHide"),Ku("onShow")],Zp=/* */Object.freeze({init:function(){function e(){o.get().each(function(n){v.clearTimeout(n)})}var o=Ee(on.none()),t=Ee(on.none()),n=nn("not-implemented");return tu({getTooltip:function(){return t.get()},isShowing:function(){return t.get().isSome()},setTooltip:function(n){t.set(on.some(n))},clearTooltip:function(){t.set(on.none())},clearTimer:e,resetTimer:function(n,t){e(),o.set(on.some(v.setTimeout(function(){n()},t)))},readState:n})}}),nh=Hr("tooltip.exclusive"),th=Hr("tooltip.show"),eh=Hr("tooltip.hide"),oh=/* */Object.freeze({hideAllExclusive:cp,setComponents:function(n,t,e,o){e.getTooltip().each(function(n){n.getSystem().isConnected()&&gg.set(n,o)})}}),rh=xa({fields:Qp,name:"tooltipping",active:/* */Object.freeze({events:function(o,r){function e(t){r.getTooltip().each(function(n){ys(n),o.onHide(t,n),r.clearTooltip()}),r.clearTimer()}return tr(H([[rr(th,function(n){r.resetTimer(function(){!function(t){if(!r.isShowing()){cp(t);var n=o.lazySink(t).getOrDie(),e=t.getSystem().build({dom:o.tooltipDom,components:o.tooltipComponents,events:tr("normal"===o.mode?[rr(fo(),function(n){Yt(t,th)}),rr(co(),function(n){Yt(t,eh)})]:[]),behaviours:ya([gg.config({})])});r.setTooltip(e),vs(n,e),o.onShow(t,e),_f.position(n,o.anchor(t),e)}}(n)},o.delay)}),rr(eh,function(n){r.resetTimer(function(){e(n)},o.delay)}),rr(Oo(),function(n,t){vn(t.channels(),nh)&&e(n)}),Vi(function(n){e(n)})],"normal"===o.mode?[rr(lo(),function(n){Yt(n,th)}),rr(Co(),function(n){Yt(n,eh)}),rr(fo(),function(n){Yt(n,th)}),rr(co(),function(n){Yt(n,eh)})]:[rr(Go(),function(n,t){Yt(n,th)}),rr(Xo(),function(n){Yt(n,eh)})]]))}}),state:Zp,apis:oh}),ih=tinymce.util.Tools.resolve("tinymce.util.I18n"),uh="tox-menu-nav__js",ah="tox-collection__item",ch="tox-swatch",sh={normal:uh,color:ch},fh="tox-collection__item--enabled",lh="tox-collection__item-icon",dh="tox-collection__item-label",mh="tox-collection__item-caret",gh="tox-collection__item--active",ph=tinymce.util.Tools.resolve("tinymce.Env"),hh=function(n){var e=ph.mac?{alt:"⌥",ctrl:"⌃",shift:"⇧",meta:"⌘",access:"⌃⌥"}:{meta:"Ctrl",access:"Shift+Alt"},t=n.split("+"),o=S(t,function(n){var t=n.toLowerCase().trim();return Tn(e,t)?e[t]:n});return ph.mac?o.join(""):o.join("+")},vh=["list-num-default","list-num-lower-alpha","list-num-lower-greek","list-num-lower-roman","list-num-upper-alpha","list-num-upper-roman"],bh=["list-bull-circle","list-bull-default","list-bull-square"],yh=["input","button","textarea","select"],xh=function(t,n,e){n.disableClass.each(function(n){ei(t.element(),n)}),(yp(t,n)?xp:Sp)(t),n.onDisabled(t)},wh=/* */Object.freeze({enable:kp,disable:xh,isDisabled:Op,onLoad:bp,set:function(n,t,e,o){(o?xh:kp)(n,t,e)}}),Sh=/* */Object.freeze({exhibit:function(n,t,e){return Gr({classes:t.disabled?t.disableClass.map(M).getOr([]):[]})},events:function(e,n){return tr([er(To(),function(n,t){return Op(n,e)}),pa(e,n,bp)])}}),Ch=[St("disabled",!1),St("useNative",!0),ht("disableClass"),Ku("onDisabled"),Ku("onEnabled")],kh=xa({fields:Ch,name:"disabling",active:Sh,apis:wh}),Oh=function(n){return kh.config({disabled:n,disableClass:"tox-collection__item--state-disabled"})},Th=function(n){return kh.config({disabled:n})},Eh=function(n){return kh.config({disabled:n,disableClass:"tox-tbtn--disabled"})},Dh=function(n){return kh.config({disabled:n,disableClass:"tox-tbtn--disabled",useNative:!1})};(Ap=Bp=Bp||{})[Ap.CLOSE_ON_EXECUTE=0]="CLOSE_ON_EXECUTE",Ap[Ap.BUBBLE_TO_SANDBOX=1]="BUBBLE_TO_SANDBOX";function Bh(n){return D(n,function(n){return n.toArray()})}function Ah(n,t,e){var o=Ee(Z);return{type:"item",dom:t.dom,components:Bh(t.optComponents),data:n.data,eventOrder:Rh,hasSubmenu:n.triggersSubmenu,itemBehaviours:ya([Jd("item-events",[function(e,o){return Hi(function(n,t){Tp(e,n)(e.onAction),e.triggersSubmenu||o!==Ih.CLOSE_ON_EXECUTE||(Yt(n,Ao()),t.stop())})}(n,e),Ep(n,o),Dp(n,o)]),Oh(n.disabled),gg.config({})].concat(n.itemBehaviours))}}function _h(n){return{value:n.value,meta:An({text:n.text.getOr("")},n.meta)}}function Mh(n,t){var e=function(n){return Vh.DOM.encode(n)}(ih.translate(n));if(0<t.length){var o=new RegExp(function(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(t),"gi");return e.replace(o,function(n){return'<span class="tox-autocompleter-highlight">'+n+"</span>"})}return e}function Fh(t,e,n){function o(n){return qt(n,Ph,{row:t,col:e})}var r;return au({dom:{tag:"div",attributes:(r={role:"button"},r["aria-labelledby"]=n,r)},behaviours:ya([Jd("insert-table-picker-cell",[rr(fo(),bg.focus),rr(To(),o),rr(Xt(),function(n,t){t.stop(),o(n)})]),kg.config({toggleClass:"tox-insert-table-picker__selected",toggleOnExecute:!1}),bg.config({onFocus:function(n){return qt(n,Hh,{row:t,col:e})}})])})}var Ih=Bp,Rh={"alloy.execute":["disabling","alloy.base.behaviour","toggling","item-events"]},Vh=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),Nh=nn(Us("item-widget",_g())),Hh=Hr("cell-over"),Ph=Hr("cell-execute");function zh(n){return{value:nn(n)}}function Lh(n){return $h.test(n)||Qh.test(n)}function jh(n){var t=function(n){var t=n.value().replace($h,function(n,t,e,o){return t+t+e+e+o+o});return{value:nn(t)}}(n),e=Qh.exec(t.value());return null===e?["FFFFFF","FF","FF","FF"]:e}function Uh(n){var t=n.toString(16);return 1===t.length?"0"+t:t}function Wh(n){var t=Uh(n.red())+Uh(n.green())+Uh(n.blue());return zh(t)}function Gh(n,t,e,o){return{red:nn(n),green:nn(t),blue:nn(e),alpha:nn(o)}}function Xh(n){var t=parseInt(n,10);return t.toString()===n&&0<=t&&t<=255}function Yh(n){var t,e,o,r=(n.hue()||0)%360,i=n.saturation()/100,u=n.value()/100;if(i=nv(0,Zh(i,1)),u=nv(0,Zh(u,1)),0===i)return t=e=o=tv(255*u),Gh(t,e,o,1);var a=r/60,c=u*i,s=c*(1-Math.abs(a%2-1)),f=u-c;switch(Math.floor(a)){case 0:t=c,e=s,o=0;break;case 1:t=s,e=c,o=0;break;case 2:t=0,e=c,o=s;break;case 3:t=0,e=s,o=c;break;case 4:t=s,e=0,o=c;break;case 5:t=c,e=0,o=s;break;default:t=e=o=0}return t=tv(255*(t+f)),e=tv(255*(e+f)),o=tv(255*(o+f)),Gh(t,e,o,1)}function qh(n){var t=jh(n),e=parseInt(t[1],16),o=parseInt(t[2],16),r=parseInt(t[3],16);return Gh(e,o,r,1)}function Kh(n,t,e,o){var r=parseInt(n,10),i=parseInt(t,10),u=parseInt(e,10),a=parseFloat(o);return Gh(r,i,u,a)}function Jh(n){return"rgba("+n.red()+","+n.green()+","+n.blue()+","+n.alpha()+")"}var $h=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,Qh=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,Zh=Math.min,nv=Math.max,tv=Math.round,ev=/^rgb\((\d+),\s*(\d+),\s*(\d+)\)/,ov=/^rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d?(?:\.\d+)?)\)/,rv=nn(Gh(255,0,0,1)),iv=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),uv="tinymce-custom-colors";function av(n){var t=[],u=v.document.createElement("canvas");u.height=1,u.width=1;for(var a=u.getContext("2d"),c=function(n,t){var e=t/255;return("0"+Math.round(n*e+255*(1-e)).toString(16)).slice(-2).toUpperCase()},e=function(n){if(/^[0-9A-Fa-f]{6}$/.test(n))return"#"+n.toUpperCase();a.clearRect(0,0,u.width,u.height),a.fillStyle="#FFFFFF",a.fillStyle=n,a.fillRect(0,0,1,1);var t=a.getImageData(0,0,1,1).data,e=t[0],o=t[1],r=t[2],i=t[3];return"#"+c(e,i)+c(o,i)+c(r,i)},o=0;o<n.length;o+=2)t.push({text:n[o+1],value:e(n[o]),type:"choiceitem"});return t}function cv(n){return n.getParam("color_map")}function sv(n,e){var o;return n.dom.getParents(n.selection.getStart(),function(n){var t;(t=n.style["forecolor"===e?"color":"background-color"])&&(o=o||t)}),o}function fv(n){return Math.max(5,Math.ceil(Math.sqrt(n)))}function lv(n){var t=Rv(n),e=fv(t.length);return Fv(n,e)}function dv(t,e,n,o){"custom"===n?Uv(t)(function(n){n.each(function(n){Nv(n),t.execCommand("mceApplyTextcolor",e,n),o(n)})},"#000000"):"remove"===n?(o(""),t.execCommand("mceRemoveTextcolor",e)):(o(n),t.execCommand("mceApplyTextcolor",e,n))}function mv(n,t){return n.concat(Vv().concat(function(n){var t="choiceitem",e={type:t,text:"Remove color",icon:"color-swatch-remove-color",value:"remove"};return n?[e,{type:t,text:"Custom color",icon:"color-picker",value:"custom"}]:[e]}(t)))}function gv(t,e){return function(n){n(mv(t,e))}}function pv(n,t,e){var o,r;o="forecolor"===t?"tox-icon-text-color__color":"tox-icon-highlight-bg-color__color",r=e,n.setIconFill(o,r),n.setIconStroke(o,r)}function hv(o,e,r,n,i){o.ui.registry.addSplitButton(e,{tooltip:n,presets:"color",icon:"forecolor"===e?"text-color":"highlight-bg-color",select:function(e){return on.from(sv(o,r)).bind(function(n){return function(n){if("transparent"===n)return on.some(Gh(0,0,0,0));var t=ev.exec(n);if(null!==t)return on.some(Kh(t[1],t[2],t[3],"1"));var e=ov.exec(n);return null!==e?on.some(Kh(e[1],e[2],e[3],e[4])):on.none()}(n).map(function(n){var t=Wh(n).value();return Vt(e.toLowerCase(),t)})}).getOr(!1)},columns:lv(o),fetch:gv(Rv(o),Iv(o)),onAction:function(n){null!==i.get()&&dv(o,r,i.get(),function(){})},onItemAction:function(n,t){dv(o,r,t,function(n){i.set(n),jv(o,{name:e,color:n})})},onSetup:function(t){null!==i.get()&&pv(t,e,i.get());function n(n){n.name===e&&pv(t,n.name,n.color)}return o.on("TextColorChange",n),function(){o.off("TextColorChange",n)}}})}function vv(t,n,e,o){t.ui.registry.addNestedMenuItem(n,{text:o,icon:"forecolor"===n?"text-color":"highlight-bg-color",getSubmenuItems:function(){return[{type:"fancymenuitem",fancytype:"colorswatch",onAction:function(n){dv(t,e,n.value,Z)}}]}})}function bv(e,o){return function(n){var t=w(n,o);return S(t,function(n){return{dom:e,components:n}})}}function yv(n,e){var o=[],r=[];return bn(n,function(n,t){e(n,t)?(0<r.length&&o.push(r),r=[],Tn(n.dom,"innerHtml")&&r.push(n)):r.push(n)}),0<r.length&&o.push(r),S(o,function(n){return{dom:{tag:"div",classes:["tox-collection__group"]},components:n}})}function xv(t,e,n){return{dom:{tag:"div",classes:["tox-menu","tox-collection"].concat(1===t?["tox-collection--list"]:["tox-collection--grid"])},components:[Ng.parts().items({preprocess:function(n){return"auto"!==t&&1<t?bv({tag:"div",classes:["tox-collection__group"]},t)(n):yv(n,function(n,t){return"separator"===e[t].type})}})]}}function wv(n){return{backgroundMenu:"tox-background-menu",selectedMenu:"tox-selected-menu",selectedItem:"tox-collection__item--active",hasIcons:"tox-menu--has-icons",menu:function(n){return"color"===n?"tox-swatches":"tox-menu"}(n),tieredMenu:"tox-tiered-menu"}}function Sv(n){var t=wv(n);return{backgroundMenu:t.backgroundMenu,selectedMenu:t.selectedMenu,menu:t.menu,selectedItem:t.selectedItem,item:fp(n)}}function Cv(n,t,e){var o=wv(e);return{dom:{tag:"div",classes:H([[o.tieredMenu]])},markers:Sv(e)}}function kv(n){return n.icon!==undefined||"togglemenuitem"===n.type||"choicemenuitem"===n.type}function Ov(n){return v.console.error(ye(n)),v.console.log(n),on.none()}function Tv(n,t,e,o,r){var i=function(e){return{dom:{tag:"div",classes:["tox-collection","tox-collection--horizontal"]},components:[Ng.parts().items({preprocess:function(n){return yv(n,function(n,t){return"separator"===e[t].type})}})]}}(e);return{value:n,dom:i.dom,components:i.components,items:e}}function Ev(n,t,e,o,r){var i;return"color"===r?{value:n,dom:(i=function(n){return{dom:{tag:"div",classes:["tox-menu","tox-swatches-menu"]},components:[{dom:{tag:"div",classes:["tox-swatches"]},components:[Ng.parts().items({preprocess:"auto"!==n?bv({tag:"div",classes:["tox-swatches__row"]},n):l})]}]}}(o)).dom,components:i.components,items:e}:"normal"===r&&"auto"===o?{value:n,dom:(i=xv(o,e)).dom,components:i.components,items:e}:"normal"===r&&1===o?{value:n,dom:(i=xv(1,e)).dom,components:i.components,items:e}:"normal"===r?{value:n,dom:(i=xv(o,e)).dom,components:i.components,items:e}:"listpreview"!==r||"auto"===o?{value:n,dom:function(n,t,e){var o=wv(e);return{tag:"div",classes:H([[o.menu,"tox-menu-"+t+"-column"],n?[o.hasIcons]:[]])}}(t,o,r),components:Gv,items:e}:{value:n,dom:(i=function(n){return{dom:{tag:"div",classes:["tox-menu","tox-collection","tox-collection--toolbar","tox-collection--toolbar-lg"]},components:[Ng.parts().items({preprocess:bv({tag:"div",classes:["tox-collection__group"]},n)})]}}(o)).dom,components:i.components,items:e}}function Dv(n,t,e,o,r,i,u,a){var c=function(n){return x(n,kv)}(t),s=Xv(t,e,o,"color"!==r?"normal":"color",i,u,a);return Ev(n,c,s,o,r)}function Bv(n,t){var e=Sv(t);return 1===n?{mode:"menu",moveOnTab:!0}:"auto"===n?{mode:"grid",selector:"."+e.item,initSize:{numColumns:1,numRows:1}}:{mode:"matrix",rowSelector:"."+("color"===t?"tox-swatches__row":"tox-collection__group")}}var Av="choiceitem",_v=[{type:Av,text:"Light Green",value:"#BFEDD2"},{type:Av,text:"Light Yellow",value:"#FBEEB8"},{type:Av,text:"Light Red",value:"#F8CAC6"},{type:Av,text:"Light Purple",value:"#ECCAFA"},{type:Av,text:"Light Blue",value:"#C2E0F4"},{type:Av,text:"Green",value:"#2DC26B"},{type:Av,text:"Yellow",value:"#F1C40F"},{type:Av,text:"Red",value:"#E03E2D"},{type:Av,text:"Purple",value:"#B96AD9"},{type:Av,text:"Blue",value:"#3598DB"},{type:Av,text:"Dark Turquoise",value:"#169179"},{type:Av,text:"Orange",value:"#E67E23"},{type:Av,text:"Dark Red",value:"#BA372A"},{type:Av,text:"Dark Purple",value:"#843FA1"},{type:Av,text:"Dark Blue",value:"#236FA1"},{type:Av,text:"Light Gray",value:"#ECF0F1"},{type:Av,text:"Medium Gray",value:"#CED4D9"},{type:Av,text:"Gray",value:"#95A5A6"},{type:Av,text:"Dark Gray",value:"#7E8C8D"},{type:Av,text:"Navy Blue",value:"#34495E"},{type:Av,text:"Black",value:"#000000"},{type:Av,text:"White",value:"#ffffff"}],Mv=function uI(t){void 0===t&&(t=10);var n,e=iv.getItem(uv),o=cn(e)?JSON.parse(e):[],r=t-(n=o).length<0?n.slice(0,t):n,i=function(n){r.splice(n,1)};return{add:function(n){(function(n,t){var e=y(n,t);return-1===e?on.none():on.some(e)})(r,n).each(i),r.unshift(n),r.length>t&&r.pop(),iv.setItem(uv,JSON.stringify(r))},state:function(){return r.slice(0)}}}(10),Fv=function(n,t){return n.getParam("color_cols",t,"number")},Iv=function(n){return!1!==n.getParam("custom_colors")},Rv=function(n){var t=cv(n);return t!==undefined?av(t):_v},Vv=function(){return S(Mv.state(),function(n){return{type:Av,text:n,value:n}})},Nv=function(n){Mv.add(n)},Hv=function(n){return n.fire("SkinLoaded")},Pv=function(n){return n.fire("ResizeEditor")},zv=function(n,t){return n.fire("ScrollContent",t)},Lv=function(n,t){return n.fire("ResizeContent",t)},jv=function(n,t){return n.fire("TextColorChange",t)},Uv=function(i){return function(n,t){var e,o={colorpicker:t},r=(e=n,function(n){var t=n.getData();e(on.from(t.colorpicker)),n.close()});i.windowManager.open({title:"Color Picker",size:"normal",body:{type:"panel",items:[{type:"colorpicker",name:"colorpicker",label:"Color"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:o,onAction:function(n,t){"hex-valid"===t.name&&(t.value?n.enable("ok"):n.disable("ok"))},onSubmit:r,onClose:function(){},onCancel:function(){n(on.none())}})}},Wv={register:function(n){!function(e){e.addCommand("mceApplyTextcolor",function(n,t){!function(n,t,e){n.undoManager.transact(function(){n.focus(),n.formatter.apply(t,{value:e}),n.nodeChanged()})}(e,n,t)}),e.addCommand("mceRemoveTextcolor",function(n){!function(n,t){n.undoManager.transact(function(){n.focus(),n.formatter.remove(t,{value:null},null,!0),n.nodeChanged()})}(e,n)})}(n);var t=Ee(null),e=Ee(null);hv(n,"forecolor","forecolor","Text color",t),hv(n,"backcolor","hilitecolor","Background color",e),vv(n,"forecolor","forecolor","Text color"),vv(n,"backcolor","hilitecolor","Background color")},getColors:mv,getFetch:gv,colorPickerDialog:Uv,getCurrentColor:sv,getColorCols:lv,calcCols:fv},Gv=[Ng.parts().items({})],Xv=function(n,e,o,r,i,u,a){return Bu(S(n,function(t){return"choiceitem"===t.type?function(n){return tt("choicemenuitem",Kp,n)}(t).fold(Ov,function(n){return on.some(function(t,n,e,o,r,i,u){var a=vp({presets:e,textContent:n?t.text:on.none(),htmlContent:on.none(),ariaLabel:t.text,iconContent:t.icon,shortcutContent:n?t.shortcut:on.none(),checkMark:n?on.some(pp(u.icons)):on.none(),caret:on.none(),value:t.value},u,!0);return Bn(Ah({data:_h(t),disabled:t.disabled,getApi:function(t){return{setActive:function(n){kg.set(t,n)},isActive:function(){return kg.isOn(t)},isDisabled:function(){return kh.isDisabled(t)},setDisabled:function(n){return kh.set(t,n)}}},onAction:function(n){return o(t.value)},onSetup:function(n){return n.setActive(r),function(){}},triggersSubmenu:!1,itemBehaviours:[]},a,i),{toggling:{toggleClass:fh,toggleOnExecute:!1,selected:t.active}})}(n,1===o,r,e,u(t.value),i,a))}):on.none()}))};var Yv,qv,Kv={inserttable:function aI(o){var n=Hr("size-label"),i=function(n,t,e){for(var o=[],r=0;r<t;r++){for(var i=[],u=0;u<e;u++)i.push(Fh(r,u,n));o.push(i)}return o}(n,10,10),u=bm({dom:{tag:"span",classes:["tox-insert-table-picker__label"],attributes:{id:n}},components:[Ti("0x0")],behaviours:ya([gg.config({})])});return{type:"widget",data:{value:Hr("widget-id")},dom:{tag:"div",classes:["tox-fancymenuitem"]},autofocus:!0,components:[Nh().widget({dom:{tag:"div",classes:["tox-insert-table-picker"]},components:function(n){return D(n,function(n){return S(n,cu)})}(i).concat(u.asSpec()),behaviours:ya([Jd("insert-table-picker",[cr(Hh,function(n,t,e){var o=e.event().row(),r=e.event().col();!function(n,t,e,o,r){for(var i=0;i<o;i++)for(var u=0;u<r;u++)kg.set(n[i][u],i<=t&&u<=e)}(i,o,r,10,10),gg.set(u.get(n),[function(n,t){return Ti(t+1+"x"+(n+1))}(o,r)])}),cr(Ph,function(n,t,e){o.onAction({numRows:e.event().row()+1,numColumns:e.event().col()+1}),Yt(n,Ao())})]),dg.config({initSize:{numRows:10,numColumns:10},mode:"flatgrid",selector:'[role="button"]'})])})]}},colorswatch:function cI(t,n){var e=Wv.getColors(n.colorinput.getColors(),n.colorinput.hasCustomColors()),o=n.colorinput.getColorCols(),r=Dv(Hr("menu-value"),e,function(n){t.onAction({value:n})},o,"color",Ih.CLOSE_ON_EXECUTE,function(){return!1},n.shared.providers),i=Bn(N(N({},r),{markers:Sv("color"),movement:Bv(o,"color")}));return{type:"widget",data:{value:Hr("widget-id")},dom:{tag:"div",classes:["tox-fancymenuitem"]},autofocus:!0,components:[Nh().widget(Ng.sketch(i))]}}},Jv=function(t,e,n,o,r,i,u,a){void 0===a&&(a=!0);var c=vp({presets:o,textContent:on.none(),htmlContent:n?t.text.map(function(n){return Mh(n,e)}):on.none(),ariaLabel:t.text,iconContent:t.icon,shortcutContent:on.none(),checkMark:on.none(),caret:on.none(),value:t.value},u.providers,a,t.icon);return Ah({data:_h(t),disabled:t.disabled,getApi:function(){return{}},onAction:function(n){return r(t.value,t.meta)},onSetup:function(){return function(){}},triggersSubmenu:!1,itemBehaviours:function(n,t){return V(n,"tooltipWorker").map(function(e){return[rh.config({lazySink:t.getSink,tooltipDom:{tag:"div",classes:["tox-tooltip-worker-container"]},tooltipComponents:[],anchor:function(n){return{anchor:"submenu",item:n,overrides:{maxHeightFunction:kf}}},mode:"follow-highlight",onShow:function(t,n){e(function(n){rh.setComponents(t,[iu({element:Be.fromDom(n)})])})}})]}).getOr([])}(t.meta,u)},c,i)},$v=function(n){var t=n.text.fold(function(){return{}},function(n){return{innerHtml:n}});return{type:"separator",dom:N({tag:"div",classes:[ah,"tox-collection__group-heading"]},t),components:[]}},Qv=function(n,t,e,o){void 0===o&&(o=!0);var r=vp({presets:"normal",iconContent:n.icon,textContent:n.text,htmlContent:on.none(),ariaLabel:n.text,caret:on.none(),checkMark:on.none(),shortcutContent:n.shortcut},e,o);return Ah({data:_h(n),getApi:function(t){return{isDisabled:function(){return kh.isDisabled(t)},setDisabled:function(n){return kh.set(t,n)}}},disabled:n.disabled,onAction:n.onAction,onSetup:n.onSetup,triggersSubmenu:!1,itemBehaviours:[]},r,t)},Zv=function(n,t,e,o,r){void 0===o&&(o=!0),void 0===r&&(r=!1);var i=r?function(n){return{dom:{tag:"div",classes:[mh],innerHtml:xm("chevron-down",n)}}}(e.icons):function(n){return{dom:{tag:"div",classes:[mh],innerHtml:xm("chevron-right",n)}}}(e.icons),u=vp({presets:"normal",iconContent:n.icon,textContent:n.text,htmlContent:on.none(),ariaLabel:n.text,caret:on.some(i),checkMark:on.none(),shortcutContent:n.shortcut},e,o);return Ah({data:_h(n),getApi:function(t){return{isDisabled:function(){return kh.isDisabled(t)},setDisabled:function(n){return kh.set(t,n)}}},disabled:n.disabled,onAction:Z,onSetup:n.onSetup,triggersSubmenu:!0,itemBehaviours:[]},u,t)},nb=function(n,t,e){var o=vp({iconContent:on.none(),textContent:n.text,htmlContent:on.none(),ariaLabel:n.text,checkMark:on.some(pp(e.icons)),caret:on.none(),shortcutContent:n.shortcut,presets:"normal",meta:n.meta},e,!0);return Bn(Ah({data:_h(n),disabled:n.disabled,getApi:function(t){return{setActive:function(n){kg.set(t,n)},isActive:function(){return kg.isOn(t)},isDisabled:function(){return kh.isDisabled(t)},setDisabled:function(n){return kh.set(t,n)}}},onAction:n.onAction,onSetup:n.onSetup,triggersSubmenu:!1,itemBehaviours:[]},o,t),{toggling:{toggleClass:fh,toggleOnExecute:!1,selected:n.active}})},tb=function(t,e){return function(n,t){return Object.prototype.hasOwnProperty.call(n,t)?on.some(n[t]):on.none()}(Kv,t.fancytype).map(function(n){return n(t,e)})};(qv=Yv=Yv||{})[qv.ContentFocus=0]="ContentFocus",qv[qv.UiFocus=1]="UiFocus";function eb(n){return n.icon!==undefined||"togglemenuitem"===n.type||"choicemenuitem"===n.type}function ob(n){return x(n,eb)}function rb(n,t,e,o,r){function i(n){return r?N(N({},n),{shortcut:on.none(),icon:n.text.isSome()?on.none():n.icon}):n}var u=e.shared.providers;switch(n.type){case"menuitem":return function(n){return tt("menuitem",Xp,n)}(n).fold(Ov,function(n){return on.some(Qv(i(n),t,u,o))});case"nestedmenuitem":return function(n){return tt("nestedmenuitem",Yp,n)}(n).fold(Ov,function(n){return on.some(Zv(i(n),t,u,o,r))});case"togglemenuitem":return function(n){return tt("togglemenuitem",qp,n)}(n).fold(Ov,function(n){return on.some(nb(i(n),t,u))});case"separator":return function(n){return tt("separatormenuitem",jp,n)}(n).fold(Ov,function(n){return on.some($v(n))});case"fancymenuitem":return function(n){return tt("fancymenuitem",Jp,n)}(n).fold(Ov,function(n){return tb(i(n),e)});default:return v.console.error("Unknown item in general menu",n),on.none()}}function ib(n,t,e,o,r,i){var u=1===o,a=!u||ob(n);return Bu(S(n,function(n){return"separator"===n.type?function(n){return tt("Autocompleter.Separator",jp,n)}(n).fold(Ov,function(n){return on.some($v(n))}):function(n){return tt("Autocompleter.Item",Up,n)}(n).fold(Ov,function(n){return on.some(Jv(n,t,u,"normal",e,r,i,a))})}))}function ub(n,t,e,o,r){var i=ob(t),u=Bu(S(t,function(n){function t(n){return rb(n,e,o,function(n){return r?!n.hasOwnProperty("text"):i}(n),r)}return"nestedmenuitem"===n.type&&n.getSubmenuItems().length<=0?t(An(n,{disabled:!0})):t(n)}));return(r?Tv:Ev)(n,i,u,1,"normal")}function ab(n){return jg.singleData(n.value,n)}function cb(n){function t(){n.stopPropagation()}function e(){n.preventDefault()}var o=Be.fromDom(n.target),r=i(e,t);return function(n,t,e,o,r,i,u){return{target:nn(n),x:nn(t),y:nn(e),stop:o,prevent:r,kill:i,raw:nn(u)}}(o,n.clientX,n.clientY,t,e,r,n)}function sb(n,t,e,o,r){var i=function(t,e){return function(n){t(n)&&e(cb(n))}}(e,o);return n.dom().addEventListener(t,i,r),{unbind:d(gb,n,t,i,r)}}function fb(n,t,e){return function(n,t,e,o){return sb(n,t,e,o,!1)}(n,t,pb,e)}function lb(n,t,e){return function(n,t,e,o){return sb(n,t,e,o,!0)}(n,t,pb,e)}function db(n,t,e){return Tu(n,t,e).isSome()}var mb=function(u,a){function e(){return s.get().isSome()}function c(){e()&&Ug.hide(l)}function i(n,t,e,o){n.matchLength=t.text.length;var r=Au(e,function(n){return on.from(n.columns)}).getOr(1);Ug.showAt(l,{anchor:"node",root:Be.fromDom(u.getBody()),node:on.from(n.element)},Ng.sketch(function(n,t,e,o){var r=e===Yv.ContentFocus?Yl():Xl(),i=Bv(t,o),u=Sv(o);return{dom:n.dom,components:n.components,items:n.items,value:n.value,markers:{selectedItem:u.selectedItem,item:u.item},movement:i,fakeFocus:e===Yv.ContentFocus,focusManager:r,menuBehaviours:$p("auto"!==t?[]:[Ri(function(o,n){up(o,4,u.item).each(function(n){var t=n.numColumns,e=n.numRows;dg.setGridSize(o,e,t)})})])}}(Ev("autocompleter-value",!0,o,r,"normal"),r,Yv.ContentFocus,"normal"))),Ug.getContent(l).each(cd.highlightFirst)}var s=Ee(on.none()),f=Ee(!1),l=au(Ug.sketch({dom:{tag:"div",classes:["tox-autocompleter"]},components:[],fireDismissalEventInstead:{},inlineBehaviours:ya([Jd("dismissAutocompleter",[rr(Po(),function(){return d()})])]),lazySink:a.getSink})),d=function(){if(e()){var n=s.get().map(function(n){return n.element});Rp(n.getOr(Be.fromDom(u.selection.getNode()))).each(Er),c(),s.set(on.none()),f.set(!1)}},o=L(function(){return ip(u)}),m=function(n){(function(t){return s.get().map(function(n){return ep(u.dom,u.selection.getRng(),n.triggerChar).bind(function(n){return Lp(u,o,n,t)})}).getOrThunk(function(){return rp(u,o)})})(n).fold(d,function(r){!function(n){if(!e()){var t=Zg(u,n.range);s.set(on.some({triggerChar:n.triggerChar,element:t,matchLength:n.text.length})),f.set(!1)}}(r.context),r.lookupData.then(function(o){s.get().map(function(n){var t=r.context;if(n.triggerChar===t.triggerChar){var e=function(t,n){var e=Au(n,function(n){return on.from(n.columns)}).getOr(1);return D(n,function(i){var n=i.items;return ib(n,i.matchText,function(o,r){var n=u.selection.getRng();ep(u.dom,n,t).fold(function(){return v.console.error("Lost context. Cursor probably moved")},function(n){var t=n.range,e={hide:function(){d()},reload:function(n){c(),m(n)}};f.set(!0),i.onAction(e,t,o,r),f.set(!1)})},e,Ih.BUBBLE_TO_SANDBOX,a)})}(t.triggerChar,o);0<e.length?i(n,t,o,e):10<=t.text.length-n.matchLength?d():c()}})})})},n={onKeypress:$g(function(n){27!==n.which&&m()},50),cancelIfNecessary:d,isMenuOpen:function(){return Ug.isOpen(l)},isActive:e,isProcessingAction:f.get,getView:function(){return Ug.getContent(l)}};Np(n,u)},gb=function(n,t,e,o){n.dom().removeEventListener(t,e,o)},pb=nn(!0),hb=cb;function vb(e,o){var r=null;return{cancel:function(){null!==r&&(v.clearTimeout(r),r=null)},schedule:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];r=v.setTimeout(function(){e.apply(null,n),r=null},o)}}}function bb(n){var t=n.raw();return t.touches===undefined||1!==t.touches.length?on.none():on.some(t.touches[0])}function yb(e){var o=Ee(on.none()),r=Ee(!1),i=vb(function(n){e.triggerEvent(Bo(),n),r.set(!0)},400),u=K([{key:eo(),value:function(e){return bb(e).each(function(n){i.cancel();var t={x:nn(n.clientX),y:nn(n.clientY),target:e.target};i.schedule(e),r.set(!1),o.set(on.some(t))}),on.none()}},{key:oo(),value:function(n){return i.cancel(),bb(n).each(function(t){o.get().each(function(n){!function(n,t){var e=Math.abs(n.clientX-t.x()),o=Math.abs(n.clientY-t.y());return 5<e||5<o}(t,n)||o.set(on.none())})}),on.none()}},{key:ro(),value:function(t){i.cancel();return o.get().filter(function(n){return jt(n.target(),t.target())}).map(function(n){return r.get()?(t.prevent(),!1):e.triggerEvent(Do(),t)})}}]);return{fireIfReady:function(t,n){return Nn(u,n).bind(function(n){return n(t)})}}}function xb(t,n){var e=ot("Getting GUI events settings",Ob,n),o=Ht().deviceType.isTouch()?["touchstart","touchmove","touchend","touchcancel","gesturestart"]:["mousedown","mouseup","mouseover","mousemove","mouseout","click"],r=yb(e),i=S(o.concat(["selectstart","input","contextmenu","change","transitionend","drag","dragstart","dragend","dragenter","dragleave","dragover","drop","keyup"]),function(n){return fb(t,n,function(t){r.fireIfReady(t,n).each(function(n){n&&t.kill()}),e.triggerEvent(n,t)&&t.kill()})}),u=Ee(on.none()),a=fb(t,"paste",function(t){r.fireIfReady(t,"paste").each(function(n){n&&t.kill()}),e.triggerEvent("paste",t)&&t.kill(),u.set(on.some(v.setTimeout(function(){e.triggerEvent(ko(),t)},0)))}),c=fb(t,"keydown",function(n){e.triggerEvent("keydown",n)?n.kill():!0===e.stopBackspace&&function(n){return 8===n.raw().which&&!vn(["input","textarea"],Ko(n.target()))&&!db(n.target(),'[contenteditable="true"]')}(n)&&n.prevent()}),s=function(n,t){return kb?lb(n,"focus",t):fb(n,"focusin",t)}(t,function(n){e.triggerEvent("focusin",n)&&n.kill()}),f=Ee(on.none()),l=function(n,t){return kb?lb(n,"blur",t):fb(n,"focusout",t)}(t,function(n){e.triggerEvent("focusout",n)&&n.kill(),f.set(on.some(v.setTimeout(function(){e.triggerEvent(Co(),n)},0)))});return{unbind:function(){bn(i,function(n){n.unbind()}),c.unbind(),s.unbind(),l.unbind(),a.unbind(),u.get().each(v.clearTimeout),f.get().each(v.clearTimeout)}}}function wb(n,t){var e=Nn(n,"target").map(function(n){return n()}).getOr(t);return Ee(e)}function Sb(n,o,t,e,r,i){var u=n(o,e),a=function(n,t){var e=Ee(!1),o=Ee(!1);return{stop:function(){e.set(!0)},cut:function(){o.set(!0)},isStopped:e.get,isCut:o.get,event:nn(n),setSource:t.set,getSource:t.get}}(t,r);return u.fold(function(){return i.logEventNoHandlers(o,e),Tb.complete()},function(t){var e=t.descHandler();return Xr(e)(a),a.isStopped()?(i.logEventStopped(o,t.element(),e.purpose()),Tb.stopped()):a.isCut()?(i.logEventCut(o,t.element(),e.purpose()),Tb.complete()):br(t.element()).fold(function(){return i.logNoParent(o,t.element(),e.purpose()),Tb.complete()},function(n){return i.logEventResponse(o,t.element(),e.purpose()),Tb.resume(n)})})}function Cb(n,t,e){var o=function(n){var t=Ee(!1);return{stop:function(){t.set(!0)},cut:Z,isStopped:t.get,isCut:nn(!1),event:nn(n),setSource:r("Cannot set source of a broadcasted event"),getSource:r("Cannot get source of a broadcasted event")}}(t);return bn(n,function(n){var t=n.descHandler();Xr(t)(o)}),o.isStopped()}var kb=Ht().browser.isFirefox(),Ob=qn([dt("triggerEvent"),St("stopBackspace",!0)]),Tb=En([{stopped:[]},{resume:["element"]},{complete:[]}]),Eb=function(t,e,o,n,r,i){return Sb(t,e,o,n,r,i).fold(function(){return!0},function(n){return Eb(t,e,o,n,r,i)},function(){return!1})},Db=function(n,t,e,o,r){var i=wb(e,o);return Eb(n,t,e,o,i,r)},Bb=lr("element","descHandler"),Ab=function(n,t){return{id:nn(n),descHandler:nn(t)}};function _b(){var i={};return{registerId:function(o,r,n){Cn(n,function(n,t){var e=i[t]!==undefined?i[t]:{};e[r]=eu(n,o),i[t]=e})},unregisterId:function(e){Cn(i,function(n,t){n.hasOwnProperty(e)&&delete n[e]})},filterByType:function(n){return Nn(i,n).map(function(n){return On(n,function(n,t){return Ab(t,n)})}).getOr([])},find:function(n,t,e){var o=Vn(t)(i);return Ii(e,function(n){return function(e,o){return Ki(o).fold(function(){return on.none()},function(n){var t=Vn(n);return e.bind(t).map(function(n){return Bb(o,n)})})}(o,n)},n)}}}function Mb(){function o(n){var t=n.element();return Ki(t).fold(function(){return function(n,t){var e=Hr(Xi+n);return qi(t,e),e}("uid-",n.element())},function(n){return n})}var r=_b(),i={},u=function(n){Ki(n.element()).each(function(n){delete i[n],r.unregisterId(n)})};return{find:function(n,t,e){return r.find(n,t,e)},filter:function(n){return r.filterByType(n)},register:function(n){var t=o(n);$(i,t)&&function(n,t){var e=i[t];if(e!==n)throw new Error('The tagId "'+t+'" is already used by: '+Nr(e.element())+"\nCannot use it for: "+Nr(n.element())+"\nThe conflicting element is"+($o(e.element())?" ":" not ")+"already in the DOM");u(n)}(n,t);var e=[n];r.registerId(e,t,n.events()),i[t]=n},unregister:u,getById:function(n){return Vn(n)(i)}}}function Fb(e){function o(t){return br(e.element()).fold(function(){return!0},function(n){return jt(t,n)})}function r(n,t){return u.find(o,n,t)}function i(e){var n=u.filter(Oo());bn(n,function(n){var t=n.descHandler();Xr(t)(e)})}var u=Mb(),n=xb(e.element(),{triggerEvent:function(t,e){return Gu(t,e.target(),function(n){return function(n,t,e,o){var r=e.target();return Db(n,t,e,r,o)}(r,t,e,n)})}}),a={debugInfo:nn("real"),triggerEvent:function(t,e,o){Gu(t,e,function(n){Db(r,t,o,e,n)})},triggerFocus:function(t,e){Ki(t).fold(function(){Sa(t)},function(n){Gu(So(),t,function(n){!function(n,t,e,o,r){var i=wb(e,o);Sb(n,t,e,o,i,r)}(r,So(),{originator:nn(e),kill:Z,prevent:Z,target:nn(t)},t,n)})})},triggerEscape:function(n,t){a.triggerEvent("keydown",n.element(),t.event())},getByUid:function(n){return g(n)},getByDom:function(n){return p(n)},build:au,addToGui:function(n){s(n)},removeFromGui:function(n){f(n)},addToWorld:function(n){t(n)},removeFromWorld:function(n){c(n)},broadcast:function(n){l(n)},broadcastOn:function(n,t){d(n,t)},broadcastEvent:function(n,t){m(n,t)},isConnected:nn(!0)},t=function(n){n.connect(a),_i(n.element())||(u.register(n),bn(n.components(),t),a.triggerEvent(Mo(),n.element(),{target:nn(n.element())}))},c=function(n){_i(n.element())||(bn(n.components(),c),u.unregister(n)),n.disconnect()},s=function(n){vs(e,n)},f=function(n){ys(n)},l=function(n){i({universal:nn(!0),data:nn(n)})},d=function(n,t){i({universal:nn(!1),channels:nn(n),data:nn(t)})},m=function(n,t){var e=u.filter(n);return Cb(e,t)},g=function(n){return u.getById(n).fold(function(){return an.error(new Error('Could not find component with uid: "'+n+'" in system.'))},an.value)},p=function(n){var t=Ki(n).getOr("not found");return g(t)};return t(e),{root:nn(e),element:e.element,destroy:function(){n.unbind(),zi(e.element())},add:s,remove:f,getByUid:g,getByDom:p,addToWorld:t,removeFromWorld:c,broadcast:l,broadcastOn:d,broadcastEvent:m}}function Ib(n){return n.getParam("height",Math.max(n.getElement().offsetHeight,200))}function Rb(n){return n.getParam("width",Vh.DOM.getStyle(n.getElement(),"width"))}function Vb(n){return on.from(n.settings.min_width).filter(mn)}function Nb(n){return on.from(n.settings.min_height).filter(mn)}function Hb(n){return on.from(n.getParam("max_width")).filter(mn)}function Pb(n){return on.from(n.getParam("max_height")).filter(mn)}function zb(n){return!1!==n.getParam("menubar",!0,"boolean")}function Lb(n){var t=n.getParam("toolbar",!0),e=!0===t,o=cn(t),r=fn(t)&&0<t.length;return!Yb(n)&&(r||o||e)}function jb(t){var n=wn(t.settings),e=C(n,function(n){return/^toolbar([1-9])$/.test(n)}),o=S(e,function(n){return t.getParam(n,!1,"string")}),r=C(o,function(n){return"string"==typeof n});return 0<r.length?on.some(r):on.none()}var Ub,Wb,Gb=Al({name:"Container",factory:function(n){var t=n.dom,e=t.attributes,o=c(t,["attributes"]);return{uid:n.uid,dom:N({tag:"div",attributes:N({role:"presentation"},e)},o),components:n.components,behaviours:Rs(n.containerBehaviours),events:n.events,domModification:n.domModification,eventOrder:n.eventOrder}},configFields:[St("components",[]),Is("containerBehaviours",[]),St("events",{}),St("domModification",{}),St("eventOrder",{})]}),Xb=tinymce.util.Tools.resolve("tinymce.EditorManager"),Yb=function(n){return jb(n).fold(function(){return 0<n.getParam("toolbar",[],"string[]").length},function(){return!0})};(Wb=Ub=Ub||{})["default"]="",Wb.floating="floating",Wb.sliding="sliding",Wb.scrolling="scrolling";function qb(n){return n.getParam("toolbar_drawer","","string")}function Kb(n){var t=function(n){return n.getParam("fixed_toolbar_container","","string")}(n);return 0<t.length&&n.inline?Ou(Mi(),t):on.none()}function Jb(n){return n.inline&&Kb(n).isSome()}function $b(n){return n.inline&&!zb(n)&&!Lb(n)&&!Yb(n)}function Qb(n){return(n.getParam("toolbar_sticky",!1,"boolean")||n.inline)&&!Jb(n)&&!$b(n)}function Zb(n){return n.touches===undefined||1!==n.touches.length?on.none():on.some(n.touches[0])}function ny(n){return ya([bg.config({onFocus:!1===n.selectOnFocus?Z:function(n){var t=n.element(),e=bi(t);t.dom().setSelectionRange(0,e.length)}})])}function ty(n){return{tag:n.tag,attributes:N({type:"text"},n.inputAttributes),styles:n.inputStyles,classes:n.inputClasses}}var ey,oy,ry,iy,uy=function(e){var o=Ee(on.none()),r=Ee(!1),i=$g(function(n){e.fire("longpress",N(N({},n),{type:"longpress"})),r.set(!0)},400);e.on("touchstart",function(e){Zb(e).each(function(n){i.cancel();var t={x:nn(n.clientX),y:nn(n.clientY),target:nn(e.target)};i.throttle(e),r.set(!1),o.set(on.some(t))})},!0),e.on("touchmove",function(n){i.cancel(),Zb(n).each(function(t){o.get().each(function(n){!function(n,t){var e=Math.abs(n.clientX-t.x()),o=Math.abs(n.clientY-t.y());return 5<e||5<o}(t,n)||(o.set(on.none()),r.set(!1),e.fire("longpresscancel"))})})},!0),e.on("touchend touchcancel",function(t){i.cancel(),"touchcancel"!==t.type&&o.get().filter(function(n){return n.target().isEqualNode(t.target)}).each(function(){r.get()?t.preventDefault():e.fire("tap").isDefaultPrevented()&&t.preventDefault()})},!0)},ay=Hr("form-component-change"),cy=Hr("form-close"),sy=Hr("form-cancel"),fy=Hr("form-action"),ly=Hr("form-submit"),dy=Hr("form-block"),my=Hr("form-unblock"),gy=Hr("form-tabchange"),py=Hr("form-resize"),hy=nn([St("prefix","form-field"),Is("fieldBehaviours",[nd,nl])]),vy=nn([Cl({schema:[ct("dom")],name:"label"}),Cl({factory:{sketch:function(n){return{uid:n.uid,dom:{tag:"span",styles:{display:"none"},attributes:{"aria-hidden":"true"},innerHtml:n.text}}}},schema:[ct("text")],name:"aria-descriptor"}),wl({factory:{sketch:function(n){var t=X(n,["factory"]);return n.factory.sketch(t)}},schema:[ct("factory")],name:"field"})]),by=_l({name:"FormField",configFields:hy(),partFields:vy(),factory:function(r,n,t,e){var o=Vs(r.fieldBehaviours,[nd.config({find:function(n){return Ks(n,r,"field")}}),nl.config({store:{mode:"manual",getValue:function(n){return nd.getCurrent(n).bind(nl.getValue)},setValue:function(n,t){nd.getCurrent(n).each(function(n){nl.setValue(n,t)})}}})]),i=tr([Ri(function(n,t){var o=$s(n,r,["label","field","aria-descriptor"]);o.field().each(function(e){var t=Hr(r.prefix);o.label().each(function(n){_r(n.element(),"for",t),_r(e.element(),"id",t)}),o["aria-descriptor"]().each(function(n){var t=Hr(r.prefix);_r(n.element(),"id",t),_r(e.element(),"aria-describedby",t)})})})]),u={getField:function(n){return Ks(n,r,"field")},getLabel:function(n){return Ks(n,r,"label")}};return{uid:r.uid,dom:r.dom,components:n,behaviours:o,events:i,apis:u}},apis:{getField:function(n,t){return n.getField(t)},getLabel:function(n,t){return n.getLabel(t)}}}),yy=nn([ht("data"),St("inputAttributes",{}),St("inputStyles",{}),St("tag","input"),St("inputClasses",[]),Ku("onSetValue"),St("styles",{}),St("eventOrder",{}),Is("inputBehaviours",[nl,bg]),St("selectOnFocus",!0)]),xy=Al({name:"Input",configFields:yy(),factory:function(n,t){return{uid:n.uid,dom:ty(n),components:[],behaviours:function(n){return N(N({},ny(n)),Vs(n.inputBehaviours,[nl.config({store:{mode:"manual",initialValue:n.data.getOr(undefined),getValue:function(n){return bi(n.element())},setValue:function(n,t){bi(n.element())!==t&&yi(n.element(),t)}},onSetValue:n.onSetValue})]))}(n),eventOrder:n.eventOrder}}}),wy={},Sy={exports:wy};ey=undefined,oy=wy,ry=Sy,iy=undefined,function(n){"object"==typeof oy&&void 0!==ry?ry.exports=n():"function"==typeof ey&&ey.amd?ey([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EphoxContactWrapper=n()}(function(){return function f(i,u,a){function c(t,n){if(!u[t]){if(!i[t]){var e="function"==typeof iy&&iy;if(!n&&e)return e(t,!0);if(s)return s(t,!0);var o=new Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}var r=u[t]={exports:{}};i[t][0].call(r.exports,function(n){return c(i[t][1][n]||n)},r,r.exports,f,i,u,a)}return u[t].exports}for(var s="function"==typeof iy&&iy,n=0;n<a.length;n++)c(a[n]);return c}({1:[function(n,t,e){var o,r,i=t.exports={};function u(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function c(n){if(o===setTimeout)return setTimeout(n,0);if((o===u||!o)&&setTimeout)return o=setTimeout,setTimeout(n,0);try{return o(n,0)}catch(t){try{return o.call(null,n,0)}catch(t){return o.call(this,n,0)}}}!function(){try{o="function"==typeof setTimeout?setTimeout:u}catch(n){o=u}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(n){r=a}}();var s,f=[],l=!1,d=-1;function m(){l&&s&&(l=!1,s.length?f=s.concat(f):d=-1,f.length&&g())}function g(){if(!l){var n=c(m);l=!0;for(var t=f.length;t;){for(s=f,f=[];++d<t;)s&&s[d].run();d=-1,t=f.length}s=null,l=!1,function e(n){if(r===clearTimeout)return clearTimeout(n);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(n);try{return r(n)}catch(t){try{return r.call(null,n)}catch(t){return r.call(this,n)}}}(n)}}function p(n,t){this.fun=n,this.array=t}function h(){}i.nextTick=function(n){var t=new Array(arguments.length-1);if(1<arguments.length)for(var e=1;e<arguments.length;e++)t[e-1]=arguments[e];f.push(new p(n,t)),1!==f.length||l||c(g)},p.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=h,i.addListener=h,i.once=h,i.off=h,i.removeListener=h,i.removeAllListeners=h,i.emit=h,i.prependListener=h,i.prependOnceListener=h,i.listeners=function(n){return[]},i.binding=function(n){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(n){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],2:[function(n,l,t){(function(t){function o(){}function i(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof n)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],f(n,this)}function r(o,r){for(;3===o._state;)o=o._value;0!==o._state?(o._handled=!0,i._immediateFn(function(){var n=1===o._state?r.onFulfilled:r.onRejected;if(null!==n){var t;try{t=n(o._value)}catch(e){return void a(r.promise,e)}u(r.promise,t)}else(1===o._state?u:a)(r.promise,o._value)})):o._deferreds.push(r)}function u(n,t){try{if(t===n)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var e=t.then;if(t instanceof i)return n._state=3,n._value=t,void c(n);if("function"==typeof e)return void f(function o(n,t){return function(){n.apply(t,arguments)}}(e,t),n)}n._state=1,n._value=t,c(n)}catch(r){a(n,r)}}function a(n,t){n._state=2,n._value=t,c(n)}function c(n){2===n._state&&0===n._deferreds.length&&i._immediateFn(function(){n._handled||i._unhandledRejectionFn(n._value)});for(var t=0,e=n._deferreds.length;t<e;t++)r(n,n._deferreds[t]);n._deferreds=null}function s(n,t,e){this.onFulfilled="function"==typeof n?n:null,this.onRejected="function"==typeof t?t:null,this.promise=e}function f(n,t){var e=!1;try{n(function(n){e||(e=!0,u(t,n))},function(n){e||(e=!0,a(t,n))})}catch(o){if(e)return;e=!0,a(t,o)}}var n,e;n=this,e=setTimeout,i.prototype["catch"]=function(n){return this.then(null,n)},i.prototype.then=function(n,t){var e=new this.constructor(o);return r(this,new s(n,t,e)),e},i.all=function(n){var c=Array.prototype.slice.call(n);return new i(function(r,i){if(0===c.length)return r([]);var u=c.length;function a(t,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var e=n.then;if("function"==typeof e)return void e.call(n,function(n){a(t,n)},i)}c[t]=n,0==--u&&r(c)}catch(o){i(o)}}for(var n=0;n<c.length;n++)a(n,c[n])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(n){n(t)})},i.reject=function(e){return new i(function(n,t){t(e)})},i.race=function(r){return new i(function(n,t){for(var e=0,o=r.length;e<o;e++)r[e].then(n,t)})},i._immediateFn="function"==typeof t?function(n){t(n)}:function(n){e(n,0)},i._unhandledRejectionFn=function(n){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",n)},i._setImmediateFn=function(n){i._immediateFn=n},i._setUnhandledRejectionFn=function(n){i._unhandledRejectionFn=n},void 0!==l&&l.exports?l.exports=i:n.Promise||(n.Promise=i)}).call(this,n("timers").setImmediate)},{timers:3}],3:[function(c,n,s){(function(n,t){var o=c("process/browser.js").nextTick,e=Function.prototype.apply,r=Array.prototype.slice,i={},u=0;function a(n,t){this._id=n,this._clearFn=t}s.setTimeout=function(){return new a(e.call(setTimeout,window,arguments),clearTimeout)},s.setInterval=function(){return new a(e.call(setInterval,window,arguments),clearInterval)},s.clearTimeout=s.clearInterval=function(n){n.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(window,this._id)},s.enroll=function(n,t){clearTimeout(n._idleTimeoutId),n._idleTimeout=t},s.unenroll=function(n){clearTimeout(n._idleTimeoutId),n._idleTimeout=-1},s._unrefActive=s.active=function(n){clearTimeout(n._idleTimeoutId);var t=n._idleTimeout;0<=t&&(n._idleTimeoutId=setTimeout(function(){n._onTimeout&&n._onTimeout()},t))},s.setImmediate="function"==typeof n?n:function(n){var t=u++,e=!(arguments.length<2)&&r.call(arguments,1);return i[t]=!0,o(function(){i[t]&&(e?n.apply(null,e):n.call(null),s.clearImmediate(t))}),t},s.clearImmediate="function"==typeof t?t:function(n){delete i[n]}}).call(this,c("timers").setImmediate,c("timers").clearImmediate)},{"process/browser.js":1,timers:3}],4:[function(n,t,e){var o=n("promise-polyfill"),r="undefined"!=typeof window?window:Function("return this;")();t.exports={boltExport:r.Promise||o}},{"promise-polyfill":2}]},{},[4])(4)});function Cy(n){v.setTimeout(function(){throw n},0)}function ky(n){var t=Ko(n);return vn(Py,t)}function Oy(n,t){var e=t.getRoot(n).getOr(n.element());ri(e,t.invalidClass),t.notify.each(function(t){ky(n.element())&&_r(n.element(),"aria-invalid",!1),t.getContainer(n).each(function(n){Br(n,t.validHtml)}),t.onValid(n)})}function Ty(t,n,e,o){var r=n.getRoot(t).getOr(t.element());ei(r,n.invalidClass),n.notify.each(function(n){ky(t.element())&&_r(t.element(),"aria-invalid",!0),n.getContainer(t).each(function(n){Br(n,o)}),n.onInvalid(t,o)})}function Ey(t,n,e){return n.validator.fold(function(){return Hy(an.value(!0))},function(n){return n.validate(t)})}function Dy(t,e,n){return e.notify.each(function(n){n.onValidate(t)}),Ey(t,e).map(function(n){return t.getSystem().isConnected()?n.fold(function(n){return Ty(t,e,0,n),an.error(n)},function(n){return Oy(t,e),an.value(n)}):an.error("No longer in system")})}function By(n,t,e,o){var r=Yy(n,t,e,o);return by.sketch(r)}function Ay(n,t){return by.parts().label({dom:{tag:"label",classes:["tox-label"],innerHtml:t.translate(n)}})}var _y,My,Fy=Sy.exports.boltExport,Iy=function(n){var e=on.none(),t=[],o=function(n){r()?u(n):t.push(n)},r=function(){return e.isSome()},i=function(n){bn(n,u)},u=function(t){e.each(function(n){v.setTimeout(function(){t(n)},0)})};return n(function(n){e=on.some(n),i(t),t=[]}),{get:o,map:function(e){return Iy(function(t){o(function(n){t(e(n))})})},isReady:r}},Ry={nu:Iy,pure:function(t){return Iy(function(n){n(t)})}},Vy=function(e){function n(n){e().then(n,Cy)}return{map:function(n){return Vy(function(){return e().then(n)})},bind:function(t){return Vy(function(){return e().then(function(n){return t(n).toPromise()})})},anonBind:function(n){return Vy(function(){return e().then(function(){return n.toPromise()})})},toLazy:function(){return Ry.nu(n)},toCached:function(){var n=null;return Vy(function(){return null===n&&(n=e()),n})},toPromise:e,get:n}},Ny=function(n){return Vy(function(){return new Fy(n)})},Hy=function(n){return Vy(function(){return Fy.resolve(n)})},Py=["input","textarea"],zy=/* */Object.freeze({markValid:Oy,markInvalid:Ty,query:Ey,run:Dy,isInvalid:function(n,t){var e=t.getRoot(n).getOr(n.element());return ii(e,t.invalidClass)}}),Ly=/* */Object.freeze({events:function(t,n){return t.validator.map(function(n){return tr([rr(n.onEvent,function(n){Dy(n,t).get(l)})].concat(n.validateOnLoad?[Ri(function(n){Dy(n,t).get(Z)})]:[]))}).getOr({})}}),jy=[ct("invalidClass"),St("getRoot",on.none),wt("notify",[St("aria","alert"),St("getContainer",on.none),St("validHtml",""),Ku("onValid"),Ku("onInvalid"),Ku("onValidate")]),wt("validator",[ct("validate"),St("onEvent","input"),St("validateOnLoad",!0)])],Uy=xa({fields:jy,name:"invalidating",active:Ly,apis:zy,extra:{validation:function(e){return function(n){var t=nl.getValue(n);return Hy(e(t))}}}}),Wy=/* */Object.freeze({exhibit:function(n,t){return Gr({attributes:K([{key:t.tabAttr,value:"true"}])})}}),Gy=[St("tabAttr","data-alloy-tabstop")],Xy=xa({fields:Gy,name:"tabstopping",active:Wy}),Yy=function(n,t,e,o){return{dom:qy(e),components:n.toArray().concat([t]),fieldBehaviours:ya(o)}},qy=function(n){return{tag:"div",classes:["tox-form__group"].concat(n)}},Ky=/* */Object.freeze({getCoupled:function(n,t,e,o){return e.getOrCreate(n,t,o)}}),Jy=[st("others",nt(an.value,xe()))],$y=xa({fields:Jy,name:"coupling",apis:Ky,state:/* */Object.freeze({init:function(n){var i={},t=nn({});return tu({readState:t,getOrCreate:function(e,o,r){var n=wn(o.others);if(n)return Nn(i,r).getOrThunk(function(){var n=Nn(o.others,r).getOrDie("No information found for coupled component: "+r)(e),t=e.getSystem().build(n);return i[r]=t});throw new Error("Cannot find coupled component: "+r+". Known coupled components: "+JSON.stringify(n,null,2))}})}})}),Qy=nn("sink"),Zy=nn(Cl({name:Qy(),overrides:nn({dom:{tag:"div"},behaviours:ya([_f.config({useFixed:a})]),events:tr([sr(go()),sr(uo()),sr(bo())])})}));(My=_y=_y||{})[My.HighlightFirst=0]="HighlightFirst",My[My.HighlightNone=1]="HighlightNone";function nx(n,t){var e=n.getHotspot(t).getOr(t),o=n.getAnchorOverrides();return n.layouts.fold(function(){return{anchor:"hotspot",hotspot:e,overrides:o}},function(n){return{anchor:"hotspot",hotspot:e,overrides:o,layouts:n}})}function tx(n,t,e,o,r,i,u){return function(n,t,r,e,i,o,u){var a=function(n,t,e){return(0,n.fetch)(e).map(t)}(n,t,e),c=Cw(e,n);return a.map(function(n){return n.bind(function(n){return on.from(jg.sketch(N(N({},o.menu()),{uid:Pr(""),data:n,highlightImmediately:u===_y.HighlightFirst,onOpenMenu:function(n,t){var e=c().getOrDie();_f.position(e,r,t),Lf.decloak(i)},onOpenSubmenu:function(n,t,e){var o=c().getOrDie();_f.position(o,{anchor:"submenu",item:t},e),Lf.decloak(i)},onRepositionMenu:function(n,t,e){var o=c().getOrDie();_f.position(o,r,t),bn(e,function(n){_f.position(o,{anchor:"submenu",item:n.triggeringItem},n.triggeredMenu)})},onEscape:function(){return bg.focus(e),Lf.close(i),on.some(!0)}})))})})}(n,t,nx(n,e),e,o,r,u).map(function(n){return n.fold(function(){Lf.isOpen(o)&&Lf.close(o)},function(n){Lf.cloak(o),Lf.open(o,n),i(o)}),o})}function ex(n,t,e,o,r,i,u){return Lf.close(o),Hy(o)}function ox(n,t,e,o,r,i){var u=$y.getCoupled(e,"sandbox");return(Lf.isOpen(u)?ex:tx)(n,t,e,u,o,r,i)}function rx(n,t,e){var o=nd.getCurrent(t).getOr(t),r=gu(n.element());e?li(o.element(),"min-width",r+"px"):function(n,t){Nu.set(n,t)}(o.element(),r)}function ix(n){Lf.getState(n).each(function(n){jg.repositionMenus(n)})}function ux(o,r,i){var u=Eu(),n=Cw(r,o);return{dom:{tag:"div",classes:o.sandboxClasses,attributes:{id:u.id(),role:"listbox"}},behaviours:el(o.sandboxBehaviours,[nl.config({store:{mode:"memory",initialValue:r}}),Lf.config({onOpen:function(n,t){var e=nx(o,r);u.link(r.element()),o.matchWidth&&rx(e.hotspot,t,o.useMinWidth),o.onOpen(e,n,t),i!==undefined&&i.onOpen!==undefined&&i.onOpen(n,t)},onClose:function(n,t){u.unlink(r.element()),i!==undefined&&i.onClose!==undefined&&i.onClose(n,t)},isPartOf:function(n,t,e){return ju(t,e)||ju(r,e)},getAttachPoint:function(){return n().getOrDie()}}),nd.config({find:function(n){return Lf.getState(n).bind(function(n){return nd.getCurrent(n)})}}),dc.config({channels:N(N({},Es({isExtraPart:nn(!1)})),Ds({isExtraPart:nn(!1),doReposition:ix}))})])}}function ax(n){var t=$y.getCoupled(n,"sandbox");ix(t)}function cx(){return[St("sandboxClasses",[]),tl("sandboxBehaviours",[nd,dc,Lf,nl])]}function sx(e,t,o){function r(n,t){qt(n,Bw,{value:t})}var n=by.parts().field({factory:xy,inputClasses:["tox-textfield"],onSetValue:function(n){return Uy.run(n).get(function(){})},inputBehaviours:ya([Xy.config({}),Uy.config({invalidClass:"tox-textbox-field-invalid",getRoot:function(n){return br(n.element())},notify:{onValid:function(n){var t=nl.getValue(n);qt(n,Dw,{color:t})}},validator:{validateOnLoad:!1,validate:function(n){var t=nl.getValue(n);if(0===t.length)return Hy(an.value(!0));var e=Be.fromTag("span");li(e,"background-color",t);var o=gi(e,"background-color").fold(function(){return an.error("blah")},function(n){return an.value(t)});return Hy(o)}}})]),selectOnFocus:!1}),i=e.label.map(function(n){return Ay(n,t.providers)}),u=bm(function(e,o){return Tw.sketch({dom:e.dom,components:e.components,toggleClass:"mce-active",dropdownBehaviours:ya([Ew.config({}),Xy.config({})]),layouts:e.layouts,sandboxClasses:["tox-dialog__popups"],lazySink:o.getSink,fetch:function(t){return Ny(function(n){return e.fetch(n)}).map(function(n){return on.from(ab(Bn(Dv(Hr("menu-value"),n,function(n){e.onItemAction(t,n)},e.columns,e.presets,Ih.CLOSE_ON_EXECUTE,function(){return!1},o.providers),{movement:Bv(e.columns,e.presets)})))})},parts:{menu:Cv(0,0,e.presets)}})}({dom:{tag:"span",attributes:{"aria-label":t.providers.translate("Color swatch")}},layouts:on.some({onRtl:function(){return[aa]},onLtr:function(){return[ca]}}),components:[],fetch:Wv.getFetch(o.getColors(),o.hasCustomColors()),columns:o.getColorCols(),presets:"color",onItemAction:function(n,e){u.getOpt(n).each(function(t){"custom"===e?o.colorPicker(function(n){n.fold(function(){return Yt(t,Aw)},function(n){r(t,n),Nv(n)})},"#ffffff"):r(t,"remove"===e?"":e)})}},t));return by.sketch({dom:{tag:"div",classes:["tox-form__group"]},components:i.toArray().concat([{dom:{tag:"div",classes:["tox-color-input"]},components:[n,u.asSpec()]}]),fieldBehaviours:ya([Jd("form-field-events",[rr(Dw,function(n,t){u.getOpt(n).each(function(n){li(n.element(),"background-color",t.event().color())}),qt(n,ay,{name:e.name})}),rr(Bw,function(t,e){by.getField(t).each(function(n){nl.setValue(n,e.event().value()),nd.getCurrent(t).each(bg.focus)})}),rr(Aw,function(t,n){by.getField(t).each(function(n){nd.getCurrent(t).each(bg.focus)})})])])})}function fx(n,t,e){return{hue:nn(n),saturation:nn(t),value:nn(e)}}function lx(n){return Cl({name:n+"-edge",overrides:function(o){return o.model.manager.edgeActions[n].fold(function(){return{}},function(e){var n=tr([ir(eo(),e,[o])]),t=tr([ir(uo(),e,[o]),ir(ao(),function(n,t){t.mouseIsDown.get()&&e(n,t)},[o])]);return{events:Iw?n:t}})}})}function dx(n){var t=n.event().raw();if(Ww){var e=t;return e.touches!==undefined&&1===e.touches.length?on.some(e.touches[0]).map(function(n){return Ru(n.clientX,n.clientY)}):on.none()}var o=t;return o.clientX!==undefined?on.some(o).map(function(n){return Ru(n.clientX,n.clientY)}):on.none()}function mx(n){return n.model.minX}function gx(n){return n.model.minY}function px(n){return n.model.minX-1}function hx(n){return n.model.minY-1}function vx(n){return n.model.maxX}function bx(n){return n.model.maxY}function yx(n){return n.model.maxX+1}function xx(n){return n.model.maxY+1}function wx(n,t,e){return t(n)-e(n)}function Sx(n){return wx(n,vx,mx)}function Cx(n){return wx(n,bx,gx)}function kx(n){return Sx(n)/2}function Ox(n){return Cx(n)/2}function Tx(n){return n.stepSize}function Ex(n){return n.snapToGrid}function Dx(n){return n.snapStart}function Bx(n){return n.rounded}function Ax(n,t){return n[t+"-edge"]!==undefined}function _x(n){return Ax(n,"left")}function Mx(n){return Ax(n,"right")}function Fx(n){return Ax(n,"top")}function Ix(n){return Ax(n,"bottom")}function Rx(n){return n.model.value.get()}function Vx(n){return{x:nn(n)}}function Nx(n){return{y:nn(n)}}function Hx(n,t){return{x:nn(n),y:nn(t)}}function Px(n,t){qt(n,Gw(),{value:t})}function zx(n,t,e,o){return n<t?n:e<n?e:n===t?t-1:Math.max(t,n-o)}function Lx(n,t,e,o){return e<n?n:n<t?t:n===e?e+1:Math.min(e,n+o)}function jx(n,t,e){return Math.max(t,Math.min(e,n))}function Ux(n){var t=n.min,e=n.max,o=n.range,r=n.value,i=n.step,u=n.snap,a=n.snapStart,c=n.rounded,s=n.hasMinEdge,f=n.hasMaxEdge,l=n.minBound,d=n.maxBound,m=n.screenRange,g=s?t-1:t,p=f?e+1:e;if(r<l)return g;if(d<r)return p;var h=function(n,t,e){return Math.min(e,Math.max(n,t))-t}(r,l,d),v=jx(h/m*o+t,g,p);return u&&t<=v&&v<=e?function(u,e,a,c,n){return n.fold(function(){var n=u-e,t=Math.round(n/c)*c;return jx(e+t,e-1,a+1)},function(n){var t=(u-n)%c,e=Math.round(t/c),o=Math.floor((u-n)/c),r=Math.floor((a-n)/c),i=n+Math.min(r,o+e)*c;return Math.max(n,i)})}(v,t,e,i,a):c?Math.round(v):v}function Wx(n){var t=n.min,e=n.max,o=n.range,r=n.value,i=n.hasMinEdge,u=n.hasMaxEdge,a=n.maxBound,c=n.maxOffset,s=n.centerMinEdge,f=n.centerMaxEdge;return r<t?i?0:s:e<r?u?a:f:(r-t)/o*c}function Gx(n){return n.element().dom().getBoundingClientRect()}function Xx(n,t){return n[t]}function Yx(n){var t=Gx(n);return Xx(t,Xw)}function qx(n){var t=Gx(n);return Xx(t,"right")}function Kx(n){var t=Gx(n);return Xx(t,"top")}function Jx(n){var t=Gx(n);return Xx(t,"bottom")}function $x(n){var t=Gx(n);return Xx(t,"width")}function Qx(n){var t=Gx(n);return Xx(t,"height")}function Zx(n,t,e){return(n+t)/2-e}function nw(n,t){var e=Gx(n),o=Gx(t),r=Xx(e,Xw),i=Xx(e,"right"),u=Xx(o,Xw);return Zx(r,i,u)}function tw(n,t){var e=Gx(n),o=Gx(t),r=Xx(e,"top"),i=Xx(e,"bottom"),u=Xx(o,"top");return Zx(r,i,u)}function ew(n,t){qt(n,Gw(),{value:t})}function ow(n){return{x:nn(n)}}function rw(n,t,e){var o={min:mx(t),max:vx(t),range:Sx(t),value:e,step:Tx(t),snap:Ex(t),snapStart:Dx(t),rounded:Bx(t),hasMinEdge:_x(t),hasMaxEdge:Mx(t),minBound:Yx(n),maxBound:qx(n),screenRange:$x(n)};return Ux(o)}function iw(e){return function(n,t){return function(n,t,e){var o=(0<n?Lx:zx)(Rx(e).x(),mx(e),vx(e),Tx(e));return ew(t,ow(o)),on.some(o)}(e,n,t).map(function(){return!0})}}function uw(n,t,e,o,r,i){var u=function(t,n,e,o,r){var i=$x(t),u=o.bind(function(n){return on.some(nw(n,t))}).getOr(0),a=r.bind(function(n){return on.some(nw(n,t))}).getOr(i),c={min:mx(n),max:vx(n),range:Sx(n),value:e,hasMinEdge:_x(n),hasMaxEdge:Mx(n),minBound:Yx(t),minOffset:0,maxBound:qx(t),maxOffset:i,centerMinEdge:u,centerMaxEdge:a};return Wx(c)}(t,i,e,o,r);return Yx(t)-Yx(n)+u}function aw(n,t){qt(n,Gw(),{value:t})}function cw(n){return{y:nn(n)}}function sw(n,t,e){var o={min:gx(t),max:bx(t),range:Cx(t),value:e,step:Tx(t),snap:Ex(t),snapStart:Dx(t),rounded:Bx(t),hasMinEdge:Fx(t),hasMaxEdge:Ix(t),minBound:Kx(n),maxBound:Jx(n),screenRange:Qx(n)};return Ux(o)}function fw(e){return function(n,t){return function(n,t,e){var o=(0<n?Lx:zx)(Rx(e).y(),gx(e),bx(e),Tx(e));return aw(t,cw(o)),on.some(o)}(e,n,t).map(function(){return!0})}}function lw(n,t,e,o,r,i){var u=function(t,n,e,o,r){var i=Qx(t),u=o.bind(function(n){return on.some(tw(n,t))}).getOr(0),a=r.bind(function(n){return on.some(tw(n,t))}).getOr(i),c={min:gx(n),max:bx(n),range:Cx(n),value:e,hasMinEdge:Fx(n),hasMaxEdge:Ix(n),minBound:Kx(t),minOffset:0,maxBound:Jx(t),maxOffset:i,centerMinEdge:u,centerMaxEdge:a};return Wx(c)}(t,i,e,o,r);return Kx(t)-Kx(n)+u}function dw(n,t){qt(n,Gw(),{value:t})}function mw(n,t){return{x:nn(n),y:nn(t)}}function gw(e,o){return function(n,t){return function(n,t,e,o){var r=0<n?Lx:zx,i=t?Rx(o).x():r(Rx(o).x(),mx(o),vx(o),Tx(o)),u=t?r(Rx(o).y(),gx(o),bx(o),Tx(o)):Rx(o).y();return dw(e,mw(i,u)),on.some(i)}(e,o,n,t).map(function(){return!0})}}function pw(n){return"<alloy.field."+n+">"}function hw(n){return function(n){return BS[n]}(n)}function vw(n,t,e){return nl.config(Bn({store:{mode:"manual",getValue:t,setValue:e}},n.map(function(n){return{store:{initialValue:n}}}).getOr({})))}function bw(n,t,e){return vw(n,function(n){return t(n.element())},function(n,t){return e(n.element(),t)})}function yw(e,t){function o(n,t){t.stop()}function r(n){return function(t,e){bn(n,function(n){n(t,e)})}}function i(n,t){if(!kh.isDisabled(n)){var e=t.event().raw();a(n,e.dataTransfer.files)}}function u(n,t){var e=t.event().raw().target.files;a(n,e)}var a=function(n,t){nl.setValue(n,function(n){var t=new RegExp("("+".jpg,.jpeg,.png,.gif".split(/\s*,\s*/).join("|")+")$","i");return C(xn(n),function(n){return t.test(n.name)})}(t)),qt(n,ay,{name:e.name})},c=bm({dom:{tag:"input",attributes:{type:"file",accept:"image/*"},styles:{display:"none"}},behaviours:ya([Jd("input-file-events",[sr(Xt())])])}),n=e.label.map(function(n){return Ay(n,t)}),s=by.parts().field({factory:{sketch:function(n){return{uid:n.uid,dom:{tag:"div",classes:["tox-dropzone-container"]},behaviours:ya([RS([]),TS(),kh.config({}),kg.config({toggleClass:"dragenter",toggleOnExecute:!1}),Jd("dropzone-events",[rr("dragenter",r([o,kg.toggle])),rr("dragleave",r([o,kg.toggle])),rr("dragover",o),rr("drop",r([o,i])),rr(vo(),u)])]),components:[{dom:{tag:"div",classes:["tox-dropzone"],styles:{}},components:[{dom:{tag:"p",innerHtml:t.translate("Drop an image here")}},Xg.sketch({dom:{tag:"button",innerHtml:t.translate("Browse for an image"),styles:{position:"relative"},classes:["tox-button","tox-button--secondary"]},components:[c.asSpec()],action:function(n){c.get(n).element().dom().click()},buttonBehaviours:ya([Xy.config({})])})]}]}}}});return By(n,s,["tox-form__group--stretched"],[])}function xw(n){return{dom:{tag:"div",styles:{width:"1px",height:"1px",outline:"none"},attributes:{tabindex:"0"},classes:n},behaviours:ya([bg.config({ignore:!0}),Xy.config({})])}}function ww(n,t){qt(n,go(),{raw:{which:9,shiftKey:t}})}function Sw(n,t){var e=LS&&n.sandboxed,o=N(N({},n.label.map(function(n){return{title:n}}).getOr({})),e?{sandbox:"allow-scripts allow-same-origin"}:{}),r=function(o){var r=Ee("");return{getValue:function(n){return r.get()},setValue:function(n,t){if(o)_r(n.element(),"srcdoc",t);else{_r(n.element(),"src","javascript:''");var e=n.element().dom().contentWindow.document;e.open(),e.write(t),e.close()}r.set(t)}}}(e),i=n.label.map(function(n){return Ay(n,t)}),u=by.parts().field({factory:{sketch:function(n){return zS({uid:n.uid,dom:{tag:"iframe",attributes:o},behaviours:ya([Xy.config({}),bg.config({}),FS(on.none(),r.getValue,r.setValue)])})}}});return By(i,u,["tox-form__group--stretched"],[])}var Cw=function(t,n){return t.getSystem().getByUid(n.uid+"-"+Qy()).map(function(n){return function(){return an.value(n)}}).getOrThunk(function(){return n.lazySink.fold(function(){return function(){return an.error(new Error("No internal sink is specified, nor could an external sink be found"))}},function(n){return function(){return n(t)}})})},kw=nn([ct("dom"),ct("fetch"),Ku("onOpen"),Ju("onExecute"),St("getHotspot",on.some),St("getAnchorOverrides",nn({})),St("layouts",on.none()),Is("dropdownBehaviours",[kg,$y,dg,bg]),ct("toggleClass"),St("eventOrder",{}),ht("lazySink"),St("matchWidth",!1),St("useMinWidth",!1),ht("role")].concat(cx())),Ow=nn([Sl({schema:[Xu()],name:"menu",defaults:function(n){return{onExecute:n.onExecute}}}),Zy()]),Tw=_l({name:"Dropdown",configFields:kw(),partFields:Ow(),factory:function(t,n,e,o){function r(n){Lf.getState(n).each(function(n){jg.highlightPrimary(n)})}function i(n,t){return Kt(n),on.some(!0)}var u,a,c={expand:function(n){kg.isOn(n)||ox(t,function(n){return n},n,o,Z,_y.HighlightNone).get(Z)},open:function(n){kg.isOn(n)||ox(t,function(n){return n},n,o,Z,_y.HighlightFirst).get(Z)},isOpen:kg.isOn,close:function(n){kg.isOn(n)&&ox(t,function(n){return n},n,o,Z,_y.HighlightFirst).get(Z)},repositionMenus:function(n){kg.isOn(n)&&ax(n)}};return{uid:t.uid,dom:t.dom,components:n,behaviours:Vs(t.dropdownBehaviours,[kg.config({toggleClass:t.toggleClass,aria:{mode:"expanded"}}),$y.config({others:{sandbox:function(n){return ux(t,n,{onOpen:function(){kg.on(n)},onClose:function(){kg.off(n)}})}}}),dg.config({mode:"special",onSpace:i,onEnter:i,onDown:function(n,t){if(Tw.isOpen(n)){var e=$y.getCoupled(n,"sandbox");r(e)}else Tw.open(n);return on.some(!0)},onEscape:function(n,t){return Tw.isOpen(n)?(Tw.close(n),on.some(!0)):on.none()}}),bg.config({})]),events:im(on.some(function(n){ox(t,function(n){return n},n,o,r,_y.HighlightFirst).get(Z)})),eventOrder:N(N({},t.eventOrder),(u={},u[To()]=["disabling","toggling","alloy.base.behaviour"],u)),apis:c,domModification:{attributes:N(N({"aria-haspopup":"true"},t.role.fold(function(){return{}},function(n){return{role:n}})),"button"===t.dom.tag?{type:(a="type",Nn(t.dom,"attributes").bind(function(n){return Nn(n,a)})).getOr("button")}:{})}}},apis:{open:function(n,t){return n.open(t)},expand:function(n,t){return n.expand(t)},close:function(n,t){return n.close(t)},isOpen:function(n,t){return n.isOpen(t)},repositionMenus:function(n,t){return n.repositionMenus(t)}}}),Ew=xa({fields:[],name:"unselecting",active:/* */Object.freeze({events:function(n){return tr([er(xo(),nn(!0))])},exhibit:function(n,t){return Gr({styles:{"-webkit-user-select":"none","user-select":"none","-ms-user-select":"none","-moz-user-select":"-moz-none"},attributes:{unselectable:"on"}})}})}),Dw=Hr("color-input-change"),Bw=Hr("color-swatch-change"),Aw=Hr("color-picker-cancel"),_w=nn(Hr("rgb-hex-update")),Mw=nn(Hr("slider-update")),Fw=nn(Hr("palette-update")),Iw=Ht().deviceType.isTouch(),Rw=Cl({schema:[ct("dom")],name:"label"}),Vw=lx("top-left"),Nw=lx("top"),Hw=lx("top-right"),Pw=lx("right"),zw=lx("bottom-right"),Lw=lx("bottom"),jw=lx("bottom-left"),Uw=[Rw,lx("left"),Pw,Nw,Lw,Vw,Hw,jw,zw,wl({name:"thumb",defaults:nn({dom:{styles:{position:"absolute"}}}),overrides:function(n){return{events:tr([ar(eo(),n,"spectrum"),ar(oo(),n,"spectrum"),ar(ro(),n,"spectrum"),ar(uo(),n,"spectrum"),ar(ao(),n,"spectrum"),ar(so(),n,"spectrum")])}}}),wl({schema:[At("mouseIsDown",function(){return Ee(!1)})],name:"spectrum",overrides:function(e){function o(t,n){return r.getValueFromEvent(n).map(function(n){return r.setValueFrom(t,e,n)})}var r=e.model.manager,n=tr([rr(eo(),o),rr(oo(),o)]),t=tr([rr(uo(),o),rr(ao(),function(n,t){e.mouseIsDown.get()&&o(n,t)})]);return{behaviours:ya(Iw?[]:[dg.config({mode:"special",onLeft:function(n){return r.onLeft(n,e)},onRight:function(n){return r.onRight(n,e)},onUp:function(n){return r.onUp(n,e)},onDown:function(n){return r.onDown(n,e)}}),bg.config({})]),events:Iw?n:t}}})],Ww=Ht().deviceType.isTouch(),Gw=nn("slider.change.value"),Xw="left",Yw=iw(-1),qw=iw(1),Kw=on.none,Jw=on.none,$w={"top-left":on.none(),top:on.none(),"top-right":on.none(),right:on.some(function(n,t){Px(n,Vx(yx(t)))}),"bottom-right":on.none(),bottom:on.none(),"bottom-left":on.none(),left:on.some(function(n,t){Px(n,Vx(px(t)))})},Qw=/* */Object.freeze({setValueFrom:function(n,t,e){var o=rw(n,t,e),r=ow(o);return ew(n,r),o},setToMin:function(n,t){var e=mx(t);ew(n,ow(e))},setToMax:function(n,t){var e=vx(t);ew(n,ow(e))},findValueOfOffset:rw,getValueFromEvent:function(n){return dx(n).map(function(n){return n.left()})},findPositionOfValue:uw,setPositionFromValue:function(n,t,e,o){var r=Rx(e),i=uw(n,o.getSpectrum(n),r.x(),o.getLeftEdge(n),o.getRightEdge(n),e),u=gu(t.element())/2;li(t.element(),"left",i-u+"px")},onLeft:Yw,onRight:qw,onUp:Kw,onDown:Jw,edgeActions:$w}),Zw=on.none,nS=on.none,tS=fw(-1),eS=fw(1),oS={"top-left":on.none(),top:on.some(function(n,t){Px(n,Nx(hx(t)))}),"top-right":on.none(),right:on.none(),"bottom-right":on.none(),bottom:on.some(function(n,t){Px(n,Nx(xx(t)))}),"bottom-left":on.none(),left:on.none()},rS=/* */Object.freeze({setValueFrom:function(n,t,e){var o=sw(n,t,e),r=cw(o);return aw(n,r),o},setToMin:function(n,t){var e=gx(t);aw(n,cw(e))},setToMax:function(n,t){var e=bx(t);aw(n,cw(e))},findValueOfOffset:sw,getValueFromEvent:function(n){return dx(n).map(function(n){return n.top()})},findPositionOfValue:lw,setPositionFromValue:function(n,t,e,o){var r=Rx(e),i=lw(n,o.getSpectrum(n),r.y(),o.getTopEdge(n),o.getBottomEdge(n),e),u=fu(t.element())/2;li(t.element(),"top",i-u+"px")},onLeft:Zw,onRight:nS,onUp:tS,onDown:eS,edgeActions:oS}),iS=gw(-1,!1),uS=gw(1,!1),aS=gw(-1,!0),cS=gw(1,!0),sS={"top-left":on.some(function(n,t){Px(n,Hx(px(t),hx(t)))}),top:on.some(function(n,t){Px(n,Hx(kx(t),hx(t)))}),"top-right":on.some(function(n,t){Px(n,Hx(yx(t),hx(t)))}),right:on.some(function(n,t){Px(n,Hx(yx(t),Ox(t)))}),"bottom-right":on.some(function(n,t){Px(n,Hx(yx(t),xx(t)))}),bottom:on.some(function(n,t){Px(n,Hx(kx(t),xx(t)))}),"bottom-left":on.some(function(n,t){Px(n,Hx(px(t),xx(t)))}),left:on.some(function(n,t){Px(n,Hx(px(t),Ox(t)))})},fS=/* */Object.freeze({setValueFrom:function(n,t,e){var o=rw(n,t,e.left()),r=sw(n,t,e.top()),i=mw(o,r);return dw(n,i),i},setToMin:function(n,t){var e=mx(t),o=gx(t);dw(n,mw(e,o))},setToMax:function(n,t){var e=vx(t),o=bx(t);dw(n,mw(e,o))},getValueFromEvent:function(n){return dx(n)},setPositionFromValue:function(n,t,e,o){var r=Rx(e),i=uw(n,o.getSpectrum(n),r.x(),o.getLeftEdge(n),o.getRightEdge(n),e),u=lw(n,o.getSpectrum(n),r.y(),o.getTopEdge(n),o.getBottomEdge(n),e),a=gu(t.element())/2,c=fu(t.element())/2;li(t.element(),"left",i-a+"px"),li(t.element(),"top",u-c+"px")},onLeft:iS,onRight:uS,onUp:aS,onDown:cS,edgeActions:sS}),lS=Ht().deviceType.isTouch(),dS=[St("stepSize",1),St("onChange",Z),St("onChoose",Z),St("onInit",Z),St("onDragStart",Z),St("onDragEnd",Z),St("snapToGrid",!1),St("rounded",!0),ht("snapStart"),st("model",it("mode",{x:[St("minX",0),St("maxX",100),At("value",function(n){return Ee(n.mode.minX)}),ct("getInitialValue"),Zu("manager",Qw)],y:[St("minY",0),St("maxY",100),At("value",function(n){return Ee(n.mode.minY)}),ct("getInitialValue"),Zu("manager",rS)],xy:[St("minX",0),St("maxX",100),St("minY",0),St("maxY",100),At("value",function(n){return Ee({x:nn(n.mode.minX),y:nn(n.mode.minY)})}),ct("getInitialValue"),Zu("manager",fS)]})),Is("sliderBehaviours",[dg,nl])].concat(lS?[]:[At("mouseIsDown",function(){return Ee(!1)})]),mS=Ht().deviceType.isTouch(),gS=_l({name:"Slider",configFields:dS,partFields:Uw,factory:function(i,n,t,e){function u(n){return Js(n,i,"thumb")}function a(n){return Js(n,i,"spectrum")}function o(n){return Ks(n,i,"left-edge")}function r(n){return Ks(n,i,"right-edge")}function c(n){return Ks(n,i,"top-edge")}function s(n){return Ks(n,i,"bottom-edge")}function f(n,t){m.setPositionFromValue(n,t,i,{getLeftEdge:o,getRightEdge:r,getTopEdge:c,getBottomEdge:s,getSpectrum:a})}function l(n,t){d.value.set(t);var e=u(n);return f(n,e),i.onChange(n,e,t),on.some(!0)}var d=i.model,m=d.manager,g=[rr(eo(),function(n,t){i.onDragStart(n,u(n))}),rr(ro(),function(n,t){i.onDragEnd(n,u(n))})],p=[rr(uo(),function(n,t){t.stop(),i.onDragStart(n,u(n)),i.mouseIsDown.set(!0)}),rr(so(),function(n,t){i.onDragEnd(n,u(n))})],h=mS?g:p;return{uid:i.uid,dom:i.dom,components:n,behaviours:Vs(i.sliderBehaviours,H([mS?[]:[dg.config({mode:"special",focusIn:function(n){return Ks(n,i,"spectrum").map(dg.focusIn).map(nn(!0))}})],[nl.config({store:{mode:"manual",getValue:function(n){return d.value.get()}}}),dc.config({channels:{"mouse.released":{onReceive:function(e,n){function t(){Ks(e,i,"thumb").each(function(n){var t=d.value.get();i.onChoose(e,n,t)})}if(mS)t();else{var o=i.mouseIsDown.get();i.mouseIsDown.set(!1),o&&t()}}}}})]])),events:tr([rr(Gw(),function(n,t){l(n,t.event().value())}),Ri(function(n,t){var e=d.getInitialValue();d.value.set(e);var o=u(n);f(n,o);var r=a(n);i.onInit(n,o,r,d.value.get())})].concat(h)),apis:{resetToMin:function(n){m.setToMin(n,i)},resetToMax:function(n){m.setToMax(n,i)},changeValue:l,refresh:f},domModification:{styles:{position:"relative"}}}},apis:{resetToMin:function(n,t){n.resetToMin(t)},resetToMax:function(n,t){n.resetToMax(t)},refresh:function(n,t){n.refresh(t)}}}),pS=function(n,t){var e=gS.parts().spectrum({dom:{tag:"div",classes:[t("hue-slider-spectrum")],attributes:{role:"presentation"}}}),o=gS.parts().thumb({dom:{tag:"div",classes:[t("hue-slider-thumb")],attributes:{role:"presentation"}}});return gS.sketch({dom:{tag:"div",classes:[t("hue-slider")],attributes:{role:"presentation"}},rounded:!1,model:{mode:"y",getInitialValue:nn({y:nn(0)})},components:[e,o],sliderBehaviours:ya([bg.config({})]),onChange:function(n,t,e){qt(n,Mw(),{value:e})}})},hS=[Is("formBehaviours",[nl])],vS=function(o,n,t){return{uid:o.uid,dom:o.dom,components:n,behaviours:Vs(o.formBehaviours,[nl.config({store:{mode:"manual",getValue:function(n){var t=Qs(n,o);return P(t,function(n,t){return n().bind(function(n){return function(n,t){return n.fold(function(){return an.error(t)},an.value)}(nd.getCurrent(n),"missing current")}).map(nl.getValue)})},setValue:function(e,n){Cn(n,function(t,n){Ks(e,o,n).each(function(n){nd.getCurrent(n).each(function(n){nl.setValue(n,t)})})})}}})]),apis:{getField:function(n,t){return Ks(n,o,t).bind(nd.getCurrent)}}}},bS={getField:Ur(function(n,t,e){return n.getField(t,e)}),sketch:function(n){var e,t=(e=[],{field:function(n,t){return e.push(n),Ws("form",pw(n),t)},record:function(){return e}}),o=n(t),r=t.record(),i=S(r,function(n){return wl({name:n,pname:pw(n)})});return rf("form",hS,i,vS,o)}},yS=Hr("valid-input"),xS=Hr("invalid-input"),wS=Hr("validating-input"),SS="colorcustom.rgb.",CS=function(d,m,g,p){function h(n,t,e,o,r){var i=d(SS+"range"),u=[by.parts().label({dom:{tag:"label",innerHtml:e,attributes:{"aria-label":o}}}),by.parts().field({data:r,factory:xy,inputAttributes:N({type:"text"},"hex"===t?{"aria-live":"polite"}:{}),inputClasses:[m("textfield")],inputBehaviours:ya([function(t,o){return Uy.config({invalidClass:m("invalid"),notify:{onValidate:function(n){qt(n,wS,{type:t})},onValid:function(n){qt(n,yS,{type:t,value:nl.getValue(n)})},onInvalid:function(n){qt(n,xS,{type:t,value:nl.getValue(n)})}},validator:{validate:function(n){var t=nl.getValue(n),e=o(t)?an.value(!0):an.error(d("aria.input.invalid"));return Hy(e)},validateOnLoad:!1}})}(t,n),Xy.config({})]),onSetValue:function(n){Uy.isInvalid(n)&&Uy.run(n).get(Z)}})],a="hex"!==t?[by.parts()["aria-descriptor"]({text:i})]:[];return{dom:{tag:"div",attributes:{role:"presentation"}},components:u.concat(a)}}function v(n,t){var e=t.red(),o=t.green(),r=t.blue();nl.setValue(n,{red:e,green:o,blue:r})}function b(n,t){y.getOpt(n).each(function(n){li(n.element(),"background-color","#"+t.value())})}var y=bm({dom:{tag:"div",classes:[m("rgba-preview")],styles:{"background-color":"white"},attributes:{role:"presentation"}}});return Al({factory:function(){function r(n){return u[n]().get()}function i(n,t){u[n]().set(t)}function t(n,t){var e=t.event();"hex"!==e.type()?i(e.type(),on.none()):p(n)}function o(e,n,t){var o=parseInt(t,10);i(n,on.some(o)),r("red").bind(function(e){return r("green").bind(function(t){return r("blue").map(function(n){return Gh(e,t,n,1)})})}).each(function(n){var t=function(t,n){var e=Wh(n);return bS.getField(t,"hex").each(function(n){bg.isFocused(n)||nl.setValue(t,{hex:e.value()})}),e}(e,n);b(e,t)})}function e(n,t){var e=t.event();!function(n){return"hex"===n.type()}(e)?o(n,e.type(),e.value()):function(n,t){g(n);var e=zh(t);i("hex",on.some(t));var o=qh(e);v(n,o),a(o),qt(n,_w(),{hex:e}),b(n,e)}(n,e.value())}function n(n){return{label:d(SS+n+".label"),description:d(SS+n+".description")}}var u={red:nn(Ee(on.some(255))),green:nn(Ee(on.some(255))),blue:nn(Ee(on.some(255))),hex:nn(Ee(on.some("ffffff")))},a=function(n){var t=n.red(),e=n.green(),o=n.blue();i("red",on.some(t)),i("green",on.some(e)),i("blue",on.some(o))},c=n("red"),s=n("green"),f=n("blue"),l=n("hex");return Bn(bS.sketch(function(n){return{dom:{tag:"form",classes:[m("rgb-form")],attributes:{"aria-label":d("aria.color.picker")}},components:[n.field("red",by.sketch(h(Xh,"red",c.label,c.description,255))),n.field("green",by.sketch(h(Xh,"green",s.label,s.description,255))),n.field("blue",by.sketch(h(Xh,"blue",f.label,f.description,255))),n.field("hex",by.sketch(h(Lh,"hex",l.label,l.description,"ffffff"))),y.asSpec()],formBehaviours:ya([Uy.config({invalidClass:m("form-invalid")}),Jd("rgb-form-events",[rr(yS,e),rr(xS,t),rr(wS,t)])])}}),{apis:{updateHex:function(n,t){nl.setValue(n,{hex:t.value()}),function(n,t){var e=qh(t);v(n,e),a(e)}(n,t),b(n,t)}}})},name:"RgbForm",configFields:[],apis:{updateHex:function(n,t,e){n.updateHex(t,e)}},extraApis:{}})},kS=function(n,o){function r(n,t){var e=n.width,o=n.height,r=n.getContext("2d");if(null!==r){r.fillStyle=t,r.fillRect(0,0,e,o);var i=r.createLinearGradient(0,0,e,0);i.addColorStop(0,"rgba(255,255,255,1)"),i.addColorStop(1,"rgba(255,255,255,0)"),r.fillStyle=i,r.fillRect(0,0,e,o);var u=r.createLinearGradient(0,0,0,o);u.addColorStop(0,"rgba(0,0,0,0)"),u.addColorStop(1,"rgba(0,0,0,1)"),r.fillStyle=u,r.fillRect(0,0,e,o)}}var i=gS.parts().spectrum({dom:{tag:"canvas",attributes:{role:"presentation"},classes:[o("sv-palette-spectrum")]}}),u=gS.parts().thumb({dom:{tag:"div",attributes:{role:"presentation"},classes:[o("sv-palette-thumb")],innerHtml:"<div class="+o("sv-palette-inner-thumb")+' role="presentation"></div>'}});return Al({factory:function(n){var t=nn({x:nn(0),y:nn(0)}),e=ya([nd.config({find:on.some}),bg.config({})]);return gS.sketch({dom:{tag:"div",attributes:{role:"presentation"},classes:[o("sv-palette")]},model:{mode:"xy",getInitialValue:t},rounded:!1,components:[i,u],onChange:function(n,t,e){qt(n,Fw(),{value:e})},onInit:function(n,t,e,o){r(e.element().dom(),Jh(rv()))},sliderBehaviours:e})},name:"SaturationBrightnessPalette",configFields:[],apis:{setRgba:function(n,t,e){!function(n,t){var e=n.components()[0].element().dom();r(e,Jh(t))}(t,e)}},extraApis:{}})},OS=function(l,d){return Al({name:"ColourPicker",configFields:[ct("dom"),St("onValidHex",Z),St("onInvalidHex",Z)],factory:function(n){function t(n,e){u.getOpt(n).each(function(n){var t=qh(e);s.paletteRgba().set(t),i.setRgba(n,t)})}function e(n,t){f.getOpt(n).each(function(n){r.updateHex(n,t)})}function a(t,e,n){bn(n,function(n){n(t,e)})}var o,c,r=CS(l,d,n.onValidHex,n.onInvalidHex),i=kS(l,d),s={paletteRgba:nn(Ee(rv()))},u=bm(i.sketch({})),f=bm(r.sketch({}));return{uid:n.uid,dom:n.dom,components:[u.asSpec(),pS(l,d),f.asSpec()],behaviours:ya([Jd("colour-picker-events",[rr(Fw(),(c=[e],function(n,t){var e=t.event().value(),o=function(n){var t,e=0,o=0,r=n.red()/255,i=n.green()/255,u=n.blue()/255,a=Math.min(r,Math.min(i,u)),c=Math.max(r,Math.max(i,u));return a===c?fx(0,0,100*(o=a)):(e=60*((e=r===a?3:u===a?1:5)-(r===a?i-u:u===a?r-i:u-r)/(c-a)),t=(c-a)/c,o=c,fx(Math.round(e),Math.round(100*t),Math.round(100*o)))}(s.paletteRgba().get()),r=fx(o.hue(),e.x(),100-e.y()),i=Yh(r),u=Wh(i);a(n,u,c)})),rr(Mw(),(o=[t,e],function(n,t){var e=function(n){var t=fx((100-n)/100*360,100,100),e=Yh(t);return Wh(e)}(t.event().value().y());a(n,e,o)}))]),nd.config({find:function(n){return f.getOpt(n)}}),dg.config({mode:"acyclic"})])}}})},TS=function(){return nd.config({find:on.some})},ES=function(n){return nd.config({find:n.getOpt})},DS=function(n){return nd.config({find:function(t){return wr(t.element(),n).bind(function(n){return t.getSystem().getByDom(n).toOption()})}})},BS={"colorcustom.rgb.red.label":"R","colorcustom.rgb.red.description":"Red component","colorcustom.rgb.green.label":"G","colorcustom.rgb.green.description":"Green component","colorcustom.rgb.blue.label":"B","colorcustom.rgb.blue.description":"Blue component","colorcustom.rgb.hex.label":"#","colorcustom.rgb.hex.description":"Hex color code","colorcustom.rgb.range":"Range 0 to 255","colorcustom.sb.saturation":"Saturation","colorcustom.sb.brightness":"Brightness","colorcustom.sb.picker":"Saturation and Brightness Picker","colorcustom.sb.palette":"Saturation and Brightness Palette","colorcustom.sb.instructions":"Use arrow keys to select saturation and brightness, on x and y axes","colorcustom.hue.hue":"Hue","colorcustom.hue.slider":"Hue Slider","colorcustom.hue.palette":"Hue Palette","colorcustom.hue.instructions":"Use arrow keys to select a hue","aria.color.picker":"Color Picker","aria.input.invalid":"Invalid input"},AS=tinymce.util.Tools.resolve("tinymce.Resource"),_S=de([St("preprocess",l),St("postprocess",l)]),MS=function(r,n){var i=ot("RepresentingConfigs.memento processors",_S,n);return nl.config({store:{mode:"manual",getValue:function(n){var t=r.get(n),e=nl.getValue(t);return i.postprocess(e)},setValue:function(n,t){var e=i.preprocess(t),o=r.get(n);nl.setValue(o,e)}}})},FS=vw,IS=function(n){return bw(n,Dr,Br)},RS=function(n){return nl.config({store:{mode:"memory",initialValue:n}})},VS=Hr("alloy-fake-before-tabstop"),NS=Hr("alloy-fake-after-tabstop"),HS=function(n){return db(n,["."+VS,"."+NS].join(","),nn(!1))},PS=function(n,t){var e=t.element();ii(e,VS)?ww(n,!0):ii(e,NS)&&ww(n,!1)},zS=function(n){return{dom:{tag:"div",classes:["tox-navobj"]},components:[xw([VS]),n,xw([NS])],behaviours:ya([DS(1)])}},LS=!(Ht().browser.isIE()||Ht().browser.isEdge());function jS(n,t){return GS(v.document.createElement("canvas"),n,t)}function US(n){var t=jS(n.width,n.height);return WS(t).drawImage(n,0,0),t}function WS(n){return n.getContext("2d")}function GS(n,t,e){return n.width=t,n.height=e,n}function XS(n){return n.naturalWidth||n.width}function YS(n){return n.naturalHeight||n.height}var qS,KS,JS=window.Promise?window.Promise:(qS=$S.immediateFn||"function"==typeof window.setImmediate&&window.setImmediate||function(n){v.setTimeout(n,1)},KS=Array.isArray||function(n){return"[object Array]"===Object.prototype.toString.call(n)},$S.prototype["catch"]=function(n){return this.then(null,n)},$S.prototype.then=function(e,o){var r=this;return new $S(function(n,t){ZS.call(r,new oC(e,o,n,t))})},$S.all=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var c=Array.prototype.slice.call(1===n.length&&KS(n[0])?n[0]:n);return new $S(function(r,i){if(0===c.length)return r([]);var u=c.length;function a(t,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var e=n.then;if("function"==typeof e)return void e.call(n,function(n){a(t,n)},i)}c[t]=n,0==--u&&r(c)}catch(o){i(o)}}for(var n=0;n<c.length;n++)a(n,c[n])})},$S.resolve=function(t){return t&&"object"==typeof t&&t.constructor===$S?t:new $S(function(n){n(t)})},$S.reject=function(e){return new $S(function(n,t){t(e)})},$S.race=function(r){return new $S(function(n,t){for(var e=0,o=r;e<o.length;e++)o[e].then(n,t)})},$S);function $S(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof n)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],rC(n,QS(nC,this),QS(tC,this))}function QS(n,t){return function(){return n.apply(t,arguments)}}function ZS(o){var r=this;null!==this._state?qS(function(){var n=r._state?o.onFulfilled:o.onRejected;if(null!==n){var t;try{t=n(r._value)}catch(e){return void o.reject(e)}o.resolve(t)}else(r._state?o.resolve:o.reject)(r._value)}):this._deferreds.push(o)}function nC(n){try{if(n===this)throw new TypeError("A promise cannot be resolved with itself.");if(n&&("object"==typeof n||"function"==typeof n)){var t=n.then;if("function"==typeof t)return void rC(QS(t,n),QS(nC,this),QS(tC,this))}this._state=!0,this._value=n,eC.call(this)}catch(e){tC.call(this,e)}}function tC(n){this._state=!1,this._value=n,eC.call(this)}function eC(){for(var n=0,t=this._deferreds;n<t.length;n++){var e=t[n];ZS.call(this,e)}this._deferreds=[]}function oC(n,t,e,o){this.onFulfilled="function"==typeof n?n:null,this.onRejected="function"==typeof t?t:null,this.resolve=e,this.reject=o}function rC(n,t,e){var o=!1;try{n(function(n){o||(o=!0,t(n))},function(n){o||(o=!0,e(n))})}catch(r){if(o)return;o=!0,e(r)}}function iC(e){return new JS(function(n,t){(function p(n){var t=n.split(","),e=/data:([^;]+)/.exec(t[0]);if(!e)return on.none();for(var o=e[1],r=t[1],i=v.atob(r),u=i.length,a=Math.ceil(u/1024),c=new Array(a),s=0;s<a;++s){for(var f=1024*s,l=Math.min(1024+f,u),d=new Array(l-f),m=f,g=0;m<l;++g,++m)d[g]=i[m].charCodeAt(0);c[s]=new Uint8Array(d)}return on.some(new v.Blob(c,{type:o}))})(e).fold(function(){t("uri is not base64: "+e)},n)})}function uC(n,o,r){return o=o||"image/png",v.HTMLCanvasElement.prototype.toBlob?new JS(function(t,e){n.toBlob(function(n){n?t(n):e()},o,r)}):iC(n.toDataURL(o,r))}function aC(n){return function t(a){return new JS(function(n,t){var e=v.URL.createObjectURL(a),o=new v.Image,r=function(){o.removeEventListener("load",i),o.removeEventListener("error",u)};function i(){r(),n(o)}function u(){r(),t("Unable to load data of type "+a.type+": "+e)}o.addEventListener("load",i),o.addEventListener("error",u),o.src=e,o.complete&&i()})}(n).then(function(n){!function e(n){v.URL.revokeObjectURL(n.src)}(n);var t=jS(XS(n),YS(n));return WS(t).drawImage(n,0,0),t})}function cC(n,t,e){var o=t.type;function r(t,e){return n.then(function(n){return function o(n,t,e){return t=t||"image/png",n.toDataURL(t,e)}(n,t,e)})}return{getType:nn(o),toBlob:function i(){return JS.resolve(t)},toDataURL:function u(){return e},toBase64:function a(){return e.split(",")[1]},toAdjustedBlob:function c(t,e){return n.then(function(n){return uC(n,t,e)})},toAdjustedDataURL:r,toAdjustedBase64:function s(n,t){return r(n,t).then(function(n){return n.split(",")[1]})},toCanvas:function f(){return n.then(US)}}}function sC(t){return function n(e){return new JS(function(n){var t=new v.FileReader;t.onloadend=function(){n(t.result)},t.readAsDataURL(e)})}(t).then(function(n){return cC(aC(t),t,n)})}function fC(t,n){return uC(t,n).then(function(n){return cC(JS.resolve(t),n,t.toDataURL())})}function lC(n,t,e){var o="string"==typeof n?parseFloat(n):n;return e<o?o=e:o<t&&(o=t),o}var dC=[0,.01,.02,.04,.05,.06,.07,.08,.1,.11,.12,.14,.15,.16,.17,.18,.2,.21,.22,.24,.25,.27,.28,.3,.32,.34,.36,.38,.4,.42,.44,.46,.48,.5,.53,.56,.59,.62,.65,.68,.71,.74,.77,.8,.83,.86,.89,.92,.95,.98,1,1.06,1.12,1.18,1.24,1.3,1.36,1.42,1.48,1.54,1.6,1.66,1.72,1.78,1.84,1.9,1.96,2,2.12,2.25,2.37,2.5,2.62,2.75,2.87,3,3.2,3.4,3.6,3.8,4,4.3,4.7,4.9,5,5.5,6,6.5,6.8,7,7.3,7.5,7.8,8,8.4,8.7,9,9.4,9.6,9.8,10];function mC(n,t){for(var e,o=[],r=new Array(25),i=0;i<5;i++){for(var u=0;u<5;u++)o[u]=t[u+5*i];for(u=0;u<5;u++){for(var a=e=0;a<5;a++)e+=n[u+5*a]*o[a];r[u+5*i]=e}}return r}function gC(t,e){return t.toCanvas().then(function(n){return function i(n,t,e){var o=WS(n);var r=function D(n,t){for(var e,o,r,i,u=n.data,a=t[0],c=t[1],s=t[2],f=t[3],l=t[4],d=t[5],m=t[6],g=t[7],p=t[8],h=t[9],v=t[10],b=t[11],y=t[12],x=t[13],w=t[14],S=t[15],C=t[16],k=t[17],O=t[18],T=t[19],E=0;E<u.length;E+=4)e=u[E],o=u[E+1],r=u[E+2],i=u[E+3],u[E]=e*a+o*c+r*s+i*f+l,u[E+1]=e*d+o*m+r*g+i*p+h,u[E+2]=e*v+o*b+r*y+i*x+w,u[E+3]=e*S+o*C+r*k+i*O+T;return n}(o.getImageData(0,0,n.width,n.height),e);return o.putImageData(r,0,0),fC(n,t)}(n,t.getType(),e)})}function pC(t,e){return t.toCanvas().then(function(n){return function u(n,t,e){var o=WS(n);var r=o.getImageData(0,0,n.width,n.height),i=o.getImageData(0,0,n.width,n.height);return i=function w(n,t,e){function o(n,t,e){return e<n?n=e:n<t&&(n=t),n}for(var r=Math.round(Math.sqrt(e.length)),i=Math.floor(r/2),u=n.data,a=t.data,c=n.width,s=n.height,f=0;f<s;f++)for(var l=0;l<c;l++){for(var d=0,m=0,g=0,p=0;p<r;p++)for(var h=0;h<r;h++){var v=o(l+h-i,0,c-1),b=4*(o(f+p-i,0,s-1)*c+v),y=e[p*r+h];d+=u[b]*y,m+=u[1+b]*y,g+=u[2+b]*y}var x=4*(f*c+l);a[x]=o(d,0,255),a[1+x]=o(m,0,255),a[2+x]=o(g,0,255)}return t}(r,i,e),o.putImageData(i,0,0),fC(n,t)}(n,t.getType(),e)})}function hC(e){return function(n,t){return gC(n,e([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1],t))}}function vC(n,t,e,o){return gC(n,function r(n,t,e,o){return mC(n,[t=lC(t,0,2),0,0,0,0,0,e=lC(e,0,2),0,0,0,0,0,o=lC(o,0,2),0,0,0,0,0,1,0,0,0,0,0,1])}([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1],t,e,o))}var bC=function sI(t){return function(n){return gC(n,t)}}([-1,0,0,0,255,0,-1,0,0,255,0,0,-1,0,255,0,0,0,1,0,0,0,0,0,1]),yC=hC(function fI(n,t){return mC(n,[1,0,0,0,t=lC(255*t,-255,255),0,1,0,0,t,0,0,1,0,t,0,0,0,1,0,0,0,0,0,1])}),xC=hC(function lI(n,t){var e;return t=lC(t,-1,1),mC(n,[(e=(t*=100)<0?127+t/100*127:127*(e=0===(e=t%1)?dC[t]:dC[Math.floor(t)]*(1-e)+dC[Math.floor(t)+1]*e)+127)/127,0,0,0,.5*(127-e),0,e/127,0,0,.5*(127-e),0,0,e/127,0,.5*(127-e),0,0,0,1,0,0,0,0,0,1])}),wC=function dI(t){return function(n){return pC(n,t)}}([0,-1,0,-1,5,-1,0,-1,0]),SC=function mI(c){return function(t,e){return t.toCanvas().then(function(n){return function(n,t,e){var o=WS(n),r=new Array(256);for(var i=0;i<r.length;i++)r[i]=c(i,e);var u=function a(n,t){for(var e=n.data,o=0;o<e.length;o+=4)e[o]=t[e[o]],e[o+1]=t[e[o+1]],e[o+2]=t[e[o+2]];return n}(o.getImageData(0,0,n.width,n.height),r);return o.putImageData(u,0,0),fC(n,t)}(n,t.getType(),e)})}}(function(n,t){return 255*Math.pow(n/255,1-t)});function CC(n,t,e){var o=XS(n),r=YS(n),i=t/o,u=e/r,a=!1;(i<.5||2<i)&&(i=i<.5?.5:2,a=!0),(u<.5||2<u)&&(u=u<.5?.5:2,a=!0);var c=function s(u,a,c){return new JS(function(n){var t=XS(u),e=YS(u),o=Math.floor(t*a),r=Math.floor(e*c),i=jS(o,r);WS(i).drawImage(u,0,0,t,e,0,0,o,r),n(i)})}(n,i,u);return a?c.then(function(n){return CC(n,t,e)}):c}function kC(t,e){return t.toCanvas().then(function(n){return function a(n,t,e){var o=jS(n.width,n.height),r=WS(o),i=0,u=0;90!==(e=e<0?360+e:e)&&270!==e||GS(o,o.height,o.width);90!==e&&180!==e||(i=o.width);270!==e&&180!==e||(u=o.height);return r.translate(i,u),r.rotate(e*Math.PI/180),r.drawImage(n,0,0),fC(o,t)}(n,t.getType(),e)})}function OC(t,e){return t.toCanvas().then(function(n){return function i(n,t,e){var o=jS(n.width,n.height),r=WS(o);"v"===e?(r.scale(1,-1),r.drawImage(n,0,-o.height)):(r.scale(-1,1),r.drawImage(n,-o.width,0));return fC(o,t)}(n,t.getType(),e)})}function TC(t,e,o,r,i){return t.toCanvas().then(function(n){return function a(n,t,e,o,r,i){var u=jS(r,i);return WS(u).drawImage(n,-e,-o),fC(u,t)}(n,t.getType(),e,o,r,i)})}function EC(n){return bC(n)}function DC(n){return wC(n)}function BC(n,t){return SC(n,t)}function AC(n,t){return yC(n,t)}function _C(n,t){return xC(n,t)}function MC(n,t){return OC(n,t)}function FC(n,t,e){return function r(t,e,o){return t.toCanvas().then(function(n){return CC(n,e,o).then(function(n){return fC(n,t.getType())})})}(n,t,e)}function IC(n,t){return kC(n,t)}function RC(n,t){return N({dom:{tag:"span",innerHtml:n,classes:["tox-icon","tox-tbtn__icon-wrap"]}},t)}function VC(n,t){return RC(xm(n,t),{})}function NC(n,t){return RC(xm(n,t),{behaviours:ya([gg.config({})])})}function HC(n,t,e){return{dom:{tag:"span",innerHtml:e.translate(n),classes:[t+"__select-label"]},behaviours:ya([gg.config({})])}}function PC(n,t,o){function e(n,t){var e=nl.getValue(n);return bg.focus(e),qt(e,"keydown",{raw:t.event().raw()}),Tw.close(e),on.some(!0)}var r=Ee(Z),i=n.text.map(function(n){return bm(HC(n,t,o.providers))}),u=n.icon.map(function(n){return bm(NC(n,o.providers.icons))}),a=n.role.fold(function(){return{}},function(n){return{role:n}}),c=n.tooltip.fold(function(){return{}},function(n){var t=o.providers.translate(n);return{title:t,"aria-label":t}});return bm(Tw.sketch(N(N({},a),{dom:{tag:"button",classes:[t,t+"--select"].concat(S(n.classes,function(n){return t+"--"+n})),attributes:N({},c)},components:Bh([u.map(function(n){return n.asSpec()}),i.map(function(n){return n.asSpec()}),on.some({dom:{tag:"div",classes:[t+"__select-chevron"],innerHtml:xm("chevron-down",o.providers.icons)}})]),matchWidth:!0,useMinWidth:!0,dropdownBehaviours:ya(g(n.dropdownBehaviours,[Th(n.disabled),Ew.config({}),gg.config({}),Jd("dropdown-events",[Ep(n,r),Dp(n,r)]),Jd("menubutton-update-display-text",[rr(fk,function(t,e){i.bind(function(n){return n.getOpt(t)}).each(function(n){gg.set(n,[Ti(o.providers.translate(e.event().text()))])})}),rr(lk,function(t,e){u.bind(function(n){return n.getOpt(t)}).each(function(n){gg.set(n,[NC(e.event().icon(),o.providers.icons)])})})])])),eventOrder:Bn(sk,{mousedown:["focusing","alloy.base.behaviour","item-type-events","normal-dropdown-events"]}),sandboxBehaviours:ya([dg.config({mode:"special",onLeft:e,onRight:e})]),lazySink:o.getSink,toggleClass:t+"--active",parts:{menu:Cv(0,n.columns,n.presets)},fetch:function(){return Ny(n.fetch)}}))).asSpec()}function zC(n){return"separator"===n.type}function LC(n,e){var t=O(n,function(n,t){return function(n){return cn(n)}(t)?""===t?n:"|"===t?0<n.length&&!zC(n[n.length-1])?n.concat([dk]):n:Tn(e,t.toLowerCase())?n.concat([e[t.toLowerCase()]]):n:n.concat([t])},[]);return 0<t.length&&zC(t[t.length-1])&&t.pop(),t}function jC(n,t){return function(n){return Tn(n,"getSubmenuItems")}(n)?function(n,t){var e=n.getSubmenuItems(),o=mk(e,t);return{item:n,menus:Bn(o.menus,q(n.value,o.items)),expansions:Bn(o.expansions,q(n.value,n.value))}}(n,t):{item:n,menus:{},expansions:{}}}function UC(n,e,o,t){var r=Hr("primary-menu"),i=mk(n,o.shared.providers.menuItems());if(0===i.items.length)return on.none();var u=ub(r,i.items,e,o,t),a=P(i.menus,function(n,t){return ub(t,n,e,o,!1)}),c=Bn(a,q(r,u));return on.from(jg.tieredData(r,c,i.expansions))}function WC(e){return{isDisabled:function(){return kh.isDisabled(e)},setDisabled:function(n){return kh.set(e,n)},setActive:function(n){var t=e.element();n?(ei(t,"tox-tbtn--enabled"),_r(t,"aria-pressed",!0)):(ri(t,"tox-tbtn--enabled"),Ir(t,"aria-pressed"))},isActive:function(){return ii(e.element(),"tox-tbtn--enabled")}}}function GC(n,t,e,o){return PC({text:n.text,icon:n.icon,tooltip:n.tooltip,role:o,fetch:function(t){n.fetch(function(n){t(UC(n,Ih.CLOSE_ON_EXECUTE,e,!1))})},onSetup:n.onSetup,getApi:WC,columns:1,presets:"normal",classes:[],dropdownBehaviours:[Xy.config({})]},t,e.shared)}function XC(t,o,r){return function(n){n(S(t,function(n){var t=n.text.fold(function(){return{}},function(n){return{text:n}});return N(N({type:n.type},t),{onAction:function(e){return function(n){r.shared.getSink().each(function(n){o().getOpt(n).each(function(n){Sa(n.element()),qt(n,fy,{name:e.name,value:e.storage.get()})})});var t=!n.isActive();n.setActive(t),e.storage.set(t)}}(n),onSetup:function(t){return function(n){n.setActive(t.storage.get())}}(n)})}))}}function YC(n,t,e,o,r){void 0===e&&(e=[]);var i=t.fold(function(){return{}},function(n){return{action:n}}),u=N({buttonBehaviours:ya([Th(n.disabled),Xy.config({}),Jd("button press",[or("click"),or("mousedown")])].concat(e)),eventOrder:{click:["button press","alloy.base.behaviour"],mousedown:["button press","alloy.base.behaviour"]}},i),a=Bn(u,{dom:o});return Bn(a,{components:r})}function qC(n,t,e,o){void 0===o&&(o=[]);var r={tag:"button",classes:["tox-tbtn"],attributes:n.tooltip.map(function(n){return{"aria-label":e.translate(n),title:e.translate(n)}}).getOr({})},i=n.icon.map(function(n){return VC(n,e.icons)}),u=Bh([i]);return YC(n,t,o,r,u)}function KC(n,t,e,o){void 0===o&&(o=[]);var r=qC(n,on.some(t),e,o);return Xg.sketch(r)}function JC(n,t,e,o,r){void 0===o&&(o=[]),void 0===r&&(r=[]);var i=e.translate(n.text),u=n.icon?n.icon.map(function(n){return VC(n,e.icons)}):on.none(),a=u.isSome()?Bh([u]):[],c=u.isSome()?{}:{innerHtml:i},s=g(n.primary||n.borderless?["tox-button"]:["tox-button","tox-button--secondary"],u.isSome()?["tox-button--icon"]:[],n.borderless?["tox-button--naked"]:[],r),f=N(N({tag:"button",classes:s},c),{attributes:{title:i}});return YC(n,t,o,f,a)}function $C(n,t,e,o,r){void 0===o&&(o=[]),void 0===r&&(r=[]);var i=JC(n,on.some(t),e,o,r);return Xg.sketch(i)}function QC(t,e){return function(n){"custom"===e?qt(n,fy,{name:t,value:{}}):"submit"===e?Yt(n,ly):"cancel"===e?Yt(n,sy):v.console.error("Unknown button type: ",e)}}function ZC(n,t,e){if(function(n,t){return"menu"===t}(0,t)){var o=n,r=N(N({},n),{fetch:XC(o.items,function(){return i},e)}),i=bm(GC(r,"tox-tbtn",e,on.none()));return i.asSpec()}if(function(n,t){return"custom"===t||"cancel"===t||"submit"===t}(0,t)){var u=QC(n.name,t),a=N(N({},n),{borderless:!1});return $C(a,u,e.shared.providers,[])}v.console.error("Unknown footer button type: ",t)}function nk(n,t){var e=QC(n.name,"custom");return function(n,t){return By(n,t,[],[])}(on.none(),by.parts().field(N({factory:Xg},JC(n,on.some(e),t,[RS(""),TS()]))))}function tk(n,t){return wl({factory:by,name:n,overrides:function(o){return{fieldBehaviours:ya([Jd("coupled-input-behaviour",[rr(ho(),function(e){(function(n,t,e){return Ks(n,t,e).bind(nd.getCurrent)})(e,o,t).each(function(t){Ks(e,o,"lock").each(function(n){kg.isOn(n)&&o.onLockedChange(e,t,n)})})})])])}}})}function ek(n){var t=/^\s*(\d+(?:\.\d+)?)\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\s*$/.exec(n);if(null===t)return an.error(n);var e=parseFloat(t[1]),o=t[2];return an.value({value:e,unit:o})}function ok(n,t){function e(n){return Object.prototype.hasOwnProperty.call(o,n)}var o={"":96,px:96,pt:72,cm:2.54,pc:12,mm:25.4,"in":1};return n.unit===t?on.some(n.value):e(n.unit)&&e(t)?o[n.unit]===o[t]?on.some(n.value):on.some(n.value/o[n.unit]*o[t]):on.none()}function rk(n){return on.none()}function ik(n,t){return function(n,t,e){return n.isSome()&&t.isSome()?on.some(e(n.getOrDie(),t.getOrDie())):on.none()}(ek(n).toOption(),ek(t).toOption(),function(n,t){return ok(n,t.unit).map(function(n){return t.value/n}).map(function(n){return function(t,e){return function(n){return ok(n,e).map(function(n){return{value:n*t,unit:e}})}}(n,t.unit)}).getOr(rk)}).getOr(rk)}function uk(o,t){function n(n){return{dom:{tag:"div",classes:["tox-form__group"]},components:n}}function e(e){return by.parts().field({factory:xy,inputClasses:["tox-textfield"],inputBehaviours:ya([kh.config({disabled:o.disabled}),Xy.config({}),Jd("size-input-events",[rr(lo(),function(n,t){qt(n,i,{isField1:e})}),rr(vo(),function(n,t){qt(n,ay,{name:o.name})})])]),selectOnFocus:!1})}function r(n){return{dom:{tag:"label",classes:["tox-label"],innerHtml:t.translate(n)}}}var a=rk,i=Hr("ratio-event"),u=hk.parts().lock({dom:{tag:"button",classes:["tox-lock","tox-button","tox-button--naked","tox-button--icon"],attributes:{title:t.translate(o.label.getOr("Constrain proportions"))}},components:[{dom:{tag:"span",classes:["tox-icon","tox-lock-icon__lock"],innerHtml:xm("lock",t.icons)}},{dom:{tag:"span",classes:["tox-icon","tox-lock-icon__unlock"],innerHtml:xm("unlock",t.icons)}}],buttonBehaviours:ya([Th(o.disabled),Xy.config({})])}),c=hk.parts().field1(n([by.parts().label(r("Width")),e(!0)])),s=hk.parts().field2(n([by.parts().label(r("Height")),e(!1)]));return hk.sketch({dom:{tag:"div",classes:["tox-form__group"]},components:[{dom:{tag:"div",classes:["tox-form__controls-h-stack"]},components:[c,s,n([r(" "),u])]}],field1Name:"width",field2Name:"height",locked:!0,markers:{lockClass:"tox-locked"},onLockedChange:function(n,t,e){ek(nl.getValue(n)).each(function(n){a(n).each(function(n){nl.setValue(t,function(n){var t,e={"":0,px:0,pt:1,mm:1,pc:2,ex:2,em:2,ch:2,rem:2,cm:3,"in":4,"%":4},o=n.value.toFixed((t=n.unit)in e?e[t]:1);return-1!==o.indexOf(".")&&(o=o.replace(/\.?0*$/,"")),o+n.unit}(n))})})},coupledFieldBehaviours:ya([kh.config({disabled:o.disabled,onDisabled:function(n){hk.getField1(n).bind(by.getField).each(kh.disable),hk.getField2(n).bind(by.getField).each(kh.disable),hk.getLock(n).each(kh.disable)},onEnabled:function(n){hk.getField1(n).bind(by.getField).each(kh.enable),hk.getField2(n).bind(by.getField).each(kh.enable),hk.getLock(n).each(kh.enable)}}),Jd("size-input-events2",[rr(i,function(n,t){var e=t.event().isField1(),o=e?hk.getField1(n):hk.getField2(n),r=e?hk.getField2(n):hk.getField1(n),i=o.map(nl.getValue).getOr(""),u=r.map(nl.getValue).getOr("");a=ik(i,u)})])])})}function ak(r,c){function n(n,t,e,o){return bm($C({name:n,text:n,disabled:e,primary:o,icon:on.none(),borderless:!1},t,c))}function t(n,t,e,o){return bm(KC({name:n,icon:on.some(n),tooltip:on.some(t),disabled:o,primary:!1,borderless:!1},e,c))}function u(n,e){n.map(function(n){var t=n.get(e);t.hasConfigured(kh)&&kh.disable(t)})}function a(n,e){n.map(function(n){var t=n.get(e);t.hasConfigured(kh)&&kh.enable(t)})}function i(n,t,e){qt(n,t,e)}function e(n){return Yt(n,wk.disable())}function o(n){return Yt(n,wk.enable())}function s(n,t){e(n),i(n,vk.transform(),{transform:t}),o(n)}function f(n){return function(){Q.getOpt(n).each(function(n){gg.set(n,[J])})}}function l(n,t){e(n),i(n,vk.transformApply(),{transform:t,swap:f(n)}),o(n)}function d(){return n("Back",function(n){return i(n,vk.back(),{swap:f(n)})},!1,!1)}function m(){return bm({dom:{tag:"div",classes:["tox-spacer"]},behaviours:ya([kh.config({})])})}function g(){return n("Apply",function(n){return i(n,vk.apply(),{swap:f(n)})},!0,!0)}function p(){return function(n){var t=r.getRect();return function(n,t,e,o,r){return TC(n,t,e,o,r)}(n,t.x,t.y,t.w,t.h)}}function h(t,e){return function(n){return t(n,e)}}function v(n,t){!function(n,t){e(n),i(n,vk.tempTransform(),{transform:t}),o(n)}(n,t)}function b(n,t,e,o,r){var i=gS.parts().label({dom:{tag:"label",classes:["tox-label"],innerHtml:c.translate(n)}}),u=gS.parts().spectrum({dom:{tag:"div",classes:["tox-slider__rail"],attributes:{role:"presentation"}}}),a=gS.parts().thumb({dom:{tag:"div",classes:["tox-slider__handle"],attributes:{role:"presentation"}}});return bm(gS.sketch({dom:{tag:"div",classes:["tox-slider"],attributes:{role:"presentation"}},model:{mode:"x",minX:e,maxX:r,getInitialValue:nn({x:nn(o)})},components:[i,u,a],sliderBehaviours:ya([bg.config({})]),onChoose:t}))}function y(n,t,e,o,r){return[d(),function(n,r,t,e,o){return b(n,function(n,t,e){var o=h(r,e.x()/100);s(n,o)},t,e,o)}(n,t,e,o,r),g()]}function x(n,t,e,o,r){var i=y(n,t,e,o,r);return Gb.sketch({dom:k,components:i.map(function(n){return n.asSpec()}),containerBehaviours:ya([Jd("image-tools-filter-panel-buttons-events",[rr(wk.disable(),function(n,t){u(i,n)}),rr(wk.enable(),function(n,t){a(i,n)})])])})}function w(t,e,o){return function(n){return function(n,t,e,o){return vC(n,t,e,o)}(n,t,e,o)}}function S(n){return b(n,function(a,n,t){var e=j.getOpt(a),o=W.getOpt(a),r=U.getOpt(a);e.each(function(u){o.each(function(i){r.each(function(n){var t=nl.getValue(u).x()/100,e=nl.getValue(n).x()/100,o=nl.getValue(i).x()/100,r=w(t,e,o);s(a,r)})})})},0,100,200)}function C(t,e,o){return function(n){i(n,vk.swap(),{transform:e,swap:function(){Q.getOpt(n).each(function(n){gg.set(n,[t]),o(n)})}})}}var k={tag:"div",classes:["tox-image-tools__toolbar","tox-image-tools-edit-panel"]},O=Z,T=[d(),m(),n("Apply",function(n){var t=p();l(n,t),r.hideCrop()},!1,!0)],E=Gb.sketch({dom:k,components:T.map(function(n){return n.asSpec()}),containerBehaviours:ya([Jd("image-tools-crop-buttons-events",[rr(wk.disable(),function(n,t){u(T,n)}),rr(wk.enable(),function(n,t){a(T,n)})])])}),D=bm(uk({name:"size",label:on.none(),constrain:!0,disabled:!1},c)),B=[d(),m(),D,m(),n("Apply",function(o){D.getOpt(o).each(function(n){var t=nl.getValue(n),e=function(t,e){return function(n){return FC(n,t,e)}}(parseInt(t.width,10),parseInt(t.height,10));l(o,e)})},!1,!0)],A=Gb.sketch({dom:k,components:B.map(function(n){return n.asSpec()}),containerBehaviours:ya([Jd("image-tools-resize-buttons-events",[rr(wk.disable(),function(n,t){u(B,n)}),rr(wk.enable(),function(n,t){a(B,n)})])])}),_=h(MC,"h"),M=h(MC,"v"),F=h(IC,-90),I=h(IC,90),R=[d(),m(),t("flip-horizontally","Flip horizontally",function(n){v(n,_)},!1),t("flip-vertically","Flip vertically",function(n){v(n,M)},!1),t("rotate-left","Rotate counterclockwise",function(n){v(n,F)},!1),t("rotate-right","Rotate clockwise",function(n){v(n,I)},!1),m(),g()],V=Gb.sketch({dom:k,components:R.map(function(n){return n.asSpec()}),containerBehaviours:ya([Jd("image-tools-fliprotate-buttons-events",[rr(wk.disable(),function(n,t){u(R,n)}),rr(wk.enable(),function(n,t){a(R,n)})])])}),N=[d(),m(),g()],H=Gb.sketch({dom:k,components:N.map(function(n){return n.asSpec()})}),P=x("Brightness",AC,-100,0,100),z=x("Contrast",_C,-100,0,100),L=x("Gamma",BC,-100,0,100),j=S("R"),U=S("G"),W=S("B"),G=[d(),j,U,W,g()],X=Gb.sketch({dom:k,components:G.map(function(n){return n.asSpec()})}),Y=on.some(DC),q=on.some(EC),K=[t("crop","Crop",C(E,on.none(),function(n){r.showCrop()}),!1),t("resize","Resize",C(A,on.none(),function(n){D.getOpt(n).each(function(n){var t=r.getMeasurements(),e=t.width,o=t.height;nl.setValue(n,{width:e,height:o})})}),!1),t("orientation","Orientation",C(V,on.none(),O),!1),t("brightness","Brightness",C(P,on.none(),O),!1),t("sharpen","Sharpen",C(H,Y,O),!1),t("contrast","Contrast",C(z,on.none(),O),!1),t("color-levels","Color levels",C(X,on.none(),O),!1),t("gamma","Gamma",C(L,on.none(),O),!1),t("invert","Invert",C(H,q,O),!1)],J=Gb.sketch({dom:k,components:K.map(function(n){return n.asSpec()})}),$=Gb.sketch({dom:{tag:"div"},components:[J],containerBehaviours:ya([gg.config({})])}),Q=bm($);return{memContainer:Q,getApplyButton:function(n){return Q.getOpt(n).map(function(n){var t=n.components()[0];return t.components()[t.components().length-1]})}}}var ck=Hr("toolbar.button.execute"),sk={"alloy.execute":["disabling","alloy.base.behaviour","toggling","toolbar-button-events"]},fk=Hr("update-menu-text"),lk=Hr("update-menu-icon"),dk={type:"separator"},mk=function(n,r){var t=LC(cn(n)?n.split(" "):n,r);return k(t,function(n,t){var e=function(n){if(zC(n))return n;var t=Nn(n,"value").getOrThunk(function(){return Hr("generated-menu-item")});return Bn({value:t},n)}(t),o=jC(e,r);return{menus:Bn(n.menus,o.menus),items:[o.item].concat(n.items),expansions:Bn(n.expansions,o.expansions)}},{menus:{},expansions:{},items:[]})},gk=nn([St("field1Name","field1"),St("field2Name","field2"),$u("onLockedChange"),Yu(["lockClass"]),St("locked",!1),tl("coupledFieldBehaviours",[nd,nl])]),pk=nn([tk("field1","field2"),tk("field2","field1"),wl({factory:Xg,schema:[ct("dom")],name:"lock",overrides:function(n){return{buttonBehaviours:ya([kg.config({selected:n.locked,toggleClass:n.markers.lockClass,aria:{mode:"pressed"}})])}}})]),hk=_l({name:"FormCoupledInputs",configFields:gk(),partFields:pk(),factory:function(o,n,t,e){return{uid:o.uid,dom:o.dom,components:n,behaviours:el(o.coupledFieldBehaviours,[nd.config({find:on.some}),nl.config({store:{mode:"manual",getValue:function(n){var t,e=nf(n,o,["field1","field2"]);return(t={})[o.field1Name]=nl.getValue(e.field1()),t[o.field2Name]=nl.getValue(e.field2()),t},setValue:function(n,t){var e=nf(n,o,["field1","field2"]);$(t,o.field1Name)&&nl.setValue(e.field1(),t[o.field1Name]),$(t,o.field2Name)&&nl.setValue(e.field2(),t[o.field2Name])}}})]),apis:{getField1:function(n){return Ks(n,o,"field1")},getField2:function(n){return Ks(n,o,"field2")},getLock:function(n){return Ks(n,o,"lock")}}}},apis:{getField1:function(n,t){return n.getField1(t)},getField2:function(n,t){return n.getField2(t)},getLock:function(n,t){return n.getLock(t)}}}),vk={undo:nn(Hr("undo")),redo:nn(Hr("redo")),zoom:nn(Hr("zoom")),back:nn(Hr("back")),apply:nn(Hr("apply")),swap:nn(Hr("swap")),transform:nn(Hr("transform")),tempTransform:nn(Hr("temp-transform")),transformApply:nn(Hr("transform-apply"))},bk=nn("save-state"),yk=nn("disable"),xk=nn("enable"),wk={formActionEvent:fy,saveState:bk,disable:yk,enable:xk},Sk=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Ck=tinymce.util.Tools.resolve("tinymce.geom.Rect"),kk=tinymce.util.Tools.resolve("tinymce.util.Observable"),Ok=tinymce.util.Tools.resolve("tinymce.util.Tools"),Tk=tinymce.util.Tools.resolve("tinymce.util.VK");function Ek(n){var t,e;if(n.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),e=0;e<t.length;e++)n[t[e]]=n.changedTouches[0][t[e]]}function Dk(n,r){var i,u,t,a,c,f,l,d=r.document||v.document;r=r||{};var m=d.getElementById(r.handle||n);t=function(n){var t,e,o=function s(n){var t,e,o,r,i,u,a,c=Math.max;return t=n.documentElement,e=n.body,o=c(t.scrollWidth,e.scrollWidth),r=c(t.clientWidth,e.clientWidth),i=c(t.offsetWidth,e.offsetWidth),u=c(t.scrollHeight,e.scrollHeight),a=c(t.clientHeight,e.clientHeight),{width:o<i?r:o,height:u<c(t.offsetHeight,e.offsetHeight)?a:u}}(d);Ek(n),n.preventDefault(),u=n.button,t=m,f=n.screenX,l=n.screenY,e=v.window.getComputedStyle?v.window.getComputedStyle(t,null).getPropertyValue("cursor"):t.runtimeStyle.cursor,i=Sk("<div></div>").css({position:"absolute",top:0,left:0,width:o.width,height:o.height,zIndex:2147483647,opacity:1e-4,cursor:e}).appendTo(d.body),Sk(d).on("mousemove touchmove",c).on("mouseup touchend",a),r.start(n)},c=function(n){if(Ek(n),n.button!==u)return a(n);n.deltaX=n.screenX-f,n.deltaY=n.screenY-l,n.preventDefault(),r.drag(n)},a=function(n){Ek(n),Sk(d).off("mousemove touchmove",c).off("mouseup touchend",a),i.remove(),r.stop&&r.stop(n)},this.destroy=function(){Sk(m).off()},Sk(m).on("mousedown touchstart",t)}function Bk(t){function u(n,s){c.getOpt(n).each(function(n){var e=l.get(),o=gu(n.element()),r=fu(n.element()),i=s.dom().naturalWidth*e,u=s.dom().naturalHeight*e,a=Math.max(0,o/2-i/2),c=Math.max(0,r/2-u/2),t={left:a.toString()+"px",top:c.toString()+"px",width:i.toString()+"px",height:u.toString()+"px",position:"absolute"};di(s,t),f.getOpt(n).each(function(n){di(n.element(),t)}),d.get().each(function(n){var t=m.get();n.setRect({x:t.x*e+a,y:t.y*e+c,w:t.w*e,h:t.h*e}),n.setClampRect({x:a,y:c,w:i,h:u}),n.setViewPortRect({x:0,y:0,w:o,h:r})})})}function e(n,t){var i=Be.fromTag("img");return _r(i,"src",t),function(e){return new Hp(function(n){var t=function(){e.removeEventListener("load",t),n(e)};e.complete?n(e):e.addEventListener("load",t)})}(i.dom()).then(function(){return c.getOpt(n).map(function(n){var t=iu({element:i});gg.replaceAt(n,1,on.some(t));var e=a.get(),o={x:0,y:0,w:i.dom().naturalWidth,h:i.dom().naturalHeight};a.set(o);var r=Ck.inflate(o,-20,-20);return m.set(r),e.w===o.w&&e.h===o.h||function(n,u){c.getOpt(n).each(function(n){var t=gu(n.element()),e=fu(n.element()),o=u.dom().naturalWidth,r=u.dom().naturalHeight,i=Math.min(t/o,e/r);1<=i?l.set(1):l.set(i)})}(n,i),u(n,i),i})})}var f=bm({dom:{tag:"div",classes:["tox-image-tools__image-bg"],attributes:{role:"presentation"}}}),l=Ee(1),d=Ee(on.none()),m=Ee({x:0,y:0,w:1,h:1}),a=Ee({x:0,y:0,w:1,h:1}),n=Gb.sketch({dom:{tag:"div",classes:["tox-image-tools__image"]},components:[f.asSpec(),{dom:{tag:"img",attributes:{src:t}}},{dom:{tag:"div"},behaviours:ya([Jd("image-panel-crop-events",[Ri(function(n){c.getOpt(n).each(function(n){var t=n.element().dom(),e=Fk({x:10,y:10,w:100,h:100},{x:0,y:0,w:200,h:200},{x:0,y:0,w:200,h:200},t,function(){});e.toggleVisibility(!1),e.on("updateRect",function(n){var t=n.rect,e=l.get(),o={x:Math.round(t.x/e),y:Math.round(t.y/e),w:Math.round(t.w/e),h:Math.round(t.h/e)};m.set(o)}),d.set(on.some(e))})})])])}],containerBehaviours:ya([gg.config({}),Jd("image-panel-events",[Ri(function(n){e(n,t)})])])}),c=bm(n);return{memContainer:c,updateSrc:e,zoom:function(n,t){var e=l.get(),o=0<t?Math.min(2,e+.1):Math.max(.1,e-.1);l.set(o),c.getOpt(n).each(function(n){var t=n.components()[1].element();u(n,t)})},showCrop:function(){d.get().each(function(n){n.toggleVisibility(!0)})},hideCrop:function(){d.get().each(function(n){n.toggleVisibility(!1)})},getRect:function(){return m.get()},getMeasurements:function(){var n=a.get();return{width:n.w,height:n.h}}}}function Ak(n,t,e,o,r){return KC({name:n,icon:on.some(t),disabled:e,tooltip:on.some(n),primary:!1,borderless:!1},o,r)}function _k(n,t){t?kh.enable(n):kh.disable(n)}var Mk=0,Fk=function(s,e,f,o,r){var l,t,i,u="tox-",a="tox-crid-"+Mk++,c=[{name:"move",xMul:0,yMul:0,deltaX:1,deltaY:1,deltaW:0,deltaH:0,label:"Crop Mask"},{name:"nw",xMul:0,yMul:0,deltaX:1,deltaY:1,deltaW:-1,deltaH:-1,label:"Top Left Crop Handle"},{name:"ne",xMul:1,yMul:0,deltaX:0,deltaY:1,deltaW:1,deltaH:-1,label:"Top Right Crop Handle"},{name:"sw",xMul:0,yMul:1,deltaX:1,deltaY:0,deltaW:-1,deltaH:1,label:"Bottom Left Crop Handle"},{name:"se",xMul:1,yMul:1,deltaX:0,deltaY:0,deltaW:1,deltaH:1,label:"Bottom Right Crop Handle"}];i=["top","right","bottom","left"];var d=function(n,t){return{x:t.x+n.x,y:t.y+n.y,w:t.w,h:t.h}},m=function(n,t){return{x:t.x-n.x,y:t.y-n.y,w:t.w,h:t.h}};function g(n,t,e,o){var r,i,u,a,c;r=t.x,i=t.y,u=t.w,a=t.h,r+=e*n.deltaX,i+=o*n.deltaY,(u+=e*n.deltaW)<20&&(u=20),(a+=o*n.deltaH)<20&&(a=20),c=s=Ck.clamp({x:r,y:i,w:u,h:a},f,"move"===n.name),c=m(f,c),l.fire("updateRect",{rect:c}),v(c)}function p(t){function n(n,t){t.h<0&&(t.h=0),t.w<0&&(t.w=0),Sk("#"+a+"-"+n,o).css({left:t.x,top:t.y,width:t.w,height:t.h})}Ok.each(c,function(n){Sk("#"+a+"-"+n.name,o).css({left:t.w*n.xMul+t.x,top:t.h*n.yMul+t.y})}),n("top",{x:e.x,y:e.y,w:e.w,h:t.y-e.y}),n("right",{x:t.x+t.w,y:t.y,w:e.w-t.x-t.w+e.x,h:t.h}),n("bottom",{x:e.x,y:t.y+t.h,w:e.w,h:e.h-t.y-t.h+e.y}),n("left",{x:e.x,y:t.y,w:t.x-e.x,h:t.h}),n("move",t)}function h(n){p(s=n)}function v(n){h(d(f,n))}return function b(){Sk('<div id="'+a+'" class="'+u+'croprect-container" role="grid" aria-dropeffect="execute">').appendTo(o),Ok.each(i,function(n){Sk("#"+a,o).append('<div id="'+a+"-"+n+'"class="'+u+'croprect-block" style="display: none" data-mce-bogus="all">')}),Ok.each(c,function(n){Sk("#"+a,o).append('<div id="'+a+"-"+n.name+'" class="'+u+"croprect-handle "+u+"croprect-handle-"+n.name+'"style="display: none" data-mce-bogus="all" role="gridcell" tabindex="-1" aria-label="'+n.label+'" aria-grabbed="false" title="'+n.label+'">')}),t=Ok.map(c,function n(t){var e;return new Dk(a,{document:o.ownerDocument,handle:a+"-"+t.name,start:function(){e=s},drag:function(n){g(t,e,n.deltaX,n.deltaY)}})}),p(s),Sk(o).on("focusin focusout",function(n){Sk(n.target).attr("aria-grabbed","focus"===n.type?"true":"false")}),Sk(o).on("keydown",function(t){var i;function n(n,t,e,o,r){n.stopPropagation(),n.preventDefault(),g(i,e,o,r)}switch(Ok.each(c,function(n){if(t.target.id===a+"-"+n.name)return i=n,!1}),t.keyCode){case Tk.LEFT:n(t,0,s,-10,0);break;case Tk.RIGHT:n(t,0,s,10,0);break;case Tk.UP:n(t,0,s,0,-10);break;case Tk.DOWN:n(t,0,s,0,10);break;case Tk.ENTER:case Tk.SPACEBAR:t.preventDefault(),r()}})}(),l=Ok.extend({toggleVisibility:function y(n){var t;t=Ok.map(c,function(n){return"#"+a+"-"+n.name}).concat(Ok.map(i,function(n){return"#"+a+"-"+n})).join(","),n?Sk(t,o).show():Sk(t,o).hide()},setClampRect:function x(n){f=n,p(s)},setRect:h,getInnerRect:function(){return m(f,s)},setInnerRect:v,setViewPortRect:function w(n){e=n,p(s)},destroy:function n(){Ok.each(t,function(n){n.destroy()}),t=[]}},kk)};function Ik(n){var t=Ee(n),e=Ee(on.none()),o=function s(){var e=[],o=-1;function n(){return 0<o}function t(){return-1!==o&&o<e.length-1}return{data:e,add:function r(n){var t;return t=e.splice(++o),e.push(n),{state:n,removed:t}},undo:function i(){if(n())return e[--o]},redo:function u(){if(t())return e[++o]},canUndo:n,canRedo:t}}();function r(n){t.set(n)}function i(n){v.URL.revokeObjectURL(n.url)}function u(n){var t=a(n);return r(t),function(n){Ok.each(n,i)}(o.add(t).removed),t.url}o.add(n);var a=function(n){return{blob:n,url:v.URL.createObjectURL(n)}},c=function(){e.get().each(i),e.set(on.none())};return{getBlobState:function(){return t.get()},setBlobState:r,addBlobState:u,getTempState:function(){return e.get().fold(function(){return t.get()},function(n){return n})},updateTempState:function(n){var t=a(n);return c(),e.set(on.some(t)),t.url},addTempState:function(n){var t=a(n);return e.set(on.some(t)),t.url},applyTempState:function(t){return e.get().fold(function(){},function(n){u(n.blob),t()})},destroyTempState:c,undo:function(){var n=o.undo();return r(n),n.url},redo:function(){var n=o.redo();return r(n),n.url},getHistoryStates:function(){return{undoEnabled:o.canUndo(),redoEnabled:o.canRedo()}}}}function Rk(n,t){function i(n){var t=s.getHistoryStates();m.updateButtonUndoStates(n,t.undoEnabled,t.redoEnabled),qt(n,wk.formActionEvent,{name:wk.saveState(),value:t.undoEnabled})}function u(n){return n.toBlob()}function a(n){qt(n,wk.formActionEvent,{name:wk.disable(),value:{}})}function r(t,n,e,o,r){return a(t),function(n){return sC(n)}(n).then(e).then(u).then(o).then(function(n){return l(t,n).then(function(n){return i(t),r(),f(t),n})})["catch"](function(n){return v.console.log(n),f(t),n})}function c(n,t,e){var o=s.getBlobState().blob;r(n,o,t,function(n){return s.updateTempState(n)},e)}var s=Ik(n.currentState),f=function(n){e.getApplyButton(n).each(function(n){kh.enable(n)}),qt(n,wk.formActionEvent,{name:wk.enable(),value:{}})},l=function(n,t){return a(n),o.updateSrc(n,t)},d=function(n){var t=s.getBlobState().url;return s.destroyTempState(),i(n),t},o=Bk(n.currentState.url),m=function(n){var o=bm(Ak("Undo","undo",!0,function(n){qt(n,vk.undo(),{direction:1})},n)),r=bm(Ak("Redo","redo",!0,function(n){qt(n,vk.redo(),{direction:1})},n));return{container:Gb.sketch({dom:{tag:"div",classes:["tox-image-tools__toolbar","tox-image-tools__sidebar"]},components:[o.asSpec(),r.asSpec(),Ak("Zoom in","zoom-in",!1,function(n){qt(n,vk.zoom(),{direction:1})},n),Ak("Zoom out","zoom-out",!1,function(n){qt(n,vk.zoom(),{direction:-1})},n)]}),updateButtonUndoStates:function(n,t,e){o.getOpt(n).each(function(n){_k(n,t)}),r.getOpt(n).each(function(n){_k(n,e)})}}}(t),e=ak(o,t);return{dom:{tag:"div",attributes:{role:"presentation"}},components:[e.memContainer.asSpec(),o.memContainer.asSpec(),m.container],behaviours:ya([nl.config({store:{mode:"manual",getValue:function(){return s.getBlobState()}}}),Jd("image-tools-events",[rr(vk.undo(),function(t,n){var e=s.undo();l(t,e).then(function(n){f(t),i(t)})}),rr(vk.redo(),function(t,n){var e=s.redo();l(t,e).then(function(n){f(t),i(t)})}),rr(vk.zoom(),function(n,t){var e=t.event().direction();o.zoom(n,e)}),rr(vk.back(),function(n,t){!function(t){var n=d(t);l(t,n).then(function(n){f(t)})}(n),t.event().swap()(),o.hideCrop()}),rr(vk.apply(),function(n,t){s.applyTempState(function(){d(n),t.event().swap()()})}),rr(vk.transform(),function(n,t){return c(n,t.event().transform(),Z)}),rr(vk.tempTransform(),function(n,t){return function(n,t){var e=s.getTempState().blob;r(n,e,t,function(n){return s.addTempState(n)},Z)}(n,t.event().transform())}),rr(vk.transformApply(),function(n,t){return function(e,n,t){var o=s.getBlobState().blob;r(e,o,n,function(n){var t=s.addBlobState(n);return d(e),t},t)}(n,t.event().transform(),t.event().swap())}),rr(vk.swap(),function(t,n){!function(n){m.updateButtonUndoStates(n,!1,!1)}(t);var e=n.event().transform(),o=n.event().swap();e.fold(function(){o()},function(n){c(t,n,o)})})]),TS()])}}function Vk(e,t){var n=e.label.map(function(n){return Ay(n,t)}),o=[kh.config({disabled:e.disabled}),dg.config({mode:"execution",useEnter:!0!==e.multiline,useControlEnter:!0===e.multiline,execute:function(n){return Yt(n,ly),on.some(!0)}}),Jd("textfield-change",[rr(ho(),function(n,t){qt(n,ay,{name:e.name})}),rr(ko(),function(n,t){qt(n,ay,{name:e.name})})]),Xy.config({})],r=e.validation.map(function(o){return Uy.config({getRoot:function(n){return br(n.element())},invalidClass:"tox-invalid",validator:{validate:function(n){var t=nl.getValue(n),e=o.validator(t);return Hy(!0===e?an.value(t):an.error(e))},validateOnLoad:o.validateOnLoad}})}).toArray(),i=e.placeholder.fold(nn({}),function(n){return{placeholder:t.translate(n)}}),u=e.inputMode.fold(nn({}),function(n){return{inputmode:n}}),a=N(N({},i),u),c=by.parts().field({tag:!0===e.multiline?"textarea":"input",inputAttributes:a,inputClasses:[e.classname],inputBehaviours:ya(H([o,r])),selectOnFocus:!1,factory:xy}),s=(e.flex?["tox-form__group--stretched"]:[]).concat(e.maximized?["tox-form-group--maximize"]:[]),f=[kh.config({disabled:e.disabled,onDisabled:function(n){by.getField(n).each(kh.disable)},onEnabled:function(n){by.getField(n).each(kh.enable)}})];return By(n,c,s,f)}function Nk(n){var t=Ee(null);return tu({readState:function(){return{timer:null!==t.get()?"set":"unset"}},setTimer:function(n){t.set(n)},cancel:function(){var n=t.get();null!==n&&n.cancel()}})}function Hk(n,t,e){var o=nl.getValue(e);nl.setValue(t,o),BT(t)}function Pk(n,t){var e=n.element(),o=bi(e),r=e.dom();"number"!==Mr(e,"type")&&t(r,o)}function zk(n,t,e){if(n.selectsOver){var o=nl.getValue(t),r=n.getDisplayText(o),i=nl.getValue(e);return 0===n.getDisplayText(i).indexOf(r)?on.some(function(){Hk(0,t,e),function(n,e){Pk(n,function(n,t){return n.setSelectionRange(e,t.length)})}(t,r.length)}):on.none()}return on.none()}function Lk(n){return IT(Ny(n))}function jk(n){return{type:"menuitem",value:n.url,text:n.title,meta:{attach:n.attach},onAction:function(){}}}function Uk(n,t){return{type:"menuitem",value:t,text:n,meta:{attach:undefined},onAction:function(){}}}function Wk(n,t){return function(n){return S(n,jk)}(function(t,n){return C(n,function(n){return n.type===t})}(n,t))}function Gk(n,t){var e=n.toLowerCase();return C(t,function(n){var t=n.meta!==undefined&&n.meta.text!==undefined?n.meta.text:n.text;return Vt(t.toLowerCase(),e)||Vt(n.value.toLowerCase(),e)})}function Xk(e,n,o){var t=nl.getValue(n),r=t.meta.text!==undefined?t.meta.text:t.value;return o.getLinkInformation().fold(function(){return[]},function(n){var t=Gk(r,function(n){return S(n,function(n){return Uk(n,n)})}(o.getHistory(e)));return"file"===e?function(n){return O(n,function(n,t){return 0===n.length||0===t.length?n.concat(t):n.concat(VT,t)},[])}([t,Gk(r,function(n){return Wk("header",n.targets)}(n)),Gk(r,H([function(n){return on.from(n.anchorTop).map(function(n){return Uk("<top>",n)}).toArray()}(n),function(n){return Wk("anchor",n.targets)}(n),function(n){return on.from(n.anchorBottom).map(function(n){return Uk("<bottom>",n)}).toArray()}(n)]))]):t})}function Yk(r,o,i){function u(n){var t=nl.getValue(n);i.addToHistory(t.value,r.filetype)}var n,t,e,a,c,s=o.shared.providers,f=by.parts().field({factory:FT,dismissOnBlur:!0,inputClasses:["tox-textfield"],sandboxClasses:["tox-dialog__popups"],inputAttributes:{"aria-errormessage":NT,type:"url"},minChars:0,responseTime:0,fetch:function(n){var t=Xk(r.filetype,n,i),e=UC(t,Ih.BUBBLE_TO_SANDBOX,o,!1);return Hy(e)},getHotspot:function(n){return h.getOpt(n)},onSetValue:function(n,t){n.hasConfigured(Uy)&&Uy.run(n).get(Z)},typeaheadBehaviours:ya(H([i.getValidationHandler().map(function(e){return Uy.config({getRoot:function(n){return br(n.element())},invalidClass:"tox-control-wrap--status-invalid",notify:{onInvalid:function(n,t){d.getOpt(n).each(function(n){_r(n.element(),"title",s.translate(t))})}},validator:{validate:function(n){var t=nl.getValue(n);return RT(function(o){e({type:r.filetype,url:t.value},function(n){if("invalid"===n.status){var t=an.error(n.message);o(t)}else{var e=an.value(n.message);o(e)}})})},validateOnLoad:!1}})}).toArray(),[kh.config({disabled:r.disabled}),Xy.config({}),Jd("urlinput-events",H(["file"===r.filetype?[rr(ho(),function(n){qt(n,ay,{name:r.name})})]:[],[rr(vo(),function(n){qt(n,ay,{name:r.name}),u(n)}),rr(ko(),function(n){qt(n,ay,{name:r.name}),u(n)})]]))]])),eventOrder:(n={},n[ho()]=["streaming","urlinput-events","invalidating"],n),model:{getDisplayText:function(n){return n.value},selectsOver:!1,populateFromBrowse:!1},markers:{openClass:"tox-textfield--popup-open"},lazySink:o.shared.getSink,parts:{menu:Cv(0,0,"normal")},onExecute:function(n,t,e){qt(t,ly,{})},onItemExecute:function(n,t,e,o){u(n),qt(n,ay,{name:r.name})}}),l=r.label.map(function(n){return Ay(n,s)}),d=bm((t="invalid",e=on.some(NT),void 0===(a="warning")&&(a=t),void 0===c&&(c=t),{dom:{tag:"div",classes:["tox-icon","tox-control-wrap__status-icon-"+t],innerHtml:xm(a,s.icons),attributes:N({title:s.translate(c),"aria-live":"polite"},e.fold(function(){return{}},function(n){return{id:n}}))}})),m=bm({dom:{tag:"div",classes:["tox-control-wrap__status-icon-wrap"]},components:[d.asSpec()]}),g=i.getUrlPicker(r.filetype),p=Hr("browser.url.event"),h=bm({dom:{tag:"div",classes:["tox-control-wrap"]},components:[f,m.asSpec()],behaviours:ya([kh.config({disabled:r.disabled})])}),v=bm($C({name:r.name,icon:on.some("browse"),text:r.label.getOr(""),disabled:r.disabled,primary:!1,borderless:!0},function(n){return Yt(n,p)},s,[],["tox-browse-url"]));return by.sketch({dom:qy([]),components:l.toArray().concat([{dom:{tag:"div",classes:["tox-form__controls-h-stack"]},components:H([[h.asSpec()],g.map(function(){return v.asSpec()}).toArray()])}]),fieldBehaviours:ya([kh.config({disabled:r.disabled,onDisabled:function(n){by.getField(n).each(kh.disable),v.getOpt(n).each(kh.disable)},onEnabled:function(n){by.getField(n).each(kh.enable),v.getOpt(n).each(kh.enable)}}),Jd("url-input-events",[rr(p,function(o){nd.getCurrent(o).each(function(t){var e=nl.getValue(t);g.each(function(n){n(e).get(function(n){nl.setValue(t,n),qt(o,ay,{name:r.name})})})})})])])})}function qk(u,t){function n(o){return function(t,e){Tu(e.event().target(),"[data-collection-item-value]").each(function(n){o(t,e,n,Mr(n,"data-collection-item-value"))})}}var e=u.label.map(function(n){return Ay(n,t)}),o=[rr(fo(),n(function(n,t,e){Sa(e)})),rr(Xt(),n(function(n,t,e,o){t.stop(),qt(n,fy,{name:u.name,value:o})})),rr(lo(),n(function(n,t,e){Ou(n.element(),"."+gh).each(function(n){ri(n,gh)}),ei(e,gh)})),rr(mo(),n(function(n){Ou(n.element(),"."+gh).each(function(n){ri(n,gh)})})),Hi(n(function(n,t,e,o){qt(n,fy,{name:u.name,value:o})}))],r=by.parts().field({dom:{tag:"div",classes:["tox-collection"].concat(1!==u.columns?["tox-collection--grid"]:["tox-collection--list"])},components:[],factory:{sketch:l},behaviours:ya([gg.config({}),nl.config({store:{mode:"memory",initialValue:[]},onSetValue:function(o,n){!function(n,t){var e=S(t,function(n){var t=ih.translate(n.text),e=1===u.columns?'<div class="tox-collection__item-label">'+t+"</div>":"",o='<div class="tox-collection__item-icon">'+n.icon+"</div>",r={_:" "," - ":" ","-":" "},i=t.replace(/\_| \- |\-/g,function(n){return r[n]});return'<div class="tox-collection__item" tabindex="-1" data-collection-item-value="'+function(n){return'"'===n?""":n}(n.value)+'" title="'+i+'" aria-label="'+i+'">'+o+e+"</div>"}),o=1<u.columns&&"auto"!==u.columns?w(e,u.columns):[e],r=S(o,function(n){return'<div class="tox-collection__group">'+n.join("")+"</div>"});Br(n.element(),r.join(""))}(o,n),"auto"===u.columns&&up(o,5,"tox-collection__item").each(function(n){var t=n.numRows,e=n.numColumns;dg.setGridSize(o,t,e)}),Yt(o,py)}}),Xy.config({}),dg.config(function(n,t){return 1===n?{mode:"menu",moveOnTab:!1,selector:".tox-collection__item"}:"auto"===n?{mode:"flatgrid",selector:".tox-collection__item",initSize:{numColumns:1,numRows:1}}:{mode:"matrix",selectors:{row:"color"===t?".tox-swatches__row":".tox-collection__group",cell:"color"===t?"."+ch:"."+ah}}}(u.columns,"normal")),Jd("collection-events",o)])});return By(e,r,["tox-form__group--collection"],[])}function Kk(r){return function(t,e,o){return Nn(e,"name").fold(function(){return r(e,o)},function(n){return t.field(n,r(e,o))})}}function Jk(t,n,e){var o=Bn(e,{shared:{interpreter:function(n){return zT(t,n,o)}}});return zT(t,n,o)}function $k(n){return{colorPicker:function(e){return function(n,t){Wv.colorPickerDialog(e)(n,t)}}(n),hasCustomColors:function(n){return function(){return Iv(n)}}(n),getColors:function(n){return function(){return Rv(n)}}(n),getColorCols:function(n){return function(){return Wv.getColorCols(n)}}(n)}}function Qk(e){return function(n){return on.from(n.getParam("style_formats")).filter(fn)}(e).map(function(n){var t=function(t,n){function e(n){bn(n,function(n){t.formatter.has(n.name)||t.formatter.register(n.name,n.format)})}var o=GT(n);return t.formatter?e(o.customFormats):t.on("init",function(){e(o.customFormats)}),o.formats}(e,n);return function(n){return n.getParam("style_formats_merge",!1,"boolean")}(e)?WT.concat(t):t}).getOr(WT)}function Zk(n,t,e){var o={type:"formatter",isSelected:t(n.format),getStylePreview:e(n.format)};return Bn(n,o)}function nO(r,n,i,u){var o=function(n){return S(n,function(n){var t=wn(n);if($(n,"items")){var e=o(n.items);return Bn(function(n){var t={type:"submenu",isSelected:nn(!1),getStylePreview:function(){return on.none()}};return Bn(n,t)}(n),{getStyleItems:function(){return e}})}return $(n,"format")?function(n){return Zk(n,i,u)}(n):1===t.length&&vn(t,"title")?Bn(n,{type:"separator"}):function(n){var t=Hr(n.title),e={type:"formatter",format:t,isSelected:i(t),getStylePreview:u(t)},o=Bn(n,e);return r.formatter.register(t,o),o}(n)})};return o(n)}function tO(t){return function(n){if(n&&1===n.nodeType){if(n.contentEditable===t)return!0;if(n.getAttribute("data-mce-contenteditable")===t)return!0}return!1}}function eO(n,t,e,o,r){return{type:n,title:t,url:e,level:o,attach:r}}function oO(n){return n.innerText||n.textContent}function rO(n){return function(n){return n&&"A"===n.nodeName&&(n.id||n.name)!==undefined}(n)&&KT(n)}function iO(n){return n&&/^(H[1-6])$/.test(n.nodeName)}function uO(n){return iO(n)&&KT(n)}function aO(n){var t=function(n){return n.id?n.id:Hr("h")}(n);return eO("header",oO(n),"#"+t,function(n){return iO(n)?parseInt(n.nodeName.substr(1),10):0}(n),function(){n.id=t})}function cO(n){var t=n.id||n.name,e=oO(n);return eO("anchor",e||"#"+t,"#"+t,0,Z)}function sO(n){return function(n,t){return S(Lc(Be.fromDom(t),n),function(n){return n.dom()})}("h1,h2,h3,h4,h5,h6,a:not([href])",n)}function fO(n){return 0<XT(n.title).length}function lO(n){return cn(n)&&/^https?/.test(n)}function dO(n){return sn(n)&&I(n,function(n){return!function(n){return fn(n)&&n.length<=5&&B(n,lO)}(n)}).isNone()}function mO(){var n,t=v.localStorage.getItem($T);if(null===t)return{};try{n=JSON.parse(t)}catch(e){if(e instanceof SyntaxError)return v.console.log("Local storage "+$T+" was not valid JSON",e),{};throw e}return dO(n)?n:(v.console.log("Local storage "+$T+" was not valid format",n),{})}function gO(n){var t=mO();return Object.prototype.hasOwnProperty.call(t,n)?t[n]:[]}function pO(t,n){if(lO(t)){var e=mO(),o=Object.prototype.hasOwnProperty.call(e,n)?e[n]:[],r=C(o,function(n){return n!==t});e[n]=[t].concat(r).slice(0,5),function(n){if(!dO(n))throw new Error("Bad format for history:\n"+JSON.stringify(n));v.localStorage.setItem($T,JSON.stringify(n))}(e)}}function hO(n){return!!n}function vO(n){return P(Ok.makeMap(n,/[, ]/),hO)}function bO(n,t,e){var o=function(n,t){return QT.call(n,t)?on.some(n[t]):on.none()}(n,t).getOr(e);return cn(o)?on.some(o):on.none()}function yO(n){return on.some(n.file_picker_callback).filter(dn)}function xO(n,t){var e=function(n){var t=on.some(n.file_picker_types).filter(hO),e=on.some(n.file_browser_callback_types).filter(hO),o=t.or(e).map(vO);return yO(n).fold(function(){return!1},function(n){return o.fold(function(){return!0},function(n){return 0<wn(n).length&&n})})}(n);return ln(e)?e?yO(n):on.none():e[t]?yO(n):on.none()}function wO(t){return{getHistory:gO,addToHistory:pO,getLinkInformation:function(){return function(n){return!1===n.settings.typeahead_urls?on.none():on.some({targets:JT(n.getBody()),anchorTop:bO(n.settings,"anchor_top","#top").getOrUndefined(),anchorBottom:bO(n.settings,"anchor_bottom","#bottom").getOrUndefined()})}(t)},getValidationHandler:function(){return function(n){return on.from(n.settings.file_picker_validator_handler).filter(dn).orThunk(function(){return on.from(n.settings.filepicker_validator_handler).filter(dn)})}(t)},getUrlPicker:function(n){return function(r,i){return xO(r.settings,i).map(function(o){return function(t){return Ny(function(e){var n=Ok.extend({filetype:i},on.from(t.meta).getOr({}));o.call(r,function(n,t){if(!cn(n))throw new Error("Expected value to be string");if(t!==undefined&&!sn(t))throw new Error("Expected meta to be a object");e({value:n,meta:t})},t.value,n)})}})}(t,n)}}}function SO(n,t,e,o){var r=Ee(!1),i={shared:{providers:{icons:function(){return t.ui.registry.getAll().icons},menuItems:function(){return t.ui.registry.getAll().menuItems},translate:ih.translate},interpreter:function(n){return function(n,t){return zT(PT,n,t)}(n,i)},anchors:UT(t,e,o),getSink:function(){return an.value(n)}},urlinput:wO(t),styleselect:function(e){function o(n){return function(){return e.formatter.match(n)}}function r(t){return function(){var n=e.formatter.get(t);return n!==undefined?on.some({tag:0<n.length&&(n[0].inline||n[0].block)||"div",styleAttr:e.formatter.getCssText(t)}):on.none()}}var i=function(n){var t=n.items;return t!==undefined&&0<t.length?D(t,i):[n.format]},u=Ee([]),a=Ee([]),c=Ee([]),s=Ee([]),f=Ee(!1);e.on("init",function(){var n=Qk(e),t=nO(e,n,o,r);u.set(t),a.set(D(t,i))}),e.on("addStyleModifications",function(n){var t=nO(e,n.items,o,r);c.set(t),f.set(n.replace),s.set(D(t,i))});return{getData:function(){var n=f.get()?[]:u.get(),t=c.get();return n.concat(t)},getFlattenedKeys:function(){var n=f.get()?[]:a.get(),t=s.get();return n.concat(t)}}}(t),colorinput:$k(t),dialog:function(n){return{isDraggableModal:function(n){return function(){return function(n){return n.getParam("draggable_modal",!1,"boolean")}(n)}}(n)}}(t),isContextMenuOpen:function(){return r.get()},setContextMenuState:function(n){return r.set(n)}};return i}function CO(n,t,o){var e=function(n,e){return O(n,function(t,n){return e(n,t.len).fold(nn(t),function(n){return{len:n.finish(),list:t.list.concat([n])}})},{len:0,list:[]}).list}(n,function(n,t){var e=o(n);return on.some({element:nn(n),start:nn(t),finish:nn(t+e),width:nn(e)})}),r=C(e,function(n){return n.finish()<=t}),i=k(r,function(n,t){return n+t.width()},0),u=e.slice(r.length);return{within:nn(r),extra:nn(u),withinWidth:nn(i)}}function kO(n){return S(n,function(n){return n.element()})}function OO(n,t,e,o){var r=function(n,t,e){var o=CO(t,n,e);return 0===o.extra().length?on.some(o):on.none()}(n,t,e).getOrThunk(function(){return CO(t,n-e(o),e)}),i=r.within(),u=r.extra(),a=r.withinWidth();return 1===u.length&&u[0].width()<=e(o)?function(n,t,e){var o=kO(n.concat(t));return oE(o,[],e)}(i,u,a):1<=u.length?function(n,t,e,o){var r=kO(n).concat([e]);return oE(r,kO(t),o)}(i,u,o,a):function(n,t,e){return oE(kO(n),[],e)}(i,0,a)}function TO(n,t){var e=S(t,function(n){return cu(n)});eE.setGroups(n,e)}function EO(n,t,e,o){var r=Js(n,t,"primary"),i=Ks(n,t,"overflow-button"),u=$y.getCoupled(n,"overflowGroup");li(r.element(),"visibility","hidden");var a=function(n,t){return n.bind(function(t){return ka(t.element()).bind(function(n){return t.getSystem().getByDom(n).toOption()})}).orThunk(function(){return t.filter(bg.isFocused)})}(e,i);e.each(function(n){eE.setGroups(n,[])});var c=t.builtGroups.get();TO(r,c.concat([u]));var s=gu(r.element()),f=OO(s,c,function(n){return gu(n.element())},u);0===f.extra().length?(gg.remove(r,u),e.each(function(n){eE.setGroups(n,[])})):(TO(r,f.within()),e.each(function(n){TO(n,f.extra())})),hi(r.element(),"visibility"),vi(r.element()),e.each(function(t){i.each(function(n){return kg.set(n,o(t))}),a.each(bg.focus)})}function DO(o,n,t,e,r){var i="alloy.toolbar.toggle";return{uid:o.uid,dom:o.dom,components:n,behaviours:Vs(o.splitToolbarBehaviours,[$y.config({others:N(N({},r.coupling),{overflowGroup:function(t){return uE.sketch(N(N({},e["overflow-group"]()),{items:[Xg.sketch(N(N({},e["overflow-button"]()),{action:function(n){Yt(t,i)}}))]}))}})}),Jd("toolbar-toggle-events",[rr(i,function(n){r.apis.toggle(n)})])]),apis:N({setGroups:function(n,t){!function(n,t){var e=S(t,n.getSystem().build);o.builtGroups.set(e)}(n,t),r.apis.refresh(n)},getMoreButton:function(n){return function(n){return Ks(n,o,"overflow-button")}(n)}},r.apis),domModification:{attributes:{role:"group"}}}}function BO(n){return n.getSystem().isConnected()}function AO(n,t,e){var o=t.lazySink(n).getOrDie(),r=t.getAnchor(n),i=t.getOverflowBounds.map(function(n){return n()});_f.positionWithinBounds(o,r,e,i)}function _O(t,e){var n=Lf.getState($y.getCoupled(t,"sandbox"));EO(t,e,n,BO),n.each(function(n){return AO(t,e,n)})}function MO(t,e){Lf.getState($y.getCoupled(t,"sandbox")).each(function(n){return AO(t,e,n)})}function FO(t,n){return n.getAnimationRoot.fold(function(){return t.element()},function(n){return n(t)})}function IO(n){return n.dimension.property}function RO(n,t){return n.dimension.getDimension(t)}function VO(n,t){var e=FO(n,t);ai(e,[t.shrinkingClass,t.growingClass])}function NO(n,t){ri(n.element(),t.openClass),ei(n.element(),t.closedClass),li(n.element(),IO(t),"0px"),vi(n.element())}function HO(n,t){ri(n.element(),t.closedClass),ei(n.element(),t.openClass),hi(n.element(),IO(t))}function PO(n,t,e,o){e.setCollapsed(),li(n.element(),IO(t),RO(t,n.element())),vi(n.element()),VO(n,t),NO(n,t),t.onStartShrink(n),t.onShrunk(n)}function zO(n,t,e,o){var r=o.getOrThunk(function(){return RO(t,n.element())});e.setCollapsed(),li(n.element(),IO(t),r),vi(n.element());var i=FO(n,t);ri(i,t.growingClass),ei(i,t.shrinkingClass),NO(n,t),t.onStartShrink(n)}function LO(n,t,e){var o=RO(t,n.element());("0px"===o?PO:zO)(n,t,e,on.some(o))}function jO(n,t,e){var o=FO(n,t),r=ii(o,t.shrinkingClass),i=RO(t,n.element());HO(n,t);var u=RO(t,n.element());(r?function(){li(n.element(),IO(t),i),vi(n.element())}:function(){NO(n,t)})(),ri(o,t.shrinkingClass),ei(o,t.growingClass),HO(n,t),li(n.element(),IO(t),u),e.setExpanded(),t.onStartGrow(n)}function UO(n,t,e){var o=FO(n,t);return!0===ii(o,t.growingClass)}function WO(n,t,e){var o=FO(n,t);return!0===ii(o,t.shrinkingClass)}function GO(n){return gE.hasGrown(n)}function XO(n,t){var e=n.outerContainer;!function(n,t){var e=n.outerContainer.element();t&&(n.mothership.broadcastOn([jf()],{target:e}),n.uiMothership.broadcastOn([jf()],{target:e})),n.mothership.broadcastOn([xE],{readonly:t}),n.uiMothership.broadcastOn([xE],{readonly:t})}(n,t),Lt("*",e.element()).forEach(function(n){e.getSystem().getByDom(n).each(function(n){n.hasConfigured(kh)&&kh.set(n,t)})})}function YO(n,t){n.on("init",function(){n.readonly&&XO(t,!0)}),n.on("SwitchMode",function(){return XO(t,n.readonly)}),function(n){return n.getParam("readonly",!1,"boolean")}(n)&&n.setMode("readonly")}function qO(e){var n;return dc.config({channels:(n={},n[xE]={schema:wE,onReceive:function(n,t){e(n).each(function(n){!function(t,e){Lt("*",t.element()).forEach(function(n){t.getSystem().getByDom(n).each(function(n){n.hasConfigured(kh)&&kh.set(n,e)})})}(n,t.readonly)})}},n)})}function KO(n){var t=n.title.fold(function(){return{}},function(n){return{attributes:{title:n}}});return{dom:N({tag:"div",classes:["tox-toolbar__group"]},t),components:[uE.parts().items({})],items:n.items,markers:{itemSelector:"*:not(.tox-split-button) > .tox-tbtn:not([disabled]), .tox-split-button:not([disabled]), .tox-toolbar-nav-js:not([disabled])"},tgroupBehaviours:ya([Xy.config({}),bg.config({})])}}function JO(n){return uE.sketch(KO(n))}function $O(e,n,t){var o=Ri(function(n){var t=S(e.initGroups,JO);eE.setGroups(n,t)});return ya([dg.config({mode:n,onEscape:e.onEscape,selector:".tox-toolbar__group"}),Jd("toolbar-events",[o]),qO(t)])}function QO(n,t){var e=n.cyclicKeying?"cyclic":"acyclic";return{uid:n.uid,dom:{tag:"div",classes:["tox-toolbar-overlord"]},parts:{"overflow-group":KO({title:on.none(),items:[]}),"overflow-button":qC({name:"more",icon:on.some("more-drawer"),disabled:!1,tooltip:on.some("More..."),primary:!1,borderless:!1},on.none(),n.backstage.shared.providers)},splitToolbarBehaviours:$O(n,e,t)}}function ZO(r){var n=QO(r,fE.getOverflow),t=fE.parts().primary({dom:{tag:"div",classes:["tox-toolbar__primary"]}});return fE.sketch(N(N({},n),{lazySink:r.getSink,getAnchor:function(){return r.backstage.shared.anchors.toolbarOverflow()},getOverflowBounds:function(){var n=r.moreDrawerData.lazyHeader().element(),t=Su(n),e=hr(n),o=Su(e);return xu(t.x()+4,o.y(),t.width()-8,o.height())},parts:N(N({},n.parts),{overflow:{dom:{tag:"div",classes:["tox-toolbar__overflow"]}}}),components:[t],markers:{overflowToggledClass:"tox-tbtn--enabled"}}))}function nT(n){var t=bE.parts().primary({dom:{tag:"div",classes:["tox-toolbar__primary"]}}),e=bE.parts().overflow({dom:{tag:"div",classes:["tox-toolbar__overflow"]}}),o=QO(n,bE.getOverflow);return bE.sketch(N(N({},o),{components:[t,e],markers:{openClass:"tox-toolbar__overflow--open",closedClass:"tox-toolbar__overflow--closed",growingClass:"tox-toolbar__overflow--growing",shrinkingClass:"tox-toolbar__overflow--shrinking",overflowToggledClass:"tox-tbtn--enabled"},onOpened:function(n){n.getSystem().broadcastOn([yE()],{type:"opened"})},onClosed:function(n){n.getSystem().broadcastOn([yE()],{type:"closed"})}}))}function tT(n){var t=n.cyclicKeying?"cyclic":"acyclic";return eE.sketch({uid:n.uid,dom:{tag:"div",classes:["tox-toolbar"].concat(n.type===Ub.scrolling?["tox-toolbar--scrolling"]:[])},components:[eE.parts().groups({})],toolbarBehaviours:$O(n,t,nn(on.none()))})}function eT(n){return tt("toolbarbutton",CE,n)}function oT(n){return tt("menubutton",OE,n)}function rT(n){return tt("ToggleButton",DE,n)}function iT(t){return{isDisabled:function(){return kh.isDisabled(t)},setDisabled:function(n){return kh.set(t,n)}}}function uT(t){return{setActive:function(n){kg.set(t,n)},isActive:function(){return kg.isOn(t)},isDisabled:function(){return kh.isDisabled(t)},setDisabled:function(n){return kh.set(t,n)}}}function aT(n,t){return n.map(function(n){return{"aria-label":t.translate(n),title:t.translate(n)}}).getOr({})}function cT(t,e,n,o,r,i){function u(n){return ih.isRtl()&&vn(qE,n)?n+"-rtl":n}var a,c=ih.isRtl()&&t.exists(function(n){return vn(KE,n)});return{dom:{tag:"button",classes:["tox-tbtn"].concat(e.isSome()?["tox-tbtn--select"]:[]).concat(c?["tox-tbtn__icon-rtl"]:[]),attributes:aT(n,i)},components:Bh([t.map(function(n){return VC(u(n),i.icons)}),e.map(function(n){return HC(n,"tox-tbtn",i)})]),eventOrder:(a={},a[uo()]=["focusing","alloy.base.behaviour","common-button-display-events"],a),buttonBehaviours:ya([Jd("common-button-display-events",[rr(uo(),function(n,t){t.event().prevent(),Yt(n,YE)})])].concat(o.map(function(n){return LE.config({channel:n,initialData:{icon:t,text:e},renderComponents:function(n,t){return Bh([n.icon.map(function(n){return VC(u(n),i.icons)}),n.text.map(function(n){return HC(n,"tox-tbtn",i)})])}})}).toArray()).concat(r.getOr([])))}}function sT(n,t,e){var o=Ee(Z),r=cT(n.icon,n.text,n.tooltip,on.none(),on.none(),e);return Xg.sketch({dom:r.dom,components:r.components,eventOrder:sk,buttonBehaviours:ya([Jd("toolbar-button-events",[function(e){return Hi(function(t,n){Tp(e,t)(function(n){qt(t,ck,{buttonApi:n}),e.onAction(n)})})}({onAction:n.onAction,getApi:t.getApi}),Ep(t,o),Dp(t,o)]),Dh(n.disabled)].concat(t.toolbarButtonBehaviours))})}function fT(t,n){function e(e){return{isDisabled:function(){return kh.isDisabled(e)},setDisabled:function(n){return kh.set(e,n)},setIconFill:function(n,t){Ou(e.element(),'svg path[id="'+n+'"], rect[id="'+n+'"]').each(function(n){_r(n,"fill",t)})},setIconStroke:function(n,t){Ou(e.element(),'svg path[id="'+n+'"], rect[id="'+n+'"]').each(function(n){_r(n,"stroke",t)})},setActive:function(t){_r(e.element(),"aria-pressed",t),Ou(e.element(),"span").each(function(n){e.getSystem().getByDom(n).each(function(n){return kg.set(n,t)})})},isActive:function(){return Ou(e.element(),"span").exists(function(n){return e.getSystem().getByDom(n).exists(kg.isOn)})}}}var o,r=Hr("channel-update-split-dropdown-display"),i=Ee(Z),u={getApi:e,onSetup:t.onSetup};return XE.sketch({dom:{tag:"div",classes:["tox-split-button"],attributes:An({"aria-pressed":!1},aT(t.tooltip,n.providers))},onExecute:function(n){t.onAction(e(n))},onItemExecute:function(n,t,e){},splitDropdownBehaviours:ya([Eh(!1),Jd("split-dropdown-events",[rr(YE,bg.focus),Ep(u,i),Dp(u,i)]),Ew.config({})]),eventOrder:(o={},o[No()]=["alloy.base.behaviour","split-dropdown-events"],o),toggleClass:"tox-tbtn--enabled",lazySink:n.getSink,fetch:function(e,r,o){return function(t){return Ny(function(n){return r.fetch(n)}).map(function(n){return on.from(ab(Bn(Dv(Hr("menu-value"),n,function(n){r.onItemAction(e(t),n)},r.columns,r.presets,Ih.CLOSE_ON_EXECUTE,r.select.getOr(function(){return!1}),o),{movement:Bv(r.columns,r.presets),menuBehaviours:$p("auto"!==r.columns?[]:[Ri(function(o,n){up(o,4,fp(r.presets)).each(function(n){var t=n.numRows,e=n.numColumns;dg.setGridSize(o,t,e)})})])})))})}}(e,t,n.providers),parts:{menu:Cv(0,t.columns,t.presets)},components:[XE.parts().button(cT(t.icon,t.text,on.none(),on.some(r),on.some([kg.config({toggleClass:"tox-tbtn--enabled",toggleOnExecute:!1})]),n.providers)),XE.parts().arrow({dom:{tag:"button",classes:["tox-tbtn","tox-split-button__chevron"],innerHtml:xm("chevron-down",n.providers.icons)}}),XE.parts()["aria-descriptor"]({text:n.providers.translate("To open the popup, press Shift+Enter")})]})}function lT(o,r){return rr(ck,function(n,t){var e=function(n){return{hide:function(){return Yt(n,Ao())},getValue:function(){return nl.getValue(n)}}}(o.get(n));r.onAction(e,t.event().buttonApi())})}function dT(n,t,e){var o={backstage:{shared:{providers:e}}};return"contextformtogglebutton"===t.type?function(n,t,e){var o=t.original,r=(o.primary,c(o,["primary"])),i=et(rT(N(N({},r),{type:"togglebutton",onAction:function(){}})));return $E(i,e.backstage.shared.providers,[lT(n,t)])}(n,t,o):function(n,t,e){var o=t.original,r=(o.primary,c(o,["primary"])),i=et(eT(N(N({},r),{type:"button",onAction:function(){}})));return JE(i,e.backstage.shared.providers,[lT(n,t)])}(n,t,o)}function mT(n,t){var e=Math.max(t.x(),n.x()),o=n.right()-e,r=t.width()-(e-t.x());return{x:e,width:Math.min(o,r)}}function gT(n){var t=zb(n)||Lb(n)||Yb(n),e=bu(v.window),o=wu(Be.fromDom(n.getContentAreaContainer()));return n.inline&&!t?function(n,t,e){var o=mT(t,e),r=o.x,i=o.width;return xu(r,e.y(),i,e.height())}(0,o,e):n.inline?function(n,t,e){var o=mT(t,e),r=o.x,i=o.width,u=Be.fromDom(n.getContainer()),a=Ou(u,".tox-editor-header").getOr(u),c=wu(a),s=e.height(),f=e.y();if(c.y()>=t.bottom()){var l=Math.min(s+f,c.y());return xu(r,f,i,l-f)}var d=Math.max(f,c.bottom());return xu(r,d,i,s-(d-f))}(n,o,e):function(n,t,e){var o=mT(t,e),r=o.x,i=o.width,u=Be.fromDom(n.getContainer()),a=Ou(u,".tox-editor-header").getOr(u),c=wu(u),s=wu(a),f=Math.max(e.y(),t.y(),s.bottom()),l=c.bottom()-f,d=e.height()-(f-e.y()),m=Math.min(l,d);return xu(r,f,i,m)}(n,o,e)}function pT(t,n){return Au(n,function(n){return n.predicate(t.dom())?on.some({toolbarApi:n,elem:t}):on.none()})}function hT(o,r){return function(t){function n(){t.setActive(o.formatter.match(r));var n=o.formatter.formatChanged(r,t.setActive).unbind;e.set(on.some(n))}var e=Ee(on.none());return o.initialized?n():o.on("init",n),function(){return e.get().each(function(n){return n()})}}}function vT(t){return function(n){return function(){t.undoManager.transact(function(){t.focus(),t.execCommand("mceToggleFormat",!1,n.format)})}}}function bT(n,t,e){var o=e.dataset,r="basic"===o.type?function(){return S(o.data,function(n){return Zk(n,e.isSelectedFor,e.getPreviewFor)})}:o.getData;return{items:function(n,u,a){function r(n,t,e,o){var r=u.shared.providers.translate(n.title);if("separator"===n.type)return on.some({type:"separator",text:r});if("submenu"!==n.type)return on.some(N({type:"togglemenuitem",text:r,active:n.isSelected(o),disabled:e,onAction:a.onAction(n)},n.getStylePreview().fold(function(){return{}},function(n){return{meta:{style:n}}})));var i=D(n.getStyleItems(),function(n){return c(n,t,o)});return 0===t&&i.length<=0?on.none():on.some({type:"nestedmenuitem",text:r,disabled:i.length<=0,getSubmenuItems:function(){return D(n.getStyleItems(),function(n){return c(n,t,o)})}})}function i(n){var t=a.getCurrentValue(),e=a.shouldHide?0:1;return D(n,function(n){return c(n,e,t)})}var c=function(n,t,e){var o="formatter"===n.type&&a.isInvalid(n);return 0===t?o?[]:r(n,t,!1,e).toArray():r(n,t,o,e).toArray()};return{validateItems:i,getFetch:function(o,r){return function(n){var t=r(),e=i(t);n(UC(e,Ih.CLOSE_ON_EXECUTE,o,!1))}}}}(0,t,e),getStyleItems:r}}function yT(o,n,t){var e=bT(0,n,t),r=e.items,i=e.getStyleItems;return PC({text:t.icon.isSome()?on.none():on.some(""),icon:t.icon,tooltip:on.from(t.tooltip),role:on.none(),fetch:r.getFetch(n,i),onSetup:function(e){return t.setInitialValue.each(function(n){return n(e.getComponent())}),t.nodeChangeHandler.map(function(n){var t=n(e.getComponent());return o.on("NodeChange",t),function(){o.off("NodeChange",t)}}).getOr(Z)},getApi:function(n){return{getComponent:function(){return n}}},columns:1,presets:"normal",classes:t.icon.isSome()?[]:["bespoke"],dropdownBehaviours:[]},"tox-tbtn",n.shared)}var xT,wT,ST,CT,kT=Al({name:"HtmlSelect",configFields:[ct("options"),Is("selectBehaviours",[bg,nl]),St("selectClasses",[]),St("selectAttributes",{}),ht("data")],factory:function(e,n){var t=S(e.options,function(n){return{dom:{tag:"option",value:n.value,innerHtml:n.text}}}),o=e.data.map(function(n){return q("initialValue",n)}).getOr({});return{uid:e.uid,dom:{tag:"select",classes:e.selectClasses,attributes:e.selectAttributes},components:t,behaviours:Vs(e.selectBehaviours,[bg.config({}),nl.config({store:N({mode:"manual",getValue:function(n){return bi(n.element())},setValue:function(n,t){T(e.options,function(n){return n.value===t}).isSome()&&yi(n.element(),t)}},o)})])}}}),OT=/* */Object.freeze({events:function(n,t){var e=n.stream.streams.setup(n,t);return tr([rr(n.event,e),Vi(function(){return t.cancel()})].concat(n.cancelEvent.map(function(n){return[rr(n,function(){return t.cancel()})]}).getOr([])))}}),TT=/* */Object.freeze({throttle:Nk,init:function(n){return n.stream.streams.state(n)}}),ET=[st("stream",it("mode",{throttle:[ct("delay"),St("stopEvent",!0),Zu("streams",{setup:function(n,t){var e=n.stream,o=$g(n.onStream,e.delay);return t.setTimer(o),function(n,t){o.throttle(n,t),e.stopEvent&&t.stop()}},state:Nk})]})),St("event","input"),ht("cancelEvent"),$u("onStream")],DT=xa({fields:ET,name:"streaming",active:OT,state:TT}),BT=function(n){Pk(n,function(n,t){return n.setSelectionRange(t.length,t.length)})},AT=nn("alloy.typeahead.itemexecute"),_T=nn([ht("lazySink"),ct("fetch"),St("minChars",5),St("responseTime",1e3),Ku("onOpen"),St("getHotspot",on.some),St("getAnchorOverrides",nn({})),St("layouts",on.none()),St("eventOrder",{}),Bt("model",{},[St("getDisplayText",function(n){return n.meta!==undefined&&n.meta.text!==undefined?n.meta.text:n.value}),St("selectsOver",!0),St("populateFromBrowse",!0)]),Ku("onSetValue"),Ju("onExecute"),Ku("onItemExecute"),St("inputClasses",[]),St("inputAttributes",{}),St("inputStyles",{}),St("matchWidth",!0),St("useMinWidth",!1),St("dismissOnBlur",!0),Yu(["openClass"]),ht("initialData"),Is("typeaheadBehaviours",[bg,nl,DT,dg,kg,$y]),At("previewing",function(){return Ee(!0)})].concat(yy()).concat(cx())),MT=nn([Sl({schema:[Xu()],name:"menu",overrides:function(o){return{fakeFocus:!0,onHighlight:function(t,e){o.previewing.get()?t.getSystem().getByUid(o.uid).each(function(n){zk(o.model,n,e).fold(function(){return cd.dehighlight(t,e)},function(n){return n()})}):t.getSystem().getByUid(o.uid).each(function(n){o.model.populateFromBrowse&&Hk(o.model,n,e)}),o.previewing.set(!1)},onExecute:function(n,t){return n.getSystem().getByUid(o.uid).toOption().map(function(n){return qt(n,AT(),{item:t}),!0})},onHover:function(n,t){o.previewing.set(!1),n.getSystem().getByUid(o.uid).each(function(n){o.model.populateFromBrowse&&Hk(o.model,n,t)})}}}})]),FT=_l({name:"Typeahead",configFields:_T(),partFields:MT(),factory:function(r,n,t,i){function e(n,t,e){r.previewing.set(!1);var o=$y.getCoupled(n,"sandbox");if(Lf.isOpen(o))nd.getCurrent(o).each(function(n){cd.getHighlighted(n).fold(function(){e(n)},function(){$t(o,n.element(),"keydown",t)})});else{tx(r,u(n),n,o,i,function(n){nd.getCurrent(n).each(e)},_y.HighlightFirst).get(Z)}}var o=ny(r),u=function(o){return function(n){return n.map(function(n){var t=R(n.menus),e=D(t,function(n){return C(n.items,function(n){return"item"===n.type})});return nl.getState(o).update(S(e,function(n){return n.data})),n})}},a=[bg.config({}),nl.config({onSetValue:r.onSetValue,store:N({mode:"dataset",getDataKey:function(n){return bi(n.element())},getFallbackEntry:function(n){return{value:n,meta:{}}},setValue:function(n,t){yi(n.element(),r.model.getDisplayText(t))}},r.initialData.map(function(n){return q("initialValue",n)}).getOr({}))}),DT.config({stream:{mode:"throttle",delay:r.responseTime,stopEvent:!1},onStream:function(n,t){var e=$y.getCoupled(n,"sandbox");if(bg.isFocused(n)&&bi(n.element()).length>=r.minChars){var o=nd.getCurrent(e).bind(function(n){return cd.getHighlighted(n).map(nl.getValue)});r.previewing.set(!0);tx(r,u(n),n,e,i,function(n){nd.getCurrent(e).each(function(n){o.fold(function(){r.model.selectsOver&&cd.highlightFirst(n)},function(t){cd.highlightBy(n,function(n){return nl.getValue(n).value===t.value}),cd.getHighlighted(n).orThunk(function(){return cd.highlightFirst(n),on.none()})})})},_y.HighlightFirst).get(Z)}},cancelEvent:_o()}),dg.config({mode:"special",onDown:function(n,t){return e(n,t,cd.highlightFirst),on.some(!0)},onEscape:function(n){var t=$y.getCoupled(n,"sandbox");return Lf.isOpen(t)?(Lf.close(t),on.some(!0)):on.none()},onUp:function(n,t){return e(n,t,cd.highlightLast),on.some(!0)},onEnter:function(t){var n=$y.getCoupled(t,"sandbox"),e=Lf.isOpen(n);if(e&&!r.previewing.get())return nd.getCurrent(n).bind(function(n){return cd.getHighlighted(n)}).map(function(n){return qt(t,AT(),{item:n}),!0});var o=nl.getValue(t);return Yt(t,_o()),r.onExecute(n,t,o),e&&Lf.close(n),on.some(!0)}}),kg.config({toggleClass:r.markers.openClass,aria:{mode:"expanded"}}),$y.config({others:{sandbox:function(n){return ux(r,n,{onOpen:function(){return kg.on(n)},onClose:function(){return kg.off(n)}})}}}),Jd("typeaheadevents",[Hi(function(n){var t=Z;ox(r,u(n),n,i,t,_y.HighlightFirst).get(Z)}),rr(AT(),function(n,t){var e=$y.getCoupled(n,"sandbox");Hk(r.model,n,t.event().item()),Yt(n,_o()),r.onItemExecute(n,e,t.event().item(),nl.getValue(n)),Lf.close(e),BT(n)})].concat(r.dismissOnBlur?[rr(Co(),function(n){var t=$y.getCoupled(n,"sandbox");ka(t.element()).isNone()&&Lf.close(t)})]:[]))];return{uid:r.uid,dom:ty(Bn(r,{inputAttributes:{role:"combobox","aria-autocomplete":"list","aria-haspopup":"true"}})),behaviours:N(N({},o),Vs(r.typeaheadBehaviours,a)),eventOrder:r.eventOrder}}}),IT=function(i){return N(N({},i),{toCached:function(){return IT(i.toCached())},bindFuture:function(t){return IT(i.bind(function(n){return n.fold(function(n){return Hy(an.error(n))},function(n){return t(n)})}))},bindResult:function(t){return IT(i.map(function(n){return n.bind(t)}))},mapResult:function(t){return IT(i.map(function(n){return n.map(t)}))},mapError:function(t){return IT(i.map(function(n){return n.mapError(t)}))},foldResult:function(t,e){return i.map(function(n){return n.fold(t,e)})},withTimeout:function(n,r){return IT(Ny(function(t){var e=!1,o=v.setTimeout(function(){e=!0,t(an.error(r()))},n);i.get(function(n){e||(v.clearTimeout(o),t(n))})}))}})},RT=Lk,VT={type:"separator"},NT=Hr("aria-invalid"),HT={bar:Kk(function(n,t){return function(n,t){return{dom:{tag:"div",classes:["tox-bar","tox-form__controls-h-stack"]},components:S(n.items,t.interpreter)}}(n,t.shared)}),collection:Kk(function(n,t){return qk(n,t.shared.providers)}),alertbanner:Kk(function(n,t){return function(t,n){return Gb.sketch({dom:{tag:"div",attributes:{role:"alert"},classes:["tox-notification","tox-notification--in","tox-notification--"+t.level]},components:[{dom:{tag:"div",classes:["tox-notification__icon"]},components:[Xg.sketch({dom:{tag:"button",classes:["tox-button","tox-button--naked","tox-button--icon"],innerHtml:xm(t.icon,n.icons),attributes:{title:n.translate(t.iconTooltip)}},action:function(n){qt(n,fy,{name:"alert-banner",value:t.url})}})]},{dom:{tag:"div",classes:["tox-notification__body"],innerHtml:n.translate(t.text)}}]})}(n,t.shared.providers)}),input:Kk(function(n,t){return function(n,t){return Vk({name:n.name,multiline:!1,label:n.label,inputMode:n.inputMode,placeholder:n.placeholder,flex:!1,disabled:n.disabled,classname:"tox-textfield",validation:on.none(),maximized:n.maximized},t)}(n,t.shared.providers)}),textarea:Kk(function(n,t){return function(n,t){return Vk({name:n.name,multiline:!0,label:n.label,inputMode:on.none(),placeholder:n.placeholder,flex:!0,disabled:n.disabled,classname:"tox-textarea",validation:on.none(),maximized:n.maximized},t)}(n,t.shared.providers)}),label:Kk(function(n,t){return function(n,t){var e={dom:{tag:"label",innerHtml:t.providers.translate(n.label),classes:["tox-label"]}},o=S(n.items,t.interpreter);return{dom:{tag:"div",classes:["tox-form__group"]},components:[e].concat(o),behaviours:ya([TS(),gg.config({}),IS(on.none()),dg.config({mode:"acyclic"})])}}(n,t.shared)}),iframe:(xT=function(n,t){return Sw(n,t.shared.providers)},function(n,t,e){var o=Bn(t,{source:"dynamic"});return Kk(xT)(n,o,e)}),button:Kk(function(n,t){return nk(n,t.shared.providers)}),checkbox:Kk(function(n,t){return function(e,t){function n(n){return n.element().dom().click(),on.some(!0)}function o(n){return{dom:{tag:"span",classes:["tox-icon","tox-checkbox-icon__"+n],innerHtml:xm("checked"===n?"selected":"unselected",t.icons)}}}var r=nl.config({store:{mode:"manual",getValue:function(n){return n.element().dom().checked},setValue:function(n,t){n.element().dom().checked=t}}}),i=by.parts().field({factory:{sketch:l},dom:{tag:"input",classes:["tox-checkbox__input"],attributes:{type:"checkbox"}},behaviours:ya([TS(),kh.config({disabled:e.disabled}),Xy.config({}),bg.config({}),r,dg.config({mode:"special",onEnter:n,onSpace:n,stopSpaceKeyup:!0}),Jd("checkbox-events",[rr(vo(),function(n,t){qt(n,ay,{name:e.name})})])])}),u=by.parts().label({dom:{tag:"span",classes:["tox-checkbox__label"],innerHtml:t.translate(e.label)},behaviours:ya([Ew.config({})])}),a=bm({dom:{tag:"div",classes:["tox-checkbox__icons"]},components:[o("checked"),o("unchecked")]});return by.sketch({dom:{tag:"label",classes:["tox-checkbox"]},components:[i,a.asSpec(),u],fieldBehaviours:ya([kh.config({disabled:e.disabled,disableClass:"tox-checkbox--disabled",onDisabled:function(n){by.getField(n).each(kh.disable)},onEnabled:function(n){by.getField(n).each(kh.enable)}})])})}(n,t.shared.providers)}),colorinput:Kk(function(n,t){return sx(n,t.shared,t.colorinput)}),colorpicker:Kk(function(n){function t(n){return"tox-"+n}var e=OS(hw,t),r=bm(e.sketch({dom:{tag:"div",classes:[t("color-picker-container")],attributes:{role:"presentation"}},onValidHex:function(n){qt(n,fy,{name:"hex-valid",value:!0})},onInvalidHex:function(n){qt(n,fy,{name:"hex-valid",value:!1})}}));return{dom:{tag:"div"},components:[r.asSpec()],behaviours:ya([nl.config({store:{mode:"manual",getValue:function(n){var t=r.get(n);return nd.getCurrent(t).bind(function(n){return nl.getValue(n).hex}).map(function(n){return"#"+n}).getOr("")},setValue:function(n,t){var e=/^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/.exec(t),o=r.get(n);nd.getCurrent(o).fold(function(){v.console.log("Can not find form")},function(n){nl.setValue(n,{hex:on.from(e[1]).getOr("")}),bS.getField(n,"hex").each(function(n){Yt(n,ho())})})}}}),TS()])}}),dropzone:Kk(function(n,t){return yw(n,t.shared.providers)}),grid:Kk(function(n,t){return function(n,t){return{dom:{tag:"div",classes:["tox-form__grid","tox-form__grid--"+n.columns+"col"]},components:S(n.items,t.interpreter)}}(n,t.shared)}),selectbox:Kk(function(n,t){return function(e,t){var n=S(e.items,function(n){return{text:t.translate(n.text),value:n.value}}),o=e.label.map(function(n){return Ay(n,t)}),r=by.parts().field({dom:{},selectAttributes:{size:e.size},options:n,factory:kT,selectBehaviours:ya([kh.config({disabled:e.disabled}),Xy.config({}),Jd("selectbox-change",[rr(vo(),function(n,t){qt(n,ay,{name:e.name})})])])}),i=1<e.size?on.none():on.some({dom:{tag:"div",classes:["tox-selectfield__icon-js"],innerHtml:xm("chevron-down",t.icons)}}),u={dom:{tag:"div",classes:["tox-selectfield"]},components:H([[r],i.toArray()])};return by.sketch({dom:{tag:"div",classes:["tox-form__group"]},components:H([o.toArray(),[u]]),fieldBehaviours:ya([kh.config({disabled:e.disabled,onDisabled:function(n){by.getField(n).each(kh.disable)},onEnabled:function(n){by.getField(n).each(kh.enable)}})])})}(n,t.shared.providers)}),sizeinput:Kk(function(n,t){return uk(n,t.shared.providers)}),urlinput:Kk(function(n,t){return Yk(n,t,t.urlinput)}),customeditor:Kk(function(e){var o=Ee(on.none()),t=bm({dom:{tag:e.tag}}),r=Ee(on.none());return{dom:{tag:"div",classes:["tox-custom-editor"]},behaviours:ya([Jd("editor-foo-events",[Ri(function(n){t.getOpt(n).each(function(t){(!function(n){return Object.prototype.hasOwnProperty.call(n,"init")}(e)?AS.load(e.scriptId,e.scriptUrl).then(function(n){return n(t.element().dom(),e.settings)}):e.init(t.element().dom())).then(function(t){r.get().each(function(n){t.setValue(n)}),r.set(on.none()),o.set(on.some(t))})})})]),nl.config({store:{mode:"manual",getValue:function(){return o.get().fold(function(){return r.get().getOr("")},function(n){return n.getValue()})},setValue:function(n,t){o.get().fold(function(){r.set(on.some(t))},function(n){return n.setValue(t)})}}}),TS()]),components:[t.asSpec()]}}),htmlpanel:Kk(function(n){return"presentation"===n.presets?Gb.sketch({dom:{tag:"div",classes:["tox-form__group"],innerHtml:n.html}}):Gb.sketch({dom:{tag:"div",classes:["tox-form__group"],innerHtml:n.html,attributes:{role:"document"}},containerBehaviours:ya([Xy.config({}),bg.config({})])})}),imagetools:Kk(function(n,t){return Rk(n,t.shared.providers)}),table:Kk(function(n,t){return function(n,t){function e(n){return{dom:{tag:"th",innerHtml:t.translate(n)}}}function o(n){return{dom:{tag:"td",innerHtml:t.translate(n)}}}function r(n){return{dom:{tag:"tr"},components:S(n,o)}}var i,u;return{dom:{tag:"table",classes:["tox-dialog__table"]},components:[(u=n.header,{dom:{tag:"thead"},components:[{dom:{tag:"tr"},components:S(u,e)}]}),(i=n.cells,{dom:{tag:"tbody"},components:S(i,r)})],behaviours:ya([Xy.config({}),bg.config({})])}}(n,t.shared.providers)}),panel:Kk(function(n,t){return function(n,t){return{dom:{tag:"div",classes:n.classes},components:S(n.items,t.shared.interpreter)}}(n,t)})},PT={field:function(n,t){return t}},zT=function(t,e,o){return Nn(HT,e.type).fold(function(){return v.console.error('Unknown factory type "'+e.type+'", defaulting to container: ',e),e},function(n){return n(t,e,o)})},LT=nn(function(n,t){!function(n,t){var e=Nu.max(n,t,["margin-left","border-left-width","padding-left","padding-right","border-right-width","margin-right"]);li(n,"max-width",e+"px")}(n,Math.floor(t))}),jT={valignCentre:[],alignCentre:[],alignLeft:[],alignRight:[],right:[],left:[],bottom:[],top:[]},UT=function(n,t,e){function o(){return Be.fromDom(n.getBody())}var r=Jb(n);return{toolbar:function(n,t,e){return e?function(){return{anchor:"node",root:n(),node:on.from(n()),bubble:Ta(-12,-12,jT),layouts:{onRtl:function(){return[hm]},onLtr:function(){return[vm]}},overrides:{maxHeightFunction:kf()}}}:function(){return{anchor:"hotspot",hotspot:t(),bubble:Ta(-12,12,jT),layouts:{onRtl:function(){return[aa]},onLtr:function(){return[ca]}},overrides:{maxHeightFunction:kf()}}}}(o,t,r),toolbarOverflow:function(n){return function(){return{anchor:"hotspot",hotspot:n(),overrides:{maxWidthFunction:LT()},layouts:{onRtl:function(){return[aa,ca]},onLtr:function(){return[ca,aa]}}}}}(e),banner:function(n,t,e){return e?function(){return{anchor:"node",root:n(),node:on.from(n()),layouts:{onRtl:function(){return[Wg]},onLtr:function(){return[Wg]}}}}:function(){return{anchor:"hotspot",hotspot:t(),layouts:{onRtl:function(){return[ic]},onLtr:function(){return[ic]}}}}}(o,t,r),cursor:function(t,n){return function(){return{anchor:"selection",root:n(),getSelection:function(){var n=t.selection.getRng();return on.some(Dc.range(Be.fromDom(n.startContainer),n.startOffset,Be.fromDom(n.endContainer),n.endOffset))}}}}(n,o),node:function(t){return function(n){return{anchor:"node",root:t(),node:n}}}(o)}},WT=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strike-through",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Align",items:[{title:"Left",icon:"align-left",format:"alignleft"},{title:"Center",icon:"align-center",format:"aligncenter"},{title:"Right",icon:"align-right",format:"alignright"},{title:"Justify",icon:"align-justify",format:"alignjustify"}]}],GT=function(n){return O(n,function(n,t){if(function(n){return Tn(n,"items")}(t)){var e=GT(t.items);return{customFormats:n.customFormats.concat(e.customFormats),formats:n.formats.concat([{title:t.title,items:e.formats}])}}if(function(n){return Tn(n,"inline")}(t)||function(n){return Tn(n,"block")}(t)||function(n){return Tn(n,"selector")}(t)){var o="custom-"+t.title.toLowerCase();return{customFormats:n.customFormats.concat([{name:o,format:t}]),formats:n.formats.concat([{title:t.title,format:o,icon:t.icon}])}}return N(N({},n),{formats:n.formats.concat(t)})},{customFormats:[],formats:[]})},XT=Ok.trim,YT=tO("true"),qT=tO("false"),KT=function(n){return function(n){for(;n=n.parentNode;){var t=n.contentEditable;if(t&&"inherit"!==t)return YT(n)}return!1}(n)&&!qT(n)},JT=function(n){var t=sO(n);return C(function(n){return S(C(n,uO),aO)}(t).concat(function(n){return S(C(n,rO),cO)}(t)),fO)},$T="tinymce-url-history",QT=Object.prototype.hasOwnProperty,ZT="contexttoolbar-hide",nE=nn([ct("dom"),St("shell",!0),Is("toolbarBehaviours",[gg])]),tE=nn([Cl({name:"groups",overrides:function(n){return{behaviours:ya([gg.config({})])}}})]),eE=_l({name:"Toolbar",configFields:nE(),partFields:tE(),factory:function(t,n,e,o){var r=function(n){return t.shell?on.some(n):Ks(n,t,"groups")},i=t.shell?{behaviours:[gg.config({})],components:[]}:{behaviours:[],components:n};return{uid:t.uid,dom:t.dom,components:i.components,behaviours:Vs(t.toolbarBehaviours,i.behaviours),apis:{setGroups:function(n,t){r(n).fold(function(){throw v.console.error("Toolbar was defined to not be a shell, but no groups container was specified in components"),new Error("Toolbar was defined to not be a shell, but no groups container was specified in components")},function(n){gg.set(n,t)})}},domModification:{attributes:{role:"group"}}}},apis:{setGroups:function(n,t,e){n.setGroups(t,e)}}}),oE=lr("within","extra","withinWidth"),rE=nn([ct("items"),Yu(["itemSelector"]),Is("tgroupBehaviours",[dg])]),iE=nn([kl({name:"items",unit:"item"})]),uE=_l({name:"ToolbarGroup",configFields:rE(),partFields:iE(),factory:function(n,t,e,o){return{uid:n.uid,dom:n.dom,components:t,behaviours:Vs(n.tgroupBehaviours,[dg.config({mode:"flow",selector:n.markers.itemSelector})]),domModification:{attributes:{role:"toolbar"}}}}}),aE=nn([Is("splitToolbarBehaviours",[$y]),At("builtGroups",function(){return Ee([])})]),cE=nn([Yu(["overflowToggledClass"]),ct("getAnchor"),xt("getOverflowBounds"),ct("lazySink")].concat(aE())),sE=nn([wl({factory:eE,schema:nE(),name:"primary"}),Sl({factory:eE,schema:nE(),name:"overflow",overrides:function(t){return{toolbarBehaviours:ya([dg.config({mode:"cyclic",onEscape:function(n){return Ks(n,t,"overflow-button").each(bg.focus),on.none()}})])}}}),Sl({name:"overflow-button",overrides:function(n){return{dom:{attributes:{"aria-haspopup":"true"}},buttonBehaviours:ya([kg.config({toggleClass:n.markers.overflowToggledClass,aria:{mode:"expanded"},toggleOnExecute:!1})])}}}),Sl({name:"overflow-group"})]),fE=_l({name:"SplitFloatingToolbar",configFields:cE(),partFields:sE(),factory:function(t,n,e,o){return DO(t,n,0,o,{coupling:{sandbox:function(n){return function(o,e){var r=Eu();return{dom:{tag:"div",attributes:{id:r.id()}},behaviours:ya([dg.config({mode:"special",onEscape:function(n){return Lf.close(n),on.some(!0)}}),Lf.config({onOpen:function(n,t){_O(o,e),Ks(o,e,"overflow-button").each(function(n){kg.on(n),r.link(n.element())}),dg.focusIn(t)},onClose:function(){Ks(o,e,"overflow-button").each(function(n){kg.off(n),bg.focus(n),r.unlink(n.element())})},isPartOf:function(n,t,e){return ju(t,e)||ju(o,e)},getAttachPoint:function(){return e.lazySink(o).getOrDie()}}),dc.config({channels:N({},Ds({isExtraPart:nn(!1),doReposition:function(){return MO(o,e)}}))})])}}(n,t)}},apis:{refresh:function(n){return _O(n,t)},toggle:function(n){return function(n,t,e){var o=$y.getCoupled(n,"sandbox");Lf.isOpen(o)?Lf.close(o):Lf.open(o,e.overflow())}(n,0,o)},getOverflow:function(n){return Lf.getState($y.getCoupled(n,"sandbox"))},reposition:function(n){return MO(n,t)}}})},apis:{setGroups:function(n,t,e){n.setGroups(t,e)},refresh:function(n,t){n.refresh(t)},reposition:function(n,t){n.reposition(t)},getMoreButton:function(n,t){return n.getMoreButton(t)},getOverflow:function(n,t){return n.getOverflow(t)},toggle:function(n,t){n.toggle(t)}}}),lE=/* */Object.freeze({refresh:function(n,t,e){if(e.isExpanded()){hi(n.element(),IO(t));var o=RO(t,n.element());li(n.element(),IO(t),o)}},grow:function(n,t,e){e.isExpanded()||jO(n,t,e)},shrink:function(n,t,e){e.isExpanded()&&LO(n,t,e)},immediateShrink:function(n,t,e){e.isExpanded()&&PO(n,t,e)},hasGrown:function(n,t,e){return e.isExpanded()},hasShrunk:function(n,t,e){return e.isCollapsed()},isGrowing:UO,isShrinking:WO,isTransitioning:function(n,t,e){return!0===UO(n,t)||!0===WO(n,t)},toggleGrow:function(n,t,e){(e.isExpanded()?LO:jO)(n,t,e)},disableTransitions:VO}),dE=/* */Object.freeze({exhibit:function(n,t){var e=t.expanded;return Gr(e?{classes:[t.openClass],styles:{}}:{classes:[t.closedClass],styles:q(t.dimension.property,"0px")})},events:function(e,o){return tr([fr(yo(),function(n,t){t.event().raw().propertyName===e.dimension.property&&(VO(n,e),o.isExpanded()&&hi(n.element(),e.dimension.property),(o.isExpanded()?e.onGrown:e.onShrunk)(n))})])}}),mE=[ct("closedClass"),ct("openClass"),ct("shrinkingClass"),ct("growingClass"),ht("getAnimationRoot"),Ku("onShrunk"),Ku("onStartShrink"),Ku("onGrown"),Ku("onStartGrow"),St("expanded",!1),st("dimension",it("property",{width:[Zu("property","width"),Zu("getDimension",function(n){return gu(n)+"px"})],height:[Zu("property","height"),Zu("getDimension",function(n){return fu(n)+"px"})]}))],gE=xa({fields:mE,name:"sliding",active:dE,apis:lE,state:/* */Object.freeze({init:function(n){var t=Ee(n.expanded);return tu({isExpanded:function(){return!0===t.get()},isCollapsed:function(){return!1===t.get()},setCollapsed:d(t.set,!1),setExpanded:d(t.set,!0),readState:function(){return"expanded: "+t.get()}})}})}),pE=nn([Yu(["closedClass","openClass","shrinkingClass","growingClass","overflowToggledClass"]),Ku("onOpened"),Ku("onClosed")].concat(aE())),hE=nn([wl({factory:eE,schema:nE(),name:"primary"}),wl({factory:eE,schema:nE(),name:"overflow",overrides:function(t){return{toolbarBehaviours:ya([gE.config({dimension:{property:"height"},closedClass:t.markers.closedClass,openClass:t.markers.openClass,shrinkingClass:t.markers.shrinkingClass,growingClass:t.markers.growingClass,onShrunk:function(n){Ks(n,t,"overflow-button").each(function(n){kg.off(n),bg.focus(n)}),t.onClosed(n)},onGrown:function(n){dg.focusIn(n),t.onOpened(n)},onStartGrow:function(n){Ks(n,t,"overflow-button").each(kg.on)}}),dg.config({mode:"acyclic",onEscape:function(n){return Ks(n,t,"overflow-button").each(bg.focus),on.some(!0)}})])}}}),Sl({name:"overflow-button",overrides:function(n){return{buttonBehaviours:ya([kg.config({toggleClass:n.markers.overflowToggledClass,aria:{mode:"pressed"},toggleOnExecute:!1})])}}}),Sl({name:"overflow-group"})]),vE=function(n,t){var e=Ks(n,t,"overflow");EO(n,t,e,GO),e.each(gE.refresh)},bE=_l({name:"SplitSlidingToolbar",configFields:pE(),partFields:hE(),factory:function(t,n,e,o){return DO(t,n,0,o,{coupling:{},apis:{refresh:function(n){return vE(n,t)},toggle:function(n){return function(t,e){Ks(t,e,"overflow").each(function(n){vE(t,e),gE.toggleGrow(n)})}(n,t)},getOverflow:function(n){return Ks(n,t,"overflow")}}})},apis:{setGroups:function(n,t,e){n.setGroups(t,e)},refresh:function(n,t){n.refresh(t)},getMoreButton:function(n,t){return n.getMoreButton(t)},getOverflow:function(n,t){return n.getOverflow(t)},toggle:function(n,t){n.toggle(t)}}}),yE=nn(Hr("toolbar-height-change")),xE="silver.readonly",wE=de([(wT="readonly",st(wT,Ce))]),SE=[Et("disabled",!1),yt("tooltip"),yt("icon"),yt("text"),Dt("onSetup",function(){return Z})],CE=de([ft("type"),dt("onAction")].concat(SE)),kE=[yt("text"),yt("tooltip"),yt("icon"),dt("fetch"),Dt("onSetup",function(){return Z})],OE=de(g([ft("type")],kE)),TE=de([ft("type"),yt("tooltip"),yt("icon"),yt("text"),xt("select"),dt("fetch"),Dt("onSetup",function(){return Z}),Tt("presets","normal",["normal","color","listpreview"]),St("columns",1),dt("onAction"),dt("onItemAction")]),EE=[Et("active",!1)].concat(SE),DE=de(EE.concat([ft("type"),dt("onAction")])),BE=[Dt("predicate",function(){return!1}),Tt("scope","node",["node","editor"]),Tt("position","selection",["node","selection","line"])],AE=SE.concat([St("type","contextformbutton"),St("primary",!1),dt("onAction"),At("original",l)]),_E=EE.concat([St("type","contextformbutton"),St("primary",!1),dt("onAction"),At("original",l)]),ME=SE.concat([St("type","contextformbutton")]),FE=EE.concat([St("type","contextformtogglebutton")]),IE=it("type",{contextformbutton:AE,contextformtogglebutton:_E}),RE=de([St("type","contextform"),Dt("initValue",function(){return""}),yt("label"),pt("commands",IE),vt("launch",it("type",{contextformbutton:ME,contextformtogglebutton:FE}))].concat(BE)),VE=de([St("type","contexttoolbar"),ft("items")].concat(BE)),NE=/* */Object.freeze({getState:function(n,t,e){return e}}),HE=/* */Object.freeze({events:function(i,u){function o(o,r){i.updateState.each(function(n){var t=n(o,r);u.set(t)}),i.renderComponents.each(function(n){var t=n(r,u.get()),e=S(t,o.getSystem().build);hs(o,e)})}return tr([rr(Oo(),function(n,t){var e=i.channel;vn(t.channels(),e)&&o(n,t.data())}),Ri(function(t,n){i.initialData.each(function(n){o(t,n)})})])}}),PE=/* */Object.freeze({init:function(n){var t=Ee(on.none());return{readState:function(){return t.get().fold(function(){return"none"},function(n){return n})},get:function(){return t.get()},set:function(n){return t.set(n)},clear:function(){return t.set(on.none())}}}}),zE=[ct("channel"),ht("renderComponents"),ht("updateState"),ht("initialData")],LE=xa({fields:zE,name:"reflecting",active:HE,apis:NE,state:PE}),jE=nn([ct("toggleClass"),ct("fetch"),$u("onExecute"),St("getHotspot",on.some),St("getAnchorOverrides",nn({})),St("layouts",on.none()),$u("onItemExecute"),ht("lazySink"),ct("dom"),Ku("onOpen"),Is("splitDropdownBehaviours",[$y,dg,bg]),St("matchWidth",!1),St("useMinWidth",!1),St("eventOrder",{}),ht("role")].concat(cx())),UE=wl({factory:Xg,schema:[ct("dom")],name:"arrow",defaults:function(n){return{buttonBehaviours:ya([bg.revoke()])}},overrides:function(t){return{dom:{tag:"span",attributes:{role:"presentation"}},action:function(n){n.getSystem().getByUid(t.uid).each(Kt)},buttonBehaviours:ya([kg.config({toggleOnExecute:!1,toggleClass:t.toggleClass})])}}}),WE=wl({factory:Xg,schema:[ct("dom")],name:"button",defaults:function(n){return{buttonBehaviours:ya([bg.revoke()])}},overrides:function(e){return{dom:{tag:"span",attributes:{role:"presentation"}},action:function(t){t.getSystem().getByUid(e.uid).each(function(n){e.onExecute(n,t)})}}}}),GE=nn([UE,WE,Cl({factory:{sketch:function(n){return{uid:n.uid,dom:{tag:"span",styles:{display:"none"},attributes:{"aria-hidden":"true"},innerHtml:n.text}}}},schema:[ct("text")],name:"aria-descriptor"}),Sl({schema:[Xu()],name:"menu",defaults:function(o){return{onExecute:function(t,e){t.getSystem().getByUid(o.uid).each(function(n){o.onItemExecute(n,t,e)})}}}}),Zy()]),XE=_l({name:"SplitDropdown",configFields:jE(),partFields:GE(),factory:function(o,n,t,e){function r(n){nd.getCurrent(n).each(function(n){cd.highlightFirst(n),dg.focusIn(n)})}function i(n){ox(o,function(n){return n},n,e,r,_y.HighlightFirst).get(Z)}function u(n){var t=Js(n,o,"button");return Kt(t),on.some(!0)}var a=An(tr([Ri(function(e,n){Ks(e,o,"aria-descriptor").each(function(n){var t=Hr("aria");_r(n.element(),"id",t),_r(e.element(),"aria-describedby",t)})})]),im(on.some(i))),c={repositionMenus:function(n){kg.isOn(n)&&ax(n)}};return{uid:o.uid,dom:o.dom,components:n,apis:c,eventOrder:N(N({},o.eventOrder),{"alloy.execute":["disabling","toggling","alloy.base.behaviour"]}),events:a,behaviours:Vs(o.splitDropdownBehaviours,[$y.config({others:{sandbox:function(n){var t=Js(n,o,"arrow");return ux(o,n,{onOpen:function(){kg.on(t),kg.on(n)},onClose:function(){kg.off(t),kg.off(n)}})}}}),dg.config({mode:"special",onSpace:u,onEnter:u,onDown:function(n){return i(n),on.some(!0)}}),bg.config({}),kg.config({toggleOnExecute:!1,aria:{mode:"expanded"}})]),domModification:{attributes:{role:o.role.getOr("button"),"aria-haspopup":!0}}}},apis:{repositionMenus:function(n,t){return n.repositionMenus(t)}}}),YE=Hr("focus-button"),qE=["checklist","ordered-list"],KE=["indent","outdent","table-insert-column-after","table-insert-column-before","unordered-list"],JE=function(n,t,e){return sT(n,{toolbarButtonBehaviours:[].concat(0<e.length?[Jd("toolbarButtonWith",e)]:[]),getApi:iT,onSetup:n.onSetup},t)},$E=function(n,t,e){return Bn(sT(n,{toolbarButtonBehaviours:[gg.config({}),kg.config({toggleClass:"tox-tbtn--enabled",aria:{mode:"pressed"},toggleOnExecute:!1})].concat(0<e.length?[Jd("toolbarToggleButtonWith",e)]:[]),getApi:uT,onSetup:n.onSetup},t))},QE=function(n,t,e){var o=t.label.fold(function(){return{}},function(n){return{"aria-label":n}}),r=bm(xy.sketch({inputClasses:["tox-toolbar-textfield","tox-toolbar-nav-js"],data:t.initValue(),inputAttributes:o,selectOnFocus:!0,inputBehaviours:ya([dg.config({mode:"special",onEnter:function(n){return i.findPrimary(n).map(function(n){return Kt(n),!0})},onLeft:function(n,t){return t.cut(),on.none()},onRight:function(n,t){return t.cut(),on.none()}})])})),i=function(t,n,e){var o=S(n,function(n){return bm(dT(t,n,e))});return{asSpecs:function(){return S(o,function(n){return n.asSpec()})},findPrimary:function(e){return Au(n,function(n,t){return n.primary?on.from(o[t]).bind(function(n){return n.getOpt(e)}).filter(b(kh.isDisabled)):on.none()})}}}(r,t.commands,e.shared.providers);return tT({type:n,uid:Hr("context-toolbar"),initGroups:[{title:on.none(),items:[r.asSpec()]},{title:on.none(),items:i.asSpecs()}],onEscape:on.none,cyclicKeying:!0,backstage:e,getSink:function(){return an.error("")}})},ZE=function(t,e){function n(n){return n.dom()===e.getBody()}var o=Be.fromDom(e.selection.getNode());return pT(o,t.inNodeScope).orThunk(function(){return pT(o,t.inEditorScope).orThunk(function(){return function(n,t,e){for(var o=n.dom(),r=dn(e)?e:nn(!1);o.parentNode;){o=o.parentNode;var i=Be.fromDom(o),u=t(i);if(u.isSome())return u;if(r(i))break}return on.none()}(o,function(n){return pT(n,t.inNodeScope)},n)})})},nD=function(e,r){function o(t,e){var o=et(function(n){return tt("ContextForm",RE,n)}(e));(n[t]=o).launch.map(function(n){c["form:"+t]=N(N({},e.launch),{type:"contextformtogglebutton"===n.type?"togglebutton":"button",onAction:function(){r(o)}})}),"editor"===o.scope?a.push(o):u.push(o),s[t]=o}function i(t,e){(function(n){return tt("ContextToolbar",VE,n)})(e).each(function(n){"editor"===e.scope?a.push(n):u.push(n),s[t]=n})}var n={},u=[],a=[],c={},s={},t=wn(e);return bn(t,function(n){var t=e[n];"contextform"===t.type?o(n,t):"contexttoolbar"===t.type&&i(n,t)}),{forms:n,inNodeScope:u,inEditorScope:a,lookupTable:s,formNavigators:c}},tD=Hr("forward-slide"),eD=Hr("backward-slide"),oD=Hr("change-slide-event"),rD="tox-pop--resizing";(CT=ST=ST||{})[CT.SemiColon=0]="SemiColon",CT[CT.Space=1]="Space";function iD(n,t,e,o){return{type:"basic",data:function(n){return S(n,function(n){var t=n,e=n,o=n.split("=");return 1<o.length&&(t=o[0],e=o[1]),{title:t,format:e}})}(function(n,t){return t===ST.SemiColon?n.replace(/;$/,"").split(";"):n.split(" ")}(Nn(n.settings,t).getOr(e),o))}}function uD(e){function t(n){var t=T(HB,function(n){return e.formatter.match(n.format)}).fold(function(){return"left"},function(n){return n.title.toLowerCase()});qt(n,lk,{icon:"align-"+t})}var n=on.some(function(n){return function(){return t(n)}}),o=on.some(function(n){return t(n)}),r=function(n){return{type:"basic",data:n}}(HB);return{tooltip:"Align",icon:on.some("align-left"),isSelectedFor:function(n){return function(){return e.formatter.match(n)}},getCurrentValue:nn(on.none()),getPreviewFor:function(n){return function(){return on.none()}},onAction:vT(e),setInitialValue:o,nodeChangeHandler:n,dataset:r,shouldHide:!1,isInvalid:function(n){return!e.formatter.canApply(n.format)}}}function aD(n){var t=n.split(/\s*,\s*/);return S(t,function(n){return n.replace(/^['"]+|['"]+$/g,"")})}function cD(r){function i(){function e(n){return n?aD(n)[0]:""}var n=r.queryCommandValue("FontName"),t=u.data,o=n?n.toLowerCase():"";return{matchOpt:T(t,function(n){var t=n.format;return t.toLowerCase()===o||e(t).toLowerCase()===e(o).toLowerCase()}).orThunk(function(){return function(n){var t;return 0===n.indexOf("-apple-system")&&(t=aD(n.toLowerCase()),B(PB,function(n){return-1<t.indexOf(n.toLowerCase())}))}(o)?on.from({title:"System Font",format:o}):on.none()}),font:n}}function t(n){var t=i(),e=t.matchOpt,o=t.font,r=e.fold(function(){return o},function(n){return n.title});qt(n,fk,{text:r})}var n=on.some(function(n){return function(){return t(n)}}),e=on.some(function(n){return t(n)}),u=iD(r,"font_formats","Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",ST.SemiColon);return{tooltip:"Fonts",icon:on.none(),isSelectedFor:function(t){return function(n){return n.exists(function(n){return n.format===t})}},getCurrentValue:function(){return i().matchOpt},getPreviewFor:function(n){return function(){return on.some({tag:"div",styleAttr:-1===n.indexOf("dings")?"font-family:"+n:""})}},onAction:function(n){return function(){r.undoManager.transact(function(){r.focus(),r.execCommand("FontName",!1,n.format)})}},setInitialValue:e,nodeChangeHandler:n,dataset:u,shouldHide:!1,isInvalid:function(){return!1}}}function sD(n,t){return/[0-9.]+px$/.test(n)?function(n,t){var e=Math.pow(10,t);return Math.round(n*e)/e}(72*parseInt(n,10)/96,t||0)+"pt":n}function fD(e){function i(){var o=on.none(),r=u.data,i=e.queryCommandValue("FontSize");if(i)for(var n=function(n){var t=sD(i,n),e=function(n){return V(zB,n).getOr("")}(t);o=T(r,function(n){return n.format===i||n.format===t||n.format===e})},t=3;o.isNone()&&0<=t;t--)n(t);return{matchOpt:o,px:i}}function t(n){var t=i(),e=t.matchOpt,o=t.px,r=e.fold(function(){return o},function(n){return n.title});qt(n,fk,{text:r})}var n=nn(nn(on.none())),o=on.some(function(n){return function(){return t(n)}}),r=on.some(function(n){return t(n)}),u=iD(e,"fontsize_formats","8pt 10pt 12pt 14pt 18pt 24pt 36pt",ST.Space);return{tooltip:"Font sizes",icon:on.none(),isSelectedFor:function(t){return function(n){return n.exists(function(n){return n.format===t})}},getPreviewFor:n,getCurrentValue:function(){return i().matchOpt},onAction:function(n){return function(){e.undoManager.transact(function(){e.focus(),e.execCommand("FontSize",!1,n.format)})}},setInitialValue:r,nodeChangeHandler:o,dataset:u,shouldHide:!1,isInvalid:function(){return!1}}}function lD(e,n,t){var o=n();return Au(t,function(t){return T(o,function(n){return e.formatter.matchNode(t,n.format)})}).orThunk(function(){return e.formatter.match("p")?on.some({title:"Paragraph",format:"p"}):on.none()})}function dD(n){var t=n.selection.getStart(!0)||n.getBody();return n.dom.getParents(t,function(){return!0},n.getBody())}function mD(o){function e(n,t){var e=function(n){return lD(o,function(){return r.data},n)}(n).fold(function(){return"Paragraph"},function(n){return n.title});qt(t,fk,{text:e})}var n=on.some(function(t){return function(n){return e(n.parents,t)}}),t=on.some(function(n){var t=dD(o);e(t,n)}),r=iD(o,"block_formats","Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre",ST.SemiColon);return{tooltip:"Blocks",icon:on.none(),isSelectedFor:function(n){return function(){return o.formatter.match(n)}},getCurrentValue:nn(on.none()),getPreviewFor:function(t){return function(){var n=o.formatter.get(t);return on.some({tag:0<n.length&&(n[0].inline||n[0].block)||"div",styleAttr:o.formatter.getCssText(t)})}},onAction:vT(o),setInitialValue:t,nodeChangeHandler:n,dataset:r,shouldHide:!1,isInvalid:function(n){return!o.formatter.canApply(n.format)}}}function gD(i,n){function e(n,t){var e=function(n){var t=n.items;return t!==undefined&&0<t.length?D(t,e):[{title:n.title,format:n.format}]},o=D(Qk(i),e),r=lD(i,function(){return o},n).fold(function(){return"Paragraph"},function(n){return n.title});qt(t,fk,{text:r})}var t=on.some(function(t){return function(n){return e(n.parents,t)}}),o=on.some(function(n){var t=dD(i);e(t,n)});return{tooltip:"Formats",icon:on.none(),isSelectedFor:function(n){return function(){return i.formatter.match(n)}},getCurrentValue:nn(on.none()),getPreviewFor:function(t){return function(){var n=i.formatter.get(t);return n!==undefined?on.some({tag:0<n.length&&(n[0].inline||n[0].block)||"div",styleAttr:i.formatter.getCssText(t)}):on.none()}},onAction:vT(i),setInitialValue:o,nodeChangeHandler:t,shouldHide:i.getParam("style_formats_autohide",!1,"boolean"),isInvalid:function(n){return!i.formatter.canApply(n.format)},dataset:n}}function pD(o,r){return function(n,t){var e=o(n).mapError(function(n){return ye(n)}).getOrDie();return r(e,t)}}function hD(n){var t=n.toolbar,e=n.buttons;return!1===t?[]:t===undefined||!0===t?function(e){var n=S(LB,function(n){var t=C(n.items,function(n){return Tn(e,n)||Tn(UB,n)});return{name:n.name,items:t}});return C(n,function(n){return 0<n.items.length})}(e):cn(t)?function(n){var t=n.split("|");return S(t,function(n){return{items:n.trim().split(" ")}})}(t):function(n){return h(n,function(n){return Tn(n,"name")&&Tn(n,"items")})}(t)?t:(v.console.error("Toolbar type should be string, string[], boolean or ToolbarGroup[]"),[])}function vD(t,e,o,r,n){return V(e,o.toLowerCase()).orThunk(function(){return n.bind(function(n){return Au(n,function(n){return V(e,n+o.toLowerCase())})})}).fold(function(){return V(UB,o.toLowerCase()).map(function(n){return n(t,r)}).orThunk(function(){return on.none()})},function(n){return function(t,e){return V(jB,t.type).fold(function(){return v.console.error("skipping button defined by",t),on.none()},function(n){return on.some(n(t,e))})}(n,r)})}function bD(e,o,r,i){var n=hD(o),t=S(n,function(n){var t=D(n.items,function(n){return 0===n.trim().length?[]:vD(e,o.buttons,n,r,i).toArray()});return{title:on.from(e.translate(n.name)),items:t}});return C(t,function(n){return 0<n.items.length})}function yD(e){return(gi(e,"position").is("fixed")?on.none():yr(e)).orThunk(function(){var n=Be.fromTag("span");Sr(e,n);var t=yr(n);return zi(n),t}).map(mu).getOrThunk(function(){return Ru(0,0)})}function xD(t){return function(n){return n.translate(-t.left(),-t.top())}}function wD(t){return function(n){return n.translate(t.left(),t.top())}}function SD(e){return function(n,t){return O(e,function(n,t){return t(n)},Ru(n,t))}}function CD(n,t,e){return n.fold(SD([wD(e),xD(t)]),SD([xD(t)]),SD([]))}function kD(n,t,e){return n.fold(SD([wD(e)]),SD([]),SD([wD(t)]))}function OD(n,t,e){return n.fold(SD([]),SD([xD(e)]),SD([wD(t),xD(e)]))}function TD(n,t,e){return n.fold(function(n,t){return{position:"absolute",left:n+"px",top:t+"px"}},function(n,t){return{position:"absolute",left:n-e.left()+"px",top:t-e.top()+"px"}},function(n,t){return{position:"fixed",left:n+"px",top:t+"px"}})}function ED(n,i,u,a){function t(o,r){return function(n,t){var e=o(i,u,a);return r(n.getOr(e.left()),t.getOr(e.top()))}}return n.fold(t(OD,eA.offset),t(kD,eA.absolute),t(CD,eA.fixed))}function DD(n,t){var e=n.element();ei(e,t.transitionClass),ri(e,t.fadeOutClass),ei(e,t.fadeInClass),t.onShow(n)}function BD(n,t){var e=n.element();ei(e,t.transitionClass),ri(e,t.fadeInClass),ei(e,t.fadeOutClass),t.onHide(n)}function AD(n,t,e){return B(n,function(n){switch(n){case"bottom":return function(n,t){return n.bottom()<=t.bottom()}(t,e);case"top":return function(n,t){return n.y()>=t.y()}(t,e)}})}function _D(n,t){return Fr(n,t)?on.some(parseInt(Mr(n,t),10)):on.none()}function MD(r,n){return _D(r,n.leftAttr).bind(function(o){return _D(r,n.topAttr).map(function(n){var t=gu(r),e=fu(r);return xu(o,n,t,e)})})}function FD(n,t,e){var o=Mr(n,t.positionAttr);switch(function(n,t){Ir(n,t.leftAttr),Ir(n,t.topAttr),Ir(n,t.positionAttr)}(n,t),o){case"static":return on.some(uA["static"]());case"absolute":return on.some(uA.absolute(e.x(),e.y()));default:return on.none()}}function ID(n,t,e,o,r){var i=wu(n);if(AD(t.modes,i,e))return on.none();var u=r(),a=mi(n,"position");!function(n,t,e,o,r){_r(n,t.leftAttr,e),_r(n,t.topAttr,o),_r(n,t.positionAttr,r)}(n,t,i.x(),i.y(),a);var c=rA(i.x(),i.y()),s=CD(c,o,u),f=rA(e.x(),e.y()),l=CD(f,o,u),d=i.y()<=e.y()?l.top():l.top()+e.height()-i.height();return on.some(uA.fixed(s.left(),d))}function RD(n,t,e,o,r){var i=n.element();return gi(i,"position").is("fixed")?function(t,e,o){return MD(t,e).filter(function(n){return AD(e.modes,n,o)}).bind(function(n){return FD(t,e,n)})}(i,t,e):ID(i,t,e,o,r)}function VD(t,n){bn(["left","top","position"],function(n){return hi(t.element(),n)}),n.onUndocked(t)}function ND(n,t,e,o,r){var i=TD(r,0,o);di(n.element(),i),("fixed"===i.position?t.onDocked:t.onUndocked)(n)}function HD(o,n,r,i,u){void 0===u&&(u=!1),n.contextual.each(function(e){e.lazyContext(o).each(function(n){var t=function(n,t){return n.y()<t.bottom()&&n.bottom()>t.y()}(n,i);t!==r.isVisible()&&(r.setVisible(t),u&&!t?(ui(o.element(),[e.fadeOutClass]),e.onHide(o)):(t?DD:BD)(o,e))})})}function PD(r,i,n){var u=r.element();n.setDocked(!1),function(n,t){var e=n.element();return MD(e,t).bind(function(n){return FD(e,t,n)})}(r,i).each(function(n){n.fold(function(){return VD(r,i)},function(n,t){var e=pr(u),o=(hu(e),yD(u));ND(r,i,0,o,rA(n,t))},Z)}),n.setVisible(!0),i.contextual.each(function(n){ai(u,[n.fadeInClass,n.fadeOutClass,n.transitionClass]),n.onShow(r)}),aA(r,i,n)}function zD(n,t,e){e.isDocked()&&PD(n,t,e)}function LD(o){var r=o.element();br(r).each(function(n){if(lA.isDocked(o)){var t=gu(n);li(r,"width",t+"px");var e=lu(r);li(n,"padding-top",e+"px")}else hi(r,"width"),hi(n,"padding-top")})}function jD(n,t){t?(ri(n,dA.fadeOutClass),ui(n,[dA.transitionClass,dA.fadeInClass])):(ri(n,dA.fadeInClass),ui(n,[dA.fadeOutClass,dA.transitionClass]))}function UD(n,t){var e=Be.fromDom(n.getContainer());t?(ei(e,mA),ri(e,gA)):(ei(e,gA),ri(e,mA))}function WD(i,e){function o(t){e().each(function(n){return t(n.element())})}function n(n){i.inline||LD(n),UD(i,lA.isDocked(n)),n.getSystem().broadcastOn([Uf()],{}),e().each(function(n){return n.getSystem().broadcastOn([Uf()],{})})}var r=Ee(on.none()),t=i.inline?[]:function(){var n;return[dc.config({channels:(n={},n[yE()]={onReceive:LD},n)})]}();return g([bg.config({}),lA.config({leftAttr:"data-dock-left",topAttr:"data-dock-top",positionAttr:"data-dock-pos",contextual:N({lazyContext:function(n){var t=lu(n.element()),e=i.inline?i.getContentAreaContainer():i.getContainer(),o=wu(Be.fromDom(e)),r=o.height()-t;return on.some(xu(o.x(),o.y(),o.width(),r))},onShow:function(){o(function(n){return jD(n,!0)})},onShown:function(t){o(function(n){return ai(n,[dA.transitionClass,dA.fadeInClass])}),r.get().each(function(n){!function(t,e){var o=pr(e);Ca(o).filter(function(n){return!jt(e,n)}).filter(function(n){return jt(n,Be.fromDom(o.dom().body))||to(t,n)}).each(function(){return Sa(e)})}(t.element(),n),r.set(on.none())})},onHide:function(n){r.set(function(n,t){return ka(n).orThunk(function(){return t().toOption().bind(function(n){return ka(n.element())})})}(n.element(),e)),o(function(n){return jD(n,!1)})},onHidden:function(){o(function(n){return ai(n,[dA.transitionClass])})}},dA),modes:["top"],onDocked:n,onUndocked:n})],t)}function GD(n){return"<alloy.field."+n+">"}function XD(n){return{element:function(){return n.element().dom()}}}function YD(e,o){var r=S(wn(o),function(n){var t=o[n],e=et(function(n){return tt("sidebar",TA,n)}(t));return{name:n,getApi:XD,onSetup:e.onSetup,onShow:e.onShow,onHide:e.onHide}});return S(r,function(n){var t=Ee(Z);return e.slot(n.name,{dom:{tag:"div",classes:["tox-sidebar__pane"]},behaviours:$p([Ep(n,t),Dp(n,t),rr(jo(),function(t,n){var e=n.event();T(r,function(n){return n.name===e.name()}).each(function(n){(e.visible()?n.onShow:n.onHide)(n.getApi(t))})})])})})}function qD(n,t){nd.getCurrent(n).each(function(n){return gg.set(n,[function(t){return OA.sketch(function(n){return{dom:{tag:"div",classes:["tox-sidebar__pane-container"]},components:YD(n,t),slotBehaviours:$p([Ri(function(n){return OA.hideAllSlots(n)})])}})}(t)])})}function KD(n){return nd.getCurrent(n).bind(function(n){return gE.isGrowing(n)||gE.hasGrown(n)?nd.getCurrent(n).bind(function(t){return T(OA.getSlotNames(t),function(n){return OA.isShowing(t,n)})}):on.none()})}function JD(n,t,e){var o=n.element();!0===t?(gg.set(n,[function(n){return{dom:{tag:"div",attributes:{"aria-label":n.translate("Loading...")},classes:["tox-throbber__busy-spinner"]},components:[{dom:sp('<div class="tox-spinner"><div></div><div></div><div></div></div>')}],behaviours:ya([dg.config({mode:"special",onTab:function(){return on.some(!0)},onShiftTab:function(){return on.some(!0)}}),bg.config({})])}}(e)]),hi(o,"display"),Ir(o,"aria-hidden")):(gg.set(n,[]),li(o,"display","none"),_r(o,"aria-hidden","true"))}function $D(n){return"string"==typeof n?n.split(" "):n}function QD(e,o){var r=An(NA,o.menus),t=0<wn(o.menus).length,n=o.menubar===undefined||!0===o.menubar?$D("file edit view insert format tools table help"):$D(!1===o.menubar?"":o.menubar),i=C(n,function(n){return t&&o.menus.hasOwnProperty(n)&&o.menus[n].hasOwnProperty("items")||NA.hasOwnProperty(n)}),u=S(i,function(n){var t=r[n];return function(n,e,t){var o=function(n){return n.getParam("removed_menuitems","")}(t).split(/[ ,]/);return{text:n.title,getItems:function(){return D(n.items,function(n){var t=n.toLowerCase();return 0===t.trim().length?[]:x(o,function(n){return n===t})?[]:"separator"===t||"|"===t?[{type:"separator"}]:e.menuItems[t]?[e.menuItems[t]]:[]})}}}({title:t.title,items:$D(t.items)},o,e)});return C(u,function(n){return 0<n.getItems().length&&x(n.getItems(),function(n){return"separator"!==n.type})})}function ZD(n,t){var e,o=function(n){var t=n.settings,e=t.skin,o=t.skin_url;if(!1!==e){var r=e||"oxide";o=o?n.documentBaseURI.toAbsolute(o):Xb.baseURL+"/skins/ui/"+r}return o}(t);o&&(e=o+"/skin.min.css",t.contentCSS.push(o+(n?"/content.inline":"/content")+".min.css")),!1===function(n){return!1===n.getParam("skin")}(t)&&e?Vh.DOM.styleSheetLoader.load(e,HA(t)):HA(t)()}function nB(t,n,e,o){var r=n.outerContainer,i=e.toolbar,u=e.buttons;if(h(i,cn)){var a=i.map(function(n){return bD(t,{toolbar:n,buttons:u},{backstage:o},on.none())});VA.setToolbars(r,a)}else VA.setToolbar(r,bD(t,e,{backstage:o},on.none()))}function tB(n){return function(n){var t=Ib(n),e=Nb(n),o=Pb(n);return XA(t).map(function(n){return GA(n,e,o)})}(n).getOr(Ib(n))}function eB(n){var t=Rb(n),e=Vb(n),o=Hb(n);return XA(t).map(function(n){return GA(n,e,o)})}function oB(n,t){return function(){n.execCommand("mceToggleFormat",!1,t)}}function rB(n){!function(e){Ok.each([{name:"bold",text:"Bold",icon:"bold"},{name:"italic",text:"Italic",icon:"italic"},{name:"underline",text:"Underline",icon:"underline"},{name:"strikethrough",text:"Strikethrough",icon:"strike-through"},{name:"subscript",text:"Subscript",icon:"subscript"},{name:"superscript",text:"Superscript",icon:"superscript"}],function(n,t){e.ui.registry.addToggleButton(n.name,{tooltip:n.text,icon:n.icon,onSetup:hT(e,n.name),onAction:oB(e,n.name)})});for(var n=1;n<=6;n++){var t="h"+n;e.ui.registry.addToggleButton(t,{text:t.toUpperCase(),tooltip:"Heading "+n,onSetup:hT(e,t),onAction:oB(e,t)})}}(n),function(t){Ok.each([{name:"cut",text:"Cut",action:"Cut",icon:"cut"},{name:"copy",text:"Copy",action:"Copy",icon:"copy"},{name:"paste",text:"Paste",action:"Paste",icon:"paste"},{name:"help",text:"Help",action:"mceHelp",icon:"help"},{name:"selectall",text:"Select all",action:"SelectAll",icon:"select-all"},{name:"newdocument",text:"New document",action:"mceNewDocument",icon:"new-document"},{name:"removeformat",text:"Clear formatting",action:"RemoveFormat",icon:"remove-formatting"},{name:"remove",text:"Remove",action:"Delete",icon:"remove"}],function(n){t.ui.registry.addButton(n.name,{tooltip:n.text,icon:n.icon,onAction:function(){return t.execCommand(n.action)}})})}(n),function(t){Ok.each([{name:"blockquote",text:"Blockquote",action:"mceBlockQuote",icon:"quote"}],function(n){t.ui.registry.addToggleButton(n.name,{tooltip:n.text,icon:n.icon,onAction:function(){return t.execCommand(n.action)},onSetup:hT(t,n.name)})})}(n)}function iB(n,t,e){function o(){return!!t.undoManager&&t.undoManager[e]()}function r(){n.setDisabled(t.readonly||!o())}return n.setDisabled(!o()),t.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",r),function(){return t.off("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",r)}}function uB(n,t){return{anchor:"makeshift",x:n,y:t}}function aB(n){return"longpress"===n.type||0===n.type.indexOf("touch")}function cB(n,t){var e=Vh.DOM.getPos(n);return function(n,t,e){return uB(n.x+t,n.y+e)}(t,e.x,e.y)}function sB(n,t){return"contextmenu"===t.type?n.inline?function(n){if(aB(n)){var t=n.touches[0];return uB(t.pageX,t.pageY)}return uB(n.pageX,n.pageY)}(t):cB(n.getContentAreaContainer(),function(n){if(aB(n)){var t=n.touches[0];return uB(t.clientX,t.clientY)}return uB(n.clientX,n.clientY)}(t)):e_(n)}function fB(n){return{anchor:"node",node:on.some(Be.fromDom(n.selection.getNode())),root:Be.fromDom(n.getBody())}}function lB(n,t,e,o,r,i){var u=e(),a=function(n,t,e){return e?fB(n):sB(n,t)}(n,t,i);UC(u,Ih.CLOSE_ON_EXECUTE,o,!1).map(function(n){t.preventDefault(),Ug.showMenuAt(r,a,{menu:{markers:Sv("normal")},data:n})})}function dB(t,e,n,o,r,i){var u=function(n,t){var e=t?fB(n):e_(n);return N({bubble:Ta(0,12,r_),layouts:o_,overrides:{maxWidthFunction:LT(),maxHeightFunction:kf()}},e)}(t,i);UC(n,Ih.CLOSE_ON_EXECUTE,o,!0).map(function(n){e.preventDefault(),Ug.showMenuWithinBounds(r,u,{menu:{markers:Sv("normal")},data:n,type:"horizontal"},function(){return on.some(gT(t))}),t.fire(ZT)})}function mB(t,e,o,r,i,u){function n(){var n=o();dB(t,e,n,r,i,u)}var a=Ht(),c=a.os.isiOS(),s=a.os.isOSX(),f=a.os.isAndroid();if(!s&&!c||u)f&&!u&&t.selection.setCursorLocation(e.target,0),n();else{var l=function(){!function(n){function t(){Kg.setEditorTimeout(n,function(){n.selection.setRng(e)},10),i()}var e=n.selection.getRng();n.once("touchend",t);function o(n){n.preventDefault(),n.stopImmediatePropagation()}n.on("mousedown",o,!0);function r(){return i()}n.once("longpresscancel",r);var i=function(){n.off("touchend",t),n.off("longpresscancel",r),n.off("mousedown",o)}}(t),n()};!function(n,t){var e=n.selection;if(e.isCollapsed()||t.touches.length<1)return!1;var o=t.touches[0],r=e.getRng();return Wc(n.getWin(),Dc.domRange(r)).exists(function(n){return n.left()<=o.clientX&&n.right()>=o.clientX&&n.top()<=o.clientY&&n.bottom()>=o.clientY})}(t,e)?(t.once("selectionchange",l),t.once("touchend",function(){return t.off("selectionchange",l)})):l()}}function gB(n){return"string"==typeof n?n.split(/[ ,]/):n}function pB(n){return cn(n)?"|"===n:"separator"===n.type}function hB(n,t){if(0===t.length)return n;var e=F(n).filter(function(n){return!pB(n)}).fold(function(){return[]},function(n){return[c_]});return n.concat(e).concat(t).concat([c_])}function vB(i,n,t){function e(n){return Ug.hide(a)}function o(o){var n="longpress"===o.type;if(i_(i)&&o.preventDefault(),!function(n,t){return t.ctrlKey&&!i_(n)}(i,o)&&!a_(i)){var r=!n&&(2!==o.button||o.target===i.getBody());(u()?mB:lB)(i,o,function(){var n=r?i.selection.getStart(!0):o.target,t=i.ui.registry.getAll(),e=u_(i);return function(r,n,i){var t=O(n,function(n,t){if(Tn(r,t)){var e=r[t].update(i);if(cn(e))return hB(n,e.split(" "));if(0<e.length){var o=S(e,s_);return hB(n,o)}return n}return n.concat([t])},[]);return 0<t.length&&pB(t[t.length-1])&&t.pop(),t}(t.contextMenus,e,n)},t,a,r)}}var u=Ht().deviceType.isTouch,a=au(Ug.sketch({dom:{tag:"div"},lazySink:n,onEscape:function(){return i.focus()},onShow:function(){return t.setContextMenuState(!0)},onHide:function(){return t.setContextMenuState(!1)},fireDismissalEventInstead:{},inlineBehaviours:ya([Jd("dismissContextMenu",[rr(Po(),function(n,t){Lf.close(n),i.focus()})])])}));i.on("init",function(){var n="ResizeEditor ScrollContent ScrollWindow longpresscancel"+(u()?"":" ResizeWindow");i.on(n,e),i.on(u()?"longpress":"longpress contextmenu",o)})}function bB(n,t){n.getSystem().addToGui(t),function(n){br(n.element()).filter(Ai).each(function(t){gi(t,"z-index").each(function(n){_r(t,f_,n)}),li(t,"z-index",mi(n.element(),"z-index"))})}(t)}function yB(n){!function(n){br(n.element()).filter(Ai).each(function(n){var t=Mr(n,f_);Fr(n,f_)?li(n,"z-index",t):hi(n,"z-index"),Ir(n,f_)})}(n),n.getSystem().removeFromGui(n)}function xB(n,t,e){return n.getSystem().build(Gb.sketch({dom:{styles:{left:"0px",top:"0px",width:"100%",height:"100%",position:"fixed","z-index":"1000000000000000"},classes:[t]},events:e}))}function wB(n,t,e,o){return function(n,t){var e=n.element(),o=parseInt(Mr(e,t.leftAttr),10),r=parseInt(Mr(e,t.topAttr),10);return isNaN(o)||isNaN(r)?on.none():on.some(Ru(o,r))}(n,t).fold(function(){return e},function(n){return iA(n.left()+o.left(),n.top()+o.top())})}function SB(n,t,e,o,r,i){var u=wB(n,t,e,o),a=t.mustSnap?l_(n,t,u,r,i):d_(n,t,u,r,i),c=CD(u,r,i);return function(n,t,e){var o=n.element();_r(o,t.leftAttr,e.left()+"px"),_r(o,t.topAttr,e.top()+"px")}(n,t,c),a.fold(function(){return{coord:iA(c.left(),c.top()),extra:on.none()}},function(n){return{coord:n.output(),extra:n.extra()}})}function CB(n,t){!function(n,t){var e=n.element();Ir(e,t.leftAttr),Ir(e,t.topAttr)}(n,t)}function kB(n,e,o,r){return Au(n,function(n){var t=n.sensor();return function(n,t,e,o,r,i){var u=kD(n,r,i),a=kD(t,r,i);return Math.abs(u.left()-a.left())<=e&&Math.abs(u.top()-a.top())<=o}(e,t,n.range().left(),n.range().top(),o,r)?on.some({output:nn(ED(n.output(),e,o,r)),extra:n.extra}):on.none()})}function OB(t){return function(n,t,e,o){return n.isSome()&&t.isSome()&&e.isSome()?on.some(o(n.getOrDie(),t.getOrDie(),e.getOrDie())):on.none()}(gi(t,"left"),gi(t,"top"),gi(t,"position"),function(n,t,e){return("fixed"===e?iA:oA)(parseInt(n,10),parseInt(t,10))}).getOrThunk(function(){var n=mu(t);return rA(n.left(),n.top())})}function TB(e,n,o,r,i,u,t){return function(n,t,e,o,r){var i=r.bounds,u=kD(t,e,o),a=as(u.left(),i.x(),i.x()+i.width()-r.width),c=as(u.top(),i.y(),i.y()+i.height()-r.height),s=rA(a,c);return t.fold(function(){var n=OD(s,e,o);return oA(n.left(),n.top())},function(){return s},function(){var n=CD(s,e,o);return iA(n.left(),n.top())})}(0,n.fold(function(){var n=function(n,e,o){return n.fold(function(n,t){return eA.offset(n+e,t+o)},function(n,t){return eA.absolute(n+e,t+o)},function(n,t){return eA.fixed(n+e,t+o)})}(o,u.left(),u.top()),t=CD(n,r,i);return iA(t.left(),t.top())},function(t){var n=SB(e,t,o,u,r,i);return n.extra.each(function(n){t.onSensor(e,n)}),n.coord}),r,i,t)}function EB(n,t){return{bounds:n.getBounds(),height:lu(t.element()),width:pu(t.element())}}function DB(t,e,n,o,r){var i=n.update(o,r),u=n.getStartData().getOrThunk(function(){return EB(e,t)});i.each(function(n){!function(n,t,e,o){var r=t.getTarget(n.element());if(t.repositionTarget){var i=pr(n.element()),u=hu(i),a=yD(r),c=OB(r),s=TB(n,t.snaps,c,u,a,o,e),f=TD(s,0,a);di(r,f)}t.onDrag(n,r,o)}(t,e,u,n)})}function BB(t,n,e,o){n.each(yB),e.snaps.each(function(n){CB(t,n)});var r=e.getTarget(t.element());o.reset(),e.onDrop(t,r)}function AB(n,r,i,u,t,e){return n.fold(function(){return S_.snap({sensor:rA(i-20,u-20),range:Ru(t,e),output:rA(on.some(i),on.some(u)),extra:{td:r}})},function(n){var t=i-20,e=u-20,o=n.element().dom().getBoundingClientRect();return S_.snap({sensor:rA(t,e),range:Ru(40,40),output:rA(on.some(i-o.width/2),on.some(u-o.height/2)),extra:{td:r}})})}function _B(n,o,r){return{getSnapPoints:n,leftAttr:"data-drag-left",topAttr:"data-drag-top",onSensor:function(n,t){var e=t.td;!function(n,t){return n.exists(function(n){return jt(n,t)})}(o.get(),e)&&(o.set(on.some(e)),r(e))},mustSnap:!0}}function MB(n){return bm(Xg.sketch({dom:{tag:"div",classes:["tox-selector"]},buttonBehaviours:ya([S_.config({mode:C_.deviceType.isTouch()?"touch":"mouse",blockerClass:"blocker",snaps:n}),Ew.config({})]),eventOrder:{mousedown:["dragging","alloy.base.behaviour"],touchstart:["dragging","alloy.base.behaviour"]}}))}var FB,IB,RB,VB,NB,HB=[{title:"Left",icon:"align-left",format:"alignleft"},{title:"Center",icon:"align-center",format:"aligncenter"},{title:"Right",icon:"align-right",format:"alignright"},{title:"Justify",icon:"align-justify",format:"alignjustify"}],PB=["-apple-system","Segoe UI","Roboto","Helvetica Neue","sans-serif"],zB={"8pt":"1","10pt":"2","12pt":"3","14pt":"4","18pt":"5","24pt":"6","36pt":"7"},LB=[{name:"history",items:["undo","redo"]},{name:"styles",items:["styleselect"]},{name:"formatting",items:["bold","italic"]},{name:"alignment",items:["alignleft","aligncenter","alignright","alignjustify"]},{name:"indentation",items:["outdent","indent"]},{name:"permanent pen",items:["permanentpen"]},{name:"comments",items:["addcomment"]}],jB={button:pD(eT,function(n,t){return function(n,t){return JE(n,t,[])}(n,t.backstage.shared.providers)}),togglebutton:pD(rT,function(n,t){return function(n,t){return $E(n,t,[])}(n,t.backstage.shared.providers)}),menubutton:pD(oT,function(n,t){return GC(n,"tox-tbtn",t.backstage,on.none())}),splitbutton:pD(function(n){return tt("SplitButton",TE,n)},function(n,t){return fT(n,t.backstage.shared)}),styleSelectButton:function(n,t){return function(n,t){var e=N({type:"advanced"},t.styleselect);return yT(n,t,gD(n,e))}(n,t.backstage)},fontsizeSelectButton:function(n,t){return function(n,t){return yT(n,t,fD(n))}(n,t.backstage)},fontSelectButton:function(n,t){return function(n,t){return yT(n,t,cD(n))}(n,t.backstage)},formatButton:function(n,t){return function(n,t){return yT(n,t,mD(n))}(n,t.backstage)},alignMenuButton:function(n,t){return function(n,t){return yT(n,t,uD(n))}(n,t.backstage)}},UB={styleselect:jB.styleSelectButton,fontsizeselect:jB.fontsizeSelectButton,fontselect:jB.fontSelectButton,formatselect:jB.formatButton,align:jB.alignMenuButton},WB={valignCentre:[],alignCentre:[],alignLeft:["tox-pop--align-left"],alignRight:["tox-pop--align-right"],right:["tox-pop--right"],left:["tox-pop--left"],bottom:["tox-pop--bottom"],top:["tox-pop--top"]},GB={maxHeightFunction:kf(),maxWidthFunction:LT()},XB={onLtr:function(){return[rc,ic,sa,aa,fa,ca,Wg,Gg,hm,gm,vm,pm]},onRtl:function(){return[rc,ic,fa,ca,sa,aa,Wg,Gg,vm,pm,hm,gm]}},YB={onLtr:function(){return[ic,aa,ca,sa,fa,rc,Wg,Gg,hm,gm,vm,pm]},onRtl:function(){return[ic,ca,aa,fa,sa,rc,Wg,Gg,vm,pm,hm,gm]}},qB=function(u,n,e,a){function c(){return gT(u)}function s(){if(l()&&a.backstage.isContextMenuOpen())return!0;var n=function(){var n=g.get().map(function(n){return n.getBoundingClientRect()}).getOrThunk(function(){return u.selection.getRng().getBoundingClientRect()}),t=u.inline?hu().top():Su(Be.fromDom(u.getBody())).y();return{y:n.top+t,bottom:n.bottom+t}}(),t=c();return!function(n,t,e,o){return Math.max(n,e)<=Math.min(t,o)}(n.y,n.bottom,t.y(),t.bottom())}function t(){Ug.hide(d)}function o(){m.get().each(function(n){var t=d.element();hi(t,"display"),s()?li(t,"display","none"):_f.positionWithinBounds(e,n,d,on.some(c()))})}function f(n){return{dom:{tag:"div",classes:["tox-pop__dialog"]},components:[n],behaviours:ya([dg.config({mode:"acyclic"}),Jd("pop-dialog-wrap-events",[Ri(function(n){u.shortcuts.add("ctrl+F9","focus statusbar",function(){return dg.focusIn(n)})}),Vi(function(n){u.shortcuts.remove("ctrl+F9")})])])}}var l=Ht().deviceType.isTouch,d=au(function(n){var e=Ee([]);return Ug.sketch({dom:{tag:"div",classes:["tox-pop"]},fireDismissalEventInstead:{event:"doNotDismissYet"},onShow:function(n){e.set([]),Ug.getContent(n).each(function(n){hi(n.element(),"visibility")}),ri(n.element(),rD),hi(n.element(),"width")},inlineBehaviours:ya([Jd("context-toolbar-events",[fr(yo(),function(n,t){Ug.getContent(n).each(function(n){}),ri(n.element(),rD),hi(n.element(),"width")}),rr(oD,function(t,e){hi(t.element(),"width");var n=gu(t.element());Ug.setContent(t,e.event().contents()),ei(t.element(),rD);var o=gu(t.element());li(t.element(),"width",n+"px"),Ug.getContent(t).each(function(n){e.event().focus().bind(function(n){return Sa(n),ka(t.element())}).orThunk(function(){return dg.focusIn(n),Ca()})}),Kg.setTimeout(function(){li(t.element(),"width",o+"px")},0)}),rr(tD,function(n,t){Ug.getContent(n).each(function(n){e.set(e.get().concat([{bar:n,focus:Ca()}]))}),qt(n,oD,{contents:t.event().forwardContents(),focus:on.none()})}),rr(eD,function(t,n){F(e.get()).each(function(n){e.set(e.get().slice(0,e.get().length-1)),qt(t,oD,{contents:cu(n.bar),focus:n.focus})})})]),dg.config({mode:"special",onEscape:function(t){return F(e.get()).fold(function(){return n.onEscape()},function(n){return Yt(t,eD),on.some(!0)})}})]),lazySink:function(){return an.value(n.sink)}})}({sink:e,onEscape:function(){return u.focus(),on.some(!0)}})),m=Ee(on.none()),g=Ee(on.none()),r=Ee(null),p=L(function(){return nD(n,function(n){var t=h(n);qt(d,tD,{forwardContents:f(t)})})}),h=function(n){var t,e,o=u.ui.registry.getAll().buttons,r=qb(u)===Ub.scrolling?Ub.scrolling:Ub["default"],i=p();return"contexttoolbar"===n.type?(t=An(o,i.formNavigators),e=bD(u,{buttons:t,toolbar:n.items},a,on.some(["form:"])),tT({type:r,uid:Hr("context-toolbar"),initGroups:e,onEscape:on.none,cyclicKeying:!0,backstage:a.backstage,getSink:function(){return an.error("")}})):QE(r,n,a.backstage)};u.on("contexttoolbar-show",function(t){var n=p();Nn(n.lookupTable,t.toolbarKey).each(function(n){y(n,t.target===u?on.none():on.some(t)),Ug.getContent(d).each(dg.focusIn)})});function v(n,t){var e="node"===n?a.backstage.shared.anchors.node(t):a.backstage.shared.anchors.cursor();return Bn(e,function(n,t){return"line"===n?{bubble:Ta(12,0,WB),layouts:{onLtr:function(){return[la]},onRtl:function(){return[da]}},overrides:GB}:{bubble:Ta(0,12,WB),layouts:t?YB:XB,overrides:GB}}(n,l()))}function i(){var n=p();ZE(n,u).fold(function(){m.set(on.none()),Ug.hide(d)},function(n){y(n.toolbarApi,on.some(n.elem.dom()))})}function b(n){x(),r.set(n)}var y=function(n,t){if(x(),!l()||!a.backstage.isContextMenuOpen()){var e=h(n),o=t.map(Be.fromDom),r=v(n.position,o);m.set(on.some(r)),g.set(t);var i=d.element();hi(i,"display"),Ug.showWithinBounds(d,r,f(e),function(){return on.some(c())}),s()&&li(i,"display","none")}},x=function(){var n=r.get();null!==n&&(Kg.clearTimeout(n),r.set(null))};u.on("init",function(){u.on(ZT,t),u.on("ScrollContent ScrollWindow longpress",o),u.on("click keyup SetContent ObjectResized ResizeEditor",function(n){b(Kg.setEditorTimeout(u,i,0))}),u.on("focusout",function(n){Kg.setEditorTimeout(u,function(){ka(e.element()).isNone()&&ka(d.element()).isNone()&&(m.set(on.none()),Ug.hide(d))},0)}),u.on("SwitchMode",function(){u.readonly&&(m.set(on.none()),Ug.hide(d))}),u.on("NodeChange",function(n){ka(d.element()).fold(function(){b(Kg.setEditorTimeout(u,i,0))},function(n){})})})},KB=function(n,o,r){function t(t,e){bn([o,r],function(n){n.broadcastEvent(t,e)})}function e(t,e){bn([o,r],function(n){n.broadcastOn([t],e)})}function i(n){return e(jf(),{target:n.target()})}function u(n){return e(jf(),{target:Be.fromDom(n.target)})}function a(n){0===n.button&&e(Wf(),{target:Be.fromDom(n.target)})}function c(n){return t(Ro(),hb(n))}function s(n){e(Uf(),{}),t(Vo(),hb(n))}function f(){return e(Uf(),{})}var l=fb(Be.fromDom(v.document),"touchstart",i),d=fb(Be.fromDom(v.document),"touchmove",function(n){return t(Fo(),n)}),m=fb(Be.fromDom(v.document),"touchend",function(n){return t(Io(),n)}),g=fb(Be.fromDom(v.document),"mousedown",i),p=fb(Be.fromDom(v.document),"mouseup",function(n){0===n.raw().button&&e(Wf(),{target:n.target()})});n.on("PostRender",function(){n.on("click",u),n.on("tap",u),n.on("mouseup",a),n.on("ScrollWindow",c),n.on("ResizeWindow",s),n.on("ResizeEditor",f)}),n.on("remove",function(){n.off("click",u),n.off("tap",u),n.off("mouseup",a),n.off("ScrollWindow",c),n.off("ResizeWindow",s),n.off("ResizeEditor",f),g.unbind(),l.unbind(),d.unbind(),m.unbind(),p.unbind()}),n.on("detach",function(){Ss(o),Ss(r),o.destroy(),r.destroy()})},JB=Dl,$B=Tl,QB=nn([St("shell",!1),ct("makeItem"),St("setupItem",Z),tl("listBehaviours",[gg])]),ZB=Cl({name:"items",overrides:function(n){return{behaviours:ya([gg.config({})])}}}),nA=nn([ZB]),tA=_l({name:nn("CustomList")(),configFields:QB(),partFields:nA(),factory:function(s,n,t,e){var o=s.shell?{behaviours:[gg.config({})],components:[]}:{behaviours:[],components:n},r=function(n){return s.shell?on.some(n):Ks(n,s,"items")};return{uid:s.uid,dom:s.dom,components:o.components,behaviours:Vs(s.listBehaviours,o.behaviours),apis:{setItems:function(a,c){r(a).fold(function(){throw v.console.error("Custom List was defined to not be a shell, but no item container was specified in components"),new Error("Custom List was defined to not be a shell, but no item container was specified in components")},function(t){var n=gg.contents(t),e=c.length,o=e-n.length,r=0<o?function(n,t){for(var e=[],o=0;o<n;o++)e.push(t(o));return e}(o,function(){return s.makeItem()}):[],i=n.slice(e);bn(i,function(n){return gg.remove(t,n)}),bn(r,function(n){return gg.append(t,n)});var u=gg.contents(t);bn(u,function(n,t){s.setupItem(a,n,c[t],t)})})}}}},apis:{setItems:function(n,t,e){n.setItems(t,e)}}}),eA=En([{offset:["x","y"]},{absolute:["x","y"]},{fixed:["x","y"]}]),oA=eA.offset,rA=eA.absolute,iA=eA.fixed,uA=En([{"static":[]},{absolute:["x","y"]},{fixed:["x","y"]}]),aA=function(n,t,e){n.getSystem().isConnected()&&function(e,o,r){var i=o.lazyViewport(e),n=e.element(),t=pr(n),u=hu(t),a=L(function(){return yD(n)}),c=r.isDocked();c&&HD(e,o,r,i),RD(e,o,i,u,a).each(function(n){r.setDocked(!c),n.fold(function(){return VD(e,o)},function(n,t){return ND(e,o,0,a(),rA(n,t))},function(n,t){HD(e,o,r,i,!0),ND(e,o,0,a(),iA(n,t))})})}(n,t,e)},cA=/* */Object.freeze({refresh:aA,reset:zD,isDocked:function(n,t,e){return e.isDocked()}}),sA=/* */Object.freeze({events:function(o,r){return tr([fr(yo(),function(t,e){o.contextual.each(function(n){ii(t.element(),n.transitionClass)&&(ai(t.element(),[n.transitionClass,n.fadeInClass]),(r.isVisible()?n.onShown:n.onHidden)(t));e.stop()})}),rr(Ro(),function(n,t){aA(n,o,r)}),rr(Vo(),function(n,t){zD(n,o,r)})])}}),fA=[wt("contextual",[ft("fadeInClass"),ft("fadeOutClass"),ft("transitionClass"),dt("lazyContext"),Ku("onShow"),Ku("onShown"),Ku("onHide"),Ku("onHidden")]),Dt("lazyViewport",Cu),ft("leftAttr"),ft("topAttr"),ft("positionAttr"),(FB="modes",IB=["top","bottom"],RB=Se,Ct(FB,IB,Kn(RB))),Ku("onDocked"),Ku("onUndocked")],lA=xa({fields:fA,name:"docking",active:sA,apis:cA,state:/* */Object.freeze({init:function(){var t=Ee(!1),e=Ee(!0);return tu({isDocked:function(){return t.get()},setDocked:function(n){return t.set(n)},isVisible:function(){return e.get()},setVisible:function(n){return e.set(n)},readState:function(){return"docked: "+t.get()+", visible: "+e.get()}})}})}),dA={fadeInClass:"tox-editor-dock-fadein",fadeOutClass:"tox-editor-dock-fadeout",transitionClass:"tox-editor-dock-transition"},mA="tox-tinymce--toolbar-sticky-on",gA="tox-tinymce--toolbar-sticky-off",pA=/* */Object.freeze({setup:function(n,t){n.inline||(n.on("ResizeWindow ResizeEditor ResizeContent",function(){t().each(LD)}),n.on("SkinLoaded",function(){t().each(lA.reset)}),n.on("FullscreenStateChanged",function(){t().each(lA.refresh)})),n.on("PostRender",function(){UD(n,!1)})},isDocked:function(n){return n().map(lA.isDocked).getOr(!1)},getBehaviours:WD}),hA=Z,vA=u,bA=nn([]),yA=/* */Object.freeze({setup:hA,isDocked:vA,getBehaviours:bA}),xA=Al({factory:function(t,o){var n={focus:dg.focusIn,setMenus:function(n,t){var e=S(t,function(t){var n={type:"menubutton",text:t.text,fetch:function(n){n(t.getItems())}},e=oT(n).mapError(function(n){return ye(n)}).getOrDie();return GC(e,"tox-mbtn",o.backstage,on.some("menuitem"))});gg.set(n,e)}};return{uid:t.uid,dom:t.dom,components:[],behaviours:ya([gg.config({}),Jd("menubar-events",[Ri(function(n){t.onSetup(n)}),rr(fo(),function(e,n){Ou(e.element(),".tox-mbtn--active").each(function(t){Tu(n.event().target(),".tox-mbtn").each(function(n){jt(t,n)||e.getSystem().getByDom(t).each(function(t){e.getSystem().getByDom(n).each(function(n){Tw.expand(n),Tw.close(t),bg.focus(n)})})})})}),rr(Lo(),function(e,n){n.event().prevFocus().bind(function(n){return e.getSystem().getByDom(n).toOption()}).each(function(t){n.event().newFocus().bind(function(n){return e.getSystem().getByDom(n).toOption()}).each(function(n){Tw.isOpen(t)&&(Tw.expand(n),Tw.close(t))})})})]),dg.config({mode:"flow",selector:".tox-mbtn",onEscape:function(n){return t.onEscape(n),on.some(!0)}}),Xy.config({})]),apis:n,domModification:{attributes:{role:"menubar"}}}},name:"silver.Menubar",configFields:[ct("dom"),ct("uid"),ct("onEscape"),ct("backstage"),St("onSetup",Z)],apis:{focus:function(n,t){n.focus(t)},setMenus:function(n,t,e){n.setMenus(t,e)}}}),wA="container",SA=[Is("slotBehaviours",[])],CA=function(r,n,t){function e(n){return Zs(r)}function o(e,o){return void 0===o&&(o=undefined),function(n,t){return Ks(n,r,t).map(function(n){return e(n,t)}).getOr(o)}}function i(n,t){return"true"!==Mr(n.element(),"aria-hidden")}var u,a=o(i,!1),c=o(function(n,t){if(i(n)){var e=n.element();li(e,"display","none"),_r(e,"aria-hidden","true"),qt(n,jo(),{name:t,visible:!1})}}),s=(u=c,function(t,n){bn(n,function(n){return u(t,n)})}),f=o(function(n,t){if(!i(n)){var e=n.element();hi(e,"display"),Ir(e,"aria-hidden"),qt(n,jo(),{name:t,visible:!0})}}),l={getSlotNames:e,getSlot:function(n,t){return Ks(n,r,t)},isShowing:a,hideSlot:c,hideAllSlots:function(n){return s(n,e())},showSlot:f};return{uid:r.uid,dom:r.dom,components:n,behaviours:Rs(r.slotBehaviours),apis:l}},kA=P({getSlotNames:function(n,t){return n.getSlotNames(t)},getSlot:function(n,t,e){return n.getSlot(t,e)},isShowing:function(n,t,e){return n.isShowing(t,e)},hideSlot:function(n,t,e){return n.hideSlot(t,e)},hideAllSlots:function(n,t){return n.hideAllSlots(t)},showSlot:function(n,t,e){return n.showSlot(t,e)}},Ur),OA=N(N({},kA),{sketch:function(n){var e,t=(e=[],{slot:function(n,t){return e.push(n),Ws(wA,GD(n),t)},record:function(){return e}}),o=n(t),r=t.record(),i=S(r,function(n){return wl({name:n,pname:GD(n)})});return rf(wA,SA,i,CA,o)}}),TA=de([yt("icon"),yt("tooltip"),Dt("onShow",Z),Dt("onHide",Z),Dt("onSetup",function(){return Z})]),EA=Hr("FixSizeEvent"),DA=Hr("AutoSizeEvent"),BA=$B.optional({factory:xA,name:"menubar",schema:[ct("backstage")]}),AA=$B.optional({factory:{sketch:function(n){return tA.sketch({uid:n.uid,dom:n.dom,listBehaviours:ya([dg.config({mode:"acyclic",selector:".tox-toolbar"})]),makeItem:function(){return tT({type:n.split,uid:Hr("multiple-toolbar-item"),backstage:n.backstage,cyclicKeying:!1,getSink:n.getSink,initGroups:[],onEscape:function(){return on.none()}})},setupItem:function(n,t,e,o){eE.setGroups(t,e)},shell:!0})}},name:"multiple-toolbar",schema:[ct("dom"),ct("onEscape")]}),_A=$B.optional({factory:{sketch:function(n){return function(n){return n.split===Ub.sliding?nT:n.split===Ub.floating?ZO:tT}(n)({type:n.split,uid:n.uid,onEscape:function(){return n.onEscape(),on.some(!0)},cyclicKeying:!1,initGroups:[],getSink:n.getSink,backstage:n.backstage,moreDrawerData:{lazyToolbar:n.lazyToolbar,lazyMoreButton:n.lazyMoreButton,lazyHeader:n.lazyHeader}})}},name:"toolbar",schema:[ct("dom"),ct("onEscape"),ct("getSink")]}),MA=$B.optional({factory:{sketch:function(n){var t=n.editor,e=n.sticky?WD:bA;return{uid:n.uid,dom:n.dom,components:n.components,behaviours:ya(e(t,n.getSink))}}},name:"header",schema:[ct("dom")]}),FA=$B.optional({name:"socket",schema:[ct("dom")]}),IA=$B.optional({factory:{sketch:function(n){return{uid:n.uid,dom:{tag:"div",classes:["tox-sidebar"],attributes:{role:"complementary"}},components:[{dom:{tag:"div",classes:["tox-sidebar__slider"]},components:[],behaviours:ya([Xy.config({}),bg.config({}),gE.config({dimension:{property:"width"},closedClass:"tox-sidebar--sliding-closed",openClass:"tox-sidebar--sliding-open",shrinkingClass:"tox-sidebar--sliding-shrinking",growingClass:"tox-sidebar--sliding-growing",onShrunk:function(n){nd.getCurrent(n).each(OA.hideAllSlots),Yt(n,DA)},onGrown:function(n){Yt(n,DA)},onStartGrow:function(n){qt(n,EA,{width:gi(n.element(),"width").getOr("")})},onStartShrink:function(n){qt(n,EA,{width:gu(n.element())+"px"})}}),gg.config({}),nd.config({find:function(n){var t=gg.contents(n);return yn(t)}})])}],behaviours:ya([DS(0),Jd("sidebar-sliding-events",[rr(EA,function(n,t){li(n.element(),"width",t.event().width())}),rr(DA,function(n,t){hi(n.element(),"width")})])])}}},name:"sidebar",schema:[ct("dom")]}),RA=$B.optional({factory:{sketch:function(n){return{uid:n.uid,dom:{tag:"div",attributes:{"aria-hidden":"true"},classes:["tox-throbber"],styles:{display:"none"}},behaviours:ya([gg.config({})]),components:[]}}},name:"throbber",schema:[ct("dom")]}),VA=_l({name:"OuterContainer",factory:function(e,n,t){var o={getSocket:function(n){return JB.getPart(n,e,"socket")},setSidebar:function(n,t){JB.getPart(n,e,"sidebar").each(function(n){return qD(n,t)})},toggleSidebar:function(n,t){JB.getPart(n,e,"sidebar").each(function(n){return function(n,e){nd.getCurrent(n).each(function(t){nd.getCurrent(t).each(function(n){gE.hasGrown(t)?OA.isShowing(n,e)?gE.shrink(t):(OA.hideAllSlots(n),OA.showSlot(n,e)):(OA.hideAllSlots(n),OA.showSlot(n,e),gE.grow(t))})})}(n,t)})},whichSidebar:function(n){return JB.getPart(n,e,"sidebar").bind(KD).getOrNull()},getHeader:function(n){return JB.getPart(n,e,"header")},getToolbar:function(n){return JB.getPart(n,e,"toolbar")},setToolbar:function(n,t){JB.getPart(n,e,"toolbar").each(function(n){n.getApis().setGroups(n,t)})},setToolbars:function(n,t){JB.getPart(n,e,"multiple-toolbar").each(function(n){tA.setItems(n,t)})},refreshToolbar:function(n){JB.getPart(n,e,"toolbar").each(function(n){return n.getApis().refresh(n)})},getMoreButton:function(n){return JB.getPart(n,e,"toolbar").bind(function(n){return n.getApis().getMoreButton(n)})},getThrobber:function(n){return JB.getPart(n,e,"throbber")},focusToolbar:function(n){JB.getPart(n,e,"toolbar").orThunk(function(){return JB.getPart(n,e,"multiple-toolbar")}).each(function(n){dg.focusIn(n)})},setMenubar:function(n,t){JB.getPart(n,e,"menubar").each(function(n){xA.setMenus(n,t)})},focusMenubar:function(n){JB.getPart(n,e,"menubar").each(function(n){xA.focus(n)})}};return{uid:e.uid,dom:e.dom,components:n,apis:o,behaviours:e.behaviours}},configFields:[ct("dom"),ct("behaviours")],partFields:[MA,BA,_A,AA,FA,IA,RA],apis:{getSocket:function(n,t){return n.getSocket(t)},setSidebar:function(n,t,e){n.setSidebar(t,e)},toggleSidebar:function(n,t,e){n.toggleSidebar(t,e)},whichSidebar:function(n,t){return n.whichSidebar(t)},getHeader:function(n,t){return n.getHeader(t)},getToolbar:function(n,t){return n.getToolbar(t)},setToolbar:function(n,t,e){var o=S(e,function(n){return JO(n)});n.setToolbar(t,o)},setToolbars:function(n,t,e){var o=S(e,function(n){return S(n,JO)});n.setToolbars(t,o)},getMoreButton:function(n,t){return n.getMoreButton(t)},refreshToolbar:function(n,t){return n.refreshToolbar(t)},getThrobber:function(n,t){return n.getThrobber(t)},setMenubar:function(n,t,e){n.setMenubar(t,e)},focusMenubar:function(n,t){n.focusMenubar(t)},focusToolbar:function(n,t){n.focusToolbar(t)}}}),NA={file:{title:"File",items:"newdocument restoredraft | preview | print | deleteallconversations"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall | searchreplace"},view:{title:"View",items:"code | visualaid visualchars visualblocks | spellchecker | preview fullscreen | showcomments"},insert:{title:"Insert",items:"image link media addcomment pageembed template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align | forecolor backcolor | removeformat"},tools:{title:"Tools",items:"spellchecker spellcheckerlanguage | a11ycheck code wordcount"},table:{title:"Table",items:"inserttable | cell row column | advtablesort | tableprops deletetable"},help:{title:"Help",items:"help"}},HA=function(n){function t(){n._skinLoaded=!0,Hv(n)}return function(){n.initialized?t():n.on("init",t)}},PA=d(ZD,!1),zA=d(ZD,!0),LA=Vh.DOM,jA=Ht(),UA=jA.os.isiOS()&&jA.os.version.major<=12,WA={render:function(e,o,n,t,r){var i=Ee(0);PA(e),function(n,t){Rf(n,t,Cr)}(Be.fromDom(r.targetNode),o.mothership),ws(Mi(),o.uiMothership),e.on("PostRender",function(){nB(e,o,n,t),i.set(e.getWin().innerWidth),VA.setMenubar(o.outerContainer,QD(e,n)),VA.setSidebar(o.outerContainer,n.sidebar),function(r){function n(n){var t=r.getDoc().documentElement,e=u.get(),o=a.get();e.left()!==i.innerWidth||e.top()!==i.innerHeight?(u.set(Ru(i.innerWidth,i.innerHeight)),Lv(r,n)):o.left()===t.offsetWidth&&o.top()===t.offsetHeight||(a.set(Ru(t.offsetWidth,t.offsetHeight)),Lv(r,n))}function t(n){return zv(r,n)}var i=r.getWin(),e=r.getDoc().documentElement,u=Ee(Ru(i.innerWidth,i.innerHeight)),a=Ee(Ru(e.offsetWidth,e.offsetHeight));LA.bind(i,"resize",n),LA.bind(i,"scroll",t);var o=lb(Be.fromDom(r.getBody()),"load",n);r.on("remove",function(){o.unbind(),LA.unbind(i,"resize",n),LA.unbind(i,"scroll",t)})}(e)});var u=VA.getSocket(o.outerContainer).getOrDie("Could not find expected socket element");if(!0===UA){di(u.element(),{overflow:"scroll","-webkit-overflow-scrolling":"touch"});var a=function(e,o){var r=null;return{cancel:function(){null!==r&&(v.clearTimeout(r),r=null)},throttle:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];null===r&&(r=v.setTimeout(function(){e.apply(null,n),r=null},o))}}}(function(){e.fire("ScrollContent")},20);fb(u.element(),"scroll",a.throttle)}YO(e,o),e.addCommand("ToggleSidebar",function(n,t){VA.toggleSidebar(o.outerContainer,t),e.fire("ToggleSidebar")}),e.addQueryValueHandler("ToggleSidebar",function(){return VA.whichSidebar(o.outerContainer)});var c=qb(e);return c!==Ub.sliding&&c!==Ub.floating||e.on("ResizeWindow ResizeEditor ResizeContent",function(){var n=e.getWin().innerWidth;n!==i.get()&&(VA.refreshToolbar(o.outerContainer),i.set(n))}),{iframeContainer:u.element().dom(),editorContainer:o.outerContainer.element().dom()}}},GA=function(t,n,e){var o=n.filter(function(n){return t<n}),r=e.filter(function(n){return n<t});return o.or(r).getOr(t)},XA=function(n){return/^[0-9\.]+(|px)$/i.test(""+n)?on.some(parseInt(""+n,10)):on.none()},YA=function(n){return mn(n)?n+"px":n},qA={render:function(t,i,e,o,n){var u,r=Vh.DOM,a=Jb(t),c=Qb(t),s=Be.fromDom(n.targetNode),f=Hb(t).or(eB(t)),l=qb(t),d=l===Ub.sliding||l===Ub.floating;zA(t);function m(n){void 0===n&&(n=!1),d&&VA.refreshToolbar(i.outerContainer),a||function(n){var t=d?n.fold(function(){return 0},function(n){return 1<n.components().length?fu(n.components()[1].element()):0}):0,e=mu(s),o=e.top()-fu(u.element())+t;di(i.outerContainer.element(),{position:"absolute",top:Math.round(o)+"px",left:Math.round(e.left())+"px"});var r=f.getOrThunk(function(){var n=XA(mi(Mi(),"margin-left")).getOr(0);return gu(Mi())-e.left()+n});li(u.element(),"max-width",r+"px")}(VA.getToolbar(i.outerContainer)),c&&(n?lA.reset(u):lA.refresh(u))}function g(){li(i.outerContainer.element(),"display","flex"),r.addClass(t.getBody(),"mce-edit-focus"),hi(i.uiMothership.element(),"display"),m()}function p(){i.outerContainer&&(li(i.outerContainer.element(),"display","none"),r.removeClass(t.getBody(),"mce-edit-focus")),li(i.uiMothership.element(),"display","none")}function h(){if(u)g();else{u=VA.getHeader(i.outerContainer).getOrDie();var n=function(n){return Kb(n).getOr(Mi())}(t);ws(n,i.mothership),ws(n,i.uiMothership),nB(t,i,e,o),VA.setMenubar(i.outerContainer,QD(t,e)),g(),t.on("activate",g),t.on("deactivate",p),t.on("NodeChange SkinLoaded ResizeWindow",function(){t.hidden||m(!0)}),t.nodeChanged()}}return t.on("focus",h),t.on("blur hide",p),t.on("init",function(){t.hasFocus()&&h()}),YO(t,i),{editorContainer:i.outerContainer.element().dom()}}},KA=function(t){Ok.each([{name:"alignleft",text:"Align left",cmd:"JustifyLeft",icon:"align-left"},{name:"aligncenter",text:"Align center",cmd:"JustifyCenter",icon:"align-center"},{name:"alignright",text:"Align right",cmd:"JustifyRight",icon:"align-right"},{name:"alignjustify",text:"Justify",cmd:"JustifyFull",icon:"align-justify"}],function(n){t.ui.registry.addToggleButton(n.name,{tooltip:n.text,onAction:function(){return t.execCommand(n.cmd)},icon:n.icon,onSetup:hT(t,n.name)})});var n="alignnone",e="No alignment",o="JustifyNone",r="align-none";t.ui.registry.addButton(n,{tooltip:e,onAction:function(){return t.execCommand(o)},icon:r})},JA=function(n){rB(n),function(t){Ok.each([{name:"bold",text:"Bold",action:"Bold",icon:"bold",shortcut:"Meta+B"},{name:"italic",text:"Italic",action:"Italic",icon:"italic",shortcut:"Meta+I"},{name:"underline",text:"Underline",action:"Underline",icon:"underline",shortcut:"Meta+U"},{name:"strikethrough",text:"Strikethrough",action:"Strikethrough",icon:"strike-through",shortcut:""},{name:"subscript",text:"Subscript",action:"Subscript",icon:"subscript",shortcut:""},{name:"superscript",text:"Superscript",action:"Superscript",icon:"superscript",shortcut:""},{name:"removeformat",text:"Clear formatting",action:"RemoveFormat",icon:"remove-formatting",shortcut:""},{name:"newdocument",text:"New document",action:"mceNewDocument",icon:"new-document",shortcut:""},{name:"cut",text:"Cut",action:"Cut",icon:"cut",shortcut:"Meta+X"},{name:"copy",text:"Copy",action:"Copy",icon:"copy",shortcut:"Meta+C"},{name:"paste",text:"Paste",action:"Paste",icon:"paste",shortcut:"Meta+V"},{name:"selectall",text:"Select all",action:"SelectAll",icon:"select-all",shortcut:"Meta+A"}],function(n){t.ui.registry.addMenuItem(n.name,{text:n.text,icon:n.icon,shortcut:n.shortcut,onAction:function(){return t.execCommand(n.action)}})}),t.ui.registry.addMenuItem("codeformat",{text:"Code",icon:"sourcecode",onAction:oB(t,"code")})}(n)},$A=function(n){!function(t){t.ui.registry.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onSetup:function(n){return iB(n,t,"hasUndo")},onAction:function(){return t.execCommand("undo")}}),t.ui.registry.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onSetup:function(n){return iB(n,t,"hasRedo")},onAction:function(){return t.execCommand("redo")}})}(n),function(t){t.ui.registry.addButton("undo",{tooltip:"Undo",icon:"undo",onSetup:function(n){return iB(n,t,"hasUndo")},onAction:function(){return t.execCommand("undo")}}),t.ui.registry.addButton("redo",{tooltip:"Redo",icon:"redo",onSetup:function(n){return iB(n,t,"hasRedo")},onAction:function(){return t.execCommand("redo")}})}(n)},QA=function(n){!function(n){n.ui.registry.addButton("visualaid",{tooltip:"Visual aids",text:"Visual aids",onAction:function(){return n.execCommand("mceToggleVisualAid")}})}(n),function(t){t.ui.registry.addToggleMenuItem("visualaid",{text:"Visual aids",onSetup:function(n){return function(t,n){t.setActive(n.hasVisual);function e(n){t.setActive(n.hasVisual)}return n.on("VisualAid",e),function(){return n.off("VisualAid",e)}}(n,t)},onAction:function(){t.execCommand("mceToggleVisualAid")}})}(n)},ZA=function(n){!function(t){t.ui.registry.addButton("outdent",{tooltip:"Decrease indent",icon:"outdent",onSetup:function(n){return function(n,t){n.setDisabled(!t.queryCommandState("outdent"));function e(){n.setDisabled(!t.queryCommandState("outdent"))}return t.on("NodeChange",e),function(){return t.off("NodeChange",e)}}(n,t)},onAction:function(){return t.execCommand("outdent")}}),t.ui.registry.addButton("indent",{tooltip:"Increase indent",icon:"indent",onAction:function(){return t.execCommand("indent")}})}(n)},n_=function(n,t){!function(n,t){var e=bT(0,t,uD(n));n.ui.registry.addNestedMenuItem("align",{text:t.shared.providers.translate("Align"),getSubmenuItems:function(){return e.items.validateItems(e.getStyleItems())}})}(n,t),function(n,t){var e=bT(0,t,cD(n));n.ui.registry.addNestedMenuItem("fontformats",{text:t.shared.providers.translate("Fonts"),getSubmenuItems:function(){return e.items.validateItems(e.getStyleItems())}})}(n,t),function(n,t){var e=N({type:"advanced"},t.styleselect),o=bT(0,t,gD(n,e));n.ui.registry.addNestedMenuItem("formats",{text:"Formats",getSubmenuItems:function(){return o.items.validateItems(o.getStyleItems())}})}(n,t),function(n,t){var e=bT(0,t,mD(n));n.ui.registry.addNestedMenuItem("blockformats",{text:"Blocks",getSubmenuItems:function(){return e.items.validateItems(e.getStyleItems())}})}(n,t),function(n,t){var e=bT(0,t,fD(n));n.ui.registry.addNestedMenuItem("fontsizes",{text:"Font sizes",getSubmenuItems:function(){return e.items.validateItems(e.getStyleItems())}})}(n,t)},t_=function(n,t){KA(n),JA(n),n_(n,t),$A(n),Wv.register(n),QA(n),ZA(n)},e_=function(n){return{anchor:"selection",root:Be.fromDom(n.selection.getNode())}},o_={onLtr:function(){return[ic,aa,ca,sa,fa,rc,Wg,Gg,hm,gm,vm,pm]},onRtl:function(){return[ic,ca,aa,fa,sa,rc,Wg,Gg,vm,pm,hm,gm]}},r_={valignCentre:[],alignCentre:[],alignLeft:["tox-pop--align-left"],alignRight:["tox-pop--align-right"],right:["tox-pop--right"],left:["tox-pop--left"],bottom:["tox-pop--bottom"],top:["tox-pop--top"]},i_=function(n){return n.settings.contextmenu_never_use_native||!1},u_=function(n){return function(n,t,e){var o=n.ui.registry.getAll().contextMenus;return V(n.settings,t).map(gB).getOrThunk(function(){return C(gB(e),function(n){return Tn(o,n)})})}(n,"contextmenu","link linkchecker image imagetools table spellchecker configurepermanentpen")},a_=function(n){return!1===n.getParam("contextmenu")},c_={type:"separator"},s_=function(t){if(cn(t))return t;switch(t.type){case"separator":return c_;case"submenu":return{type:"nestedmenuitem",text:t.text,icon:t.icon,getSubmenuItems:function(){var n=t.getSubmenuItems();return cn(n)?n:S(n,s_)}};default:return{type:"menuitem",text:t.text,icon:t.icon,onAction:function(n){return function(){return n()}}(t.onAction)}}},f_="data-initial-z-index",l_=function(n,t,r,i,u){var e=t.getSnapPoints(n);return kB(e,r,i,u).orThunk(function(){return O(e,function(t,e){var n=e.sensor(),o=function(n,t,e,o,r,i){var u=kD(n,r,i),a=kD(t,r,i),c=Math.abs(u.left()-a.left()),s=Math.abs(u.top()-a.top());return Ru(c,s)}(r,n,e.range().left(),e.range().top(),i,u);return t.deltas.fold(function(){return{deltas:on.some(o),snap:on.some(e)}},function(n){return(o.left()+o.top())/2<=(n.left()+n.top())/2?{deltas:on.some(o),snap:on.some(e)}:t})},{deltas:on.none(),snap:on.none()}).snap.map(function(n){return{output:nn(ED(n.output(),r,i,u)),extra:n.extra}})})},d_=function(n,t,e,o,r){var i=t.getSnapPoints(n);return kB(i,e,o,r)},m_=wt("snaps",[ct("getSnapPoints"),Ku("onSensor"),ct("leftAttr"),ct("topAttr"),St("lazyViewport",Cu),St("mustSnap",!1)]),g_=/* */Object.freeze({getData:function(n){return on.from(Ru(n.x(),n.y()))},getDelta:function(n,t){return Ru(t.left()-n.left(),t.top()-n.top())}}),p_=[St("useFixed",u),ct("blockerClass"),St("getTarget",l),St("onDrag",Z),St("repositionTarget",!0),Ku("onDrop"),Dt("getBounds",Cu),m_,Zu("dragger",{handlers:function(u,a){function c(n){a.setStartData(EB(u,n))}return tr([rr(Ro(),function(n){a.getStartData().each(function(){return c(n)})}),rr(uo(),function(t,n){if(0===n.event().raw().button){n.stop();var e=function(){return BB(t,on.some(i),u,a)},o=vb(e,200),r={drop:e,delayDrop:o.schedule,forceDrop:e,move:function(n){o.cancel(),DB(t,u,a,g_,n)}},i=xB(t,u.blockerClass,function(e){return tr([rr(uo(),e.forceDrop),rr(so(),e.drop),rr(ao(),function(n,t){e.move(t.event())}),rr(co(),e.delayDrop)])}(r));c(t),bB(t,i)}})])}})],h_=/* */Object.freeze({getData:function(n){var t=n.raw().touches;return 1===t.length?function(n){var t=n[0];return on.some(Ru(t.clientX,t.clientY))}(t):on.none()},getDelta:function(n,t){return Ru(t.left()-n.left(),t.top()-n.top())}}),v_=p_,b_=[St("useFixed",u),ct("blockerClass"),St("getTarget",l),St("onDrag",Z),St("repositionTarget",!0),St("onDrop",Z),Dt("getBounds",Cu),m_,Zu("dragger",{handlers:function(i,u){function a(n){u.setStartData(EB(i,n))}var c=Ee(on.none());return tr([rr(Ro(),function(n){u.getStartData().each(function(){return a(n)})}),rr(eo(),function(t,n){n.stop();function e(){BB(t,c.get(),i,u),c.set(on.none())}var o={drop:e,delayDrop:function(){},forceDrop:e,move:function(n){DB(t,i,u,h_,n)}},r=xB(t,i.blockerClass,function(e){return tr([rr(eo(),e.forceDrop),rr(ro(),e.drop),rr(io(),e.drop),rr(oo(),function(n,t){e.move(t.event())})])}(o));c.set(on.some(r));a(t),bB(t,r)}),rr(oo(),function(n,t){t.stop(),DB(n,i,u,h_,t.event())}),rr(ro(),function(n){BB(n,c.get(),i,u),c.set(on.none())}),rr(io(),function(n){BB(n,c.get(),i,u),c.set(on.none())})])}})],y_=/* */Object.freeze({mouse:v_,touch:b_}),x_=/* */Object.freeze({init:function(){var o=on.none(),t=on.none(),n=nn({});return tu({readState:n,reset:function(){o=on.none(),t=on.none()},update:function(t,n){return t.getData(n).bind(function(n){return function(t,e){var n=o.map(function(n){return t.getDelta(n,e)});return o=on.some(e),n}(t,n)})},getStartData:function(){return t},setStartData:function(n){t=on.some(n)}})}}),w_=/* */Object.freeze({snapTo:function(n,t,e,o){var r=t.getTarget(n.element());if(t.repositionTarget){var i=pr(n.element()),u=hu(i),a=yD(r),c=function(n,t,e){return{coord:ED(n.output(),n.output(),t,e),extra:n.extra()}}(o,u,a),s=TD(c.coord,0,a);di(r,s)}}}),S_=wa({branchKey:"mode",branches:y_,name:"dragging",active:{events:function(n,t){return n.dragger.handlers(n,t)}},extra:{snap:gr(["sensor","range","output"],["extra"])},state:x_,apis:w_}),C_=Ht(),k_=function(c,e){function t(n){var t=Su(n);return AB(g.getOpt(e),n,t.x(),t.y(),t.width(),t.height())}function o(n){var t=Su(n);return AB(p.getOpt(e),n,t.right(),t.bottom(),t.width(),t.height())}function r(n,t,e,o){var r=e(t);S_.snapTo(n,r),function(n,t,e,o){var r=t.dom().getBoundingClientRect();hi(n.element(),"display");var i=vr(Be.fromDom(c.getBody())).dom().innerHeight,u=e(r),a=o(r,i);(u||a)&&li(n.element(),"display","none")}(n,t,function(n){return n[o]<0},function(n,t){return n[o]>t})}function i(n){return r(h,n,t,"top")}function u(n){return r(v,n,o,"bottom")}var a=Ee([]),s=Ee([]),n=Ee(!1),f=Ee(on.none()),l=Ee(on.none()),d=_B(function(){return S(a.get(),function(n){return t(n)})},f,function(t){l.get().each(function(n){c.fire("TableSelectorChange",{start:t,finish:n})})}),m=_B(function(){return S(s.get(),function(n){return o(n)})},l,function(t){f.get().each(function(n){c.fire("TableSelectorChange",{start:n,finish:t})})}),g=MB(d),p=MB(m),h=au(g.asSpec()),v=au(p.asSpec());C_.deviceType.isTouch()&&(c.on("TableSelectionChange",function(t){n.get()||(vs(e,h),vs(e,v),n.set(!0)),f.set(on.some(t.start)),l.set(on.some(t.finish)),t.otherCells.each(function(n){a.set(n.upOrLeftCells),s.set(n.downOrRightCells),i(t.start),u(t.finish)})}),c.on("resize ScrollContent",function(){f.get().each(i),l.get().each(u)}),c.on("TableSelectionClear",function(){n.get()&&(ys(h),ys(v),n.set(!1)),f.set(on.none()),l.set(on.none())}))};(NB=VB=VB||{})[NB.None=0]="None",NB[NB.Both=1]="Both",NB[NB.Vertical=2]="Vertical";function O_(n,t,e){var o=Be.fromDom(n.getContainer()),r=function(n,t,e,o,r){var i={};return i.height=GA(o+t.top(),Nb(n),Pb(n)),e===VB.Both&&(i.width=GA(r+t.left(),Vb(n),Hb(n))),i}(n,t,e,fu(o),gu(o));Cn(r,function(n,t){return li(o,t,YA(n))}),Pv(n)}function T_(n){if(1===n.nodeType){if("BR"===n.nodeName||n.getAttribute("data-mce-bogus"))return!0;if("bookmark"===n.getAttribute("data-mce-type"))return!0}return!1}function E_(o,t){var r,n,e;return{dom:{tag:"div",classes:["tox-statusbar"]},components:(n=function(){var n=[];return o.getParam("elementpath",!0,"boolean")&&n.push(hM(o,{})),Vt(o.settings.plugins,"wordcount")&&n.push(function(n,o){function r(n,t,e){return gg.set(n,[Ti(o.translate(["{0} "+e,t[e]]))])}var t;return Xg.sketch({dom:{tag:"button",classes:["tox-statusbar__wordcount"]},components:[],buttonBehaviours:ya([Xy.config({}),gg.config({}),nl.config({store:{mode:"memory",initialValue:{mode:"words",count:{words:0,characters:0}}}}),Jd("wordcount-events",[rr(Xt(),function(n){var t=nl.getValue(n),e="words"===t.mode?"characters":"words";nl.setValue(n,{mode:e,count:t.count}),r(n,t.count,e)}),Ri(function(e){n.on("wordCountUpdate",function(n){var t=nl.getValue(e).mode;nl.setValue(e,{mode:t,count:n.wordCount}),r(e,n.wordCount,t)})})])]),eventOrder:(t={},t[Xt()]=["wordcount-events","alloy.base.behaviour"],t)})}(o,t)),o.getParam("branding",!0,"boolean")&&n.push(function(){var n=ih.translate(["Powered by {0}","Tiny"]);return{dom:{tag:"span",classes:["tox-statusbar__branding"],innerHtml:'<a href="https://www.tiny.cloud/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce&utm_content=v5" rel="noopener" target="_blank" tabindex="-1" aria-label="'+n+'">'+n+"</a>"}}}()),0<n.length?[{dom:{tag:"div",classes:["tox-statusbar__text-container"]},components:n}]:[]}(),e=function(n){var t=!Vt(n.settings.plugins,"autoresize"),e=n.getParam("resize",t);return!1===e?VB.None:"both"===e?VB.Both:VB.Vertical}(o),e!==VB.None&&n.push((r=e,{dom:{tag:"div",classes:["tox-statusbar__resize-handle"],attributes:{title:t.translate("Resize")},innerHtml:xm("resize-handle",t.icons)},behaviours:ya([S_.config({mode:"mouse",repositionTarget:!1,onDrag:function(n,t,e){O_(o,e,r)},blockerClass:"tox-blocker"})])})),n)}}function D_(n){return[ft("type"),function(n){return st(n,we)}("columns"),n]}function B_(t){return he("items","items",Mn(),Kn(Zn(function(n){return tt("Checking item of "+t,pF,n).fold(function(n){return an.error(ye(n))},function(n){return an.value(n)})})))}function A_(n){return cn(n.type)&&cn(n.name)}function __(n){var t=function(n){return C(AF(n),A_)}(n),e=D(t,function(t){return function(n){return on.from(_F[n.type])}(t).fold(function(){return[]},function(n){return[st(t.name,n)]})});return de(e)}function M_(n){return{internalDialog:et(function(n){return tt("dialog",BF,n)}(n)),dataValidator:__(n),initialData:n.initialData}}function F_(n){var e=[],o={};return Cn(n,function(n,t){n.fold(function(){e.push(t)},function(n){o[t]=n})}),0<e.length?an.error(e):an.value(o)}function I_(n){return yn(function(n,t){var e=gn.call(n,0);return e.sort(t),e}(n,function(n,t){return t<n?-1:n<t?1:0}))}function R_(n,t){li(n,"height",t+"px"),Ht().browser.isIE()?hi(n,"flex-basis"):li(n,"flex-basis",t+"px")}function V_(n,o,r){ku(n,'[role="dialog"]').each(function(e){Ou(e,'[role="tablist"]').each(function(t){r.get().map(function(n){return li(o,"height","0"),li(o,"flex-basis","0"),Math.min(n,function(n,t,e){var o,r=hr(n).dom(),i=ku(n,".tox-dialog-wrap").getOr(n);o="fixed"===mi(i,"position")?Math.max(r.clientHeight,v.window.innerHeight):Math.max(r.offsetHeight,r.scrollHeight);var u=fu(t),a=t.dom().offsetLeft>=e.dom().offsetLeft+gu(e)?Math.max(fu(e),u):u,c=parseInt(mi(n,"margin-top"),10)||0,s=parseInt(mi(n,"margin-bottom"),10)||0;return o-(fu(n)+c+s-a)}(e,o,t))}).each(function(n){R_(o,n)})})})}function N_(n){return Ou(n,'[role="tabpanel"]')}function H_(r){var i;return{smartTabHeight:(i=Ee(on.none()),{extraEvents:[Ri(function(n){var t=n.element();N_(t).each(function(o){li(o,"visibility","hidden"),n.getSystem().getByDom(o).toOption().each(function(n){var t=function(o,r,i){return S(o,function(n,t){gg.set(i,o[t].view());var e=r.dom().getBoundingClientRect();return gg.set(i,[]),e.height})}(r,o,n),e=I_(t);i.set(e)}),V_(t,o,i),hi(o,"visibility"),function(n,t){yn(n).each(function(n){return GF.showTab(t,n.value)})}(r,n),Kg.requestAnimationFrame(function(){V_(t,o,i)})})}),rr(Vo(),function(n){var t=n.element();N_(t).each(function(n){V_(t,n,i)})}),rr(py,function(n,t){var r=n.element();N_(r).each(function(t){var n=Ca();li(t,"visibility","hidden");var e=gi(t,"height").map(function(n){return parseInt(n,10)});hi(t,"height"),hi(t,"flex-basis");var o=t.dom().getBoundingClientRect().height;e.forall(function(n){return n<o})?(i.set(on.from(o)),V_(r,t,i)):e.each(function(n){R_(t,n)}),hi(t,"visibility"),n.each(Sa)})})],selectFirst:!1}),naiveTabHeight:{extraEvents:[],selectFirst:!0}}}function P_(n,t,e,o){return{dom:{tag:"div",classes:["tox-dialog__content-js"],attributes:N(N({},t.map(function(n){return{id:n}}).getOr({})),o?{"aria-live":"polite"}:{})},components:[],behaviours:ya([DS(0),LE.config({channel:JF,updateState:function(n,t){return on.some({isTabPanel:function(){return"tabpanel"===t.body.type}})},renderComponents:function(n){switch(n.body.type){case"tabpanel":return[function(n,e){function o(n){var t=nl.getValue(n),e=F_(t).getOr({}),o=i.get(),r=Bn(o,e);i.set(r)}function r(n){var t=i.get();nl.setValue(n,t)}var i=Ee({}),u=Ee(null),t=S(n.tabs,function(n){return{value:n.name,dom:{tag:"div",classes:["tox-dialog__body-nav-item"],innerHtml:e.shared.providers.translate(n.title)},view:function(){return[bS.sketch(function(t){return{dom:{tag:"div",classes:["tox-form"]},components:S(n.items,function(n){return Jk(t,n,e)}),formBehaviours:ya([dg.config({mode:"acyclic",useTabstopAt:b(HS)}),Jd("TabView.form.events",[Ri(r),Vi(o)]),dc.config({channels:K([{key:XF,value:{onReceive:o}},{key:YF,value:{onReceive:r}}])})])}})]}}}),a=H_(t).smartTabHeight;return GF.sketch({dom:{tag:"div",classes:["tox-dialog__body"]},onChangeTab:function(n,t,e){var o=nl.getValue(t);qt(n,gy,{name:o,oldName:u.get()}),u.set(o)},tabs:t,components:[GF.parts().tabbar({dom:{tag:"div",classes:["tox-dialog__body-nav"]},components:[PF.parts().tabs({})],markers:{tabClass:"tox-tab",selectedClass:"tox-dialog__body-nav-item--active"},tabbarBehaviours:ya([Xy.config({})])}),GF.parts().tabview({dom:{tag:"div",classes:["tox-dialog__body-content"]}})],selectFirst:a.selectFirst,tabSectionBehaviours:ya([Jd("tabpanel",a.extraEvents),dg.config({mode:"acyclic"}),nd.config({find:function(n){return yn(GF.getViewItems(n))}}),nl.config({store:{mode:"manual",getValue:function(n){return n.getSystem().broadcastOn([XF],{}),i.get()},setValue:function(n,t){i.set(t),n.getSystem().broadcastOn([YF],{})}}})])})}(n.body,e)];default:return[function(n,e){var t=bm(bS.sketch(function(t){return{dom:{tag:"div",classes:["tox-form"].concat(n.classes)},components:S(n.items,function(n){return Jk(t,n,e)})}}));return{dom:{tag:"div",classes:["tox-dialog__body"]},components:[{dom:{tag:"div",classes:["tox-dialog__body-content"]},components:[t.asSpec()]}],behaviours:ya([dg.config({mode:"acyclic",useTabstopAt:b(HS)}),ES(t),MS(t,{postprocess:function(n){return F_(n).fold(function(n){return v.console.error(n),{}},function(n){return n})}})])}}(n.body,e)]}},initialData:n})])}}function z_(n,e){return[cr(lo(),PS),n(cy,function(n,t){e.onClose(),t.onClose()}),n(sy,function(n,t,e,o){t.onCancel(n),Yt(o,cy)}),rr(my,function(n,t){return e.onUnblock()}),rr(dy,function(n,t){return e.onBlock(t.event())})]}function L_(n,t){function e(n,t){return Gb.sketch({dom:{tag:"div",classes:["tox-dialog__footer-"+n]},components:S(t,function(n){return n.memento.asSpec()})})}var o=function(n,t){for(var e=[],o=[],r=0,i=n.length;r<i;r++){var u=n[r];(t(u,r)?e:o).push(u)}return{pass:e,fail:o}}(t.map(function(n){return n.footerButtons}).getOr([]),function(n){return"start"===n.align});return[e("start",o.pass),e("end",o.fail)]}function j_(n,o){return{dom:sp('<div class="tox-dialog__footer"></div>'),components:[],behaviours:ya([LE.config({channel:$F,initialData:n,updateState:function(n,t){var e=S(t.buttons,function(n){var t=bm(function(n,t){return ZC(n,n.type,t)}(n,o));return{name:n.name,align:n.align,memento:t}});return on.some({lookupByName:function(n,t){return function(t,n,e){return T(n,function(n){return n.name===e}).bind(function(n){return n.memento.getOpt(t)})}(n,e,t)},footerButtons:e})},renderComponents:L_})])}}function U_(n,t){return SM.parts().footer(j_(n,t))}function W_(t,e){if(t.getRoot().getSystem().isConnected()){var o=nd.getCurrent(t.getFormWrapper()).getOr(t.getFormWrapper());return bS.getField(o,e).fold(function(){var n=t.getFooter();return LE.getState(n).get().bind(function(n){return n.lookupByName(o,e)})},function(n){return on.some(n)})}return on.none()}function G_(u,o,a){function n(n){var t=u.getRoot();t.getSystem().isConnected()&&n(t)}var c={getData:function(){var n=u.getRoot(),t=n.getSystem().isConnected()?u.getFormWrapper():n,e=nl.getValue(t),o=P(a,function(n){return n.get()});return N(N({},e),o)},setData:function(i){n(function(n){var t=c.getData(),e=An(t,i),o=function(n,t){var e=n.getRoot();return LE.getState(e).get().map(function(n){return et(tt("data",n.dataValidator,t))}).getOr(t)}(u,e),r=u.getFormWrapper();nl.setValue(r,o),Cn(a,function(n,t){Tn(e,t)&&n.set(e[t])})})},disable:function(n){W_(u,n).each(kh.disable)},enable:function(n){W_(u,n).each(kh.enable)},focus:function(n){W_(u,n).each(bg.focus)},block:function(t){if(!cn(t))throw new Error("The dialogInstanceAPI.block function should be passed a blocking message of type string as an argument");n(function(n){qt(n,dy,{message:t})})},unblock:function(){n(function(n){Yt(n,my)})},showTab:function(e){n(function(n){var t=u.getBody();LE.getState(t).get().exists(function(n){return n.isTabPanel()})&&nd.getCurrent(t).each(function(n){GF.showTab(n,e)})})},redial:function(e){n(function(n){var t=o(e);n.getSystem().broadcastOn([qF],t),n.getSystem().broadcastOn([KF],t.internalDialog),n.getSystem().broadcastOn([JF],t.internalDialog),n.getSystem().broadcastOn([$F],t.internalDialog),c.setData(t.initialData)})},close:function(){n(function(n){Yt(n,cy)})}};return c}function X_(n,t){return{dom:{tag:"div",styles:{display:"none"},classes:["tox-dialog__header"]},components:[n,t]}}function Y_(n,t){return SM.parts().close(Xg.sketch({dom:{tag:"button",classes:["tox-button","tox-button--icon","tox-button--naked"],attributes:{type:"button","aria-label":t.translate("Close")}},action:n,buttonBehaviours:ya([Xy.config({})])}))}function q_(){return SM.parts().title({dom:{tag:"div",classes:["tox-dialog__title"],innerHtml:"",styles:{display:"none"}}})}function K_(n,t){return SM.parts().body({dom:{tag:"div",classes:["tox-dialog__body"]},components:[{dom:{tag:"div",classes:["tox-dialog__body-content"]},components:[{dom:sp("<p>"+t.translate(n)+"</p>")}]}]})}function J_(n){return SM.parts().footer({dom:{tag:"div",classes:["tox-dialog__footer"]},components:n})}function $_(n,t){return[Gb.sketch({dom:{tag:"div",classes:["tox-dialog__footer-start"]},components:n}),Gb.sketch({dom:{tag:"div",classes:["tox-dialog__footer-end"]},components:t})]}function Q_(t){var n,e="tox-dialog",o=e+"-wrap",r=o+"__backdrop",i=e+"__disable-scroll";return SM.sketch({lazySink:t.lazySink,onEscape:function(n){return t.onEscape(n),on.some(!0)},useTabstopAt:function(n){return!HS(n)},dom:{tag:"div",classes:[e].concat(t.extraClasses),styles:N({position:"relative"},t.extraStyles)},components:g([t.header,t.body],t.footer.toArray()),parts:{blocker:{dom:sp('<div class="'+o+'"></div>'),components:[{dom:{tag:"div",classes:tI?[r,r+"--opaque"]:[r]}}]}},dragBlockClass:o,modalBehaviours:ya(g([bg.config({}),Jd("dialog-events",t.dialogEvents.concat([fr(lo(),function(n,t){dg.focusIn(n)})])),Jd("scroll-lock",[Ri(function(){ei(Mi(),i)}),Vi(function(){ri(Mi(),i)})])],t.extraBehaviours)),eventOrder:N((n={},n[To()]=["dialog-events"],n[No()]=["scroll-lock","dialog-events","alloy.base.behaviour"],n[Ho()]=["alloy.base.behaviour","dialog-events","scroll-lock"],n),t.eventOrder)})}function Z_(n){return Xg.sketch({dom:{tag:"button",classes:["tox-button","tox-button--icon","tox-button--naked"],attributes:{type:"button","aria-label":n.translate("Close"),title:n.translate("Close")}},components:[{dom:{tag:"div",classes:["tox-icon"],innerHtml:'<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M17.953 7.453L13.422 12l4.531 4.547-1.406 1.406L12 13.422l-4.547 4.531-1.406-1.406L10.578 12 6.047 7.453l1.406-1.406L12 10.578l4.547-4.531z" fill-rule="evenodd"></path></svg>'}}],action:function(n){Yt(n,sy)}})}function nM(n,t,e){function o(n){return[Ti(e.translate(n.title))]}return{dom:{tag:"div",classes:["tox-dialog__title"],attributes:N({},t.map(function(n){return{id:n}}).getOr({}))},components:o(n),behaviours:ya([LE.config({channel:KF,renderComponents:o})])}}function tM(){return{dom:sp('<div class="tox-dialog__draghandle"></div>')}}function eM(n,t){return function(n,t){var e=SM.parts().title(nM(n,on.none(),t)),o=SM.parts().draghandle(tM()),r=SM.parts().close(Z_(t)),i=[e].concat(n.draggable?[o]:[]).concat([r]);return Gb.sketch({dom:sp('<div class="tox-dialog__header"></div>'),components:i})}({title:t.shared.providers.translate(n),draggable:t.dialog.isDraggableModal()},t.shared.providers)}function oM(n,t){return{onClose:function(){return t.closeWindow()},onBlock:function(e){SM.setBusy(n(),function(n,t){return{dom:{tag:"div",classes:["tox-dialog__busy-spinner"],attributes:{"aria-label":e.message()},styles:{left:"0px",right:"0px",bottom:"0px",top:"0px",position:"absolute"}},behaviours:t,components:[{dom:sp('<div class="tox-spinner"><div></div><div></div><div></div></div>')}]}})},onUnblock:function(){SM.setIdle(n())}}}function rM(n,t,e,o){var r;return au(Q_(N(N({},n),{lazySink:o.shared.getSink,extraBehaviours:g([LE.config({channel:qF,updateState:function(n,t){return on.some(t)},initialData:t}),RS({})],n.extraBehaviours),onEscape:function(n){Yt(n,sy)},dialogEvents:e,eventOrder:(r={},r[Oo()]=["reflecting","receiving"],r[No()]=["scroll-lock","reflecting","messages","dialog-events","alloy.base.behaviour"],r[Ho()]=["alloy.base.behaviour","dialog-events","messages","reflecting","scroll-lock"],r)})))}function iM(n){return S(n,function(n){return"menu"===n.type?function(n){var t=S(n.items,function(n){var t=Ee(!1);return N(N({},n),{storage:t})});return N(N({},n),{items:t})}(n):n})}function uM(n){return O(n,function(n,t){return"menu"!==t.type?n:O(t.items,function(n,t){return n[t.name]=t.storage,n},n)},{})}function aM(n,t,e){var o=eM(n.internalDialog.title,e),r=function(n,t){var e=P_(n,on.none(),t,!1);return SM.parts().body(e)}({body:n.internalDialog.body},e),i=iM(n.internalDialog.buttons),u=uM(i),a=U_({buttons:i},e),c=nI(function(){return d},oM(function(){return l},t)),s="normal"!==n.internalDialog.size?"large"===n.internalDialog.size?["tox-dialog--width-lg"]:["tox-dialog--width-md"]:[],f={header:o,body:r,footer:on.some(a),extraClasses:s,extraBehaviours:[],extraStyles:{}},l=rM(f,n,c,e),d=G_({getRoot:function(){return l},getBody:function(){return SM.getBody(l)},getFooter:function(){return SM.getFooter(l)},getFormWrapper:function(){var n=SM.getBody(l);return nd.getCurrent(n).getOr(n)}},t.redial,u);return{dialog:l,instanceApi:d}}function cM(n,t,e,o){var r,i,u=Hr("dialog-label"),a=Hr("dialog-content"),c=bm(function(n,t,e){return Gb.sketch({dom:sp('<div class="tox-dialog__header"></div>'),components:[nM(n,on.some(t),e),tM(),Z_(e)],containerBehaviours:ya([S_.config({mode:"mouse",blockerClass:"blocker",getTarget:function(n){return Tu(n,'[role="dialog"]').getOrDie()},snaps:{getSnapPoints:function(){return[]},leftAttr:"data-drag-left",topAttr:"data-drag-top"}})])})}({title:n.internalDialog.title,draggable:!0},u,e.shared.providers)),s=bm(function(n,t,e,o){return P_(n,on.some(t),e,o)}({body:n.internalDialog.body},a,e,o)),f=iM(n.internalDialog.buttons),l=uM(f),d=bm(function(n,t){return j_(n,t)}({buttons:f},e)),m=nI(function(){return p},{onBlock:function(){},onUnblock:function(){},onClose:function(){return t.closeWindow()}}),g=au({dom:{tag:"div",classes:["tox-dialog","tox-dialog-inline"],attributes:(r={role:"dialog"},r["aria-labelledby"]=u,r["aria-describedby"]=""+a,r)},eventOrder:(i={},i[Oo()]=[LE.name(),dc.name()],i[To()]=["execute-on-form"],i[No()]=["reflecting","execute-on-form"],i),behaviours:ya([dg.config({mode:"cyclic",onEscape:function(n){return Yt(n,cy),on.some(!0)},useTabstopAt:function(n){return!HS(n)&&("button"!==Ko(n)||"disabled"!==Mr(n,"disabled"))}}),LE.config({channel:qF,updateState:function(n,t){return on.some(t)},initialData:n}),bg.config({}),Jd("execute-on-form",m.concat([fr(lo(),function(n,t){dg.focusIn(n)})])),RS({})]),components:[c.asSpec(),s.asSpec(),d.asSpec()]}),p=G_({getRoot:function(){return g},getFooter:function(){return d.get(g)},getBody:function(){return s.get(g)},getFormWrapper:function(){var n=s.get(g);return nd.getCurrent(n).getOr(n)}},t.redial,l);return{dialog:g,instanceApi:p}}function sM(n){return sn(n)&&-1!==oI.indexOf(n.mceAction)}function fM(e,n,o,t){var r,i=eM(e.title,t),u=function(n){var t={dom:{tag:"div",classes:["tox-dialog__content-js"]},components:[{dom:{tag:"div",classes:["tox-dialog__body-iframe"]},components:[zS({dom:{tag:"iframe",attributes:{src:n.url}},behaviours:ya([Xy.config({}),bg.config({})])})]}],behaviours:ya([dg.config({mode:"acyclic",useTabstopAt:b(HS)})])};return SM.parts().body(t)}(e),a=e.buttons.bind(function(n){return 0===n.length?on.none():on.some(U_({buttons:n},t))}),c=ZF(function(){return h},oM(function(){return p},n)),s=N(N({},e.height.fold(function(){return{}},function(n){return{height:n+"px","max-height":n+"px"}})),e.width.fold(function(){return{}},function(n){return{width:n+"px","max-width":n+"px"}})),f=e.width.isNone()&&e.height.isNone()?["tox-dialog--width-lg"]:[],l=new eI(e.url,{base_uri:new eI(v.window.location.href)}),d=l.protocol+"://"+l.host+(l.port?":"+l.port:""),m=Ee(on.none()),g=[Jd("messages",[Ri(function(){var n=fb(Be.fromDom(v.window),"message",function(n){if(l.isSameOrigin(new eI(n.raw().origin))){var t=n.raw().data;sM(t)?function(n,t,e){switch(e.mceAction){case"insertContent":n.insertContent(e.content);break;case"setContent":n.setContent(e.content);break;case"execCommand":var o=!!ln(e.ui)&&e.ui;n.execCommand(e.cmd,o,e.value);break;case"close":t.close();break;case"block":t.block(e.message);break;case"unblock":t.unblock()}}(o,h,t):function(n){return!sM(n)&&sn(n)&&Tn(n,"mceAction")}(t)&&e.onMessage(h,t)}});m.set(on.some(n))}),Vi(function(){m.get().each(function(n){return n.unbind()})})]),dc.config({channels:(r={},r[QF]={onReceive:function(n,t){Ou(n.element(),"iframe").each(function(n){n.dom().contentWindow.postMessage(t,d)})}},r)})],p=rM({header:i,body:u,footer:a,extraClasses:f,extraBehaviours:g,extraStyles:s},e,c,t),h=function(t){function n(n){t.getSystem().isConnected()&&n(t)}return{block:function(t){if(!cn(t))throw new Error("The urlDialogInstanceAPI.block function should be passed a blocking message of type string as an argument");n(function(n){qt(n,dy,{message:t})})},unblock:function(){n(function(n){Yt(n,my)})},close:function(){n(function(n){Yt(n,cy)})},sendMessage:function(t){n(function(n){n.getSystem().broadcastOn([QF],t)})}}}(p);return{dialog:p,instanceApi:h}}var lM,dM,mM,gM,pM,hM=function(i,r){r.delimiter||(r.delimiter="\xbb");return{dom:{tag:"div",classes:["tox-statusbar__path"],attributes:{role:"navigation"}},behaviours:ya([dg.config({mode:"flow",selector:"div[role=button]"}),Xy.config({}),gg.config({}),Jd("elementPathEvents",[Ri(function(e,n){i.shortcuts.add("alt+F11","focus statusbar elementpath",function(){return dg.focusIn(e)}),i.on("NodeChange",function(n){var t=function(n){for(var t=[],e=n.length;0<e--;){var o=n[e];if(1===o.nodeType&&!T_(o)){var r=i.fire("ResolveName",{name:o.nodeName.toLowerCase(),target:o});if(r.isDefaultPrevented()||t.push({name:r.name,element:o}),r.isPropagationStopped())break}}return t}(n.parents);0<t.length&&gg.set(e,function(n){var t=S(n||[],function(t,n){return Xg.sketch({dom:{tag:"div",classes:["tox-statusbar__path-item"],attributes:{role:"button","data-index":n,"tab-index":-1,"aria-level":n+1},innerHtml:t.name},action:function(n){i.focus(),i.selection.select(t.element),i.nodeChanged()}})}),o={dom:{tag:"div",classes:["tox-statusbar__path-divider"],attributes:{"aria-hidden":!0},innerHtml:" "+r.delimiter+" "}};return O(t.slice(1),function(n,t){var e=n;return e.push(o),e.push(t),e},[t[0]])}(t))})})])]),components:[]}},vM=function(l){function d(){return e.bind(VA.getHeader)}function m(){return an.value(v)}function n(){return e.bind(function(n){return VA.getMoreButton(n)}).getOrDie("Could not find more button element")}function g(){return e.bind(function(n){return VA.getThrobber(n)}).getOrDie("Could not find throbber element")}var t=l.inline,p=t?qA:WA,h=Qb(l)?pA:yA,e=on.none(),o=Ht(),r=o.browser.isIE()?["tox-platform-ie"]:[],i=o.deviceType.isTouch()?["tox-platform-touch"]:[],u=ih.isRtl()?{attributes:{dir:"rtl"}}:{},v=au({dom:N({tag:"div",classes:["tox","tox-silver-sink","tox-tinymce-aux"].concat(r).concat(i)},u),behaviours:ya([_f.config({useFixed:function(){return h.isDocked(d)}})])}),a=bm({dom:{tag:"div",classes:["tox-anchorbar"]}}),b=SO(v,l,function(){return e.bind(function(n){return a.getOpt(n)}).getOrDie("Could not find a anchor bar element")},n),c=VA.parts().menubar({dom:{tag:"div",classes:["tox-menubar"]},backstage:b,onEscape:function(){l.focus()}}),s=qb(l),f=VA.parts().toolbar({dom:{tag:"div",classes:["tox-toolbar"]},getSink:m,backstage:b,onEscape:function(){l.focus()},split:s,lazyToolbar:function(){return e.bind(function(n){return VA.getToolbar(n)}).getOrDie("Could not find more toolbar element")},lazyMoreButton:n,lazyHeader:function(){return d().getOrDie("Could not find header element")}}),y=VA.parts()["multiple-toolbar"]({dom:{tag:"div",classes:["tox-toolbar-overlord"]},onEscape:function(){},split:s}),x=VA.parts().socket({dom:{tag:"div",classes:["tox-edit-area"]}}),w=VA.parts().sidebar({dom:{tag:"div",classes:["tox-sidebar"]}}),S=VA.parts().throbber({dom:{tag:"div",classes:["tox-throbber"]},backstage:b}),C=l.getParam("statusbar",!0,"boolean")&&!t?on.some(E_(l,b.shared.providers)):on.none(),k={dom:{tag:"div",classes:["tox-sidebar-wrap"]},components:[x,w]},O=Yb(l),T=Lb(l),E=zb(l),D=VA.parts().header({dom:{tag:"div",classes:["tox-editor-header"]},components:H([E?[c]:[],O?[y]:T?[f]:[],Jb(l)?[]:[a.asSpec()]]),sticky:Qb(l),editor:l,getSink:m}),B=H([[D],t?[]:[k]]),A=H([[{dom:{tag:"div",classes:["tox-editor-container"]},components:B}],t?[]:C.toArray(),[S]]),_=$b(l),M=N(N({role:"application"},ih.isRtl()?{dir:"rtl"}:{}),_?{"aria-hidden":"true"}:{}),F=au(VA.sketch({dom:{tag:"div",classes:["tox","tox-tinymce"].concat(t?["tox-tinymce-inline"]:[]).concat(i).concat(r),styles:N({visibility:"hidden"},_?{opacity:"0",border:"0"}:{}),attributes:M},components:A,behaviours:ya([dg.config({mode:"cyclic",selector:".tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a"})])}));e=on.some(F),l.shortcuts.add("alt+F9","focus menubar",function(){VA.focusMenubar(F)}),l.shortcuts.add("alt+F10","focus toolbar",function(){VA.focusToolbar(F)});var I=Fb(F),R=Fb(v);KB(l,I,R),uy(l);function V(){var n=YA(tB(l)),t=YA(function(n){return eB(n).getOr(Rb(n))}(l));return l.inline||(pi("div","width",t)&&li(F.element(),"width",t),pi("div","height",n)?li(F.element(),"height",n):li(F.element(),"height","200px")),n}return{mothership:I,uiMothership:R,backstage:b,renderUI:function(){h.setup(l,d),t_(l,b),vB(l,m,b),function(o){var r=o.ui.registry.getAll().sidebars;bn(wn(r),function(t){function e(){return on.from(o.queryCommandValue("ToggleSidebar")).is(t)}var n=r[t];o.ui.registry.addToggleButton(t,{icon:n.icon,tooltip:n.tooltip,onAction:function(n){o.execCommand("ToggleSidebar",!1,t),n.setActive(e())},onSetup:function(n){function t(){return n.setActive(e())}return o.on("ToggleSidebar",t),function(){o.off("ToggleSidebar",t)}}})})}(l),function(e,t,o){function r(n){n!==i.get()&&(JD(t(),n,o.providers),i.set(n))}var i=Ee(!1),u=Ee(on.none());e.on("ProgressState",function(n){if(u.get().each(Kg.clearTimeout),mn(n.time)){var t=Kg.setEditorTimeout(e,function(){return r(n.state)},n.time);u.set(on.some(t))}else r(n.state),u.set(on.none())})}(l,g,b.shared);var n=l.ui.registry.getAll(),t=n.buttons,e=n.menuItems,o=n.contextToolbars,r=n.sidebars,i=jb(l),u={menuItems:e,menus:l.settings.menu?P(l.settings.menu,function(n){return An(n,{items:n.items})}):{},menubar:l.settings.menubar,toolbar:i.getOrThunk(function(){return l.getParam("toolbar",!0)}),buttons:t,sidebar:r};qB(l,o,v,{backstage:b}),k_(l,v);var a=l.getElement(),c=V(),s={mothership:I,uiMothership:R,outerContainer:F},f={targetNode:a,height:c};return p.render(l,s,u,b,f)},getUi:function(){return{channels:{broadcastAll:R.broadcast,broadcastOn:R.broadcastOn,register:function(){}}}}}},bM=function(n,t){var e=on.from(Mr(n,"id")).fold(function(){var n=Hr("dialog-label");return _r(t,"id",n),n},l);_r(n,"aria-labelledby",e)},yM=nn([ct("lazySink"),ht("dragBlockClass"),Dt("getBounds",Cu),St("useTabstopAt",nn(!0)),St("eventOrder",{}),Is("modalBehaviours",[dg]),Ju("onExecute"),Qu("onEscape")]),xM={sketch:l},wM=nn([Cl({name:"draghandle",overrides:function(n,t){return{behaviours:ya([S_.config({mode:"mouse",getTarget:function(n){return ku(n,'[role="dialog"]').getOr(n)},blockerClass:n.dragBlockClass.getOrDie(new Error("The drag blocker class was not specified for a dialog with a drag handle: \n"+JSON.stringify(t,null,2)).message),getBounds:n.getDragBounds})])}}}),wl({schema:[ct("dom")],name:"title"}),wl({factory:xM,schema:[ct("dom")],name:"close"}),wl({factory:xM,schema:[ct("dom")],name:"body"}),Cl({factory:xM,schema:[ct("dom")],name:"footer"}),Sl({factory:{sketch:function(n,t){return N(N({},n),{dom:t.dom,components:t.components})}},schema:[St("dom",{tag:"div",styles:{position:"fixed",left:"0px",top:"0px",right:"0px",bottom:"0px"}}),St("components",[])],name:"blocker"})]),SM=_l({name:"ModalDialog",configFields:yM(),partFields:wM(),factory:function(o,n,t,r){var a=Hr("alloy.dialog.busy"),c=Hr("alloy.dialog.idle"),s=ya([dg.config({mode:"special",onTab:function(){return on.some(!0)},onShiftTab:function(){return on.some(!0)}}),bg.config({})]),e=Hr("modal-events"),i=N(N({},o.eventOrder),{"alloy.system.attached":[e].concat(o.eventOrder["alloy.system.attached"]||[])});return{uid:o.uid,dom:o.dom,components:n,apis:{show:function(i){var n=o.lazySink(i).getOrDie(),u=Ee(on.none()),t=r.blocker(),e=n.getSystem().build(N(N({},t),{components:t.components.concat([cu(i)]),behaviours:ya([bg.config({}),Jd("dialog-blocker-events",[fr(lo(),function(){dg.focusIn(i)}),rr(c,function(n,t){Fr(i.element(),"aria-busy")&&(Ir(i.element(),"aria-busy"),u.get().each(function(n){return gg.remove(i,n)}))}),rr(a,function(n,t){_r(i.element(),"aria-busy","true");var e=t.event().getBusySpec();u.get().each(function(n){gg.remove(i,n)});var o=e(i,s),r=n.getSystem().build(o);u.set(on.some(r)),gg.append(i,cu(r)),r.hasConfigured(dg)&&dg.focusIn(r)})])])}));vs(n,e),dg.focusIn(i)},hide:function(t){br(t.element()).each(function(n){t.getSystem().getByDom(n).each(function(n){ys(n)})})},getBody:function(n){return Js(n,o,"body")},getFooter:function(n){return Js(n,o,"footer")},setIdle:function(n){Yt(n,c)},setBusy:function(n,t){qt(n,a,{getBusySpec:t})}},eventOrder:i,domModification:{attributes:{role:"dialog","aria-modal":"true"}},behaviours:Vs(o.modalBehaviours,[gg.config({}),dg.config({mode:"cyclic",onEnter:o.onExecute,onEscape:o.onEscape,useTabstopAt:o.useTabstopAt}),Jd(e,[Ri(function(n){bM(n.element(),Js(n,o,"title").element()),function(n,t){var e=on.from(Mr(n,"id")).fold(function(){var n=Hr("dialog-describe");return _r(t,"id",n),n},l);_r(n,"aria-describedby",e)}(n.element(),Js(n,o,"body").element())})])])}},apis:{show:function(n,t){n.show(t)},hide:function(n,t){n.hide(t)},getBody:function(n,t){return n.getBody(t)},getFooter:function(n,t){return n.getFooter(t)},setBusy:function(n,t,e){n.setBusy(t,e)},setIdle:function(n,t){n.setIdle(t)}}}),CM=[ft("type"),ft("text"),lt("level",["info","warn","error","success"]),ft("icon"),St("url","")],kM=de(CM),OM=[ft("type"),ft("text"),Et("disabled",!1),Et("primary",!1),he("name","name",In(function(){return Hr("button-name")}),Se),yt("icon"),Et("borderless",!1)],TM=de(OM),EM=[ft("type"),ft("name"),ft("label"),Et("disabled",!1)],DM=de(EM),BM=Ce,AM=[ft("type"),ft("name")],_M=AM.concat([yt("label")]),MM=de(_M),FM=Se,IM=de(_M),RM=Se,VM=de(_M),NM=Kn(ve),HM=_M.concat([Et("sandboxed",!0)]),PM=de(HM),zM=Se,LM=_M.concat([yt("inputMode"),yt("placeholder"),Et("maximized",!1),Et("disabled",!1)]),jM=de(LM),UM=Se,WM=_M.concat([gt("items",[ft("text"),ft("value")]),kt("size",1),Et("disabled",!1)]),GM=de(WM),XM=Se,YM=_M.concat([Et("constrain",!0),Et("disabled",!1)]),qM=de(YM),KM=de([ft("width"),ft("height")]),JM=_M.concat([yt("placeholder"),Et("maximized",!1),Et("disabled",!1)]),$M=de(JM),QM=Se,ZM=_M.concat([Tt("filetype","file",["image","media","file"]),St("disabled",!1)]),nF=de(ZM),tF=de([ft("value"),St("meta",{})]),eF=AM.concat([Ot("tag","textarea"),ft("scriptId"),ft("scriptUrl"),(lM="settings",dM=undefined,Ct(lM,dM,Te))]),oF=AM.concat([Ot("tag","textarea"),dt("init")]),rF=Zn(function(n){return tt("customeditor.old",qn(oF),n).orThunk(function(){return tt("customeditor.new",qn(eF),n)})}),iF=Se,uF=[ft("type"),ft("html"),Tt("presets","presentation",["presentation","document"])],aF=de(uF),cF=_M.concat([st("currentState",de([ct("blob"),ft("url")]))]),sF=de(cF),fF=_M.concat([St("columns","auto")]),lF=de(fF),dF=(mM=[ft("value"),ft("text"),ft("icon")],ge(mM)),mF=[ft("type"),pt("header",Se),pt("cells",Kn(Se))],gF=de(mF),pF=be(function(){return rt("type",{alertbanner:kM,bar:de(function(n){return[ft("type"),n]}(B_("bar"))),button:TM,checkbox:DM,colorinput:MM,colorpicker:IM,dropzone:VM,grid:de(D_(B_("grid"))),iframe:PM,input:jM,selectbox:GM,sizeinput:qM,textarea:$M,urlinput:nF,customeditor:rF,htmlpanel:aF,imagetools:sF,collection:lF,label:de(function(n){return[ft("type"),ft("label"),n]}(B_("label"))),table:gF,panel:vF})}),hF=[ft("type"),St("classes",[]),pt("items",pF)],vF=de(hF),bF=[he("name","name",In(function(){return Hr("tab-name")}),Se),ft("title"),pt("items",pF)],yF=[ft("type"),gt("tabs",bF)],xF=de(yF),wF=de([ft("type"),ft("name"),Et("active",!1)].concat(Gp)),SF=Ce,CF=[he("name","name",In(function(){return Hr("button-name")}),Se),yt("icon"),Tt("align","end",["start","end"]),Et("primary",!1),Et("disabled",!1)],kF=g(CF,[ft("text")]),OF=g([lt("type",["submit","cancel","custom"])],kF),TF=g([lt("type",["menu"]),yt("text"),yt("tooltip"),yt("icon"),pt("items",wF),Dt("onSetup",function(){return Z})],CF),EF=kF,DF=it("type",{submit:OF,cancel:OF,custom:OF,menu:TF}),BF=de([ft("title"),st("body",rt("type",{panel:vF,tabpanel:xF})),Ot("size","normal"),pt("buttons",DF),St("initialData",{}),Dt("onAction",Z),Dt("onChange",Z),Dt("onSubmit",Z),Dt("onClose",Z),Dt("onCancel",Z),St("onTabChange",Z)]),AF=function(n){return sn(n)?[n].concat(D(R(n),AF)):fn(n)?D(n,AF):[]},_F={checkbox:BM,colorinput:FM,colorpicker:RM,dropzone:NM,input:UM,iframe:zM,sizeinput:KM,selectbox:XM,size:KM,textarea:QM,urlinput:tF,customeditor:iF,collection:dF,togglemenuitem:SF},MF=de(g([lt("type",["cancel","custom"])],EF)),FF=de([ft("title"),ft("url"),bt("height"),bt("width"),(gM="buttons",pM=MF,vt(gM,Kn(pM))),Dt("onAction",Z),Dt("onCancel",Z),Dt("onClose",Z),Dt("onMessage",Z)]),IF={open:function(n,t){var e=M_(t);return n(e.internalDialog,e.initialData,e.dataValidator)},openUrl:function(n,t){return n(et(function(n){return tt("dialog",FF,n)}(t)))},redial:function(n){return M_(n)}},RF=Al({name:"TabButton",configFields:[St("uid",undefined),ct("value"),he("dom","dom",Rn(function(n){return{attributes:{role:"tab",id:Hr("aria"),"aria-selected":"false"}}}),xe()),ht("action"),St("domModification",{}),Is("tabButtonBehaviours",[bg,dg,nl]),ct("view")],factory:function(n,t){return{uid:n.uid,dom:n.dom,components:n.components,events:im(n.action),behaviours:Vs(n.tabButtonBehaviours,[bg.config({}),dg.config({mode:"execution",useSpace:!0,useEnter:!0}),nl.config({store:{mode:"memory",initialValue:n.value}})]),domModification:n.domModification}}}),VF=nn([ct("tabs"),ct("dom"),St("clickToDismiss",!1),Is("tabbarBehaviours",[cd,dg]),Yu(["tabClass","selectedClass"])]),NF=kl({factory:RF,name:"tabs",unit:"tab",overrides:function(o,n){function r(n,t){cd.dehighlight(n,t),qt(n,Wo(),{tabbar:n,button:t})}function i(n,t){cd.highlight(n,t),qt(n,Uo(),{tabbar:n,button:t})}return{action:function(n){var t=n.getSystem().getByUid(o.uid).getOrDie(),e=cd.isHighlighted(t,n);(e&&o.clickToDismiss?r:e?Z:i)(t,n)},domModification:{classes:[o.markers.tabClass]}}}}),HF=nn([NF]),PF=_l({name:"Tabbar",configFields:VF(),partFields:HF(),factory:function(n,t,e,o){return{uid:n.uid,dom:n.dom,components:t,"debug.sketcher":"Tabbar",domModification:{attributes:{role:"tablist"}},behaviours:Vs(n.tabbarBehaviours,[cd.config({highlightClass:n.markers.selectedClass,itemClass:n.markers.tabClass,onHighlight:function(n,t){_r(t.element(),"aria-selected","true")},onDehighlight:function(n,t){_r(t.element(),"aria-selected","false")}}),dg.config({mode:"flow",getInitial:function(n){return cd.getHighlighted(n).map(function(n){return n.element()})},selector:"."+n.markers.tabClass,executeOnMove:!0})])}}}),zF=Al({name:"Tabview",configFields:[Is("tabviewBehaviours",[gg])],factory:function(n,t){return{uid:n.uid,dom:n.dom,behaviours:Vs(n.tabviewBehaviours,[gg.config({})]),domModification:{attributes:{role:"tabpanel"}}}}}),LF=nn([St("selectFirst",!0),Ku("onChangeTab"),Ku("onDismissTab"),St("tabs",[]),Is("tabSectionBehaviours",[])]),jF=wl({factory:PF,schema:[ct("dom"),mt("markers",[ct("tabClass"),ct("selectedClass")])],name:"tabbar",defaults:function(n){return{tabs:n.tabs}}}),UF=wl({factory:zF,name:"tabview"}),WF=nn([jF,UF]),GF=_l({name:"TabSection",configFields:LF(),partFields:WF(),factory:function(r,n,t,e){function o(n,t){Ks(n,r,"tabbar").each(function(n){t(n).each(Kt)})}return{uid:r.uid,dom:r.dom,components:n,behaviours:Rs(r.tabSectionBehaviours),events:tr(H([r.selectFirst?[Ri(function(n,t){o(n,cd.getFirst)})]:[],[rr(Uo(),function(n,t){!function(o){var t=nl.getValue(o);Ks(o,r,"tabview").each(function(e){T(r.tabs,function(n){return n.value===t}).each(function(n){var t=n.view();_r(e.element(),"aria-labelledby",Mr(o.element(),"id")),gg.set(e,t),r.onChangeTab(e,o,t)})})}(t.event().button())}),rr(Wo(),function(n,t){var e=t.event().button();r.onDismissTab(n,e)})]])),apis:{getViewItems:function(n){return Ks(n,r,"tabview").map(function(n){return gg.contents(n)}).getOr([])},showTab:function(n,e){o(n,function(t){var n=cd.getCandidates(t);return T(n,function(n){return nl.getValue(n)===e}).filter(function(n){return!cd.isHighlighted(t,n)})})}}}},apis:{getViewItems:function(n,t){return n.getViewItems(t)},showTab:function(n,t,e){n.showTab(t,e)}}}),XF="send-data-to-section",YF="send-data-to-view",qF=Hr("update-dialog"),KF=Hr("update-title"),JF=Hr("update-body"),$F=Hr("update-footer"),QF=Hr("body-send-message"),ZF=function(i,n){function t(n,r){return rr(n,function(e,o){u(e,function(n,t){r(i(),n,o.event(),e)})})}var u=function(t,e){LE.getState(t).get().each(function(n){e(n,t)})};return g(z_(t,n),[t(fy,function(n,t,e){t.onAction(n,{name:e.name()})})])},nI=function(i,n){function t(n,r){return rr(n,function(e,o){u(e,function(n,t){r(i(),n,o.event(),e)})})}var u=function(t,e){LE.getState(t).get().each(function(n){e(n.internalDialog,t)})};return g(z_(t,n),[t(ly,function(n,t){return t.onSubmit(n)}),t(ay,function(n,t,e){t.onChange(n,{name:e.name()})}),t(fy,function(n,t,e,o){function r(){return dg.focusIn(o)}var i=Ca();t.onAction(n,{name:e.name(),value:e.value()}),Ca().fold(function(){r()},function(n){!to(o.element(),n)||Fr(n,"disabled")?r():to(n,i.getOrNull())&&Fr(i.getOrDie(),"disabled")&&r()})}),t(gy,function(n,t,e){t.onTabChange(n,{newTabName:e.name(),oldTabName:e.oldName()})}),Vi(function(n){var t=i();nl.setValue(n,t.getData())})])},tI=ph.deviceType.isTouch(),eI=tinymce.util.Tools.resolve("tinymce.util.URI"),oI=["insertContent","setContent","execCommand","close","block","unblock"],rI=function(n){var l=n.backstage,d=n.editor,m=Qb(d),e=function(c){var s=c.backstage.shared;return{open:function(n,t){function e(){SM.hide(u),t()}var o=bm(ZC({name:"close-alert",text:"OK",primary:!0,align:"end",disabled:!1,icon:on.none()},"cancel",c.backstage)),r=q_(),i=Y_(e,s.providers),u=au(Q_({lazySink:function(){return s.getSink()},header:X_(r,i),body:K_(n,s.providers),footer:on.some(J_($_([],[o.asSpec()]))),onEscape:e,extraClasses:["tox-alert-dialog"],extraBehaviours:[],extraStyles:{},dialogEvents:[rr(sy,e)],eventOrder:{}}));SM.show(u);var a=o.get(u);bg.focus(a)}}}(n),o=function(s){var f=s.backstage.shared;return{open:function(n,t){function e(n){SM.hide(a),t(n)}var o=bm(ZC({name:"yes",text:"Yes",primary:!0,align:"end",disabled:!1,icon:on.none()},"submit",s.backstage)),r=ZC({name:"no",text:"No",primary:!0,align:"end",disabled:!1,icon:on.none()},"cancel",s.backstage),i=q_(),u=Y_(function(){return e(!1)},f.providers),a=au(Q_({lazySink:function(){return f.getSink()},header:X_(i,u),body:K_(n,f.providers),footer:on.some(J_($_([],[r,o.asSpec()]))),onEscape:function(){return e(!1)},extraClasses:["tox-confirm-dialog"],extraBehaviours:[],extraStyles:{},dialogEvents:[rr(sy,function(){return e(!1)}),rr(ly,function(){return e(!0)})],eventOrder:{}}));SM.show(a);var c=o.get(a);bg.focus(c)}}}(n),r=function(n,e){return IF.openUrl(function(n){var t=fM(n,{closeWindow:function(){SM.hide(t.dialog),e(t.instanceApi)}},d,l);return SM.show(t.dialog),t.instanceApi},n)},i=function(n,i){return IF.open(function(n,t,e){var o=t,r=aM({dataValidator:e,initialData:o,internalDialog:n},{redial:IF.redial,closeWindow:function(){SM.hide(r.dialog),i(r.instanceApi)}},l);return SM.show(r.dialog),r.instanceApi.setData(o),r.instanceApi},n)},u=function(n,c,s,f){return IF.open(function(n,t,e){function o(){return i.on(function(n){lA.refresh(n)})}var r=function(n,t){return et(tt("data",t,n))}(t,e),i=function(){var t=Ee(on.none());return{clear:function(){t.set(on.none())},set:function(n){t.set(on.some(n))},isSet:function(){return t.get().isSome()},on:function(n){t.get().each(n)}}}(),u=cM({dataValidator:e,initialData:r,internalDialog:n},{redial:IF.redial,closeWindow:function(){i.on(Ug.hide),d.off("ResizeEditor",o),i.clear(),s(u.instanceApi)}},l,f),a=au(Ug.sketch({lazySink:l.shared.getSink,dom:{tag:"div",classes:[]},fireDismissalEventInstead:{},inlineBehaviours:ya(g([Jd("window-manager-inline-events",[rr(Po(),function(n,t){Yt(u.dialog,sy)})])],function(n,t){return t?[]:[lA.config({contextual:{lazyContext:function(){return on.some(wu(Be.fromDom(n.getContentAreaContainer())))},fadeInClass:"tox-dialog-dock-fadein",fadeOutClass:"tox-dialog-dock-fadeout",transitionClass:"tox-dialog-dock-transition"},leftAttr:"data-dock-left",topAttr:"data-dock-top",positionAttr:"data-dock-pos",modes:["top"]})]}(d,m)))}));return i.set(a),Ug.showWithin(a,c,cu(u.dialog),on.some(Mi())),m||(lA.refresh(a),d.on("ResizeEditor",o)),u.instanceApi.setData(r),dg.focusIn(u.dialog),u.instanceApi},n)};return{open:function(n,t,e){return t!==undefined&&"toolbar"===t.inline?u(n,l.shared.anchors.toolbar(),e,t.ariaAttrs):t!==undefined&&"cursor"===t.inline?u(n,l.shared.anchors.cursor(),e,t.ariaAttrs):i(n,e)},openUrl:function(n,t){return r(n,t)},alert:function(n,t){e.open(n,function(){t()})},close:function(n){n.close()},confirm:function(n,t){o.open(n,function(n){t(n)})}}};!function gI(){n.add("silver",function(n){var t=vM(n),e=t.uiMothership,o=t.backstage,r=t.renderUI,i=t.getUi;mb(n,o.shared);var u=rI({editor:n,backstage:o});return{renderUI:r,getWindowManagerImpl:nn(u),getNotificationManagerImpl:function(){return Jg(0,{backstage:o},e)},ui:i()}})}()}(window);
\ No newline at end of file
+++ /dev/null
-/**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.1.3 (2019-12-04)
- */
-!function(j){"use strict";function i(){}var q=function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,e))}},$=function(e){return function(){return e}},W=function(e){return e};function d(r){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=o.concat(e);return r.apply(null,n)}}function s(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,e)}}function e(){return u}var t,c=$(!1),a=$(!0),u=(t={fold:function(e,t){return e()},is:c,isSome:c,isNone:a,getOr:o,getOrThunk:r,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:$(null),getOrUndefined:$(undefined),or:o,orThunk:r,map:e,each:i,bind:e,exists:c,forall:a,filter:e,equals:n,equals_:n,toArray:function(){return[]},toString:$("none()")},Object.freeze&&Object.freeze(t),t);function n(e){return e.isNone()}function r(e){return e()}function o(e){return e}function l(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"==t&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":t}(e)===t}}function f(e,t){return O.call(e,t)}function h(e,t){return-1<f(e,t)}function C(e,t){for(var n=0,r=e.length;n<r;n++){if(t(e[n],n))return!0}return!1}function z(e,t){for(var n=0,r=e.length;n<r;n++){t(e[n],n)}}function y(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r)&&n.push(i)}return n}function m(e,t,n){return function(e,t){for(var n=e.length-1;0<=n;n--){t(e[n],n)}}(e,function(e){n=t(n,e)}),n}function b(e,t,n){return z(e,function(e){n=t(n,e)}),n}function g(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n))return k.some(o)}return k.none()}function p(e,t){for(var n=0,r=e.length;n<r;n++){if(t(e[n],n))return k.some(n)}return k.none()}function v(e,t){return function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!A(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);H.apply(t,e[n])}return t}(X(e,t))}function w(e,t){for(var n=0,r=e.length;n<r;++n){if(!0!==t(e[n],n))return!1}return!0}function x(e,t){return y(e,function(e){return!h(t,e)})}function E(e){return 0===e.length?k.none():k.some(e[0])}function N(e){return 0===e.length?k.none():k.some(e[e.length-1])}var S=function(n){function e(){return o}function t(e){return e(n)}var r=$(n),o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:a,isNone:c,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:e,orThunk:e,map:function(e){return S(e(n))},each:function(e){e(n)},bind:t,exists:t,forall:t,filter:function(e){return e(n)?o:u},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(c,function(e){return t(n,e)})}};return o},k={some:S,none:e,from:function(e){return null===e||e===undefined?u:S(e)}},K=l("string"),T=l("object"),A=l("array"),M=l("null"),R=l("boolean"),D=l("function"),_=l("number"),B=Array.prototype.slice,O=Array.prototype.indexOf,H=Array.prototype.push,X=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o)}return r},Y=function(e,t){for(var n=[],r=[],o=0,i=e.length;o<i;o++){var a=e[o];(t(a,o)?n:r).push(a)}return{pass:n,fail:r}},P=D(Array.from)?Array.from:function(e){return B.call(e)},G=function(){return(G=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function L(t){return function(e){return!!e&&e.nodeType===t}}function V(e){var n=e.map(function(e){return e.toLowerCase()});return function(e){if(e&&e.nodeName){var t=e.nodeName.toLowerCase();return h(n,t)}return!1}}function I(t){return function(e){if(Fe(e)){if(e.contentEditable===t)return!0;if(e.getAttribute("data-mce-contenteditable")===t)return!0}return!1}}function F(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};function r(e){return Number(t.replace(n,"$"+e))}return Ze(r(1),r(2))}function U(e,t){return function(){return t===e}}function J(e,t){return function(){return t===e}}function Q(e,t){var n=String(t).toLowerCase();return g(e,function(e){return e.search(n)})}function Z(e,t){return-1!==e.indexOf(t)}function ee(e,t){return function(e,t,n){return""===t||!(e.length<t.length)&&e.substr(n,n+t.length)===t}(e,t,0)}function te(e){return e.replace(/^\s+|\s+$/g,"")}function ne(e){return e.replace(/\s+$/g,"")}function re(t){return function(e){return Z(e,t)}}function oe(){return pt.get()}function ie(e){return e.dom().nodeName.toLowerCase()}function ae(t){return function(e){return function(e){return e.dom().nodeType}(e)===t}}function ue(e,t){for(var n=Et(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i)}}function se(e,n){return St(e,function(e,t){return{k:t,v:n(e,t)}})}function ce(e,n){var r={},o={};return ue(e,function(e,t){(n(e,t)?r:o)[t]=e}),{t:r,f:o}}function le(e,t){return kt(e,t)?k.from(e[t]):k.none()}function fe(e){return e.style!==undefined&&D(e.style.getPropertyValue)}function de(e){var t=zt(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}function he(e,t,n){if(!(K(n)||R(n)||_(n)))throw j.console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")}function me(e,t){var n=e.dom();ue(t,function(e,t){he(n,t,e)})}function ge(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n}function pe(e,t){e.dom().removeAttribute(t)}function ve(e,t){var n=e.dom(),r=j.window.getComputedStyle(n).getPropertyValue(t),o=""!==r||de(e)?r:At(n,t);return null===o?undefined:o}function ye(e,t){var n=e.dom(),r=At(n,t);return k.from(r).filter(function(e){return 0<e.length})}function be(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var r={};return z(t,function(e,t){r[e]=$(n[t])}),r}}function Ce(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)}function we(e,t){var n=e.dom();if(n.nodeType!==Dt)return!1;var r=n;if(r.matches!==undefined)return r.matches(t);if(r.msMatchesSelector!==undefined)return r.msMatchesSelector(t);if(r.webkitMatchesSelector!==undefined)return r.webkitMatchesSelector(t);if(r.mozMatchesSelector!==undefined)return r.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}function xe(e){return e.nodeType!==Dt&&e.nodeType!==_t||0===e.childElementCount}function ze(e,t){return e.dom()===t.dom()}function Ee(e){return yt.fromDom(e.dom().ownerDocument)}function Ne(e){return yt.fromDom(e.dom().ownerDocument.defaultView)}function Se(e){return k.from(e.dom().parentNode).map(yt.fromDom)}function ke(e){return k.from(e.dom().previousSibling).map(yt.fromDom)}function Te(e){return k.from(e.dom().nextSibling).map(yt.fromDom)}function Ae(e){return function(e){var t=B.call(e,0);return t.reverse(),t}(Mt(e,ke))}function Me(e){return Mt(e,Te)}function Re(e){return X(e.dom().childNodes,yt.fromDom)}function De(e,t){var n=e.dom().childNodes;return k.from(n[t]).map(yt.fromDom)}function _e(e){return De(e,0)}function Be(e){return De(e,e.dom().childNodes.length-1)}function Oe(e){return g(e,xt)}function He(e,t){return e.children&&h(e.children,t)}var Pe,Le,Ve,Ie,Fe=L(1),Ue=V(["textarea","input"]),je=L(3),qe=L(8),$e=L(9),We=L(11),Ke=V(["br"]),Xe=I("true"),Ye=I("false"),Ge={isText:je,isElement:Fe,isComment:qe,isDocument:$e,isDocumentFragment:We,isBr:Ke,isContentEditableTrue:Xe,isContentEditableFalse:Ye,isRestrictedNode:function(e){return!!e&&!Object.getPrototypeOf(e)},matchNodeNames:V,hasPropValue:function(t,n){return function(e){return Fe(e)&&e[t]===n}},hasAttribute:function(t,e){return function(e){return Fe(e)&&e.hasAttribute(t)}},hasAttributeValue:function(t,n){return function(e){return Fe(e)&&e.getAttribute(t)===n}},matchStyleValues:function(r,e){var o=e.toLowerCase().split(" ");return function(e){var t;if(Fe(e))for(t=0;t<o.length;t++){var n=e.ownerDocument.defaultView.getComputedStyle(e,null);if((n?n.getPropertyValue(r):null)===o[t])return!0}return!1}},isBogus:function(e){return Fe(e)&&e.hasAttribute("data-mce-bogus")},isBogusAll:function(e){return Fe(e)&&"all"===e.getAttribute("data-mce-bogus")},isTable:function(e){return Fe(e)&&"TABLE"===e.tagName},isTextareaOrInput:Ue},Je=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return Je(t())}}},Qe=function(){return Ze(0,0)},Ze=function(e,t){return{major:e,minor:t}},et={nu:Ze,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?Qe():F(e,n)},unknown:Qe},tt="Firefox",nt=function(e){var t=e.current;return{current:t,version:e.version,isEdge:U("Edge",t),isChrome:U("Chrome",t),isIE:U("IE",t),isOpera:U("Opera",t),isFirefox:U(tt,t),isSafari:U("Safari",t)}},rt={unknown:function(){return nt({current:undefined,version:et.unknown()})},nu:nt,edge:$("Edge"),chrome:$("Chrome"),ie:$("IE"),opera:$("Opera"),firefox:$(tt),safari:$("Safari")},ot="Windows",it="Android",at="Solaris",ut="FreeBSD",st=function(e){var t=e.current;return{current:t,version:e.version,isWindows:J(ot,t),isiOS:J("iOS",t),isAndroid:J(it,t),isOSX:J("OSX",t),isLinux:J("Linux",t),isSolaris:J(at,t),isFreeBSD:J(ut,t)}},ct={unknown:function(){return st({current:undefined,version:et.unknown()})},nu:st,windows:$(ot),ios:$("iOS"),android:$(it),linux:$("Linux"),osx:$("OSX"),solaris:$(at),freebsd:$(ut)},lt=function(e,n){return Q(e,n).map(function(e){var t=et.detect(e.versionRegexes,n);return{current:e.name,version:t}})},ft=function(e,n){return Q(e,n).map(function(e){var t=et.detect(e.versionRegexes,n);return{current:e.name,version:t}})},dt=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,ht=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return Z(e,"edge/")&&Z(e,"chrome")&&Z(e,"safari")&&Z(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,dt],search:function(e){return Z(e,"chrome")&&!Z(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return Z(e,"msie")||Z(e,"trident")}},{name:"Opera",versionRegexes:[dt,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:re("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:re("firefox")},{name:"Safari",versionRegexes:[dt,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(Z(e,"safari")||Z(e,"mobile/"))&&Z(e,"applewebkit")}}],mt=[{name:"Windows",search:re("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return Z(e,"iphone")||Z(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:re("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:re("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:re("linux"),versionRegexes:[]},{name:"Solaris",search:re("sunos"),versionRegexes:[]},{name:"FreeBSD",search:re("freebsd"),versionRegexes:[]}],gt={browsers:$(ht),oses:$(mt)},pt=Je(function(e,t){var n=gt.browsers(),r=gt.oses(),o=lt(n,e).fold(rt.unknown,rt.nu),i=ft(r,e).fold(ct.unknown,ct.nu);return{browser:o,os:i,deviceType:function(e,t,n,r){var o=e.isiOS()&&!0===/ipad/i.test(n),i=e.isiOS()&&!o,a=e.isiOS()||e.isAndroid(),u=a||r("(pointer:coarse)"),s=o||!i&&a&&r("(min-device-width:768px)"),c=i||a&&!s,l=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(n),f=!c&&!s&&!l;return{isiPad:$(o),isiPhone:$(i),isTablet:$(s),isPhone:$(c),isTouch:$(u),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:$(l),isDesktop:$(f)}}(i,o,e,t)}}(j.navigator.userAgent,function(e){return j.window.matchMedia(e).matches})),vt=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:$(e)}},yt={fromHtml:function(e,t){var n=(t||j.document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw j.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return vt(n.childNodes[0])},fromTag:function(e,t){var n=(t||j.document).createElement(e);return vt(n)},fromText:function(e,t){var n=(t||j.document).createTextNode(e);return vt(n)},fromDom:vt,fromPoint:function(e,t,n){var r=e.dom();return k.from(r.elementFromPoint(t,n)).map(vt)}},bt=(j.Node.ATTRIBUTE_NODE,j.Node.CDATA_SECTION_NODE,j.Node.COMMENT_NODE,j.Node.DOCUMENT_NODE),Ct=(j.Node.DOCUMENT_TYPE_NODE,j.Node.DOCUMENT_FRAGMENT_NODE,j.Node.ELEMENT_NODE),wt=j.Node.TEXT_NODE,xt=(j.Node.PROCESSING_INSTRUCTION_NODE,j.Node.ENTITY_REFERENCE_NODE,j.Node.ENTITY_NODE,j.Node.NOTATION_NODE,"undefined"!=typeof j.window?j.window:Function("return this;")(),ae(Ct)),zt=ae(wt),Et=Object.keys,Nt=Object.hasOwnProperty,St=function(e,r){var o={};return ue(e,function(e,t){var n=r(e,t);o[n.k]=n.v}),o},kt=function(e,t){return Nt.call(e,t)},Tt=function(e,t,n){he(e.dom(),t,n)},At=function(e,t){return fe(e)?e.style.getPropertyValue(t):""},Mt=function(e,t){for(var n=[],r=function(e){return n.push(e),t(e)},o=t(e);(o=o.bind(r)).isSome(););return n},Rt=function(e,t){return Ce(e,t,j.Node.DOCUMENT_POSITION_CONTAINED_BY)},Dt=Ct,_t=bt,Bt=oe().browser.isIE()?function(e,t){return Rt(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},Ot=(be("element","offset"),oe().browser),Ht={getPos:function(e,t,n){var r,o,i=0,a=0,u=e.ownerDocument;if(n=n||e,t){if(n===e&&t.getBoundingClientRect&&"static"===ve(yt.fromDom(e),"position"))return{x:i=(o=t.getBoundingClientRect()).left+(u.documentElement.scrollLeft||e.scrollLeft)-u.documentElement.clientLeft,y:a=o.top+(u.documentElement.scrollTop||e.scrollTop)-u.documentElement.clientTop};for(r=t;r&&r!==n&&r.nodeType&&!He(r,n);)i+=r.offsetLeft||0,a+=r.offsetTop||0,r=r.offsetParent;for(r=t.parentNode;r&&r!==n&&r.nodeType&&!He(r,n);)i-=r.scrollLeft||0,a-=r.scrollTop||0,r=r.parentNode;a+=function(e){return Ot.isFirefox()&&"table"===ie(e)?Oe(Re(e)).filter(function(e){return"caption"===ie(e)}).bind(function(o){return Oe(Me(o)).map(function(e){var t=e.dom().offsetTop,n=o.dom().offsetTop,r=o.dom().offsetHeight;return t<=n?-r:0})}).getOr(0):0}(yt.fromDom(t))}return{x:i,y:a}}},Pt={},Lt={exports:Pt};Pe=undefined,Le=Pt,Ve=Lt,Ie=undefined,function(e){"object"==typeof Le&&void 0!==Ve?Ve.exports=e():"function"==typeof Pe&&Pe.amd?Pe([],e):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EphoxContactWrapper=e()}(function(){return function l(i,a,u){function s(t,e){if(!a[t]){if(!i[t]){var n="function"==typeof Ie&&Ie;if(!e&&n)return n(t,!0);if(c)return c(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var o=a[t]={exports:{}};i[t][0].call(o.exports,function(e){return s(i[t][1][e]||e)},o,o.exports,l,i,a,u)}return a[t].exports}for(var c="function"==typeof Ie&&Ie,e=0;e<u.length;e++)s(u[e]);return s}({1:[function(e,t,n){var r,o,i=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(e){r=a}try{o="function"==typeof clearTimeout?clearTimeout:u}catch(e){o=u}}();var c,l=[],f=!1,d=-1;function h(){f&&c&&(f=!1,c.length?l=c.concat(l):d=-1,l.length&&m())}function m(){if(!f){var e=s(h);f=!0;for(var t=l.length;t;){for(c=l,l=[];++d<t;)c&&c[d].run();d=-1,t=l.length}c=null,f=!1,function n(e){if(o===clearTimeout)return clearTimeout(e);if((o===u||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(e);try{return o(e)}catch(t){try{return o.call(null,e)}catch(t){return o.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function p(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(1<arguments.length)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new g(e,t)),1!==l.length||f||s(m)},g.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=p,i.addListener=p,i.once=p,i.off=p,i.removeListener=p,i.removeAllListeners=p,i.emit=p,i.prependListener=p,i.prependOnceListener=p,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],2:[function(e,f,t){(function(t){function r(){}function i(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],l(e,this)}function o(r,o){for(;3===r._state;)r=r._value;0!==r._state?(r._handled=!0,i._immediateFn(function(){var e=1===r._state?o.onFulfilled:o.onRejected;if(null!==e){var t;try{t=e(r._value)}catch(n){return void u(o.promise,n)}a(o.promise,t)}else(1===r._state?a:u)(o.promise,r._value)})):r._deferreds.push(o)}function a(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if(t instanceof i)return e._state=3,e._value=t,void s(e);if("function"==typeof n)return void l(function r(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,s(e)}catch(o){u(e,o)}}function u(e,t){e._state=2,e._value=t,s(e)}function s(e){2===e._state&&0===e._deferreds.length&&i._immediateFn(function(){e._handled||i._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t<n;t++)o(e,e._deferreds[t]);e._deferreds=null}function c(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}function l(e,t){var n=!1;try{e(function(e){n||(n=!0,a(t,e))},function(e){n||(n=!0,u(t,e))})}catch(r){if(n)return;n=!0,u(t,r)}}var e,n;e=this,n=setTimeout,i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var n=new this.constructor(r);return o(this,new c(e,t,n)),n},i.all=function(e){var s=Array.prototype.slice.call(e);return new i(function(o,i){if(0===s.length)return o([]);var a=s.length;function u(t,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void n.call(e,function(e){u(t,e)},i)}s[t]=e,0==--a&&o(s)}catch(r){i(r)}}for(var e=0;e<s.length;e++)u(e,s[e])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(n){return new i(function(e,t){t(n)})},i.race=function(o){return new i(function(e,t){for(var n=0,r=o.length;n<r;n++)o[n].then(e,t)})},i._immediateFn="function"==typeof t?function(e){t(e)}:function(e){n(e,0)},i._unhandledRejectionFn=function(e){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)},i._setImmediateFn=function(e){i._immediateFn=e},i._setUnhandledRejectionFn=function(e){i._unhandledRejectionFn=e},void 0!==f&&f.exports?f.exports=i:e.Promise||(e.Promise=i)}).call(this,e("timers").setImmediate)},{timers:3}],3:[function(s,e,c){(function(e,t){var r=s("process/browser.js").nextTick,n=Function.prototype.apply,o=Array.prototype.slice,i={},a=0;function u(e,t){this._id=e,this._clearFn=t}c.setTimeout=function(){return new u(n.call(setTimeout,window,arguments),clearTimeout)},c.setInterval=function(){return new u(n.call(setInterval,window,arguments),clearInterval)},c.clearTimeout=c.clearInterval=function(e){e.close()},u.prototype.unref=u.prototype.ref=function(){},u.prototype.close=function(){this._clearFn.call(window,this._id)},c.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},c.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},c._unrefActive=c.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;0<=t&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},c.setImmediate="function"==typeof e?e:function(e){var t=a++,n=!(arguments.length<2)&&o.call(arguments,1);return i[t]=!0,r(function(){i[t]&&(n?e.apply(null,n):e.call(null),c.clearImmediate(t))}),t},c.clearImmediate="function"==typeof t?t:function(e){delete i[e]}}).call(this,s("timers").setImmediate,s("timers").clearImmediate)},{"process/browser.js":1,timers:3}],4:[function(e,t,n){var r=e("promise-polyfill"),o="undefined"!=typeof window?window:Function("return this;")();t.exports={boltExport:o.Promise||r}},{"promise-polyfill":2}]},{},[4])(4)});function Vt(e){j.setTimeout(function(){throw e},0)}function It(i,e){return e(function(n){var r=[],o=0;0===i.length?n([]):z(i,function(e,t){e.get(function(t){return function(e){r[t]=e,++o>=i.length&&n(r)}}(t))})})}var Ft,Ut,jt,qt=Lt.exports.boltExport,$t=function(e){var n=k.none(),t=[],r=function(e){o()?a(e):t.push(e)},o=function(){return n.isSome()},i=function(e){z(e,a)},a=function(t){n.each(function(e){j.setTimeout(function(){t(e)},0)})};return e(function(e){n=k.some(e),i(t),t=[]}),{get:r,map:function(n){return $t(function(t){r(function(e){t(n(e))})})},isReady:o}},Wt={nu:$t,pure:function(t){return $t(function(e){e(t)})}},Kt=function(n){function e(e){n().then(e,Vt)}return{map:function(e){return Kt(function(){return n().then(e)})},bind:function(t){return Kt(function(){return n().then(function(e){return t(e).toPromise()})})},anonBind:function(e){return Kt(function(){return n().then(function(){return e.toPromise()})})},toLazy:function(){return Wt.nu(e)},toCached:function(){var e=null;return Kt(function(){return null===e&&(e=n()),e})},toPromise:n,get:e}},Xt={nu:function(e){return Kt(function(){return new qt(e)})},pure:function(e){return Kt(function(){return qt.resolve(e)})}},Yt=function(e){return It(e,Xt.nu)},Gt=function(n){return{is:function(e){return n===e},isValue:a,isError:c,getOr:$(n),getOrThunk:$(n),getOrDie:$(n),or:function(e){return Gt(n)},orThunk:function(e){return Gt(n)},fold:function(e,t){return t(n)},map:function(e){return Gt(e(n))},mapError:function(e){return Gt(n)},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return k.some(n)}}},Jt=function(n){return{is:c,isValue:c,isError:a,getOr:W,getOrThunk:function(e){return e()},getOrDie:function(){return function(e){return function(){throw new Error(e)}}(String(n))()},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return Jt(n)},mapError:function(e){return Jt(e(n))},each:i,bind:function(e){return Jt(n)},exists:c,forall:a,toOption:k.none}},Qt={value:Gt,error:Jt,fromOption:function(e,t){return e.fold(function(){return Jt(t)},Gt)}},Zt=window.Promise?window.Promise:(Ft=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ut=tn.immediateFn||"function"==typeof j.setImmediate&&j.setImmediate||function(e){j.setTimeout(e,1)},tn.prototype["catch"]=function(e){return this.then(null,e)},tn.prototype.then=function(n,r){var o=this;return new tn(function(e,t){nn.call(o,new un(n,r,e,t))})},tn.all=function(){var s=Array.prototype.slice.call(1===arguments.length&&Ft(arguments[0])?arguments[0]:arguments);return new tn(function(o,i){if(0===s.length)return o([]);var a=s.length;function u(t,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void n.call(e,function(e){u(t,e)},i)}s[t]=e,0==--a&&o(s)}catch(r){i(r)}}for(var e=0;e<s.length;e++)u(e,s[e])})},tn.resolve=function(t){return t&&"object"==typeof t&&t.constructor===tn?t:new tn(function(e){e(t)})},tn.reject=function(n){return new tn(function(e,t){t(n)})},tn.race=function(o){return new tn(function(e,t){for(var n=0,r=o.length;n<r;n++)o[n].then(e,t)})},tn);function en(e,t){return function(){e.apply(t,arguments)}}function tn(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],sn(e,en(rn,this),en(on,this))}function nn(r){var o=this;null!==this._state?Ut(function(){var e=o._state?r.onFulfilled:r.onRejected;if(null!==e){var t;try{t=e(o._value)}catch(n){return void r.reject(n)}r.resolve(t)}else(o._state?r.resolve:r.reject)(o._value)}):this._deferreds.push(r)}function rn(e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void sn(en(t,e),en(rn,this),en(on,this))}this._state=!0,this._value=e,an.call(this)}catch(n){on.call(this,n)}}function on(e){this._state=!1,this._value=e,an.call(this)}function an(){for(var e=0,t=this._deferreds.length;e<t;e++)nn.call(this,this._deferreds[e]);this._deferreds=null}function un(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function sn(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(o){if(r)return;r=!0,n(o)}}function cn(e,t){return"number"!=typeof t&&(t=0),j.setTimeout(e,t)}function ln(e,t){return"number"!=typeof t&&(t=1),j.setInterval(e,t)}function fn(n,r){var o,e;return(e=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];j.clearTimeout(o),o=cn(function(){n.apply(this,e)},r)}).stop=function(){j.clearTimeout(o)},e}function dn(e,t,n){var r,o;if(!e)return 0;if(n=n||e,e.length!==undefined){for(r=0,o=e.length;r<o;r++)if(!1===t.call(n,e[r],r,e))return 0}else for(r in e)if(e.hasOwnProperty(r)&&!1===t.call(n,e[r],r,e))return 0;return 1}function hn(e,t,n){var r,o;for(r=0,o=e.length;r<o;r++)if(t.call(n,e[r],r,e))return r;return-1}function mn(e){return null===e||e===undefined?"":(""+e).replace(Tn,"")}function gn(e,t){return t?!("array"!==t||!kn.isArray(e))||typeof e===t:e!==undefined}var pn={requestAnimationFrame:function(e,t){jt?jt.then(e):jt=new Zt(function(e){!function(e,t){var n,r=j.window.requestAnimationFrame,o=["ms","moz","webkit"];for(n=0;n<o.length&&!r;n++)r=j.window[o[n]+"RequestAnimationFrame"];(r=r||function(e){j.window.setTimeout(e,0)})(e,t)}(e,t=t||j.document.body)}).then(e)},setTimeout:cn,setInterval:ln,setEditorTimeout:function(e,t,n){return cn(function(){e.removed||t()},n)},setEditorInterval:function(e,t,n){var r;return r=ln(function(){e.removed?j.clearInterval(r):t()},n)},debounce:fn,throttle:fn,clearInterval:function(e){return j.clearInterval(e)},clearTimeout:function(e){return j.clearTimeout(e)}},vn=j.navigator.userAgent,yn=oe(),bn=yn.browser,Cn=yn.os,wn=yn.deviceType,xn=/WebKit/.test(vn)&&!bn.isEdge(),zn="FormData"in j.window&&"FileReader"in j.window&&"URL"in j.window&&!!j.URL.createObjectURL,En=-1!==vn.indexOf("Windows Phone"),Nn={opera:bn.isOpera(),webkit:xn,ie:!(!bn.isIE()&&!bn.isEdge())&&bn.version.major,gecko:bn.isFirefox(),mac:Cn.isOSX()||Cn.isiOS(),iOS:wn.isiPad()||wn.isiPhone(),android:Cn.isAndroid(),contentEditable:!0,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:!0,range:j.window.getSelection&&"Range"in j.window,documentMode:bn.isIE()?j.document.documentMode||7:10,fileApi:zn,ceFalse:!0,cacheSuffix:null,container:null,experimentalShadowDom:!1,canHaveCSP:!bn.isIE(),desktop:wn.isDesktop(),windowsPhone:En,browser:{current:bn.current,version:bn.version,isChrome:bn.isChrome,isEdge:bn.isEdge,isFirefox:bn.isFirefox,isIE:bn.isIE,isOpera:bn.isOpera,isSafari:bn.isSafari},os:{current:Cn.current,version:Cn.version,isAndroid:Cn.isAndroid,isFreeBSD:Cn.isFreeBSD,isiOS:Cn.isiOS,isLinux:Cn.isLinux,isOSX:Cn.isOSX,isSolaris:Cn.isSolaris,isWindows:Cn.isWindows},deviceType:{isDesktop:wn.isDesktop,isiPad:wn.isiPad,isiPhone:wn.isiPhone,isPhone:wn.isPhone,isTablet:wn.isTablet,isTouch:wn.isTouch,isWebView:wn.isWebView}},Sn=Array.isArray,kn={isArray:Sn,toArray:function(e){var t,n,r=e;if(!Sn(e))for(r=[],t=0,n=e.length;t<n;t++)r[t]=e[t];return r},each:dn,map:function(n,r){var o=[];return dn(n,function(e,t){o.push(r(e,t,n))}),o},filter:function(n,r){var o=[];return dn(n,function(e,t){r&&!r(e,t,n)||o.push(e)}),o},indexOf:function(e,t){var n,r;if(e)for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},reduce:function(e,t,n,r){var o=0;for(arguments.length<3&&(n=e[0]);o<e.length;o++)n=t.call(r,n,e[o],o);return n},findIndex:hn,find:function(e,t,n){var r=hn(e,t,n);return-1!==r?e[r]:undefined},last:function(e){return e[e.length-1]}},Tn=/^\s*|\s*$/g,An=function(e,n,r,o){o=o||this,e&&(r&&(e=e[r]),kn.each(e,function(e,t){if(!1===n.call(o,e,t,r))return!1;An(e,n,r,o)}))},Mn={trim:mn,isArray:kn.isArray,is:gn,toArray:kn.toArray,makeMap:function(e,t,n){var r;for(t=t||",","string"==typeof(e=e||[])&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n},each:kn.each,map:kn.map,grep:kn.filter,inArray:kn.indexOf,hasOwn:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},extend:function(e,t){for(var n,r,o,i=[],a=2;a<arguments.length;a++)i[a-2]=arguments[a];var u,s=arguments;for(n=1,r=s.length;n<r;n++)for(o in t=s[n])t.hasOwnProperty(o)&&(u=t[o])!==undefined&&(e[o]=u);return e},create:function(e,t,n){var r,o,i,a,u,s=this,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),i=e[3].match(/(^|\.)(\w+)$/i)[2],!(o=s.createNS(e[3].replace(/\.\w+$/,""),n))[i]){if("static"===e[2])return o[i]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[i]));t[i]||(t[i]=function(){},c=1),o[i]=t[i],s.extend(o[i].prototype,t),e[5]&&(r=s.resolve(e[5]).prototype,a=e[5].match(/\.(\w+)$/i)[1],u=o[i],o[i]=c?function(){return r[a].apply(this,arguments)}:function(){return this.parent=r[a],u.apply(this,arguments)},o[i].prototype[i]=o[i],s.each(r,function(e,t){o[i].prototype[t]=r[t]}),s.each(t,function(e,t){r[t]?o[i].prototype[t]=function(){return this.parent=r[t],e.apply(this,arguments)}:t!==i&&(o[i].prototype[t]=e)})),s.each(t["static"],function(e,t){o[i][t]=e})}},walk:An,createNS:function(e,t){var n,r;for(t=t||j.window,e=e.split("."),n=0;n<e.length;n++)t[r=e[n]]||(t[r]={}),t=t[r];return t},resolve:function(e,t){var n,r;for(t=t||j.window,n=0,r=(e=e.split(".")).length;n<r&&(t=t[e[n]]);n++);return t},explode:function(e,t){return!e||gn(e,"array")?e:kn.map(e.split(t||","),mn)},_addCacheSuffix:function(e){var t=Nn.cacheSuffix;return t&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}};function Rn(t){var n;return function(e){return(n=n||function(e,t){for(var n={},r=0,o=e.length;r<o;r++){var i=e[r];n[String(i)]=t(i,r)}return n}(t,$(!0))).hasOwnProperty(ie(e))}}function Dn(e){return xt(e)&&!Vn(e)}function _n(e){return xt(e)&&"br"===ie(e)}function Bn(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")}var On,Hn,Pn,Ln=Rn(["h1","h2","h3","h4","h5","h6"]),Vn=Rn(["article","aside","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","address","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"]),In=Rn(["h1","h2","h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"]),Fn=Rn(["ul","ol","dl"]),Un=Rn(["li","dd","dt"]),jn=Rn(["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param","embed","source","wbr","track"]),qn=Rn(["thead","tbody","tfoot"]),$n=Rn(["td","th"]),Wn=Rn(["pre","script","textarea","style"]),Kn=function(e,t){var n,r=t.childNodes;if(!Ge.isElement(t)||!Bn(t)){for(n=r.length-1;0<=n;n--)Kn(e,r[n]);if(!1===Ge.isDocument(t)){if(Ge.isText(t)&&0<t.nodeValue.length){var o=Mn.trim(t.nodeValue).length;if(e.isBlock(t.parentNode)||0<o)return;if(0===o&&function(e){var t=e.previousSibling&&"SPAN"===e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"===e.nextSibling.nodeName;return t&&n}(t))return}else if(Ge.isElement(t)&&(1===(r=t.childNodes).length&&Bn(r[0])&&t.parentNode.insertBefore(r[0],t),r.length||jn(yt.fromDom(t))))return;e.remove(t)}return t}},Xn={trimNode:Kn},Yn=Mn.makeMap,Gn=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Jn=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Qn=/[<>&\"\']/g,Zn=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,er={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};Hn={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},Pn={"<":"<",">":">","&":"&",""":'"',"'":"'"};function tr(e,t){var n,r,o,i={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),Hn[r]||(o="&"+e[n+1]+";",i[r]=o,i[o]=r);return i}}On=tr("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);function nr(e,t){return e.replace(t?Gn:Jn,function(e){return Hn[e]||e})}function rr(e,t){return e.replace(t?Gn:Jn,function(e){return 1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":Hn[e]||"&#"+e.charCodeAt(0)+";"})}function or(e,t,n){return n=n||On,e.replace(t?Gn:Jn,function(e){return Hn[e]||n[e]||e})}var ir={encodeRaw:nr,encodeAllRaw:function(e){return(""+e).replace(Qn,function(e){return Hn[e]||e})},encodeNumeric:rr,encodeNamed:or,getEncodeFunc:function(e,t){var n=tr(t)||On,r=Yn(e.replace(/\+/g,","));return r.named&&r.numeric?function(e,t){return e.replace(t?Gn:Jn,function(e){return Hn[e]!==undefined?Hn[e]:n[e]!==undefined?n[e]:1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":"&#"+e.charCodeAt(0)+";"})}:r.named?t?function(e,t){return or(e,t,n)}:or:r.numeric?rr:nr},decode:function(e){return e.replace(Zn,function(e,t){return t?65535<(t="x"===t.charAt(0).toLowerCase()?parseInt(t.substr(1),16):parseInt(t,10))?(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t))):er[t]||String.fromCharCode(t):Pn[e]||On[e]||function(e){var t;return(t=yt.fromTag("div").dom()).innerHTML=e,t.textContent||t.innerText||e}(e)})}},ar={},ur={},sr=Mn.makeMap,cr=Mn.each,lr=Mn.extend,fr=Mn.explode,dr=Mn.inArray,hr=function(e,t){return(e=Mn.trim(e))?e.split(t||" "):[]},mr=function(e){function t(e,t,n){function r(e,t){var n,r,o={};for(n=0,r=e.length;n<r;n++)o[e[n]]=t||{};return o}var o,i,a;for(t=t||"","string"==typeof(n=n||[])&&(n=hr(n)),o=(e=hr(e)).length;o--;)a={attributes:r(i=hr([u,t].join(" "))),attributesOrder:i,children:r(n,ur)},c[e[o]]=a}function n(e,t){var n,r,o,i;for(n=(e=hr(e)).length,t=hr(t);n--;)for(r=c[e[n]],o=0,i=t.length;o<i;o++)r.attributes[t[o]]={},r.attributesOrder.push(t[o])}var u,r,o,i,a,s,c={};return ar[e]?ar[e]:(u="id accesskey class dir lang style tabindex title role",r="address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul",o="a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment","html4"!==e&&(u+=" contenteditable contextmenu draggable dropzone hidden spellcheck translate",r+=" article aside details dialog figure main header footer hgroup section nav",o+=" audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"),"html5-strict"!==e&&(u+=" xml:lang",o=[o,s="acronym applet basefont big font strike tt"].join(" "),cr(hr(s),function(e){t(e,"",o)}),r=[r,a="center dir isindex noframes"].join(" "),i=[r,o].join(" "),cr(hr(a),function(e){t(e,"",i)})),i=i||[r,o].join(" "),t("html","manifest","head body"),t("head","","base command link meta noscript script style title"),t("title hr noscript br"),t("base","href target"),t("link","href rel media hreflang type sizes hreflang"),t("meta","name http-equiv content charset"),t("style","media type scoped"),t("script","src async defer type charset"),t("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",i),t("address dt dd div caption","",i),t("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",o),t("blockquote","cite",i),t("ol","reversed start type","li"),t("ul","","li"),t("li","value",i),t("dl","","dt dd"),t("a","href target rel media hreflang type",o),t("q","cite",o),t("ins del","cite datetime",i),t("img","src sizes srcset alt usemap ismap width height"),t("iframe","src name width height",i),t("embed","src type width height"),t("object","data type typemustmatch name usemap form width height",[i,"param"].join(" ")),t("param","name value"),t("map","name",[i,"area"].join(" ")),t("area","alt coords shape href target rel media hreflang type"),t("table","border","caption colgroup thead tfoot tbody tr"+("html4"===e?" col":"")),t("colgroup","span","col"),t("col","span"),t("tbody thead tfoot","","tr"),t("tr","","td th"),t("td","colspan rowspan headers",i),t("th","colspan rowspan headers scope abbr",i),t("form","accept-charset action autocomplete enctype method name novalidate target",i),t("fieldset","disabled form name",[i,"legend"].join(" ")),t("label","form for",o),t("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),t("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"===e?i:o),t("select","disabled form multiple name required size","option optgroup"),t("optgroup","disabled label","option"),t("option","disabled label selected value"),t("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),t("menu","type label",[i,"li"].join(" ")),t("noscript","",i),"html4"!==e&&(t("wbr"),t("ruby","",[o,"rt rp"].join(" ")),t("figcaption","",i),t("mark rt rp summary bdi","",o),t("canvas","width height",i),t("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[i,"track source"].join(" ")),t("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",[i,"track source"].join(" ")),t("picture","","img source"),t("source","src srcset type media sizes"),t("track","kind src srclang label default"),t("datalist","",[o,"option"].join(" ")),t("article section nav aside main header footer","",i),t("hgroup","","h1 h2 h3 h4 h5 h6"),t("figure","",[i,"figcaption"].join(" ")),t("time","datetime",o),t("dialog","open",i),t("command","type label icon disabled checked radiogroup command"),t("output","for form name",o),t("progress","value max",o),t("meter","value min max low high optimum",o),t("details","open",[i,"summary"].join(" ")),t("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!==e&&(n("script","language xml:space"),n("style","xml:space"),n("object","declare classid code codebase codetype archive standby align border hspace vspace"),n("embed","align name hspace vspace"),n("param","valuetype type"),n("a","charset name rev shape coords"),n("br","clear"),n("applet","codebase archive code object alt name width height align hspace vspace"),n("img","name longdesc align border hspace vspace"),n("iframe","longdesc frameborder marginwidth marginheight scrolling align"),n("font basefont","size color face"),n("input","usemap align"),n("select","onchange"),n("textarea"),n("h1 h2 h3 h4 h5 h6 div p legend caption","align"),n("ul","type compact"),n("li","type"),n("ol dl menu dir","compact"),n("pre","width xml:space"),n("hr","align noshade size width"),n("isindex","prompt"),n("table","summary width frame rules cellspacing cellpadding align bgcolor"),n("col","width align char charoff valign"),n("colgroup","width align char charoff valign"),n("thead","align char charoff valign"),n("tr","align char charoff valign bgcolor"),n("th","axis align char charoff valign nowrap bgcolor width height"),n("form","accept"),n("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),n("tfoot","align char charoff valign"),n("tbody","align char charoff valign"),n("area","nohref"),n("body","background bgcolor text link vlink alink")),"html4"!==e&&(n("input button select textarea","autofocus"),n("input textarea","placeholder"),n("a","download"),n("link script img","crossorigin"),n("iframe","sandbox seamless allowfullscreen")),cr(hr("a form meter progress dfn"),function(e){c[e]&&delete c[e].children[e]}),delete c.caption.children.table,delete c.script,ar[e]=c)},gr=function(e,n){var r;return e&&(r={},"string"==typeof e&&(e={"*":e}),cr(e,function(e,t){r[t]=r[t.toUpperCase()]="map"===n?sr(e,/[, ]/):fr(e,/[, ]/)})),r};function pr(i){function e(e,t,n){var r=i[e];return r?r=sr(r,/[, ]/,sr(r.toUpperCase(),/[, ]/)):(r=ar[e])||(r=sr(t," ",sr(t.toUpperCase()," ")),r=lr(r,n),ar[e]=r),r}var t,n,r,o,a,u,s,c,l,f,d,h,m,z={},g={},E=[],p={},v={};r=mr((i=i||{}).schema),!1===i.verify_html&&(i.valid_elements="*[*]"),t=gr(i.valid_styles),n=gr(i.invalid_styles,"map"),c=gr(i.valid_classes,"map"),o=e("whitespace_elements","pre script noscript style textarea video audio iframe object code"),a=e("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),u=e("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),s=e("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),f=e("non_empty_elements","td th iframe video audio object script pre code",u),d=e("move_caret_before_on_enter_elements","table",f),h=e("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside main nav figure"),l=e("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption details summary",h),m=e("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),cr((i.special||"script noscript noframes noembed title style textarea xmp").split(" "),function(e){v[e]=new RegExp("</"+e+"[^>]*>","gi")});function N(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function y(e){var t,n,r,o,i,a,u,s,c,l,f,d,h,m,g,p,v,y,b,C=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,w=/^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/,x=/[*?+]/;if(e)for(e=hr(e,","),z["@"]&&(p=z["@"].attributes,v=z["@"].attributesOrder),t=0,n=e.length;t<n;t++)if(i=C.exec(e[t])){if(m=i[1],c=i[2],g=i[3],s=i[5],a={attributes:d={},attributesOrder:h=[]},"#"===m&&(a.paddEmpty=!0),"-"===m&&(a.removeEmpty=!0),"!"===i[4]&&(a.removeEmptyAttrs=!0),p){for(y in p)d[y]=p[y];h.push.apply(h,v)}if(s)for(r=0,o=(s=hr(s,"|")).length;r<o;r++)if(i=w.exec(s[r])){if(u={},f=i[1],l=i[2].replace(/[\\:]:/g,":"),m=i[3],b=i[4],"!"===f&&(a.attributesRequired=a.attributesRequired||[],a.attributesRequired.push(l),u.required=!0),"-"===f){delete d[l],h.splice(dr(h,l),1);continue}m&&("="===m&&(a.attributesDefault=a.attributesDefault||[],a.attributesDefault.push({name:l,value:b}),u.defaultValue=b),":"===m&&(a.attributesForced=a.attributesForced||[],a.attributesForced.push({name:l,value:b}),u.forcedValue=b),"<"===m&&(u.validValues=sr(b,"?"))),x.test(l)?(a.attributePatterns=a.attributePatterns||[],u.pattern=N(l),a.attributePatterns.push(u)):(d[l]||h.push(l),d[l]=u)}p||"@"!==c||(p=d,v=h),g&&(a.outputName=c,z[g]=a),x.test(c)?(a.pattern=N(c),E.push(a)):z[c]=a}}function b(e){z={},E=[],y(e),cr(r,function(e,t){g[t]=e.children})}function C(e){var a=/^(~)?(.+)$/;e&&(ar.text_block_elements=ar.block_elements=null,cr(hr(e,","),function(e){var t=a.exec(e),n="~"===t[1],r=n?"span":"div",o=t[2];if(g[o]=g[r],p[o]=r,n||(l[o.toUpperCase()]={},l[o]={}),!z[o]){var i=z[r];delete(i=lr({},i)).removeEmptyAttrs,delete i.removeEmpty,z[o]=i}cr(g,function(e,t){e[r]&&(g[t]=e=lr({},g[t]),e[o]=e[r])})}))}function w(e){var o=/^([+\-]?)(\w+)\[([^\]]+)\]$/;ar[i.schema]=null,e&&cr(hr(e,","),function(e){var t,n,r=o.exec(e);r&&(n=r[1],t=n?g[r[2]]:g[r[2]]={"#comment":{}},t=g[r[2]],cr(hr(r[3],"|"),function(e){"-"===n?delete t[e]:t[e]={}}))})}function x(e){var t,n=z[e];if(n)return n;for(t=E.length;t--;)if((n=E[t]).pattern.test(e))return n}i.valid_elements?b(i.valid_elements):(cr(r,function(e,t){z[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},g[t]=e.children}),"html5"!==i.schema&&cr(hr("strong/b em/i"),function(e){e=hr(e,"/"),z[e[1]].outputName=e[0]}),cr(hr("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){z[e]&&(z[e].removeEmpty=!0)}),cr(hr("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"),function(e){z[e].paddEmpty=!0}),cr(hr("span"),function(e){z[e].removeEmptyAttrs=!0})),C(i.custom_elements),w(i.valid_children),y(i.extended_valid_elements),w("+ol[ul|ol],+ul[ul|ol]"),cr({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:"table",legend:"fieldset",area:"map",param:"video audio object"},function(e,t){z[t]&&(z[t].parentsRequired=hr(e))}),i.invalid_elements&&cr(fr(i.invalid_elements),function(e){z[e]&&delete z[e]}),x("span")||y("span[!data-mce-type|*]");return{children:g,elements:z,getValidStyles:function(){return t},getValidClasses:function(){return c},getBlockElements:function(){return l},getInvalidStyles:function(){return n},getShortEndedElements:function(){return u},getTextBlockElements:function(){return h},getTextInlineElements:function(){return m},getBoolAttrs:function(){return s},getElementRule:x,getSelfClosingElements:function(){return a},getNonEmptyElements:function(){return f},getMoveCaretBeforeOnEnterElements:function(){return d},getWhiteSpaceElements:function(){return o},getSpecialElements:function(){return v},isValidChild:function(e,t){var n=g[e.toLowerCase()];return!(!n||!n[t.toLowerCase()])},isValid:function(e,t){var n,r,o=x(e);if(o){if(!t)return!0;if(o.attributes[t])return!0;if(n=o.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},getCustomElements:function(){return p},addValidElements:y,setValidElements:b,addCustomElements:C,addValidChildren:w}}function vr(e,t,n,r){function o(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e}return"#"+o(t)+o(n)+o(r)}function yr(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function br(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function Cr(e,t){var n,r=t||{};for(n in e)Er[n]||(r[n]=e[n]);if(r.target||(r.target=r.srcElement||j.document),Nn.experimentalShadowDom&&(r.target=function(e,t){if(e.composedPath){var n=e.composedPath();if(n&&0<n.length)return n[0]}return t}(e,r.target)),e&&zr.test(e.type)&&e.pageX===undefined&&e.clientX!==undefined){var o=r.target.ownerDocument||j.document,i=o.documentElement,a=o.body;r.pageX=e.clientX+(i&&i.scrollLeft||a&&a.scrollLeft||0)-(i&&i.clientLeft||a&&a.clientLeft||0),r.pageY=e.clientY+(i&&i.scrollTop||a&&a.scrollTop||0)-(i&&i.clientTop||a&&a.clientTop||0)}return r.preventDefault=function(){r.isDefaultPrevented=Sr,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},r.stopPropagation=function(){r.isPropagationStopped=Sr,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},!(r.stopImmediatePropagation=function(){r.isImmediatePropagationStopped=Sr,r.stopPropagation()})===function(e){return e.isDefaultPrevented===Sr||e.isDefaultPrevented===Nr}(r)&&(r.isDefaultPrevented=Nr,r.isPropagationStopped=Nr,r.isImmediatePropagationStopped=Nr),"undefined"==typeof r.metaKey&&(r.metaKey=!1),r}function wr(e,t,n){var r=e.document,o={type:"ready"};if(n.domLoaded)t(o);else{var i=function(){br(e,"DOMContentLoaded",i),br(e,"load",i),n.domLoaded||(n.domLoaded=!0,t(o))};"complete"===r.readyState||"interactive"===r.readyState&&r.body?i():yr(e,"DOMContentLoaded",i),yr(e,"load",i)}}var xr=function(b,e){var C,t,c,l,w=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,x=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,z=/\s*([^:]+):\s*([^;]+);?/g,E=/\s+$/,N={},S="\ufeff";for(b=b||{},e&&(c=e.getValidStyles(),l=e.getInvalidStyles()),t=("\\\" \\' \\; \\: ; : "+S).split(" "),C=0;C<t.length;C++)N[t[C]]=S+C,N[S+C]=t[C];return{toHex:function(e){return e.replace(w,vr)},parse:function(e){function t(e,t,n){var r,o,i,a;if((r=p[e+"-top"+t])&&(o=p[e+"-right"+t])&&(i=p[e+"-bottom"+t])&&(a=p[e+"-left"+t])){var u=[r,o,i,a];for(C=u.length-1;C--&&u[C]===u[C+1];);-1<C&&n||(p[e+t]=-1===C?u[0]:u.join(" "),delete p[e+"-top"+t],delete p[e+"-right"+t],delete p[e+"-bottom"+t],delete p[e+"-left"+t])}}function n(e){var t,n=p[e];if(n){for(t=(n=n.split(" ")).length;t--;)if(n[t]!==n[0])return!1;return p[e]=n[0],!0}}function r(e){return f=!0,N[e]}function u(e,t){return f&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return N[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function o(e){return String.fromCharCode(parseInt(e.slice(1),16))}function i(e){return e.replace(/\\[0-9a-f]+/gi,o)}function a(e,t,n,r,o,i){if(o=o||i)return"'"+(o=u(o)).replace(/\'/g,"\\'")+"'";if(t=u(t||n||r),!b.allow_script_urls){var a=t.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(a))return"";if(!b.allow_svg_data_urls&&/^data:image\/svg/i.test(a))return""}return v&&(t=v.call(y,t,"style")),"url('"+t.replace(/\'/g,"\\'")+"')"}var s,c,l,f,d,h,m,g,p={},v=b.url_converter,y=b.url_converter_scope||this;if(e){for(e=(e=e.replace(/[\u0000-\u001F]/g,"")).replace(/\\[\"\';:\uFEFF]/g,r).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,r)});s=z.exec(e);)if(z.lastIndex=s.index+s[0].length,c=s[1].replace(E,"").toLowerCase(),l=s[2].replace(E,""),c&&l){if(c=i(c),l=i(l),-1!==c.indexOf(S)||-1!==c.indexOf('"'))continue;if(!b.allow_script_urls&&("behavior"===c||/expression\s*\(|\/\*|\*\//.test(l)))continue;"font-weight"===c&&"700"===l?l="bold":"color"!==c&&"background-color"!==c||(l=l.toLowerCase()),l=(l=l.replace(w,vr)).replace(x,a),p[c]=f?u(l,!0):l}t("border","",!0),t("border","-width"),t("border","-color"),t("border","-style"),t("padding",""),t("margin",""),d="border",m="border-style",g="border-color",n(h="border-width")&&n(m)&&n(g)&&(p[d]=p[h]+" "+p[m]+" "+p[g],delete p[h],delete p[m],delete p[g]),"medium none"===p.border&&delete p.border,"none"===p["border-image"]&&delete p["border-image"]}return p},serialize:function(i,e){function t(e){var t,n,r,o;if(t=c[e])for(n=0,r=t.length;n<r;n++)e=t[n],(o=i[e])&&(s+=(0<s.length?" ":"")+e+": "+o+";")}var n,r,o,a,u,s="";if(e&&c)t("*"),t(e);else for(n in i)!(r=i[n])||l&&(o=n,a=e,u=void 0,(u=l["*"])&&u[o]||(u=l[a])&&u[o])||(s+=(0<s.length?" ":"")+n+": "+r+";");return s}}},zr=/^(?:mouse|contextmenu)|click/,Er={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1,mozPressure:1},Nr=function(){return!1},Sr=function(){return!0},kr=(Tr.prototype.bind=function(e,t,n,r){function o(e){d.executeHandlers(Cr(e||h.event),i)}var i,a,u,s,c,l,f,d=this,h=j.window;if(e&&3!==e.nodeType&&8!==e.nodeType){e[d.expando]?i=e[d.expando]:(i=d.count++,e[d.expando]=i,d.events[i]={}),r=r||e;var m=t.split(" ");for(u=m.length;u--;)l=o,c=f=!1,"DOMContentLoaded"===(s=m[u])&&(s="ready"),d.domLoaded&&"ready"===s&&"complete"===e.readyState?n.call(r,Cr({type:s})):(d.hasMouseEnterLeave||(c=d.mouseEnterLeave[s])&&(l=function(e){var t,n;if(t=e.currentTarget,(n=e.relatedTarget)&&t.contains)n=t.contains(n);else for(;n&&n!==t;)n=n.parentNode;n||((e=Cr(e||h.event)).type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,d.executeHandlers(e,i))}),d.hasFocusIn||"focusin"!==s&&"focusout"!==s||(f=!0,c="focusin"===s?"focus":"blur",l=function(e){(e=Cr(e||h.event)).type="focus"===e.type?"focusin":"focusout",d.executeHandlers(e,i)}),(a=d.events[i][s])?"ready"===s&&d.domLoaded?n(Cr({type:s})):a.push({func:n,scope:r}):(d.events[i][s]=a=[{func:n,scope:r}],a.fakeName=c,a.capture=f,a.nativeHandler=l,"ready"===s?wr(e,l,d):yr(e,c||s,l,f)));return e=a=0,n}},Tr.prototype.unbind=function(e,t,n){var r,o,i,a,u,s;if(!e||3===e.nodeType||8===e.nodeType)return this;if(r=e[this.expando]){if(s=this.events[r],t){var c=t.split(" ");for(i=c.length;i--;)if(o=s[u=c[i]]){if(n)for(a=o.length;a--;)if(o[a].func===n){var l=o.nativeHandler,f=o.fakeName,d=o.capture;(o=o.slice(0,a).concat(o.slice(a+1))).nativeHandler=l,o.fakeName=f,o.capture=d,s[u]=o}n&&0!==o.length||(delete s[u],br(e,o.fakeName||u,o.nativeHandler,o.capture))}}else{for(u in s)o=s[u],br(e,o.fakeName||u,o.nativeHandler,o.capture);s={}}for(u in s)return this;delete this.events[r];try{delete e[this.expando]}catch(h){e[this.expando]=null}}return this},Tr.prototype.fire=function(e,t,n){var r;if(!e||3===e.nodeType||8===e.nodeType)return this;var o=Cr(null,n);for(o.type=t,o.target=e;(r=e[this.expando])&&this.executeHandlers(o,r),(e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow)&&!o.isPropagationStopped(););return this},Tr.prototype.clean=function(e){var t,n;if(!e||3===e.nodeType||8===e.nodeType)return this;if(e[this.expando]&&this.unbind(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(this.unbind(e),t=(n=e.getElementsByTagName("*")).length;t--;)(e=n[t])[this.expando]&&this.unbind(e);return this},Tr.prototype.destroy=function(){this.events={}},Tr.prototype.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1},Tr.prototype.executeHandlers=function(e,t){var n,r,o,i,a=this.events[t];if(n=a&&a[e.type])for(r=0,o=n.length;r<o;r++)if((i=n[r])&&!1===i.func.call(i.scope,e)&&e.preventDefault(),e.isImmediatePropagationStopped())return},Tr.Event=new Tr,Tr);function Tr(){this.domLoaded=!1,this.events={},this.count=1,this.expando="mce-data-"+(+new Date).toString(32),this.hasMouseEnterLeave="onmouseenter"in j.document.documentElement,this.hasFocusIn="onfocusin"in j.document.documentElement,this.count=1}function Ar(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(65536+r):String.fromCharCode(r>>10|55296,1023&r|56320)}var Mr,Rr,Dr,_r,Br,Or,Hr,Pr,Lr,Vr,Ir,Fr,Ur,jr,qr,$r,Wr,Kr,Xr="sizzle"+-new Date,Yr=j.window.document,Gr=0,Jr=0,Qr=Mo(),Zr=Mo(),eo=Mo(),to=function(e,t){return e===t&&(Ir=!0),0},no=typeof undefined,ro={}.hasOwnProperty,oo=[],io=oo.pop,ao=oo.push,uo=oo.push,so=oo.slice,co=oo.indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},lo="[\\x20\\t\\r\\n\\f]",fo="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ho="\\["+lo+"*("+fo+")(?:"+lo+"*([*^$|!~]?=)"+lo+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+fo+"))|)"+lo+"*\\]",mo=":("+fo+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ho+")*)|.*)\\)|)",go=new RegExp("^"+lo+"+|((?:^|[^\\\\])(?:\\\\.)*)"+lo+"+$","g"),po=new RegExp("^"+lo+"*,"+lo+"*"),vo=new RegExp("^"+lo+"*([>+~]|"+lo+")"+lo+"*"),yo=new RegExp("="+lo+"*([^\\]'\"]*?)"+lo+"*\\]","g"),bo=new RegExp(mo),Co=new RegExp("^"+fo+"$"),wo={ID:new RegExp("^#("+fo+")"),CLASS:new RegExp("^\\.("+fo+")"),TAG:new RegExp("^("+fo+"|[*])"),ATTR:new RegExp("^"+ho),PSEUDO:new RegExp("^"+mo),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+lo+"*(even|odd|(([+-]|)(\\d*)n|)"+lo+"*(?:([+-]|)"+lo+"*(\\d+)|))"+lo+"*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^"+lo+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+lo+"*((?:-\\d)?\\d*)"+lo+"*\\)|)(?=[^-]|$)","i")},xo=/^(?:input|select|textarea|button)$/i,zo=/^h\d$/i,Eo=/^[^{]+\{\s*\[native \w/,No=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,So=/[+~]/,ko=/'|\\/g,To=new RegExp("\\\\([\\da-f]{1,6}"+lo+"?|("+lo+")|.)","ig");try{uo.apply(oo=so.call(Yr.childNodes),Yr.childNodes),oo[Yr.childNodes.length].nodeType}catch(yN){uo={apply:oo.length?function(e,t){ao.apply(e,so.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}var Ao=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,h;if((t?t.ownerDocument||t:Yr)!==Ur&&Fr(t),n=n||[],!e||"string"!=typeof e)return n;if(1!==(u=(t=t||Ur).nodeType)&&9!==u)return[];if(qr&&!r){if(o=No.exec(e))if(a=o[1]){if(9===u){if(!(i=t.getElementById(a))||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&Kr(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return uo.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&Rr.getElementsByClassName)return uo.apply(n,t.getElementsByClassName(a)),n}if(Rr.qsa&&(!$r||!$r.test(e))){if(f=l=Xr,d=t,h=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){for(c=Or(e),(l=t.getAttribute("id"))?f=l.replace(ko,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",s=c.length;s--;)c[s]=f+Lo(c[s]);d=So.test(e)&&Ho(t.parentNode)||t,h=c.join(",")}if(h)try{return uo.apply(n,d.querySelectorAll(h)),n}catch(m){}finally{l||t.removeAttribute("id")}}}return Pr(e.replace(go,"$1"),t,n,r)};function Mo(){var n=[];return function r(e,t){return n.push(e+" ")>Dr.cacheLength&&delete r[n.shift()],r[e+" "]=t}}function Ro(e){return e[Xr]=!0,e}function Do(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function _o(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function Bo(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function Oo(a){return Ro(function(i){return i=+i,Ro(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function Ho(e){return e&&typeof e.getElementsByTagName!=no&&e}for(Mr in Rr=Ao.support={},Br=Ao.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},Fr=Ao.setDocument=function(e){var t,s=e?e.ownerDocument||e:Yr,n=s.defaultView;return s!==Ur&&9===s.nodeType&&s.documentElement?(jr=(Ur=s).documentElement,qr=!Br(s),n&&n!==function r(e){try{return e.top}catch(t){}return null}(n)&&(n.addEventListener?n.addEventListener("unload",function(){Fr()},!1):n.attachEvent&&n.attachEvent("onunload",function(){Fr()})),Rr.attributes=!0,Rr.getElementsByTagName=!0,Rr.getElementsByClassName=Eo.test(s.getElementsByClassName),Rr.getById=!0,Dr.find.ID=function(e,t){if(typeof t.getElementById!=no&&qr){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},Dr.filter.ID=function(e){var t=e.replace(To,Ar);return function(e){return e.getAttribute("id")===t}},Dr.find.TAG=Rr.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!=no)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"!==e)return i;for(;n=i[o++];)1===n.nodeType&&r.push(n);return r},Dr.find.CLASS=Rr.getElementsByClassName&&function(e,t){if(qr)return t.getElementsByClassName(e)},Wr=[],$r=[],Rr.disconnectedMatch=!0,$r=$r.length&&new RegExp($r.join("|")),Wr=Wr.length&&new RegExp(Wr.join("|")),t=Eo.test(jr.compareDocumentPosition),Kr=t||Eo.test(jr.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},to=t?function(e,t){if(e===t)return Ir=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!Rr.sortDetached&&t.compareDocumentPosition(e)===n?e===s||e.ownerDocument===Yr&&Kr(Yr,e)?-1:t===s||t.ownerDocument===Yr&&Kr(Yr,t)?1:Vr?co.call(Vr,e)-co.call(Vr,t):0:4&n?-1:1)}:function(e,t){if(e===t)return Ir=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===s?-1:t===s?1:o?-1:i?1:Vr?co.call(Vr,e)-co.call(Vr,t):0;if(o===i)return Do(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?Do(a[r],u[r]):a[r]===Yr?-1:u[r]===Yr?1:0},s):Ur},Ao.matches=function(e,t){return Ao(e,null,null,t)},Ao.matchesSelector=function(e,t){if((e.ownerDocument||e)!==Ur&&Fr(e),t=t.replace(yo,"='$1']"),Rr.matchesSelector&&qr&&(!Wr||!Wr.test(t))&&(!$r||!$r.test(t)))try{var n=(void 0).call(e,t);if(n||Rr.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(yN){}return 0<Ao(t,Ur,null,[e]).length},Ao.contains=function(e,t){return(e.ownerDocument||e)!==Ur&&Fr(e),Kr(e,t)},Ao.attr=function(e,t){(e.ownerDocument||e)!==Ur&&Fr(e);var n=Dr.attrHandle[t.toLowerCase()],r=n&&ro.call(Dr.attrHandle,t.toLowerCase())?n(e,t,!qr):undefined;return r!==undefined?r:Rr.attributes||!qr?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},Ao.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},Ao.uniqueSort=function(e){var t,n=[],r=0,o=0;if(Ir=!Rr.detectDuplicates,Vr=!Rr.sortStable&&e.slice(0),e.sort(to),Ir){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return Vr=null,e},_r=Ao.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=_r(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=_r(t);return n},(Dr=Ao.selectors={cacheLength:50,createPseudo:Ro,match:wo,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(To,Ar),e[3]=(e[3]||e[4]||e[5]||"").replace(To,Ar),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Ao.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Ao.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return wo.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&bo.test(n)&&(t=Or(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(To,Ar).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=Qr[e+" "];return t||(t=new RegExp("(^|"+lo+")"+e+"("+lo+"|$)"))&&Qr(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!=no&&e.getAttribute("class")||"")})},ATTR:function(n,r,o){return function(e){var t=Ao.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===o:"!="===r?t!==o:"^="===r?o&&0===t.indexOf(o):"*="===r?o&&-1<t.indexOf(o):"$="===r?o&&t.slice(-o.length)===o:"~="===r?-1<(" "+t+" ").indexOf(o):"|="===r&&(t===o||t.slice(0,o.length+1)===o+"-"))}},CHILD:function(h,e,t,m,g){var p="nth"!==h.slice(0,3),v="last"!==h.slice(-4),y="of-type"===e;return 1===m&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,o,i,a,u,s,c=p!=v?"nextSibling":"previousSibling",l=e.parentNode,f=y&&e.nodeName.toLowerCase(),d=!n&&!y;if(l){if(p){for(;c;){for(i=e;i=i[c];)if(y?i.nodeName.toLowerCase()===f:1===i.nodeType)return!1;s=c="only"===h&&!s&&"nextSibling"}return!0}if(s=[v?l.firstChild:l.lastChild],v&&d){for(u=(r=(o=l[Xr]||(l[Xr]={}))[h]||[])[0]===Gr&&r[1],a=r[0]===Gr&&r[2],i=u&&l.childNodes[u];i=++u&&i&&i[c]||(a=u=0)||s.pop();)if(1===i.nodeType&&++a&&i===e){o[h]=[Gr,u,a];break}}else if(d&&(r=(e[Xr]||(e[Xr]={}))[h])&&r[0]===Gr)a=r[1];else for(;(i=++u&&i&&i[c]||(a=u=0)||s.pop())&&((y?i.nodeName.toLowerCase()!==f:1!==i.nodeType)||!++a||(d&&((i[Xr]||(i[Xr]={}))[h]=[Gr,a]),i!==e)););return(a-=g)===m||a%m==0&&0<=a/m}}},PSEUDO:function(e,i){var t,a=Dr.pseudos[e]||Dr.setFilters[e.toLowerCase()]||Ao.error("unsupported pseudo: "+e);return a[Xr]?a(i):1<a.length?(t=[e,e,"",i],Dr.setFilters.hasOwnProperty(e.toLowerCase())?Ro(function(e,t){for(var n,r=a(e,i),o=r.length;o--;)e[n=co.call(e,r[o])]=!(t[n]=r[o])}):function(e){return a(e,0,t)}):a}},pseudos:{not:Ro(function(e){var r=[],o=[],u=Hr(e.replace(go,"$1"));return u[Xr]?Ro(function(e,t,n,r){for(var o,i=u(e,null,r,[]),a=e.length;a--;)(o=i[a])&&(e[a]=!(t[a]=o))}):function(e,t,n){return r[0]=e,u(r,null,n,o),!o.pop()}}),has:Ro(function(t){return function(e){return 0<Ao(t,e).length}}),contains:Ro(function(t){return t=t.replace(To,Ar),function(e){return-1<(e.textContent||e.innerText||_r(e)).indexOf(t)}}),lang:Ro(function(n){return Co.test(n||"")||Ao.error("unsupported lang: "+n),n=n.replace(To,Ar).toLowerCase(),function(e){var t;do{if(t=qr?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=j.window.location&&j.window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===jr},focus:function(e){return e===Ur.activeElement&&(!Ur.hasFocus||Ur.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!Dr.pseudos.empty(e)},header:function(e){return zo.test(e.nodeName)},input:function(e){return xo.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:Oo(function(){return[0]}),last:Oo(function(e,t){return[t-1]}),eq:Oo(function(e,t,n){return[n<0?n+t:n]}),even:Oo(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:Oo(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:Oo(function(e,t,n){for(var r=n<0?n+t:n;0<=--r;)e.push(r);return e}),gt:Oo(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=Dr.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})Dr.pseudos[Mr]=_o(Mr);for(Mr in{submit:!0,reset:!0})Dr.pseudos[Mr]=Bo(Mr);function Po(){}function Lo(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function Vo(a,e,t){var u=e.dir,s=t&&"parentNode"===u,c=Jr++;return e.first?function(e,t,n){for(;e=e[u];)if(1===e.nodeType||s)return a(e,t,n)}:function(e,t,n){var r,o,i=[Gr,c];if(n){for(;e=e[u];)if((1===e.nodeType||s)&&a(e,t,n))return!0}else for(;e=e[u];)if(1===e.nodeType||s){if((r=(o=e[Xr]||(e[Xr]={}))[u])&&r[0]===Gr&&r[1]===c)return i[2]=r[2];if((o[u]=i)[2]=a(e,t,n))return!0}}}function Io(o){return 1<o.length?function(e,t,n){for(var r=o.length;r--;)if(!o[r](e,t,n))return!1;return!0}:o[0]}function Fo(e,t,n,r,o){for(var i,a=[],u=0,s=e.length,c=null!=t;u<s;u++)(i=e[u])&&(n&&!n(i,r,o)||(a.push(i),c&&t.push(u)));return a}function Uo(m,g,p,v,y,e){return v&&!v[Xr]&&(v=Uo(v)),y&&!y[Xr]&&(y=Uo(y,e)),Ro(function(e,t,n,r){var o,i,a,u=[],s=[],c=t.length,l=e||function h(e,t,n){for(var r=0,o=t.length;r<o;r++)Ao(e,t[r],n);return n}(g||"*",n.nodeType?[n]:n,[]),f=!m||!e&&g?l:Fo(l,u,m,n,r),d=p?y||(e?m:c||v)?[]:t:f;if(p&&p(f,d,n,r),v)for(o=Fo(d,s),v(o,[],n,r),i=o.length;i--;)(a=o[i])&&(d[s[i]]=!(f[s[i]]=a));if(e){if(y||m){if(y){for(o=[],i=d.length;i--;)(a=d[i])&&o.push(f[i]=a);y(null,d=[],o,r)}for(i=d.length;i--;)(a=d[i])&&-1<(o=y?co.call(e,a):u[i])&&(e[o]=!(t[o]=a))}}else d=Fo(d===t?d.splice(c,d.length):d),y?y(null,t,d,r):uo.apply(t,d)})}function jo(e){for(var r,t,n,o=e.length,i=Dr.relative[e[0].type],a=i||Dr.relative[" "],u=i?1:0,s=Vo(function(e){return e===r},a,!0),c=Vo(function(e){return-1<co.call(r,e)},a,!0),l=[function(e,t,n){return!i&&(n||t!==Lr)||((r=t).nodeType?s(e,t,n):c(e,t,n))}];u<o;u++)if(t=Dr.relative[e[u].type])l=[Vo(Io(l),t)];else{if((t=Dr.filter[e[u].type].apply(null,e[u].matches))[Xr]){for(n=++u;n<o&&!Dr.relative[e[n].type];n++);return Uo(1<u&&Io(l),1<u&&Lo(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(go,"$1"),t,u<n&&jo(e.slice(u,n)),n<o&&jo(e=e.slice(n)),n<o&&Lo(e))}l.push(t)}return Io(l)}Po.prototype=Dr.filters=Dr.pseudos,Dr.setFilters=new Po,Or=Ao.tokenize=function(e,t){var n,r,o,i,a,u,s,c=Zr[e+" "];if(c)return t?0:c.slice(0);for(a=e,u=[],s=Dr.preFilter;a;){for(i in n&&!(r=po.exec(a))||(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=vo.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(go," ")}),a=a.slice(n.length)),Dr.filter)Dr.filter.hasOwnProperty(i)&&(!(r=wo[i].exec(a))||s[i]&&!(r=s[i](r))||(n=r.shift(),o.push({value:n,type:i,matches:r}),a=a.slice(n.length)));if(!n)break}return t?a.length:a?Ao.error(e):Zr(e,u).slice(0)},Hr=Ao.compile=function(e,t){var n,r=[],o=[],i=eo[e+" "];if(!i){for(n=(t=t||Or(e)).length;n--;)(i=jo(t[n]))[Xr]?r.push(i):o.push(i);(i=eo(e,function a(p,v){function e(e,t,n,r,o){var i,a,u,s=0,c="0",l=e&&[],f=[],d=Lr,h=e||b&&Dr.find.TAG("*",o),m=Gr+=null==d?1:Math.random()||.1,g=h.length;for(o&&(Lr=t!==Ur&&t);c!==g&&null!=(i=h[c]);c++){if(b&&i){for(a=0;u=p[a++];)if(u(i,t,n)){r.push(i);break}o&&(Gr=m)}y&&((i=!u&&i)&&s--,e&&l.push(i))}if(s+=c,y&&c!==s){for(a=0;u=v[a++];)u(l,f,t,n);if(e){if(0<s)for(;c--;)l[c]||f[c]||(f[c]=io.call(r));f=Fo(f)}uo.apply(r,f),o&&!e&&0<f.length&&1<s+v.length&&Ao.uniqueSort(r)}return o&&(Gr=m,Lr=d),l}var y=0<v.length,b=0<p.length;return y?Ro(e):e}(o,r))).selector=e}return i},Pr=Ao.select=function(e,t,n,r){var o,i,a,u,s,c="function"==typeof e&&e,l=!r&&Or(e=c.selector||e);if(n=n||[],1===l.length){if(2<(i=l[0]=l[0].slice(0)).length&&"ID"===(a=i[0]).type&&Rr.getById&&9===t.nodeType&&qr&&Dr.relative[i[1].type]){if(!(t=(Dr.find.ID(a.matches[0].replace(To,Ar),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=wo.needsContext.test(e)?0:i.length;o--&&(a=i[o],!Dr.relative[u=a.type]);)if((s=Dr.find[u])&&(r=s(a.matches[0].replace(To,Ar),So.test(i[0].type)&&Ho(t.parentNode)||t))){if(i.splice(o,1),!(e=r.length&&Lo(i)))return uo.apply(n,r),n;break}}return(c||Hr(e,l))(r,t,!qr,n,So.test(e)&&Ho(t.parentNode)||t),n},Rr.sortStable=Xr.split("").sort(to).join("")===Xr,Rr.detectDuplicates=!!Ir,Fr(),Rr.sortDetached=!0;function qo(e){return void 0!==e}function $o(e){return"string"==typeof e}function Wo(e,t){var n,r,o;for(o=(t=t||Zo).createElement("div"),n=t.createDocumentFragment(),o.innerHTML=e;r=o.firstChild;)n.appendChild(r);return n}function Ko(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function Xo(e,t,n){var r,o;return t=vi(t)[0],e.each(function(){n&&r===this.parentNode||(r=this.parentNode,o=t.cloneNode(!1),this.parentNode.insertBefore(o,this)),o.appendChild(this)}),e}function Yo(e,t){return new vi.fn.init(e,t)}function Go(e){return null===e||e===undefined?"":(""+e).replace(di,"")}function Jo(e,t){var n,r,o,i;if(e)if((n=e.length)===undefined){for(r in e)if(e.hasOwnProperty(r)&&(i=e[r],!1===t.call(i,r,i)))break}else for(o=0;o<n&&(i=e[o],!1!==t.call(i,o,i));o++);return e}function Qo(e,n){var r=[];return Jo(e,function(e,t){n(t,e)&&r.push(t)}),r}var Zo=j.document,ei=Array.prototype.push,ti=Array.prototype.slice,ni=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,ri=kr.Event,oi=Mn.makeMap("children,contents,next,prev"),ii=function(e,t,n,r){var o;if($o(t))t=Wo(t,hi(e[0]));else if(t.length&&!t.nodeType){if(t=vi.makeArray(t),r)for(o=t.length-1;0<=o;o--)ii(e,t[o],n,r);else for(o=0;o<t.length;o++)ii(e,t[o],n,r);return e}if(t.nodeType)for(o=e.length;o--;)n.call(e[o],t);return e},ai=Mn.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),ui=Mn.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),si={"for":"htmlFor","class":"className",readonly:"readOnly"},ci={"float":"cssFloat"},li={},fi={},di=/^\s*|\s*$/g,hi=function(e){return e?9===e.nodeType?e:e.ownerDocument:Zo};Yo.fn=Yo.prototype={constructor:Yo,selector:"",context:null,length:0,init:function(e,t){var n,r,o=this;if(!e)return o;if(e.nodeType)return o.context=o[0]=e,o.length=1,o;if(t&&t.nodeType)o.context=t;else{if(t)return vi(e).attr(t);o.context=t=j.document}if($o(e)){if(!(n="<"===(o.selector=e).charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:ni.exec(e)))return vi(t).find(e);if(n[1])for(r=Wo(e,hi(t)).firstChild;r;)ei.call(o,r),r=r.nextSibling;else{if(!(r=hi(t).getElementById(n[2])))return o;if(r.id!==n[2])return o.find(e);o.length=1,o[0]=r}}else this.add(e,!1);return o},toArray:function(){return Mn.toArray(this)},add:function(e,t){var n,r;if($o(e))return this.add(vi(e));if(!1!==t)for(n=vi.unique(this.toArray().concat(vi.makeArray(e))),this.length=n.length,r=0;r<n.length;r++)this[r]=n[r];else ei.apply(this,vi.makeArray(e));return this},attr:function(t,n){var e,r=this;if("object"==typeof t)Jo(t,function(e,t){r.attr(e,t)});else{if(!qo(n)){if(r[0]&&1===r[0].nodeType){if((e=li[t])&&e.get)return e.get(r[0],t);if(ui[t])return r.prop(t)?t:undefined;null===(n=r[0].getAttribute(t,2))&&(n=undefined)}return n}this.each(function(){var e;if(1===this.nodeType){if((e=li[t])&&e.set)return void e.set(this,n);null===n?this.removeAttribute(t,2):this.setAttribute(t,n,2)}})}return r},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if("object"==typeof(e=si[e]||e))Jo(e,function(e,t){n.prop(e,t)});else{if(!qo(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1===this.nodeType&&(this[e]=t)})}return n},css:function(n,r){function e(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})}function o(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})}var t,i,a=this;if("object"==typeof n)Jo(n,function(e,t){a.css(e,t)});else if(qo(r))n=e(n),"number"!=typeof r||ai[n]||(r=r.toString()+"px"),a.each(function(){var e=this.style;if((i=fi[n])&&i.set)i.set(this,r);else{try{this.style[ci[n]||n]=r}catch(t){}null!==r&&""!==r||(e.removeProperty?e.removeProperty(o(n)):e.removeAttribute(n))}});else{if(t=a[0],(i=fi[n])&&i.get)return i.get(t);if(!t.ownerDocument.defaultView)return t.currentStyle?t.currentStyle[e(n)]:"";try{return t.ownerDocument.defaultView.getComputedStyle(t,null).getPropertyValue(o(n))}catch(u){return undefined}}return a},remove:function(){for(var e,t=this.length;t--;)e=this[t],ri.clean(e),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var e,t=this.length;t--;)for(e=this[t];e.firstChild;)e.removeChild(e.firstChild);return this},html:function(e){var t,n=this;if(qo(e)){t=n.length;try{for(;t--;)n[t].innerHTML=e}catch(r){vi(n[t]).empty().append(e)}return n}return n[0]?n[0].innerHTML:""},text:function(e){var t;if(qo(e)){for(t=this.length;t--;)"innerText"in this[t]?this[t].innerText=e:this[0].textContent=e;return this}return this[0]?this[0].innerText||this[0].textContent:""},append:function(){return ii(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return ii(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(e,this.firstChild)},!0)},before:function(){return this[0]&&this[0].parentNode?ii(this,arguments,function(e){this.parentNode.insertBefore(e,this)}):this},after:function(){return this[0]&&this[0].parentNode?ii(this,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):this},appendTo:function(e){return vi(e).append(this),this},prependTo:function(e){return vi(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return Xo(this,e)},wrapAll:function(e){return Xo(this,e,!0)},wrapInner:function(e){return this.each(function(){vi(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){vi(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),vi(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(o,i){var e=this;return"string"!=typeof o||(-1!==o.indexOf(" ")?Jo(o.split(" "),function(){e.toggleClass(this,i)}):e.each(function(e,t){var n,r;(r=Ko(t,o))!==i&&(n=t.className,r?t.className=Go((" "+n+" ").replace(" "+o+" "," ")):t.className+=n?" "+o:o)})),e},hasClass:function(e){return Ko(this[0],e)},each:function(e){return Jo(this,e)},on:function(e,t){return this.each(function(){ri.bind(this,e,t)})},off:function(e,t){return this.each(function(){ri.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?ri.fire(this,e.type,e):ri.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new vi(ti.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;t<n;t++)vi.find(e,this[t],r);return vi(r)},filter:function(n){return vi("function"==typeof n?Qo(this.toArray(),function(e,t){return n(t,e)}):vi.filter(n,this.toArray()))},closest:function(n){var r=[];return n instanceof vi&&(n=n[0]),this.each(function(e,t){for(;t;){if("string"==typeof n&&vi(t).is(n)){r.push(t);break}if(t===n){r.push(t);break}t=t.parentNode}}),vi(r)},offset:function(e){var t,n,r,o,i=0,a=0;return e?this.css(e):((t=this[0])&&(r=(n=t.ownerDocument).documentElement,t.getBoundingClientRect&&(i=(o=t.getBoundingClientRect()).left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,a=o.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:a})},push:ei,sort:Array.prototype.sort,splice:Array.prototype.splice},Mn.extend(Yo,{extend:Mn.extend,makeArray:function(e){return function(e){return e&&e===e.window}(e)||e.nodeType?[e]:Mn.toArray(e)},inArray:function(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1},isArray:Mn.isArray,each:Jo,trim:Go,grep:Qo,find:Ao,expr:Ao.selectors,unique:Ao.uniqueSort,text:Ao.getText,contains:Ao.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!==t[r].nodeType&&t.splice(r,1);return t=1===t.length?vi.find.matchesSelector(t[0],e)?[t[0]]:[]:vi.find.matches(e,t)}});function mi(e,t,n){var r=[],o=e[t];for("string"!=typeof n&&n instanceof vi&&(n=n[0]);o&&9!==o.nodeType;){if(n!==undefined){if(o===n)break;if("string"==typeof n&&vi(o).is(n))break}1===o.nodeType&&r.push(o),o=o[t]}return r}function gi(e,t,n,r){var o=[];for(r instanceof vi&&(r=r[0]);e;e=e[t])if(!n||e.nodeType===n){if(r!==undefined){if(e===r)break;if("string"==typeof r&&vi(e).is(r))break}o.push(e)}return o}function pi(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType===n)return e;return null}Jo({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return mi(e,"parentNode")},next:function(e){return pi(e,"nextSibling",1)},prev:function(e){return pi(e,"previousSibling",1)},children:function(e){return gi(e.firstChild,"nextSibling",1)},contents:function(e){return Mn.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(r,o){Yo.fn[r]=function(t){var n=[];this.each(function(){var e=o.call(n,this,t,n);e&&(vi.isArray(e)?n.push.apply(n,e):n.push(e))}),1<this.length&&(oi[r]||(n=vi.unique(n)),0===r.indexOf("parents")&&(n=n.reverse()));var e=vi(n);return t?e.filter(t):e}}),Jo({parentsUntil:function(e,t){return mi(e,"parentNode",t)},nextUntil:function(e,t){return gi(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return gi(e,"previousSibling",1,t).slice(1)}},function(o,i){Yo.fn[o]=function(t,e){var n=[];this.each(function(){var e=i.call(n,this,t,n);e&&(vi.isArray(e)?n.push.apply(n,e):n.push(e))}),1<this.length&&(n=vi.unique(n),0!==o.indexOf("parents")&&"prevUntil"!==o||(n=n.reverse()));var r=vi(n);return e?r.filter(e):r}}),Yo.fn.is=function(e){return!!e&&0<this.filter(e).length},Yo.fn.init.prototype=Yo.fn,Yo.overrideDefaults=function(n){var r,o=function(e,t){return r=r||n(),0===arguments.length&&(e=r.element),t=t||r.context,new o.fn.init(e,t)};return vi.extend(o,this),o},Yo.attrHooks=li,Yo.cssHooks=fi;var vi=Yo,yi=(bi.prototype.current=function(){return this.node},bi.prototype.next=function(e){return this.node=this.findSibling(this.node,"firstChild","nextSibling",e),this.node},bi.prototype.prev=function(e){return this.node=this.findSibling(this.node,"lastChild","previousSibling",e),this.node},bi.prototype.prev2=function(e){return this.node=this.findPreviousNode(this.node,"lastChild","previousSibling",e),this.node},bi.prototype.findSibling=function(e,t,n,r){var o,i;if(e){if(!r&&e[t])return e[t];if(e!==this.rootNode){if(o=e[n])return o;for(i=e.parentNode;i&&i!==this.rootNode;i=i.parentNode)if(o=i[n])return o}}},bi.prototype.findPreviousNode=function(e,t,n,r){var o,i,a;if(e){if(o=e[n],this.rootNode&&o===this.rootNode)return;if(o){if(!r)for(a=o[t];a;a=a[t])if(!a[t])return a;return o}if((i=e.parentNode)&&i!==this.rootNode)return i}},bi);function bi(e,t){this.node=e,this.rootNode=t,this.current=this.current.bind(this),this.next=this.next.bind(this),this.prev=this.prev.bind(this),this.prev2=this.prev2.bind(this)}function Ci(t,n){Se(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})}function wi(e,t){Te(e).fold(function(){Se(e).each(function(e){Di(e,t)})},function(e){Ci(e,t)})}function xi(t,n){_e(t).fold(function(){Di(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})}function zi(t,e){z(e,function(e){Di(t,e)})}function Ei(e){e.dom().textContent="",z(Re(e),function(e){_i(e)})}function Ni(e){var t=Re(e);0<t.length&&function(t,e){z(e,function(e){Ci(t,e)})}(e,t),_i(e)}function Si(e,t){return e!==undefined?e:t!==undefined?t:0}function ki(e){var t=e!==undefined?e.dom():j.document,n=t.body.scrollLeft||t.documentElement.scrollLeft,r=t.body.scrollTop||t.documentElement.scrollTop;return Oi(n,r)}function Ti(e,t,n){(n!==undefined?n.dom():j.document).defaultView.scrollTo(e,t)}function Ai(e,t){Pi&&D(e.dom().scrollIntoViewIfNeeded)?e.dom().scrollIntoViewIfNeeded(!1):e.dom().scrollIntoView(t)}function Mi(e,t,n,r){return{x:$(e),y:$(t),width:$(n),height:$(r),right:$(e+n),bottom:$(t+r)}}var Ri,Di=function(e,t){e.dom().appendChild(t.dom())},_i=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},Bi=function(n,r){return{left:$(n),top:$(r),translate:function(e,t){return Bi(n+e,r+t)}}},Oi=Bi,Hi=function(e){var t=e.dom(),n=t.ownerDocument.body;return n===t?Oi(n.offsetLeft,n.offsetTop):de(e)?function(e){var t=e.getBoundingClientRect();return Oi(t.left,t.top)}(t):Oi(0,0)},Pi=oe().browser.isSafari(),Li=function(e){var t=e===undefined?j.window:e,n=t.document,r=ki(yt.fromDom(n)),o=t.visualViewport;if(o!==undefined)return Mi(Math.max(o.pageLeft,r.left()),Math.max(o.pageTop,r.top()),o.width,o.height);var i=n.documentElement,a=i.clientWidth,u=i.clientHeight;return Mi(r.left(),r.top(),a,u)},Vi=Mn.each,Ii=Mn.grep,Fi=Nn.ie,Ui=/^([a-z0-9],?)+$/i,ji=/^[ \t\r\n]*$/,qi=function(n,r,o){var i=r.keep_values,e={set:function(e,t,n){r.url_converter&&(t=r.url_converter.call(r.url_converter_scope||o(),t,n,e[0])),e.attr("data-mce-"+n,t).attr(n,t)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},t={style:{set:function(e,t){null===t||"object"!=typeof t?(i&&e.attr("data-mce-style",t),e.attr("style",t)):e.css(t)},get:function(e){var t=e.attr("data-mce-style")||e.attr("style");return t=n.serialize(n.parse(t),e[0].nodeName)}}};return i&&(t.href=t.src=e),t},$i=function(e,t){var n=t.attr("style"),r=e.serialize(e.parse(n),t[0].nodeName);r=r||null,t.attr("data-mce-style",r)},Wi=function(e,t){var n,r,o=0;if(e)for(n=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)r=e.nodeType,(!t||3!==r||r!==n&&e.nodeValue.length)&&(o++,n=r);return o};function Ki(a,u){var s,c=this;void 0===u&&(u={});function l(e){if(e&&a&&"string"==typeof e){var t=a.getElementById(e);return t&&t.id!==e?a.getElementsByName(e)[1]:t}return e}function f(e){return"string"==typeof e&&(e=l(e)),H(e)}function r(e,t,n){var r,o,i=f(e);return i.length&&(o=(r=s[t])&&r.get?r.get(i,t):i.attr(t)),void 0===o&&(o=n||""),o}function d(e){var t=l(e);return t?t.attributes:[]}function o(e,t,n){var r,o;""===n&&(n=null);var i=f(e);r=i.attr(t),i.length&&((o=s[t])&&o.set?o.set(i,n,t):i.attr(t,n),r!==n&&u.onSetAttrib&&u.onSetAttrib({attrElm:i,attrName:t,attrValue:n}))}function h(){return u.root_element||a.body}function i(e,t){return Ht.getPos(a.body,l(e),t)}function m(e,t,n){var r=f(e);return n?r.css(t):("float"===(t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}))&&(t=Nn.browser.isIE()?"styleFloat":"cssFloat"),r[0]&&r[0].style?r[0].style[t]:undefined)}function g(e){var t,n;return e=l(e),t=m(e,"width"),n=m(e,"height"),-1===t.indexOf("px")&&(t=0),-1===n.indexOf("px")&&(n=0),{w:parseInt(t,10)||e.offsetWidth||e.clientWidth,h:parseInt(n,10)||e.offsetHeight||e.clientHeight}}function p(e,t){var n;if(!e)return!1;if(!Array.isArray(e)){if("*"===t)return 1===e.nodeType;if(Ui.test(t)){var r=t.toLowerCase().split(/,/),o=e.nodeName.toLowerCase();for(n=r.length-1;0<=n;n--)if(r[n]===o)return!0;return!1}if(e.nodeType&&1!==e.nodeType)return!1}var i=Array.isArray(e)?e:[e];return 0<Ao(t,i[0].ownerDocument||i[0],null,i).length}function v(e,t,n,r){var o,i=[],a=l(e);for(r=r===undefined,n=n||("BODY"!==h().nodeName?h().parentNode:null),Mn.is(t,"string")&&(t="*"===(o=t)?function(e){return 1===e.nodeType}:function(e){return p(e,o)});a&&a!==n&&a.nodeType&&9!==a.nodeType;){if(!t||"function"==typeof t&&t(a)){if(!r)return[a];i.push(a)}a=a.parentNode}return r?i:null}function n(e,t,n){var r=t;if(e)for("string"==typeof t&&(r=function(e){return p(e,t)}),e=e[n];e;e=e[n])if("function"==typeof r&&r(e))return e;return null}function y(e,n,r){var o,t="string"==typeof e?l(e):e;if(!t)return!1;if(Mn.isArray(t)&&(t.length||0===t.length))return o=[],Vi(t,function(e,t){e&&("string"==typeof e&&(e=l(e)),o.push(n.call(r,e,t)))}),o;var i=r||c;return n.call(i,t)}function b(e,t){f(e).each(function(e,n){Vi(t,function(e,t){o(n,t,e)})})}function C(e,r){var t=f(e);Fi?t.each(function(e,t){if(!1!==t.canHaveHTML){for(;t.firstChild;)t.removeChild(t.firstChild);try{t.innerHTML="<br>"+r,t.removeChild(t.firstChild)}catch(n){vi("<div></div>").html("<br>"+r).contents().slice(1).appendTo(t)}return r}}):t.html(r)}function w(e,n,r,o,i){return y(e,function(e){var t="string"==typeof n?a.createElement(n):n;return b(t,r),o&&("string"!=typeof o&&o.nodeType?t.appendChild(o):"string"==typeof o&&C(t,o)),i?t:e.appendChild(t)})}function x(e,t,n){return w(a.createElement(e),e,t,n,!0)}function z(e,t){var n=f(e);return t?n.each(function(){for(var e;e=this.firstChild;)3===e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():n.remove(),1<n.length?n.toArray():n[0]}function E(e,t,n){f(e).toggleClass(t,n).each(function(){""===this.className&&vi(this).attr("class",null)})}function N(t,e,n){return y(e,function(e){return Mn.is(e,"array")&&(t=t.cloneNode(!0)),n&&Vi(Ii(e.childNodes),function(e){t.appendChild(e)}),e.parentNode.replaceChild(t,e)})}function S(){return a.createRange()}function k(e){if(e&&Ge.isElement(e)){var t=e.getAttribute("data-mce-contenteditable");return t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null}return null}var T={},A=j.window,M={},t=0,e=function U(m,g){void 0===g&&(g={});var p,v=0,y={};function b(e){m.getElementsByTagName("head")[0].appendChild(e)}function n(e,t,n){function r(e){l.status=e,l.passed=[],l.failed=[],u&&(u.onload=null,u.onerror=null,u=null)}function o(){for(var e=l.passed,t=e.length;t--;)e[t]();r(2)}function i(){for(var e=l.failed,t=e.length;t--;)e[t]();r(3)}function a(e,t){e()||((new Date).getTime()-c<p?pn.setTimeout(t):i())}var u,s,c,l,f=function(){a(function(){for(var e,t,n=m.styleSheets,r=n.length;r--;)if((t=(e=n[r]).ownerNode?e.ownerNode:e.owningElement)&&t.id===u.id)return o(),!0},f)},d=function(){a(function(){try{var e=s.sheet.cssRules;return o(),!!e}catch(t){}},d)};if(e=Mn._addCacheSuffix(e),y[e]?l=y[e]:(l={passed:[],failed:[]},y[e]=l),t&&l.passed.push(t),n&&l.failed.push(n),1!==l.status)if(2!==l.status)if(3!==l.status){if(l.status=1,(u=m.createElement("link")).rel="stylesheet",u.type="text/css",u.id="u"+v++,u.async=!1,u.defer=!1,c=(new Date).getTime(),g.contentCssCors&&(u.crossOrigin="anonymous"),g.referrerPolicy&&Tt(yt.fromDom(u),"referrerpolicy",g.referrerPolicy),"onload"in u&&!((h=j.navigator.userAgent.match(/WebKit\/(\d*)/))&&parseInt(h[1],10)<536))u.onload=f,u.onerror=i;else{if(0<j.navigator.userAgent.indexOf("Firefox"))return(s=m.createElement("style")).textContent='@import "'+e+'"',d(),void b(s);f()}var h;b(u),u.href=e}else i();else o()}function t(t){return Xt.nu(function(e){n(t,q(e,$(Qt.value(t))),q(e,$(Qt.error(t))))})}function o(e){return e.fold(W,W)}return p=g.maxLoadTime||5e3,{load:n,loadAll:function(e,n,r){Yt(X(e,t)).get(function(e){var t=Y(e,function(e){return e.isValue()});0<t.fail.length?r(t.fail.map(o)):n(t.pass.map(o))})},_setReferrerPolicy:function(e){g.referrerPolicy=e}}}(a,{contentCssCors:u.contentCssCors,referrerPolicy:u.referrerPolicy}),R=[],D=u.schema?u.schema:pr({}),_=xr({url_converter:u.url_converter,url_converter_scope:u.url_converter_scope},u.schema),B=u.ownEvents?new kr:kr.Event,O=D.getBlockElements(),H=vi.overrideDefaults(function(){return{context:a,element:F.getRoot()}}),P=ir.decode,L=ir.encodeAllRaw,V=function(e,t,n,r){if(Mn.isArray(e)){for(var o=e.length,i=[];o--;)i[o]=V(e[o],t,n,r);return i}return!u.collect||e!==a&&e!==A||R.push([e,t,n,r]),B.bind(e,t,n,r||F)},I=function(e,t,n){var r;if(Mn.isArray(e)){r=e.length;for(var o=[];r--;)o[r]=I(e[r],t,n);return o}if(R&&(e===a||e===A))for(r=R.length;r--;){var i=R[r];e!==i[0]||t&&t!==i[1]||n&&n!==i[2]||B.unbind(i[0],i[1],i[2])}return B.unbind(e,t,n)},F={doc:a,settings:u,win:A,files:M,stdMode:!0,boxModel:!0,styleSheetLoader:e,boundEvents:R,styles:_,schema:D,events:B,isBlock:function(e){if("string"==typeof e)return!!O[e];if(e){var t=e.nodeType;if(t)return!(1!==t||!O[e.nodeName])}return!1},$:H,$$:f,root:null,clone:function(t,e){if(!Fi||1!==t.nodeType||e)return t.cloneNode(e);if(e)return null;var n=a.createElement(t.nodeName);return Vi(d(t),function(e){o(n,e.nodeName,r(t,e.nodeName))}),n},getRoot:h,getViewPort:function(e){var t=Li(e);return{x:t.x(),y:t.y(),w:t.width(),h:t.height()}},getRect:function(e){var t,n;return e=l(e),t=i(e),n=g(e),{x:t.x,y:t.y,w:n.w,h:n.h}},getSize:g,getParent:function(e,t,n){var r=v(e,t,n,!1);return r&&0<r.length?r[0]:null},getParents:v,get:l,getNext:function(e,t){return n(e,t,"nextSibling")},getPrev:function(e,t){return n(e,t,"previousSibling")},select:function(e,t){return Ao(e,l(t)||u.root_element||a,[])},is:p,add:w,create:x,createHTML:function(e,t,n){var r,o="";for(r in o+="<"+e,t)t.hasOwnProperty(r)&&null!==t[r]&&"undefined"!=typeof t[r]&&(o+=" "+r+'="'+L(t[r])+'"');return void 0!==n?o+">"+n+"</"+e+">":o+" />"},createFragment:function(e){var t,n=a.createElement("div"),r=a.createDocumentFragment();for(e&&(n.innerHTML=e);t=n.firstChild;)r.appendChild(t);return r},remove:z,setStyle:function(e,t,n){var r=K(t)?f(e).css(t,n):f(e).css(t);u.update_styles&&$i(_,r)},getStyle:m,setStyles:function(e,t){var n=f(e).css(t);u.update_styles&&$i(_,n)},removeAllAttribs:function(e){return y(e,function(e){var t,n=e.attributes;for(t=n.length-1;0<=t;t--)e.removeAttributeNode(n.item(t))})},setAttrib:o,setAttribs:b,getAttrib:r,getPos:i,parseStyle:function(e){return _.parse(e)},serializeStyle:function(e,t){return _.serialize(e,t)},addStyle:function(e){var t,n;if(F!==Ki.DOM&&a===j.document){if(T[e])return;T[e]=!0}(n=a.getElementById("mceDefaultStyles"))||((n=a.createElement("style")).id="mceDefaultStyles",n.type="text/css",(t=a.getElementsByTagName("head")[0]).firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(a.createTextNode(e))},loadCSS:function(e){var n;F===Ki.DOM||a!==j.document?(e=e||"",n=a.getElementsByTagName("head")[0],Vi(e.split(","),function(e){var t;e=Mn._addCacheSuffix(e),M[e]||(M[e]=!0,t=x("link",G(G({rel:"stylesheet",type:"text/css",href:e},u.contentCssCors?{crossOrigin:"anonymous"}:{}),u.referrerPolicy?{referrerPolicy:u.referrerPolicy}:{})),n.appendChild(t))})):Ki.DOM.loadCSS(e)},addClass:function(e,t){f(e).addClass(t)},removeClass:function(e,t){E(e,t,!1)},hasClass:function(e,t){return f(e).hasClass(t)},toggleClass:E,show:function(e){f(e).show()},hide:function(e){f(e).hide()},isHidden:function(e){return"none"===f(e).css("display")},uniqueId:function(e){return(e||"mce_")+t++},setHTML:C,getOuterHTML:function(e){var t="string"==typeof e?l(e):e;return Ge.isElement(t)?t.outerHTML:vi("<div></div>").append(vi(t).clone()).html()},setOuterHTML:function(e,t){f(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}z(vi(this).html(t),!0)})},decode:P,encode:L,insertAfter:function(e,t){var r=l(t);return y(e,function(e){var t,n;return t=r.parentNode,(n=r.nextSibling)?t.insertBefore(e,n):t.appendChild(e),e})},replace:N,rename:function(t,e){var n;return t.nodeName!==e.toUpperCase()&&(n=x(e),Vi(d(t),function(e){o(n,e.nodeName,r(t,e.nodeName))}),N(n,t,!0)),n||t},findCommonAncestor:function(e,t){for(var n,r=e;r;){for(n=t;n&&r!==n;)n=n.parentNode;if(r===n)break;r=r.parentNode}return!r&&e.ownerDocument?e.ownerDocument.documentElement:r},toHex:function(e){return _.toHex(Mn.trim(e))},run:y,getAttribs:d,isEmpty:function(e,t){var n,r,o,i,a=0;if(e=e.firstChild){var u=new yi(e,e.parentNode),s=D?D.getWhiteSpaceElements():{};t=t||(D?D.getNonEmptyElements():null);do{if(o=e.nodeType,Ge.isElement(e)){var c=e.getAttribute("data-mce-bogus");if(c){e=u.next("all"===c);continue}if(i=e.nodeName.toLowerCase(),t&&t[i]){if("br"!==i)return!1;a++,e=u.next();continue}for(n=(r=d(e)).length;n--;)if("name"===(i=r[n].nodeName)||"data-mce-bookmark"===i)return!1}if(8===o)return!1;if(3===o&&!ji.test(e.nodeValue))return!1;if(3===o&&e.parentNode&&s[e.parentNode.nodeName]&&ji.test(e.nodeValue))return!1;e=u.next()}while(e)}return a<=1},createRng:S,nodeIndex:Wi,split:function(e,t,n){var r,o,i,a=S();if(e&&t)return a.setStart(e.parentNode,Wi(e)),a.setEnd(t.parentNode,Wi(t)),r=a.extractContents(),(a=S()).setStart(t.parentNode,Wi(t)+1),a.setEnd(e.parentNode,Wi(e)+1),o=a.extractContents(),(i=e.parentNode).insertBefore(Xn.trimNode(F,r),e),n?i.insertBefore(n,e):i.insertBefore(t,e),i.insertBefore(Xn.trimNode(F,o),e),z(e),n||t},bind:V,unbind:I,fire:function(e,t,n){return B.fire(e,t,n)},getContentEditable:k,getContentEditableParent:function(e){for(var t=h(),n=null;e&&e!==t&&null===(n=k(e));e=e.parentNode);return n},destroy:function(){if(R)for(var e=R.length;e--;){var t=R[e];B.unbind(t[0],t[1],t[2])}Ao.setDocument&&Ao.setDocument()},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset}};return s=qi(_,u,function(){return F}),F}(Ri=Ki=Ki||{}).DOM=Ri(j.document),Ri.nodeIndex=Wi;var Xi=Ki,Yi=Xi.DOM,Gi=Mn.each,Ji=Mn.grep,Qi=(Zi.prototype._setReferrerPolicy=function(e){this.settings.referrerPolicy=e},Zi.prototype.loadScript=function(e,t,n){var r,o,i=Yi;o=i.uniqueId(),(r=j.document.createElement("script")).id=o,r.type="text/javascript",r.src=Mn._addCacheSuffix(e),this.settings.referrerPolicy&&i.setAttrib(r,"referrerpolicy",this.settings.referrerPolicy),r.onload=function(){i.remove(o),r&&(r.onreadystatechange=r.onload=r=null),t()},r.onerror=function(){D(n)?n():"undefined"!=typeof j.console&&j.console.log&&j.console.log("Failed to load script: "+e)},(j.document.getElementsByTagName("head")[0]||j.document.body).appendChild(r)},Zi.prototype.isDone=function(e){return 2===this.states[e]},Zi.prototype.markDone=function(e){this.states[e]=2},Zi.prototype.add=function(e,t,n,r){this.states[e]===undefined&&(this.queue.push(e),this.states[e]=0),t&&(this.scriptLoadedCallbacks[e]||(this.scriptLoadedCallbacks[e]=[]),this.scriptLoadedCallbacks[e].push({success:t,failure:r,scope:n||this}))},Zi.prototype.load=function(e,t,n,r){return this.add(e,t,n,r)},Zi.prototype.remove=function(e){delete this.states[e],delete this.scriptLoadedCallbacks[e]},Zi.prototype.loadQueue=function(e,t,n){this.loadScripts(this.queue,e,t,n)},Zi.prototype.loadScripts=function(n,e,t,r){function o(t,e){Gi(a.scriptLoadedCallbacks[e],function(e){D(e[t])&&e[t].call(e.scope)}),a.scriptLoadedCallbacks[e]=undefined}var i,a=this,u=[];a.queueLoadedCallbacks.push({success:e,failure:r,scope:t||this}),(i=function(){var e=Ji(n);if(n.length=0,Gi(e,function(e){2!==a.states[e]?3!==a.states[e]?1!==a.states[e]&&(a.states[e]=1,a.loading++,a.loadScript(e,function(){a.states[e]=2,a.loading--,o("success",e),i()},function(){a.states[e]=3,a.loading--,u.push(e),o("failure",e),i()})):o("failure",e):o("success",e)}),!a.loading){var t=a.queueLoadedCallbacks.slice(0);a.queueLoadedCallbacks.length=0,Gi(t,function(e){0===u.length?D(e.success)&&e.success.call(e.scope):D(e.failure)&&e.failure.call(e.scope,u)})}})()},Zi.ScriptLoader=new Zi,Zi);function Zi(e){void 0===e&&(e={}),this.states={},this.queue=[],this.scriptLoadedCallbacks={},this.queueLoadedCallbacks=[],this.loading=0,this.settings=e}var ea,ta={},na=Je("en"),ra={getData:function(){return se(ta,function(e){return G({},e)})},setCode:function(e){e&&na.set(e)},getCode:function(){return na.get()},add:function(e,t){var n=ta[e];for(var r in n||(ta[e]=n={}),t)n[r.toLowerCase()]=t[r]},translate:function(e){function r(e){return D(e)?Object.prototype.toString.call(e):a(e)?"":""+e}function t(e){var t=r(e),n=t.toLowerCase();return kt(i,n)?r(i[n]):t}function n(e){return e.replace(/{context:\w+}$/,"")}function o(e){return e}var i=ta[na.get()]||{},a=function(e){return""===e||null===e||e===undefined};if(a(e))return o("");if(function(e){return T(e)&&kt(e,"raw")}(e))return o(r(e.raw));if(function(e){return A(e)&&1<e.length}(e)){var u=e.slice(1);return o(n(t(e[0]).replace(/\{([0-9]+)\}/g,function(e,t){return kt(u,t)?r(u[t]):e})))}return o(n(t(e)))},isRtl:function(){return le(ta,na.get()).bind(function(e){return le(e,"_dir")}).exists(function(e){return"rtl"===e})},hasCode:function(e){return kt(ta,e)}},oa=Mn.each;function ia(){function i(e){var t;return c[e]&&(t=c[e].dependencies),t||[]}function a(e,t){return"object"==typeof t?t:"string"==typeof e?{prefix:"",resource:t,suffix:""}:{prefix:e.prefix,resource:t,suffix:e.suffix}}function u(e,n,t,r){var o=i(e);oa(o,function(e){var t=a(n,e);f(t.resource,t,undefined,undefined)}),t&&(r?t.call(r):t.call(Qi))}var r=this,o=[],s={},c={},l=[],f=function(e,t,n,r,o){if(!s[e]){var i="string"==typeof t?t:t.prefix+t.resource+t.suffix;0!==i.indexOf("/")&&-1===i.indexOf("://")&&(i=ia.baseURL+"/"+i),s[e]=i.substring(0,i.lastIndexOf("/")),c[e]?u(e,t,n,r):Qi.ScriptLoader.add(i,function(){return u(e,t,n,r)},r,o)}};return{items:o,urls:s,lookup:c,_listeners:l,get:function(e){return c[e]?c[e].instance:undefined},dependencies:i,requireLangPack:function(e,t){var n=ra.getCode();if(n&&!1!==ia.languageLoad){if(t)if(-1!==(t=","+t+",").indexOf(","+n.substr(0,2)+","))n=n.substr(0,2);else if(-1===t.indexOf(","+n+","))return;Qi.ScriptLoader.add(s[e]+"/langs/"+n+".js")}},add:function(t,e,n){o.push(e),c[t]={instance:e,dependencies:n};var r=Y(l,function(e){return e.name===t});return l=r.fail,oa(r.pass,function(e){e.callback()}),e},remove:function(e){delete s[e],delete c[e]},createUrl:a,addComponents:function(e,t){var n=r.urls[e];oa(t,function(e){Qi.ScriptLoader.add(n+"/"+e)})},load:f,waitFor:function(e,t){c.hasOwnProperty(e)?t():l.push({name:e,callback:t})}}}(ea=ia=ia||{}).PluginManager=ea(),ea.ThemeManager=ea();function aa(n,r){var o=null;return{cancel:function(){null!==o&&(j.clearTimeout(o),o=null)},throttle:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];null===o&&(o=j.setTimeout(function(){n.apply(null,e),o=null},r))}}}function ua(e,t){var n=ge(e,t);return n===undefined||""===n?[]:n.split(" ")}function sa(e){return e.dom().classList!==undefined}function ca(e,t){return function(e,t,n){var r=ua(e,t).concat([n]);return Tt(e,t,r.join(" ")),!0}(e,"class",t)}function la(e,t){return function(e,t,n){var r=y(ua(e,t),function(e){return e!==n});return 0<r.length?Tt(e,t,r.join(" ")):pe(e,t),!1}(e,"class",t)}function fa(e,t){sa(e)?e.dom().classList.add(t):ca(e,t)}function da(e){0===(sa(e)?e.dom().classList:function(e){return ua(e,"class")}(e)).length&&pe(e,"class")}function ha(e,t){return sa(e)&&e.dom().classList.contains(t)}function ma(e,t){return function(e,t){var n=t===undefined?j.document:t.dom();return xe(n)?[]:X(n.querySelectorAll(e),yt.fromDom)}(t,e)}var ga=ia,pa=function(e,t){var n=[];return z(Re(e),function(e){t(e)&&(n=n.concat([e])),n=n.concat(pa(e,t))}),n};function va(e,t,n,r,o){return e(n,r)?k.some(n):D(o)&&o(n)?k.none():t(n,r,o)}function ya(e,t,n){for(var r=e.dom(),o=D(n)?n:$(!1);r.parentNode;){r=r.parentNode;var i=yt.fromDom(r);if(t(i))return k.some(i);if(o(i))break}return k.none()}function ba(e,t,n){return va(function(e,t){return t(e)},ya,e,t,n)}function Ca(e,t,n){return ya(e,function(e){return we(e,t)},n)}function wa(e,t){return function(e,t){var n=t===undefined?j.document:t.dom();return xe(n)?k.none():k.from(n.querySelector(e)).map(yt.fromDom)}(t,e)}function xa(e,t,n){return va(we,Ca,e,t,n)}function za(r,e){function t(e,t){return function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)}(e,t)?k.some(ge(e,t)):k.none()}var n=r.selection.getRng(),o=yt.fromDom(n.startContainer),i=yt.fromDom(r.getBody()),a=e.fold(function(){return"."+nu()},function(e){return"["+ru()+'="'+e+'"]'}),u=De(o,n.startOffset).getOr(o);return xa(u,a,function(e){return ze(e,i)}).bind(function(e){return t(e,""+ou()).bind(function(n){return t(e,""+ru()).map(function(e){var t=iu(r,n);return{uid:n,name:e,elements:t}})})})}function Ea(n,e){function a(e,t){r(e,function(e){return t(e),e})}var o=Je({}),r=function(e,t){var n=o.get(),r=t(n.hasOwnProperty(e)?n[e]:{listeners:[],previous:Je(k.none())});n[e]=r,o.set(n)},t=function(n,r){var o=null;return{cancel:function(){null!==o&&(j.clearTimeout(o),o=null)},throttle:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];null!==o&&j.clearTimeout(o),o=j.setTimeout(function(){n.apply(null,e),o=null},r)}}}(function(){var e=o.get(),t=function(e,t){var n=B.call(e,0);return n.sort(t),n}(Et(e));z(t,function(e){r(e,function(o){var i=o.previous.get();return za(n,k.some(e)).fold(function(){i.isSome()&&(function(t){a(t,function(e){z(e.listeners,function(e){return e(!1,t)})})}(e),o.previous.set(k.none()))},function(e){var t=e.uid,n=e.name,r=e.elements;i.is(t)||(function(t,n,r){a(t,function(e){z(e.listeners,function(e){return e(!0,t,{uid:n,nodes:X(r,function(e){return e.dom()})})})})}(n,t,r),o.previous.set(k.some(t)))}),{previous:o.previous,listeners:o.listeners}})})},30);return n.on("remove",function(){t.cancel()}),n.on("NodeChange",function(){t.throttle()}),{addListener:function(e,t){r(e,function(e){return{previous:e.previous,listeners:e.listeners.concat([t])}})}}}function Na(e,n){e.on("init",function(){e.serializer.addNodeFilter("span",function(e){z(e,function(t){(function(e){return k.from(e.attr(ru())).bind(n.lookup)})(t).each(function(e){!1===e.persistent&&t.unwrap()})})})})}function Sa(e,t){return yt.fromDom(e.dom().cloneNode(t))}function ka(e){return Sa(e,!1)}function Ta(e){return Sa(e,!0)}function Aa(e,t){var n=Ee(e).dom(),r=yt.fromDom(n.createDocumentFragment()),o=function(e,t){var n=(t||j.document).createElement("div");return n.innerHTML=e,Re(yt.fromDom(n))}(t,n);zi(r,o),Ei(e),Di(e,r)}function Ma(e){return du(e)&&(e=e.parentNode),fu(e)&&e.hasAttribute("data-mce-caret")}function Ra(e){return du(e)&&su(e.data)}function Da(e){return Ma(e)||Ra(e)}function _a(e){return e.firstChild!==e.lastChild||!Ge.isBr(e.firstChild)}function Ba(e){var t=e.container();return!(!e||!Ge.isText(t))&&(t.data.charAt(e.offset())===cu||e.isAtStart()&&Ra(t.previousSibling))}function Oa(e){var t=e.container();return!(!e||!Ge.isText(t))&&(t.data.charAt(e.offset()-1)===cu||e.isAtEnd()&&Ra(t.nextSibling))}function Ha(e,t,n){var r,o;return(r=t.ownerDocument.createElement(e)).setAttribute("data-mce-caret",n?"before":"after"),r.setAttribute("data-mce-bogus","all"),r.appendChild(function(){var e=j.document.createElement("br");return e.setAttribute("data-mce-bogus","1"),e}()),o=t.parentNode,n?o.insertBefore(r,t):t.nextSibling?o.insertBefore(r,t.nextSibling):o.appendChild(r),r}function Pa(e){return e&&e.hasAttribute("data-mce-caret")?(function(e){var t=e.getElementsByTagName("br"),n=t[t.length-1];Ge.isBogus(n)&&n.parentNode.removeChild(n)}(e),e.removeAttribute("data-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("_moz_abspos"),e):null}function La(e){return!xu(e)&&(yu(e)?!bu(e.parentNode):Cu(e)||vu(e)||wu(e)||zu(e))}function Va(e,t){return La(e)&&function(e,t){for(e=e.parentNode;e&&e!==t;e=e.parentNode){if(zu(e))return!1;if(gu(e))return!0}return!0}(e,t)}function Ia(e){return e?{left:Eu(e.left),top:Eu(e.top),bottom:Eu(e.bottom),right:Eu(e.right),width:Eu(e.width),height:Eu(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}}function Fa(e,t){return e=Ia(e),t||(e.left=e.left+e.width),e.right=e.left,e.width=0,e}function Ua(e,t,n){return 0<=e&&e<=Math.min(t.height,n.height)/2}function ja(e,t){return e.bottom-e.height/2<t.top||!(e.top>t.bottom)&&Ua(t.top-e.bottom,e,t)}function qa(e,t){return e.top>t.bottom||!(e.bottom<t.top)&&Ua(t.bottom-e.top,e,t)}function $a(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom}function Wa(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset===n+1?t.childNodes[n]:null}function Ka(e,t){return 1===e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e}function Xa(e){return"string"==typeof e&&768<=e.charCodeAt(0)&&Nu.test(e)}function Ya(e,t,n){return e.isSome()&&t.isSome()?k.some(n(e.getOrDie(),t.getOrDie())):k.none()}function Ga(e){return e&&/[\r\n\t ]/.test(e)}function Ja(e){return!!e.setStart&&!!e.setEnd}function Qa(e){var t,n=e.startContainer,r=e.startOffset;return!!(Ga(e.toString())&&Bu(n.parentNode)&&Ge.isText(n)&&(t=n.data,Ga(t[r-1])||Ga(t[r+1])))}function Za(e){return 0===e.left&&0===e.right&&0===e.top&&0===e.bottom}function eu(e,t){var n=Fa(e,t);return n.width=1,n.right=n.left+1,n}var tu,nu=$("mce-annotation"),ru=$("data-mce-annotation"),ou=$("data-mce-annotation-uid"),iu=function(e,t){var n=yt.fromDom(e.getBody());return ma(n,"["+ou()+'="'+t+'"]')},au=0,uu="\ufeff",su=function(e){return e===uu},cu=uu,lu=function(e){return e.replace(new RegExp(uu,"g"),"")},fu=Ge.isElement,du=Ge.isText,hu=function(e){return du(e)&&e.data[0]===cu},mu=function(e){return du(e)&&e.data[e.data.length-1]===cu},gu=Ge.isContentEditableTrue,pu=Ge.isContentEditableFalse,vu=Ge.isBr,yu=Ge.isText,bu=Ge.matchNodeNames(["script","style","textarea"]),Cu=Ge.matchNodeNames(["img","input","textarea","hr","iframe","video","audio","object"]),wu=Ge.matchNodeNames(["table"]),xu=Da,zu=function(e){return!1===function(e){return Ge.isElement(e)&&"true"===e.getAttribute("unselectable")}(e)&&pu(e)},Eu=Math.round,Nu=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"),Su=[].slice,ku=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Su.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(!n[t](e))return!1;return!0}},Tu=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Su.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(n[t](e))return!0;return!1}},Au=Ge.isElement,Mu=La,Ru=Ge.matchStyleValues("display","block table"),Du=Ge.matchStyleValues("float","left right"),_u=ku(Au,Mu,s(Du)),Bu=s(Ge.matchStyleValues("white-space","pre pre-line pre-wrap")),Ou=Ge.isText,Hu=Ge.isBr,Pu=Xi.nodeIndex,Lu=Ka,Vu=function(e){return"createRange"in e?e.createRange():Xi.DOM.createRng()},Iu=function(e){var t,n;return t=0<(n=e.getClientRects()).length?Ia(n[0]):Ia(e.getBoundingClientRect()),!Ja(e)&&Hu(e)&&Za(t)?function(e){var t,n=e.ownerDocument,r=Vu(n),o=n.createTextNode("\xa0"),i=e.parentNode;return i.insertBefore(o,e),r.setStart(o,0),r.setEnd(o,1),t=Ia(r.getBoundingClientRect()),i.removeChild(o),t}(e):Za(t)&&Ja(e)?function(e){var t=e.startContainer,n=e.endContainer,r=e.startOffset,o=e.endOffset;if(t===n&&Ge.isText(n)&&0===r&&1===o){var i=e.cloneRange();return i.setEndAfter(n),Iu(i)}return null}(e):t},Fu=function(e){function r(e){0!==e.height&&(0<i.length&&function(e,t){return e.left===t.left&&e.top===t.top&&e.bottom===t.bottom&&e.right===t.right}(e,i[i.length-1])||i.push(e))}function t(e,t){var n=Vu(e.ownerDocument);if(t<e.data.length){if(Xa(e.data[t]))return i;if(Xa(e.data[t-1])&&(n.setStart(e,t),n.setEnd(e,t+1),!Qa(n)))return r(eu(Iu(n),!1)),i}0<t&&(n.setStart(e,t-1),n.setEnd(e,t),Qa(n)||r(eu(Iu(n),!1))),t<e.data.length&&(n.setStart(e,t),n.setEnd(e,t+1),Qa(n)||r(eu(Iu(n),!0)))}var n,o,i=[];if(Ou(e.container()))return t(e.container(),e.offset()),i;if(Au(e.container()))if(e.isAtEnd())o=Lu(e.container(),e.offset()),Ou(o)&&t(o,o.data.length),_u(o)&&!Hu(o)&&r(eu(Iu(o),!1));else{if(o=Lu(e.container(),e.offset()),Ou(o)&&t(o,0),_u(o)&&e.isAtEnd())return r(eu(Iu(o),!1)),i;n=Lu(e.container(),e.offset()-1),_u(n)&&!Hu(n)&&(!Ru(n)&&!Ru(o)&&_u(o)||r(eu(Iu(n),!1))),_u(o)&&r(eu(Iu(o),!0))}return i};function Uu(t,n,e){function r(){return e=e||Fu(Uu(t,n))}return{container:$(t),offset:$(n),toRange:function(){var e;return(e=Vu(t.ownerDocument)).setStart(t,n),e.setEnd(t,n),e},getClientRects:r,isVisible:function(){return 0<r().length},isAtStart:function(){return Ou(t),0===n},isAtEnd:function(){return Ou(t)?n>=t.data.length:n>=t.childNodes.length},isEqual:function(e){return e&&t===e.container()&&n===e.offset()},getNode:function(e){return Lu(t,e?n-1:n)}}}(tu=Uu=Uu||{}).fromRangeStart=function(e){return tu(e.startContainer,e.startOffset)},tu.fromRangeEnd=function(e){return tu(e.endContainer,e.endOffset)},tu.after=function(e){return tu(e.parentNode,Pu(e)+1)},tu.before=function(e){return tu(e.parentNode,Pu(e))},tu.isAbove=function(e,t){return Ya(E(t.getClientRects()),N(e.getClientRects()),ja).getOr(!1)},tu.isBelow=function(e,t){return Ya(N(t.getClientRects()),E(e.getClientRects()),qa).getOr(!1)},tu.isAtStart=function(e){return!!e&&e.isAtStart()},tu.isAtEnd=function(e){return!!e&&e.isAtEnd()},tu.isTextPosition=function(e){return!!e&&Ge.isText(e.container())},tu.isElementPosition=function(e){return!1===tu.isTextPosition(e)};function ju(t){return function(e){return t===e}}function qu(e){return(_s(e)?"text()":e.nodeName.toLowerCase())+"["+function(e){var r,t,n;return r=Ps(Hs(e)),t=kn.findIndex(r,ju(e),e),r=r.slice(0,t+1),n=kn.reduce(r,function(e,t,n){return _s(t)&&_s(r[n-1])&&e++,e},0),r=kn.filter(r,Ge.matchNodeNames([e.nodeName])),(t=kn.findIndex(r,ju(e),e))-n}(e)+"]"}function $u(e,t){var n,r,o,i,a,u=[];return n=t.container(),r=t.offset(),_s(n)?o=function(e,t){for(;(e=e.previousSibling)&&_s(e);)t+=e.data.length;return t}(n,r):(r>=(i=n.childNodes).length?(o="after",r=i.length-1):o="before",n=i[r]),u.push(qu(n)),a=function(e,t,n){var r=[];for(t=t.parentNode;t!==e&&(!n||!n(t));t=t.parentNode)r.push(t);return r}(e,n),a=kn.filter(a,s(Ge.isBogus)),(u=u.concat(kn.map(a,function(e){return qu(e)}))).reverse().join("/")+","+o}function Wu(e,t){var n,r,o;return t?(t=(n=t.split(","))[0].split("/"),o=1<n.length?n[1]:"before",(r=kn.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),function(e,t,n){var r=Ps(e);return r=kn.filter(r,function(e,t){return!_s(e)||!_s(r[t-1])}),(r=kn.filter(r,Ge.matchNodeNames([t])))[n]}(e,t[1],parseInt(t[2],10))):null},e))?_s(r)?function(e,t){for(var n,r=e,o=0;_s(r);){if(n=r.data.length,o<=t&&t<=o+n){e=r,t-=o;break}if(!_s(r.nextSibling)){e=r,t=n;break}o+=n,r=r.nextSibling}return _s(e)&&t>e.data.length&&(t=e.data.length),Ds(e,t)}(r,parseInt(o,10)):(o="after"===o?Os(r)+1:Os(r),Ds(r.parentNode,o)):null):null}function Ku(e,t){Ge.isText(t)&&0===t.data.length&&e.remove(t)}function Xu(e,t,n){Ge.isDocumentFragment(n)?function(t,e,n){var r=k.from(n.firstChild),o=k.from(n.lastChild);e.insertNode(n),r.each(function(e){return Ku(t,e.previousSibling)}),o.each(function(e){return Ku(t,e.nextSibling)})}(e,t,n):function(e,t,n){t.insertNode(n),Ku(e,n.previousSibling),Ku(e,n.nextSibling)}(e,t,n)}function Yu(e,t,n,r,o){var i,a=r[o?"startContainer":"endContainer"],u=r[o?"startOffset":"endOffset"],s=[],c=0,l=e.getRoot();for(Ge.isText(a)?s.push(n?function(e,t,n){var r,o;for(o=e(t.data.slice(0,n)).length,r=t.previousSibling;r&&Ge.isText(r);r=r.previousSibling)o+=e(r.data).length;return o}(t,a,u):u):(u>=(i=a.childNodes).length&&i.length&&(c=1,u=Math.max(0,i.length-1)),s.push(e.nodeIndex(i[u],n)+c));a&&a!==l;a=a.parentNode)s.push(e.nodeIndex(a,n));return s}function Gu(e,t,n){var r=0;return Mn.each(e.select(t),function(e){if("all"!==e.getAttribute("data-mce-bogus"))return e!==n&&void r++}),r}function Ju(e,t){var n,r,o,i=t?"start":"end";n=e[i+"Container"],r=e[i+"Offset"],Ge.isElement(n)&&"TR"===n.nodeName&&(n=(o=n.childNodes)[Math.min(t?r:r-1,o.length-1)])&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r))}function Qu(e){return Ju(e,!0),Ju(e,!1),e}function Zu(e,t){var n;if(Ge.isElement(e)&&(e=Ka(e,t),Ls(e)))return e;if(Da(e)){if(Ge.isText(e)&&Ma(e)&&(e=e.parentNode),n=e.previousSibling,Ls(n))return n;if(n=e.nextSibling,Ls(n))return n}}function es(e,t,n){var r=n.getNode(),o=r?r.nodeName:null,i=n.getRng();if(Ls(r)||"IMG"===o)return{name:o,index:Gu(n.dom,o,r)};var a=function(e){return Zu(e.startContainer,e.startOffset)||Zu(e.endContainer,e.endOffset)}(i);return a?{name:o=a.tagName,index:Gu(n.dom,o,a)}:function(e,t,n,r){var o=t.dom,i={};return i.start=Yu(o,e,n,r,!0),t.isCollapsed()||(i.end=Yu(o,e,n,r,!1)),i}(e,n,t,i)}function ts(e,t,n){var r={"data-mce-type":"bookmark",id:t,style:"overflow:hidden;line-height:0px"};return n?e.create("span",r,""):e.create("span",r)}function ns(e,t){var n=e.dom,r=e.getRng(),o=n.uniqueId(),i=e.isCollapsed(),a=e.getNode(),u=a.nodeName;if("IMG"===u)return{name:u,index:Gu(n,u,a)};var s=Qu(r.cloneRange());if(!i){s.collapse(!1);var c=ts(n,o+"_end",t);Xu(n,s,c)}(r=Qu(r)).collapse(!0);var l=ts(n,o+"_start",t);return Xu(n,r,l),e.moveToBookmark({id:o,keep:1}),{id:o}}function rs(e){return Ge.isElement(e)&&e.id===Is}function os(e,t){for(;t&&t!==e;){if(t.id===Is)return t;t=t.parentNode}return null}function is(e){var t=e.parentNode;t&&t.removeChild(e)}function as(e,t){0===t.length?is(e):e.nodeValue=t}function us(e){var t=lu(e);return{count:e.length-t.length,text:t}}function ss(e,t){return js(e),t}function cs(e,t){var n=t.container(),r=function(e,t){var n=f(e,t);return-1===n?k.none():k.some(n)}(P(n.childNodes),e).map(function(e){return e<t.offset()?Ds(n,t.offset()-1):t}).getOr(t);return js(e),r}function ls(e,t){return Us(e)&&t.container()===e?function(e,t){var n=us(e.data.substr(0,t.offset())),r=us(e.data.substr(t.offset())),o=n.text+r.text;return 0<o.length?(as(e,o),Ds(e,t.offset()-n.count)):t}(e,t):ss(e,t)}function fs(e,t,n){var r,o,i,a,u,s=Fa(t.getBoundingClientRect(),n);return i="BODY"===e.tagName?(r=e.ownerDocument.documentElement,o=e.scrollLeft||r.scrollLeft,e.scrollTop||r.scrollTop):(u=e.getBoundingClientRect(),o=e.scrollLeft-u.left,e.scrollTop-u.top),s.left+=o,s.right+=o,s.top+=i,s.bottom+=i,s.width=1,0<(a=t.offsetWidth-t.clientWidth)&&(n&&(a*=-1),s.left+=a,s.right+=a),s}function ds(i,a,e){var t,u,s=Je(k.none()),c=function(){!function(e){var t,n,r,o,i;for(t=vi("*[contentEditable=false]",e),o=0;o<t.length;o++)r=(n=t[o]).previousSibling,mu(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(i.length-1,1)),r=n.nextSibling,hu(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(0,1))}(i),u&&(qs.remove(u),u=null),s.get().each(function(e){vi(e.caret).remove(),s.set(k.none())}),pn.clearInterval(t)},l=function(){t=pn.setInterval(function(){e()?vi("div.mce-visual-caret",i).toggleClass("mce-visual-caret-hidden"):vi("div.mce-visual-caret",i).addClass("mce-visual-caret-hidden")},500)};return{show:function(t,e){var n,r;if(c(),function(e){return Ge.isElement(e)&&/^(TD|TH)$/i.test(e.tagName)}(e))return null;if(!a(e))return u=function(e,t){var n,r,o;if(r=e.ownerDocument.createTextNode(cu),o=e.parentNode,t){if(n=e.previousSibling,du(n)){if(Da(n))return n;if(mu(n))return n.splitText(n.data.length-1)}o.insertBefore(r,e)}else{if(n=e.nextSibling,du(n)){if(Da(n))return n;if(hu(n))return n.splitText(1),n}e.nextSibling?o.insertBefore(r,e.nextSibling):o.appendChild(r)}return r}(e,t),r=e.ownerDocument.createRange(),Ws(u.nextSibling)?(r.setStart(u,0),r.setEnd(u,0)):(r.setStart(u,1),r.setEnd(u,1)),r;u=Ha("p",e,t),n=fs(i,e,t),vi(u).css("top",n.top);var o=vi('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(n).appendTo(i)[0];return s.set(k.some({caret:o,element:e,before:t})),s.get().each(function(e){t&&vi(e.caret).addClass("mce-visual-caret-before")}),l(),(r=e.ownerDocument.createRange()).setStart(u,0),r.setEnd(u,0),r},hide:c,getCss:function(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"},reposition:function(){s.get().each(function(e){var t=fs(i,e.element,e.before);vi(e.caret).css(G({},t))})},destroy:function(){return pn.clearInterval(t)}}}function hs(){return $s.isIE()||$s.isEdge()||$s.isFirefox()}function ms(e){return Ws(e)||Ge.isTable(e)&&hs()}function gs(e){return 0<e}function ps(e){return e<0}function vs(e,t){for(var n;n=e(t);)if(!Gs(n))return n;return null}function ys(e,t,n,r,o){var i=new yi(e,r);if(ps(t)){if((Ks(e)||Gs(e))&&n(e=vs(i.prev,!0)))return e;for(;e=vs(i.prev,o);)if(n(e))return e}if(gs(t)){if((Ks(e)||Gs(e))&&n(e=vs(i.next,!0)))return e;for(;e=vs(i.next,o);)if(n(e))return e}return null}function bs(e,t){for(;e&&e!==t;){if(Xs(e))return e;e=e.parentNode}return null}function Cs(e,t,n){return bs(e.container(),n)===bs(t.container(),n)}function ws(e,t){var n,r;return t?(n=t.container(),r=t.offset(),Js(n)?n.childNodes[r+e]:null):null}function xs(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n}function zs(e,t,n){var r,o,i,a;for(o=e?"previousSibling":"nextSibling";n&&n!==t;){if(r=n[o],Ys(r)&&(r=r[o]),Ks(r)){if(a=n,bs(r,i=t)===bs(a,i))return r;break}if(Qs(r))break;n=n.parentNode}return null}function Es(e,t,n){var r,o,i,a,u=d(zs,!0,t),s=d(zs,!1,t);if(o=n.startContainer,i=n.startOffset,Ma(o)){if(Js(o)||(o=o.parentNode),"before"===(a=o.getAttribute("data-mce-caret"))&&(r=o.nextSibling,ms(r)))return Zs(r);if("after"===a&&(r=o.previousSibling,ms(r)))return ec(r)}if(!n.collapsed)return n;if(Ge.isText(o)){if(Ys(o)){if(1===e){if(r=s(o))return Zs(r);if(r=u(o))return ec(r)}if(-1===e){if(r=u(o))return ec(r);if(r=s(o))return Zs(r)}return n}if(mu(o)&&i>=o.data.length-1)return 1===e&&(r=s(o))?Zs(r):n;if(hu(o)&&i<=1)return-1===e&&(r=u(o))?ec(r):n;if(i===o.data.length)return(r=s(o))?Zs(r):n;if(0===i)return(r=u(o))?ec(r):n}return n}function Ns(e,t){return k.from(ws(e?0:-1,t)).filter(Ks)}function Ss(e,t,n){var r=Es(e,t,n);return-1===e?Uu.fromRangeStart(r):Uu.fromRangeEnd(r)}function ks(e){return k.from(e.getNode()).map(yt.fromDom)}function Ts(e,t){for(;t=e(t);)if(t.isVisible())return t;return t}function As(e,t){var n=Cs(e,t);return!(n||!Ge.isBr(e.getNode()))||n}var Ms,Rs,Ds=Uu,_s=Ge.isText,Bs=Ge.isBogus,Os=Xi.nodeIndex,Hs=function(e){var t=e.parentNode;return Bs(t)?Hs(t):t},Ps=function(e){return e?kn.reduce(e.childNodes,function(e,t){return Bs(t)&&"BR"!==t.nodeName?e=e.concat(Ps(t)):e.push(t),e},[]):[]},Ls=Ge.isContentEditableFalse,Vs={getBookmark:function(e,t,n){return 2===t?es(lu,n,e):3===t?function(e){var t=e.getRng();return{start:$u(e.dom.getRoot(),Ds.fromRangeStart(t)),end:$u(e.dom.getRoot(),Ds.fromRangeEnd(t))}}(e):t?function(e){return{rng:e.getRng()}}(e):ns(e,!1)},getUndoBookmark:d(es,W,!0),getPersistentBookmark:ns},Is="_mce_caret",Fs=Ge.isElement,Us=Ge.isText,js=function(e){if(Fs(e)&&Da(e)&&(_a(e)?e.removeAttribute("data-mce-caret"):is(e)),Us(e)){var t=lu(function(e){try{return e.nodeValue}catch(t){return""}}(e));as(e,t)}},qs={removeAndReposition:function(e,t){return Ds.isTextPosition(t)?ls(e,t):function(e,t){return t.container()===e.parentNode?cs(e,t):ss(e,t)}(e,t)},remove:js},$s=oe().browser,Ws=Ge.isContentEditableFalse,Ks=Ge.isContentEditableFalse,Xs=Ge.matchStyleValues("display","block table table-cell table-caption list-item"),Ys=Da,Gs=Ma,Js=Ge.isElement,Qs=La,Zs=d(xs,!0),ec=d(xs,!1);(Rs=Ms=Ms||{})[Rs.Backwards=-1]="Backwards",Rs[Rs.Forwards=1]="Forwards";function tc(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null}function nc(e,t){if(gs(e)){if(Ac(t.previousSibling)&&!Sc(t.previousSibling))return Ds.before(t);if(Sc(t))return Ds(t,0)}if(ps(e)){if(Ac(t.nextSibling)&&!Sc(t.nextSibling))return Ds.after(t);if(Sc(t))return Ds(t,t.data.length)}return ps(e)?Tc(t)?Ds.before(t):Ds.after(t):Ds.before(t)}function rc(t){return{next:function(e){return Dc(Ms.Forwards,e,t)},prev:function(e){return Dc(Ms.Backwards,e,t)}}}function oc(e){return Ds.isTextPosition(e)?0===e.offset():La(e.getNode())}function ic(e){if(Ds.isTextPosition(e)){var t=e.container();return e.offset()===t.data.length}return La(e.getNode(!0))}function ac(e,t){return!Ds.isTextPosition(e)&&!Ds.isTextPosition(t)&&e.getNode()===t.getNode(!0)}function uc(e,t,n){return e?!ac(t,n)&&!function(e){return!Ds.isTextPosition(e)&&Ge.isBr(e.getNode())}(t)&&ic(t)&&oc(n):!ac(n,t)&&oc(t)&&ic(n)}function sc(t,n,r){return _c(t,n,r).bind(function(e){return Cs(r,e,n)&&uc(t,r,e)?_c(t,n,e):k.some(e)})}function cc(e,t){var n=e?t.firstChild:t.lastChild;return Ge.isText(n)?k.some(Ds(n,e?0:n.data.length)):n?La(n)?k.some(e?Ds.before(n):function(e){return Ge.isBr(e)?Ds.before(e):Ds.after(e)}(n)):function(e,t,n){var r=e?Ds.before(n):Ds.after(n);return _c(e,t,r)}(e,t,n):k.none()}function lc(e,t){return Ge.isElement(t)&&e.isBlock(t)&&!t.innerHTML&&!Nn.ie&&(t.innerHTML='<br data-mce-bogus="1" />'),t}function fc(e,t){return Pc.lastPositionIn(e).fold(function(){return!1},function(e){return t.setStart(e.container(),e.offset()),t.setEnd(e.container(),e.offset()),!0})}function dc(e,t,n){return!(!function(e){return!1===e.hasChildNodes()}(t)||!os(e,t))&&(function(e,t){var n=e.ownerDocument.createTextNode(cu);e.appendChild(n),t.setStart(n,0),t.setEnd(n,0)}(t,n),!0)}function hc(e,t,n,r){var o,i,a,u,s=n[t?"start":"end"],c=e.getRoot();if(s){for(a=s[0],i=c,o=s.length-1;1<=o;o--){if(u=i.childNodes,dc(c,i,r))return!0;if(s[o]>u.length-1)return!!dc(c,i,r)||fc(i,r);i=u[s[o]]}3===i.nodeType&&(a=Math.min(s[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(s[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0}function mc(e){return Ge.isText(e)&&0<e.data.length}function gc(e,t,n){var r,o,i,a,u,s,c=e.get(n.id+"_"+t),l=n.keep;if(c){if(r=c.parentNode,s=(u=(o="start"===t?l?c.hasChildNodes()?(r=c.firstChild,1):mc(c.nextSibling)?(r=c.nextSibling,0):mc(c.previousSibling)?(r=c.previousSibling,c.previousSibling.data.length):(r=c.parentNode,e.nodeIndex(c)+1):e.nodeIndex(c):l?c.hasChildNodes()?(r=c.firstChild,1):mc(c.previousSibling)?(r=c.previousSibling,c.previousSibling.data.length):(r=c.parentNode,e.nodeIndex(c)):e.nodeIndex(c),r),o),!l){for(a=c.previousSibling,i=c.nextSibling,Mn.each(Mn.grep(c.childNodes),function(e){Ge.isText(e)&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});c=e.get(n.id+"_"+t);)e.remove(c,!0);a&&i&&a.nodeType===i.nodeType&&Ge.isText(a)&&!Nn.opera&&(o=a.nodeValue.length,a.appendData(i.nodeValue),e.remove(i),s=(u=a,o))}return k.some(Ds(u,s))}return k.none()}function pc(e){return e&&/^(IMG)$/.test(e.nodeName)}function vc(e,t,n){return"color"!==n&&"backgroundColor"!==n||(t=e.toHex(t)),"fontWeight"===n&&700===t&&(t="bold"),"fontFamily"===n&&(t=t.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+t}function yc(e,t){for(void 0===t&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)(e=e.childNodes[t])&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function bc(e,t){for(var n=t;n;){if(1===n.nodeType&&e.getContentEditable(n))return"false"===e.getContentEditable(n)?n:t;n=n.parentNode}return t}function Cc(e,t,n,r){var o,i,a=n.nodeValue;return void 0===r&&(r=e?a.length:0),e?(o=a.lastIndexOf(" ",r),-1!==(o=(i=a.lastIndexOf("\xa0",r))<o?o:i)&&!t&&(o<r||!e)&&o<=a.length&&o++):(o=a.indexOf(" ",r),i=a.indexOf("\xa0",r),o=-1!==o&&(-1===i||o<i)?o:i),o}function wc(e,t,n,r,o,i){var a,u,s;if(3===n.nodeType){if(-1!==(u=Cc(o,i,n,r)))return{container:n,offset:u};s=n}for(var c=new yi(n,e.getParent(n,e.isBlock)||t);a=c[o?"prev":"next"]();)if(3!==a.nodeType||qc(a.parentNode)){if(e.isBlock(a)||jc.isEq(a,"BR"))break}else if(-1!==(u=Cc(o,i,s=a)))return{container:a,offset:u};if(s)return{container:s,offset:r=o?0:s.length}}function xc(e,t,n,r,o){var i,a,u,s;for(3===r.nodeType&&0===r.nodeValue.length&&r[o]&&(r=r[o]),i=$c(e,r),a=0;a<i.length;a++)for(u=0;u<t.length;u++)if(!("collapsed"in(s=t[u])&&s.collapsed!==n.collapsed)&&e.is(i[a],s.selector))return i[a];return r}function zc(t,e,n,r){var o,i=t.dom,a=i.getRoot();if(e[0].wrapper||(o=i.getParent(n,e[0].block,a)),!o){var u=i.getParent(n,"LI,TD,TH");o=i.getParent(3===n.nodeType?n.parentNode:n,function(e){return e!==a&&Kc(t,e)},u)}if(o&&e[0].wrapper&&(o=$c(i,o,"ul,ol").reverse()[0]||o),!o)for(o=n;o[r]&&!i.isBlock(o[r])&&(o=o[r],!jc.isEq(o,"br")););return o||n}function Ec(e,t,n,r,o,i,a){var u,s,c,l,f,d;if(u=s=a?n:o,l=a?"previousSibling":"nextSibling",f=e.getRoot(),3===u.nodeType&&!Wc(u)&&(a?0<r:i<u.nodeValue.length))return u;for(;;){if(!t[0].block_expand&&e.isBlock(s))return s;for(c=s[l];c;c=c[l])if(!qc(c)&&!Wc(c)&&("BR"!==(d=c).nodeName||!d.getAttribute("data-mce-bogus")||d.nextSibling))return s;if(s===f||s.parentNode===f){u=s;break}s=s.parentNode}return u}var Nc=Ge.isContentEditableFalse,Sc=Ge.isText,kc=Ge.isElement,Tc=Ge.isBr,Ac=La,Mc=function(e){return Cu(e)||function(e){return!!zu(e)&&!0!==b(P(e.getElementsByTagName("*")),function(e,t){return e||gu(t)},!1)}(e)},Rc=Va,Dc=function(e,t,n){var r,o,i,a,u;if(!kc(n)||!t)return null;if(t.isEqual(Ds.after(n))&&n.lastChild){if(u=Ds.after(n.lastChild),ps(e)&&Ac(n.lastChild)&&kc(n.lastChild))return Tc(n.lastChild)?Ds.before(n.lastChild):u}else u=t;var s=u.container(),c=u.offset();if(Sc(s)){if(ps(e)&&0<c)return Ds(s,--c);if(gs(e)&&c<s.length)return Ds(s,++c);r=s}else{if(ps(e)&&0<c&&(o=tc(s,c-1),Ac(o)))return!Mc(o)&&(i=ys(o,e,Rc,o))?Sc(i)?Ds(i,i.data.length):Ds.after(i):Sc(o)?Ds(o,o.data.length):Ds.before(o);if(gs(e)&&c<s.childNodes.length&&(o=tc(s,c),Ac(o)))return Tc(o)?function(e,t){var n=t.nextSibling;return n&&Ac(n)?Sc(n)?Ds(n,0):Ds.before(n):Dc(Ms.Forwards,Ds.after(t),e)}(n,o):!Mc(o)&&(i=ys(o,e,Rc,o))?Sc(i)?Ds(i,0):Ds.before(i):Sc(o)?Ds(o,0):Ds.after(o);r=o||u.getNode()}return(gs(e)&&u.isAtEnd()||ps(e)&&u.isAtStart())&&(r=ys(r,e,$(!0),n,!0),Rc(r,n))?nc(e,r):(o=ys(r,e,Rc,n),!(a=kn.last(y(function(e,t){for(var n=[];e&&e!==t;)n.push(e),e=e.parentNode;return n}(s,n),Nc)))||o&&a.contains(o)?o?nc(e,o):null:u=gs(e)?Ds.after(a):Ds.before(a))},_c=function(e,t,n){var r=rc(t);return k.from(e?r.next(n):r.prev(n))},Bc=function(t,n,e,r){return sc(t,n,e).bind(function(e){return r(e)?Bc(t,n,e,r):k.some(e)})},Oc=d(_c,!0),Hc=d(_c,!1),Pc={fromPosition:_c,nextPosition:Oc,prevPosition:Hc,navigate:sc,navigateIgnore:Bc,positionIn:cc,firstPositionIn:d(cc,!0),lastPositionIn:d(cc,!1)},Lc=function(e,t){var n=e.dom;if(t){if(function(e){return Mn.isArray(e.start)}(t))return function(e,t){var n=e.createRng();return hc(e,!0,t,n)&&hc(e,!1,t,n)?k.some(n):k.none()}(n,t);if(function(e){return"string"==typeof e.start}(t))return k.some(function(e,t){var n,r;return n=e.createRng(),r=Wu(e.getRoot(),t.start),n.setStart(r.container(),r.offset()),r=Wu(e.getRoot(),t.end),n.setEnd(r.container(),r.offset()),n}(n,t));if(function(e){return e.hasOwnProperty("id")}(t))return function(r,e){var t=gc(r,"start",e),n=gc(r,"end",e);return Ya(t,n.or(t),function(e,t){var n=r.createRng();return n.setStart(lc(r,e.container()),e.offset()),n.setEnd(lc(r,t.container()),t.offset()),n})}(n,t);if(function(e){return e.hasOwnProperty("name")}(t))return function(n,e){return k.from(n.select(e.name)[e.index]).map(function(e){var t=n.createRng();return t.selectNode(e),t})}(n,t);if(function(e){return e.hasOwnProperty("rng")}(t))return k.some(t.rng)}return k.none()},Vc=function(e,t,n){return Vs.getBookmark(e,t,n)},Ic=function(t,e){Lc(t,e).each(function(e){t.setRng(e)})},Fc=function(e){return Ge.isElement(e)&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},Uc=function(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)},jc={isInlineBlock:pc,moveStart:function(e,t,n){var r,o,i,a=n.startOffset,u=n.startContainer;if((n.startContainer!==n.endContainer||!pc(n.startContainer.childNodes[n.startOffset]))&&1===u.nodeType)for(a<(i=u.childNodes).length?(u=i[a],r=new yi(u,e.getParent(u,e.isBlock))):(u=i[i.length-1],(r=new yi(u,e.getParent(u,e.isBlock))).next(!0)),o=r.current();o;o=r.next())if(3===o.nodeType&&!Uc(o))return n.setStart(o,0),void t.setRng(n)},getNonWhiteSpaceSibling:function(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1===e.nodeType||!Uc(e))return e},isTextBlock:function(e,t){return t.nodeType&&(t=t.nodeName),!!e.schema.getTextBlockElements()[t.toLowerCase()]},isValid:function(e,t,n){return e.schema.isValidChild(t,n)},isWhiteSpaceNode:Uc,replaceVars:function(e,n){return"string"!=typeof e?e=e(n):n&&(e=e.replace(/%(\w+)/g,function(e,t){return n[t]||e})),e},isEq:function(e,t){return e=""+((e=e||"").nodeName||e),t=""+((t=t||"").nodeName||t),e.toLowerCase()===t.toLowerCase()},normalizeStyleValue:vc,getStyle:function(e,t,n){return vc(e,e.getStyle(t,n),n)},getTextDecoration:function(t,e){var n;return t.getParent(e,function(e){return(n=t.getStyle(e,"text-decoration"))&&"none"!==n}),n},getParents:function(e,t,n){return e.getParents(t,n,e.getRoot())}},qc=Fc,$c=jc.getParents,Wc=jc.isWhiteSpaceNode,Kc=jc.isTextBlock,Xc=function(e,t,n,r){var o,i=t.startContainer,a=t.startOffset,u=t.endContainer,s=t.endOffset,c=e.dom;return 1===i.nodeType&&i.hasChildNodes()&&3===(i=Ka(i,a)).nodeType&&(a=0),1===u.nodeType&&u.hasChildNodes()&&3===(u=Ka(u,t.collapsed?s:s-1)).nodeType&&(s=u.nodeValue.length),i=bc(c,i),u=bc(c,u),(qc(i.parentNode)||qc(i))&&(i=qc(i)?i:i.parentNode,3===(i=t.collapsed?i.previousSibling||i:i.nextSibling||i).nodeType&&(a=t.collapsed?i.length:0)),(qc(u.parentNode)||qc(u))&&(u=qc(u)?u:u.parentNode,3===(u=t.collapsed?u.nextSibling||u:u.previousSibling||u).nodeType&&(s=t.collapsed?0:u.length)),t.collapsed&&((o=wc(c,e.getBody(),i,a,!0,r))&&(i=o.container,a=o.offset),(o=wc(c,e.getBody(),u,s,!1,r))&&(u=o.container,s=o.offset)),n[0].inline&&(u=r?u:function(e,t){var n=yc(e,t);if(n.node){for(;n.node&&0===n.offset&&n.node.previousSibling;)n=yc(n.node.previousSibling);n.node&&0<n.offset&&3===n.node.nodeType&&" "===n.node.nodeValue.charAt(n.offset-1)&&1<n.offset&&(e=n.node).splitText(n.offset-1)}return e}(u,s)),(n[0].inline||n[0].block_expand)&&(n[0].inline&&3===i.nodeType&&0!==a||(i=Ec(c,n,i,a,u,s,!0)),n[0].inline&&3===u.nodeType&&s!==u.nodeValue.length||(u=Ec(c,n,i,a,u,s,!1))),n[0].selector&&!1!==n[0].expand&&!n[0].inline&&(i=xc(c,n,t,i,"previousSibling"),u=xc(c,n,t,u,"nextSibling")),(n[0].block||n[0].selector)&&(i=zc(e,n,i,"previousSibling"),u=zc(e,n,u,"nextSibling"),n[0].block&&(c.isBlock(i)||(i=Ec(c,n,i,a,u,s,!0)),c.isBlock(u)||(u=Ec(c,n,i,a,u,s,!1)))),1===i.nodeType&&(a=c.nodeIndex(i),i=i.parentNode),1===u.nodeType&&(s=c.nodeIndex(u)+1,u=u.parentNode),{startContainer:i,startOffset:a,endContainer:u,endOffset:s}},Yc=Mn.each,Gc=function(e,t,o){var n,r,i,a,u,s,c,l=t.startContainer,f=t.startOffset,d=t.endContainer,h=t.endOffset;if(0<(c=e.select("td[data-mce-selected],th[data-mce-selected]")).length)Yc(c,function(e){o([e])});else{var m=function(e){var t;return 3===(t=e[0]).nodeType&&t===l&&f>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===h&&0<e.length&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e},g=function(e,t,n){for(var r=[];e&&e!==n;e=e[t])r.push(e);return r},p=function(e,t){do{if(e.parentNode===t)return e;e=e.parentNode}while(e)},v=function(e,t,n){var r=n?"nextSibling":"previousSibling";for(u=(a=e).parentNode;a&&a!==t;a=u)u=a.parentNode,(s=g(a===e?a:a[r],r)).length&&(n||s.reverse(),o(m(s)))};if(1===l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[f]),1===d.nodeType&&d.hasChildNodes()&&(d=function(e,t){var n=e.childNodes;return--t>n.length-1?t=n.length-1:t<0&&(t=0),n[t]||e}(d,h)),l===d)return o(m([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return v(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return v(d,n);if(a===n)break}r=p(l,n)||l,i=p(d,n)||d,v(l,r,!0),(s=g(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(m(s)),v(d,i)}};function Jc(e){return ol.get(e)}function Qc(t,n,r,o){return Se(n).fold(function(){return"skipping"},function(e){return"br"===o||function(e){return zt(e)&&"\ufeff"===Jc(e)}(n)?"valid":function(e){return xt(e)&&ha(e,nu())}(n)?"existing":rs(n)?"caret":jc.isValid(t,r,o)&&jc.isValid(t,ie(e),r)?"valid":"invalid-child"})}function Zc(e,t,n,r){var o=t.uid,i=void 0===o?function(e){var t=(new Date).getTime();return e+"_"+Math.floor(1e9*Math.random())+ ++au+String(t)}("mce-annotation"):o,a=function h(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(t,["uid"]),u=yt.fromTag("span",e);fa(u,nu()),Tt(u,""+ou(),i),Tt(u,""+ru(),n);var s=r(i,a),c=s.attributes,l=void 0===c?{}:c,f=s.classes,d=void 0===f?[]:f;return me(u,l),function(t,e){z(e,function(e){fa(t,e)})}(u,d),u}function el(n,e,t,r,o){function i(){c.set(k.none())}function a(e){z(e,l)}var u=[],s=Zc(n.getDoc(),o,t,r),c=Je(k.none()),l=function(e){switch(Qc(n,e,"span",ie(e))){case"invalid-child":i();var t=Re(e);a(t),i();break;case"valid":!function(e,t){Ci(e,t),Di(t,e)}(e,c.get().getOrThunk(function(){var e=ka(s);return u.push(e),c.set(k.some(e)),e}))}};return Gc(n.dom,e,function(e){i(),function(e){var t=X(e,yt.fromDom);a(t)}(e)}),u}function tl(o,i,a,u){o.undoManager.transact(function(){var e=o.selection.getRng();if(e.collapsed&&function(e,t){var n=Xc(e,t,[{inline:!0}],function(e){return 3===e.startContainer.nodeType&&e.startContainer.nodeValue.length>=e.startOffset&&"\xa0"===e.startContainer.nodeValue[e.startOffset]}(t));t.setStart(n.startContainer,n.startOffset),t.setEnd(n.endContainer,n.endOffset),e.selection.setRng(t)}(o,e),o.selection.getRng().collapsed){var t=Zc(o.getDoc(),u,i,a.decorate);Aa(t,"\xa0"),o.selection.getRng().insertNode(t.dom()),o.selection.select(t.dom())}else{var n=Vs.getPersistentBookmark(o.selection,!1),r=o.selection.getRng();el(o,r,i,a.decorate,u),o.selection.moveToBookmark(n)}})}function nl(r){var o=function(){var n={};return{register:function(e,t){n[e]={name:e,settings:t}},lookup:function(e){return n.hasOwnProperty(e)?k.from(n[e]).map(function(e){return e.settings}):k.none()}}}();Na(r,o);var n=Ea(r);return{register:function(e,t){o.register(e,t)},annotate:function(t,n){o.lookup(t).each(function(e){tl(r,t,e,n)})},annotationChanged:function(e,t){n.addListener(e,t)},remove:function(e){za(r,k.some(e)).each(function(e){var t=e.elements;z(t,Ni)})},getAll:function(e){var t=function(e,t){var n=yt.fromDom(e.getBody()),r=ma(n,"["+ru()+'="'+t+'"]'),o={};return z(r,function(e){var t=ge(e,ou()),n=o.hasOwnProperty(t)?o[t]:[];o[t]=n.concat([e])}),o}(r,e);return se(t,function(e){return X(e,function(e){return e.dom()})})}}}function rl(e,t,n){var r=n?"lastChild":"firstChild",o=n?"prev":"next";if(e[r])return e[r];if(e!==t){var i=e[o];if(i)return i;for(var a=e.parent;a&&a!==t;a=a.parent)if(i=a[o])return i}}var ol=function bN(n,r){var t=function(e){return n(e)?k.from(e.dom().nodeValue):k.none()};return{get:function(e){if(!n(e))throw new Error("Can only get "+r+" value of a "+r+" node");return t(e).getOr("")},getOption:t,set:function(e,t){if(!n(e))throw new Error("Can only set raw "+r+" value of a "+r+" node");e.dom().nodeValue=t}}}(zt,"text"),il=/^[ \t\r\n]*$/,al={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11},ul=(sl.create=function(e,t){var n=new sl(e,al[e]||1);if(t)for(var r in t)n.attr(r,t[r]);return n},sl.prototype.replace=function(e){return e.parent&&e.remove(),this.insert(e,this),this.remove(),this},sl.prototype.attr=function(e,t){var n;if("string"!=typeof e){for(var r in e)this.attr(r,e[r]);return this}if(n=this.attributes){if(t===undefined)return n.map[e];if(null===t){if(e in n.map){delete n.map[e];for(var o=n.length;o--;)if(n[o].name===e)return n.splice(o,1),this}return this}if(e in n.map){for(o=n.length;o--;)if(n[o].name===e){n[o].value=t;break}}else n.push({name:e,value:t});return n.map[e]=t,this}},sl.prototype.clone=function(){var e,t=new sl(this.name,this.type);if(e=this.attributes){var n=[];n.map={};for(var r=0,o=e.length;r<o;r++){var i=e[r];"id"!==i.name&&(n[n.length]={name:i.name,value:i.value},n.map[i.name]=i.value)}t.attributes=n}return t.value=this.value,t.shortEnded=this.shortEnded,t},sl.prototype.wrap=function(e){return this.parent.insert(e,this),e.append(this),this},sl.prototype.unwrap=function(){for(var e=this.firstChild;e;){var t=e.next;this.insert(e,this,!0),e=t}this.remove()},sl.prototype.remove=function(){var e=this.parent,t=this.next,n=this.prev;return e&&(e.firstChild===this?(e.firstChild=t)&&(t.prev=null):n.next=t,e.lastChild===this?(e.lastChild=n)&&(n.next=null):t.prev=n,this.parent=this.next=this.prev=null),this},sl.prototype.append=function(e){e.parent&&e.remove();var t=this.lastChild;return t?((t.next=e).prev=t,this.lastChild=e):this.lastChild=this.firstChild=e,e.parent=this,e},sl.prototype.insert=function(e,t,n){e.parent&&e.remove();var r=t.parent||this;return n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,(e.next=t).prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,(e.prev=t).next=e),e.parent=r,e},sl.prototype.getAll=function(e){for(var t=[],n=this.firstChild;n;n=rl(n,this))n.name===e&&t.push(n);return t},sl.prototype.empty=function(){if(this.firstChild){for(var e=[],t=this.firstChild;t;t=rl(t,this))e.push(t);for(var n=e.length;n--;)(t=e[n]).parent=t.firstChild=t.lastChild=t.next=t.prev=null}return this.firstChild=this.lastChild=null,this},sl.prototype.isEmpty=function(e,t,n){void 0===t&&(t={});var r=this.firstChild;if(r)do{if(1===r.type){if(r.attr("data-mce-bogus"))continue;if(e[r.name])return!1;for(var o=r.attributes.length;o--;){var i=r.attributes[o].name;if("name"===i||0===i.indexOf("data-mce-bookmark"))return!1}}if(8===r.type)return!1;if(3===r.type&&!il.test(r.value))return!1;if(3===r.type&&r.parent&&t[r.parent.name]&&il.test(r.value))return!1;if(n&&n(r))return!1}while(r=rl(r,this));return!0},sl.prototype.walk=function(e){return rl(this,null,e)},sl);function sl(e,t){this.name=e,1===(this.type=t)&&(this.attributes=[],this.attributes.map={})}function cl(e,t,n){var r,o,i,a,u=1;for(a=e.getShortEndedElements(),(i=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex=r=n;o=i.exec(t);){if(r=i.lastIndex,"/"===o[1])u--;else if(!o[1]){if(o[2]in a)continue;u++}if(0===u)break}return r}function ll(e,t){var n=e.exec(t);if(n){var r=n[1],o=n[2];return"string"==typeof r&&"data-mce-bogus"===r.toLowerCase()?o:null}return null}function fl(V,I){void 0===I&&(I=pr());function e(){}!1!==(V=V||{}).fix_self_closing&&(V.fix_self_closing=!0);var F=V.comment?V.comment:e,U=V.cdata?V.cdata:e,j=V.text?V.text:e,q=V.start?V.start:e,$=V.end?V.end:e,W=V.pi?V.pi:e,K=V.doctype?V.doctype:e;return{parse:function(e){function t(e){var t,n;for(t=_.length;t--&&_[t].name!==e;);if(0<=t){for(n=_.length-1;t<=n;n--)(e=_[n]).valid&&$(e.name);_.length=t}}function n(e,t,n,r,o){var i,a;if(n=(t=t.toLowerCase())in h?t:O(n||r||o||""),g&&!l&&!1===function(e){return 0===e.indexOf("data-")||0===e.indexOf("aria-")}(t)){if(!(i=C[t])&&w){for(a=w.length;a--&&!(i=w[a]).pattern.test(t););-1===a&&(i=null)}if(!i)return;if(i.validValues&&!(n in i.validValues))return}if(H[t]&&!V.allow_script_urls){var u=n.replace(/[\s\u0000-\u001F]+/g,"");try{u=decodeURIComponent(u)}catch(s){u=unescape(u)}if(P.test(u))return;if(function(e,t){return!e.allow_html_data_urls&&(/^data:image\//i.test(t)?!1===e.allow_svg_data_urls&&/^data:image\/svg\+xml/i.test(t):/^data:/i.test(t))}(V,u))return}l&&(t in H||0===t.indexOf("on"))||(c.map[t]=n,c.push({name:t,value:n}))}var r,o,i,c,a,u,s,l,f,d,h,m,g,p,v,y,b,C,w,x,z,E,N,S,k,T,A,M,R,D=0,_=[],B=0,O=ir.decode,H=Mn.makeMap("src,href,data,background,formaction,poster,xlink:href"),P=/((java|vb)script|mhtml):/i;for(k=new RegExp("<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),T=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,d=I.getShortEndedElements(),S=V.self_closing_elements||I.getSelfClosingElements(),h=I.getBoolAttrs(),g=V.validate,f=V.remove_internals,R=V.fix_self_closing,A=I.getSpecialElements(),N=e+">";r=k.exec(N);){if(D<r.index&&j(O(e.substr(D,r.index-D))),o=r[6])":"===(o=o.toLowerCase()).charAt(0)&&(o=o.substr(1)),t(o);else if(o=r[7]){if(r.index+r[0].length>e.length){j(O(e.substr(r.index))),D=r.index+r[0].length;continue}":"===(o=o.toLowerCase()).charAt(0)&&(o=o.substr(1)),m=o in d,R&&S[o]&&0<_.length&&_[_.length-1].name===o&&t(o);var L=ll(T,r[8]);if(null!==L){if("all"===L){D=cl(I,e,k.lastIndex),k.lastIndex=D;continue}v=!1}if(!g||(p=I.getElementRule(o))){if(v=!0,g&&(C=p.attributes,w=p.attributePatterns),(b=r[8])?((l=-1!==b.indexOf("data-mce-type"))&&f&&(v=!1),(c=[]).map={},b.replace(T,n)):(c=[]).map={},g&&!l){if(x=p.attributesRequired,z=p.attributesDefault,E=p.attributesForced,p.removeEmptyAttrs&&!c.length&&(v=!1),E)for(a=E.length;a--;)s=(y=E[a]).name,"{$uid}"===(M=y.value)&&(M="mce_"+B++),c.map[s]=M,c.push({name:s,value:M});if(z)for(a=z.length;a--;)(s=(y=z[a]).name)in c.map||("{$uid}"===(M=y.value)&&(M="mce_"+B++),c.map[s]=M,c.push({name:s,value:M}));if(x){for(a=x.length;a--&&!(x[a]in c.map););-1===a&&(v=!1)}if(y=c.map["data-mce-bogus"]){if("all"===y){D=cl(I,e,k.lastIndex),k.lastIndex=D;continue}v=!1}}v&&q(o,c,m)}else v=!1;if(i=A[o]){i.lastIndex=D=r.index+r[0].length,D=(r=i.exec(e))?(v&&(u=e.substr(D,r.index-D)),r.index+r[0].length):(u=e.substr(D),e.length),v&&(0<u.length&&j(u,!0),$(o)),k.lastIndex=D;continue}m||(b&&b.indexOf("/")===b.length-1?v&&$(o):_.push({name:o,valid:v}))}else(o=r[1])?(">"===o.charAt(0)&&(o=" "+o),V.allow_conditional_comments||"[if"!==o.substr(0,3).toLowerCase()||(o=" "+o),F(o)):(o=r[2])?U(o.replace(/<!--|-->/g,"")):(o=r[3])?K(o):(o=r[4])&&W(o,r[5]);D=r.index+r[0].length}for(D<e.length&&j(O(e.substr(D))),a=_.length-1;0<=a;a--)(o=_[a]).valid&&$(o.name)}}}(fl=fl||{}).findEndTag=cl;function dl(e,t){var n,r,o,i,a,u=t,s=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,c=e.schema;for(u=function(e,t){var n=new RegExp(["\\s?("+e.join("|")+')="[^"]+"'].join("|"),"gi");return t.replace(n,"")}(e.getTempAttrs(),u),a=c.getShortEndedElements();i=s.exec(u);)r=s.lastIndex,o=i[0].length,n=a[i[1]]?r:of.findEndTag(c,u,r),u=u.substring(0,r-o)+u.substring(n),s.lastIndex=r-o;return lu(u)}function hl(e,t,n){var r=e.getParam(t,n);if(-1===r.indexOf("="))return r;var o=e.getParam(t,"","hash");return o.hasOwnProperty(e.id)?o[e.id]:n}function ml(e,t,n){var r;if(t.format=t.format?t.format:"html",t.get=!0,t.getInner=!0,t.no_events||e.fire("BeforeGetContent",t),"raw"===t.format)r=Mn.trim(af.trimExternal(e.serializer,n.innerHTML));else if("text"===t.format)r=lu(n.innerText||n.textContent);else{if("tree"===t.format)return e.serializer.serialize(n,t);r=function(e,t){var n=mf(e),r=new RegExp("^(<"+n+"[^>]*>( | |\\s|\xa0|<br \\/>|)<\\/"+n+">[\r\n]*|<br \\/>[\r\n]*)$");return t.replace(r,"")}(e,e.serializer.serialize(n,t))}return"text"===t.format||Wn(yt.fromDom(n))?t.content=r:t.content=Mn.trim(r),t.no_events||e.fire("GetContent",t),t.content}function gl(e){var u,s,c,l,f,d=[];return u=(e=e||{}).indent,s=Ff(e.indent_before||""),c=Ff(e.indent_after||""),l=ir.getEncodeFunc(e.entity_encoding||"raw",e.entities),f="html"===e.element_format,{start:function(e,t,n){var r,o,i,a;if(u&&s[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n"),d.push("<",e),t)for(r=0,o=t.length;r<o;r++)i=t[r],d.push(" ",i.name,'="',l(i.value,!0),'"');d[d.length]=!n||f?">":" />",n&&u&&c[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n")},end:function(e){var t;d.push("</",e,">"),u&&c[e]&&0<d.length&&0<(t=d[d.length-1]).length&&"\n"!==t&&d.push("\n")},text:function(e,t){0<e.length&&(d[d.length]=t?e:l(e))},cdata:function(e){d.push("<![CDATA[",e,"]]>")},comment:function(e){d.push("\x3c!--",e,"--\x3e")},pi:function(e,t){t?d.push("<?",e," ",l(t),"?>"):d.push("<?",e,"?>"),u&&d.push("\n")},doctype:function(e){d.push("<!DOCTYPE",e,">",u?"\n":"")},reset:function(){d.length=0},getContent:function(){return d.join("").replace(/\n$/,"")}}}function pl(t,m){void 0===m&&(m=pr());var g=gl(t);return(t=t||{}).validate=!("validate"in t)||t.validate,{serialize:function(e){var f,d;d=t.validate,f={3:function(e){g.text(e.value,e.raw)},8:function(e){g.comment(e.value)},7:function(e){g.pi(e.name,e.value)},10:function(e){g.doctype(e.value)},4:function(e){g.cdata(e.value)},11:function(e){if(e=e.firstChild)for(;h(e),e=e.next;);}},g.reset();var h=function(e){var t,n,r,o,i,a,u,s,c,l=f[e.type];if(l)l(e);else{if(t=e.name,n=e.shortEnded,r=e.attributes,d&&r&&1<r.length&&((a=[]).map={},c=m.getElementRule(e.name))){for(u=0,s=c.attributesOrder.length;u<s;u++)(o=c.attributesOrder[u])in r.map&&(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));for(u=0,s=r.length;u<s;u++)(o=r[u].name)in a.map||(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));r=a}if(g.start(e.name,r,n),!n){if(e=e.firstChild)for(;h(e),e=e.next;);g.end(t)}}};return 1!==e.type||t.inner?f[11](e):h(e),g.getContent()}}}function vl(e,t,n){var r=function(e,n,t){var r={},o={},i=[];for(var a in t.firstChild&&Uf(t.firstChild,function(t){z(e,function(e){e.name===t.name&&(r[e.name]?r[e.name].nodes.push(t):r[e.name]={filter:e,nodes:[t]})}),z(n,function(e){"string"==typeof t.attr(e.name)&&(o[e.name]?o[e.name].nodes.push(t):o[e.name]={filter:e,nodes:[t]})})}),r)r.hasOwnProperty(a)&&i.push(r[a]);for(var a in o)o.hasOwnProperty(a)&&i.push(o[a]);return i}(e,t,n);z(r,function(t){z(t.filter.callbacks,function(e){e(t.nodes,t.filter.name,{})})})}function yl(e){var t=Ee(e).dom();return e.dom()===t.activeElement}function bl(e){var t=e!==undefined?e.dom():j.document;return k.from(t.activeElement).map(yt.fromDom)}function Cl(e,t){var n=zt(t)?Jc(t).length:Re(t).length+1;return n<e?n:e<0?0:e}function wl(e){return Xf.range(e.start(),Cl(e.soffset(),e.start()),e.finish(),Cl(e.foffset(),e.finish()))}function xl(e,t){return!Ge.isRestrictedNode(t.dom())&&(Bt(e,t)||ze(e,t))}function zl(t){return function(e){return xl(t,e.start())&&xl(t,e.finish())}}function El(e){return!0===e.inline||Yf.isIE()}function Nl(e){return Xf.range(yt.fromDom(e.startContainer),e.startOffset,yt.fromDom(e.endContainer),e.endOffset)}function Sl(e){var t=e.getSelection();return(t&&0!==t.rangeCount?k.from(t.getRangeAt(0)):k.none()).map(Nl)}function kl(e){var t=Ne(e);return Sl(t.dom()).filter(zl(e))}function Tl(e,t){return k.from(t).filter(zl(e)).map(wl)}function Al(e){var t=j.document.createRange();try{return t.setStart(e.start().dom(),e.soffset()),t.setEnd(e.finish().dom(),e.foffset()),k.some(t)}catch(n){return k.none()}}function Ml(t){return(t.bookmark?t.bookmark:k.none()).bind(function(e){return Tl(yt.fromDom(t.getBody()),e)}).bind(Al)}function Rl(t,e){oe().browser.isIE()?function(e){e.on("focusout",function(){Gf(e)})}(t):function(e,t){e.on("mouseup touchend",function(e){t.throttle()})}(t,e),t.on("keyup NodeChange",function(e){!function(e){return"nodechange"===e.type&&e.selectionChange}(e)&&Gf(t)})}function Dl(e){return Zf.isEditorUIElement(e)}function _l(t,e){var n=t?t.settings.custom_ui_selector:"";return null!==td.getParent(e,function(e){return Dl(e)||!!n&&t.dom.is(e,n)})}function Bl(r,e){var t=e.editor;ed(t),t.on("focusin",function(){var e=r.focusedEditor;e!==this&&(e&&e.fire("blur",{focusedEditor:this}),r.setActive(this),(r.focusedEditor=this).fire("focus",{blurredEditor:e}),this.focus(!0))}),t.on("focusout",function(){var t=this;pn.setEditorTimeout(t,function(){var e=r.focusedEditor;_l(t,function(){try{return j.document.activeElement}catch(e){return j.document.body}}())||e!==t||(t.fire("blur",{focusedEditor:null}),r.focusedEditor=null)})}),rf||(rf=function(e){var t,n=r.activeEditor;t=e.target,n&&t.ownerDocument===j.document&&(t===j.document.body||_l(n,t)||r.focusedEditor!==n||(n.fire("blur",{focusedEditor:null}),r.focusedEditor=null))},td.bind(j.document,"focusin",rf))}function Ol(e,t){e.focusedEditor===t.editor&&(e.focusedEditor=null),e.activeEditor||(td.unbind(j.document,"focusin",rf),rf=null)}function Hl(t,e){return function(e){return e.collapsed?k.from(Ka(e.startContainer,e.startOffset)).map(yt.fromDom):k.none()}(e).bind(function(e){return qn(e)?k.some(e):!1===Bt(t,e)?k.some(t):k.none()})}function Pl(t,e){Hl(yt.fromDom(t.getBody()),e).bind(function(e){return Pc.firstPositionIn(e.dom())}).fold(function(){t.selection.normalize()},function(e){return t.selection.setRng(e.toRange())})}function Ll(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()}function Vl(e){return yl(e)||function(t){return bl(Ee(t)).filter(function(e){return t.dom().contains(e.dom())})}(e).isSome()}function Il(e){return e.inline?function(e){var t=e.getBody();return t&&Vl(yt.fromDom(t))}(e):function(e){return e.iframeElement&&yl(yt.fromDom(e.iframeElement))}(e)}function Fl(e){return e instanceof ul}function Ul(e,t){e.dom.setHTML(e.getBody(),t),function(r){ud(r)&&Pc.firstPositionIn(r.getBody()).each(function(e){var t=e.getNode(),n=Ge.isTable(t)?Pc.firstPositionIn(t).getOr(e):e;r.selection.setRng(n.toRange())})}(e)}function jl(t,n,r){return void 0===r&&(r={}),r.format=r.format?r.format:"html",r.set=!0,r.content=Fl(n)?"":n,Fl(n)||r.no_events||(t.fire("BeforeSetContent",r),n=r.content),k.from(t.getBody()).fold($(n),function(e){return Fl(n)?function(e,t,n,r){vl(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=pl({validate:e.validate},e.schema).serialize(n);return r.content=Wn(yt.fromDom(t))?o:Mn.trim(o),Ul(e,r.content),r.no_events||e.fire("SetContent",r),n}(t,e,n,r):function(e,t,n,r){var o,i;return 0===n.length||/^\s+$/.test(n)?(i='<br data-mce-bogus="1">',"TABLE"===t.nodeName?n="<tr><td>"+i+"</td></tr>":/^(UL|OL)$/.test(t.nodeName)&&(n="<li>"+i+"</li>"),n=(o=mf(e))&&e.schema.isValidChild(t.nodeName.toLowerCase(),o.toLowerCase())?(n=i,e.dom.createHTML(o,e.settings.forced_root_block_attrs,n)):n||'<br data-mce-bogus="1">',Ul(e,n),e.fire("SetContent",r)):("raw"!==r.format&&(n=pl({validate:e.validate},e.schema).serialize(e.parser.parse(n,{isRootContent:!0,insert:!0}))),r.content=Wn(yt.fromDom(t))?n:Mn.trim(n),Ul(e,r.content),r.no_events||e.fire("SetContent",r)),r.content}(t,e,n,r)})}function ql(e){return k.from(e).each(function(e){return e.destroy()})}function $l(e){if(!e.removed){var t=e._selectionOverrides,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save({is_removing:!0}),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&pd.remove(o.nextSibling),fd(e),e.editorManager.remove(e),!e.inline&&r&&function(e){pd.setStyle(e.id,"display",e.orgDisplay)}(e),dd(e),pd.remove(e.getContainer()),ql(t),ql(n),e.destroy()}}function Wl(e,t){var n=e.selection,r=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),ql(n),ql(r)),function(e){var t=e.formElement;t&&(t._mceOldSubmit&&(t.submit=t._mceOldSubmit,t._mceOldSubmit=null),pd.unbind(t,"submit reset",e.formEventDelegate))}(e),function(e){e.contentAreaContainer=e.formElement=e.container=e.editorContainer=null,e.bodyElement=e.contentDocument=e.contentWindow=null,e.iframeElement=e.targetElm=null,e.selection&&(e.selection=e.selection.win=e.selection.dom=e.selection.dom.doc=null)}(e),e.destroyed=!0):e.remove())}function Kl(a){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)vd.call(o,i)&&(n[i]=a(n[i],o[i]))}return n}}function Xl(e){var t=A(e)?e.join(" "):e,n=X(K(t)?t.split(" "):[],te);return y(n,function(e){return 0<e.length})}function Yl(e,t){return e.sections().hasOwnProperty(t)}function Gl(e,t,n,r){var o=Xl(n.forced_plugins),i=Xl(r.plugins),a=function(e,t){return Yl(e,t)?e.sections()[t]:{}}(t,"mobile"),u=a.plugins?Xl(a.plugins):i,s=function(e,t){return[].concat(Xl(e)).concat(Xl(t))}(o,e&&function(e,t,n){var r=e.sections();return Yl(e,t)&&r[t].theme===n}(t,"mobile","mobile")?function(e){return y(e,d(h,Nd))}(u):e&&Yl(t,"mobile")?u:i);return Mn.extend(r,{plugins:s.join(" ")})}function Jl(e,t,n,r,o){var i=e?{mobile:function(e){return G(G(G({},Sd),{resize:!1,toolbar_drawer:"scrolling",toolbar_sticky:!1}),e?{menubar:!1}:{})}(t)}:{},a=function(n,e){var t=ce(e,function(e,t){return h(n,t)});return Cd(t.t,t.f)}(["mobile"],yd(i,o)),u=Mn.extend(n,r,a.settings(),function(e,t){return e&&Yl(t,"mobile")}(e,a)?function(e,t,n){void 0===n&&(n={});var r=e.sections(),o=r.hasOwnProperty(t)?r[t]:{};return Mn.extend({},n,o)}(a,"mobile"):{},{validate:!0,external_plugins:function(e,t){var n=t.external_plugins?t.external_plugins:{};return e&&e.external_plugins?Mn.extend({},e.external_plugins,n):n}(r,a.settings())});return Gl(e,a,r,u)}function Ql(e,t,n,r,o){var i=function(e,t,n,r){var o={id:e,theme:"silver",toolbar_drawer:"floating",plugins:"",document_base_url:t,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,inline_styles:!0,convert_fonts_to_spans:!0,indent:!0,indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:r.convertURL,url_converter_scope:r};return G(G({},o),n?Sd:{})}(t,n,xd,e);return Jl(zd||Ed,zd,i,r,o)}function Zl(e,t,n){return k.from(t.settings[n]).filter(e)}function ef(e,t,n,r){var o=t in e.settings?e.settings[t]:n;return"hash"===r?function(e){var n={};return"string"==typeof e?z(0<e.indexOf("=")?e.split(/[;,](?![^=;,]*(?:[;,]|$))/):e.split(","),function(e){var t=e.split("=");1<t.length?n[Mn.trim(t[0])]=Mn.trim(t[1]):n[Mn.trim(t[0])]=Mn.trim(t[0])}):n=e,n}(o):"string"===r?Zl(K,e,t).getOr(n):"number"===r?Zl(_,e,t).getOr(n):"boolean"===r?Zl(R,e,t).getOr(n):"object"===r?Zl(T,e,t).getOr(n):"array"===r?Zl(A,e,t).getOr(n):"string[]"===r?Zl(function(t){return function(e){return A(e)&&w(e,t)}}(K),e,t).getOr(n):"function"===r?Zl(D,e,t).getOr(n):o}function tf(e,t){return t.dom()[e]}function nf(e,t){return parseInt(ve(t,e),10)}var rf,of=fl,af={trimExternal:dl,trimInternal:dl},uf=function(e){return e.getParam("iframe_attrs",{})},sf=function(e){return e.getParam("doctype","<!DOCTYPE html>")},cf=function(e){return e.getParam("document_base_url","")},lf=function(e){return hl(e,"body_id","tinymce")},ff=function(e){return hl(e,"body_class","")},df=function(e){return e.getParam("content_security_policy","")},hf=function(e){return e.getParam("br_in_pre",!0)},mf=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":!0===t?"p":t},gf=function(e){return e.getParam("forced_root_block_attrs",{})},pf=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},vf=function(e){return e.getParam("no_newline_selector","")},yf=function(e){return e.getParam("keep_styles",!0)},bf=function(e){return e.getParam("end_container_on_empty_block",!1)},Cf=function(e){return Mn.explode(e.getParam("font_size_style_values","xx-small,x-small,small,medium,large,x-large,xx-large"))},wf=function(e){return Mn.explode(e.getParam("font_size_classes",""))},xf=function(e){return e.getParam("icons","","string")},zf=function(e){return e.getParam("icons_url","","string")},Ef=function(e){return e.getParam("images_dataimg_filter",$(!0),"function")},Nf=function(e){return e.getParam("automatic_uploads",!0,"boolean")},Sf=function(e){return e.getParam("images_reuse_filename",!1,"boolean")},kf=function(e){return e.getParam("images_replace_blob_uris",!0,"boolean")},Tf=function(e){return e.getParam("images_upload_url","","string")},Af=function(e){return e.getParam("images_upload_base_path","","string")},Mf=function(e){return e.getParam("images_upload_credentials",!1,"boolean")},Rf=function(e){return e.getParam("images_upload_handler",null,"function")},Df=function(e){return e.getParam("content_css_cors",!1,"boolean")},_f=function(e){return e.getParam("referrer_policy","","string")},Bf=function(e){return e.getParam("language","en","string")},Of=function(e){return e.getParam("language_url","","string")},Hf=function(e){return e.getParam("indent_use_margin",!1)},Pf=function(e){return e.getParam("indentation","40px","string")},Lf=function(e){var t=e.settings.content_css;return K(t)?X(t.split(","),te):A(t)?t:!1===t||e.inline?[]:["default"]},Vf=function(e){return e.getParam("directionality",ra.isRtl()?"rtl":undefined)},If=function(e){return e.getParam("inline_boundaries_selector","a[href],code,.mce-annotation","string")},Ff=Mn.makeMap,Uf=function(e,t){t(e),e.firstChild&&Uf(e.firstChild,t),e.next&&Uf(e.next,t)},jf=function(a){if(!A(a))throw new Error("cases must be an array");if(0===a.length)throw new Error("there must be at least one case");var u=[],n={};return z(a,function(e,r){var t=Et(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!A(i))throw new Error("case arguments must be an array");u.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==a.length)throw new Error("Wrong number of arguments to fold. Expected "+a.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=Et(e);if(u.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+u.join(",")+"\nActual: "+t.join(","));if(!w(u,function(e){return h(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+u.join(", "));return e[o].apply(null,n)},log:function(e){j.console.log(e,{constructors:u,constructor:o,params:n})}}}}),n},qf={create:be("start","soffset","finish","foffset")},$f=jf([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),Wf=($f.before,$f.on,$f.after,function(e){return e.fold(W,W,W)}),Kf=jf([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),Xf={domRange:Kf.domRange,relative:Kf.relative,exact:Kf.exact,exactFromRange:function(e){return Kf.exact(e.start(),e.soffset(),e.finish(),e.foffset())},getWin:function(e){var t=function(e){return e.match({domRange:function(e){return yt.fromDom(e.startContainer)},relative:function(e,t){return Wf(e)},exact:function(e,t,n,r){return e}})}(e);return Ne(t)},range:qf.create},Yf=oe().browser,Gf=function(e){var t=El(e)?kl(yt.fromDom(e.getBody())):k.none();e.bookmark=t.isSome()?t:e.bookmark},Jf=function(t){Ml(t).each(function(e){t.selection.setRng(e)})},Qf=Ml,Zf={isEditorUIElement:function(e){var t=e.className.toString();return-1!==t.indexOf("tox-")||-1!==t.indexOf("mce-")}},ed=function(e){var t=aa(function(){Gf(e)},0);e.on("init",function(){e.inline&&function(e,t){function n(){t.throttle()}Xi.DOM.bind(j.document,"mouseup",n),e.on("remove",function(){Xi.DOM.unbind(j.document,"mouseup",n)})}(e,t),Rl(e,t)}),e.on("remove",function(){t.cancel()})},td=Xi.DOM,nd=function(e){e.on("AddEditor",d(Bl,e)),e.on("RemoveEditor",d(Ol,e))},rd=function(e){var t=e.classList;return t!==undefined&&(t.contains("tox-edit-area")||t.contains("tox-edit-area__iframe")||t.contains("mce-content-body"))},od=_l,id=function(e){return e.editorManager.setActive(e)},ad=function(e,t){e.removed||(t?id(e):function(t){var e=t.selection,n=t.getBody(),r=e.getRng();t.quirks.refreshContentEditable(),t.bookmark!==undefined&&!1===Il(t)&&Qf(t).each(function(e){t.selection.setRng(e),r=e});var o=function(t,e){return t.dom.getParent(e,function(e){return"true"===t.dom.getContentEditable(e)})}(t,e.getNode());if(t.$.contains(n,o))return Ll(o),Pl(t,r),id(t);t.inline||(Nn.opera||Ll(n),t.getWin().focus()),(Nn.gecko||t.inline)&&(Ll(n),Pl(t,r)),id(t)}(e))},ud=Il,sd=function(e){return Il(e)||function(t){return bl().filter(function(e){return!rd(e.dom())&&od(t,e.dom())}).isSome()}(e)},cd=function(e,t){return e.fire("PreProcess",t)},ld=function(e,t){return e.fire("PostProcess",t)},fd=function(e){return e.fire("remove")},dd=function(e){return e.fire("detach")},hd=function(e,t){return e.fire("SwitchMode",{mode:t})},md=function(e,t,n,r){e.fire("ObjectResizeStart",{target:t,width:n,height:r})},gd=function(e,t,n,r){e.fire("ObjectResized",{target:t,width:n,height:r})},pd=Xi.DOM,vd=Object.prototype.hasOwnProperty,yd=Kl(function(e,t){return T(e)&&T(t)?yd(e,t):t}),bd=Kl(function(e,t){return t}),Cd=be("sections","settings"),wd=oe().deviceType,xd=wd.isTouch(),zd=wd.isPhone(),Ed=wd.isTablet(),Nd=["lists","autolink","autosave"],Sd={table_grid:!1,object_resizing:!1,resize:!1},kd=d(tf,"clientWidth"),Td=d(tf,"clientHeight"),Ad=d(nf,"margin-top"),Md=d(nf,"margin-left"),Rd=function(e,t,n){var r=yt.fromDom(e.getBody()),o=e.inline?r:function(e){return yt.fromDom(e.dom().ownerDocument.documentElement)}(r),i=function(e,t,n,r){var o=function(e){return e.dom().getBoundingClientRect()}(t);return{x:n-(e?o.left+t.dom().clientLeft+Md(t):0),y:r-(e?o.top+t.dom().clientTop+Ad(t):0)}}(e.inline,o,t,n);return function(e,t,n){var r=kd(e),o=Td(e);return 0<=t&&0<=n&&t<=r&&n<=o}(o,i.x,i.y)},Dd=function(e){return function(e){return k.from(e).map(yt.fromDom)}(e.inline?e.getBody():e.getContentAreaContainer()).map(function(e){return Bt(Ee(e),e)}).getOr(!1)};function _d(n){function r(){var e=n.theme;return e&&e.getNotificationManagerImpl?e.getNotificationManagerImpl():function t(){function e(){throw new Error("Theme did not provide a NotificationManager implementation.")}return{open:e,close:e,reposition:e,getArgs:e}}()}function o(){0<u.length&&r().reposition(u)}function i(t){p(u,function(e){return e===t}).each(function(e){u.splice(e,1)})}function t(t){if(!n.removed&&Dd(n))return g(u,function(e){return function(e,t){return!(e.type!==t.type||e.text!==t.text||e.progressBar||e.timeout||t.progressBar||t.timeout)}(r().getArgs(e),t)}).getOrThunk(function(){n.editorManager.setActive(n);var e=r().open(t,function(){i(e),o()});return function(e){u.push(e)}(e),o(),e})}var a,u=[];return(a=n).on("SkinLoaded",function(){var e=a.settings.service_message;e&&t({text:e,type:"warning",timeout:0})}),a.on("ResizeEditor ResizeWindow NodeChange",function(){pn.requestAnimationFrame(o)}),a.on("remove",function(){z(u.slice(),function(e){r().close(e)})}),{open:t,close:function(){k.from(u[0]).each(function(e){r().close(e),i(e),o()})},getNotifications:function(){return u}}}function Bd(n){function r(){var e=n.theme;return e&&e.getWindowManagerImpl?e.getWindowManagerImpl():function t(){function e(){throw new Error("Theme did not provide a WindowManager implementation.")}return{open:e,openUrl:e,alert:e,confirm:e,close:e,getParams:e,setParams:e}}()}function o(e,t){return function(){return t?t.apply(e,arguments):undefined}}function i(e){s.push(e),function(e){n.fire("OpenWindow",{dialog:e})}(e)}function a(t){!function(e){n.fire("CloseWindow",{dialog:e})}(t),0===(s=y(s,function(e){return e!==t})).length&&n.focus()}function u(e){n.editorManager.setActive(n),Gf(n);var t=e();return i(t),t}var s=[];return n.on("remove",function(){z(s,function(e){r().close(e)})}),{open:function(e,t){return u(function(){return r().open(e,t,a)})},openUrl:function(e){return u(function(){return r().openUrl(e,a)})},alert:function(e,t,n){r().alert(e,o(n||this,t))},confirm:function(e,t,n){r().confirm(e,o(n||this,t))},close:function(){k.from(s[s.length-1]).each(function(e){r().close(e),a(e)})}}}function Od(e,t){e.notificationManager.open({type:"error",text:t})}function Hd(e,t){e._skinLoaded?Od(e,t):e.on("SkinLoaded",function(){Od(e,t)})}function Pd(e){j.console.error(e)}function Ld(e,t,n){return n?"Failed to load "+e+": "+n+" from url "+t:"Failed to load "+e+" url: "+t}var Vd,Id=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=j.window.console;r&&(r.error?r.error.apply(r,arguments):r.log.apply(r,arguments))},Fd={pluginLoadError:function(e,t){Pd(Ld("plugin",e,t))},iconsLoadError:function(e,t){Pd(Ld("icons",e,t))},languageLoadError:function(e,t){Pd(Ld("language",e,t))},pluginInitError:function(e,t,n){var r=ra.translate(["Failed to initialize plugin: {0}",t]);Id(r,n),Hd(e,r)},uploadError:function(e,t){Hd(e,ra.translate(["Failed to upload image: {0}",t]))},displayError:Hd,initError:Id},Ud=(Vd={},{add:function(e,t){Vd[e]=t},get:function(e){return Vd[e]?Vd[e]:{icons:{}}},has:function(e){return kt(Vd,e)}}),jd=ga.PluginManager,qd=ga.ThemeManager;function $d(s,a){function n(e,t,n,r){var o,i;(o=new j.XMLHttpRequest).open("POST",a.url),o.withCredentials=a.credentials,o.upload.onprogress=function(e){r(e.loaded/e.total*100)},o.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+o.status)},o.onload=function(){var e;o.status<200||300<=o.status?n("HTTP Error: "+o.status):(e=JSON.parse(o.responseText))&&"string"==typeof e.location?t(function(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t}(a.basePath,e.location)):n("Invalid JSON: "+o.responseText)},(i=new j.FormData).append("file",e.blob(),e.filename()),o.send(i)}function c(e,t){return{url:t,blobInfo:e,status:!0}}function l(e,t){return{url:"",blobInfo:e,status:!1,error:t}}function f(e,t){Mn.each(o[e],function(e){e(t)}),delete o[e]}function r(e,t){return e=Mn.grep(e,function(e){return!s.isUploaded(e.blobUri())}),Zt.all(Mn.map(e,function(e){return s.isPending(e.blobUri())?function(e){var t=e.blobUri();return new Zt(function(e){o[t]=o[t]||[],o[t].push(e)})}(e):function(i,a,u){return s.markPending(i.blobUri()),new Zt(function(t){function e(){}var n;try{var r=function(){n&&(n.close(),e)};a(i,function(e){r(),s.markUploaded(i.blobUri(),e),f(i.blobUri(),c(i,e)),t(c(i,e))},function(e){r(),s.removeFailed(i.blobUri()),f(i.blobUri(),l(i,e)),t(l(i,e))},function(e){e<0||100<e||(n=n||u()).progressBar.value(e)})}catch(o){t(l(i,o.message))}})}(e,a.handler,t)}))}var o={};return!1===D(a.handler)&&(a.handler=n),{upload:function(e,t){return!a.url&&function(e){return e===n}(a.handler)?new Zt(function(e){e([])}):r(e,t)}}}function Wd(e){var t,n,r=decodeURIComponent(e).split(",");return(n=/data:([^;]+)/.exec(r[0]))&&(t=n[1]),{type:t,data:r[1]}}function Kd(e){return(e||"blobid")+Jd++}var Xd=function(e){return 0===e.indexOf("blob:")?function(i){return new Zt(function(e,t){function n(){t("Cannot convert "+i+" to Blob. Resource might not exist or is inaccessible.")}try{var r=new j.XMLHttpRequest;r.open("GET",i,!0),r.responseType="blob",r.onload=function(){200===this.status?e(this.response):n()},r.onerror=n,r.send()}catch(o){n()}})}(e):0===e.indexOf("data:")?function(i){return new Zt(function(e){var t,n,r,o=Wd(i);try{t=j.atob(o.data)}catch(yN){return void e(new j.Blob([]))}for(n=new Uint8Array(t.length),r=0;r<n.length;r++)n[r]=t.charCodeAt(r);e(new j.Blob([n],{type:o.type}))})}(e):null},Yd=function(n){return new Zt(function(e){var t=new j.FileReader;t.onloadend=function(){e(t.result)},t.readAsDataURL(n)})},Gd=Wd,Jd=0;function Qd(o,i){var a={};return{findAll:function(e,n){var t;n=n||$(!0),t=y(function(e){return e?P(e.getElementsByTagName("img")):[]}(e),function(e){var t=e.src;return!!Nn.fileApi&&(!e.hasAttribute("data-mce-bogus")&&(!e.hasAttribute("data-mce-placeholder")&&(!(!t||t===Nn.transparentSrc)&&(0===t.indexOf("blob:")?!o.isUploaded(t)&&n(e):0===t.indexOf("data:")&&n(e)))))});var r=X(t,function(n){if(a[n.src])return new Zt(function(t){a[n.src].then(function(e){if("string"==typeof e)return e;t({image:n,blobInfo:e.blobInfo})})});var e=new Zt(function(e,t){!function(n,r,o,t){var i,a;0!==r.src.indexOf("blob:")?(i=Gd(r.src).data,(a=n.findFirst(function(e){return e.base64()===i}))?o({image:r,blobInfo:a}):Xd(r.src).then(function(e){a=n.create(Kd(),e,i),n.add(a),o({image:r,blobInfo:a})},function(e){t(e)})):(a=n.getByUri(r.src))?o({image:r,blobInfo:a}):Xd(r.src).then(function(t){Yd(t).then(function(e){i=Gd(e).data,a=n.create(Kd(),t,i),n.add(a),o({image:r,blobInfo:a})})},function(e){t(e)})}(i,n,e,t)}).then(function(e){return delete a[e.image.src],e})["catch"](function(e){return delete a[n.src],e});return a[n.src]=e});return Zt.all(r)}}}var Zd=0,eh=function(e){return e+Zd+++function(){function e(){return Math.round(4294967295*Math.random()).toString(36)}return"s"+(new Date).getTime().toString(36)+e()+e()+e()}()};function th(o){function t(t){return function(e){return o.selection?t(e):[]}}function r(e,t,n){for(var r=0;-1!==(r=e.indexOf(t,r))&&(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1),-1!==r;);return e}function i(e,t,n){return e=r(e,'src="'+t+'"','src="'+n+'"'),e=r(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')}function n(t,n){z(o.undoManager.data,function(e){"fragmented"===e.type?e.fragments=X(e.fragments,function(e){return i(e,t,n)}):e.content=i(e.content,t,n)})}function a(){return o.notificationManager.open({text:o.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})}function u(e,t){h.removeByUri(e.src),n(e.src,t),o.$(e).attr({src:Sf(o)?t+"?"+(new Date).getTime():t,"data-mce-src":o.convertURL(t,"src")})}function s(n){return f=f||$d(m,{url:Tf(o),basePath:Af(o),credentials:Mf(o),handler:Rf(o)}),p().then(t(function(r){var e;return e=X(r,function(e){return e.blobInfo}),f.upload(e,a).then(t(function(e){var t=X(e,function(e,t){var n=r[t].image;return e.status&&kf(o)?u(n,e.url):e.error&&Fd.uploadError(o,e.error),{element:n,status:e.status}});return n&&n(t),t}))}))}function e(e){if(Nf(o))return s(e)}function c(t){return!1!==w(g,function(e){return e(t)})&&(0!==t.getAttribute("src").indexOf("data:")||Ef(o)(t))}function l(e){return e.replace(/src="(blob:[^"]+)"/g,function(e,n){var t=m.getResultUri(n);if(t)return'src="'+t+'"';var r=h.getByUri(n);return(r=r||b(o.editorManager.get(),function(e,t){return e||t.editorUpload&&t.editorUpload.blobCache.getByUri(n)},null))?'src="data:'+r.blob().type+";base64,"+r.base64()+'"':e})}var f,d,h=function(){var n=[],o=function(e){var t,n;if(!e.blob||!e.base64)throw new Error("blob and base64 representations of the image are required for BlobInfo to be created");return t=e.id||eh("blobid"),n=e.name||t,{id:$(t),name:$(n),filename:$(n+"."+function(e){return{"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"}[e.toLowerCase()]||"dat"}(e.blob.type)),blob:$(e.blob),base64:$(e.base64),blobUri:$(e.blobUri||j.URL.createObjectURL(e.blob)),uri:$(e.uri)}},t=function(t){return e(function(e){return e.id()===t})},e=function(e){return y(n,e)[0]};return{create:function(e,t,n,r){if(K(e))return o({id:e,name:r,blob:t,base64:n});if(T(e))return o(e);throw new Error("Unknown input type")},add:function(e){t(e.id())||n.push(e)},get:t,getByUri:function(t){return e(function(e){return e.blobUri()===t})},findFirst:e,removeByUri:function(t){n=y(n,function(e){return e.blobUri()!==t||(j.URL.revokeObjectURL(e.blobUri()),!1)})},destroy:function(){z(n,function(e){j.URL.revokeObjectURL(e.blobUri())}),n=[]}}}(),m=function v(){function n(e,t){return{status:e,resultUri:t}}function t(e){return e in r}var r={};return{hasBlobUri:t,getResultUri:function(e){var t=r[e];return t?t.resultUri:null},isPending:function(e){return!!t(e)&&1===r[e].status},isUploaded:function(e){return!!t(e)&&2===r[e].status},markPending:function(e){r[e]=n(1,null)},markUploaded:function(e,t){r[e]=n(2,t)},removeFailed:function(e){delete r[e]},destroy:function(){r={}}}}(),g=[],p=function(){return(d=d||Qd(m,h)).findAll(o.getBody(),c).then(t(function(e){return e=y(e,function(e){return"string"!=typeof e||(Fd.displayError(o,e),!1)}),z(e,function(e){n(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),e}))};return o.on("SetContent",function(){Nf(o)?e():p()}),o.on("RawSaveContent",function(e){e.content=l(e.content)}),o.on("GetContent",function(e){e.source_view||"raw"===e.format||(e.content=l(e.content))}),o.on("PostRender",function(){o.parser.addNodeFilter("img",function(e){z(e,function(e){var t=e.attr("src");if(!h.getByUri(t)){var n=m.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:h,addFilter:function(e){g.push(e)},uploadImages:s,uploadImagesAuto:e,scanForImages:p,destroy:function(){h.destroy(),m.destroy(),d=f=null}}}function nh(e,t,n){return Bt(t,e)?function(e){return e.slice(0,-1)}(function(e,t){for(var n=D(t)?t:c,r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=yt.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o}(e,function(e){return n(e)||ze(e,t)})):[]}function rh(e,t){return nh(e,t,$(!1))}function oh(e,t){return e.hasOwnProperty(t.nodeName)}function ih(e,t){if(Ge.isText(t)){if(0===t.nodeValue.length)return!0;if(/^\s+$/.test(t.nodeValue)&&(!t.nextSibling||oh(e,t.nextSibling)))return!0}return!1}function ah(e){var t,n,r,o,i,a,u,s,c,l,f=e.dom,d=e.selection,h=e.schema,m=h.getBlockElements(),g=d.getStart(),p=e.getBody(),v=mf(e);if(g&&Ge.isElement(g)&&v&&(l=p.nodeName.toLowerCase(),h.isValidChild(l,v.toLowerCase())&&!function(t,e,n){return C(lh(yt.fromDom(n),yt.fromDom(e)),function(e){return oh(t,e.dom())})}(m,p,g))){for(n=(t=d.getRng()).startContainer,r=t.startOffset,o=t.endContainer,i=t.endOffset,c=ud(e),g=p.firstChild;g;)if(y=m,b=g,Ge.isText(b)||Ge.isElement(b)&&!oh(y,b)&&!Fc(b)){if(ih(m,g)){g=(u=g).nextSibling,f.remove(u);continue}a||(a=f.create(v,gf(e)),g.parentNode.insertBefore(a,g),s=!0),g=(u=g).nextSibling,a.appendChild(u)}else a=null,g=g.nextSibling;var y,b;s&&c&&(t.setStart(n,r),t.setEnd(o,i),d.setRng(t),e.nodeChanged())}}function uh(o,e){return Ya(function(e){var t=e.startContainer,n=e.startOffset;return Ge.isText(t)?0===n?k.some(yt.fromDom(t)):k.none():k.from(t.childNodes[n]).map(yt.fromDom)}(e),function(e){var t=e.endContainer,n=e.endOffset;return Ge.isText(t)?n===t.data.length?k.some(yt.fromDom(t)):k.none():k.from(t.childNodes[n-1]).map(yt.fromDom)}(e),function(e,t){var n=g(mh(o),d(ze,e)),r=g(gh(o),d(ze,t));return n.isSome()&&r.isSome()}).getOr(!1)}function sh(e,t,n,r){var o=n,i=new yi(n,o),a=e.schema.getNonEmptyElements();do{if(3===n.nodeType&&0!==Mn.trim(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"===n.nodeName?t.setEndBefore(n):t.setEndAfter(n))}while(n=r?i.next():i.prev());"BODY"===o.nodeName&&(r?t.setStart(o,0):t.setEnd(o,o.childNodes.length))}function ch(e){var t=e.selection.getSel();return t&&0<t.rangeCount}var lh=rh,fh=function(e,t){return[e].concat(rh(e,t))},dh=function(e){mf(e)&&e.on("NodeChange",d(ah,e))},hh=function(e,t){return e&&t&&e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset},mh=function(t){return _e(t).fold($([t]),function(e){return[t].concat(mh(e))})},gh=function(t){return Be(t).fold($([t]),function(e){return"br"===ie(e)?ke(e).map(function(e){return[t].concat(gh(e))}).getOr([]):[t].concat(gh(e))})},ph=(vh.prototype.nodeChanged=function(e){var t,n,r,o=this.editor.selection;this.editor.initialized&&o&&!this.editor.settings.disable_nodechange&&!this.editor.readonly&&(r=this.editor.getBody(),(t=o.getStart(!0)||r).ownerDocument===this.editor.getDoc()&&this.editor.dom.isChildOf(t,r)||(t=r),n=[],this.editor.dom.getParent(t,function(e){if(e===r)return!0;n.push(e)}),(e=e||{}).element=t,e.parents=n,this.editor.fire("NodeChange",e))},vh.prototype.isSameElementPath=function(e){var t,n;if((n=this.editor.$(e).parentsUntil(this.editor.getBody()).add(e)).length===this.lastPath.length){for(t=n.length;0<=t&&n[t]===this.lastPath[t];t--);if(-1===t)return this.lastPath=n,!0}return this.lastPath=n,!1},vh);function vh(r){var o;this.lastPath=[],this.editor=r;var t=this;"onselectionchange"in r.getDoc()||r.on("NodeChange click mouseup keyup focus",function(e){var t,n;n={startContainer:(t=r.selection.getRng()).startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset},"nodechange"!==e.type&&hh(n,o)||r.fire("SelectionChange"),o=n}),r.on("contextmenu",function(){r.fire("SelectionChange")}),r.on("SelectionChange",function(){var e=r.selection.getStart(!0);!e||!Nn.range&&r.selection.isCollapsed()||ch(r)&&!t.isSameElementPath(e)&&r.dom.isChildOf(e,r.getBody())&&r.nodeChanged({selectionChange:!0})}),r.on("mouseup",function(e){!e.isDefaultPrevented()&&ch(r)&&("IMG"===r.selection.getNode().nodeName?pn.setEditorTimeout(r,function(){r.nodeChanged()}):r.nodeChanged())})}function yh(e){return/^[\r\n\t ]$/.test(e)}function bh(e){return!yh(e)&&!Mh(e)}function Ch(n,r,o){return k.from(o.container()).filter(Ge.isText).exists(function(e){var t=n?0:-1;return r(e.data.charAt(o.offset()+t))})}function wh(e){var t=e.container();return Ge.isText(t)&&0===t.data.length}function xh(t,n){return function(e){return k.from(ws(t?0:-1,e)).filter(n).isSome()}}function zh(e){return"IMG"===e.nodeName&&"block"===ve(yt.fromDom(e),"display")}function Eh(e){return Ge.isContentEditableFalse(e)&&!Ge.isBogusAll(e)}function Nh(e){return b(e,function(e,t){return e.concat(function(t){function e(e){return X(e,function(e){return(e=Ia(e)).node=t,e})}if(Ge.isElement(t))return e(t.getClientRects());if(Ge.isText(t)){var n=t.ownerDocument.createRange();return n.setStart(t,0),n.setEnd(t,t.data.length),e(n.getClientRects())}}(t))},[])}var Sh,kh,Th,Ah={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,END:35,HOME:36,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(e){return Nn.mac?e.metaKey:e.ctrlKey&&!e.altKey}},Mh=(Sh="\xa0",function(e){return Sh===e}),Rh=d(Ch,!0,yh),Dh=d(Ch,!1,yh),_h=xh(!0,zh),Bh=xh(!1,zh),Oh=xh(!0,Ge.isTable),Hh=xh(!1,Ge.isTable),Ph=xh(!0,Eh),Lh=xh(!1,Eh);(Th=kh=kh||{})[Th.Up=-1]="Up",Th[Th.Down=1]="Down";function Vh(o,i,a,e,u,t){function n(e){var t,n,r;for(r=Nh([e]),-1===o&&(r=r.reverse()),t=0;t<r.length;t++)if(n=r[t],!a(n,s)){if(0<l.length&&i(n,kn.last(l))&&c++,n.line=c,u(n))return!0;l.push(n)}}var r,s,c=0,l=[];return(s=kn.last(t.getClientRects()))&&(n(r=t.getNode()),function(e,t,n,r){for(;r=ys(r,e,Va,t);)if(n(r))return}(o,e,n,r)),l}function Ih(t){return function(e){return function(e,t){return t.line>e}(t,e)}}function Fh(t){return function(e){return function(e,t){return t.line===e}(t,e)}}function Uh(e,t){return Math.abs(e.left-t)}function jh(e,t){return Math.abs(e.right-t)}function qh(e,t){return e>=t.left&&e<=t.right}function $h(e,o){return kn.reduce(e,function(e,t){var n,r;return n=Math.min(Uh(e,o),jh(e,o)),r=Math.min(Uh(t,o),jh(t,o)),qh(o,t)?t:qh(o,e)?e:r===n&&Ym(t.node)?t:r<n?t:e})}function Wh(e,t,n,r){for(;r=Gm(r,e,Va,t);)if(n(r))return}function Kh(e,t,n){var r,o=Nh(function(e){return y(P(e.getElementsByTagName("*")),ms)}(e)),i=y(o,function(e){return n>=e.top&&n<=e.bottom});return(r=(r=$h(i,t))&&$h(function(e,r){function t(t,e){var n;return n=y(Nh([e]),function(e){return!t(e,r)}),o=o.concat(n),0===n.length}var o=[];return o.push(r),Wh(kh.Up,e,d(t,ja),r.node),Wh(kh.Down,e,d(t,qa),r.node),o}(e,r),t))&&ms(r.node)?function(e,t){return{node:e.node,before:Uh(e,t)<jh(e,t)}}(r,t):null}function Xh(e){var t,n,r,o;return o=e.getBoundingClientRect(),n=(t=e.ownerDocument).documentElement,r=t.defaultView,{top:o.top+r.pageYOffset-n.clientTop,left:o.left+r.pageXOffset-n.clientLeft}}function Yh(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Gh(i,a){return function(e){if(function(e){return 0===e.button}(e)){var t=g(a.dom.getParents(e.target),Tu(Zm,eg)).getOr(null);if(function(e,t){return Zm(t)&&t!==e}(a.getBody(),t)){var n=a.dom.getPos(t),r=a.getBody(),o=a.getDoc().documentElement;i.element=t,i.screenX=e.screenX,i.screenY=e.screenY,i.maxX=(a.inline?r.scrollWidth:o.offsetWidth)-2,i.maxY=(a.inline?r.scrollHeight:o.offsetHeight)-2,i.relX=e.pageX-n.x,i.relY=e.pageY-n.y,i.width=t.offsetWidth,i.height=t.offsetHeight,i.ghost=function(e,t,n,r){var o=t.cloneNode(!0);e.dom.setStyles(o,{width:n,height:r}),e.dom.setAttrib(o,"data-mce-selected",null);var i=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(i,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(o,{margin:0,boxSizing:"border-box"}),i.appendChild(o),i}(a,t,i.width,i.height)}}}}function Jh(r,o){return function(e){if(r.dragging&&function(e,t,n){return t!==n&&!e.dom.isChildOf(t,n)&&!Zm(t)}(o,function(e){var t=e.getSel().getRangeAt(0).startContainer;return 3===t.nodeType?t.parentNode:t}(o.selection),r.element)){var t=function(e){var t=e.cloneNode(!0);return t.removeAttribute("data-mce-selected"),t}(r.element),n=o.fire("drop",{targetClone:t,clientX:e.clientX,clientY:e.clientY});n.isDefaultPrevented()||(t=n.targetClone,o.undoManager.transact(function(){Yh(r.element),o.insertContent(o.dom.getOuterHTML(t)),o._selectionOverrides.hideFakeCaret()}))}tg(r)}}function Qh(e){var t,n,r,o,i,a,u={};t=Xi.DOM,a=j.document,n=Gh(u,e),r=function(r,o){var i=pn.throttle(function(e,t){o._selectionOverrides.hideFakeCaret(),o.selection.placeCaretAt(e,t)},0);return function(e){var t=Math.max(Math.abs(e.screenX-r.screenX),Math.abs(e.screenY-r.screenY));if(function(e){return e.element}(r)&&!r.dragging&&10<t){if(o.fire("dragstart",{target:r.element}).isDefaultPrevented())return;r.dragging=!0,o.focus()}if(r.dragging){var n=function(e,t){return{pageX:t.pageX-e.relX,pageY:t.pageY+5}}(r,Qm(o,e));!function(e,t){e.parentNode!==t&&t.appendChild(e)}(r.ghost,o.getBody()),function(e,t,n,r,o,i){var a=0,u=0;e.style.left=t.pageX+"px",e.style.top=t.pageY+"px",t.pageX+n>o&&(a=t.pageX+n-o),t.pageY+r>i&&(u=t.pageY+r-i),e.style.width=n-a+"px",e.style.height=r-u+"px"}(r.ghost,n,r.width,r.height,r.maxX,r.maxY),i(e.clientX,e.clientY)}}}(u,e),o=Jh(u,e),i=function(e,t){return function(){e.dragging&&t.fire("dragend"),tg(e)}}(u,e),e.on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})}function Zh(e,t,n,r,o){return t._selectionOverrides.showCaret(e,n,r,o)}function em(e,t){return e.fire("BeforeObjectSelected",{target:t}).isDefaultPrevented()?null:function(e){var t=e.ownerDocument.createRange();return t.selectNode(e),t}(t)}function tm(e,t,n){var r=Es(1,e.getBody(),t),o=Ds.fromRangeStart(r),i=o.getNode();if(og(i))return Zh(1,e,i,!o.isAtEnd(),!1);var a=o.getNode(!0);if(og(a))return Zh(1,e,a,!1,!1);var u=e.dom.getParent(o.getNode(),function(e){return og(e)||rg(e)});return og(u)?Zh(1,e,u,!1,n):null}function nm(e,t,n){if(!t||!t.collapsed)return t;var r=tm(e,t,n);return r||t}function rm(e,t){for(var n=e.getBody();t&&t!==n;){if(ag(t)||ug(t))return t;t=t.parentNode}return null}function om(g){function a(e){e&&g.selection.setRng(e)}function o(){return g.selection.getRng()}function p(e,t,n,r){return void 0===r&&(r=!0),g.fire("ShowCaret",{target:t,direction:e,before:n}).isDefaultPrevented()?null:(r&&g.selection.scrollIntoView(t,-1===e),u.show(n,t))}function t(e){return Da(e)||hu(e)||mu(e)}var v,y=g.getBody(),u=ds(g.getBody(),function(e){return g.dom.isBlock(e)},function(){return ud(g)}),b="sel-"+g.dom.uniqueId(),C=function(e){return t(e.startContainer)||t(e.endContainer)},s=function(e){var t=g.schema.getShortEndedElements(),n=g.dom.createRng(),r=e.startContainer,o=e.startOffset,i=e.endContainer,a=e.endOffset;return kt(t,r.nodeName.toLowerCase())?0===o?n.setStartBefore(r):n.setStartAfter(r):n.setStart(r,o),kt(t,i.nodeName.toLowerCase())?0===a?n.setEndBefore(i):n.setEndAfter(i):n.setEnd(i,a),n},c=function(e,t){var n,r,o,i,a,u,s,c,l,f,d=g.$,h=g.dom;if(!e)return null;if(e.collapsed){if(!C(e))if(!1===t){if(c=Ss(-1,y,e),ms(c.getNode(!0)))return p(-1,c.getNode(!0),!1,!1);if(ms(c.getNode()))return p(-1,c.getNode(),!c.isAtEnd(),!1)}else{if(c=Ss(1,y,e),ms(c.getNode()))return p(1,c.getNode(),!c.isAtEnd(),!1);if(ms(c.getNode(!0)))return p(1,c.getNode(!0),!1,!1)}return null}if(i=e.startContainer,a=e.startOffset,u=e.endOffset,3===i.nodeType&&0===a&&ug(i.parentNode)&&(i=i.parentNode,a=h.nodeIndex(i),i=i.parentNode),1!==i.nodeType)return null;if(u===a+1&&i===e.endContainer&&(n=i.childNodes[a]),!ug(n))return null;if(l=f=n.cloneNode(!0),(s=g.fire("ObjectSelected",{target:n,targetClone:l})).isDefaultPrevented())return null;r=wa(yt.fromDom(g.getBody()),"#"+b).fold(function(){return d([])},function(e){return d([e.dom()])}),l=s.targetClone,0===r.length&&(r=d('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",b)).appendTo(g.getBody()),e=g.dom.createRng(),l===f&&Nn.ie?(r.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(l),e.setStartAfter(r[0].firstChild.firstChild),e.setEndAfter(l)):(r.empty().append("\xa0").append(l).append("\xa0"),e.setStart(r[0].firstChild,1),e.setEnd(r[0].lastChild,0)),r.css({top:h.getPos(n,g.getBody()).y}),r[0].focus(),(o=g.selection.getSel()).removeAllRanges(),o.addRange(e);var m=yt.fromDom(n);return z(ma(yt.fromDom(g.getBody()),"*[data-mce-selected]"),function(e){ze(m,e)||pe(e,"data-mce-selected")}),g.dom.getAttrib(n,"data-mce-selected")||n.setAttribute("data-mce-selected","1"),v=n,w(),e},l=function(){v&&(v.removeAttribute("data-mce-selected"),wa(yt.fromDom(g.getBody()),"#"+b).each(_i),v=null),wa(yt.fromDom(g.getBody()),"#"+b).each(_i),v=null},w=function(){u.hide()};return Nn.ceFalse&&function(){g.on("mouseup",function(e){var t=o();t.collapsed&&Rd(g,e.clientX,e.clientY)&&a(tm(g,t,!1))}),g.on("click",function(e){var t;(t=rm(g,e.target))&&(ug(t)&&(e.preventDefault(),g.focus()),ag(t)&&g.dom.isChildOf(t,g.selection.getNode())&&l())}),g.on("blur NewBlock",function(){l()}),g.on("ResizeWindow FullscreenStateChanged",function(){return u.reposition()});function i(e,t){var n=g.dom.getParent(e,g.dom.isBlock),r=g.dom.getParent(t,g.dom.isBlock);return!(!n||!g.dom.isChildOf(n,r)||!1!==ug(rm(g,n)))||n&&!function(e,t){return g.dom.getParent(e,g.dom.isBlock)===g.dom.getParent(t,g.dom.isBlock)}(n,r)&&function(e){var t=rc(e);if(!e.firstChild)return!1;var n=Ds.before(e.firstChild),r=t.next(n);return r&&!Ph(r)&&!Lh(r)}(n)}var n,r;r=!1,(n=g).on("touchstart",function(){r=!1}),n.on("touchmove",function(){r=!0}),n.on("touchend",function(e){if(!r){var t=rm(n,e.target);ug(t)&&(e.preventDefault(),c(em(n,t)))}},!0),g.on("mousedown",function(e){var t,n=e.target;if((n===y||"HTML"===n.nodeName||g.dom.isChildOf(n,y))&&!1!==Rd(g,e.clientX,e.clientY))if(t=rm(g,n))ug(t)?(e.preventDefault(),c(em(g,t))):(l(),ag(t)&&e.shiftKey||Jm(e.clientX,e.clientY,g.selection.getRng())||(w(),g.selection.placeCaretAt(e.clientX,e.clientY)));else if(!1===ms(n)){l(),w();var r=Kh(y,e.clientX,e.clientY);if(r&&!i(e.target,r.node)){e.preventDefault();var o=p(1,r.node,r.before,!1);g.getBody().focus(),a(o)}}}),g.on("keypress",function(e){Ah.modifierPressed(e)||(e.keyCode,ug(g.selection.getNode())&&e.preventDefault())}),g.on("GetSelectionRange",function(e){var t=e.range;if(v){if(!v.parentNode)return void(v=null);(t=t.cloneRange()).selectNode(v),e.range=t}}),g.on("SetSelectionRange",function(e){e.range=s(e.range);var t=c(e.range,e.forward);t&&(e.range=t)});g.on("AfterSetSelectionRange",function(e){var t=e.range;C(t)||function(e){return"mcepastebin"===e.id}(t.startContainer.parentNode)||w(),function(e){return g.dom.hasClass(e,"mce-offscreen-selection")}(t.startContainer.parentNode)||l()}),g.on("copy",function(e){var t=e.clipboardData;if(!e.isDefaultPrevented()&&e.clipboardData&&!Nn.ie){var n=function(){var e=g.dom.get(b);return e?e.getElementsByTagName("*")[0]:e}();n&&(e.preventDefault(),t.clearData(),t.setData("text/html",n.outerHTML),t.setData("text/plain",n.outerText))}}),ng(g),ig(g)}(),{showCaret:p,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(Pa(e),a(o()),g.selection.scrollIntoView(e[0]))},hideFakeCaret:w,destroy:function(){u.destroy(),v=null}}}function im(e){return Ge.isElement(e)?e.outerHTML:Ge.isText(e)?ir.encodeRaw(e.data,!1):Ge.isComment(e)?"\x3c!--"+e.data+"--\x3e":""}function am(e,t,n){var r=function(e){var t,n,r;for(r=j.document.createElement("div"),t=j.document.createDocumentFragment(),e&&(r.innerHTML=e);n=r.firstChild;)t.appendChild(n);return t}(t);if(e.hasChildNodes()&&n<e.childNodes.length){var o=e.childNodes[n];o.parentNode.insertBefore(r,o)}else e.appendChild(r)}function um(e){return{type:"fragmented",fragments:e,content:"",bookmark:null,beforeBookmark:null}}function sm(e){return{type:"complete",fragments:null,content:e,bookmark:null,beforeBookmark:null}}function cm(e){return"fragmented"===e.type?e.fragments.join(""):e.content}function lm(e){var t=yt.fromTag("body",mg.get().getOrThunk(function(){var e=j.document.implementation.createHTMLDocument("undo");return mg.set(k.some(e)),e}));return Aa(t,cm(e)),z(ma(t,"*[data-mce-bogus]"),Ni),function(e){return e.dom().innerHTML}(t)}function fm(e){return 0===e.get()}function dm(e,t,n){fm(n)&&(e.typing=t)}function hm(e,t){e.typing&&(dm(e,!1,t),e.add())}function mm(n){var r=Je(k.none()),o=Je(0),i=Je(0),a={data:[],typing:!1,beforeChange:function(){!function(e,t,n){fm(t)&&n.set(k.some(Vs.getUndoBookmark(e.selection)))}(n,o,r)},add:function(e,t){return function(e,t,n,r,o,i,a){var u=e.settings,s=gg(e);if(i=i||{},i=Mn.extend(i,s),!1===fm(r)||e.removed)return null;var c=t.data[n.get()];if(e.fire("BeforeAddUndo",{level:i,lastLevel:c,originalEvent:a}).isDefaultPrevented())return null;if(c&&vg(c,i))return null;if(t.data[n.get()]&&o.get().each(function(e){t.data[n.get()].beforeBookmark=e}),u.custom_undo_redo_levels&&t.data.length>u.custom_undo_redo_levels){for(var l=0;l<t.data.length-1;l++)t.data[l]=t.data[l+1];t.data.length--,n.set(t.data.length)}i.bookmark=Vs.getUndoBookmark(e.selection),n.get()<t.data.length-1&&(t.data.length=n.get()+1),t.data.push(i),n.set(t.data.length-1);var f={level:i,lastLevel:c,originalEvent:a};return e.fire("AddUndo",f),0<n.get()&&(e.setDirty(!0),e.fire("change",f)),i}(n,a,i,o,r,e,t)},undo:function(){return function(e,t,n,r){var o;return t.typing&&(t.add(),t.typing=!1,dm(t,!1,n)),0<r.get()&&(r.set(r.get()-1),o=t.data[r.get()],pg(e,o,!0),e.setDirty(!0),e.fire("Undo",{level:o})),o}(n,a,o,i)},redo:function(){return function(e,t,n){var r;return t.get()<n.length-1&&(t.set(t.get()+1),r=n[t.get()],pg(e,r,!1),e.setDirty(!0),e.fire("Redo",{level:r})),r}(n,i,a.data)},clear:function(){!function(e,t,n){t.data=[],n.set(0),t.typing=!1,e.fire("ClearUndos")}(n,a,i)},reset:function(){!function(e){e.clear(),e.add()}(a)},hasUndo:function(){return function(e,t,n){return 0<n.get()||t.typing&&t.data[0]&&!vg(gg(e),t.data[0])}(n,a,i)},hasRedo:function(){return function(e,t){return t.get()<e.data.length-1&&!e.typing}(a,i)},transact:function(e){return function(e,t,n){return hm(e,t),e.beforeChange(),e.ignore(n),e.add()}(a,o,e)},ignore:function(e){!function(e,t){try{e.set(e.get()+1),t()}finally{e.set(e.get()-1)}}(o,e)},extra:function(e,t){!function(e,t,n,r,o){if(t.transact(r)){var i=t.data[n.get()].bookmark,a=t.data[n.get()-1];pg(e,a,!0),t.transact(o)&&(t.data[n.get()-1].beforeBookmark=i)}}(n,a,i,e,t)}};return function(n,r,o){function i(e){dm(r,!1,o),r.add({},e)}var a=Je(!1);n.on("init",function(){r.add()}),n.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(hm(r,o),r.beforeChange())}),n.on("ExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&i(e)}),n.on("ObjectResizeStart cut",function(){r.beforeChange()}),n.on("SaveContent ObjectResized blur",i),n.on("dragend",i),n.on("keyup",function(e){var t=e.keyCode;e.isDefaultPrevented()||((33<=t&&t<=36||37<=t&&t<=40||45===t||e.ctrlKey)&&(i(),n.nodeChanged()),46!==t&&8!==t||n.nodeChanged(),a.get()&&r.typing&&!1===vg(gg(n),r.data[0])&&(!1===n.isDirty()&&(n.setDirty(!0),n.fire("change",{level:r.data[0],lastLevel:null})),n.fire("TypingUndo"),a.set(!1),n.nodeChanged()))}),n.on("keydown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented())if(33<=t&&t<=36||37<=t&&t<=40||45===t)r.typing&&i(e);else{var n=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||20<t)||224===t||91===t||r.typing||n||(r.beforeChange(),dm(r,!0,o),r.add({},e),a.set(!0))}}),n.on("mousedown",function(e){r.typing&&i(e)});n.on("input",function(e){e.inputType&&(function(e){return"insertReplacementText"===e.inputType}(e)||function(e){return"insertText"===e.inputType&&null===e.data}(e))&&i(e)}),n.on("AddUndo Undo Redo ClearUndos",function(e){e.isDefaultPrevented()||n.nodeChanged()})}(n,a,o),function(e){e.addShortcut("meta+z","","Undo"),e.addShortcut("meta+y,meta+shift+z","","Redo")}(n),a}function gm(e,t,n){var r=e.formatter.get(n);if(r)for(var o=0;o<r.length;o++)if(!1===r[o].inherit&&e.dom.is(t,r[o].selector))return!0;return!1}function pm(t,e,n,r){var o=t.dom.getRoot();return e!==o&&(e=t.dom.getParent(e,function(e){return!!gm(t,e,n)||(e.parentNode===o||!!xg(t,e,n,r,!0))}),xg(t,e,n,r))}function vm(e,t,n){return!!wg(t,n.inline)||(!!wg(t,n.block)||(n.selector?1===t.nodeType&&e.is(t,n.selector):void 0))}function ym(e,t,n,r,o,i){var a,u,s,c=n[r];if(n.onmatch)return n.onmatch(t,n,r);if(c)if("undefined"==typeof c.length){for(a in c)if(c.hasOwnProperty(a)){if(u="attributes"===r?e.getAttrib(t,a):jc.getStyle(e,t,a),o&&!u&&!n.exact)return;if((!o||n.exact)&&!wg(u,jc.normalizeStyleValue(e,jc.replaceVars(c[a],i),a)))return}}else for(s=0;s<c.length;s++)if("attributes"===r?e.getAttrib(t,c[s]):jc.getStyle(e,t,c[s]))return n;return n}function bm(e,t){return e.splitText(t)}function Cm(e){var t=e.startContainer,n=e.startOffset,r=e.endContainer,o=e.endOffset;return t===r&&Ge.isText(t)?0<n&&n<t.nodeValue.length&&(t=(r=bm(t,n)).previousSibling,n<o?(t=r=bm(r,o-=n).previousSibling,o=r.nodeValue.length,n=0):o=0):(Ge.isText(t)&&0<n&&n<t.nodeValue.length&&(t=bm(t,n),n=0),Ge.isText(r)&&0<o&&o<r.nodeValue.length&&(o=(r=bm(r,o).previousSibling).nodeValue.length)),{startContainer:t,startOffset:n,endContainer:r,endOffset:o}}function wm(e,t,n){if(0!==n){var r=e.data.slice(t,t+n),o=t+n>=e.data.length,i=0===t;e.replaceData(t,n,function(n,r,o){return b(n,function(e,t){return function(e){return-1!==" \f\n\r\t\x0B".indexOf(e)}(t)||"\xa0"===t?e.previousCharIsSpace||""===e.str&&r||e.str.length===n.length-1&&o?{previousCharIsSpace:!1,str:e.str+"\xa0"}:{previousCharIsSpace:!0,str:e.str+" "}:{previousCharIsSpace:!1,str:e.str+t}},{previousCharIsSpace:!1,str:""}).str}(r,i,o))}}function xm(e,t){var n=e.data.slice(t),r=n.length-function(e){return e.replace(/^\s+/g,"")}(n).length;return wm(e,t,r)}function zm(e,t){var n=yt.fromDom(e);return function(e,t,n){return Ca(e,t,n).isSome()}(yt.fromDom(t),"pre,code",d(ze,n))}function Em(e,t){return La(t)&&!1===function(e,t){return Ge.isText(t)&&/^[ \t\r\n]*$/.test(t.data)&&!1===zm(e,t)}(e,t)||function(e){return Ge.isElement(e)&&"A"===e.nodeName&&e.hasAttribute("name")}(t)||Eg(t)}function Nm(e,t){return function(e,t){var n=e.container(),r=e.offset();return!1===Ds.isTextPosition(e)&&n===t.parentNode&&r>Ds.before(t).offset()}(t,e)?Ds(t.container(),t.offset()-1):t}function Sm(e){return La(e.previousSibling)?k.some(function(e){return Ge.isText(e)?Ds(e,e.data.length):Ds.after(e)}(e.previousSibling)):e.previousSibling?Pc.lastPositionIn(e.previousSibling):k.none()}function km(e){return La(e.nextSibling)?k.some(function(e){return Ge.isText(e)?Ds(e,0):Ds.before(e)}(e.nextSibling)):e.nextSibling?Pc.firstPositionIn(e.nextSibling):k.none()}function Tm(e,t){return Sm(t).orThunk(function(){return km(t)}).orThunk(function(){return function(e,t){var n=Ds.before(t.previousSibling?t.previousSibling:t.parentNode);return Pc.prevPosition(e,n).fold(function(){return Pc.nextPosition(e,Ds.after(t))},k.some)}(e,t)})}function Am(e,t){return km(t).orThunk(function(){return Sm(t)}).orThunk(function(){return function(e,t){return Pc.nextPosition(e,Ds.after(t)).fold(function(){return Pc.prevPosition(e,Ds.before(t))},k.some)}(e,t)})}function Mm(e,t,n){return function(e,t,n){return e?Am(t,n):Tm(t,n)}(e,t,n).map(d(Nm,n))}function Rm(t,n,e){e.fold(function(){t.focus()},function(e){t.selection.setRng(e.toRange(),n)})}function Dm(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(ie(t))}function _m(e){if(kg(e)){var t=yt.fromHtml('<br data-mce-bogus="1">');return Ei(e),Di(e,t),k.some(Ds.before(t.dom()))}return k.none()}function Bm(e,t,a){var n=ke(e).filter(zt),r=Te(e).filter(zt);return _i(e),function(e,t,n,r){return e.isSome()&&t.isSome()&&n.isSome()?k.some(r(e.getOrDie(),t.getOrDie(),n.getOrDie())):k.none()}(n,r,t,function(e,t,n){var r=e.dom(),o=t.dom(),i=r.data.length;return function(e,t,n){var r=ne(e.data).length;e.appendData(t.data),_i(yt.fromDom(t)),n&&xm(e,r)}(r,o,a),n.container()===o?Ds(r,i):n}).orThunk(function(){return a&&(n.each(function(e){return function(e,t){var n=e.data.slice(0,t),r=n.length-ne(n).length;return wm(e,t-r,r)}(e.dom(),e.dom().length)}),r.each(function(e){return xm(e.dom(),0)})),t})}function Om(e){return 0<function(e){for(var t=[];e;){if(3===e.nodeType&&e.nodeValue!==Ag||1<e.childNodes.length)return[];1===e.nodeType&&t.push(e),e=e.firstChild}return t}(e).length}function Hm(e){if(e){var t=new yi(e,e);for(e=t.current();e;e=t.next())if(3===e.nodeType)return e}return null}function Pm(e){var t=yt.fromTag("span");return me(t,{id:Mg,"data-mce-bogus":"1","data-mce-type":"format-caret"}),e&&Di(t,yt.fromText(Ag)),t}function Lm(e,t,n){void 0===n&&(n=!0);var r=e.dom,o=e.selection;if(Om(t))Tg(e,!1,yt.fromDom(t),n);else{var i=o.getRng(),a=r.getParent(t,r.isBlock),u=function(e){var t=Hm(e);return t&&t.nodeValue.charAt(0)===Ag&&t.deleteData(0,1),t}(t);i.startContainer===u&&0<i.startOffset&&i.setStart(u,i.startOffset-1),i.endContainer===u&&0<i.endOffset&&i.setEnd(u,i.endOffset-1),r.remove(t,!0),a&&r.isEmpty(a)&&bg(yt.fromDom(a)),o.setRng(i)}}function Vm(e,t,n){void 0===n&&(n=!0);var r=e.dom,o=e.selection;if(t)Lm(e,t,n);else if(!(t=os(e.getBody(),o.getStart())))for(;t=r.get(Mg);)Lm(e,t,!1)}function Im(e,t,n){var r=e.dom,o=r.getParent(n,d(jc.isTextBlock,e));o&&r.isEmpty(o)?n.parentNode.replaceChild(t,n):(yg(yt.fromDom(n)),r.isEmpty(n)?n.parentNode.replaceChild(t,n):r.insertAfter(t,n))}function Fm(e,t){return e.appendChild(t),t}function Um(e,t){var n=m(e,function(e,t){return Fm(e,t.cloneNode(!1))},t);return Fm(n,n.ownerDocument.createTextNode(Ag))}function jm(t){t.on("mouseup keydown",function(e){!function(e,t){var n=e.selection,r=e.getBody();Vm(e,null,!1),8!==t&&46!==t||!n.isCollapsed()||n.getStart().innerHTML!==Ag||Vm(e,os(r,n.getStart())),37!==t&&39!==t||Vm(e,os(r,n.getStart()))}(t,e.keyCode)})}function qm(e,t){return e.schema.getTextInlineElements().hasOwnProperty(ie(t))&&!rs(t.dom())&&!Ge.isBogus(t.dom())}var $m,Wm,Km=d(Vh,kh.Up,ja,qa),Xm=d(Vh,kh.Down,qa,ja),Ym=Ge.isContentEditableFalse,Gm=ys,Jm=function(t,n,e){if(e.collapsed)return!1;if(Nn.browser.isIE()&&e.startOffset===e.endOffset-1&&e.startContainer===e.endContainer){var r=e.startContainer.childNodes[e.startOffset];if(Ge.isElement(r))return C(r.getClientRects(),function(e){return $a(e,t,n)})}return C(e.getClientRects(),function(e){return $a(e,t,n)})},Qm=function(e,t){return function(e,t,n){return{pageX:n.left-e.left+t.left,pageY:n.top-e.top+t.top}}(function(e){return e.inline?Xh(e.getBody()):{left:0,top:0}}(e),function(e){var t=e.getBody();return e.inline?{left:t.scrollLeft,top:t.scrollTop}:{left:0,top:0}}(e),function(e,t){if(t.target.ownerDocument===e.getDoc())return{left:t.pageX,top:t.pageY};var n=Xh(e.getContentAreaContainer()),r=function(e){var t=e.getBody(),n=e.getDoc().documentElement,r={left:t.scrollLeft,top:t.scrollTop},o={left:t.scrollLeft||n.scrollLeft,top:t.scrollTop||n.scrollTop};return e.inline?r:o}(e);return{left:t.pageX-n.left+r.left,top:t.pageY-n.top+r.top}}(e,t))},Zm=Ge.isContentEditableFalse,eg=Ge.isContentEditableTrue,tg=function(e){e.dragging=!1,e.element=null,Yh(e.ghost)},ng=function(e){Qh(e),function(n){n.on("drop",function(e){var t="undefined"!=typeof e.clientX?n.getDoc().elementFromPoint(e.clientX,e.clientY):null;(Zm(t)||Zm(n.dom.getContentEditableParent(t)))&&e.preventDefault()})}(e)},rg=Ge.isContentEditableTrue,og=Ge.isContentEditableFalse,ig=function(t){var e=aa(function(){if(!t.removed&&t.getBody().contains(j.document.activeElement)&&t.selection.getRng().collapsed){var e=nm(t,t.selection.getRng(),!1);t.selection.setRng(e)}},0);t.on("focus",function(){e.throttle()}),t.on("blur",function(){e.cancel()})},ag=Ge.isContentEditableTrue,ug=Ge.isContentEditableFalse,sg=0,cg=2,lg=1,fg=function(m,g){function p(e,t,n,r){for(var o=e;o-t<r&&o<n&&m[o]===g[o-t];)++o;return function(e,t,n){return{start:e,end:t,diag:n}}(e,o,t)}var e=m.length+g.length+2,v=new Array(e),y=new Array(e),c=function(e,t,n,r,o){var i=l(e,t,n,r);if(null===i||i.start===t&&i.diag===t-r||i.end===e&&i.diag===e-n)for(var a=e,u=n;a<t||u<r;)a<t&&u<r&&m[a]===g[u]?(o.push([0,m[a]]),++a,++u):r-n<t-e?(o.push([2,m[a]]),++a):(o.push([1,g[u]]),++u);else{c(e,i.start,n,i.start-i.diag,o);for(var s=i.start;s<i.end;++s)o.push([0,m[s]]);c(i.end,t,i.end-i.diag,r,o)}},l=function(e,t,n,r){var o=t-e,i=r-n;if(0==o||0==i)return null;var a,u,s,c,l,f=o-i,d=i+o,h=(d%2==0?d:1+d)/2;for(v[1+h]=e,y[1+h]=t+1,a=0;a<=h;++a){for(u=-a;u<=a;u+=2){for(s=u+h,u===-a||u!==a&&v[s-1]<v[s+1]?v[s]=v[s+1]:v[s]=v[s-1]+1,l=(c=v[s])-e+n-u;c<t&&l<r&&m[c]===g[l];)v[s]=++c,++l;if(f%2!=0&&f-a<=u&&u<=f+a&&y[s-f]<=v[s])return p(y[s-f],u+e-n,t,r)}for(u=f-a;u<=f+a;u+=2){for(s=u+h-f,u===f-a||u!==f+a&&y[s+1]<=y[s-1]?y[s]=y[s+1]-1:y[s]=y[s-1],l=(c=y[s]-1)-e+n-u;e<=c&&n<=l&&m[c]===g[l];)y[s]=c--,l--;if(f%2==0&&-a<=u&&u<=a&&y[s]<=v[s+f])return p(y[s],u+e-n,t,r)}}},t=[];return c(0,m.length,0,g.length,t),t},dg=function(e){return y(X(P(e.childNodes),im),function(e){return 0<e.length})},hg=function(e,t){var n=X(P(t.childNodes),im);return function(e,t){var n=0;z(e,function(e){e[0]===sg?n++:e[0]===lg?(am(t,e[1],n),n++):e[0]===cg&&function(e,t){if(e.hasChildNodes()&&t<e.childNodes.length){var n=e.childNodes[t];n.parentNode.removeChild(n)}}(t,n)})}(fg(n,e),t),t},mg=Je(k.none()),gg=function(n){var e,t,r;return e=dg(n.getBody()),function(e){return-1!==e.indexOf("</iframe>")}(t=(r=v(e,function(e){var t=af.trimInternal(n.serializer,e);return 0<t.length?[t]:[]})).join(""))?um(r):sm(t)},pg=function(e,t,n){"fragmented"===t.type?hg(t.fragments,e.getBody()):e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(n?t.beforeBookmark:t.bookmark)},vg=function(e,t){return!(!e||!t)&&(!!function(e,t){return cm(e)===cm(t)}(e,t)||function(e,t){return lm(e)===lm(t)}(e,t))},yg=function(e){var t=ma(e,"br"),n=y(function(e){for(var t=[],n=e.dom();n;)t.push(yt.fromDom(n)),n=n.lastChild;return t}(e).slice(-1),_n);t.length===n.length&&z(n,_i)},bg=function(e){Ei(e),Di(e,yt.fromHtml('<br data-mce-bogus="1">'))},Cg=function(n){Be(n).each(function(t){ke(t).each(function(e){Vn(n)&&_n(t)&&Vn(e)&&_i(t)})})},wg=jc.isEq,xg=function(e,t,n,r,o){var i,a,u,s,c=e.formatter.get(n),l=e.dom;if(c&&t)for(a=0;a<c.length;a++)if(i=c[a],vm(e.dom,t,i)&&ym(l,t,i,"attributes",o,r)&&ym(l,t,i,"styles",o,r)){if(s=i.classes)for(u=0;u<s.length;u++)if(!e.dom.hasClass(t,s[u]))return;return i}},zg={matchNode:xg,matchName:vm,match:function(e,t,n,r){var o;return r?pm(e,r,t,n):(r=e.selection.getNode(),!!pm(e,r,t,n)||!((o=e.selection.getStart())===r||!pm(e,o,t,n)))},matchAll:function(r,o,i){var e,a=[],u={};return e=r.selection.getStart(),r.dom.getParent(e,function(e){var t,n;for(t=0;t<o.length;t++)n=o[t],!u[n]&&xg(r,e,n,i)&&(u[n]=!0,a.push(n))},r.dom.getRoot()),a},canApply:function(e,t){var n,r,o,i,a,u=e.formatter.get(t),s=e.dom;if(u)for(n=e.selection.getStart(),r=jc.getParents(s,n),i=u.length-1;0<=i;i--){if(!(a=u[i].selector)||u[i].defaultBlock)return!0;for(o=r.length-1;0<=o;o--)if(s.is(r[o],a))return!0}return!1},matchesUnInheritedFormatSelector:gm},Eg=Ge.hasAttribute("data-mce-bookmark"),Ng=Ge.hasAttribute("data-mce-bogus"),Sg=Ge.hasAttributeValue("data-mce-bogus","all"),kg=function(e){return function(e){var t,n=0;if(Em(e,e))return!1;if(!(t=e.firstChild))return!0;var r=new yi(t,e);do{if(Sg(t))t=r.next(!0);else if(Ng(t))t=r.next();else if(Ge.isBr(t))n++,t=r.next();else{if(Em(e,t))return!1;t=r.next()}}while(t);return n<=1}(e.dom())},Tg=function(t,n,e,r){void 0===r&&(r=!0);var o=Mm(n,t.getBody(),e.dom()),i=ya(e,d(Dm,t),function(t){return function(e){return e.dom()===t}}(t.getBody())),a=Bm(e,o,function(e,t){return kt(e.schema.getTextInlineElements(),ie(t))}(t,e));t.dom.isEmpty(t.getBody())?(t.setContent(""),t.selection.setCursorLocation()):i.bind(_m).fold(function(){r&&Rm(t,n,a)},function(e){r&&Rm(t,n,k.some(e))})},Ag=cu,Mg="_mce_caret",Rg={},Dg=kn.filter,_g=kn.each;Wm=function(e){var t,n,r=e.selection.getRng();t=Ge.matchNodeNames(["pre"]),r.collapsed||(n=e.selection.getSelectedBlocks(),_g(Dg(Dg(n,t),function(e){return t(e.previousSibling)&&-1!==kn.indexOf(n,e.previousSibling)}),function(e){!function(e,t){vi(t).remove(),vi(e).append("<br><br>").append(t.childNodes)}(e.previousSibling,e)}))},Rg[$m="pre"]||(Rg[$m]=[]),Rg[$m].push(Wm);function Bg(o){this.compare=function(e,t){if(e.nodeName!==t.nodeName)return!1;function n(n){var r={};return Gg(o.getAttribs(n),function(e){var t=e.nodeName.toLowerCase();0!==t.indexOf("_")&&"style"!==t&&0!==t.indexOf("data-")&&(r[t]=o.getAttrib(n,t))}),r}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(void 0===(n=t[r]))return!1;if(e[r]!==n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0}return!!r(n(e),n(t))&&(!!r(o.parseStyle(o.getAttrib(e,"style")),o.parseStyle(o.getAttrib(t,"style")))&&(!Fc(e)&&!Fc(t)))}}function Og(e,t,n){return e.isChildOf(t,n)&&t!==n&&!e.isBlock(n)}function Hg(e,t,n){var r,o,i;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],Ge.isElement(r)&&(i=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[i<o?i:o]),Ge.isText(r)&&n&&o>=r.nodeValue.length&&(r=new yi(r,e.getBody()).next()||r),Ge.isText(r)&&!n&&0===o&&(r=new yi(r,e.getBody()).prev()||r),r}function Pg(e,t,n,r){var o=e.create(n,r);return t.parentNode.insertBefore(o,t),o.appendChild(t),o}function Lg(e,t,n,r,o){var i=yt.fromDom(t),a=yt.fromDom(e.create(r,o)),u=n?Me(i):Ae(i);return zi(a,u),n?(Ci(i,a),xi(a,i)):(wi(i,a),Di(a,i)),a.dom()}function Vg(e,t,n,r){return!(t=jc.getNonWhiteSpaceSibling(t,n,r))||"BR"===t.nodeName||e.isBlock(t)}function Ig(e,r,o,i,a){var t,n,u,s=e.dom;if(!function(e,t,n){return!!Zg(t,n.inline)||(!!Zg(t,n.block)||(n.selector?Ge.isElement(t)&&e.is(t,n.selector):void 0))}(s,i,r)&&!function(e,t){return t.links&&"A"===e.tagName}(i,r))return!1;if("all"!==r.remove)for(Qg(r.styles,function(e,t){e=jc.normalizeStyleValue(s,jc.replaceVars(e,o),t),"number"==typeof t&&(t=e,a=0),!r.remove_similar&&a&&!Zg(jc.getStyle(s,a,t),e)||s.setStyle(i,t,""),u=1}),u&&""===s.getAttrib(i,"style")&&(i.removeAttribute("style"),i.removeAttribute("data-mce-style")),Qg(r.attributes,function(e,t){var n;if(e=jc.replaceVars(e,o),"number"==typeof t&&(t=e,a=0),r.remove_similar||!a||Zg(s.getAttrib(a,t),e)){if("class"===t&&(e=s.getAttrib(i,t))&&(n="",Qg(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(n+=(n?" ":"")+e)}),n))return void s.setAttrib(i,t,n);"class"===t&&i.removeAttribute("className"),Jg.test(t)&&i.removeAttribute("data-mce-"+t),i.removeAttribute(t)}}),Qg(r.classes,function(e){e=jc.replaceVars(e,o),a&&!s.hasClass(a,e)||s.removeClass(i,e)}),n=s.getAttribs(i),t=0;t<n.length;t++){var c=n[t].nodeName;if(0!==c.indexOf("_")&&0!==c.indexOf("data-"))return!1}return"none"!==r.remove?(function(t,e,n){var r,o=e.parentNode,i=t.dom,a=mf(t);n.block&&(a?o===i.getRoot()&&(n.list_block&&Zg(e,n.list_block)||Qg(Mn.grep(e.childNodes),function(e){jc.isValid(t,a,e.nodeName.toLowerCase())?r?r.appendChild(e):(r=Pg(i,e,a),i.setAttribs(r,t.settings.forced_root_block_attrs)):r=0})):i.isBlock(e)&&!i.isBlock(o)&&(Vg(i,e,!1)||Vg(i,e.firstChild,!0,1)||e.insertBefore(i.create("br"),e.firstChild),Vg(i,e,!0)||Vg(i,e.lastChild,!1,1)||e.appendChild(i.create("br")))),n.selector&&n.inline&&!Zg(n.inline,e)||i.remove(e,1)}(e,i,r),!0):void 0}function Fg(e){return e&&1===e.nodeType&&!Fc(e)&&!rs(e)&&!Ge.isBogus(e)}function Ug(e,t){var n;for(n=e;n;n=n[t]){if(3===n.nodeType&&0!==n.nodeValue.length)return e;if(1===n.nodeType&&!Fc(n))return n}return e}function jg(e,t,n){var r,o,i=new Bg(e);if(t&&n&&(t=Ug(t,"previousSibling"),n=Ug(n,"nextSibling"),i.compare(t,n))){for(r=t.nextSibling;r&&r!==n;)r=(o=r).nextSibling,t.appendChild(o);return e.remove(n),Mn.each(Mn.grep(n.childNodes),function(e){t.appendChild(e)}),t}return n}function qg(n,e){return d(function(e,t){return!(!t||!jc.getStyle(n,t,e))},e)}function $g(r,e,t){return d(function(e,t,n){r.setStyle(n,e,t),""===n.getAttribute("style")&&n.removeAttribute("style"),op(r,n)},e,t)}function Wg(e,t){var n;1===t.nodeType&&t.parentNode&&1===t.parentNode.nodeType&&(n=jc.getTextDecoration(e,t.parentNode),e.getStyle(t,"color")&&n?e.setStyle(t,"text-decoration",n):e.getStyle(t,"text-decoration")===n&&e.setStyle(t,"text-decoration",null))}function Kg(t){var n=Ds.fromRangeStart(t),r=Ds.fromRangeEnd(t),o=t.commonAncestorContainer;return Pc.fromPosition(!1,o,r).map(function(e){return!Cs(n,r,o)&&Cs(n,e,o)?function(e,t,n,r){var o=j.document.createRange();return o.setStart(e,t),o.setEnd(n,r),o}(n.container(),n.offset(),e.container(),e.offset()):t}).getOr(t)}function Xg(e,t,n,r,o){return null===t.get()&&function(t,n){var r=Je({});t.set({}),n.on("NodeChange",function(e){gp(n,e.element,r,t.get())})}(t,e),function(e,t,n,r){var o=e.get();z(t.split(","),function(e){o[e]||(o[e]={similar:r,callbacks:[]}),o[e].callbacks.push(n)}),e.set(o)}(t,n,r,o),{unbind:function(){return function(e,t,n){var r=e.get();z(t.split(","),function(e){r[e].callbacks=y(r[e].callbacks,function(e){return e!==n}),0===r[e].callbacks.length&&delete r[e]}),e.set(r)}(t,n,r)}}}var Yg=function(e,t){_g(Rg[e],function(e){e(t)})},Gg=Mn.each,Jg=/^(src|href|style)$/,Qg=Mn.each,Zg=jc.isEq,ep=Ig,tp=function(a,n,u,e,r){function i(e){var t=function(n,e,r,o,i){var a;return Qg(jc.getParents(n.dom,e.parentNode).reverse(),function(e){var t;a||"_start"===e.id||"_end"===e.id||(t=zg.matchNode(n,e,r,o,i))&&!1!==t.split&&(a=e)}),a}(a,e,n,u,r);return function(e,t,n,r,o,i,a,u){var s,c,l,f,d,h,m=e.dom;if(n){for(h=n.parentNode,s=r.parentNode;s&&s!==h;s=s.parentNode){for(c=m.clone(s,!1),d=0;d<t.length;d++)if(Ig(e,t[d],u,c,c)){c=0;break}c&&(l&&c.appendChild(l),f=f||c,l=c)}!i||a.mixed&&m.isBlock(n)||(r=m.split(n,r)),l&&(o.parentNode.insertBefore(l,o),f.appendChild(o))}return r}(a,l,t,e,e,!0,f,u)}function s(e){var t=h.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return function(e){return Fc(e)&&Ge.isElement(e)&&("_start"===e.id||"_end"===e.id)}(n)&&(n=n[e?"firstChild":"lastChild"]),Ge.isText(n)&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),h.remove(t,!0),n}function t(e){var t,n,r=e.commonAncestorContainer;if(e=Xc(a,e,l,!0),f.split){if(e=Cm(e),(t=Hg(a,e,!0))!==(n=Hg(a,e))){if(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"===t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&function(e){return/^(TH|TD)$/.test(e.nodeName)}(n)&&n.firstChild&&(n=n.firstChild||n),Og(h,t,n)){var o=k.from(t.firstChild).getOr(t);return i(Lg(h,o,!0,"span",{id:"_start","data-mce-type":"bookmark"})),void s(!0)}if(Og(h,n,t)){o=k.from(n.lastChild).getOr(n);return i(Lg(h,o,!1,"span",{id:"_end","data-mce-type":"bookmark"})),void s(!1)}t=Pg(h,t,"span",{id:"_start","data-mce-type":"bookmark"}),n=Pg(h,n,"span",{id:"_end","data-mce-type":"bookmark"}),i(t),i(n),t=s(!0),n=s()}else t=n=i(t);e.startContainer=t.parentNode?t.parentNode:t,e.startOffset=h.nodeIndex(t),e.endContainer=n.parentNode?n.parentNode:n,e.endOffset=h.nodeIndex(n)+1}Gc(h,e,function(e){Qg(e,function(e){g(e),Ge.isElement(e)&&"underline"===a.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===jc.getTextDecoration(h,e.parentNode)&&Ig(a,{deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var o,c,l=a.formatter.get(n),f=l[0],d=!0,h=a.dom,m=a.selection,g=function(e){var t,n,r,o,i;if(Ge.isElement(e)&&h.getContentEditable(e)&&(o=d,d="true"===h.getContentEditable(e),i=!0),t=Mn.grep(e.childNodes),d&&!i)for(n=0,r=l.length;n<r&&!Ig(a,l[n],u,e,e);n++);if(f.deep&&t.length){for(n=0,r=t.length;n<r;n++)g(t[n]);i&&(d=o)}};if(e)e.nodeType?((c=h.createRng()).setStartBefore(e),c.setEndAfter(e),t(c)):t(e);else if("false"!==h.getContentEditable(m.getNode()))m.isCollapsed()&&f.inline&&!h.select("td[data-mce-selected],th[data-mce-selected]").length?function(e,t,n,r){var o,i,a,u,s,c,l,f=e.dom,d=e.selection,h=[],m=d.getRng();for(o=m.startContainer,i=m.startOffset,3===(s=o).nodeType&&(i!==o.nodeValue.length&&(u=!0),s=s.parentNode);s;){if(zg.matchNode(e,s,t,n,r)){c=s;break}s.nextSibling&&(u=!0),h.push(s),s=s.parentNode}if(c)if(u){a=d.getBookmark(),m.collapse(!0);var g=Xc(e,m,e.formatter.get(t),!0);g=Cm(g),e.formatter.remove(t,n,g),d.moveToBookmark(a)}else{l=os(e.getBody(),c);var p=Pm(!1).dom(),v=Um(h,p);Im(e,p,l||c),Lm(e,l,!1),d.setCursorLocation(v,1),f.isEmpty(c)&&f.remove(c)}}(a,n,u,r):(o=Vs.getPersistentBookmark(a.selection,!0),t(m.getRng()),m.moveToBookmark(o),f.inline&&zg.match(a,n,u,m.getStart())&&jc.moveStart(h,m,m.getRng()),a.nodeChanged());else{e=m.getNode();for(var p=0,v=l.length;p<v&&(!l[p].ceFalseOverride||!Ig(a,l[p],u,e,e));p++);}},np=Mn.each,rp=function(e,t,n){np(e.childNodes,function(e){Fg(e)&&(t(e)&&n(e),e.hasChildNodes()&&rp(e,t,n))})},op=function(e,t){"SPAN"===t.nodeName&&0===e.getAttribs(t).length&&e.remove(t,!0)},ip=function(n,e,r,o){np(e,function(t){np(n.dom.select(t.inline,o),function(e){Fg(e)&&ep(n,t,r,e,t.exact?e:null)}),function(r,e,t){if(e.clear_child_styles){var n=e.links?"*:not(a)":"*";np(r.select(n,t),function(n){Fg(n)&&np(e.styles,function(e,t){r.setStyle(n,t,"")})})}}(n.dom,t,o)})},ap=function(e,t,n,r){(t.styles.color||t.styles.textDecoration)&&(Mn.walk(r,d(Wg,e),"childNodes"),Wg(e,r))},up=function(e,t,n,r){t.styles&&t.styles.backgroundColor&&rp(r,qg(e,"fontSize"),$g(e,"backgroundColor",jc.replaceVars(t.styles.backgroundColor,n)))},sp=function(e,t,n,r){"sub"!==t.inline&&"sup"!==t.inline||(rp(r,qg(e,"fontSize"),$g(e,"fontSize","")),e.remove(e.select("sup"===t.inline?"sub":"sup",r),!0))},cp=function(e,t,n,r){r&&!1!==t.merge_siblings&&(r=jg(e,jc.getNonWhiteSpaceSibling(r),r),r=jg(e,r,jc.getNonWhiteSpaceSibling(r,!0)))},lp=function(t,n,r,o,i){zg.matchNode(t,i.parentNode,r,o)&&ep(t,n,o,i)||n.merge_with_parents&&t.dom.getParent(i.parentNode,function(e){if(zg.matchNode(t,e,r,o))return ep(t,n,o,i),!0})},fp=function(e){return e.collapsed?e:Kg(e)},dp=Mn.each,hp=function(m,g,p,r){function v(n,e){if(e=e||C,n){if(e.onformat&&e.onformat(n,e,p,r),dp(e.styles,function(e,t){i.setStyle(n,t,jc.replaceVars(e,p))}),e.styles){var t=i.getAttrib(n,"style");t&&n.setAttribute("data-mce-style",t)}dp(e.attributes,function(e,t){i.setAttrib(n,t,jc.replaceVars(e,p))}),dp(e.classes,function(e){e=jc.replaceVars(e,p),i.hasClass(n,e)||i.addClass(n,e)})}}function y(e,t){var n=!1;return!!C.selector&&(dp(e,function(e){if(!("collapsed"in e&&e.collapsed!==o))return i.is(t,e.selector)&&!rs(t)?(v(t,e),!(n=!0)):void 0}),n)}function e(s,e,t,c){var l,f,d=[],h=!0;l=C.inline||C.block,f=s.create(l),v(f),Gc(s,e,function(e){var a,u=function(e){var t,n,r,o;if(o=h,t=e.nodeName.toLowerCase(),n=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&s.getContentEditable(e)&&(o=h,h="true"===s.getContentEditable(e),r=!0),jc.isEq(t,"br"))return a=0,void(C.block&&s.remove(e));if(C.wrapper&&zg.matchNode(m,e,g,p))a=0;else{if(h&&!r&&C.block&&!C.wrapper&&jc.isTextBlock(m,t)&&jc.isValid(m,n,l))return e=s.rename(e,l),v(e),d.push(e),void(a=0);if(C.selector){var i=y(b,e);if(!C.inline||i)return void(a=0)}!h||r||!jc.isValid(m,l,t)||!jc.isValid(m,n,l)||!c&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||rs(e)||C.inline&&s.isBlock(e)?(a=0,dp(Mn.grep(e.childNodes),u),r&&(h=o),a=0):(a||(a=s.clone(f,!1),e.parentNode.insertBefore(a,e),d.push(a)),a.appendChild(e))}};dp(e,u)}),!0===C.links&&dp(d,function(e){var t=function(e){"A"===e.nodeName&&v(e,C),dp(Mn.grep(e.childNodes),t)};t(e)}),dp(d,function(e){function t(e){var t=!1;return dp(e.childNodes,function(e){if(function(e){return e&&1===e.nodeType&&!Fc(e)&&!rs(e)&&!Ge.isBogus(e)}(e))return t=e,!1}),t}var n,r,o,i,a;(r=0,dp(e.childNodes,function(e){jc.isWhiteSpaceNode(e)||Fc(e)||r++}),n=r,!(1<d.length)&&s.isBlock(e)||0!==n)?(C.inline||C.wrapper)&&(C.exact||1!==n||((i=t(o=e))&&!Fc(i)&&zg.matchName(s,i,C)&&(a=s.clone(i,!1),v(a),s.replace(a,o,!0),s.remove(i,1)),e=a||o),ip(m,b,p,e),lp(m,C,g,p,e),up(s,C,p,e),sp(s,C,p,e),cp(s,C,p,e)):s.remove(e,1)})}var t,n,b=m.formatter.get(g),C=b[0],o=!r&&m.selection.isCollapsed(),i=m.dom,a=m.selection;if("false"!==i.getContentEditable(a.getNode())){if(C){if(r)r.nodeType?y(b,r)||((n=i.createRng()).setStartBefore(r),n.setEndAfter(r),e(i,Xc(m,n,b),0,!0)):e(i,r,0,!0);else if(o&&C.inline&&!i.select("td[data-mce-selected],th[data-mce-selected]").length)!function(e,t,n){var r,o,i,a,u,s,c=e.selection;a=(r=c.getRng()).startOffset,s=r.startContainer.nodeValue,(o=os(e.getBody(),c.getStart()))&&(i=Hm(o));var l=/[^\s\u00a0\u00ad\u200b\ufeff]/;s&&0<a&&a<s.length&&l.test(s.charAt(a))&&l.test(s.charAt(a-1))?(u=c.getBookmark(),r.collapse(!0),r=Xc(e,r,e.formatter.get(t)),r=Cm(r),e.formatter.apply(t,n,r),c.moveToBookmark(u)):(o&&i.nodeValue===Ag||(i=(o=function(e,t){return e.importNode(t,!0)}(e.getDoc(),Pm(!0).dom())).firstChild,r.insertNode(o),a=1),e.formatter.apply(t,n,o),c.setCursorLocation(i,a))}(m,g,p);else{var u=m.selection.getNode();m.settings.forced_root_block||!b[0].defaultBlock||i.getParent(u,i.isBlock)||hp(m,b[0].defaultBlock),m.selection.setRng(fp(m.selection.getRng())),t=Vs.getPersistentBookmark(m.selection,!0),e(i,Xc(m,a.getRng(),b)),C.styles&&ap(i,C,p,u),a.moveToBookmark(t),jc.moveStart(i,a,a.getRng()),m.nodeChanged()}Yg(g,m)}}else{r=a.getNode();for(var s=0,c=b.length;s<c;s++)if(b[s].ceFalseOverride&&i.is(r,b[s].selector))return void v(r,b[s])}},mp={applyFormat:hp},gp=function(r,e,t,n){var o=Et(t.get()),i={},a={},u=y(jc.getParents(r.dom,e),function(e){return 1===e.nodeType&&!e.getAttribute("data-mce-bogus")});ue(n,function(e,n){Mn.each(u,function(t){return r.formatter.matchNode(t,n,{},e.similar)?(-1===o.indexOf(n)&&(z(e.callbacks,function(e){e(!0,{node:t,format:n,parents:u})}),i[n]=e.callbacks),a[n]=e.callbacks,!1):!zg.matchesUnInheritedFormatSelector(r,t,n)&&void 0})});var s=pp(t.get(),a,e,u);t.set(G(G({},i),s))},pp=function(e,n,r,o){return ce(e,function(e,t){return!!kt(n,t)||(z(e,function(e){e(!1,{node:r,format:t,parents:o})}),!1)}).t},vp=function(r){var t={valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"},preview:"font-family font-size"}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"},preview:!1},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"},preview:"font-family font-size"}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"},preview:"font-family font-size"}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div",preview:"font-family font-size"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},fontname:{inline:"span",toggle:!1,styles:{fontFamily:"%value"},clear_child_styles:!0},fontsize:{inline:"span",toggle:!1,styles:{fontSize:"%value"},clear_child_styles:!0},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:!0,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(n,e,t){Mn.each(t,function(e,t){r.setAttrib(n,t,e)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]};return Mn.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){t[e]={block:e,remove:"all"}}),t};function yp(e,t){function s(e){var t;return r="string"==typeof e?{name:e,classes:[],attrs:{}}:e,function(e,t){t.classes.length&&Rp.addClass(e,t.classes.join(" ")),Rp.setAttribs(e,t.attrs)}(t=Rp.create(r.name),r),t}var n,r,o,c=t&&t.schema||pr({}),l=function(n,e,t){var r,o,i,a=0<e.length&&e[0],u=a&&a.name;if(i=function(e,t){var n="string"!=typeof e?e.nodeName.toLowerCase():e,r=c.getElementRule(n),o=r&&r.parentsRequired;return!(!o||!o.length)&&(t&&-1!==Mn.inArray(o,t)?t:o[0])}(n,u))u===i?(o=e[0],e=e.slice(1)):o=i;else if(a)o=e[0],e=e.slice(1);else if(!t)return n;return o&&(r=s(o)).appendChild(n),t&&(r||(r=Rp.create("div")).appendChild(n),Mn.each(t,function(e){var t=s(e);r.insertBefore(t,n)})),l(r,e,o&&o.siblings)};return e&&e.length?(r=e[0],n=s(r),(o=Rp.create("div")).appendChild(l(n,e.slice(1),r.siblings)),o):""}function bp(e){var t,a={classes:[],attrs:{}};return"*"!==(e=a.selector=Mn.trim(e))&&(t=e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g,function(e,t,n,r,o){switch(t){case"#":a.attrs.id=n;break;case".":a.classes.push(n);break;case":":-1!==Mn.inArray("checked disabled enabled read-only required".split(" "),n)&&(a.attrs[n]=n)}if("["===r){var i=o.match(/([\w\-]+)(?:\=\"([^\"]+))?/);i&&(a.attrs[i[1]]=i[2])}return""})),a.name=t||"div",a}function Cp(e){var t=function o(e){var n={},r=function(e,t){e&&("string"!=typeof e?Mn.each(e,function(e,t){r(t,e)}):(A(t)||(t=[t]),Mn.each(t,function(e){"undefined"==typeof e.deep&&(e.deep=!e.selector),"undefined"==typeof e.split&&(e.split=!e.selector||e.inline),"undefined"==typeof e.remove&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),n[e]=t))};return r(vp(e.dom)),r(e.settings.formats),{get:function(e){return e?n[e]:n},has:function(e){return kt(n,e)},register:r,unregister:function(e){return e&&n[e]&&delete n[e],n}}}(e),n=Je(null);return Op(e),jm(e),{get:t.get,has:t.has,register:t.register,unregister:t.unregister,apply:d(mp.applyFormat,e),remove:d(tp,e),toggle:d(Bp,e,t),match:d(zg.match,e),matchAll:d(zg.matchAll,e),matchNode:d(zg.matchNode,e),canApply:d(zg.canApply,e),formatChanged:d(Xg,e,n),getCssText:d(_p,e)}}function wp(e,i,a){e.addNodeFilter("font",function(e){z(e,function(e){var t=i.parse(e.attr("style")),n=e.attr("color"),r=e.attr("face"),o=e.attr("size");n&&(t.color=n),r&&(t["font-family"]=r),o&&(t["font-size"]=a[parseInt(e.attr("size"),10)-1]),e.name="span",e.attr("style",i.serialize(t)),function(t,e){z(e,function(e){t.attr(e,null)})}(e,["color","face","size"])})})}function xp(e,t){var n=xr();t.convert_fonts_to_spans&&wp(e,n,Mn.explode(t.font_size_legacy_values)),function(e,n){e.addNodeFilter("strike",function(e){z(e,function(e){var t=n.parse(e.attr("style"));t["text-decoration"]="line-through",e.name="span",e.attr("style",n.serialize(t))})})}(e,n)}function zp(e,t,n,r){(e.padd_empty_with_br||t.insert)&&n[r.name]?r.empty().append(new ul("br",1)).shortEnded=!0:r.empty().append(new ul("#text",3)).value="\xa0"}function Ep(t,e,n,r){return r.isEmpty(e,n,function(e){return function(e,t){var n=e.getElementRule(t.name);return n&&n.paddEmpty}(t,e)})}function Np(T,A){void 0===A&&(A=pr());var M={},R=[],D={},_={};(T=T||{}).validate=!("validate"in T)||T.validate,T.root_name=T.root_name||"body";var B=function(e){var t,n,r;(n=e.name)in M&&((r=D[n])?r.push(e):D[n]=[e]),t=R.length;for(;t--;)(n=R[t].name)in e.attributes.map&&((r=_[n])?r.push(e):_[n]=[e]);return e},e={schema:A,addAttributeFilter:function(e,n){Up(jp(e),function(e){var t;for(t=0;t<R.length;t++)if(R[t].name===e)return void R[t].callbacks.push(n);R.push({name:e,callbacks:[n]})})},getAttributeFilters:function(){return[].concat(R)},addNodeFilter:function(e,n){Up(jp(e),function(e){var t=M[e];t||(M[e]=t=[]),t.push(n)})},getNodeFilters:function(){var e=[];for(var t in M)M.hasOwnProperty(t)&&e.push({name:t,callbacks:M[t]});return e},filterNode:B,parse:function(e,a){var t,n,r,o,i,u,s,c,l,f,d,h=[];a=a||{},D={},_={},l=qp(Fp("script,style,head,html,body,title,meta,param"),A.getBlockElements());var m,g=A.getNonEmptyElements(),p=A.children,v=T.validate,y="forced_root_block"in a?a.forced_root_block:T.forced_root_block,b=!1===(m=y)?"":!0===m?"p":m,C=A.getWhiteSpaceElements(),w=/^[ \t\r\n]+/,x=/[ \t\r\n]+$/,z=/[ \t\r\n]+/g,E=/^[ \t\r\n]+$/;f=C.hasOwnProperty(a.context)||C.hasOwnProperty(T.root_name);function N(e){var t,n,r,o,i=A.getBlockElements();for(t=e.prev;t&&3===t.type;){if(0<(r=t.value.replace(x,"")).length)return void(t.value=r);if(n=t.next){if(3===n.type&&n.value.length){t=t.prev;continue}if(!i[n.name]&&"script"!==n.name&&"style"!==n.name){t=t.prev;continue}}o=t.prev,t.remove(),t=o}}var S=function(e,t){var n,r=new ul(e,t);return e in M&&((n=D[e])?n.push(r):D[e]=[r]),r};t=of({validate:v,allow_script_urls:T.allow_script_urls,allow_conditional_comments:T.allow_conditional_comments,self_closing_elements:function(e){var t,n={};for(t in e)"li"!==t&&"p"!==t&&(n[t]=e[t]);return n}(A.getSelfClosingElements()),cdata:function(e){d.append(S("#cdata",4)).value=e},text:function(e,t){var n;f||(e=e.replace(z," "),function(e,t){return e&&(t[e.name]||"br"===e.name)}(d.lastChild,l)&&(e=e.replace(w,""))),0!==e.length&&((n=S("#text",3)).raw=!!t,d.append(n).value=e)},comment:function(e){d.append(S("#comment",8)).value=e},pi:function(e,t){d.append(S(e,7)).value=t,N(d)},doctype:function(e){d.append(S("#doctype",10)).value=e,N(d)},start:function(e,t,n){var r,o,i,a,u;if(i=v?A.getElementRule(e):{}){for((r=S(i.outputName||e,1)).attributes=t,r.shortEnded=n,d.append(r),(u=p[d.name])&&p[r.name]&&!u[r.name]&&h.push(r),o=R.length;o--;)(a=R[o].name)in t.map&&((s=_[a])?s.push(r):_[a]=[r]);l[e]&&N(r),n||(d=r),!f&&C[e]&&(f=!0)}},end:function(e){var t,n,r,o,i;if(n=v?A.getElementRule(e):{}){if(l[e]&&!f){if((t=d.firstChild)&&3===t.type)if(0<(r=t.value.replace(w,"")).length)t.value=r,t=t.next;else for(o=t.next,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.next,0!==r.length&&!E.test(r)||(t.remove(),t=o),t=o;if((t=d.lastChild)&&3===t.type)if(0<(r=t.value.replace(x,"")).length)t.value=r,t=t.prev;else for(o=t.prev,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.prev,0!==r.length&&!E.test(r)||(t.remove(),t=o),t=o}if(f&&C[e]&&(f=!1),n.removeEmpty&&Ep(A,g,C,d)&&!d.attr("name")&&!d.attr("id"))return i=d.parent,l[d.name]?d.empty().remove():d.unwrap(),void(d=i);n.paddEmpty&&(function(e){return Ip(e,"#text")&&"\xa0"===e.firstChild.value}(d)||Ep(A,g,C,d))&&zp(T,a,l,d),d=d.parent}}},A);var k=d=new ul(a.context||T.root_name,11);if(t.parse(e),v&&h.length&&(a.context?a.invalid=!0:function(e){var t,n,r,o,i,a,u,s,c,l,f,d,h,m,g,p;for(d=Fp("tr,td,th,tbody,thead,tfoot,table"),l=A.getNonEmptyElements(),f=A.getWhiteSpaceElements(),h=A.getTextBlockElements(),m=A.getSpecialElements(),t=0;t<e.length;t++)if((n=e[t]).parent&&!n.fixed)if(h[n.name]&&"li"===n.parent.name){for(g=n.next;g&&h[g.name];)g.name="li",g.fixed=!0,n.parent.insert(g,n.parent),g=g.next;n.unwrap(n)}else{for(o=[n],r=n.parent;r&&!A.isValidChild(r.name,n.name)&&!d[r.name];r=r.parent)o.push(r);if(r&&1<o.length){for(o.reverse(),i=a=B(o[0].clone()),c=0;c<o.length-1;c++){for(A.isValidChild(a.name,o[c].name)?(u=B(o[c].clone()),a.append(u)):u=a,s=o[c].firstChild;s&&s!==o[c+1];)p=s.next,u.append(s),s=p;a=u}Ep(A,l,f,i)?r.insert(n,o[0],!0):(r.insert(i,o[0],!0),r.insert(n,i)),r=o[0],(Ep(A,l,f,r)||Ip(r,"br"))&&r.empty().remove()}else if(n.parent){if("li"===n.name){if((g=n.prev)&&("ul"===g.name||"ul"===g.name)){g.append(n);continue}if((g=n.next)&&("ul"===g.name||"ul"===g.name)){g.insert(n,g.firstChild,!0);continue}n.wrap(B(new ul("ul",1)));continue}A.isValidChild(n.parent.name,"div")&&A.isValidChild("div",n.name)?n.wrap(B(new ul("div",1))):m[n.name]?n.empty().remove():n.unwrap()}}}(h)),b&&("body"===k.name||a.isRootContent)&&function(){function e(e){e&&((r=e.firstChild)&&3===r.type&&(r.value=r.value.replace(w,"")),(r=e.lastChild)&&3===r.type&&(r.value=r.value.replace(x,"")))}var t,n,r=k.firstChild;if(A.isValidChild(k.name,b.toLowerCase())){for(;r;)t=r.next,3===r.type||1===r.type&&"p"!==r.name&&!l[r.name]&&!r.attr("data-mce-type")?(n||((n=S(b,1)).attr(T.forced_root_block_attrs),k.insert(n,r)),n.append(r)):(e(n),n=null),r=t;e(n)}}(),!a.invalid){for(c in D)if(D.hasOwnProperty(c)){for(s=M[c],i=(n=D[c]).length;i--;)n[i].parent||n.splice(i,1);for(r=0,o=s.length;r<o;r++)s[r](n,c,a)}for(r=0,o=R.length;r<o;r++)if((s=R[r]).name in _){for(i=(n=_[s.name]).length;i--;)n[i].parent||n.splice(i,1);for(i=0,u=s.callbacks.length;i<u;i++)s.callbacks[i](n,s.name,a)}}return k}};return function(e,g){var p=e.schema;g.remove_trailing_brs&&e.addNodeFilter("br",function(e,t,n){var r,o,i,a,u,s,c,l,f=e.length,d=Mn.extend({},p.getBlockElements()),h=p.getNonEmptyElements(),m=p.getNonEmptyElements();for(d.body=1,r=0;r<f;r++)if(i=(o=e[r]).parent,d[o.parent.name]&&o===i.lastChild){for(u=o.prev;u;){if("span"!==(s=u.name)||"bookmark"!==u.attr("data-mce-type")){if("br"!==s)break;if("br"===s){o=null;break}}u=u.prev}o&&(o.remove(),Ep(p,h,m,i)&&(c=p.getElementRule(i.name))&&(c.removeEmpty?i.remove():c.paddEmpty&&zp(g,n,d,i)))}else{for(a=o;i&&i.firstChild===a&&i.lastChild===a&&!d[(a=i).name];)i=i.parent;a===i&&!0!==g.padd_empty_with_br&&((l=new ul("#text",3)).value="\xa0",o.replace(l))}}),e.addAttributeFilter("href",function(e){var t,n,r,o=e.length;if(!g.allow_unsafe_link_target)for(;o--;)"a"===(t=e[o]).name&&"_blank"===t.attr("target")&&t.attr("rel",(n=t.attr("rel"),void 0,r=n?Mn.trim(n):"",/\b(noopener)\b/g.test(r)?r:r.split(" ").filter(function(e){return 0<e.length}).concat(["noopener"]).sort().join(" ")))}),g.allow_html_in_named_anchor||e.addAttributeFilter("id,name",function(e){for(var t,n,r,o,i=e.length;i--;)if("a"===(o=e[i]).name&&o.firstChild&&!o.attr("href"))for(r=o.parent,t=o.lastChild;n=t.prev,r.insert(t,o),t=n;);}),g.fix_list_elements&&e.addNodeFilter("ul,ol",function(e){for(var t,n,r=e.length;r--;)if("ul"===(n=(t=e[r]).parent).name||"ol"===n.name)if(t.prev&&"li"===t.prev.name)t.prev.append(t);else{var o=new ul("li",1);o.attr("style","list-style-type: none"),t.wrap(o)}}),g.validate&&p.getValidClasses()&&e.addAttributeFilter("class",function(e){for(var t,n,r,o,i,a,u,s=e.length,c=p.getValidClasses();s--;){for(n=(t=e[s]).attr("class").split(" "),i="",r=0;r<n.length;r++)o=n[r],u=!1,(a=c["*"])&&a[o]&&(u=!0),a=c[t.name],!u&&a&&a[o]&&(u=!0),u&&(i&&(i+=" "),i+=o);i.length||(i=null),t.attr("class",i)}})}(e,T),Vp(e,T),e}function Sp(e,t,n){-1===Mn.inArray(t,n)&&(e.addAttributeFilter(n,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),t.push(n))}function kp(e,t,n,r,o){return function(e,t,n){return t.no_events||!e?n:ld(e,bd(t,{content:n})).content}(e,o,function(e,t,n){return pl(e,t).serialize(n)}(t,n,r))}function Tp(a,u){var s,c,l,e=["data-mce-selected"];return s=u&&u.dom?u.dom:Xi.DOM,c=u&&u.schema?u.schema:pr(a),a.entity_encoding=a.entity_encoding||"named",a.remove_trailing_brs=!("remove_trailing_brs"in a)||a.remove_trailing_brs,l=Np(a,c),Hp(l,a,s),{schema:c,addNodeFilter:l.addNodeFilter,addAttributeFilter:l.addAttributeFilter,serialize:function(e,t){var n=bd({format:"html"},t||{}),r=Lp(u,e,n),o=function(e,t,n){var r=lu(n.getInner?t.innerHTML:e.getOuterHTML(t));return n.selection||Wn(yt.fromDom(t))?r:Mn.trim(r)}(s,r,n),i=function(e,t,n){var r=n.selection?bd({forced_root_block:!1},n):n,o=e.parse(t,r);return Pp(o),o}(l,o,n);return"tree"===n.format?i:kp(u,a,c,i,n)},addRules:function(e){c.addValidElements(e)},setRules:function(e){c.setValidElements(e)},addTempAttr:d(Sp,l,e),getTempAttrs:function(){return e}}}function Ap(e,t){var n=Tp(e,t);return{schema:n.schema,addNodeFilter:n.addNodeFilter,addAttributeFilter:n.addAttributeFilter,serialize:n.serialize,addRules:n.addRules,setRules:n.setRules,addTempAttr:n.addTempAttr,getTempAttrs:n.getTempAttrs}}var Mp=Mn.each,Rp=Xi.DOM,Dp=function(e){return e&&"string"==typeof e?(e=(e=e.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g,"$1"),Mn.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/),function(e){var t=Mn.map(e.split(/(?:~\+|~|\+)/),bp),n=t.pop();return t.length&&(n.siblings=t),n}).reverse()):[]},_p=function(n,e){var t,r,o,i,a,u,s="";if(!1===(u=n.settings.preview_styles))return"";"string"!=typeof u&&(u="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow");function c(e){return e.replace(/%(\w+)/g,"")}if("string"==typeof e){if(!(e=n.formatter.get(e)))return;e=e[0]}return"preview"in e&&!1===(u=e.preview)?"":(t=e.block||e.inline||"span",r=(i=Dp(e.selector)).length?(i[0].name||(i[0].name=t),t=e.selector,yp(i,n)):yp([t],n),o=Rp.select(t,r)[0]||r.firstChild,Mp(e.styles,function(e,t){(e=c(e))&&Rp.setStyle(o,t,e)}),Mp(e.attributes,function(e,t){(e=c(e))&&Rp.setAttrib(o,t,e)}),Mp(e.classes,function(e){e=c(e),Rp.hasClass(o,e)||Rp.addClass(o,e)}),n.fire("PreviewFormats"),Rp.setStyles(r,{position:"absolute",left:-65535}),n.getBody().appendChild(r),a=Rp.getStyle(n.getBody(),"fontSize",!0),a=/px$/.test(a)?parseInt(a,10):0,Mp(u.split(" "),function(e){var t=Rp.getStyle(o,e,!0);if(!("background-color"===e&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(t)&&(t=Rp.getStyle(n.getBody(),e,!0),"#ffffff"===Rp.toHex(t).toLowerCase())||"color"===e&&"#000000"===Rp.toHex(t).toLowerCase())){if("font-size"===e&&/em|%$/.test(t)){if(0===a)return;t=parseFloat(t)/(/%$/.test(t)?100:1)*a+"px"}"border"===e&&t&&(s+="padding:0 2px;"),s+=e+":"+t+";"}}),n.fire("AfterPreviewFormats"),Rp.remove(r),s)},Bp=function(e,t,n,r,o){var i=t.get(n);!zg.match(e,n,r,o)||"toggle"in i[0]&&!i[0].toggle?mp.applyFormat(e,n,r,o):tp(e,n,r,o)},Op=function(e){e.addShortcut("meta+b","","Bold"),e.addShortcut("meta+i","","Italic"),e.addShortcut("meta+u","","Underline");for(var t=1;t<=6;t++)e.addShortcut("access+"+t,"",["FormatBlock",!1,"h"+t]);e.addShortcut("access+7","",["FormatBlock",!1,"p"]),e.addShortcut("access+8","",["FormatBlock",!1,"div"]),e.addShortcut("access+9","",["FormatBlock",!1,"address"])},Hp=function(t,s,c){t.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n,r=e.length;r--;)(n=e[r]).attr("tabindex",n.attr("data-mce-tabindex")),n.attr(t,null)}),t.addAttributeFilter("src,href,style",function(e,t){for(var n,r,o=e.length,i="data-mce-"+t,a=s.url_converter,u=s.url_converter_scope;o--;)(r=(n=e[o]).attr(i))!==undefined?(n.attr(t,0<r.length?r:null),n.attr(i,null)):(r=n.attr(t),"style"===t?r=c.serializeStyle(c.parseStyle(r),n.name):a&&(r=a.call(u,r,t,n.name)),n.attr(t,0<r.length?r:null))}),t.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)(n=(t=e[r]).attr("class"))&&(n=t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),t.attr("class",0<n.length?n:null))}),t.addAttributeFilter("data-mce-type",function(e,t,n){for(var r,o=e.length;o--;){if("bookmark"===(r=e[o]).attr("data-mce-type")&&!n.cleanup)k.from(r.firstChild).exists(function(e){return!su(e.value)})?r.unwrap():r.remove()}}),t.addNodeFilter("noscript",function(e){for(var t,n=e.length;n--;)(t=e[n].firstChild)&&(t.value=ir.decode(t.value))}),t.addNodeFilter("script,style",function(e,t){for(var n,r,o,i=e.length,a=function(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0<r.length&&(n.firstChild.value="// <![CDATA[\n"+a(r)+"\n// ]]>")):"xhtml"===s.element_format&&0<r.length&&(n.firstChild.value="\x3c!--\n"+a(r)+"\n--\x3e")}),t.addNodeFilter("#comment",function(e){for(var t,n=e.length;n--;)0===(t=e[n]).value.indexOf("[CDATA[")?(t.name="#cdata",t.type=4,t.value=t.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===t.value.indexOf("mce:protected ")&&(t.name="#text",t.type=3,t.raw=!0,t.value=unescape(t.value).substr(14))}),t.addNodeFilter("xml:namespace,input",function(e,t){for(var n,r=e.length;r--;)7===(n=e[r]).type?n.remove():1===n.type&&("input"!==t||n.attr("type")||n.attr("type","text"))}),t.addAttributeFilter("data-mce-type",function(e){z(e,function(e){"format-caret"===e.attr("data-mce-type")&&(e.isEmpty(t.schema.getNonEmptyElements())?e.remove():e.unwrap())})}),t.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)})},Pp=function(e){function t(e){return e&&"br"===e.name}var n,r;t(n=e.lastChild)&&t(r=n.prev)&&(n.remove(),r.remove())},Lp=function(e,t,n){return function(e,t){return e&&e.hasEventListeners("PreProcess")&&!t.no_events}(e,n)?function(e,t,n){var r,o,i,a=e.dom;return t=t.cloneNode(!0),(r=j.document.implementation).createHTMLDocument&&(o=r.createHTMLDocument(""),Mn.each("BODY"===t.nodeName?t.childNodes:[t],function(e){o.body.appendChild(o.importNode(e,!0))}),t="BODY"!==t.nodeName?o.body.firstChild:o.body,i=a.doc,a.doc=o),cd(e,bd(n,{node:t})),i&&(a.doc=i),t}(e,t,n):t},Vp=function(e,t){t.inline_styles&&xp(e,t)},Ip=function(e,t){return e&&e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.name===t},Fp=Mn.makeMap,Up=Mn.each,jp=Mn.explode,qp=Mn.extend;function $p(e){return{getBookmark:d(Vc,e),moveToBookmark:d(Ic,e)}}($p=$p||{}).isBookmarkNode=Fc;function Wp(r,a){var u,s,c,l,f,d,h,m,g,p,v,y,i,b,C,w,x,z=a.dom,E=Mn.each,N=a.getDoc(),S=j.document,k=Math.abs,T=Math.round,A=a.getBody();function M(e){return e&&("IMG"===e.nodeName||a.dom.is(e,"figure.image"))}function e(e){var t=e.target;!function(e,t){if("longpress"!==e.type&&0!==e.type.indexOf("touch"))return M(e.target)&&!Jm(e.clientX,e.clientY,t);var n=e.touches[0];return M(e.target)&&!Jm(n.clientX,n.clientY,t)}(e,a.selection.getRng())||e.isDefaultPrevented()||a.selection.select(t)}function R(e){return a.dom.is(e,"figure.image")?e.querySelector("img"):e}function D(e){var t=a.settings.object_resizing;return!1!==t&&!Nn.iOS&&("string"!=typeof t&&(t="table,img,figure.image,div"),"false"!==e.getAttribute("data-mce-resize")&&(e!==a.getBody()&&we(yt.fromDom(e),t)))}function _(e){var t,n,r,o;t=e.screenX-d,n=e.screenY-h,b=t*f[2]+p,C=n*f[3]+v,b=b<5?5:b,C=C<5?5:C,(M(u)&&!1!==a.settings.resize_img_proportional?!Ah.modifierPressed(e):Ah.modifierPressed(e)||M(u)&&f[2]*f[3]!=0)&&(k(t)>k(n)?(C=T(b*y),b=T(C/y)):(b=T(C/y),C=T(b*y))),z.setStyles(R(s),{width:b,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,z.setStyles(c,{left:r,top:o,display:"block"}),c.innerHTML=b+" × "+C,f[2]<0&&s.clientWidth<=b&&z.setStyle(s,"left",m+(p-b)),f[3]<0&&s.clientHeight<=C&&z.setStyle(s,"top",g+(v-C)),(t=A.scrollWidth-w)+(n=A.scrollHeight-x)!==0&&z.setStyles(c,{left:r-t,top:o-n}),i||(md(a,u,p,v),i=!0)}function n(e){function t(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)}var n;i||a.removed||(E(z.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"===e.type?e.target:r.getNode(),t(n=z.$(n).closest("table,img,figure.image,hr")[0],A)&&(L(),t(r.getStart(!0),n)&&t(r.getEnd(!0),n))?O(n):H())}function o(e){return Xp(function(e,t){for(;t&&t!==e;){if(Yp(t)||Xp(t))return t;t=t.parentNode}return null}(a.getBody(),e))}l={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var B=function(){i=!1;function e(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?z.setStyle(R(u),e,t):z.setAttrib(R(u),e,t))}e("width",b),e("height",C),z.unbind(N,"mousemove",_),z.unbind(N,"mouseup",B),S!==N&&(z.unbind(S,"mousemove",_),z.unbind(S,"mouseup",B)),z.remove(s),z.remove(c),O(u),gd(a,u,b,C),z.setAttrib(u,"style",z.getAttrib(u,"style")),a.nodeChanged()},O=function(e){var t,r,o,n,i;H(),P(),t=z.getPos(e,A),m=t.x,g=t.y,i=e.getBoundingClientRect(),r=i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,b=C=0),n=a.fire("ObjectSelected",{target:e}),D(e)&&!n.isDefaultPrevented()?E(l,function(t,e){var n;(n=z.get("mceResizeHandle"+e))&&z.remove(n),n=z.add(A,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),11===Nn.ie&&(n.contentEditable=!1),z.bind(n,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),function(e){d=e.screenX,h=e.screenY,p=R(u).clientWidth,v=R(u).clientHeight,y=v/p,(f=t).startPos={x:r*t[0]+m,y:o*t[1]+g},w=A.scrollWidth,x=A.scrollHeight,s=u.cloneNode(!0),z.addClass(s,"mce-clonedresizable"),z.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,z.setStyles(s,{left:m,top:g,margin:0}),s.removeAttribute("data-mce-selected"),A.appendChild(s),z.bind(N,"mousemove",_),z.bind(N,"mouseup",B),S!==N&&(z.bind(S,"mousemove",_),z.bind(S,"mouseup",B)),c=z.add(A,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},p+" × "+v)}(e)}),t.elm=n,z.setStyles(n,{left:r*t[0]+m-n.offsetWidth/2,top:o*t[1]+g-n.offsetHeight/2})}):H(),u.setAttribute("data-mce-selected","1")},H=function(){var e,t;for(e in P(),u&&u.removeAttribute("data-mce-selected"),l)(t=z.get("mceResizeHandle"+e))&&(z.unbind(t),z.remove(t))},P=function(){for(var e in l){var t=l[e];t.elm&&(z.unbind(t.elm),delete t.elm)}},L=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){L(),(Nn.browser.isIE()||Nn.browser.isEdge())&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||o(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(A,"mscontrolselect",function(e){function t(e){pn.setEditorTimeout(a,function(){a.selection.select(e)})}if(o(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&t(e.target))}));var t=pn.throttle(function(e){a.composing||n(e)});a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",H),a.on("contextmenu longpress",e,!0)}),a.on("remove",P),{isResizable:D,showResizeRect:O,hideResizeRect:H,updateResizeRect:n,destroy:function(){u=s=null}}}var Kp=$p,Xp=Ge.isContentEditableFalse,Yp=Ge.isContentEditableTrue;function Gp(e){var t=yt.fromDom(j.document),n=ki(t),r=function(e,t){var n=t.owner(e);return Vv(t,n)}(e,Iv),o=Hi(e),i=m(r,function(e,t){var n=Hi(t);return{left:e.left+n.left(),top:e.top+n.top()}},{left:0,top:0});return Oi(i.left+o.left()+n.left(),i.top+o.top()+n.top())}function Jp(e){return"textarea"===ie(e)}function Qp(e,t){var n=function(e){var t=e.dom().ownerDocument,n=t.body,r=t.defaultView,o=t.documentElement;if(n===e.dom())return Oi(n.offsetLeft,n.offsetTop);var i=Si(r.pageYOffset,o.scrollTop),a=Si(r.pageXOffset,o.scrollLeft),u=Si(o.clientTop,n.clientTop),s=Si(o.clientLeft,n.clientLeft);return Hi(e).translate(a-s,i-u)}(e),r=function(e){return Lv.get(e)}(e);return{element:e,bottom:n.top()+r,pos:n,cleanup:t}}function Zp(e,t){var n=function(e,t){var n=Re(e);if(0===n.length||Jp(e))return{element:e,offset:t};if(t<n.length&&!Jp(n[t]))return{element:n[t],offset:0};var r=n[n.length-1];return Jp(r)?{element:e,offset:t}:"img"===ie(r)?{element:r,offset:1}:zt(r)?{element:r,offset:Jc(r).length}:{element:r,offset:Re(r).length}}(e,t),r=yt.fromHtml('<span data-mce-bogus="all">'+cu+"</span>");return Ci(n.element,r),Qp(r,function(){return _i(r)})}function ev(e){return Qp(yt.fromDom(e),i)}function tv(n,r,o,i){Uv(n,function(e,t){return Fv(n,r,o,i)},o)}function nv(e,t,n,r){var o=yt.fromDom(e.getDoc());n(o,ki(o).top(),t,r)}function rv(e,t,n,r){var o=e.pos;if(n)Ti(o.left(),o.top(),r);else{var i=o.top()-t+(e.bottom-o.top());Ti(o.left(),i,r)}}function ov(e,t,n,r,o){r.pos.top()<t?rv(r,n,!1!==o,e):r.bottom>n+t&&rv(r,n,!0===o,e)}function iv(e,t,n,r){var o=e.dom().defaultView.innerHeight;ov(e,t,o,n,r)}function av(e,t,n,r,o){var i=t.dom().defaultView.innerHeight;ov(t,n,i,r,o);var a=Gp(r.element),u=Li(j.window);a.top()<u.y()?Ai(r.element,!1!==o):a.top()>u.bottom()&&Ai(r.element,!0===o)}function uv(e,t,n){return tv(e,d(iv),t,n)}function sv(e,t,n){return nv(e,ev(t),d(iv),n)}function cv(e,t,n){return tv(e,d(av,e),t,n)}function lv(e,t,n){return nv(e,ev(t),d(av,e),n)}function fv(e){return Ge.isContentEditableTrue(e)||Ge.isContentEditableFalse(e)}function dv(e,t){var n=(t||j.document).createDocumentFragment();return z(e,function(e){n.appendChild(e.dom())}),yt.fromDom(n)}function hv(e,t){var n=parseInt(ge(e,t),10);return isNaN(n)?1:n}function mv(e){return b(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)}function gv(e,t){for(var n=e.rows(),r=0;r<n.length;r++)for(var o=n[r].cells(),i=0;i<o.length;i++)if(ze(o[i],t))return k.some(Yv(i,r));return k.none()}function pv(e,t,n,r,o){for(var i=[],a=e.rows(),u=n;u<=o;u++){var s=a[u].cells(),c=t<r?s.slice(t,r+1):s.slice(r,t+1);i.push(Xv(a[u].element(),c))}return i}function vv(e){var t=[];if(e)for(var n=0;n<e.rangeCount;n++)t.push(e.getRangeAt(n));return t}function yv(e){return y(ey(e),$n)}function bv(e){return ma(e,"td[data-mce-selected],th[data-mce-selected]")}function Cv(e,t){var n=bv(t),r=yv(e);return 0<n.length?n:r}function wv(t,n){return g(t,function(e){return"li"===ie(e)&&uh(e,n)}).fold($([]),function(e){return function(e){return g(e,function(e){return"ul"===ie(e)||"ol"===ie(e)})}(t).map(function(e){return[yt.fromTag("li"),yt.fromTag(ie(e))]}).getOr([])})}function xv(e,t){var n=yt.fromDom(t.commonAncestorContainer),r=fh(n,e),o=y(r,function(e){return Dn(e)||Ln(e)}),i=wv(r,t),a=o.concat(i.length?i:function(t){return Un(t)?Se(t).filter(Fn).fold($([]),function(e){return[t,e]}):Fn(t)?[t]:[]}(n));return X(a,ka)}function zv(){return dv([])}function Ev(e,t){return function(e,t){var n=b(t,function(e,t){return Di(t,e),t},e);return 0<t.length?dv([n]):n}(yt.fromDom(t.cloneContents()),xv(e,t))}function Nv(e,o){return function(e,t){return Ca(t,"table",d(ze,e))}(e,o[0]).bind(function(e){var t=o[0],n=o[o.length-1],r=Gv(e);return Qv(r,t,n).map(function(e){return dv([Jv(e)])})}).getOrThunk(zv)}function Sv(e,t,n){return null!==function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(e,t,n)}function kv(e,t,n){return Sv(e,t,function(e){return e.nodeName===n})}function Tv(e){return e&&"TABLE"===e.nodeName}function Av(e,t,n){for(var r=new yi(t,e.getParent(t.parentNode,e.isBlock)||e.getRoot());t=r[n?"prev":"next"]();)if(Ge.isBr(t))return!0}function Mv(e,t,n,r,o){var i,a,u=e.getRoot(),s=e.schema.getNonEmptyElements(),c=e.getParent(o.parentNode,e.isBlock)||u;if(r&&Ge.isBr(o)&&t&&e.isEmpty(c))return k.some(Uu(o.parentNode,e.nodeIndex(o)));for(var l,f,d=new yi(o,c);a=d[r?"prev":"next"]();){if("false"===e.getContentEditableParent(a)||(f=u,Da(l=a)&&!1===Sv(l,f,rs)))return k.none();if(Ge.isText(a)&&0<a.nodeValue.length)return!1===kv(a,u,"A")?k.some(Uu(a,r?a.nodeValue.length:0)):k.none();if(e.isBlock(a)||s[a.nodeName.toLowerCase()])return k.none();i=a}return n&&i?k.some(Uu(i,0)):k.none()}function Rv(e,t,n,r){var o,i,a,u,s,c,l,f=e.getRoot(),d=!1;if(o=r[(n?"start":"end")+"Container"],i=r[(n?"start":"end")+"Offset"],c=Ge.isElement(o)&&i===o.childNodes.length,u=e.schema.getNonEmptyElements(),s=n,Da(o))return k.none();if(Ge.isElement(o)&&i>o.childNodes.length-1&&(s=!1),Ge.isDocument(o)&&(o=f,i=0),o===f){if(s&&(a=o.childNodes[0<i?i-1:0])){if(Da(a))return k.none();if(u[a.nodeName]||Tv(a))return k.none()}if(o.hasChildNodes()){if(i=Math.min(!s&&0<i?i-1:i,o.childNodes.length-1),o=o.childNodes[i],i=Ge.isText(o)&&c?o.data.length:0,!t&&o===f.lastChild&&Tv(o))return k.none();if(function(e,t){for(;t&&t!==e;){if(Ge.isContentEditableFalse(t))return!0;t=t.parentNode}return!1}(f,o)||Da(o))return k.none();if(o.hasChildNodes()&&!1===Tv(o)){var h=new yi(a=o,f);do{if(Ge.isContentEditableFalse(a)||Da(a)){d=!1;break}if(Ge.isText(a)&&0<a.nodeValue.length){i=s?0:a.nodeValue.length,o=a,d=!0;break}if(u[a.nodeName.toLowerCase()]&&(!(l=a)||!/^(TD|TH|CAPTION)$/.test(l.nodeName))){i=e.nodeIndex(a),o=a.parentNode,s||i++,d=!0;break}}while(a=s?h.next():h.prev())}}}return t&&(Ge.isText(o)&&0===i&&Mv(e,c,t,!0,o).each(function(e){o=e.container(),i=e.offset(),d=!0}),Ge.isElement(o)&&(!(a=(a=o.childNodes[i])||o.childNodes[i-1])||!Ge.isBr(a)||function(e,t){return e.previousSibling&&e.previousSibling.nodeName===t}(a,"A")||Av(e,a,!1)||Av(e,a,!0)||Mv(e,c,t,!0,a).each(function(e){o=e.container(),i=e.offset(),d=!0}))),s&&!t&&Ge.isText(o)&&i===o.nodeValue.length&&Mv(e,c,t,!1,o).each(function(e){o=e.container(),i=e.offset(),d=!0}),d?k.some(Uu(o,i)):k.none()}function Dv(e){return 0===e.dom().length?(_i(e),k.none()):k.some(e)}function _v(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return k.from(i).map(yt.fromDom).map(function(e){return r&&t.collapsed?e:De(e,o(e,a)).getOr(e)}).bind(function(e){return xt(e)?k.some(e):Se(e)}).map(function(e){return e.dom()}).getOr(e)}function Bv(e,t,n){return _v(e,t,!0,n,function(e,t){return Math.min(function(e){return e.dom().childNodes.length}(e),t)})}function Ov(e,t,n){return _v(e,t,!1,n,function(e,t){return 0<t?t-1:t})}function Hv(e,t){for(var n=e;e&&Ge.isText(e)&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}function Pv(e,t,n){if(e&&e.hasOwnProperty(t)){var r=y(e[t],function(e){return e!==n});0===r.length?delete e[t]:e[t]=r}}var Lv=function CN(r,o){function e(e){var t=o(e);if(t<=0||null===t){var n=ve(e,r);return parseFloat(n)||0}return t}function i(o,e){return b(e,function(e,t){var n=ve(o,t),r=n===undefined?0:parseInt(n,10);return isNaN(r)?e:e+r},0)}return{set:function(e,t){if(!_(t)&&!t.match(/^[0-9]+$/))throw new Error(r+".set accepts only positive integer values. Value was "+t);var n=e.dom();fe(n)&&(n.style[r]=t+"px")},get:e,getOuter:e,aggregate:i,max:function(e,t,n){var r=i(e,n);return r<t?t-r:0}}}("height",function(e){var t=e.dom();return de(e)?t.getBoundingClientRect().height:t.offsetHeight}),Vv=function(r,e){return r.view(e).fold($([]),function(e){var t=r.owner(e),n=Vv(r,t);return[e].concat(n)})},Iv=/* */Object.freeze({view:function(e){return(e.dom()===j.document?k.none():k.from(e.dom().defaultView.frameElement)).map(yt.fromDom)},owner:function(e){return Ee(e)}}),Fv=function(e,t,n,r){var o=yt.fromDom(e.getBody()),i=yt.fromDom(e.getDoc());!function(e){e.dom().offsetWidth}(o);var a=ki(i).top(),u=Zp(yt.fromDom(n.startContainer),n.startOffset);t(i,a,u,r),u.cleanup()},Uv=function(e,t,n){var r=n.startContainer,o=n.startOffset,i=n.endContainer,a=n.endOffset;t(yt.fromDom(r),yt.fromDom(i));var u=e.dom.createRng();u.setStart(r,o),u.setEnd(i,a),e.selection.setRng(n)},jv=function(e,t,n){!function(e,t,n){return e.fire("ScrollIntoView",{elm:t,alignToTop:n}).isDefaultPrevented()}(e,t,n)&&(e.inline?sv:lv)(e,t,n)},qv=function(e,t,n){(e.inline?uv:cv)(e,t,n)},$v=function(e,t,n){var r,o,i=n;if(i.caretPositionFromPoint)(o=i.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(i.body.createTextRange){r=i.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(a){r=function(e,n,t){var r,o,i;if(r=t.elementFromPoint(e,n),o=t.body.createTextRange(),r&&"HTML"!==r.tagName||(r=t.body),o.moveToElementText(r),0<(i=(i=Mn.toArray(o.getClientRects())).sort(function(e,t){return(e=Math.abs(Math.max(e.top-n,e.bottom-n)))-(t=Math.abs(Math.max(t.top-n,t.bottom-n)))})).length){n=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,n),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return function(e,t){var n=e&&e.parentElement?e.parentElement():null;return Ge.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(n,t,fv))?null:e}(r,n.body)}return r},Wv=function(n,e){return X(e,function(e){var t=n.fire("GetSelectionRange",{range:e});return t.range!==e?t.range:e})},Kv=be("element","width","rows"),Xv=be("element","cells"),Yv=be("x","y"),Gv=function(e){var o=Kv(ka(e),0,[]);return z(ma(e,"tr"),function(n,r){z(ma(n,"td,th"),function(e,t){!function(e,t,n,r,o){for(var i=hv(o,"rowspan"),a=hv(o,"colspan"),u=e.rows(),s=n;s<n+i;s++){u[s]||(u[s]=Xv(Ta(r),[]));for(var c=t;c<t+a;c++){u[s].cells()[c]=s===n&&c===t?o:ka(o)}}}(o,function(e,t,n){for(;r=t,o=n,i=void 0,((i=e.rows())[o]?i[o].cells():[])[r];)t++;var r,o,i;return t}(o,t,r),r,n,e)})}),Kv(o.element(),mv(o.rows()),o.rows())},Jv=function(e){return function(e,t){var n=ka(e.element()),r=yt.fromTag("tbody");return zi(r,t),Di(n,r),n}(e,function(e){return X(e.rows(),function(e){var t=X(e.cells(),function(e){var t=Ta(e);return pe(t,"colspan"),pe(t,"rowspan"),t}),n=ka(e.element());return zi(n,t),n})}(e))},Qv=function(n,e,r){return gv(n,e).bind(function(t){return gv(n,r).map(function(e){return function(e,t,n){var r=t.x(),o=t.y(),i=n.x(),a=n.y(),u=o<a?pv(e,r,o,i,a):pv(e,r,a,i,o);return Kv(e.element(),mv(u),u)}(n,t,e)})})},Zv=vv,ey=function(e){return v(e,function(e){var t=Wa(e);return t?[yt.fromDom(t)]:[]})},ty=function(e){return 1<vv(e).length},ny=Cv,ry=function(e){return Cv(Zv(e.selection.getSel()),yt.fromDom(e.getBody()))},oy=function(e,t){var n=ny(t,e);return 0<n.length?Nv(e,n):function(e,t){return 0<t.length&&t[0].collapsed?zv():Ev(e,t[0])}(e,t)},iy=function(e,t){if(void 0===t&&(t={}),t.get=!0,t.format=t.format||"html",t.selection=!0,(t=e.fire("BeforeGetContent",t)).isDefaultPrevented())return e.fire("GetContent",t),t.content;if("text"===t.format)return function(r){return k.from(r.selection.getRng()).map(function(e){var t=r.dom.add(r.getBody(),"div",{"data-mce-bogus":"all",style:"overflow: hidden; opacity: 0;"},e.cloneContents()),n=lu(t.innerText);return r.dom.remove(t),n}).getOr("")}(e);t.getInner=!0;var n=function(e,t){var n,r=e.selection.getRng(),o=e.dom.create("body"),i=e.selection.getSel(),a=Wv(e,Zv(i));return(n=t.contextual?oy(yt.fromDom(e.getBody()),a).dom():r.cloneContents())&&o.appendChild(n),e.selection.serializer.serialize(o,t)}(e,t);return"tree"===t.format?n:(t.content=e.selection.isCollapsed()?"":n,e.fire("GetContent",t),t.content)},ay=function(e,t){var n=t.collapsed,r=t.cloneRange(),o=Uu.fromRangeStart(t);return Rv(e,n,!0,r).each(function(e){n&&Uu.isAbove(o,e)||r.setStart(e.container(),e.offset())}),n||Rv(e,n,!1,r).each(function(e){r.setEnd(e.container(),e.offset())}),n&&r.collapse(!0),hh(t,r)?k.none():k.some(r)},uy=function(e,t,n){if((n=function(e,t){return(e=e||{format:"html"}).set=!0,e.selection=!0,e.content=t,e}(n,t)).no_events||!(n=e.fire("BeforeSetContent",n)).isDefaultPrevented()){var r=e.selection.getRng();!function(r,e){var t=k.from(e.firstChild).map(yt.fromDom),n=k.from(e.lastChild).map(yt.fromDom);r.deleteContents(),r.insertNode(e);var o=t.bind(ke).filter(zt).bind(Dv),i=n.bind(Te).filter(zt).bind(Dv);Ya(o,t.filter(zt),function(e,t){!function(e,t){e.insertData(0,t)}(t.dom(),e.dom().data),_i(e)}),Ya(i,n.filter(zt),function(e,t){var n=t.dom().length;t.dom().appendData(e.dom().data),r.setEnd(t.dom(),n),_i(e)}),r.collapse(!1)}(r,r.createContextualFragment(n.content)),e.selection.setRng(r),qv(e,r),n.no_events||e.fire("SetContent",n)}else e.fire("SetContent",n)};function sy(e){return!!e.select}function cy(e){return!(!e||!e.ownerDocument)&&Bt(yt.fromDom(e.ownerDocument),yt.fromDom(e))}function ly(u,s,e,c){function t(e,t){return uy(c,e,t)}function r(){var e,t,n=d();return!(n&&n.anchorNode&&n.focusNode)||((e=u.createRng()).setStart(n.anchorNode,n.anchorOffset),e.collapse(!0),(t=u.createRng()).setStart(n.focusNode,n.focusOffset),t.collapse(!0),e.compareBoundaryPoints(e.START_TO_START,t)<=0)}var n,o,l,f,i=function p(i,n){var a,u;return{selectorChangedWithUnbind:function(e,t){return a||(a={},u={},n.on("NodeChange",function(e){var n=e.element,r=i.getParents(n,null,i.getRoot()),o={};Mn.each(a,function(e,n){Mn.each(r,function(t){if(i.is(t,n))return u[n]||(Mn.each(e,function(e){e(!0,{node:t,selector:n,parents:r})}),u[n]=e),o[n]=e,!1})}),Mn.each(u,function(e,t){o[t]||(delete u[t],Mn.each(e,function(e){e(!1,{node:n,selector:t,parents:r})}))})})),a[e]||(a[e]=[]),a[e].push(t),{unbind:function(){Pv(a,e,t),Pv(u,e,t)}}}}}(u,c).selectorChangedWithUnbind,a=function(e){var t=h();t.collapse(!!e),m(t)},d=function(){return s.getSelection?s.getSelection():s.document.selection},h=function(){function e(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var t,n,r,o;if(!s)return null;if(null==(o=s.document))return null;if(c.bookmark!==undefined&&!1===ud(c)){var i=Qf(c);if(i.isSome())return i.map(function(e){return Wv(c,[e])[0]}).getOr(o.createRange())}try{(t=d())&&!Ge.isRestrictedNode(t.anchorNode)&&(n=0<t.rangeCount?t.getRangeAt(0):t.createRange?t.createRange():o.createRange())}catch(a){}return(n=(n=Wv(c,[n])[0])||(o.createRange?o.createRange():o.body.createTextRange())).setStart&&9===n.startContainer.nodeType&&n.collapsed&&(r=u.getRoot(),n.setStart(r,0),n.setEnd(r,0)),l&&f&&(0===e(n.START_TO_START,n,l)&&0===e(n.END_TO_END,n,l)?n=f:f=l=null),n},m=function(e,t){var n,r;if(function(e){return!!e&&(!!sy(e)||cy(e.startContainer)&&cy(e.endContainer))}(e)){var o=sy(e)?e:null;if(o){f=null;try{o.select()}catch(i){}}else{if(n=d(),e=c.fire("SetSelectionRange",{range:e,forward:t}).range,n){f=e;try{n.removeAllRanges(),n.addRange(e)}catch(i){}!1===t&&n.extend&&(n.collapse(e.endContainer,e.endOffset),n.extend(e.startContainer,e.startOffset)),l=0<n.rangeCount?n.getRangeAt(0):null}e.collapsed||e.startContainer!==e.endContainer||!n.setBaseAndExtent||Nn.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(r=e.startContainer.childNodes[e.startOffset])&&"IMG"===r.tagName&&(n.setBaseAndExtent(e.startContainer,e.startOffset,e.endContainer,e.endOffset),n.anchorNode===e.startContainer&&n.focusNode===e.endContainer||n.setBaseAndExtent(r,0,r,1)),c.fire("AfterSetSelectionRange",{range:e,forward:t})}}},g={bookmarkManager:null,controlSelection:null,dom:u,win:s,serializer:e,editor:c,collapse:a,setCursorLocation:function(e,t){var n=u.createRng();e?(n.setStart(e,t),n.setEnd(e,t),m(n),a(!1)):(sh(u,n,c.getBody(),!0),m(n))},getContent:function(e){return iy(c,e)},setContent:t,getBookmark:function(e,t){return n.getBookmark(e,t)},moveToBookmark:function(e){return n.moveToBookmark(e)},select:function(e,t){return function(r,e,o){return k.from(e).map(function(e){var t=r.nodeIndex(e),n=r.createRng();return n.setStart(e.parentNode,t),n.setEnd(e.parentNode,t+1),o&&(sh(r,n,e,!0),sh(r,n,e,!1)),n})}(u,e,t).each(m),e},isCollapsed:function(){var e=h(),t=d();return!(!e||e.item)&&(e.compareEndPoints?0===e.compareEndPoints("StartToEnd",e):!t||e.collapsed)},isForward:r,setNode:function(e){return t(u.getOuterHTML(e)),e},getNode:function(){return function(e,t){var n,r,o,i,a;return t?(r=t.startContainer,o=t.endContainer,i=t.startOffset,a=t.endOffset,n=t.commonAncestorContainer,!t.collapsed&&(r===o&&a-i<2&&r.hasChildNodes()&&(n=r.childNodes[i]),3===r.nodeType&&3===o.nodeType&&(r=r.length===i?Hv(r.nextSibling,!0):r.parentNode,o=0===a?Hv(o.previousSibling,!1):o.parentNode,r&&r===o))?r:n&&3===n.nodeType?n.parentNode:n):e}(c.getBody(),h())},getSel:d,setRng:m,getRng:h,getStart:function(e){return Bv(c.getBody(),h(),e)},getEnd:function(e){return Ov(c.getBody(),h(),e)},getSelectedBlocks:function(e,t){return function(e,t,n,r){var o,i,a=[];if(i=e.getRoot(),n=e.getParent(n||Bv(i,t,t.collapsed),e.isBlock),r=e.getParent(r||Ov(i,t,t.collapsed),e.isBlock),n&&n!==i&&a.push(n),n&&r&&n!==r)for(var u=new yi(o=n,i);(o=u.next())&&o!==r;)e.isBlock(o)&&a.push(o);return r&&n!==r&&r!==i&&a.push(r),a}(u,h(),e,t)},normalize:function(){var e=h(),t=d();if(ty(t)||!ch(c))return e;var n=ay(u,e);return n.each(function(e){m(e,r())}),n.getOr(e)},selectorChanged:function(e,t){return i(e,t),g},selectorChangedWithUnbind:i,getScrollContainer:function(){for(var e,t=u.getRoot();t&&"BODY"!==t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return jv(c,e,t)},placeCaretAt:function(e,t){return m($v(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=h();return e.collapsed?Ds.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,o.destroy()}};return n=Kp(g),o=Wp(g,c),g.bookmarkManager=n,g.controlSelection=o,g}function fy(e){return Uy(e)&&e.data[0]===cu}function dy(e){return Uy(e)&&e.data[e.data.length-1]===cu}function hy(e){return e.ownerDocument.createTextNode(cu)}function my(e,t){return e?function(e){if(Uy(e.previousSibling))return dy(e.previousSibling)||e.previousSibling.appendData(cu),e.previousSibling;if(Uy(e))return fy(e)||e.insertData(0,cu),e;var t=hy(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(Uy(e.nextSibling))return fy(e.nextSibling)||e.nextSibling.insertData(0,cu),e.nextSibling;if(Uy(e))return dy(e)||e.appendData(cu),e;var t=hy(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)}function gy(e,t){return Ge.isText(e.container())?my(t,e.container()):my(t,e.getNode())}function py(e,t){var n=t.get();return n&&e.container()===n&&Ra(n)}function vy(e,t){if(!t)return t;var n=t.container(),r=t.offset();return e?Ra(n)?Ge.isText(n.nextSibling)?Ds(n.nextSibling,0):Ds.after(n):Ba(t)?Ds(n,r+1):t:Ra(n)?Ge.isText(n.previousSibling)?Ds(n.previousSibling,n.previousSibling.data.length):Ds.before(n):Oa(t)?Ds(n,r-1):t}function yy(e,t){var n=bs(t,e);return n||e}function by(e,t,n){var r=Ky.normalizeForwards(n),o=yy(t,r.container());return Ky.findRootInline(e,o,r).fold(function(){return Pc.nextPosition(o,r).bind(d(Ky.findRootInline,e,o)).map(function(e){return Yy.before(e)})},k.none)}function Cy(e,t){return null===os(e,t)}function wy(e,t,n){return Ky.findRootInline(e,t,n).filter(d(Cy,t))}function xy(e,t,n){var r=Ky.normalizeBackwards(n);return wy(e,t,r).bind(function(e){return Pc.prevPosition(e,r).isNone()?k.some(Yy.start(e)):k.none()})}function zy(e,t,n){var r=Ky.normalizeForwards(n);return wy(e,t,r).bind(function(e){return Pc.nextPosition(e,r).isNone()?k.some(Yy.end(e)):k.none()})}function Ey(e,t,n){var r=Ky.normalizeBackwards(n),o=yy(t,r.container());return Ky.findRootInline(e,o,r).fold(function(){return Pc.prevPosition(o,r).bind(d(Ky.findRootInline,e,o)).map(function(e){return Yy.after(e)})},k.none)}function Ny(e){return!1===Ky.isRtl(Gy(e))}function Sy(e,t,n){return Xy([by,xy,zy,Ey],[e,t,n]).filter(Ny)}function ky(e){return e.fold($("before"),$("start"),$("end"),$("after"))}function Ty(e){return e.fold(Yy.before,Yy.before,Yy.after,Yy.after)}function Ay(n,e,r,t,o,i){return Ya(Ky.findRootInline(e,r,t),Ky.findRootInline(e,r,o),function(e,t){return e!==t&&Ky.hasSameParentBlock(r,e,t)?Yy.after(n?e:t):i}).getOr(i)}function My(e,t){return e.fold($(!0),function(e){return!function(e,t){return ky(e)===ky(t)&&Gy(e)===Gy(t)}(e,t)})}function Ry(e,t){return e?t.fold(q(k.some,Yy.start),k.none,q(k.some,Yy.after),k.none):t.fold(k.none,q(k.some,Yy.before),k.none,q(k.some,Yy.end))}function Dy(e,t,n,r){var o=Ky.normalizePosition(e,r),i=Sy(t,n,o);return Sy(t,n,o).bind(d(Ry,e)).orThunk(function(){return function(t,n,r,o,e){var i=Ky.normalizePosition(t,e);return Pc.fromPosition(t,r,i).map(d(Ky.normalizePosition,t)).fold(function(){return o.map(Ty)},function(e){return Sy(n,r,e).map(d(Ay,t,n,r,i,e)).filter(d(My,o))}).filter(Ny)}(e,t,n,i,r)})}function _y(e){return D(e.selection.getSel().modify)}function By(e,t,n){var r=e?1:-1;return t.setRng(Ds(n.container(),n.offset()+r).toRange()),t.getSel().modify("move",e?"forward":"backward","word"),!0}function Oy(e,t){var n=e.dom.createRng();n.setStart(t.container(),t.offset()),n.setEnd(t.container(),t.offset()),e.selection.setRng(n)}function Hy(e){return!1!==e.settings.inline_boundaries}function Py(e,t){e?t.setAttribute("data-mce-selected","inline-boundary"):t.removeAttribute("data-mce-selected")}function Ly(t,e,n){return $y(e,n).map(function(e){return Oy(t,e),n})}function Vy(e,t,n){return function(){return!!Hy(t)&&tb(e,t)}}var Iy,Fy,Uy=Ge.isText,jy=d(my,!0),qy=d(my,!1),$y=function(n,e){return e.fold(function(e){qs.remove(n.get());var t=jy(e);return n.set(t),k.some(Ds(t,t.length-1))},function(e){return Pc.firstPositionIn(e).map(function(e){if(py(e,n))return Ds(n.get(),1);qs.remove(n.get());var t=gy(e,!0);return n.set(t),Ds(t,1)})},function(e){return Pc.lastPositionIn(e).map(function(e){if(py(e,n))return Ds(n.get(),n.get().length-1);qs.remove(n.get());var t=gy(e,!1);return n.set(t),Ds(t,t.length-1)})},function(e){qs.remove(n.get());var t=qy(e);return n.set(t),k.some(Ds(t,1))})},Wy=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,Ky={isInlineTarget:function(e,t){return we(yt.fromDom(t),If(e))},findRootInline:function(e,t,n){var r=function(e,t,n){return y(Xi.DOM.getParents(n.container(),"*",t),e)}(e,t,n);return k.from(r[r.length-1])},isRtl:function(e){return"rtl"===Xi.DOM.getStyle(e,"direction",!0)||function(e){return Wy.test(e)}(e.textContent)},isAtZwsp:function(e){return Ba(e)||Oa(e)},normalizePosition:vy,normalizeForwards:d(vy,!0),normalizeBackwards:d(vy,!1),hasSameParentBlock:function(e,t,n){var r=bs(t,e),o=bs(n,e);return r&&r===o}},Xy=function(e,t){for(var n=0;n<e.length;n++){var r=e[n].apply(null,t);if(r.isSome())return r}return k.none()},Yy=jf([{before:["element"]},{start:["element"]},{end:["element"]},{after:["element"]}]),Gy=function(e){return e.fold(W,W,W,W)},Jy=Sy,Qy=Dy,Zy=(d(Dy,!1),d(Dy,!0),Ty),eb=function(e){return e.fold(Yy.start,Yy.start,Yy.end,Yy.end)},tb=function(e,t){var n=t.selection.getRng(),r=e?Ds.fromRangeEnd(n):Ds.fromRangeStart(n);return!!_y(t)&&(e&&Ba(r)?By(!0,t.selection,r):!(e||!Oa(r))&&By(!1,t.selection,r))},nb={move:function(e,t,n){return function(){return!!Hy(e)&&function(t,n,e){var r=t.getBody(),o=Ds.fromRangeStart(t.selection.getRng()),i=d(Ky.isInlineTarget,t);return Qy(e,i,r,o).bind(function(e){return Ly(t,n,e)})}(e,t,n).isSome()}},moveNextWord:d(Vy,!0),movePrevWord:d(Vy,!1),setupSelectedState:function(t){var n=Je(null),r=d(Ky.isInlineTarget,t);return t.on("NodeChange",function(e){Hy(t)&&(function(e,t,n){var r=y(t.select('*[data-mce-selected="inline-boundary"]'),e),o=y(n,e);z(x(r,o),d(Py,!1)),z(x(o,r),d(Py,!0))}(r,t.dom,e.parents),function(e,t){if(e.selection.isCollapsed()&&!0!==e.composing&&t.get()){var n=Ds.fromRangeStart(e.selection.getRng());Ds.isTextPosition(n)&&!1===Ky.isAtZwsp(n)&&(Oy(e,qs.removeAndReposition(t.get(),n)),t.set(null))}}(t,n),function(n,r,o,e){if(r.selection.isCollapsed()){var t=y(e,n);z(t,function(e){var t=Ds.fromRangeStart(r.selection.getRng());Jy(n,r.getBody(),t).bind(function(e){return Ly(r,o,e)})})}}(r,t,n,e.parents))}),n},setCaretPosition:Oy};(Fy=Iy=Iy||{})[Fy.Br=0]="Br",Fy[Fy.Block=1]="Block",Fy[Fy.Wrap=2]="Wrap",Fy[Fy.Eol=3]="Eol";function rb(e,t){return e===Ms.Backwards?t.reverse():t}function ob(e,t,n,r){for(var o,i,a,u,s,c,l=rc(n),f=r,d=[];f&&(s=l,c=f,o=t===Ms.Forwards?s.next(c):s.prev(c));){if(Ge.isBr(o.getNode(!1)))return t===Ms.Forwards?{positions:rb(t,d).concat([o]),breakType:Iy.Br,breakAt:k.some(o)}:{positions:rb(t,d),breakType:Iy.Br,breakAt:k.some(o)};if(o.isVisible()){if(e(f,o)){var h=(i=t,a=f,u=o,Ge.isBr(u.getNode(i===Ms.Forwards))?Iy.Br:!1===Cs(a,u)?Iy.Block:Iy.Wrap);return{positions:rb(t,d),breakType:h,breakAt:k.some(o)}}d.push(o),f=o}else f=o}return{positions:rb(t,d),breakType:Iy.Eol,breakAt:k.none()}}function ib(n,r,o,e){return r(o,e).breakAt.map(function(e){var t=r(o,e).positions;return n===Ms.Backwards?t.concat(e):[e].concat(t)}).getOr([])}function ab(e,i){return b(e,function(e,o){return e.fold(function(){return k.some(o)},function(r){return Ya(E(r.getClientRects()),E(o.getClientRects()),function(e,t){var n=Math.abs(i-e.left);return Math.abs(i-t.left)<=n?o:r}).or(e)})},k.none())}function ub(t,e){return E(e.getClientRects()).bind(function(e){return ab(t,e.left)})}function sb(e,t,n,r){var o=e===Ms.Forwards,i=o?Ph:Lh;if(!r.collapsed){var a=bx(r);if(yx(a))return Zh(e,t,a,e===Ms.Backwards,!0)}var u=function(e){return Ma(e.startContainer)}(r),s=Ss(e,t.getBody(),r);if(i(s))return em(t,s.getNode(!o));var c=Ky.normalizePosition(o,n(s));if(!c)return u?r:null;if(i(c))return Zh(e,t,c.getNode(!o),o,!0);var l=n(c);return l&&i(l)&&As(c,l)?Zh(e,t,l.getNode(!o),o,!0):u?nm(t,c.toRange(),!0):null}function cb(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=bx(r),o=Ss(e,t.getBody(),r),i=n(t.getBody(),Ih(1),o),a=y(i,Fh(1)),s=kn.last(o.getClientRects()),(Ph(o)||Oh(o))&&(d=o.getNode()),(Lh(o)||Hh(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=$h(a,c))&&yx(u.node))return l=Math.abs(c-u.left),f=Math.abs(c-u.right),Zh(e,t,u.node,l<f,!0);if(d){var h=function(e,t,n,r){function o(e){return kn.last(e.getClientRects())}var i,a,u,s,c,l,f=rc(t),d=[],h=0;l=o(s=1===e?(i=f.next,a=qa,u=ja,Ds.after(r)):(i=f.prev,a=ja,u=qa,Ds.before(r)));do{if(s.isVisible()&&!u(c=o(s),l)){if(0<d.length&&a(c,kn.last(d))&&h++,(c=Ia(c)).position=s,c.line=h,n(c))return d;d.push(c)}}while(s=i(s));return d}(e,t.getBody(),Ih(1),d);if(u=$h(y(h,Fh(1)),c))return nm(t,u.position.toRange(),!0);if(u=kn.last(y(h,Fh(0))))return nm(t,u.position.toRange(),!0)}}function lb(e,t,n){var r,o,i=rc(e.getBody()),a=d(Ts,i.next),u=d(Ts,i.prev);if(n.collapsed&&e.settings.forced_root_block){if(!(r=e.dom.getParent(n.startContainer,"PRE")))return;(1===t?a(Ds.fromRangeStart(n)):u(Ds.fromRangeStart(n)))||(o=function(e){var t=e.dom.create(mf(e));return(!Nn.ie||11<=Nn.ie)&&(t.innerHTML='<br data-mce-bogus="1">'),t}(e),1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}}function fb(t,n){return function(){var e=function(e,t){var n,r=rc(e.getBody()),o=d(Ts,r.next),i=d(Ts,r.prev),a=t?Ms.Forwards:Ms.Backwards,u=t?o:i,s=e.selection.getRng();return(n=sb(a,e,u,s))?n:(n=lb(e,a,s))||null}(t,n);return!!e&&(t.selection.setRng(e),!0)}}function db(t,n){return function(){var e=function(e,t){var n,r=t?1:-1,o=t?Xm:Km,i=e.selection.getRng();return(n=cb(r,e,o,i))?n:(n=lb(e,r,i))||null}(t,n);return!!e&&(t.selection.setRng(e),!0)}}function hb(n,r){return function(){var e=r?Ds.fromRangeEnd(n.selection.getRng()):Ds.fromRangeStart(n.selection.getRng()),t=r?gx(n.getBody(),e):mx(n.getBody(),e);return(r?N(t.positions):E(t.positions)).filter(function(t){return function(e){return t?Lh(e):Ph(e)}}(r)).fold($(!1),function(e){return n.selection.setRng(e.toRange()),!0})}}function mb(e,t,n,r,o){var i=ma(yt.fromDom(n),"td,th,caption").map(function(e){return e.dom()});return function(e,o,i){return b(e,function(e,r){return e.fold(function(){return k.some(r)},function(e){var t=Math.sqrt(Math.abs(e.x-o)+Math.abs(e.y-i)),n=Math.sqrt(Math.abs(r.x-o)+Math.abs(r.y-i));return k.some(n<t?r:e)})},k.none())}(y(function(n,e){return v(e,function(e){var t=function(e,t){return{left:e.left-t,top:e.top-t,right:e.right+2*t,bottom:e.bottom+2*t,width:e.width+t,height:e.height+t}}(Ia(e.getBoundingClientRect()),-1);return[{x:t.left,y:n(t),cell:e},{x:t.right,y:n(t),cell:e}]})}(e,i),function(e){return t(e,o)}),r,o).map(function(e){return e.cell})}function gb(t,n){return E(n.getClientRects()).bind(function(e){return Cx(t,e.left,e.top)}).bind(function(e){return ub(function(t){return Pc.lastPositionIn(t).map(function(e){return mx(t,e).positions.concat(e)}).getOr([])}(e),n)})}function pb(t,n){return N(n.getClientRects()).bind(function(e){return wx(t,e.left,e.top)}).bind(function(e){return ub(function(t){return Pc.firstPositionIn(t).map(function(e){return[e].concat(gx(t,e).positions)}).getOr([])}(e),n)})}function vb(e,t){e.selection.setRng(t),qv(e,t)}function yb(e,t,n){var r=e(t,n);return function(e){return e.breakType===Iy.Wrap&&0===e.positions.length}(r)||!Ge.isBr(n.getNode())&&function(e){return e.breakType===Iy.Br&&1===e.positions.length}(r)?!function(t,n,e){return e.breakAt.map(function(e){return t(n,e).breakAt.isSome()}).getOr(!1)}(e,t,r):r.breakAt.isNone()}function bb(e,t,n,r){var o=e.selection.getRng(),i=t?1:-1;if(hs()&&function(e,t,n){var r=Ds.fromRangeStart(t);return Pc.positionIn(!e,n).map(function(e){return e.isEqual(r)}).getOr(!1)}(t,o,n)){var a=Zh(i,e,n,!t,!0);return vb(e,a),!0}return!1}function Cb(e,t){var n=t.getNode(e);return Ge.isElement(n)&&"TABLE"===n.nodeName?k.some(n):k.none()}function wb(n,r,o){var e=Cb(!!r,o),i=!1===r;e.fold(function(){return vb(n,o.toRange())},function(t){return Pc.positionIn(i,n.getBody()).filter(function(e){return e.isEqual(o)}).fold(function(){return vb(n,o.toRange())},function(e){return function(n,r,o,e){var i=mf(r);i?r.undoManager.transact(function(){var e=yt.fromTag(i);me(e,gf(r)),Di(e,yt.fromTag("br")),n?wi(yt.fromDom(o),e):Ci(yt.fromDom(o),e);var t=r.dom.createRng();t.setStart(e.dom(),0),t.setEnd(e.dom(),0),vb(r,t)}):vb(r,e.toRange())}(r,n,t,o)})})}function xb(e,t,n,r){var o=e.selection.getRng(),i=Ds.fromRangeStart(o),a=e.getBody();if(!t&&xx(r,i)){var u=function(t,n,e){return gb(n,e).orThunk(function(){return E(e.getClientRects()).bind(function(e){return ab(px(t,Ds.before(n)),e.left)})}).getOr(Ds.before(n))}(a,n,i);return wb(e,t,u),!0}if(t&&zx(r,i)){u=function(t,n,e){return pb(n,e).orThunk(function(){return E(e.getClientRects()).bind(function(e){return ab(vx(t,Ds.after(n)),e.left)})}).getOr(Ds.after(n))}(a,n,i);return wb(e,t,u),!0}return!1}function zb(t,n){return function(){return k.from(t.dom.getParent(t.selection.getNode(),"td,th")).bind(function(e){return k.from(t.dom.getParent(e,"table")).map(function(e){return bb(t,n,e)})}).getOr(!1)}}function Eb(n,r){return function(){return k.from(n.dom.getParent(n.selection.getNode(),"td,th")).bind(function(t){return k.from(n.dom.getParent(t,"table")).map(function(e){return xb(n,r,e,t)})}).getOr(!1)}}function Nb(e){return h(["figcaption"],ie(e))}function Sb(e){var t=j.document.createRange();return t.setStartBefore(e.dom()),t.setEndBefore(e.dom()),t}function kb(e,t,n){n?Di(e,t):xi(e,t)}function Tb(e,t,n,r){return""===t?function(e,t){var n=yt.fromTag("br");return kb(e,n,t),Sb(n)}(e,r):function(e,t,n,r){var o=yt.fromTag(n),i=yt.fromTag("br");return me(o,r),Di(o,i),kb(e,o,t),Sb(i)}(e,r,t,n)}function Ab(e,t,n){return t?function(e,t){return gx(e,t).breakAt.isNone()}(e.dom(),n):function(e,t){return mx(e,t).breakAt.isNone()}(e.dom(),n)}function Mb(t,n){var r=yt.fromDom(t.getBody()),o=Ds.fromRangeStart(t.selection.getRng()),i=mf(t),a=gf(t);return function(e,t){var n=d(ze,t);return ba(yt.fromDom(e.container()),Vn,n).filter(Nb)}(o,r).exists(function(){if(Ab(r,n,o)){var e=Tb(r,i,a,n);return t.selection.setRng(e),!0}return!1})}function Rb(e,t){return function(){return!!e.selection.isCollapsed()&&Mb(e,t)}}function Db(e,t){return v(function(e){return X(e,function(e){return bd({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:i},e)})}(e),function(e){return function(e,t){return t.keyCode===e.keyCode&&t.shiftKey===e.shiftKey&&t.altKey===e.altKey&&t.ctrlKey===e.ctrlKey&&t.metaKey===e.metaKey}(e,t)?[e]:[]})}function _b(e,t){return{from:$(e),to:$(t)}}function Bb(e,t){var n=yt.fromDom(e),r=yt.fromDom(t.container());return kx(n,r).map(function(e){return function(e,t){return{block:$(e),position:$(t)}}(e,t)})}function Ob(t,n,e){var r=Bb(t,Ds.fromRangeStart(e)),o=r.bind(function(e){return Pc.fromPosition(n,t,e.position()).bind(function(e){return Bb(t,e).map(function(e){return function(t,n,r){return Ge.isBr(r.position().getNode())&&!1===kg(r.block())?Pc.positionIn(!1,r.block().dom()).bind(function(e){return e.isEqual(r.position())?Pc.fromPosition(n,t,e).bind(function(e){return Bb(t,e)}):k.some(r)}).getOr(r):r}(t,n,e)})})});return Ya(r,o,_b).filter(function(e){return function(e){return!1===ze(e.from().block(),e.to().block())}(e)&&function(e){return Se(e.from().block()).bind(function(t){return Se(e.to().block()).filter(function(e){return ze(t,e)})}).isSome()}(e)&&function(e){return!1===Ge.isContentEditableFalse(e.from().block().dom())&&!1===Ge.isContentEditableFalse(e.to().block().dom())}(e)})}function Hb(e){var t=function(e){var t=Re(e);return p(t,Vn).fold(function(){return t},function(e){return t.slice(0,e)})}(e);return z(t,_i),t}function Pb(e,t){var n=fh(t,e);return g(n.reverse(),kg).each(_i)}function Lb(e,t,n,r){if(kg(n))return bg(n),Pc.firstPositionIn(n.dom());(function(e){return 0===y(Ae(e),function(e){return!kg(e)}).length})(r)&&kg(t)&&Ci(r,yt.fromTag("br"));var o=Pc.prevPosition(n.dom(),Ds.before(r.dom()));return z(Hb(t),function(e){Ci(r,e)}),Pb(e,t),o}function Vb(e,t,n){if(kg(n))return _i(n),kg(t)&&bg(t),Pc.firstPositionIn(t.dom());var r=Pc.lastPositionIn(n.dom());return z(Hb(t),function(e){Di(n,e)}),Pb(e,t),r}function Ib(e,t){return Bt(t,e)?function(e,t){var n=fh(t,e);return k.from(n[n.length-1])}(t,e):k.none()}function Fb(e,t){Pc.positionIn(e,t.dom()).map(function(e){return e.getNode()}).map(yt.fromDom).filter(_n).each(_i)}function Ub(e,t,n){return Fb(!0,t),Fb(!1,n),Ib(t,n).fold(d(Vb,e,t,n),d(Lb,e,t,n))}function jb(e,t){var n=yt.fromDom(t),r=d(ze,e);return ya(n,$n,r).isSome()}function qb(e,t){var n=Pc.prevPosition(e.dom(),Ds.fromRangeStart(t)).isNone(),r=Pc.nextPosition(e.dom(),Ds.fromRangeEnd(t)).isNone();return!function(e,t){return jb(e,t.startContainer)||jb(e,t.endContainer)}(e,t)&&n&&r}function $b(e){var t=yt.fromDom(e.getBody()),n=e.selection.getRng();return qb(t,n)?function(e){return e.setContent(""),e.selection.setCursorLocation(),!0}(e):function(n,r){var o=r.getRng();return Ya(kx(n,yt.fromDom(o.startContainer)),kx(n,yt.fromDom(o.endContainer)),function(e,t){return!1===ze(e,t)&&(o.deleteContents(),Rx(n,!0,e,t).each(function(e){r.setRng(e.toRange())}),!0)}).getOr(!1)}(t,e.selection)}function Wb(e){return ks(e).exists(_n)}function Kb(e,t,n){var r=y(fh(yt.fromDom(n.container()),t),Vn),o=E(r).getOr(t);return Pc.fromPosition(e,o.dom(),n).filter(Wb)}function Xb(e,t){return ks(t).exists(_n)||Kb(!0,e,t).isSome()}function Yb(e,t){return function(e){return k.from(e.getNode(!0)).map(yt.fromDom)}(t).exists(_n)||Kb(!1,e,t).isSome()}function Gb(e,t,n,r){var o=r.getNode(!1===t);return kx(yt.fromDom(e),yt.fromDom(n.getNode())).map(function(e){return kg(e)?Hx.remove(e.dom()):Hx.moveToElement(o)}).orThunk(function(){return k.some(Hx.moveToElement(o))})}function Jb(t,n,r){return Pc.fromPosition(n,t,r).bind(function(e){return function(e){return $n(yt.fromDom(e))||Un(yt.fromDom(e))}(e.getNode())?k.none():function(t,e,n,r){function o(e){return Dn(yt.fromDom(e))&&!Cs(n,r,t)}return Ns(!e,n).fold(function(){return Ns(e,r).fold($(!1),o)},o)}(t,n,r,e)?k.none():n&&Ge.isContentEditableFalse(e.getNode())?Gb(t,n,r,e):!1===n&&Ge.isContentEditableFalse(e.getNode(!0))?Gb(t,n,r,e):n&&Lh(r)?k.some(Hx.moveToPosition(e)):!1===n&&Ph(r)?k.some(Hx.moveToPosition(e)):k.none()})}function Qb(t,e,n){return function(e,t){var n=t.getNode(!1===e),r=e?"after":"before";return Ge.isElement(n)&&n.getAttribute("data-mce-caret")===r}(e,n)?function(e,t){return e&&Ge.isContentEditableFalse(t.nextSibling)?k.some(Hx.moveToElement(t.nextSibling)):!1===e&&Ge.isContentEditableFalse(t.previousSibling)?k.some(Hx.moveToElement(t.previousSibling)):k.none()}(e,n.getNode(!1===e)).fold(function(){return Jb(t,e,n)},k.some):Jb(t,e,n).bind(function(e){return function(t,n,e){return e.fold(function(e){return k.some(Hx.remove(e))},function(e){return k.some(Hx.moveToElement(e))},function(e){return Cs(n,e,t)?k.none():k.some(Hx.moveToPosition(e))})}(t,n,e)})}function Zb(e,t){return k.from(Px(e.getBody(),t))}function eC(t,n){var e=t.selection.getNode();return Zb(t,e).filter(Ge.isContentEditableFalse).fold(function(){return function(e,t,n){var r=Es(t?1:-1,e,n),o=Ds.fromRangeStart(r),i=yt.fromDom(e);return!1===t&&Lh(o)?k.some(Hx.remove(o.getNode(!0))):t&&Ph(o)?k.some(Hx.remove(o.getNode())):!1===t&&Ph(o)&&Yb(i,o)?Bx(i,o).map(function(e){return Hx.remove(e.getNode())}):t&&Lh(o)&&Xb(i,o)?Ox(i,o).map(function(e){return Hx.remove(e.getNode())}):Qb(e,t,o)}(t.getBody(),n,t.selection.getRng()).map(function(e){return e.fold(function(t,n){return function(e){return t._selectionOverrides.hideFakeCaret(),Tg(t,n,yt.fromDom(e)),!0}}(t,n),function(n,r){return function(e){var t=r?Ds.before(e):Ds.after(e);return n.selection.setRng(t.toRange()),!0}}(t,n),function(t){return function(e){return t.selection.setRng(e.toRange()),!0}}(t))}).getOr(!1)},function(){return!0})}function tC(e,t){var n=e.selection.getNode();return!!Ge.isContentEditableFalse(n)&&Zb(e,n.parentNode).filter(Ge.isContentEditableFalse).fold(function(){return function(e){z(ma(e,".mce-offscreen-selection"),_i)}(yt.fromDom(e.getBody())),Tg(e,t,yt.fromDom(e.selection.getNode())),Tx(e),!0},function(){return!0})}function nC(e,t,n,r,o,i){var a=Zh(r,e,i.getNode(!o),o,!0);if(t.collapsed){var u=t.cloneRange();o?u.setEnd(a.startContainer,a.startOffset):u.setStart(a.endContainer,a.endOffset),u.deleteContents()}else t.deleteContents();return e.selection.setRng(a),function(e,t){Ge.isText(t)&&0===t.data.length&&e.remove(t)}(e.dom,n),!0}function rC(t,n){return function(e){return $y(n,e).map(function(e){return nb.setCaretPosition(t,e),!0}).getOr(!1)}}function oC(e,t,n,r){var o=e.getBody(),i=d(Ky.isInlineTarget,e);e.undoManager.ignore(function(){e.selection.setRng(function(e,t){var n=j.document.createRange();return n.setStart(e.container(),e.offset()),n.setEnd(t.container(),t.offset()),n}(n,r)),e.execCommand("Delete"),Jy(i,o,Ds.fromRangeStart(e.selection.getRng())).map(eb).map(rC(e,t))}),e.nodeChanged()}function iC(n,r,o,i){var a=function(e,t){var n=bs(t,e);return n||e}(n.getBody(),i.container()),u=d(Ky.isInlineTarget,n),s=Jy(u,a,i);return s.bind(function(e){return o?e.fold($(k.some(eb(e))),k.none,$(k.some(Zy(e))),k.none):e.fold(k.none,$(k.some(Zy(e))),k.none,$(k.some(eb(e))))}).map(rC(n,r)).getOrThunk(function(){var t=Pc.navigate(o,a,i),e=t.bind(function(e){return Jy(u,a,e)});return s.isSome()&&e.isSome()?Ky.findRootInline(u,a,i).map(function(e){return!!function(o){return Ya(Pc.firstPositionIn(o),Pc.lastPositionIn(o),function(e,t){var n=Ky.normalizePosition(!0,e),r=Ky.normalizePosition(!1,t);return Pc.nextPosition(o,n).map(function(e){return e.isEqual(r)}).getOr(!0)}).getOr(!0)}(e)&&(Tg(n,o,yt.fromDom(e)),!0)}).getOr(!1):e.bind(function(e){return t.map(function(e){return o?oC(n,r,i,e):oC(n,r,e,i),!0})}).getOr(!1)})}function aC(e){return 1===Re(e).length}function uC(e,t,n,r){var o=d(qm,t),i=X(y(r,o),function(e){return e.dom()});if(0===i.length)Tg(t,e,n);else{var a=function(e,t){var n=Pm(!1),r=Um(t,n.dom());return Ci(yt.fromDom(e),n),_i(yt.fromDom(e)),Ds(r,0)}(n.dom(),i);t.selection.setRng(a.toRange())}}function sC(n,r){var e=yt.fromDom(n.getBody()),t=yt.fromDom(n.selection.getStart()),o=y(function(e,t){var n=fh(t,e);return p(n,Vn).fold($(n),function(e){return n.slice(0,e)})}(e,t),aC);return N(o).map(function(e){var t=Ds.fromRangeStart(n.selection.getRng());return!(!Ax(r,t,e.dom())||function(e){return rs(e.dom())&&Om(e.dom())}(e))&&(uC(r,n,e,o),!0)}).getOr(!1)}function cC(e,t){return{start:$(e),end:$(t)}}function lC(e,t){return xa(yt.fromDom(e),"td,th",t)}function fC(e,t){return Ca(e,"table",t)}function dC(e){return!1===ze(e.start(),e.end())}function hC(e,n){return fC(e.start(),n).bind(function(t){return fC(e.end(),n).bind(function(e){return function(e,t){return e?k.some(t):k.none()}(ze(t,e),t)})})}function mC(e){return ma(e,"td,th")}function gC(n,e){var t=lC(e.startContainer,n),r=lC(e.endContainer,n);return e.collapsed?k.none():Ya(t,r,cC).fold(function(){return t.fold(function(){return r.bind(function(t){return fC(t,n).bind(function(e){return E(mC(e)).map(function(e){return cC(e,t)})})})},function(t){return fC(t,n).bind(function(e){return N(mC(e)).map(function(e){return cC(t,e)})})})},function(e){return qx(n,e)?k.none():function(t,e){return fC(t.start(),e).bind(function(e){return N(mC(e)).map(function(e){return cC(t.start(),e)})})}(e,n)})}function pC(t,e){return hC(t,e).map(function(e){return function(e,t,n){return{rng:$(e),table:$(t),cells:$(n)}}(t,e,mC(e))})}function vC(e,t){var n=function(t){return function(e){return ze(t,e)}}(e);return function(e,t){var n=lC(e.startContainer,t),r=lC(e.endContainer,t);return Ya(n,r,cC).filter(dC).filter(function(e){return qx(t,e)}).orThunk(function(){return gC(t,e)})}(t,n).bind(function(e){return pC(e,n)})}function yC(e,t){return p(e,function(e){return ze(e,t)})}function bC(n){return function(n){return Ya(yC(n.cells(),n.rng().start()),yC(n.cells(),n.rng().end()),function(e,t){return n.cells().slice(e,t+1)})}(n).map(function(e){var t=n.cells();return e.length===t.length?jx.removeTable(n.table()):jx.emptyCells(e)})}function CC(e,t){return z(t,bg),e.selection.setCursorLocation(t[0].dom(),0),!0}function wC(e,t){return Tg(e,!1,t),!0}function xC(t,e,n){return function(e,t){return vC(e,t).bind(bC)}(e,n).map(function(e){return e.fold(d(wC,t),d(CC,t))})}function zC(t,e,n,r){return $x(e,r).fold(function(){return xC(t,e,n)},function(e){return function(e,t){return Wx(e,t)}(t,e)}).getOr(!1)}function EC(e,t){return g(fh(t,e),$n)}function NC(t,n,r,o,i){return Pc.navigate(r,t.getBody(),i).bind(function(e){return function(e,n,r,o){return Pc.firstPositionIn(e.dom()).bind(function(t){return Pc.lastPositionIn(e.dom()).map(function(e){return n?r.isEqual(t)&&o.isEqual(e):r.isEqual(e)&&o.isEqual(t)})}).getOr(!0)}(o,r,i,e)?function(e,t){return Wx(e,t)}(t,o):function(e,t,n){return $x(e,yt.fromDom(n.getNode())).map(function(e){return!1===ze(e,t)})}(n,o,e)}).or(k.some(!0))}function SC(t,n,r,e){var o=Ds.fromRangeStart(t.selection.getRng());return EC(r,e).bind(function(e){return kg(e)?Wx(t,e):function(e,t,n,r,o){return Pc.navigate(n,e.getBody(),o).bind(function(e){return EC(t,yt.fromDom(e.getNode())).map(function(e){return!1===ze(e,r)})})}(t,r,n,e,o)}).getOr(!1)}function kC(e,t){return e?Oh(t):Hh(t)}function TC(t,n,e){var r=yt.fromDom(t.getBody());return $x(r,e).fold(function(){return SC(t,n,r,e)||function(e,t){var n=Ds.fromRangeStart(e.selection.getRng());return kC(t,n)||Pc.fromPosition(t,e.getBody(),n).map(function(e){return kC(t,e)}).getOr(!1)}(t,n)},function(e){return function(e,t,n,r){var o=Ds.fromRangeStart(e.selection.getRng());return kg(r)?Wx(e,r):NC(e,n,t,r,o)}(t,n,r,e).getOr(!1)})}function AC(e){var t=parseInt(e,10);return isNaN(t)?0:t}function MC(e,t){return(e||function(e){return"table"===ie(e)}(t)?"margin":"padding")+("rtl"===ve(t,"direction")?"-right":"-left")}function RC(e){var t=Yx(e);return!0!==e.readonly&&(1<t.length||function(r,e){return w(e,function(e){var t=MC(Hf(r),e),n=ye(e,t).map(AC).getOr(0);return"false"!==r.dom.getContentEditable(e.dom())&&0<n})}(e,t))}function DC(e){return Fn(e)||Un(e)}function _C(e,t){var n=e.dom,r=e.selection,o=e.formatter,i=Pf(e),a=/[a-z%]+$/i.exec(i)[0],u=parseInt(i,10),s=Hf(e),c=mf(e);e.queryCommandState("InsertUnorderedList")||e.queryCommandState("InsertOrderedList")||""!==c||n.getParent(r.getNode(),n.isBlock)||o.apply("div"),z(Yx(e),function(e){!function(e,t,n,r,o,i){var a=MC(n,yt.fromDom(i));if("outdent"===t){var u=Math.max(0,AC(i.style[a])-r);e.setStyle(i,a,u?u+o:"")}else{u=AC(i.style[a])+r+o;e.setStyle(i,a,u)}}(n,t,s,u,a,e.dom())})}function BC(e,t,n){return Pc.navigateIgnore(e,t,n,wh)}function OC(e,t){return g(fh(yt.fromDom(t.container()),e),Vn)}function HC(e,n,r){return BC(e,n.dom(),r).forall(function(t){return OC(n,r).fold(function(){return!1===Cs(t,r,n.dom())},function(e){return!1===Cs(t,r,n.dom())&&Bt(e,yt.fromDom(t.container()))})})}function PC(t,n,r){return OC(n,r).fold(function(){return BC(t,n.dom(),r).forall(function(e){return!1===Cs(e,r,n.dom())})},function(e){return BC(t,e.dom(),r).isNone()})}function LC(e){return k.from(e.dom.getParent(e.selection.getStart(!0),e.dom.isBlock))}function VC(e,t){return e&&e.parentNode&&e.parentNode.nodeName===t}function IC(e){return e&&/^(OL|UL|LI)$/.test(e.nodeName)}function FC(e){var t=e.parentNode;return/^(LI|DT|DD)$/.test(t.nodeName)?t:e}function UC(e,t,n){for(var r=e[n?"firstChild":"lastChild"];r&&!Ge.isElement(r);)r=r[n?"nextSibling":"previousSibling"];return r===t}function jC(e){e.innerHTML='<br data-mce-bogus="1">'}function qC(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t}function $C(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)}function WC(e,t,n){return!1===Ge.isText(t)?n:e?1===n&&t.data.charAt(n-1)===cu?0:n:n===t.data.length-1&&t.data.charAt(n)===cu?t.data.length:n}function KC(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o}function XC(e,t){var n=mf(e);n&&n.toLowerCase()===t.tagName.toLowerCase()&&e.dom.setAttribs(t,gf(e))}function YC(e,t,n){var r=e.create("span",{}," ");n.parentNode.insertBefore(r,n),t.scrollIntoView(r),e.remove(r)}function GC(e,t,n,r){var o=e.createRng();r?(o.setStartBefore(n),o.setEndBefore(n)):(o.setStartAfter(n),o.setEndAfter(n)),t.setRng(o)}function JC(e,t){var n,r,o=e.selection,i=e.dom,a=o.getRng();ay(i,a).each(function(e){a.setStart(e.startContainer,e.startOffset),a.setEnd(e.endContainer,e.endOffset)});var u=a.startOffset,s=a.startContainer;if(1===s.nodeType&&s.hasChildNodes()){var c=u>s.childNodes.length-1;s=s.childNodes[Math.min(u,s.childNodes.length-1)]||s,u=c&&3===s.nodeType?s.nodeValue.length:0}var l=i.getParent(s,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",h=!(!t||!t.ctrlKey);"LI"!==d||h||(l=f),s&&3===s.nodeType&&u>=s.nodeValue.length&&!function(e,t,n){for(var r,o=new yi(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||0<r.length)return!0}(e.schema,s,l)&&(n=i.create("br"),a.insertNode(n),a.setStartAfter(n),a.setEndAfter(n),r=!0),n=i.create("br"),Xu(i,a,n),YC(i,o,n),GC(i,o,n,r),e.undoManager.add()}function QC(e,t){var n=yt.fromTag("br");Ci(yt.fromDom(t),n),e.undoManager.add()}function ZC(e,t){cz(e.getBody(),t)||wi(yt.fromDom(t),yt.fromTag("br"));var n=yt.fromTag("br");wi(yt.fromDom(t),n),YC(e.dom,e.selection,n.dom()),GC(e.dom,e.selection,n.dom(),!1),e.undoManager.add()}function ew(e){return e&&"A"===e.nodeName&&"href"in e}function tw(e){return e.fold($(!1),ew,ew,$(!1))}function nw(e,t){t.fold(i,d(QC,e),d(ZC,e),i)}function rw(e,t){return oz(e).filter(function(e){return 0<t.length&&we(yt.fromDom(e),t)}).isSome()}function ow(e,t){return dz(e)}function iw(n){return function(e,t){return""===mf(e)===n}}function aw(n){return function(e,t){return az(e)===n}}function uw(n,r){return function(e,t){return iz(e)===n.toUpperCase()===r}}function sw(e){return uw("pre",e)}function cw(n){return function(e,t){return hf(e)===n}}function lw(e,t){return fz(e)}function fw(e,t){return t}function dw(e){var t=mf(e),n=rz(e.dom,e.selection.getStart());return n&&e.schema.isValidChild(n.nodeName,t||"P")}function hw(e,t){return function(n,r){return b(e,function(e,t){return e&&t(n,r)},!0)?k.some(t):k.none()}}function mw(n,r){var e=r.container(),t=r.offset();return Ge.isText(e)?(e.insertData(t,n),k.some(Uu(e,t+n.length))):ks(r).map(function(e){var t=yt.fromText(n);return r.isAtEnd()?wi(e,t):Ci(e,t),Uu(t.dom(),n.length)})}function gw(e){return Uu.isTextPosition(e)&&!e.isAtStart()&&!e.isAtEnd()}function pw(e,t){var n=y(fh(yt.fromDom(t.container()),e),Vn);return E(n).getOr(e)}function vw(e,t){return gw(t)?Dh(t):Dh(t)||Pc.prevPosition(pw(e,t).dom(),t).exists(Dh)}function yw(e,t){return gw(t)?Rh(t):Rh(t)||Pc.nextPosition(pw(e,t).dom(),t).exists(Rh)}function bw(e){return ks(e).bind(function(e){return ba(e,xt)}).exists(function(e){return function(e){return h(["pre","pre-wrap"],e)}(ve(e,"white-space"))})}function Cw(e,t){return function(e,t){return Pc.prevPosition(e.dom(),t).isNone()}(e,t)||function(e,t){return Pc.nextPosition(e.dom(),t).isNone()}(e,t)||Gx(e,t)||Jx(e,t)||Yb(e,t)||Xb(e,t)}function ww(e,t){var n=function(e){var t=e.container(),n=e.offset();return Ge.isText(t)&&n<t.data.length?Uu(t,n+1):e}(t);return!bw(n)&&(Jx(e,n)||Zx(e,n)||Xb(e,n)||yw(e,n))}function xw(e,t){return function(e,t){return!bw(t)&&(Gx(e,t)||Qx(e,t)||Yb(e,t)||vw(e,t))}(e,t)||ww(e,t)}function zw(e,t){return Mh(e.charAt(t))}function Ew(e){var t=e.container();return Ge.isText(t)&&Z(t.data,"\xa0")}function Nw(e){var t=e.data,n=function(e){var n=e.split("");return X(n,function(e,t){return Mh(e)&&0<t&&t<n.length-1&&bh(n[t-1])&&bh(n[t+1])?" ":e}).join("")}(t);return n!==t&&(e.data=n,!0)}function Sw(n,e){return k.some(e).filter(Ew).bind(function(e){var t=e.container();return function(e,t){var n=t.data,r=Uu(t,0);return!(!zw(n,0)||xw(e,r))&&(t.data=" "+n.slice(1),!0)}(n,t)||Nw(t)||function(e,t){var n=t.data,r=Uu(t,n.length-1);return!(!zw(n,n.length-1)||xw(e,r))&&(t.data=n.slice(0,-1)+" ",!0)}(n,t)?k.some(e):k.none()})}function kw(t){var e=yt.fromDom(t.getBody());t.selection.isCollapsed()&&Sw(e,Uu.fromRangeStart(t.selection.getRng())).each(function(e){t.selection.setRng(e.toRange())})}function Tw(t,n){return function(e){return function(e,t){return!bw(t)&&(Cw(e,t)||vw(e,t)||yw(e,t))}(t,e)?vz(n):yz(n)}}function Aw(e){var t=Ds.fromRangeStart(e.selection.getRng()),n=yt.fromDom(e.getBody());if(e.selection.isCollapsed()){var r=d(Ky.isInlineTarget,e),o=Ds.fromRangeStart(e.selection.getRng());return Jy(r,e.getBody(),o).bind(function(t){return function(e){return e.fold(function(e){return Pc.prevPosition(t.dom(),Ds.before(e))},function(e){return Pc.firstPositionIn(e)},function(e){return Pc.lastPositionIn(e)},function(e){return Pc.nextPosition(t.dom(),Ds.after(e))})}}(n)).bind(Tw(n,t)).exists(function(t){return function(e){return t.selection.setRng(e.toRange()),t.nodeChanged(),!0}}(e))}return!1}function Mw(e,t){t.hasAttribute("data-mce-caret")&&(Pa(t),function(e){e.selection.setRng(e.selection.getRng())}(e),e.selection.scrollIntoView(t))}function Rw(e,t){var n=function(e){return wa(yt.fromDom(e.getBody()),"*[data-mce-caret]").fold($(null),function(e){return e.dom()})}(e);if(n)return"compositionstart"===t.type?(t.preventDefault(),t.stopPropagation(),void Mw(e,n)):void(_a(n)&&(Mw(e,n),e.undoManager.add()))}function Dw(t){!function(e){var t=aa(function(){e.composing||kw(e)},0);wz.isIE()&&(e.on("keypress",function(e){t.throttle()}),e.on("remove",function(e){t.cancel()}))}(t),t.on("input",function(e){!1===e.isComposing&&kw(t)})}function _w(a){function e(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function u(e){return e.isDefaultPrevented()}function t(){a.shortcuts.add("meta+a",null,"SelectAll")}function n(){a.on("keydown",function(e){if(!u(e)&&e.keyCode===i&&l.isCollapsed()&&0===l.getRng().startOffset){var t=l.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function r(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){var t;if("HTML"===e.target.nodeName){if(11<Nn.ie)return void a.getBody().focus();t=a.selection.getRng(),a.getBody().focus(),a.selection.setRng(t),a.selection.normalize(),a.nodeChanged()}}))}var o=Mn.each,i=Ah.BACKSPACE,s=Ah.DELETE,c=a.dom,l=a.selection,f=a.settings,d=a.parser,h=Nn.gecko,m=Nn.ie,g=Nn.webkit,p="data:text/mce-internal,",v=m?"Text":"URL";function y(e){var t=c.create("body"),n=e.cloneContents();return t.appendChild(n),l.serializer.serialize(t,{format:"html"})}function b(){var e=c.getAttribs(l.getStart().cloneNode(!1));return function(){var t=l.getStart();t!==a.getBody()&&(c.setAttrib(t,"style",null),o(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function C(){return!l.isCollapsed()&&c.getParent(l.getStart(),c.isBlock)!==c.getParent(l.getEnd(),c.isBlock)}return a.on("keydown",function(e){var t,n,r,o,i;if(!u(e)&&e.keyCode===Ah.BACKSPACE&&(n=(t=l.getRng()).startContainer,r=t.startOffset,o=c.getRoot(),i=n,t.collapsed&&0===r)){for(;i&&i.parentNode&&i.parentNode.firstChild===i&&i.parentNode!==o;)i=i.parentNode;"BLOCKQUOTE"===i.tagName&&(a.formatter.toggle("blockquote",null,i),(t=c.createRng()).setStart(n,0),t.setEnd(n,0),l.setRng(t))}}),a.on("keydown",function(e){var t,n,r=e.keyCode;if(!u(e)&&(r===s||r===i)){if(t=a.selection.isCollapsed(),n=a.getBody(),t&&!c.isEmpty(n))return;if(!t&&!function(e){var t=y(e),n=c.createRng();return n.selectNode(a.getBody()),t===y(n)}(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),n.firstChild&&c.isBlock(n.firstChild)?a.selection.setCursorLocation(n.firstChild,0):a.selection.setCursorLocation(n,0),a.nodeChanged()}}),Nn.windowsPhone||a.on("keyup focusin mouseup",function(e){Ah.modifierPressed(e)||l.normalize()},!0),g&&(a.inline||c.bind(a.getDoc(),"mousedown mouseup",function(e){var t;if(e.target===a.getDoc().documentElement)if(t=l.getRng(),a.getBody().focus(),"mousedown"===e.type){if(Da(t.startContainer))return;l.placeCaretAt(e.clientX,e.clientY)}else l.setRng(t)}),a.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==c.getContentEditableParent(t)&&(e.preventDefault(),a.selection.select(t),a.nodeChanged()),"A"===t.nodeName&&c.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),l.select(t))}),f.forced_root_block&&a.on("init",function(){e("DefaultParagraphSeparator",mf(a))}),a.on("init",function(){a.dom.bind(a.getBody(),"submit",function(e){e.preventDefault()})}),n(),d.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"===e[t].attr("class")&&e[t].remove()}),Nn.iOS?(a.inline||a.on("keydown",function(){j.document.activeElement===j.document.body&&a.getWin().focus()}),r(),a.on("click",function(e){var t=e.target;do{if("A"===t.tagName)return void e.preventDefault()}while(t=t.parentNode)}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")):t()),11<=Nn.ie&&(r(),n()),Nn.ie&&(t(),e("AutoUrlDetect",!1),a.on("dragstart",function(e){!function(e){var t,n;e.dataTransfer&&(a.selection.isCollapsed()&&"IMG"===e.target.tagName&&l.select(e.target),0<(t=a.selection.getContent()).length&&(n=p+escape(a.id)+","+escape(t),e.dataTransfer.setData(v,n)))}(e)}),a.on("drop",function(e){if(!u(e)){var t=function(e){var t;return e.dataTransfer&&(t=e.dataTransfer.getData(v))&&0<=t.indexOf(p)?(t=t.substr(p.length).split(","),{id:unescape(t[0]),html:unescape(t[1])}):null}(e);if(t&&t.id!==a.id){e.preventDefault();var n=$v(e.x,e.y,a.getDoc());l.setRng(n),function(e,t){a.queryCommandSupported("mceInsertClipboardContent")?a.execCommand("mceInsertClipboardContent",!1,{content:e,internal:t}):a.execCommand("mceInsertContent",!1,e)}(t.html,!0)}}})),h&&(a.on("keydown",function(e){if(!u(e)&&e.keyCode===i){if(!a.getBody().getElementsByTagName("hr").length)return;if(l.isCollapsed()&&0===l.getRng().startOffset){var t=l.getNode(),n=t.previousSibling;if("HR"===t.nodeName)return c.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(c.remove(n),e.preventDefault())}}}),j.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!u(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),pn.setEditorTimeout(a,function(){t.focus()})}}),a.on("keypress",function(e){var t;if(!u(e)&&(8===e.keyCode||46===e.keyCode)&&C())return t=b(),a.getDoc().execCommand("delete",!1,null),t(),e.preventDefault(),!1}),c.bind(a.getDoc(),"cut",function(e){var t;!u(e)&&C()&&(t=b(),pn.setEditorTimeout(a,function(){t()}))}),f.readonly||a.on("BeforeExecCommand mousedown",function(){e("StyleWithCSS",!1),e("enableInlineTableEditing",!1),f.object_resizing||e("enableObjectResizing",!1)}),a.on("SetContent ExecCommand",function(e){"setcontent"!==e.type&&"mceInsertLink"!==e.command||o(c.select("a"),function(e){var t=e.parentNode,n=c.getRoot();if(t.lastChild===e){for(;t&&!c.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}c.add(t,"br",{"data-mce-bogus":1})}})}),a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"),Nn.mac&&a.on("keydown",function(e){!Ah.metaKeyPressed(e)||e.shiftKey||37!==e.keyCode&&39!==e.keyCode||(e.preventDefault(),a.selection.getSel().modify("move",37===e.keyCode?"backward":"forward","lineboundary"))}),n()),{refreshContentEditable:function(){},isHidden:function(){var e;return!(!h||a.removed)&&(!(e=a.selection.getSel())||!e.rangeCount||0===e.rangeCount)}}}function Bw(e){return Ge.isElement(e)&&In(yt.fromDom(e))}function Ow(t){t.on("click",function(e){3<=e.detail&&function(e){var t=e.selection.getRng(),n=Uu.fromRangeStart(t),r=Uu.fromRangeEnd(t);if(Uu.isElementPosition(n)){var o=n.container();Bw(o)&&Pc.firstPositionIn(o).each(function(e){return t.setStart(e.container(),e.offset())})}if(Uu.isElementPosition(r)){o=n.container();Bw(o)&&Pc.lastPositionIn(o).each(function(e){return t.setEnd(e.container(),e.offset())})}e.selection.setRng(fp(t))}(t)})}function Hw(e){!function(t){t.on("click",function(e){t.dom.getParent(e.target,"details")&&e.preventDefault()})}(e),function(e){e.parser.addNodeFilter("details",function(e){z(e,function(e){e.attr("data-mce-open",e.attr("open")),e.attr("open","open")})}),e.serializer.addNodeFilter("details",function(e){z(e,function(e){var t=e.attr("data-mce-open");e.attr("open",K(t)?t:null),e.attr("data-mce-open",null)})})}(e)}function Pw(e){e.bindPendingEventDelegates(),e.initialized=!0,e.fire("init"),e.focus(!0),e.nodeChanged({initial:!0}),e.execCallback("init_instance_callback",e),function(t){t.settings.auto_focus&&pn.setEditorTimeout(t,function(){var e;(e=!0===t.settings.auto_focus?t:t.editorManager.get(t.settings.auto_focus)).destroyed||e.focus()},100)}(e)}function Lw(e,t){var n=e.editorManager.translate("Rich Text Area. Press ALT-0 for help."),r=function(e,t,n,r){var o=yt.fromTag("iframe");return me(o,r),me(o,{id:e+"_ifr",frameBorder:"0",allowTransparency:"true",title:t}),fa(o,"tox-edit-area__iframe"),o}(e.id,n,t.height,uf(e)).dom();r.onload=function(){r.onload=null,e.fire("load")};var o=function(e,t){if(j.document.domain!==j.window.location.hostname&&Nn.browser.isIE()){var n=eh("mce");e[n]=function(){Nz(e)};var r='javascript:(function(){document.open();document.domain="'+j.document.domain+'";var ed = window.parent.tinymce.get("'+e.id+'");document.write(ed.iframeHTML);document.close();ed.'+n+"(true);})()";return Sz.setAttrib(t,"src",r),!0}return!1}(e,r);return e.contentAreaContainer=t.iframeContainer,e.iframeElement=r,e.iframeHTML=function(e){var t,n,r;return r=sf(e)+"<html><head>",cf(e)!==e.documentBaseUrl&&(r+='<base href="'+e.documentBaseURI.getURI()+'" />'),r+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',t=lf(e),n=ff(e),df(e)&&(r+='<meta http-equiv="Content-Security-Policy" content="'+df(e)+'" />'),r+='</head><body id="'+t+'" class="mce-content-body '+n+'" data-id="'+e.id+'"><br></body></html>'}(e),Sz.add(t.iframeContainer,r),o}function Vw(e){e.contentCSS=e.contentCSS.concat(function(t){var e=Lf(t),n=t.editorManager.baseURL+"/skins/content",r="content"+t.editorManager.suffix+".css",o=!0===t.inline;return X(e,function(e){return function(e){return/^[a-z0-9\-]+$/i.test(e)}(e)&&!o?n+"/"+e+"/"+r:t.documentBaseURI.toAbsolute(e)})}(e))}function Iw(e){return e.replace(/^\-/,"")}function Fw(e){return{editorContainer:e,iframeContainer:e}}function Uw(e){var t=e.getElement();return e.inline?Fw(null):function(e){var t=Tz.create("div");return Tz.insertAfter(t,e),Fw(t)}(t)}function jw(e){return"-"===e.charAt(0)}function qw(t,e){(function(e){return k.from(zf(e)).filter(function(e){return 0<e.length}).map(function(e){return{url:e,name:k.none()}})})(e).orThunk(function(){return function(t){return k.from(xf(t)).filter(function(e){return 0<e.length&&!Ud.has(e)}).map(function(e){return{url:t.editorManager.baseURL+"/icons/"+e+"/icons.js",name:k.some(e)}})}(e)}).each(function(e){t.add(e.url,i,undefined,function(){Fd.iconsLoadError(e.url,e.name.getOrUndefined())})})}function $w(e,t){var n=Qi.ScriptLoader;!function(e,t,n,r){var o=t.settings,i=o.theme;if(K(i)){if(!jw(i)&&!qd.urls.hasOwnProperty(i)){var a=o.theme_url;a?qd.load(i,t.documentBaseURI.toAbsolute(a)):qd.load(i,"themes/"+i+"/theme"+n+".js")}e.loadQueue(function(){qd.waitFor(i,r)})}else r()}(n,e,t,function(){!function(e,t){var n=Bf(t),r=Of(t);if(!1===ra.hasCode(n)&&"en"!==n){var o=""!==r?r:t.editorManager.baseURL+"/langs/"+n+".js";e.add(o,i,undefined,function(){Fd.languageLoadError(o,n)})}}(n,e),qw(n,e),function(n,r){A(n.plugins)&&(n.plugins=n.plugins.join(" ")),Mn.each(n.external_plugins,function(e,t){jd.load(t,e,i,undefined,function(){Fd.pluginLoadError(t,e)}),n.plugins+=" "+t}),Mn.each(n.plugins.split(/[ ,]/),function(e){if((e=Mn.trim(e))&&!jd.urls[e])if(jw(e)){e=e.substr(1,e.length);var t=jd.dependencies(e);Mn.each(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+r+".js"};e=jd.createUrl(t,e),jd.load(e.resource,e,i,undefined,function(){Fd.pluginLoadError(e.prefix+e.resource+e.suffix,e.resource)})})}else{var n={prefix:"plugins/",resource:e,suffix:"/plugin"+r+".js"};jd.load(e,n,i,undefined,function(){Fd.pluginLoadError(n.prefix+n.resource+n.suffix,e)})}})}(e.settings,t),n.loadQueue(function(){e.removed||Mz(e)},e,function(){e.removed||Mz(e)})})}function Ww(e,t,n){ha(e,t)&&!1===n?function(e,t){sa(e)?e.dom().classList.remove(t):la(e,t);da(e)}(e,t):n&&fa(e,t)}function Kw(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}}function Xw(e,t){e.dom().contentEditable=t?"true":"false"}function Yw(e,t){var n=yt.fromDom(e.getBody());Ww(n,"mce-content-readonly",t),t?(e.selection.controlSelection.hideResizeRect(),e._selectionOverrides.hideFakeCaret(),function(e){k.from(e.selection.getNode()).each(function(e){e.removeAttribute("data-mce-selected")})}(e),e.readonly=!0,Xw(n,!1),function(e){z(ma(e,'*[contenteditable="true"]'),function(e){Tt(e,_z,"true"),Xw(e,!1)})}(n)):(e.readonly=!1,Xw(n,!0),function(e){z(ma(e,"*["+_z+'="true"]'),function(e){pe(e,_z),Xw(e,!0)})}(n),Kw(e,"StyleWithCSS",!1),Kw(e,"enableInlineTableEditing",!1),Kw(e,"enableObjectResizing",!1),sd(e)&&e.focus(),function(e){e.selection.setRng(e.selection.getRng())}(e),e.nodeChanged())}function Gw(e){return!0===e.readonly}function Jw(t){t.parser.addAttributeFilter("contenteditable",function(e){Gw(t)&&z(e,function(e){e.attr(_z,e.attr("contenteditable")),e.attr("contenteditable","false")})}),t.serializer.addAttributeFilter(_z,function(e){Gw(t)&&z(e,function(e){e.attr("contenteditable",e.attr(_z))})}),t.serializer.addTempAttr(_z)}function Qw(e,t,n,r){var o=n[t.get()],i=n[r];try{i.activate()}catch(yN){return void j.console.error("problem while activating editor mode "+r+":",yN)}o.deactivate(),o.editorReadOnly!==i.editorReadOnly&&Yw(e,i.editorReadOnly),t.set(r),hd(e,r)}function Zw(t){var n=Je("design"),r=Je({design:{activate:i,deactivate:i,editorReadOnly:!1},readonly:{activate:i,deactivate:i,editorReadOnly:!0}});return function(e){e.serializer?Jw(e):e.on("PreInit",function(){Jw(e)})}(t),function(t){t.on("ShowCaret",function(e){Gw(t)&&e.preventDefault()}),t.on("ObjectSelected",function(e){Gw(t)&&e.preventDefault()})}(t),{isReadOnly:function(){return Gw(t)},set:function(e){return function(e,t,n,r){if(r!==n.get()){if(!kt(t,r))throw new Error("Editor mode '"+r+"' is invalid");e.initialized?Qw(e,n,t,r):e.on("init",function(){return Qw(e,n,t,r)})}}(t,r.get(),n,e)},get:function(){return n.get()},register:function(e,t){r.set(function(e,t,n){var r;if(h(Bz,t))throw new Error("Cannot override default mode "+t);return G(G({},e),((r={})[t]=G(G({},n),{deactivate:function(){try{n.deactivate()}catch(yN){j.console.error("problem while deactivating editor mode "+t+":",yN)}}}),r))}(r.get(),e,t))}}}function ex(e){return Mn.grep(e.childNodes,function(e){return"LI"===e.nodeName})}function tx(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&function(e){return"\xa0"===e.data||Ge.isBr(e)}(e.firstChild)}function nx(e){return 0<e.length&&function(e){return!e.firstChild||tx(e)}(e[e.length-1])?e.slice(0,-1):e}function rx(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null}function ox(e,t){var n=Ds.after(e),r=rc(t).prev(n);return r?r.toRange():null}function ix(t,e,n){var r=t.parentNode;return Mn.each(e,function(e){r.insertBefore(e,t)}),function(e,t){var n=Ds.before(e),r=rc(t).next(n);return r?r.toRange():null}(t,n)}function ax(e,t){var n=e.selection.getRng(),r=n.startContainer,o=n.startOffset;n.collapsed&&function(e,t){return Ge.isText(e)&&"\xa0"===e.nodeValue[t-1]}(r,o)&&Ge.isText(r)&&(r.insertData(o-1," "),r.deleteData(o,1),n.setStart(r,o),n.setEnd(r,o),e.selection.setRng(n)),e.selection.setContent(t)}function ux(e,t,n){var r,o,i,a,u,s,c,l,f,d,h,m=e.selection,g=e.dom;if(/^ | $/.test(t)&&(t=function(e,t){var n,r;n=e.startContainer,r=e.startOffset;function o(e){return n[e]&&3===n[e].nodeType}return 3===n.nodeType&&(0<r?t=t.replace(/^ /," "):o("previousSibling")||(t=t.replace(/^ /," ")),r<n.length?t=t.replace(/ (<br>|)$/," "):o("nextSibling")||(t=t.replace(/( | )(<br>|)$/," "))),t}(m.getRng(),t)),r=e.parser,h=n.merge,o=pl({validate:e.settings.validate},e.schema),d='<span id="mce_marker" data-mce-type="bookmark">​</span>',s={content:t,format:"html",selection:!0,paste:n.paste},(s=e.fire("BeforeSetContent",s)).isDefaultPrevented())e.fire("SetContent",{content:s.content,format:"html",selection:!0,paste:n.paste});else{-1===(t=s.content).indexOf("{$caret}")&&(t+="{$caret}"),t=t.replace(/\{\$caret\}/,d);var p=(l=m.getRng()).startContainer||(l.parentElement?l.parentElement():null),v=e.getBody();p===v&&m.isCollapsed()&&g.isBlock(v.firstChild)&&function(e,t){return t&&!e.schema.getShortEndedElements()[t.nodeName]}(e,v.firstChild)&&g.isEmpty(v.firstChild)&&((l=g.createRng()).setStart(v.firstChild,0),l.setEnd(v.firstChild,0),m.setRng(l)),m.isCollapsed()||(e.selection.setRng(fp(e.selection.getRng())),e.getDoc().execCommand("Delete",!1,null),t=function(e,t){var n,r;return n=e.startContainer,r=e.startOffset,3===n.nodeType&&e.collapsed&&("\xa0"===n.data[r]?(n.deleteData(r,1),/[\u00a0| ]$/.test(t)||(t+=" ")):"\xa0"===n.data[r-1]&&(n.deleteData(r-1,1),/[\u00a0| ]$/.test(t)||(t=" "+t))),t}(e.selection.getRng(),t));var y={context:(i=m.getNode()).nodeName.toLowerCase(),data:n.data,insert:!0};if(u=r.parse(t,y),!0===n.paste&&Oz(e.schema,u)&&Pz(g,i))return l=Hz(o,g,e.selection.getRng(),u),e.selection.setRng(l),void e.fire("SetContent",s);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(u),"mce_marker"===(f=u.lastChild).attr("id"))for(f=(c=f).prev;f;f=f.walk(!0))if(3===f.type||!g.isBlock(f.name)){e.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(e._selectionOverrides.showBlockCaretContainer(i),y.invalid){for(ax(e,d),i=m.getNode(),a=e.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)f=(i=f).parentNode;t=i===a?a.innerHTML:g.getOuterHTML(i),t=o.serialize(r.parse(t.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return o.serialize(u)}))),i===a?g.setHTML(a,t):g.setOuterHTML(i,t)}else!function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.lastChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):ax(e,t)}}(e,t=o.serialize(u),i);!function(e,t){var n=e.schema.getTextInlineElements(),r=e.dom;if(t){var o=e.getBody(),i=new Bg(r);Mn.each(r.select("*[data-mce-fragment]"),function(e){for(var t=e.parentNode;t&&t!==o;t=t.parentNode)n[e.nodeName.toLowerCase()]&&i.compare(t,e)&&r.remove(e,!0)})}}(e,h),function(n,e){var t,r,o,i,a,u=n.dom,s=n.selection;if(e){if(n.selection.scrollIntoView(e),t=function(e){for(var t=n.getBody();e&&e!==t;e=e.parentNode)if("false"===n.dom.getContentEditable(e))return e;return null}(e))return u.remove(e),s.select(t);var c=u.createRng();(i=e.previousSibling)&&3===i.nodeType?(c.setStart(i,i.nodeValue.length),Nn.ie||(a=e.nextSibling)&&3===a.nodeType&&(i.appendData(a.data),a.parentNode.removeChild(a))):(c.setStartBefore(e),c.setEndBefore(e));r=u.getParent(e,u.isBlock),u.remove(e),r&&u.isEmpty(r)&&(n.$(r).empty(),c.setStart(r,0),c.setEnd(r,0),Lz(r)||function(e){return!!e.getAttribute("data-mce-fragment")}(r)||!(o=function(e){var t=Ds.fromRangeStart(e);if(t=rc(n.getBody()).next(t))return t.toRange()}(c))?u.add(r,u.create("br",{"data-mce-bogus":"1"})):(c=o,u.remove(r))),s.setRng(c)}}(e,g.get("mce_marker")),function(e){Mn.each(e.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")})}(e.getBody()),function(e,t){k.from(e.getParent(t,"td,th")).map(yt.fromDom).each(Cg)}(e.dom,e.selection.getStart()),e.fire("SetContent",s),e.addVisual()}}function sx(e,t){e.getDoc().execCommand(t,!1,null)}function cx(n){return function(t,e){return k.from(e).map(yt.fromDom).filter(xt).bind(function(e){return function(t,n,e){function r(e){return ye(e,t)}return ba(yt.fromDom(e),function(e){return r(e).isSome()},function(e){return ze(yt.fromDom(n),e)}).bind(r)}(n,t,e.dom()).or(function(e,t){return k.from(Xi.DOM.getStyle(t,e,!0))}(n,e.dom()))}).getOr("")}}function lx(e){return Pc.firstPositionIn(e.getBody()).map(function(e){var t=e.container();return Ge.isText(t)?t.parentNode:t})}function fx(t){return k.from(t.selection.getRng()).bind(function(e){return function(e,t){return e.startContainer===t&&0===e.startOffset}(e,t.getBody())?k.none():k.from(t.selection.getStart(!0))})}function dx(e,t){if(/^[0-9\.]+$/.test(t)){var n=parseInt(t,10);if(1<=n&&n<=7){var r=Cf(e),o=wf(e);return o?o[n-1]||t:r[n-1]||t}return t}return t}function hx(e,t){var n=dx(e,t);e.formatter.toggle("fontname",{value:function(e){var t=e.split(/\s*,\s*/);return X(t,function(e){return-1===e.indexOf(" ")||ee(e,'"')||ee(e,"'")?e:"'"+e+"'"}).join(",")}(n)}),e.nodeChanged()}var mx=d(ob,Uu.isAbove,-1),gx=d(ob,Uu.isBelow,1),px=d(ib,-1,mx),vx=d(ib,1,gx),yx=Ge.isContentEditableFalse,bx=Wa,Cx=d(mb,function(e){return e.bottom},function(e,t){return e.y<t}),wx=d(mb,function(e){return e.top},function(e,t){return e.y>t}),xx=d(yb,mx),zx=d(yb,gx),Ex=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,r)}},Nx=function(e,t){return g(Db(e,t),function(e){return e.action()})},Sx=function(t,n){t.on("keydown",function(e){!1===e.isDefaultPrevented()&&function(e,t,n){var r=oe().os;Nx([{keyCode:Ah.RIGHT,action:fb(e,!0)},{keyCode:Ah.LEFT,action:fb(e,!1)},{keyCode:Ah.UP,action:db(e,!1)},{keyCode:Ah.DOWN,action:db(e,!0)},{keyCode:Ah.RIGHT,action:zb(e,!0)},{keyCode:Ah.LEFT,action:zb(e,!1)},{keyCode:Ah.UP,action:Eb(e,!1)},{keyCode:Ah.DOWN,action:Eb(e,!0)},{keyCode:Ah.RIGHT,action:nb.move(e,t,!0)},{keyCode:Ah.LEFT,action:nb.move(e,t,!1)},{keyCode:Ah.RIGHT,ctrlKey:!r.isOSX(),altKey:r.isOSX(),action:nb.moveNextWord(e,t)},{keyCode:Ah.LEFT,ctrlKey:!r.isOSX(),altKey:r.isOSX(),action:nb.movePrevWord(e,t)},{keyCode:Ah.UP,action:Rb(e,!1)},{keyCode:Ah.DOWN,action:Rb(e,!0)}],n).each(function(e){n.preventDefault()})}(t,n,e)})},kx=function(e,t){return Bt(e,t)?ba(t,function(e){return In(e)||Un(e)},function(t){return function(e){return ze(t,yt.fromDom(e.dom().parentNode))}}(e)):k.none()},Tx=function(e){e.dom.isEmpty(e.getBody())&&(e.setContent(""),function(e){var t=e.getBody(),n=t.firstChild&&e.dom.isBlock(t.firstChild)?t.firstChild:t;e.selection.setCursorLocation(n,0)}(e))},Ax=function(i,a,u){return Ya(Pc.firstPositionIn(u),Pc.lastPositionIn(u),function(e,t){var n=Ky.normalizePosition(!0,e),r=Ky.normalizePosition(!1,t),o=Ky.normalizePosition(!1,a);return i?Pc.nextPosition(u,o).map(function(e){return e.isEqual(r)&&a.isEqual(n)}).getOr(!1):Pc.prevPosition(u,o).map(function(e){return e.isEqual(n)&&a.isEqual(r)}).getOr(!1)}).getOr(!0)},Mx=function(e,t,n){return n.collapsed?Ob(e,t,n):k.none()},Rx=function(e,t,n,r){return t?Ub(e,r,n):Ub(e,n,r)},Dx=function(t,n){var r=yt.fromDom(t.getBody()),e=Mx(r.dom(),n,t.selection.getRng()).bind(function(e){return Rx(r,n,e.from().block(),e.to().block())});return e.each(function(e){t.selection.setRng(e.toRange())}),e.isSome()},_x=function(e,t){return!e.selection.isCollapsed()&&$b(e)},Bx=d(Kb,!1),Ox=d(Kb,!0),Hx=jf([{remove:["element"]},{moveToElement:["element"]},{moveToPosition:["position"]}]),Px=function(e,t){for(;t&&t!==e;){if(Ge.isContentEditableTrue(t)||Ge.isContentEditableFalse(t))return t;t=t.parentNode}return null},Lx=function(e,t){return e.selection.isCollapsed()?eC(e,t):tC(e,t)},Vx=function(e){var t,n=Px(e.getBody(),e.selection.getNode());return Ge.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(Ds.before(t).toRange())),!0},Ix=function(e,t){return function(e,t){var n=e.selection.getRng();if(!Ge.isText(n.commonAncestorContainer))return!1;var r=t?Ms.Forwards:Ms.Backwards,o=rc(e.getBody()),i=d(Ts,o.next),a=d(Ts,o.prev),u=t?i:a,s=t?Ph:Lh,c=Ss(r,e.getBody(),n),l=Ky.normalizePosition(t,u(c));if(!l||!As(c,l))return!1;if(s(l))return nC(e,n,c.getNode(),r,t,l);var f=u(l);return!!(f&&s(f)&&As(l,f))&&nC(e,n,c.getNode(),r,t,f)}(e,t)},Fx=function(e,t,n){if(e.selection.isCollapsed()&&function(e){return!1!==e.settings.inline_boundaries}(e)){var r=Ds.fromRangeStart(e.selection.getRng());return iC(e,t,n,r)}return!1},Ux=function(e,t){return!!e.selection.isCollapsed()&&sC(e,t)},jx=jf([{removeTable:["element"]},{emptyCells:["cells"]}]),qx=function(e,t){return hC(t,e).isSome()},$x=function(e,t){return g(fh(t,e),function(e){return"caption"===ie(e)})},Wx=function(e,t){return bg(t),e.selection.setCursorLocation(t.dom(),0),k.some(!0)},Kx=function(e,t){var n=yt.fromDom(e.selection.getStart(!0)),r=ry(e);return e.selection.isCollapsed()&&0===r.length?TC(e,t,n):function(e,t){var n=yt.fromDom(e.getBody()),r=e.selection.getRng(),o=ry(e);return 0!==o.length?CC(e,o):zC(e,n,r,t)}(e,n)},Xx=function(e,t){return!!e.selection.isCollapsed()&&function(t,n){var e=Ds.fromRangeStart(t.selection.getRng());return Pc.fromPosition(n,t.getBody(),e).filter(function(e){return n?_h(e):Bh(e)}).bind(function(e){return k.from(ws(n?0:-1,e))}).map(function(e){return t.selection.select(e),!0}).getOr(!1)}(e,t)},Yx=function(e){return y(X(e.selection.getSelectedBlocks(),yt.fromDom),function(e){return!DC(e)&&!function(e){return Se(e).map(DC).getOr(!1)}(e)&&function(e){return ba(e,function(e){return Ge.isContentEditableTrue(e.dom())||Ge.isContentEditableFalse(e.dom())}).exists(function(e){return Ge.isContentEditableTrue(e.dom())})}(e)})},Gx=d(PC,!1),Jx=d(PC,!0),Qx=d(HC,!1),Zx=d(HC,!0),ez=function(e,t,n){if(e.selection.isCollapsed()&&RC(e)){var r=e.dom,o=e.selection.getRng(),i=Ds.fromRangeStart(o),a=r.getParent(o.startContainer,r.isBlock);if(null!==a&&Gx(yt.fromDom(a),i))return _C(e,"outdent"),!0}return!1},tz=function(t,n){t.on("keydown",function(e){!1===e.isDefaultPrevented()&&function(e,t,n){Nx([{keyCode:Ah.BACKSPACE,action:Ex(ez,e,!1)},{keyCode:Ah.BACKSPACE,action:Ex(Lx,e,!1)},{keyCode:Ah.DELETE,action:Ex(Lx,e,!0)},{keyCode:Ah.BACKSPACE,action:Ex(Ix,e,!1)},{keyCode:Ah.DELETE,action:Ex(Ix,e,!0)},{keyCode:Ah.BACKSPACE,action:Ex(Fx,e,t,!1)},{keyCode:Ah.DELETE,action:Ex(Fx,e,t,!0)},{keyCode:Ah.BACKSPACE,action:Ex(Kx,e,!1)},{keyCode:Ah.DELETE,action:Ex(Kx,e,!0)},{keyCode:Ah.BACKSPACE,action:Ex(Xx,e,!1)},{keyCode:Ah.DELETE,action:Ex(Xx,e,!0)},{keyCode:Ah.BACKSPACE,action:Ex(_x,e,!1)},{keyCode:Ah.DELETE,action:Ex(_x,e,!0)},{keyCode:Ah.BACKSPACE,action:Ex(Dx,e,!1)},{keyCode:Ah.DELETE,action:Ex(Dx,e,!0)},{keyCode:Ah.BACKSPACE,action:Ex(Ux,e,!1)},{keyCode:Ah.DELETE,action:Ex(Ux,e,!0)}],n).each(function(e){n.preventDefault()})}(t,n,e)}),t.on("keyup",function(e){!1===e.isDefaultPrevented()&&function(e,t){Nx([{keyCode:Ah.BACKSPACE,action:Ex(Vx,e)},{keyCode:Ah.DELETE,action:Ex(Vx,e)}],t)}(t,e)})},nz=function(e,t){var n,r,o=t,i=e.dom,a=e.schema.getMoveCaretBeforeOnEnterElements();if(t){if(/^(LI|DT|DD)$/.test(t.nodeName)){var u=function(e){for(;e;){if(1===e.nodeType||3===e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}(t.firstChild);u&&/^(UL|OL|DL)$/.test(u.nodeName)&&t.insertBefore(i.doc.createTextNode("\xa0"),t.firstChild)}if(r=i.createRng(),t.normalize(),t.hasChildNodes()){for(var s=new yi(t,t);n=s.current();){if(Ge.isText(n)){r.setStart(n,0),r.setEnd(n,0);break}if(a[n.nodeName.toLowerCase()]){r.setStartBefore(n),r.setEndBefore(n);break}o=n,n=s.next()}n||(r.setStart(o,0),r.setEnd(o,0))}else Ge.isBr(t)?t.nextSibling&&i.isBlock(t.nextSibling)?(r.setStartBefore(t),r.setEndBefore(t)):(r.setStartAfter(t),r.setEndAfter(t)):(r.setStart(t,0),r.setEnd(t,0));e.selection.setRng(r),e.selection.scrollIntoView(t)}},rz=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},oz=LC,iz=function(e){return LC(e).fold($(""),function(e){return e.nodeName.toUpperCase()})},az=function(e){return LC(e).filter(function(e){return Un(yt.fromDom(e))}).isSome()},uz=function(e,t,n,r,o){var i=e.dom,a=e.selection.getRng();if(n!==e.getBody()){!function(e){return IC(e)&&IC(e.parentNode)}(n)||(o="LI");var u=o?t(o):i.create("BR");if(UC(n,r,!0)&&UC(n,r,!1))VC(n,"LI")?i.insertAfter(u,FC(n)):i.replace(u,n);else if(UC(n,r,!0))VC(n,"LI")?(i.insertAfter(u,FC(n)),u.appendChild(i.doc.createTextNode(" ")),u.appendChild(n)):n.parentNode.insertBefore(u,n);else if(UC(n,r,!1))i.insertAfter(u,FC(n));else{n=FC(n);var s=a.cloneRange();s.setStartAfter(r),s.setEndAfter(n);var c=s.extractContents();"LI"===o&&function(e,t){return e.firstChild&&e.firstChild.nodeName===t}(c,"LI")?(u=c.firstChild,i.insertAfter(c,n)):(i.insertAfter(c,n),i.insertAfter(u,n))}i.remove(r),nz(e,u)}},sz=function(a,e){function t(e){var t,n,r,o=s,i=b.getTextInlineElements();if(e||"TABLE"===m||"HR"===m?(t=y.create(e||p),XC(a,t)):t=c.cloneNode(!1),r=t,!1===yf(a))y.setAttrib(t,"style",null),y.setAttrib(t,"class",null);else do{if(i[o.nodeName]){if(rs(o)||Fc(o))continue;n=o.cloneNode(!1),y.setAttrib(n,"id",""),t.hasChildNodes()?n.appendChild(t.firstChild):r=n,t.appendChild(n)}}while((o=o.parentNode)&&o!==u);return jC(r),t}function n(e){var t,n,r=WC(e,s,i);if(Ge.isText(s)&&(e?0<r:r<s.nodeValue.length))return!1;if(s.parentNode===c&&v&&!e)return!0;if(e&&Ge.isElement(s)&&s===c.firstChild)return!0;if(qC(s,"TABLE")||qC(s,"HR"))return v&&!e||!v&&e;var o=new yi(s,c);for(Ge.isText(s)&&(e&&0===r?o.prev():e||r!==s.nodeValue.length||o.next());t=o.current();){if(Ge.isElement(t)){if(!t.getAttribute("data-mce-bogus")&&(n=t.nodeName.toLowerCase(),C[n]&&"br"!==n))return!1}else if(Ge.isText(t)&&!/^[ \t\r\n]*$/.test(t.nodeValue))return!1;e?o.prev():o.next()}return!0}function r(){f=/^(H[1-6]|PRE|FIGURE)$/.test(m)&&"HGROUP"!==g?t(p):t(),bf(a)&&$C(y,h)&&y.isEmpty(c)?f=y.split(h,c):y.insertAfter(f,c),nz(a,f)}var o,u,s,i,c,l,f,d,h,m,g,p,v,y=a.dom,b=a.schema,C=b.getNonEmptyElements(),w=a.selection.getRng();ay(y,w).each(function(e){w.setStart(e.startContainer,e.startOffset),w.setEnd(e.endContainer,e.endOffset)}),s=w.startContainer,i=w.startOffset,p=mf(a),l=!(!e||!e.shiftKey);var x=!(!e||!e.ctrlKey);Ge.isElement(s)&&s.hasChildNodes()&&(v=i>s.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=v&&Ge.isText(s)?s.nodeValue.length:0),(u=KC(y,s))&&((p&&!l||!p&&l)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f=t||"P",d=e.dom,h=KC(d,r);if(!(a=d.getParent(r,d.isBlock))||!$C(d,a)){if(l=(a=a||h)===e.getBody()||function(e){return e&&/^(TD|TH|CAPTION)$/.test(e.nodeName)}(a)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=d.create(f),XC(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&&!d.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,f.toLowerCase())){for(i=d.create(f),XC(e,i),u.parentNode.insertBefore(i,u),s=u;s&&!d.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,p,w,s,i)),c=y.getParent(s,y.isBlock),h=c?y.getParent(c.parentNode,y.isBlock):null,m=c?c.nodeName.toUpperCase():"","LI"!==(g=h?h.nodeName.toUpperCase():"")||x||(h=(c=h).parentNode,m=g),/^(LI|DT|DD)$/.test(m)&&y.isEmpty(c)?uz(a,t,h,c,p):p&&c===a.getBody()||(p=p||"P",Ma(c)?(f=Pa(c),y.isEmpty(c)&&jC(c),nz(a,f)):n()?r():n(!0)?(f=c.parentNode.insertBefore(t(),c),nz(a,qC(c,"HR")?f:c)):((o=function(e){var t=e.cloneRange();return t.setStart(e.startContainer,WC(!0,e.startContainer,e.startOffset)),t.setEnd(e.endContainer,WC(!1,e.endContainer,e.endOffset)),t}(w).cloneRange()).setEndAfter(c),function(e){z(pa(yt.fromDom(e),zt),function(e){var t=e.dom();t.nodeValue=lu(t.nodeValue)})}(d=o.extractContents()),function(e){for(;Ge.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;);}(d),f=d.firstChild,y.insertAfter(d,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;Ge.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=e,(u=o)&&"A"===u.nodeName&&a.isEmpty(u)&&e.remove(o));var a,u}}(y,C,f),function(e,t){var n;t.normalize(),(n=t.lastChild)&&!/^(left|right)$/gi.test(e.getStyle(n,"float",!0))||e.add(t,"br")}(y,c),y.isEmpty(c)&&jC(c),f.normalize(),y.isEmpty(f)?(y.remove(f),r()):nz(a,f)),y.setAttrib(f,"id",""),a.fire("NewBlock",{newBlock:f})))},cz=function(e,t){return!!function(e){return Ge.isBr(e.getNode())}(Ds.after(t))||Pc.nextPosition(e,Ds.after(t)).map(function(e){return Ge.isBr(e.getNode())}).getOr(!1)},lz=function(e,t){var n=function(e){var t=d(Ky.isInlineTarget,e),n=Ds.fromRangeStart(e.selection.getRng());return Jy(t,e.getBody(),n).filter(tw)}(e);n.isSome()?n.each(d(nw,e)):JC(e,t)},fz=function(e){return rw(e,pf(e))},dz=function(e){return rw(e,vf(e))},hz=jf([{br:[]},{block:[]},{none:[]}]),mz=function(e,t){return Xy([hw([ow],hz.none()),hw([uw("summary",!0)],hz.br()),hw([sw(!0),cw(!1),fw],hz.br()),hw([sw(!0),cw(!1)],hz.block()),hw([sw(!0),cw(!0),fw],hz.block()),hw([sw(!0),cw(!0)],hz.br()),hw([aw(!0),fw],hz.br()),hw([aw(!0)],hz.block()),hw([iw(!0),fw,dw],hz.block()),hw([iw(!0)],hz.br()),hw([lw],hz.br()),hw([iw(!1),fw],hz.br()),hw([dw],hz.block())],[e,!(!t||!t.shiftKey)]).getOr(hz.none())},gz=function(e,t){mz(e,t).fold(function(){lz(e,t)},function(){sz(e,t)},i)},pz=function(t){t.on("keydown",function(e){e.keyCode===Ah.ENTER&&function(e,t){t.isDefaultPrevented()||(t.preventDefault(),function(e){e.typing&&(e.typing=!1,e.add())}(e.undoManager),e.undoManager.transact(function(){!1===e.selection.isCollapsed()&&e.execCommand("Delete"),gz(e,t)}))}(t,e)})},vz=d(mw,"\xa0"),yz=d(mw," "),bz=function(t){t.on("keydown",function(e){!1===e.isDefaultPrevented()&&function(e,t){Nx([{keyCode:Ah.SPACEBAR,action:Ex(Aw,e)}],t).each(function(e){t.preventDefault()})}(t,e)})},Cz=function(e){e.on("keyup compositionstart",d(Rw,e))},wz=oe().browser,xz=function(t){t.on("keydown",function(e){!1===e.isDefaultPrevented()&&function(e,t){Nx([{keyCode:Ah.END,action:hb(e,!0)},{keyCode:Ah.HOME,action:hb(e,!1)}],t).each(function(e){t.preventDefault()})}(t,e)})},zz=function(e){var t=nb.setupSelectedState(e);Cz(e),Sx(e,t),tz(e,t),pz(e),bz(e),Dw(e),xz(e)},Ez=Xi.DOM,Nz=function(t,e){var n,r,o=t.settings,i=t.getElement(),a=t.getDoc();o.inline||(t.getElement().style.visibility=t.orgVisibility),e||t.inline||(a.open(),a.write(t.iframeHTML),a.close()),t.inline&&(t.on("remove",function(){var e=this.getBody();Ez.removeClass(e,"mce-content-body"),Ez.removeClass(e,"mce-edit-focus"),Ez.setAttrib(e,"contentEditable",null)}),Ez.addClass(i,"mce-content-body"),t.contentDocument=a=j.document,t.contentWindow=j.window,t.bodyElement=i,t.contentAreaContainer=i,o.root_name=i.nodeName.toLowerCase()),(n=t.getBody()).disabled=!0,t.readonly=o.readonly,t.readonly||(t.inline&&"static"===Ez.getStyle(n,"position",!0)&&(n.style.position="relative"),n.contentEditable=t.getParam("content_editable_state",!0)),n.disabled=!1,t.editorUpload=th(t),t.schema=pr(o),t.dom=Xi(a,{keep_values:!0,url_converter:t.convertURL,url_converter_scope:t,hex_colors:o.force_hex_style_colors,update_styles:!0,root_element:t.inline?t.getBody():null,collect:function(){return t.inline},schema:t.schema,contentCssCors:Df(t),referrerPolicy:_f(t),onSetAttrib:function(e){t.fire("SetAttrib",e)}}),t.parser=function(u){var e=Np(u.settings,u.schema);return e.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var n,r,o,i=e.length,a=u.dom;i--;)if(r=(n=e[i]).attr(t),o="data-mce-"+t,!n.attr(o)){if(0===r.indexOf("data:")||0===r.indexOf("blob:"))continue;"style"===t?((r=a.serializeStyle(a.parseStyle(r),n.name)).length||(r=null),n.attr(o,r),n.attr(t,r)):"tabindex"===t?(n.attr(o,r),n.attr(t,null)):n.attr(o,u.convertURL(r,t,n.name))}}),e.addNodeFilter("script",function(e){for(var t,n,r=e.length;r--;)0!==(n=(t=e[r]).attr("type")||"no/type").indexOf("mce-")&&t.attr("type","mce-"+n)}),e.addNodeFilter("#cdata",function(e){for(var t,n=e.length;n--;)(t=e[n]).type=8,t.name="#comment",t.value="[CDATA["+t.value+"]]"}),e.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t,n=e.length,r=u.schema.getNonEmptyElements();n--;)(t=e[n]).isEmpty(r)&&0===t.getAll("br").length&&(t.append(new ul("br",1)).shortEnded=!0)}),e}(t),t.serializer=Ap(o,t),t.selection=ly(t.dom,t.getWin(),t.serializer,t),t.annotator=nl(t),t.formatter=Cp(t),t.undoManager=mm(t),t._nodeChangeDispatcher=new ph(t),t._selectionOverrides=om(t),Hw(t),Ow(t),zz(t),dh(t),t.fire("PreInit"),o.browser_spellcheck||o.gecko_spellcheck||(a.body.spellcheck=!1,Ez.setAttrib(n,"spellcheck","false")),t.quirks=_w(t),t.fire("PostRender");var u=Vf(t);u!==undefined&&(n.dir=u),o.protect&&t.on("BeforeSetContent",function(t){Mn.each(o.protect,function(e){t.content=t.content.replace(e,function(e){return"\x3c!--mce:protected "+escape(e)+"--\x3e"})})}),t.on("SetContent",function(){t.addVisual(t.getBody())}),t.load({initial:!0,format:"html"}),t.startContent=t.getContent({format:"raw"}),t.on("compositionstart compositionend",function(e){t.composing="compositionstart"===e.type}),0<t.contentStyles.length&&(r="",Mn.each(t.contentStyles,function(e){r+=e+"\r\n"}),t.dom.addStyle(r)),function(e){return e.inline?Ez.styleSheetLoader:e.dom.styleSheetLoader}(t).loadAll(t.contentCSS,function(e){Pw(t)},function(e){Pw(t)}),o.content_style&&function(e,t){var n=yt.fromDom(e.getDoc().head),r=yt.fromTag("style");Tt(r,"type","text/css"),Di(r,yt.fromText(t)),Di(n,r)}(t,o.content_style)},Sz=Xi.DOM,kz=function(e,t){var n=Lw(e,t);t.editorContainer&&(Sz.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=Sz.isHidden(t.editorContainer)),e.getElement().style.display="none",Sz.setAttrib(e.id,"aria-hidden","true"),n||Nz(e)},Tz=Xi.DOM,Az=function(t,n,e){var r=jd.get(e),o=jd.urls[e]||t.documentBaseUrl.replace(/\/$/,"");if(e=Mn.trim(e),r&&-1===Mn.inArray(n,e)){if(Mn.each(jd.dependencies(e),function(e){Az(t,n,e)}),t.plugins[e])return;try{var i=new r(t,o,t.$);(t.plugins[e]=i).init&&(i.init(t,o),n.push(e))}catch(yN){Fd.pluginInitError(t,e,yN)}}},Mz=function(e){e.fire("ScriptsLoaded"),function(n){var e=Mn.trim(n.settings.icons),r=n.ui.registry.getAll().icons,t=G(G({},{"accessibility-check":'<svg width="24" height="24"><path d="M12 2a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.1.9-2 2-2zm8 7h-5v12c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-5c0-.6-.4-1-1-1a1 1 0 0 0-1 1v5c0 .6-.4 1-1 1a1 1 0 0 1-1-1V9H4a1 1 0 1 1 0-2h16c.6 0 1 .4 1 1s-.4 1-1 1z" fill-rule="nonzero"/></svg>',"action-next":'<svg width="24" height="24"><path fill-rule="nonzero" d="M5.7 7.3a1 1 0 0 0-1.4 1.4l7.7 7.7 7.7-7.7a1 1 0 1 0-1.4-1.4L12 13.6 5.7 7.3z"/></svg>',"action-prev":'<svg width="24" height="24"><path fill-rule="nonzero" d="M18.3 15.7a1 1 0 0 0 1.4-1.4L12 6.6l-7.7 7.7a1 1 0 0 0 1.4 1.4L12 9.4l6.3 6.3z"/></svg>',"align-center":'<svg width="24" height="24"><path d="M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm3 4h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 1 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm-3-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',"align-justify":'<svg width="24" height="24"><path d="M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',"align-left":'<svg width="24" height="24"><path d="M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',"align-none":'<svg width="24" height="24"><path d="M14.2 5L13 7H5a1 1 0 1 1 0-2h9.2zm4 0h.8a1 1 0 0 1 0 2h-2l1.2-2zm-6.4 4l-1.2 2H5a1 1 0 0 1 0-2h6.8zm4 0H19a1 1 0 0 1 0 2h-4.4l1.2-2zm-6.4 4l-1.2 2H5a1 1 0 0 1 0-2h4.4zm4 0H19a1 1 0 0 1 0 2h-6.8l1.2-2zM7 17l-1.2 2H5a1 1 0 0 1 0-2h2zm4 0h8a1 1 0 0 1 0 2H9.8l1.2-2zm5.2-13.5l1.3.7-9.7 16.3-1.3-.7 9.7-16.3z" fill-rule="evenodd"/></svg>',"align-right":'<svg width="24" height="24"><path d="M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm6 4h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm-6-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',"arrow-left":'<svg width="24" height="24"><path d="M5.6 13l12 6a1 1 0 0 0 1.4-1V6a1 1 0 0 0-1.4-.9l-12 6a1 1 0 0 0 0 1.8z" fill-rule="evenodd"/></svg>',"arrow-right":'<svg width="24" height="24"><path d="M18.5 13l-12 6A1 1 0 0 1 5 18V6a1 1 0 0 1 1.4-.9l12 6a1 1 0 0 1 0 1.8z" fill-rule="evenodd"/></svg>',bold:'<svg width="24" height="24"><path d="M7.8 19c-.3 0-.5 0-.6-.2l-.2-.5V5.7c0-.2 0-.4.2-.5l.6-.2h5c1.5 0 2.7.3 3.5 1 .7.6 1.1 1.4 1.1 2.5a3 3 0 0 1-.6 1.9c-.4.6-1 1-1.6 1.2.4.1.9.3 1.3.6s.8.7 1 1.2c.4.4.5 1 .5 1.6 0 1.3-.4 2.3-1.3 3-.8.7-2.1 1-3.8 1H7.8zm5-8.3c.6 0 1.2-.1 1.6-.5.4-.3.6-.7.6-1.3 0-1.1-.8-1.7-2.3-1.7H9.3v3.5h3.4zm.5 6c.7 0 1.3-.1 1.7-.4.4-.4.6-.9.6-1.5s-.2-1-.7-1.4c-.4-.3-1-.4-2-.4H9.4v3.8h4z" fill-rule="evenodd"/></svg>',bookmark:'<svg width="24" height="24"><path d="M6 4v17l6-4 6 4V4c0-.6-.4-1-1-1H7a1 1 0 0 0-1 1z" fill-rule="nonzero"/></svg>',"border-width":'<svg width="24" height="24"><path d="M5 14.8h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2zm-.5 3.7h15c.3 0 .5.2.5.5s-.2.5-.5.5h-15a.5.5 0 1 1 0-1zm.5-8.3h14c.6 0 1 .4 1 1v1c0 .5-.4 1-1 1H5a1 1 0 0 1-1-1v-1c0-.6.4-1 1-1zm0-5.7h14c.6 0 1 .4 1 1v2c0 .6-.4 1-1 1H5a1 1 0 0 1-1-1v-2c0-.6.4-1 1-1z" fill-rule="evenodd"/></svg>',brightness:'<svg width="24" height="24"><path d="M12 17c.3 0 .5.1.7.3.2.2.3.4.3.7v1c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7v-1c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3zm0-10a1 1 0 0 1-.7-.3A1 1 0 0 1 11 6V5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3.3 0 .5.1.7.3.2.2.3.4.3.7v1c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3zm7 4c.3 0 .5.1.7.3.2.2.3.4.3.7 0 .3-.1.5-.3.7a1 1 0 0 1-.7.3h-1a1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h1zM7 12c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3H5a1 1 0 0 1-.7-.3A1 1 0 0 1 4 12c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h1c.3 0 .5.1.7.3.2.2.3.4.3.7zm10 3.5l.7.8c.2.1.3.4.3.6 0 .3-.1.6-.3.8a1 1 0 0 1-.8.3 1 1 0 0 1-.6-.3l-.8-.7a1 1 0 0 1-.3-.8c0-.2.1-.5.3-.7a1 1 0 0 1 1.4 0zm-10-7l-.7-.8a1 1 0 0 1-.3-.6c0-.3.1-.6.3-.8.2-.2.5-.3.8-.3.2 0 .5.1.7.3l.7.7c.2.2.3.5.3.8 0 .2-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.8-.3zm10 0a1 1 0 0 1-.8.3 1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.3.1-.6.3-.8l.8-.7c.1-.2.4-.3.6-.3.3 0 .6.1.8.3.2.2.3.5.3.8 0 .2-.1.5-.3.7l-.7.7zm-10 7c.2-.2.5-.3.8-.3.2 0 .5.1.7.3a1 1 0 0 1 0 1.4l-.8.8a1 1 0 0 1-.6.3 1 1 0 0 1-.8-.3 1 1 0 0 1-.3-.8c0-.2.1-.5.3-.6l.7-.8zM12 8a4 4 0 0 1 3.7 2.4 4 4 0 0 1 0 3.2A4 4 0 0 1 12 16a4 4 0 0 1-3.7-2.4 4 4 0 0 1 0-3.2A4 4 0 0 1 12 8zm0 6.5c.7 0 1.3-.2 1.8-.7.5-.5.7-1.1.7-1.8s-.2-1.3-.7-1.8c-.5-.5-1.1-.7-1.8-.7s-1.3.2-1.8.7c-.5.5-.7 1.1-.7 1.8s.2 1.3.7 1.8c.5.5 1.1.7 1.8.7z" fill-rule="evenodd"/></svg>',browse:'<svg width="24" height="24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4v-2h4V8H5v10h4v2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zm-8 9.4l-2.3 2.3a1 1 0 1 1-1.4-1.4l4-4a1 1 0 0 1 1.4 0l4 4a1 1 0 0 1-1.4 1.4L13 13.4V20a1 1 0 0 1-2 0v-6.6z" fill-rule="nonzero"/></svg>',cancel:'<svg width="24" height="24"><path d="M12 4.6a7.4 7.4 0 1 1 0 14.8 7.4 7.4 0 0 1 0-14.8zM12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zm0 8L14.8 8l1 1.1-2.7 2.8 2.7 2.7-1.1 1.1-2.7-2.7-2.7 2.7-1-1.1 2.6-2.7-2.7-2.7 1-1.1 2.8 2.7z" fill-rule="nonzero"/></svg>',"change-case":'<svg width="24" height="24"><path d="M18.4 18.2v-.6c-.5.8-1.3 1.2-2.4 1.2-2.2 0-3.3-1.6-3.3-4.8 0-3.1 1-4.7 3.3-4.7 1.1 0 1.8.3 2.4 1.1v-.6c0-.5.4-.8.8-.8s.8.3.8.8v8.4c0 .5-.4.8-.8.8a.8.8 0 0 1-.8-.8zm-2-7.4c-1.3 0-1.8.9-1.8 3.2 0 2.4.5 3.3 1.7 3.3 1.3 0 1.8-.9 1.8-3.2 0-2.4-.5-3.3-1.7-3.3zM10 15.7H5.5l-.8 2.6a1 1 0 0 1-1 .7h-.2a.7.7 0 0 1-.7-1l4-12a1 1 0 1 1 2 0l4 12a.7.7 0 0 1-.8 1h-.2a1 1 0 0 1-1-.7l-.8-2.6zm-.3-1.5l-2-6.5-1.9 6.5h3.9z" fill-rule="evenodd"/></svg>',"character-count":'<svg width="24" height="24"><path d="M4 11.5h16v1H4v-1zm4.8-6.8V10H7.7V5.8h-1v-1h2zM11 8.3V9h2v1h-3V7.7l2-1v-.9h-2v-1h3v2.4l-2 1zm6.3-3.4V10h-3.1V9h2.1V8h-2.1V6.8h2.1v-1h-2.1v-1h3.1zM5.8 16.4c0-.5.2-.8.5-1 .2-.2.6-.3 1.2-.3l.8.1c.2 0 .4.2.5.3l.4.4v2.8l.2.3H8.2v-.1-.2l-.6.3H7c-.4 0-.7 0-1-.2a1 1 0 0 1-.3-.9c0-.3 0-.6.3-.8.3-.2.7-.4 1.2-.4l.6-.2h.3v-.2l-.1-.2a.8.8 0 0 0-.5-.1 1 1 0 0 0-.4 0l-.3.4h-1zm2.3.8h-.2l-.2.1-.4.1a1 1 0 0 0-.4.2l-.2.2.1.3.5.1h.4l.4-.4v-.6zm2-3.4h1.2v1.7l.5-.3h.5c.5 0 .9.1 1.2.5.3.4.5.8.5 1.4 0 .6-.2 1.1-.5 1.5-.3.4-.7.6-1.3.6l-.6-.1-.4-.4v.4h-1.1v-5.4zm1.1 3.3c0 .3 0 .6.2.8a.7.7 0 0 0 1.2 0l.2-.8c0-.4 0-.6-.2-.8a.7.7 0 0 0-.6-.3l-.6.3-.2.8zm6.1-.5c0-.2 0-.3-.2-.4a.8.8 0 0 0-.5-.2c-.3 0-.5.1-.6.3l-.2.9c0 .3 0 .6.2.8.1.2.3.3.6.3.2 0 .4 0 .5-.2l.2-.4h1.1c0 .5-.3.8-.6 1.1a2 2 0 0 1-1.3.4c-.5 0-1-.2-1.3-.6a2 2 0 0 1-.5-1.4c0-.6.1-1.1.5-1.5.3-.4.8-.5 1.4-.5.5 0 1 0 1.2.3.4.3.5.7.5 1.2h-1v-.1z" fill-rule="evenodd"/></svg>',"checklist-rtl":'<svg width="24" height="24"><path d="M5 17h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm14.2 11c.2-.4.6-.5.9-.3.3.2.4.6.2 1L18 20c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L18 14c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L18 8c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8z" fill-rule="evenodd"/></svg>',checklist:'<svg width="24" height="24"><path d="M11 17h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8a1 1 0 0 1 0 2h-8a1 1 0 0 1 0-2zM7.2 16c.2-.4.6-.5.9-.3.3.2.4.6.2 1L6 20c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L6 14c-.2.3-.7.4-1 0l-1.3-1.3a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8zm0-6c.2-.4.6-.5.9-.3.3.2.4.6.2 1L6 8c-.2.3-.7.4-1 0L3.8 6.9a.7.7 0 0 1 0-1c.3-.2.7-.2 1 0l.7.9 1.7-2.8z" fill-rule="evenodd"/></svg>',checkmark:'<svg width="24" height="24"><path d="M18.2 5.4a1 1 0 0 1 1.6 1.2l-8 12a1 1 0 0 1-1.5.1l-5-5a1 1 0 1 1 1.4-1.4l4.1 4.1 7.4-11z" fill-rule="nonzero"/></svg>',"chevron-down":'<svg width="10" height="10"><path d="M8.7 2.2c.3-.3.8-.3 1 0 .4.4.4.9 0 1.2L5.7 7.8c-.3.3-.9.3-1.2 0L.2 3.4a.8.8 0 0 1 0-1.2c.3-.3.8-.3 1.1 0L5 6l3.7-3.8z" fill-rule="nonzero"/></svg>',"chevron-left":'<svg width="10" height="10"><path d="M7.8 1.3L4 5l3.8 3.7c.3.3.3.8 0 1-.4.4-.9.4-1.2 0L2.2 5.7a.8.8 0 0 1 0-1.2L6.6.2C7 0 7.4 0 7.8.2c.3.3.3.8 0 1.1z" fill-rule="nonzero"/></svg>',"chevron-right":'<svg width="10" height="10"><path d="M2.2 1.3a.8.8 0 0 1 0-1c.4-.4.9-.4 1.2 0l4.4 4.1c.3.4.3.9 0 1.2L3.4 9.8c-.3.3-.8.3-1.2 0a.8.8 0 0 1 0-1.1L6 5 2.2 1.3z" fill-rule="nonzero"/></svg>',"chevron-up":'<svg width="10" height="10"><path d="M8.7 7.8L5 4 1.3 7.8c-.3.3-.8.3-1 0a.8.8 0 0 1 0-1.2l4.1-4.4c.3-.3.9-.3 1.2 0l4.2 4.4c.3.3.3.9 0 1.2-.3.3-.8.3-1.1 0z" fill-rule="nonzero"/></svg>',close:'<svg width="24" height="24"><path d="M17.3 8.2L13.4 12l3.9 3.8a1 1 0 0 1-1.5 1.5L12 13.4l-3.8 3.9a1 1 0 0 1-1.5-1.5l3.9-3.8-3.9-3.8a1 1 0 0 1 1.5-1.5l3.8 3.9 3.8-3.9a1 1 0 0 1 1.5 1.5z" fill-rule="evenodd"/></svg>',"code-sample":'<svg width="24" height="26"><path d="M7.1 11a2.8 2.8 0 0 1-.8 2 2.8 2.8 0 0 1 .8 2v1.7c0 .3.1.6.4.8.2.3.5.4.8.4.3 0 .4.2.4.4v.8c0 .2-.1.4-.4.4-.7 0-1.4-.3-2-.8-.5-.6-.8-1.3-.8-2V15c0-.3-.1-.6-.4-.8-.2-.3-.5-.4-.8-.4a.4.4 0 0 1-.4-.4v-.8c0-.2.2-.4.4-.4.3 0 .6-.1.8-.4.3-.2.4-.5.4-.8V9.3c0-.7.3-1.4.8-2 .6-.5 1.3-.8 2-.8.3 0 .4.2.4.4v.8c0 .2-.1.4-.4.4-.3 0-.6.1-.8.4-.3.2-.4.5-.4.8V11zm9.8 0V9.3c0-.3-.1-.6-.4-.8-.2-.3-.5-.4-.8-.4a.4.4 0 0 1-.4-.4V7c0-.2.1-.4.4-.4.7 0 1.4.3 2 .8.5.6.8 1.3.8 2V11c0 .3.1.6.4.8.2.3.5.4.8.4.2 0 .4.2.4.4v.8c0 .2-.2.4-.4.4-.3 0-.6.1-.8.4-.3.2-.4.5-.4.8v1.7c0 .7-.3 1.4-.8 2-.6.5-1.3.8-2 .8a.4.4 0 0 1-.4-.4v-.8c0-.2.1-.4.4-.4.3 0 .6-.1.8-.4.3-.2.4-.5.4-.8V15a2.8 2.8 0 0 1 .8-2 2.8 2.8 0 0 1-.8-2zm-3.3-.4c0 .4-.1.8-.5 1.1-.3.3-.7.5-1.1.5-.4 0-.8-.2-1.1-.5-.4-.3-.5-.7-.5-1.1 0-.5.1-.9.5-1.2.3-.3.7-.4 1.1-.4.4 0 .8.1 1.1.4.4.3.5.7.5 1.2zM12 13c.4 0 .8.1 1.1.5.4.3.5.7.5 1.1 0 1-.1 1.6-.5 2a3 3 0 0 1-1.1 1c-.4.3-.8.4-1.1.4a.5.5 0 0 1-.5-.5V17a3 3 0 0 0 1-.2l.6-.6c-.6 0-1-.2-1.3-.5-.2-.3-.3-.7-.3-1 0-.5.1-1 .5-1.2.3-.4.7-.5 1.1-.5z" fill-rule="evenodd"/></svg>',"color-levels":'<svg width="24" height="24"><path d="M17.5 11.4A9 9 0 0 1 18 14c0 .5 0 1-.2 1.4 0 .4-.3.9-.5 1.3a6.2 6.2 0 0 1-3.7 3 5.7 5.7 0 0 1-3.2 0A5.9 5.9 0 0 1 7.6 18a6.2 6.2 0 0 1-1.4-2.6 6.7 6.7 0 0 1 0-2.8c0-.4.1-.9.3-1.3a13.6 13.6 0 0 1 2.3-4A20 20 0 0 1 12 4a26.4 26.4 0 0 1 3.2 3.4 18.2 18.2 0 0 1 2.3 4zm-2 4.5c.4-.7.5-1.4.5-2a7.3 7.3 0 0 0-1-3.2c.2.6.2 1.2.2 1.9a4.5 4.5 0 0 1-1.3 3 5.3 5.3 0 0 1-2.3 1.5 4.9 4.9 0 0 1-2 .1 4.3 4.3 0 0 0 2.4.8 4 4 0 0 0 2-.6 4 4 0 0 0 1.5-1.5z" fill-rule="evenodd"/></svg>',"color-picker":'<svg width="24" height="24"><path d="M12 3a9 9 0 0 0 0 18 1.5 1.5 0 0 0 1.1-2.5c-.2-.3-.4-.6-.4-1 0-.8.7-1.5 1.5-1.5H16a5 5 0 0 0 5-5c0-4.4-4-8-9-8zm-5.5 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm3-4a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm3 4a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z" fill-rule="nonzero"/></svg>',"color-swatch-remove-color":'<svg width="24" height="24"><path stroke="#000" stroke-width="2" d="M21 3L3 21" fill-rule="evenodd"/></svg>',"color-swatch":'<svg width="24" height="24"><rect x="3" y="3" width="18" height="18" rx="1" fill-rule="evenodd"/></svg>',"comment-add":'<svg width="24" height="24"><g fill-rule="nonzero"><path d="M9 19l3-2h7c.6 0 1-.4 1-1V6c0-.6-.4-1-1-1H5a1 1 0 0 0-1 1v10c0 .6.4 1 1 1h4v2zm-2 4v-4H5a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3h-6.4L7 23z"/><path d="M13 10h2a1 1 0 0 1 0 2h-2v2a1 1 0 0 1-2 0v-2H9a1 1 0 0 1 0-2h2V8a1 1 0 0 1 2 0v2z"/></g></svg>',comment:'<svg width="24" height="24"><path fill-rule="nonzero" d="M9 19l3-2h7c.6 0 1-.4 1-1V6c0-.6-.4-1-1-1H5a1 1 0 0 0-1 1v10c0 .6.4 1 1 1h4v2zm-2 4v-4H5a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3h-6.4L7 23z"/></svg>',contrast:'<svg width="24" height="24"><path d="M12 4a7.8 7.8 0 0 1 5.7 2.3A8 8 0 1 1 12 4zm-6 8a6 6 0 0 0 6 6V6a6 6 0 0 0-6 6z" fill-rule="evenodd"/></svg>',copy:'<svg width="24" height="24"><path d="M16 3H6a2 2 0 0 0-2 2v11h2V5h10V3zm1 4a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V9c0-1.2.9-2 2-2h7zm0 12V9h-7v10h7z" fill-rule="nonzero"/></svg>',crop:'<svg width="24" height="24"><path d="M17 8v7h2c.6 0 1 .4 1 1s-.4 1-1 1h-2v2c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-2H7V9H5a1 1 0 1 1 0-2h2V5c0-.6.4-1 1-1s1 .4 1 1v2h7l3-3 1 1-3 3zM9 9v5l5-5H9zm1 6h5v-5l-5 5z" fill-rule="evenodd"/></svg>',cut:'<svg width="24" height="24"><path d="M18 15c.6.7 1 1.4 1 2.3 0 .8-.2 1.5-.7 2l-.8.5-1 .2c-.4 0-.8 0-1.2-.3a3.9 3.9 0 0 1-2.1-2.2c-.2-.5-.3-1-.2-1.5l-1-1-1 1c0 .5 0 1-.2 1.5-.1.5-.4 1-.9 1.4-.3.4-.7.6-1.2.8l-1.2.3c-.4 0-.7 0-1-.2-.3 0-.6-.3-.8-.5-.5-.5-.8-1.2-.7-2 0-.9.4-1.6 1-2.2A3.7 3.7 0 0 1 8.6 14H9l1-1-4-4-.5-1a3.3 3.3 0 0 1 0-2c0-.4.3-.7.5-1l6 6 6-6 .5 1a3.3 3.3 0 0 1 0 2c0 .4-.3.7-.5 1l-4 4 1 1h.5c.4 0 .8 0 1.2.3.5.2.9.4 1.2.8zm-8.5 2.2l.1-.4v-.3-.4a1 1 0 0 0-.2-.5 1 1 0 0 0-.4-.2 1.6 1.6 0 0 0-.8 0 2.6 2.6 0 0 0-.8.3 2.5 2.5 0 0 0-.9 1.1l-.1.4v.7l.2.5.5.2h.7a2.5 2.5 0 0 0 .8-.3 2.8 2.8 0 0 0 1-1zm2.5-2.8c.4 0 .7-.1 1-.4.3-.3.4-.6.4-1s-.1-.7-.4-1c-.3-.3-.6-.4-1-.4s-.7.1-1 .4c-.3.3-.4.6-.4 1s.1.7.4 1c.3.3.6.4 1 .4zm5.4 4l.2-.5v-.4-.3a2.6 2.6 0 0 0-.3-.8 2.4 2.4 0 0 0-.7-.7 2.5 2.5 0 0 0-.8-.3 1.5 1.5 0 0 0-.8 0 1 1 0 0 0-.4.2 1 1 0 0 0-.2.5 1.5 1.5 0 0 0 0 .7v.4l.3.4.3.4a2.8 2.8 0 0 0 .8.5l.4.1h.7l.5-.2z" fill-rule="evenodd"/></svg>',"document-properties":'<svg width="24" height="24"><path d="M14.4 3H7a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h10a2 2 0 0 0 2-2V7.6L14.4 3zM17 19H7V5h6v4h4v10z" fill-rule="nonzero"/></svg>',drag:'<svg width="24" height="24"><path d="M13 5h2v2h-2V5zm0 4h2v2h-2V9zM9 9h2v2H9V9zm4 4h2v2h-2v-2zm-4 0h2v2H9v-2zm0 4h2v2H9v-2zm4 0h2v2h-2v-2zM9 5h2v2H9V5z" fill-rule="evenodd"/></svg>',duplicate:'<svg width="24" height="24"><g fill-rule="nonzero"><path d="M16 3v2H6v11H4V5c0-1.1.9-2 2-2h10zm3 8h-2V9h-7v10h9a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V9c0-1.2.9-2 2-2h7a2 2 0 0 1 2 2v2z"/><path d="M17 14h1a1 1 0 0 1 0 2h-1v1a1 1 0 0 1-2 0v-1h-1a1 1 0 0 1 0-2h1v-1a1 1 0 0 1 2 0v1z"/></g></svg>',"edit-block":'<svg width="24" height="24"><path fill-rule="nonzero" d="M19.8 8.8l-9.4 9.4c-.2.2-.5.4-.9.4l-5.4 1.2 1.2-5.4.5-.8 9.4-9.4c.7-.7 1.8-.7 2.5 0l2.1 2.1c.7.7.7 1.8 0 2.5zm-2-.2l1-.9v-.3l-2.2-2.2a.3.3 0 0 0-.3 0l-1 1L18 8.5zm-1 1l-2.5-2.4-6 6 2.5 2.5 6-6zm-7 7.1l-2.6-2.4-.3.3-.1.2-.7 3 3.1-.6h.1l.4-.5z"/></svg>',"edit-image":'<svg width="24" height="24"><path d="M18 16h2V7a2 2 0 0 0-2-2H7v2h11v9zM6 17h15a1 1 0 0 1 0 2h-1v1a1 1 0 0 1-2 0v-1H6a2 2 0 0 1-2-2V7H3a1 1 0 1 1 0-2h1V4a1 1 0 1 1 2 0v13zm3-5.3l1.3 2 3-4.7 3.7 6H7l2-3.3z" fill-rule="nonzero"/></svg>',"embed-page":'<svg width="24" height="24"><path d="M19 6V5H5v14h2A13 13 0 0 1 19 6zm0 1.4c-.8.8-1.6 2.4-2.2 4.6H19V7.4zm0 5.6h-2.4c-.4 1.8-.6 3.8-.6 6h3v-6zm-4 6c0-2.2.2-4.2.6-6H13c-.7 1.8-1.1 3.8-1.1 6h3zm-4 0c0-2.2.4-4.2 1-6H9.6A12 12 0 0 0 8 19h3zM4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm11.8 9c.4-1.9 1-3.4 1.8-4.5a9.2 9.2 0 0 0-4 4.5h2.2zm-3.4 0a12 12 0 0 1 2.8-4 12 12 0 0 0-5 4h2.2z" fill-rule="nonzero"/></svg>',embed:'<svg width="24" height="24"><path d="M4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm1 2v14h14V5H5zm4.8 2.6l5.6 4a.5.5 0 0 1 0 .8l-5.6 4A.5.5 0 0 1 9 16V8a.5.5 0 0 1 .8-.4z" fill-rule="nonzero"/></svg>',emoji:'<svg width="24" height="24"><path d="M9 11c.6 0 1-.4 1-1s-.4-1-1-1a1 1 0 0 0-1 1c0 .6.4 1 1 1zm6 0c.6 0 1-.4 1-1s-.4-1-1-1a1 1 0 0 0-1 1c0 .6.4 1 1 1zm-3 5.5c2.1 0 4-1.5 4.4-3.5H7.6c.5 2 2.3 3.5 4.4 3.5zM12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 14.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13z" fill-rule="nonzero"/></svg>',fill:'<svg width="24" height="26"><path d="M16.6 12l-9-9-1.4 1.4 2.4 2.4-5.2 5.1c-.5.6-.5 1.6 0 2.2L9 19.6a1.5 1.5 0 0 0 2.2 0l5.5-5.5c.5-.6.5-1.6 0-2.2zM5.2 13L10 8.2l4.8 4.8H5.2zM19 14.5s-2 2.2-2 3.5c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.3-2-3.5-2-3.5z" fill-rule="nonzero"/></svg>',"flip-horizontally":'<svg width="24" height="24"><path d="M14 19h2v-2h-2v2zm4-8h2V9h-2v2zM4 7v10c0 1.1.9 2 2 2h3v-2H6V7h3V5H6a2 2 0 0 0-2 2zm14-2v2h2a2 2 0 0 0-2-2zm-7 16h2V3h-2v18zm7-6h2v-2h-2v2zm-4-8h2V5h-2v2zm4 12a2 2 0 0 0 2-2h-2v2z" fill-rule="nonzero"/></svg>',"flip-vertically":'<svg width="24" height="24"><path d="M5 14v2h2v-2H5zm8 4v2h2v-2h-2zm4-14H7a2 2 0 0 0-2 2v3h2V6h10v3h2V6a2 2 0 0 0-2-2zm2 14h-2v2a2 2 0 0 0 2-2zM3 11v2h18v-2H3zm6 7v2h2v-2H9zm8-4v2h2v-2h-2zM5 18c0 1.1.9 2 2 2v-2H5z" fill-rule="nonzero"/></svg>',"format-painter":'<svg width="24" height="24"><path d="M18 5V4c0-.5-.4-1-1-1H5a1 1 0 0 0-1 1v4c0 .6.5 1 1 1h12c.6 0 1-.4 1-1V7h1v4H9v9c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-7h8V5h-3z" fill-rule="nonzero"/></svg>',fullscreen:'<svg width="24" height="24"><path d="M15.3 10l-1.2-1.3 2.9-3h-2.3a.9.9 0 1 1 0-1.7H19c.5 0 .9.4.9.9v4.4a.9.9 0 1 1-1.8 0V7l-2.9 3zm0 4l3 3v-2.3a.9.9 0 1 1 1.7 0V19c0 .5-.4.9-.9.9h-4.4a.9.9 0 1 1 0-1.8H17l-3-2.9 1.3-1.2zM10 15.4l-2.9 3h2.3a.9.9 0 1 1 0 1.7H5a.9.9 0 0 1-.9-.9v-4.4a.9.9 0 1 1 1.8 0V17l2.9-3 1.2 1.3zM8.7 10L5.7 7v2.3a.9.9 0 0 1-1.7 0V5c0-.5.4-.9.9-.9h4.4a.9.9 0 0 1 0 1.8H7l3 2.9-1.3 1.2z" fill-rule="nonzero"/></svg>',gallery:'<svg width="24" height="24"><path fill-rule="nonzero" d="M5 15.7l2.3-2.2c.3-.3.7-.3 1 0L11 16l5.1-5c.3-.4.8-.4 1 0l2 1.9V8H5v7.7zM5 18V19h3l1.8-1.9-2-2L5 17.9zm14-3l-2.5-2.4-6.4 6.5H19v-4zM4 6h16c.6 0 1 .4 1 1v13c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V7c0-.6.4-1 1-1zm6 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4zM4.5 4h15a.5.5 0 1 1 0 1h-15a.5.5 0 0 1 0-1zm2-2h11a.5.5 0 1 1 0 1h-11a.5.5 0 0 1 0-1z"/></svg>',gamma:'<svg width="24" height="24"><path d="M4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm1 2v14h14V5H5zm6.5 11.8V14L9.2 8.7a5.1 5.1 0 0 0-.4-.8l-.1-.2H8 8v-1l.3-.1.3-.1h.7a1 1 0 0 1 .6.5l.1.3a8.5 8.5 0 0 1 .3.6l1.9 4.6 2-5.2a1 1 0 0 1 1-.6.5.5 0 0 1 .5.6L13 14v2.8a.7.7 0 0 1-1.4 0z" fill-rule="nonzero"/></svg>',help:'<svg width="24" height="24"><g fill-rule="evenodd"><path d="M12 5.5a6.5 6.5 0 0 0-6 9 6.3 6.3 0 0 0 1.4 2l1 1a6.3 6.3 0 0 0 3.6 1 6.5 6.5 0 0 0 6-9 6.3 6.3 0 0 0-1.4-2l-1-1a6.3 6.3 0 0 0-3.6-1zM12 4a7.8 7.8 0 0 1 5.7 2.3A8 8 0 1 1 12 4z"/><path d="M9.6 9.7a.7.7 0 0 1-.7-.8c0-1.1 1.5-1.8 3.2-1.8 1.8 0 3.2.8 3.2 2.4 0 1.4-.4 2.1-1.5 2.8-.2 0-.3.1-.3.2a2 2 0 0 0-.8.8.8.8 0 0 1-1.4-.6c.3-.7.8-1 1.3-1.5l.4-.2c.7-.4.8-.6.8-1.5 0-.5-.6-.9-1.7-.9-.5 0-1 .1-1.4.3-.2 0-.3.1-.3.2v-.2c0 .4-.4.8-.8.8z" fill-rule="nonzero"/><circle cx="12" cy="16" r="1"/></g></svg>',"highlight-bg-color":'<svg width="24" height="24"><g fill-rule="evenodd"><path id="tox-icon-highlight-bg-color__color" d="M3 18h18v3H3z"/><path fill-rule="nonzero" d="M7.7 16.7H3l3.3-3.3-.7-.8L10.2 8l4 4.1-4 4.2c-.2.2-.6.2-.8 0l-.6-.7-1.1 1.1zm5-7.5L11 7.4l3-2.9a2 2 0 0 1 2.6 0L18 6c.7.7.7 2 0 2.7l-2.9 2.9-1.8-1.8-.5-.6"/></g></svg>',home:'<svg width="24" height="24"><path fill-rule="nonzero" d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>',"horizontal-rule":'<svg width="24" height="24"><path d="M4 11h16v2H4z" fill-rule="evenodd"/></svg>',"image-options":'<svg width="24" height="24"><path d="M6 10a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm12 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm-6 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2z" fill-rule="nonzero"/></svg>',image:'<svg width="24" height="24"><path d="M5 15.7l3.3-3.2c.3-.3.7-.3 1 0L12 15l4.1-4c.3-.4.8-.4 1 0l2 1.9V5H5v10.7zM5 18V19h3l2.8-2.9-2-2L5 17.9zm14-3l-2.5-2.4-6.4 6.5H19v-4zM4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm6 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4z" fill-rule="nonzero"/></svg>',indent:'<svg width="24" height="24"><path d="M7 5h12c.6 0 1 .4 1 1s-.4 1-1 1H7a1 1 0 1 1 0-2zm5 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm0 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm-5 4h12a1 1 0 0 1 0 2H7a1 1 0 0 1 0-2zm-2.6-3.8L6.2 12l-1.8-1.2a1 1 0 0 1 1.2-1.6l3 2a1 1 0 0 1 0 1.6l-3 2a1 1 0 1 1-1.2-1.6z" fill-rule="evenodd"/></svg>',info:'<svg width="24" height="24"><path d="M12 4a7.8 7.8 0 0 1 5.7 2.3A8 8 0 1 1 12 4zm-1 3v2h2V7h-2zm3 10v-1h-1v-5h-3v1h1v4h-1v1h4z" fill-rule="evenodd"/></svg>',"insert-character":'<svg width="24" height="24"><path d="M15 18h4l1-2v4h-6v-3.3l1.4-1a6 6 0 0 0 1.8-2.9 6.3 6.3 0 0 0-.1-4.1 5.8 5.8 0 0 0-3-3.2c-.6-.3-1.3-.5-2.1-.5a5.1 5.1 0 0 0-3.9 1.8 6.3 6.3 0 0 0-1.3 6 6.2 6.2 0 0 0 1.8 3l1.4.9V20H4v-4l1 2h4v-.5l-2-1L5.4 15A6.5 6.5 0 0 1 4 11c0-1 .2-1.9.6-2.7A7 7 0 0 1 6.3 6C7.1 5.4 8 5 9 4.5c1-.3 2-.5 3.1-.5a8.8 8.8 0 0 1 5.7 2 7 7 0 0 1 1.7 2.3 6 6 0 0 1 .2 4.8c-.2.7-.6 1.3-1 1.9a7.6 7.6 0 0 1-3.6 2.5v.5z" fill-rule="evenodd"/></svg>',"insert-time":'<svg width="24" height="24"><g fill-rule="nonzero"><path d="M12 19a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0 2a9 9 0 1 1 0-18 9 9 0 0 1 0 18z"/><path d="M16 12h-3V7c0-.6-.4-1-1-1a1 1 0 0 0-1 1v7h5c.6 0 1-.4 1-1s-.4-1-1-1z"/></g></svg>',invert:'<svg width="24" height="24"><path d="M18 19.3L16.5 18a5.8 5.8 0 0 1-3.1 1.9 6.1 6.1 0 0 1-5.5-1.6A5.8 5.8 0 0 1 6 14v-.3l.1-1.2A13.9 13.9 0 0 1 7.7 9l-3-3 .7-.8 2.8 2.9 9 8.9 1.5 1.6-.7.6zm0-5.5v.3l-.1 1.1-.4 1-1.2-1.2a4.3 4.3 0 0 0 .2-1v-.2c0-.4 0-.8-.2-1.3l-.5-1.4a14.8 14.8 0 0 0-3-4.2L12 6a26.1 26.1 0 0 0-2.2 2.5l-1-1a20.9 20.9 0 0 1 2.9-3.3L12 4l1 .8a22.2 22.2 0 0 1 4 5.4c.6 1.2 1 2.4 1 3.6z" fill-rule="evenodd"/></svg>',italic:'<svg width="24" height="24"><path d="M16.7 4.7l-.1.9h-.3c-.6 0-1 0-1.4.3-.3.3-.4.6-.5 1.1l-2.1 9.8v.6c0 .5.4.8 1.4.8h.2l-.2.8H8l.2-.8h.2c1.1 0 1.8-.5 2-1.5l2-9.8.1-.5c0-.6-.4-.8-1.4-.8h-.3l.2-.9h5.8z" fill-rule="evenodd"/></svg>',line:'<svg width="24" height="24"><path d="M15 9l-8 8H4v-3l8-8 3 3zm1-1l-3-3 1-1h1c-.2 0 0 0 0 0l2 2s0 .2 0 0v1l-1 1zM4 18h16v2H4v-2z" fill-rule="evenodd"/></svg>',link:'<svg width="24" height="24"><path d="M6.2 12.3a1 1 0 0 1 1.4 1.4l-2.1 2a2 2 0 1 0 2.7 2.8l4.8-4.8a1 1 0 0 0 0-1.4 1 1 0 1 1 1.4-1.3 2.9 2.9 0 0 1 0 4L9.6 20a3.9 3.9 0 0 1-5.5-5.5l2-2zm11.6-.6a1 1 0 0 1-1.4-1.4l2-2a2 2 0 1 0-2.6-2.8L11 10.3a1 1 0 0 0 0 1.4A1 1 0 1 1 9.6 13a2.9 2.9 0 0 1 0-4L14.4 4a3.9 3.9 0 0 1 5.5 5.5l-2 2z" fill-rule="nonzero"/></svg>',"list-bull-circle":'<svg width="48" height="48"><g fill-rule="evenodd"><path d="M11 16a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM11 26a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6zM11 36a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6z" fill-rule="nonzero"/><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/></g></svg>',"list-bull-default":'<svg width="48" height="48"><g fill-rule="evenodd"><circle cx="11" cy="14" r="3"/><circle cx="11" cy="24" r="3"/><circle cx="11" cy="34" r="3"/><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/></g></svg>',"list-bull-square":'<svg width="48" height="48"><g fill-rule="evenodd"><path d="M8 11h6v6H8zM8 21h6v6H8zM8 31h6v6H8z"/><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/></g></svg>',"list-num-default-rtl":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z"/><path d="M37.4 17v-4.8l-1.6 1v-1.1l1.6-1h1.2V17zM33.3 17.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm1.7 5.7c0-1.2 1-2 2.2-2 1.3 0 2.1.8 2.1 1.8 0 .7-.3 1.2-1.3 2.2l-1.2 1v.2h2.6v1h-4.3v-.9l2-1.9c.8-.8 1-1.1 1-1.5 0-.5-.4-.8-1-.8-.5 0-.9.3-.9.9H35zm-1.7 4.3c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm3.2 7.3v-1h.7c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7s-1 .3-1 .8H35c0-1.1 1-1.8 2.2-1.8 1.2 0 2.1.6 2.1 1.6 0 .7-.4 1.2-1 1.3v.1c.7.1 1.3.7 1.3 1.4 0 1-1 1.9-2.4 1.9-1.3 0-2.2-.8-2.3-2h1.2c0 .6.5 1 1.1 1 .6 0 1-.4 1-1 0-.5-.3-.8-1-.8h-.7zm-3.3 2.7c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7z"/></g></svg>',"list-num-default":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/><path d="M10 17v-4.8l-1.5 1v-1.1l1.6-1h1.2V17h-1.2zm3.6.1c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zm-5 5.7c0-1.2.8-2 2.1-2s2.1.8 2.1 1.8c0 .7-.3 1.2-1.4 2.2l-1.1 1v.2h2.6v1H8.6v-.9l2-1.9c.8-.8 1-1.1 1-1.5 0-.5-.4-.8-1-.8-.5 0-.9.3-.9.9H8.5zm6.3 4.3c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zM10 34.4v-1h.7c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7s-1 .3-1 .8H8.6c0-1.1 1-1.8 2.2-1.8 1.3 0 2.1.6 2.1 1.6 0 .7-.4 1.2-1 1.3v.1c.8.1 1.3.7 1.3 1.4 0 1-1 1.9-2.4 1.9-1.3 0-2.2-.8-2.3-2h1.2c0 .6.5 1 1.1 1 .7 0 1-.4 1-1 0-.5-.3-.8-1-.8h-.7zm4.7 2.7c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7z"/></g></svg>',"list-num-lower-alpha-rtl":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z"/><path d="M36.5 16c-.9 0-1.5-.5-1.5-1.3s.6-1.3 1.8-1.4h1v-.4c0-.4-.2-.6-.7-.6-.4 0-.7.1-.8.4h-1.1c0-.8.8-1.4 2-1.4S39 12 39 13V16h-1.2v-.6c-.3.4-.8.7-1.4.7zm.4-.8c.6 0 1-.4 1-.9V14h-1c-.5.1-.7.3-.7.6 0 .4.3.6.7.6zM33.1 16.1c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7zM37.7 26c-.7 0-1.2-.2-1.5-.7v.7H35v-6.3h1.2v2.5c.3-.5.8-.9 1.5-.9 1.1 0 1.8 1 1.8 2.4 0 1.5-.7 2.4-1.8 2.4zm-.5-3.6c-.6 0-1 .5-1 1.3s.4 1.4 1 1.4c.7 0 1-.6 1-1.4 0-.8-.3-1.3-1-1.3zM33.2 26.1c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7zm6 7h-1c-.1-.5-.4-.8-1-.8s-1 .5-1 1.4c0 1 .4 1.4 1 1.4.5 0 .9-.2 1-.7h1c0 1-.8 1.7-2 1.7-1.4 0-2.2-.9-2.2-2.4s.8-2.4 2.2-2.4c1.2 0 2 .7 2 1.7zm-6.1 3c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z"/></g></svg>',"list-num-lower-alpha":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/><path d="M10.3 15.2c.5 0 1-.4 1-.9V14h-1c-.5.1-.8.3-.8.6 0 .4.3.6.8.6zm-.4.9c-1 0-1.5-.6-1.5-1.4 0-.8.6-1.3 1.7-1.4h1.1v-.4c0-.4-.2-.6-.7-.6-.5 0-.8.1-.9.4h-1c0-.8.8-1.4 2-1.4 1.1 0 1.8.6 1.8 1.6V16h-1.1v-.6h-.1c-.2.4-.7.7-1.3.7zm4.6 0c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm-3.2 10c-.6 0-1.2-.3-1.4-.8v.7H8.5v-6.3H10v2.5c.3-.5.8-.9 1.4-.9 1.2 0 1.9 1 1.9 2.4 0 1.5-.7 2.4-1.9 2.4zm-.4-3.7c-.7 0-1 .5-1 1.3s.3 1.4 1 1.4c.6 0 1-.6 1-1.4 0-.8-.4-1.3-1-1.3zm4 3.7c-.5 0-.7-.3-.7-.7 0-.4.2-.7.7-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm-2.2 7h-1.2c0-.5-.4-.8-.9-.8-.6 0-1 .5-1 1.4 0 1 .4 1.4 1 1.4.5 0 .8-.2 1-.7h1c0 1-.8 1.7-2 1.7-1.4 0-2.2-.9-2.2-2.4s.8-2.4 2.2-2.4c1.2 0 2 .7 2 1.7zm1.8 3c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z"/></g></svg>',"list-num-lower-greek-rtl":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z"/><path d="M37.4 16c-1.2 0-2-.8-2-2.3 0-1.5.8-2.4 2-2.4.6 0 1 .4 1.3 1v-.9H40v3.2c0 .4.1.5.4.5h.2v.9h-.6c-.6 0-1-.2-1-.7h-.2c-.2.4-.7.8-1.3.8zm.3-1c.6 0 1-.5 1-1.3s-.4-1.3-1-1.3-1 .5-1 1.3.4 1.4 1 1.4zM33.3 16.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zM36 21.9c0-1.5.8-2.3 2.1-2.3 1.2 0 2 .6 2 1.6 0 .6-.3 1-.9 1.3.9.3 1.3.8 1.3 1.7 0 1.2-.7 1.9-1.8 1.9-.6 0-1.1-.3-1.4-.8v2.2H36V22zm1.8 1.2v-1h.3c.5 0 .9-.2.9-.7 0-.5-.3-.8-.9-.8-.5 0-.8.3-.8 1v2.2c0 .8.4 1.3 1 1.3s1-.4 1-1-.4-1-1.2-1h-.3zM33.3 26.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zM37.1 34.6L34.8 30h1.4l1.7 3.5 1.7-3.5h1.1l-2.2 4.6v.1c.5.8.7 1.4.7 1.8 0 .4-.2.8-.4 1-.2.2-.6.3-1 .3-.9 0-1.3-.4-1.3-1.2 0-.5.2-1 .5-1.7l.1-.2zm.7 1a2 2 0 0 0-.4.9c0 .3.1.4.4.4.3 0 .4-.1.4-.4 0-.2-.1-.6-.4-1zM33.3 36.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z"/></g></svg>',"list-num-lower-greek":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/><path d="M10.5 15c.7 0 1-.5 1-1.3s-.3-1.3-1-1.3c-.5 0-.9.5-.9 1.3s.4 1.4 1 1.4zm-.3 1c-1.1 0-1.8-.8-1.8-2.3 0-1.5.7-2.4 1.8-2.4.7 0 1.1.4 1.3 1h.1v-.9h1.2v3.2c0 .4.1.5.4.5h.2v.9h-.6c-.6 0-1-.2-1.1-.7h-.1c-.2.4-.7.8-1.4.8zm5 .1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.7-.7.5 0 .8.3.8.7 0 .4-.3.7-.8.7zm-4.9 7v-1h.3c.6 0 1-.2 1-.7 0-.5-.4-.8-1-.8-.5 0-.8.3-.8 1v2.2c0 .8.4 1.3 1.1 1.3.6 0 1-.4 1-1s-.5-1-1.3-1h-.3zM8.6 22c0-1.5.7-2.3 2-2.3 1.2 0 2 .6 2 1.6 0 .6-.3 1-.8 1.3.8.3 1.3.8 1.3 1.7 0 1.2-.8 1.9-1.9 1.9-.6 0-1.1-.3-1.3-.8v2.2H8.5V22zm6.2 4.2c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zm-4.5 8.5L8 30h1.4l1.7 3.5 1.7-3.5h1.1l-2.2 4.6v.1c.5.8.7 1.4.7 1.8 0 .4-.1.8-.4 1-.2.2-.6.3-1 .3-.9 0-1.3-.4-1.3-1.2 0-.5.2-1 .5-1.7l.1-.2zm.7 1a2 2 0 0 0-.4.9c0 .3.1.4.4.4.3 0 .4-.1.4-.4 0-.2-.1-.6-.4-1zm4.5.5c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z"/></g></svg>',"list-num-lower-roman-rtl":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z"/><path d="M32.9 16v-1.2h-1.3V16H33zm0 10v-1.2h-1.3V26H33zm0 10v-1.2h-1.3V36H33z"/><path fill-rule="nonzero" d="M36 21h-1.5v5H36zM36 31h-1.5v5H36zM39 21h-1.5v5H39zM39 31h-1.5v5H39zM42 31h-1.5v5H42zM36 11h-1.5v5H36zM36 19h-1.5v1H36zM36 29h-1.5v1H36zM39 19h-1.5v1H39zM39 29h-1.5v1H39zM42 29h-1.5v1H42zM36 9h-1.5v1H36z"/></g></svg>',"list-num-lower-roman":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/><path d="M15.1 16v-1.2h1.3V16H15zm0 10v-1.2h1.3V26H15zm0 10v-1.2h1.3V36H15z"/><path fill-rule="nonzero" d="M12 21h1.5v5H12zM12 31h1.5v5H12zM9 21h1.5v5H9zM9 31h1.5v5H9zM6 31h1.5v5H6zM12 11h1.5v5H12zM12 19h1.5v1H12zM12 29h1.5v1H12zM9 19h1.5v1H9zM9 29h1.5v1H9zM6 29h1.5v1H6zM12 9h1.5v1H12z"/></g></svg>',"list-num-upper-alpha-rtl":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z"/><path d="M39.3 17l-.5-1.4h-2l-.5 1.4H35l2-6h1.6l2 6h-1.3zm-1.6-4.7l-.7 2.3h1.6l-.8-2.3zM33.4 17c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zm4.7 9.9h-2.7v-6H38c1.2 0 1.9.6 1.9 1.5 0 .6-.5 1.2-1 1.3.7.1 1.3.7 1.3 1.5 0 1-.8 1.7-2 1.7zm-1.4-5v1.5h1c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7h-1zm0 4h1.1c.7 0 1.1-.3 1.1-.8 0-.6-.4-.9-1.1-.9h-1.1V26zM33 27.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm4.9 10c-1.8 0-2.8-1.1-2.8-3.1s1-3.1 2.8-3.1c1.4 0 2.5.9 2.6 2.2h-1.3c0-.7-.6-1.1-1.3-1.1-1 0-1.6.7-1.6 2s.6 2 1.6 2c.7 0 1.2-.4 1.4-1h1.2c-.1 1.3-1.2 2.2-2.6 2.2zm-4.5 0c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z"/></g></svg>',"list-num-upper-alpha":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/><path d="M12.6 17l-.5-1.4h-2L9.5 17H8.3l2-6H12l2 6h-1.3zM11 12.3l-.7 2.3h1.6l-.8-2.3zm4.7 4.8c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7.5 0 .7.3.7.7 0 .4-.2.7-.7.7zM11.4 27H8.7v-6h2.6c1.2 0 1.9.6 1.9 1.5 0 .6-.5 1.2-1 1.3.7.1 1.3.7 1.3 1.5 0 1-.8 1.7-2 1.7zM10 22v1.5h1c.6 0 1-.3 1-.8 0-.4-.4-.7-1-.7h-1zm0 4H11c.7 0 1.1-.3 1.1-.8 0-.6-.4-.9-1.1-.9H10V26zm5.4 1.1c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7zm-4.1 10c-1.8 0-2.8-1.1-2.8-3.1s1-3.1 2.8-3.1c1.4 0 2.5.9 2.6 2.2h-1.3c0-.7-.6-1.1-1.3-1.1-1 0-1.6.7-1.6 2s.6 2 1.6 2c.7 0 1.2-.4 1.4-1h1.2c-.1 1.3-1.2 2.2-2.6 2.2zm4.5 0c-.5 0-.8-.3-.8-.7 0-.4.3-.7.8-.7.4 0 .7.3.7.7 0 .4-.3.7-.7.7z"/></g></svg>',"list-num-upper-roman-rtl":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M8 12h22v4H8zM8 22h22v4H8zM8 32h22v4H8z"/><path d="M31.6 17v-1.2H33V17h-1.3zm0 10v-1.2H33V27h-1.3zm0 10v-1.2H33V37h-1.3z"/><path fill-rule="nonzero" d="M34.5 20H36v7h-1.5zM34.5 30H36v7h-1.5zM37.5 20H39v7h-1.5zM37.5 30H39v7h-1.5zM40.5 30H42v7h-1.5zM34.5 10H36v7h-1.5z"/></g></svg>',"list-num-upper-roman":'<svg width="48" height="48"><g fill-rule="evenodd"><path opacity=".2" d="M18 12h22v4H18zM18 22h22v4H18zM18 32h22v4H18z"/><path d="M15.1 17v-1.2h1.3V17H15zm0 10v-1.2h1.3V27H15zm0 10v-1.2h1.3V37H15z"/><path fill-rule="nonzero" d="M12 20h1.5v7H12zM12 30h1.5v7H12zM9 20h1.5v7H9zM9 30h1.5v7H9zM6 30h1.5v7H6zM12 10h1.5v7H12z"/></g></svg>',lock:'<svg width="24" height="24"><path d="M16.3 11c.2 0 .3 0 .5.2l.2.6v7.4c0 .3 0 .4-.2.6l-.6.2H7.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6v-7.4c0-.3 0-.4.2-.6l.5-.2H8V8c0-.8.3-1.5.9-2.1.6-.6 1.3-.9 2.1-.9h2c.8 0 1.5.3 2.1.9.6.6.9 1.3.9 2.1v3h.3zM10 8v3h4V8a1 1 0 0 0-.3-.7A1 1 0 0 0 13 7h-2a1 1 0 0 0-.7.3 1 1 0 0 0-.3.7z" fill-rule="evenodd"/></svg>',ltr:'<svg width="24" height="24"><path d="M11 5h7a1 1 0 0 1 0 2h-1v11a1 1 0 0 1-2 0V7h-2v11a1 1 0 0 1-2 0v-6c-.5 0-1 0-1.4-.3A3.4 3.4 0 0 1 7.8 10a3.3 3.3 0 0 1 0-2.8 3.4 3.4 0 0 1 1.8-1.8L11 5zM4.4 16.2L6.2 15l-1.8-1.2a1 1 0 0 1 1.2-1.6l3 2a1 1 0 0 1 0 1.6l-3 2a1 1 0 1 1-1.2-1.6z" fill-rule="evenodd"/></svg>',"more-drawer":'<svg width="24" height="24"><path d="M6 10a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm12 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2zm-6 0a2 2 0 0 0-2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2 2 2 0 0 0-2-2z" fill-rule="nonzero"/></svg>',"new-document":'<svg width="24" height="24"><path d="M14.4 3H7a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h10a2 2 0 0 0 2-2V7.6L14.4 3zM17 19H7V5h6v4h4v10z" fill-rule="nonzero"/></svg>',"new-tab":'<svg width="24" height="24"><path d="M15 13l2-2v8H5V7h8l-2 2H7v8h8v-4zm4-8v5.5l-2-2-5.6 5.5H10v-1.4L15.5 7l-2-2H19z" fill-rule="evenodd"/></svg>',"non-breaking":'<svg width="24" height="24"><path d="M11 11H8a1 1 0 1 1 0-2h3V6c0-.6.4-1 1-1s1 .4 1 1v3h3c.6 0 1 .4 1 1s-.4 1-1 1h-3v3c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-3zm10 4v5H3v-5c0-.6.4-1 1-1s1 .4 1 1v3h14v-3c0-.6.4-1 1-1s1 .4 1 1z" fill-rule="evenodd"/></svg>',notice:'<svg width="24" height="24"><path d="M17.8 9.8L15.4 4 20 8.5v7L15.5 20h-7L4 15.5v-7L8.5 4h7l2.3 5.8zm0 0l2.2 5.7-2.3-5.8zM13 17v-2h-2v2h2zm0-4V7h-2v6h2z" fill-rule="evenodd"/></svg>',"ordered-list-rtl":'<svg width="24" height="24"><path d="M6 17h8a1 1 0 0 1 0 2H6a1 1 0 0 1 0-2zm0-6h8a1 1 0 0 1 0 2H6a1 1 0 0 1 0-2zm0-6h8a1 1 0 0 1 0 2H6a1 1 0 1 1 0-2zm13-1v3.5a.5.5 0 1 1-1 0V5h-.5a.5.5 0 1 1 0-1H19zm-1 8.8l.2.2h1.3a.5.5 0 1 1 0 1h-1.6a1 1 0 0 1-.9-1V13c0-.4.3-.8.6-1l1.2-.4.2-.3a.2.2 0 0 0-.2-.2h-1.3a.5.5 0 0 1-.5-.5c0-.3.2-.5.5-.5h1.6c.5 0 .9.4.9 1v.1c0 .4-.3.8-.6 1l-1.2.4-.2.3zm2 4.2v2c0 .6-.4 1-1 1h-1.5a.5.5 0 0 1 0-1h1.2a.3.3 0 1 0 0-.6h-1.3a.4.4 0 1 1 0-.8h1.3a.3.3 0 0 0 0-.6h-1.2a.5.5 0 1 1 0-1H19c.6 0 1 .4 1 1z" fill-rule="evenodd"/></svg>',"ordered-list":'<svg width="24" height="24"><path d="M10 17h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0-6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 1 1 0-2zM6 4v3.5c0 .3-.2.5-.5.5a.5.5 0 0 1-.5-.5V5h-.5a.5.5 0 0 1 0-1H6zm-1 8.8l.2.2h1.3c.3 0 .5.2.5.5s-.2.5-.5.5H4.9a1 1 0 0 1-.9-1V13c0-.4.3-.8.6-1l1.2-.4.2-.3a.2.2 0 0 0-.2-.2H4.5a.5.5 0 0 1-.5-.5c0-.3.2-.5.5-.5h1.6c.5 0 .9.4.9 1v.1c0 .4-.3.8-.6 1l-1.2.4-.2.3zM7 17v2c0 .6-.4 1-1 1H4.5a.5.5 0 0 1 0-1h1.2c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3H4.4a.4.4 0 1 1 0-.8h1.3c.2 0 .3-.1.3-.3 0-.2-.1-.3-.3-.3H4.5a.5.5 0 1 1 0-1H6c.6 0 1 .4 1 1z" fill-rule="evenodd"/></svg>',orientation:'<svg width="24" height="24"><path d="M7.3 6.4L1 13l6.4 6.5 6.5-6.5-6.5-6.5zM3.7 13l3.6-3.7L11 13l-3.7 3.7-3.6-3.7zM12 6l2.8 2.7c.3.3.3.8 0 1-.3.4-.9.4-1.2 0L9.2 5.7a.8.8 0 0 1 0-1.2L13.6.2c.3-.3.9-.3 1.2 0 .3.3.3.8 0 1.1L12 4h1a9 9 0 1 1-4.3 16.9l1.5-1.5A7 7 0 1 0 13 6h-1z" fill-rule="nonzero"/></svg>',outdent:'<svg width="24" height="24"><path d="M7 5h12c.6 0 1 .4 1 1s-.4 1-1 1H7a1 1 0 1 1 0-2zm5 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm0 4h7c.6 0 1 .4 1 1s-.4 1-1 1h-7a1 1 0 0 1 0-2zm-5 4h12a1 1 0 0 1 0 2H7a1 1 0 0 1 0-2zm1.6-3.8a1 1 0 0 1-1.2 1.6l-3-2a1 1 0 0 1 0-1.6l3-2a1 1 0 0 1 1.2 1.6L6.8 12l1.8 1.2z" fill-rule="evenodd"/></svg>',"page-break":'<svg width="24" height="24"><g fill-rule="evenodd"><path d="M5 11c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h1c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm4 0c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h1c.6 0 1 .4 1 1s-.4 1-1 1h-1a1 1 0 0 1 0-2zm4 0c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zM7 3v5h10V3c0-.6.4-1 1-1s1 .4 1 1v7H5V3c0-.6.4-1 1-1s1 .4 1 1zM6 22a1 1 0 0 1-1-1v-7h14v7c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-5H7v5c0 .6-.4 1-1 1z"/></g></svg>',"paste-text":'<svg width="24" height="24"><path d="M18 9V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h3V9h9zM9 20H6a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.2A3 3 0 0 1 12 1a3 3 0 0 1 2.8 2H18a2 2 0 0 1 2 2v4h1v12H9v-1zm1.5-9.5v9h9v-9h-9zM12 3a1 1 0 0 0-1 1c0 .5.4 1 1 1s1-.5 1-1-.4-1-1-1zm0 9h6v2h-.5l-.5-1h-1v4h.8v1h-3.6v-1h.8v-4h-1l-.5 1H12v-2z" fill-rule="nonzero"/></svg>',paste:'<svg width="24" height="24"><path d="M18 9V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h3V9h9zM9 20H6a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.2A3 3 0 0 1 12 1a3 3 0 0 1 2.8 2H18a2 2 0 0 1 2 2v4h1v12H9v-1zm1.5-9.5v9h9v-9h-9zM12 3a1 1 0 0 0-1 1c0 .5.4 1 1 1s1-.5 1-1-.4-1-1-1z" fill-rule="nonzero"/></svg>',"permanent-pen":'<svg width="24" height="24"><path d="M10.5 17.5L8 20H3v-3l3.5-3.5a2 2 0 0 1 0-3L14 3l1 1-7.3 7.3a1 1 0 0 0 0 1.4l3.6 3.6c.4.4 1 .4 1.4 0L20 9l1 1-7.6 7.6a2 2 0 0 1-2.8 0l-.1-.1z" fill-rule="nonzero"/></svg>',plus:'<svg width="24" height="24"><g fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke="#000" stroke-width="2"><path d="M12 5v14M5 12h14"/></g></svg>',preferences:'<svg width="24" height="24"><path d="M20.1 13.5l-1.9.2a5.8 5.8 0 0 1-.6 1.5l1.2 1.5c.4.4.3 1 0 1.4l-.7.7a1 1 0 0 1-1.4 0l-1.5-1.2a6.2 6.2 0 0 1-1.5.6l-.2 1.9c0 .5-.5.9-1 .9h-1a1 1 0 0 1-1-.9l-.2-1.9a5.8 5.8 0 0 1-1.5-.6l-1.5 1.2a1 1 0 0 1-1.4 0l-.7-.7a1 1 0 0 1 0-1.4l1.2-1.5a6.2 6.2 0 0 1-.6-1.5l-1.9-.2a1 1 0 0 1-.9-1v-1c0-.5.4-1 .9-1l1.9-.2a5.8 5.8 0 0 1 .6-1.5L5.2 7.3a1 1 0 0 1 0-1.4l.7-.7a1 1 0 0 1 1.4 0l1.5 1.2a6.2 6.2 0 0 1 1.5-.6l.2-1.9c0-.5.5-.9 1-.9h1c.5 0 1 .4 1 .9l.2 1.9a5.8 5.8 0 0 1 1.5.6l1.5-1.2a1 1 0 0 1 1.4 0l.7.7c.3.4.4 1 0 1.4l-1.2 1.5a6.2 6.2 0 0 1 .6 1.5l1.9.2c.5 0 .9.5.9 1v1c0 .5-.4 1-.9 1zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" fill-rule="evenodd"/></svg>',preview:'<svg width="24" height="24"><path d="M3.5 12.5c.5.8 1.1 1.6 1.8 2.3 2 2 4.2 3.2 6.7 3.2s4.7-1.2 6.7-3.2a16.2 16.2 0 0 0 2.1-2.8 15.7 15.7 0 0 0-2.1-2.8c-2-2-4.2-3.2-6.7-3.2a9.3 9.3 0 0 0-6.7 3.2A16.2 16.2 0 0 0 3.2 12c0 .2.2.3.3.5zm-2.4-1l.7-1.2L4 7.8C6.2 5.4 8.9 4 12 4c3 0 5.8 1.4 8.1 3.8a18.2 18.2 0 0 1 2.8 3.7v1l-.7 1.2-2.1 2.5c-2.3 2.4-5 3.8-8.1 3.8-3 0-5.8-1.4-8.1-3.8a18.2 18.2 0 0 1-2.8-3.7 1 1 0 0 1 0-1zm12-3.3a2 2 0 1 0 2.7 2.6 4 4 0 1 1-2.6-2.6z" fill-rule="nonzero"/></svg>',print:'<svg width="24" height="24"><path d="M18 8H6a3 3 0 0 0-3 3v6h2v3h14v-3h2v-6a3 3 0 0 0-3-3zm-1 10H7v-4h10v4zm.5-5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm.5-8H6v2h12V5z" fill-rule="nonzero"/></svg>',quote:'<svg width="24" height="24"><path d="M7.5 17h.9c.4 0 .7-.2.9-.6L11 13V8c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v4c0 .6.4 1 1 1h2l-1.3 2.7a1 1 0 0 0 .8 1.3zm8 0h.9c.4 0 .7-.2.9-.6L19 13V8c0-.6-.4-1-1-1h-4a1 1 0 0 0-1 1v4c0 .6.4 1 1 1h2l-1.3 2.7a1 1 0 0 0 .8 1.3z" fill-rule="nonzero"/></svg>',redo:'<svg width="24" height="24"><path d="M17.6 10H12c-2.8 0-4.4 1.4-4.9 3.5-.4 2 .3 4 1.4 4.6a1 1 0 1 1-1 1.8c-2-1.2-2.9-4.1-2.3-6.8.6-3 3-5.1 6.8-5.1h5.6l-3.3-3.3a1 1 0 1 1 1.4-1.4l5 5a1 1 0 0 1 0 1.4l-5 5a1 1 0 0 1-1.4-1.4l3.3-3.3z" fill-rule="nonzero"/></svg>',reload:'<svg width="24" height="24"><g fill-rule="nonzero"><path d="M5 22.1l-1.2-4.7v-.2a1 1 0 0 1 1-1l5 .4a1 1 0 1 1-.2 2l-2.2-.2a7.8 7.8 0 0 0 8.4.2 7.5 7.5 0 0 0 3.5-6.4 1 1 0 1 1 2 0 9.5 9.5 0 0 1-4.5 8 9.9 9.9 0 0 1-10.2 0l.4 1.4a1 1 0 1 1-2 .5zM13.6 7.4c0-.5.5-1 1-.9l2.8.2a8 8 0 0 0-9.5-1 7.5 7.5 0 0 0-3.6 7 1 1 0 0 1-2 0 9.5 9.5 0 0 1 4.5-8.6 10 10 0 0 1 10.9.3l-.3-1a1 1 0 0 1 2-.5l1.1 4.8a1 1 0 0 1-1 1.2l-5-.4a1 1 0 0 1-.9-1z"/></g></svg>',"remove-formatting":'<svg width="24" height="24"><path d="M13.2 6a1 1 0 0 1 0 .2l-2.6 10a1 1 0 0 1-1 .8h-.2a.8.8 0 0 1-.8-1l2.6-10H8a1 1 0 1 1 0-2h9a1 1 0 0 1 0 2h-3.8zM5 18h7a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2zm13 1.5L16.5 18 15 19.5a.7.7 0 0 1-1-1l1.5-1.5-1.5-1.5a.7.7 0 0 1 1-1l1.5 1.5 1.5-1.5a.7.7 0 0 1 1 1L17.5 17l1.5 1.5a.7.7 0 0 1-1 1z" fill-rule="evenodd"/></svg>',remove:'<svg width="24" height="24"><path d="M16 7h3a1 1 0 0 1 0 2h-1v9a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V9H5a1 1 0 1 1 0-2h3V6a3 3 0 0 1 3-3h2a3 3 0 0 1 3 3v1zm-2 0V6c0-.6-.4-1-1-1h-2a1 1 0 0 0-1 1v1h4zm2 2H8v9c0 .6.4 1 1 1h6c.6 0 1-.4 1-1V9zm-7 3a1 1 0 0 1 2 0v4a1 1 0 0 1-2 0v-4zm4 0a1 1 0 0 1 2 0v4a1 1 0 0 1-2 0v-4z" fill-rule="nonzero"/></svg>',"resize-handle":'<svg width="10" height="10"><g fill-rule="nonzero"><path d="M8.1 1.1A.5.5 0 1 1 9 2l-7 7A.5.5 0 1 1 1 8l7-7zM8.1 5.1A.5.5 0 1 1 9 6l-3 3A.5.5 0 1 1 5 8l3-3z"/></g></svg>',resize:'<svg width="24" height="24"><path d="M4 5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h6c.3 0 .5.1.7.3.2.2.3.4.3.7 0 .3-.1.5-.3.7a1 1 0 0 1-.7.3H7.4L18 16.6V13c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3.3 0 .5.1.7.3.2.2.3.4.3.7v6c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3h-6a1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h3.6L6 7.4V11c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.7-.3A1 1 0 0 1 4 11V5z" fill-rule="evenodd"/></svg>',"restore-draft":'<svg width="24" height="24"><g fill-rule="evenodd"><path d="M17 13c0 .6-.4 1-1 1h-4V8c0-.6.4-1 1-1s1 .4 1 1v4h2c.6 0 1 .4 1 1z"/><path d="M4.7 10H9a1 1 0 0 1 0 2H3a1 1 0 0 1-1-1V5a1 1 0 1 1 2 0v3l2.5-2.4a9.2 9.2 0 0 1 10.8-1.5A9 9 0 0 1 13.4 21c-2.4.1-4.7-.7-6.5-2.2a1 1 0 1 1 1.3-1.5 7.2 7.2 0 0 0 11.6-3.7 7 7 0 0 0-3.5-7.7A7.2 7.2 0 0 0 8 7L4.7 10z" fill-rule="nonzero"/></g></svg>',"rotate-left":'<svg width="24" height="24"><path d="M4.7 10H9a1 1 0 0 1 0 2H3a1 1 0 0 1-1-1V5a1 1 0 1 1 2 0v3l2.5-2.4a9.2 9.2 0 0 1 10.8-1.5A9 9 0 0 1 13.4 21c-2.4.1-4.7-.7-6.5-2.2a1 1 0 1 1 1.3-1.5 7.2 7.2 0 0 0 11.6-3.7 7 7 0 0 0-3.5-7.7A7.2 7.2 0 0 0 8 7L4.7 10z" fill-rule="nonzero"/></svg>',"rotate-right":'<svg width="24" height="24"><path d="M20 8V5a1 1 0 0 1 2 0v6c0 .6-.4 1-1 1h-6a1 1 0 0 1 0-2h4.3L16 7A7.2 7.2 0 0 0 7.7 6a7 7 0 0 0 3 13.1c1.9.1 3.7-.5 5-1.7a1 1 0 0 1 1.4 1.5A9.2 9.2 0 0 1 2.2 14c-.9-3.9 1-8 4.5-9.9 3.5-1.9 8-1.3 10.8 1.5L20 8z" fill-rule="nonzero"/></svg>',rtl:'<svg width="24" height="24"><path d="M8 5h8v2h-2v12h-2V7h-2v12H8v-7c-.5 0-1 0-1.4-.3A3.4 3.4 0 0 1 4.8 10a3.3 3.3 0 0 1 0-2.8 3.4 3.4 0 0 1 1.8-1.8L8 5zm12 11.2a1 1 0 1 1-1 1.6l-3-2a1 1 0 0 1 0-1.6l3-2a1 1 0 1 1 1 1.6L18.4 15l1.8 1.2z" fill-rule="evenodd"/></svg>',save:'<svg width="24" height="24"><path d="M5 16h14a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2zm0 2v2h14v-2H5zm10 0h2v2h-2v-2zm-4-6.4L8.7 9.3a1 1 0 1 0-1.4 1.4l4 4c.4.4 1 .4 1.4 0l4-4a1 1 0 1 0-1.4-1.4L13 11.6V4a1 1 0 0 0-2 0v7.6z" fill-rule="nonzero"/></svg>',search:'<svg width="24" height="24"><path d="M16 17.3a8 8 0 1 1 1.4-1.4l4.3 4.4a1 1 0 0 1-1.4 1.4l-4.4-4.3zm-5-.3a6 6 0 1 0 0-12 6 6 0 0 0 0 12z" fill-rule="nonzero"/></svg>',"select-all":'<svg width="24" height="24"><path d="M3 5h2V3a2 2 0 0 0-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2a2 2 0 0 0-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8a2 2 0 0 0 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z" fill-rule="nonzero"/></svg>',selected:'<svg width="24" height="24"><path fill-rule="nonzero" d="M6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2zm3.6 10.9L7 12.3a.7.7 0 0 0-1 1L9.6 17 18 8.6a.7.7 0 0 0 0-1 .7.7 0 0 0-1 0l-7.4 7.3z"/></svg>',settings:'<svg width="24" height="24"><path d="M11 6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8v.3c0 .2 0 .3-.2.5l-.6.2H7.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6V8H5a1 1 0 1 1 0-2h2v-.3c0-.2 0-.3.2-.5l.5-.2h2.5c.3 0 .4 0 .6.2l.2.5V6zM8 8h2V6H8v2zm9 2.8v.2h2c.6 0 1 .4 1 1s-.4 1-1 1h-2v.3c0 .2 0 .3-.2.5l-.6.2h-2.4c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6V13H5a1 1 0 0 1 0-2h8v-.3c0-.2 0-.3.2-.5l.6-.2h2.4c.3 0 .4 0 .6.2l.2.6zM14 13h2v-2h-2v2zm-3 2.8v.2h8c.6 0 1 .4 1 1s-.4 1-1 1h-8v.3c0 .2 0 .3-.2.5l-.6.2H7.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6V18H5a1 1 0 0 1 0-2h2v-.3c0-.2 0-.3.2-.5l.5-.2h2.5c.3 0 .4 0 .6.2l.2.6zM8 18h2v-2H8v2z" fill-rule="evenodd"/></svg>',sharpen:'<svg width="24" height="24"><path d="M16 6l4 4-8 9-8-9 4-4h8zm-4 10.2l5.5-6.2-.1-.1H12v-.3h5.1l-.2-.2H12V9h4.6l-.2-.2H12v-.3h4.1l-.2-.2H12V8h3.6l-.2-.2H8.7L6.5 10l.1.1H12v.3H6.9l.2.2H12v.3H7.3l.2.2H12v.3H7.7l.3.2h4v.3H8.2l.2.2H12v.3H8.6l.3.2H12v.3H9l.3.2H12v.3H9.5l.2.2H12v.3h-2l.2.2H12v.3h-1.6l.2.2H12v.3h-1.1l.2.2h.9v.3h-.7l.2.2h.5v.3h-.3l.3.2z" fill-rule="evenodd"/></svg>',sourcecode:'<svg width="24" height="24"><g fill-rule="nonzero"><path d="M9.8 15.7c.3.3.3.8 0 1-.3.4-.9.4-1.2 0l-4.4-4.1a.8.8 0 0 1 0-1.2l4.4-4.2c.3-.3.9-.3 1.2 0 .3.3.3.8 0 1.1L6 12l3.8 3.7zM14.2 15.7c-.3.3-.3.8 0 1 .4.4.9.4 1.2 0l4.4-4.1c.3-.3.3-.9 0-1.2l-4.4-4.2a.8.8 0 0 0-1.2 0c-.3.3-.3.8 0 1.1L18 12l-3.8 3.7z"/></g></svg>',"spell-check":'<svg width="24" height="24"><path d="M6 8v3H5V5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h2c.3 0 .5.1.7.3.2.2.3.4.3.7v6H8V8H6zm0-3v2h2V5H6zm13 0h-3v5h3v1h-3a1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7V5c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h3v1zm-5 1.5l-.1.7c-.1.2-.3.3-.6.3.3 0 .5.1.6.3l.1.7V10c0 .3-.1.5-.3.7a1 1 0 0 1-.7.3h-3V4h3c.3 0 .5.1.7.3.2.2.3.4.3.7v1.5zM13 10V8h-2v2h2zm0-3V5h-2v2h2zm3 5l1 1-6.5 7L7 15.5l1.3-1 2.2 2.2L16 12z" fill-rule="evenodd"/></svg>',"strike-through":'<svg width="24" height="24"><g fill-rule="evenodd"><path d="M15.6 8.5c-.5-.7-1-1.1-1.3-1.3-.6-.4-1.3-.6-2-.6-2.7 0-2.8 1.7-2.8 2.1 0 1.6 1.8 2 3.2 2.3 4.4.9 4.6 2.8 4.6 3.9 0 1.4-.7 4.1-5 4.1A6.2 6.2 0 0 1 7 16.4l1.5-1.1c.4.6 1.6 2 3.7 2 1.6 0 2.5-.4 3-1.2.4-.8.3-2-.8-2.6-.7-.4-1.6-.7-2.9-1-1-.2-3.9-.8-3.9-3.6C7.6 6 10.3 5 12.4 5c2.9 0 4.2 1.6 4.7 2.4l-1.5 1.1z"/><path d="M5 11h14a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2z" fill-rule="nonzero"/></g></svg>',subscript:'<svg width="24" height="24"><path d="M10.4 10l4.6 4.6-1.4 1.4L9 11.4 4.4 16 3 14.6 7.6 10 3 5.4 4.4 4 9 8.6 13.6 4 15 5.4 10.4 10zM21 19h-5v-1l1-.8 1.7-1.6c.3-.4.5-.8.5-1.2 0-.3 0-.6-.2-.7-.2-.2-.5-.3-.9-.3a2 2 0 0 0-.8.2l-.7.3-.4-1.1 1-.6 1.2-.2c.8 0 1.4.3 1.8.7.4.4.6.9.6 1.5s-.2 1.1-.5 1.6a8 8 0 0 1-1.3 1.3l-.6.6h2.6V19z" fill-rule="nonzero"/></svg>',superscript:'<svg width="24" height="24"><path d="M15 9.4L10.4 14l4.6 4.6-1.4 1.4L9 15.4 4.4 20 3 18.6 7.6 14 3 9.4 4.4 8 9 12.6 13.6 8 15 9.4zm5.9 1.6h-5v-1l1-.8 1.7-1.6c.3-.5.5-.9.5-1.3 0-.3 0-.5-.2-.7-.2-.2-.5-.3-.9-.3l-.8.2-.7.4-.4-1.2c.2-.2.5-.4 1-.5.3-.2.8-.2 1.2-.2.8 0 1.4.2 1.8.6.4.4.6 1 .6 1.6 0 .5-.2 1-.5 1.5l-1.3 1.4-.6.5h2.6V11z" fill-rule="nonzero"/></svg>',"table-cell-properties":'<svg width="24" height="24"><path d="M4 5h16v14H4V5zm10 10h-4v3h4v-3zm0-8h-4v3h4V7zM9 7H5v3h4V7zm-4 4v3h4v-3H5zm10 0v3h4v-3h-4zm0-1h4V7h-4v3zM5 15v3h4v-3H5zm10 3h4v-3h-4v3z" fill-rule="evenodd"/></svg>',"table-cell-select-all":'<svg width="24" height="24"><path d="M12.5 5.5v6h6v-6h-6zm-1 0h-6v6h6v-6zm1 13h6v-6h-6v6zm-1 0v-6h-6v6h6zm-7-14h15v15h-15v-15z" fill-rule="nonzero"/></svg>',"table-cell-select-inner":'<svg width="24" height="24"><g fill-rule="nonzero"><path d="M5.5 5.5v13h13v-13h-13zm-1-1h15v15h-15v-15z" opacity=".2"/><path d="M11.5 11.5v-7h1v7h7v1h-7v7h-1v-7h-7v-1h7z"/></g></svg>',"table-delete-column":'<svg width="24" height="24"><path d="M9 11.2l1 1v.2l-1 1v-2.2zm5 1l1-1v2.2l-1-1v-.2zM20 5v14H4V5h16zm-1 2h-4v.8l-.2-.2-.8.8V7h-4v1.4l-.8-.8-.2.2V7H5v11h4v-1.8l.5.5.5-.4V18h4v-1.8l.8.8.2-.3V18h4V7zm-3.9 3.4l-1.8 1.9 1.8 1.9c.4.3.4.9 0 1.2-.3.3-.8.3-1.2 0L12 13.5l-1.8 1.9a.8.8 0 0 1-1.2 0 .9.9 0 0 1 0-1.2l1.8-1.9-1.9-2a.9.9 0 0 1 1.2-1.2l2 2 1.8-1.8c.3-.4.9-.4 1.2 0a.8.8 0 0 1 0 1.1z" fill-rule="evenodd"/></svg>',"table-delete-row":'<svg width="24" height="24"><path d="M16.7 8.8l1.1 1.2-2.4 2.5L18 15l-1.2 1.2-2.5-2.5-2.4 2.5-1.3-1.2 2.5-2.5-2.5-2.5 1.2-1.3 2.6 2.6 2.4-2.5zM4 5h16v14H4V5zm15 5V7H5v3h4.8l1 1H5v3h5.8l-1 1H5v3h14v-3h-.4l-1-1H19v-3h-1.3l1-1h.3z" fill-rule="evenodd"/></svg>',"table-delete-table":'<svg width="24" height="26"><path d="M4 6h16v14H4V6zm1 2v11h14V8H5zm11.7 8.7l-1.5 1.5L12 15l-3.3 3.2-1.4-1.5 3.2-3.2-3.3-3.2 1.5-1.5L12 12l3.2-3.2 1.5 1.5-3.2 3.2 3.2 3.2z" fill-rule="evenodd"/></svg>',"table-insert-column-after":'<svg width="24" height="24"><path d="M14.3 9c.4 0 .7.3.7.6v2.2h2.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7H15v2.2c0 .3-.3.6-.7.6a.7.7 0 0 1-.6-.6v-2.2h-2.2a.7.7 0 0 1 0-1.4h2.2V9.6c0-.3.3-.6.6-.6zM4 5h16v14H4V5zm5 13v-3H5v3h4zm0-4v-3H5v3h4zm0-4V7H5v3h4zm10 8V7h-9v11h9z" fill-rule="evenodd"/></svg>',"table-insert-column-before":'<svg width="24" height="24"><path d="M9.7 16a.7.7 0 0 1-.7-.6v-2.2H6.9a.7.7 0 0 1 0-1.4H9V9.6c0-.3.3-.6.7-.6.3 0 .6.3.6.6v2.2h2.2c.4 0 .8.3.8.7 0 .4-.4.7-.8.7h-2.2v2.2c0 .3-.3.6-.6.6zM4 5h16v14H4V5zm10 13V7H5v11h9zm5 0v-3h-4v3h4zm0-4v-3h-4v3h4zm0-4V7h-4v3h4z" fill-rule="evenodd"/></svg>',"table-insert-row-above":'<svg width="24" height="24"><path d="M14.8 10.5c0 .3-.2.5-.5.5h-1.8v1.8c0 .3-.2.5-.5.5a.5.5 0 0 1-.5-.6V11H9.7a.5.5 0 0 1 0-1h1.8V8.3c0-.3.2-.6.5-.6s.5.3.5.6V10h1.8c.3 0 .5.2.5.5zM4 5h16v14H4V5zm5 13v-3H5v3h4zm5 0v-3h-4v3h4zm5 0v-3h-4v3h4zm0-4V7H5v7h14z" fill-rule="evenodd"/></svg>',"table-insert-row-after":'<svg width="24" height="24"><path d="M9.2 14.5c0-.3.2-.5.5-.5h1.8v-1.8c0-.3.2-.5.5-.5s.5.2.5.6V14h1.8c.3 0 .5.2.5.5s-.2.5-.5.5h-1.8v1.7c0 .3-.2.6-.5.6a.5.5 0 0 1-.5-.6V15H9.7a.5.5 0 0 1-.5-.5zM4 5h16v14H4V5zm6 2v3h4V7h-4zM5 7v3h4V7H5zm14 11v-7H5v7h14zm0-8V7h-4v3h4z" fill-rule="evenodd"/></svg>',"table-left-header":'<svg width="24" height="24"><path d="M4 5h16v13H4V5zm10 12v-3h-4v3h4zm0-4v-3h-4v3h4zm0-4V6h-4v3h4zm5 8v-3h-4v3h4zm0-4v-3h-4v3h4zm0-4V6h-4v3h4z" fill-rule="evenodd"/></svg>',"table-merge-cells":'<svg width="24" height="24"><path d="M4 5h16v14H4V5zm6 13h9v-7h-9v7zm4-11h-4v3h4V7zM9 7H5v3h4V7zm-4 4v3h4v-3H5zm10-1h4V7h-4v3zM5 15v3h4v-3H5z" fill-rule="evenodd"/></svg>',"table-row-properties":'<svg width="24" height="24"><path d="M4 5h16v14H4V5zm10 10h-4v3h4v-3zm0-8h-4v3h4V7zM9 7H5v3h4V7zm6 3h4V7h-4v3zM5 15v3h4v-3H5zm10 3h4v-3h-4v3z" fill-rule="evenodd"/></svg>',"table-split-cells":'<svg width="24" height="24"><path d="M4 5h16v14H4V5zm6 2v3h4V7h-4zM9 18v-3H5v3h4zm0-4v-3H5v3h4zm0-4V7H5v3h4zm10 8v-7h-9v7h9zm0-8V7h-4v3h4zm-3.5 4.5l1.5 1.6c.3.2.3.7 0 1-.2.2-.7.2-1 0l-1.5-1.6-1.6 1.5c-.2.3-.7.3-1 0a.7.7 0 0 1 0-1l1.6-1.5-1.5-1.6a.7.7 0 0 1 1-1l1.5 1.6 1.6-1.5c.2-.3.7-.3 1 0 .2.2.2.7 0 1l-1.6 1.5z" fill-rule="evenodd"/></svg>',"table-top-header":'<svg width="24" height="24"><path d="M4 5h16v13H4V5zm5 12v-3H5v3h4zm0-4v-3H5v3h4zm5 4v-3h-4v3h4zm0-4v-3h-4v3h4zm5 4v-3h-4v3h4zm0-4v-3h-4v3h4z" fill-rule="evenodd"/></svg>',table:'<svg width="24" height="24"><path d="M4 5h16v14H4V5zm6 9h4v-3h-4v3zm4 1h-4v3h4v-3zm0-8h-4v3h4V7zM9 7H5v3h4V7zm-4 4v3h4v-3H5zm10 0v3h4v-3h-4zm0-1h4V7h-4v3zM5 15v3h4v-3H5zm10 3h4v-3h-4v3z" fill-rule="evenodd"/></svg>',template:'<svg width="24" height="24"><path d="M19 19v-1H5v1h14zM9 16v-4a5 5 0 1 1 6 0v4h4a2 2 0 0 1 2 2v3H3v-3c0-1.1.9-2 2-2h4zm4 0v-5l.8-.6a3 3 0 1 0-3.6 0l.8.6v5h2z" fill-rule="nonzero"/></svg>',"temporary-placeholder":'<svg width="24" height="24"><g fill-rule="evenodd"><path d="M9 7.6V6h2.5V4.5a.5.5 0 1 1 1 0V6H15v1.6a8 8 0 1 1-6 0zm-2.6 5.3a.5.5 0 0 0 .3.6c.3 0 .6 0 .6-.3l.1-.2a5 5 0 0 1 3.3-2.8c.3-.1.4-.4.4-.6-.1-.3-.4-.5-.6-.4a6 6 0 0 0-4.1 3.7z"/><circle cx="14" cy="4" r="1"/><circle cx="12" cy="2" r="1"/><circle cx="10" cy="4" r="1"/></g></svg>',"text-color":'<svg width="24" height="24"><g fill-rule="evenodd"><path id="tox-icon-text-color__color" d="M3 18h18v3H3z"/><path d="M8.7 16h-.8a.5.5 0 0 1-.5-.6l2.7-9c.1-.3.3-.4.5-.4h2.8c.2 0 .4.1.5.4l2.7 9a.5.5 0 0 1-.5.6h-.8a.5.5 0 0 1-.4-.4l-.7-2.2c0-.3-.3-.4-.5-.4h-3.4c-.2 0-.4.1-.5.4l-.7 2.2c0 .3-.2.4-.4.4zm2.6-7.6l-.6 2a.5.5 0 0 0 .5.6h1.6a.5.5 0 0 0 .5-.6l-.6-2c0-.3-.3-.4-.5-.4h-.4c-.2 0-.4.1-.5.4z"/></g></svg>',toc:'<svg width="24" height="24"><path d="M5 5c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 1 1 0-2zm3 0h11c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 1 1 0-2zm-3 8c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h11c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm0-4c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 1 1 0-2zm3 0h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm-3 8c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',translate:'<svg width="24" height="24"><path d="M12.7 14.3l-.3.7-.4.7-2.2-2.2-3.1 3c-.3.4-.8.4-1 0a.7.7 0 0 1 0-1l3.1-3A12.4 12.4 0 0 1 6.7 9H8a10.1 10.1 0 0 0 1.7 2.4c.5-.5 1-1.1 1.4-1.8l.9-2H4.7a.7.7 0 1 1 0-1.5h4.4v-.7c0-.4.3-.8.7-.8.4 0 .7.4.7.8v.7H15c.4 0 .8.3.8.7 0 .4-.4.8-.8.8h-1.4a12.3 12.3 0 0 1-1 2.4 13.5 13.5 0 0 1-1.7 2.3l1.9 1.8zm4.3-3l2.7 7.3a.5.5 0 0 1-.4.7 1 1 0 0 1-1-.7l-.6-1.5h-3.4l-.6 1.5a1 1 0 0 1-1 .7.5.5 0 0 1-.4-.7l2.7-7.4a1 1 0 1 1 2 0zm-2.2 4.4h2.4L16 12.5l-1.2 3.2z" fill-rule="evenodd"/></svg>',underline:'<svg width="24" height="24"><path d="M16 5c.6 0 1 .4 1 1v5.5a4 4 0 0 1-.4 1.8l-1 1.4a5.3 5.3 0 0 1-5.5 1 5 5 0 0 1-1.6-1c-.5-.4-.8-.9-1.1-1.4a4 4 0 0 1-.4-1.8V6c0-.6.4-1 1-1s1 .4 1 1v5.5c0 .3 0 .6.2 1l.6.7a3.3 3.3 0 0 0 2.2.8 3.4 3.4 0 0 0 2.2-.8c.3-.2.4-.5.6-.8l.2-.9V6c0-.6.4-1 1-1zM8 17h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',undo:'<svg width="24" height="24"><path d="M6.4 8H12c3.7 0 6.2 2 6.8 5.1.6 2.7-.4 5.6-2.3 6.8a1 1 0 0 1-1-1.8c1.1-.6 1.8-2.7 1.4-4.6-.5-2.1-2.1-3.5-4.9-3.5H6.4l3.3 3.3a1 1 0 1 1-1.4 1.4l-5-5a1 1 0 0 1 0-1.4l5-5a1 1 0 0 1 1.4 1.4L6.4 8z" fill-rule="nonzero"/></svg>',unlink:'<svg width="24" height="24"><path d="M6.2 12.3a1 1 0 0 1 1.4 1.4l-2 2a2 2 0 1 0 2.6 2.8l4.8-4.8a1 1 0 0 0 0-1.4 1 1 0 1 1 1.4-1.3 2.9 2.9 0 0 1 0 4L9.6 20a3.9 3.9 0 0 1-5.5-5.5l2-2zm11.6-.6a1 1 0 0 1-1.4-1.4l2.1-2a2 2 0 1 0-2.7-2.8L11 10.3a1 1 0 0 0 0 1.4A1 1 0 1 1 9.6 13a2.9 2.9 0 0 1 0-4L14.4 4a3.9 3.9 0 0 1 5.5 5.5l-2 2zM7.6 6.3a.8.8 0 0 1-1 1.1L3.3 4.2a.7.7 0 1 1 1-1l3.2 3.1zM5.1 8.6a.8.8 0 0 1 0 1.5H3a.8.8 0 0 1 0-1.5H5zm5-3.5a.8.8 0 0 1-1.5 0V3a.8.8 0 0 1 1.5 0V5zm6 11.8a.8.8 0 0 1 1-1l3.2 3.2a.8.8 0 0 1-1 1L16 17zm-2.2 2a.8.8 0 0 1 1.5 0V21a.8.8 0 0 1-1.5 0V19zm5-3.5a.7.7 0 1 1 0-1.5H21a.8.8 0 0 1 0 1.5H19z" fill-rule="nonzero"/></svg>',unlock:'<svg width="24" height="24"><path d="M16 5c.8 0 1.5.3 2.1.9.6.6.9 1.3.9 2.1v3h-2V8a1 1 0 0 0-.3-.7A1 1 0 0 0 16 7h-2a1 1 0 0 0-.7.3 1 1 0 0 0-.3.7v3h.3c.2 0 .3 0 .5.2l.2.6v7.4c0 .3 0 .4-.2.6l-.6.2H4.8c-.3 0-.4 0-.6-.2a.7.7 0 0 1-.2-.6v-7.4c0-.3 0-.4.2-.6l.5-.2H11V8c0-.8.3-1.5.9-2.1.6-.6 1.3-.9 2.1-.9h2z" fill-rule="evenodd"/></svg>',"unordered-list":'<svg width="24" height="24"><path d="M11 5h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0 6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm0 6h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zM4.5 6c0-.4.1-.8.4-1 .3-.4.7-.5 1.1-.5.4 0 .8.1 1 .4.4.3.5.7.5 1.1 0 .4-.1.8-.4 1-.3.4-.7.5-1.1.5-.4 0-.8-.1-1-.4-.4-.3-.5-.7-.5-1.1zm0 6c0-.4.1-.8.4-1 .3-.4.7-.5 1.1-.5.4 0 .8.1 1 .4.4.3.5.7.5 1.1 0 .4-.1.8-.4 1-.3.4-.7.5-1.1.5-.4 0-.8-.1-1-.4-.4-.3-.5-.7-.5-1.1zm0 6c0-.4.1-.8.4-1 .3-.4.7-.5 1.1-.5.4 0 .8.1 1 .4.4.3.5.7.5 1.1 0 .4-.1.8-.4 1-.3.4-.7.5-1.1.5-.4 0-.8-.1-1-.4-.4-.3-.5-.7-.5-1.1z" fill-rule="evenodd"/></svg>',unselected:'<svg width="24" height="24"><path fill-rule="nonzero" d="M6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2zm0 1a1 1 0 0 0-1 1v12c0 .6.4 1 1 1h12c.6 0 1-.4 1-1V6c0-.6-.4-1-1-1H6z"/></svg>',upload:'<svg width="24" height="24"><path d="M18 19v-2a1 1 0 0 1 2 0v3c0 .6-.4 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 2 0v2h12zM11 6.4L8.7 8.7a1 1 0 0 1-1.4-1.4l4-4a1 1 0 0 1 1.4 0l4 4a1 1 0 1 1-1.4 1.4L13 6.4V16a1 1 0 0 1-2 0V6.4z" fill-rule="nonzero"/></svg>',user:'<svg width="24" height="24"><path d="M12 24a12 12 0 1 1 0-24 12 12 0 0 1 0 24zm-8.7-5.3a11 11 0 0 0 17.4 0C19.4 16.3 14.6 15 12 15c-2.6 0-7.4 1.3-8.7 3.7zM12 13c2.2 0 4-2 4-4.5S14.2 4 12 4 8 6 8 8.5 9.8 13 12 13z" fill-rule="nonzero"/></svg>',visualblocks:'<svg width="24" height="24"><path d="M9 19v2H7v-2h2zm-4 0v2a2 2 0 0 1-2-2h2zm8 0v2h-2v-2h2zm8 0a2 2 0 0 1-2 2v-2h2zm-4 0v2h-2v-2h2zM15 7a1 1 0 0 1 0 2v7a1 1 0 0 1-2 0V9h-1v7a1 1 0 0 1-2 0v-4a2.5 2.5 0 0 1-.2-5H15zM5 15v2H3v-2h2zm16 0v2h-2v-2h2zM5 11v2H3v-2h2zm16 0v2h-2v-2h2zM5 7v2H3V7h2zm16 0v2h-2V7h2zM5 3v2H3c0-1.1.9-2 2-2zm8 0v2h-2V3h2zm6 0a2 2 0 0 1 2 2h-2V3zM9 3v2H7V3h2zm8 0v2h-2V3h2z" fill-rule="evenodd"/></svg>',visualchars:'<svg width="24" height="24"><path d="M10 5h7a1 1 0 0 1 0 2h-1v11a1 1 0 0 1-2 0V7h-2v11a1 1 0 0 1-2 0v-6c-.5 0-1 0-1.4-.3A3.4 3.4 0 0 1 6.8 10a3.3 3.3 0 0 1 0-2.8 3.4 3.4 0 0 1 1.8-1.8L10 5z" fill-rule="evenodd"/></svg>',warning:'<svg width="24" height="24"><path d="M19.8 18.3c.2.5.3.9 0 1.2-.1.3-.5.5-1 .5H5.2c-.5 0-.9-.2-1-.5-.3-.3-.2-.7 0-1.2L11 4.7l.5-.5.5-.2c.2 0 .3 0 .5.2.2 0 .3.3.5.5l6.8 13.6zM12 18c.3 0 .5-.1.7-.3.2-.2.3-.4.3-.7a1 1 0 0 0-.3-.7 1 1 0 0 0-.7-.3 1 1 0 0 0-.7.3 1 1 0 0 0-.3.7c0 .3.1.5.3.7.2.2.4.3.7.3zm.7-3l.3-4a1 1 0 0 0-.3-.7 1 1 0 0 0-.7-.3 1 1 0 0 0-.7.3 1 1 0 0 0-.3.7l.3 4h1.4z" fill-rule="evenodd"/></svg>',"zoom-in":'<svg width="24" height="24"><path d="M16 17.3a8 8 0 1 1 1.4-1.4l4.3 4.4a1 1 0 0 1-1.4 1.4l-4.4-4.3zm-5-.3a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm-1-9a1 1 0 0 1 2 0v6a1 1 0 0 1-2 0V8zm-2 4a1 1 0 0 1 0-2h6a1 1 0 0 1 0 2H8z" fill-rule="nonzero"/></svg>',"zoom-out":'<svg width="24" height="24"><path d="M16 17.3a8 8 0 1 1 1.4-1.4l4.3 4.4a1 1 0 0 1-1.4 1.4l-4.4-4.3zm-5-.3a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm-3-5a1 1 0 0 1 0-2h6a1 1 0 0 1 0 2H8z" fill-rule="nonzero"/></svg>'}),Ud.get(e).icons);ue(t,function(e,t){kt(r,t)||n.ui.registry.addIcon(t,e)})}(e),function(e){var t=e.settings.theme;if(K(t)){e.settings.theme=Iw(t);var n=qd.get(t);e.theme=new n(e,qd.urls[t]),e.theme.init&&e.theme.init(e,qd.urls[t]||e.documentBaseUrl.replace(/\/$/,""),e.$)}else e.theme={}}(e),function(t){var n=[];Mn.each(t.settings.plugins.split(/[ ,]/),function(e){Az(t,n,Iw(e))})}(e);var t=function(e){var t=e.getElement();return e.orgDisplay=t.style.display,K(e.settings.theme)?function(e){return e.theme.renderUI()}(e):D(e.settings.theme)?function(e){var t=e.getElement(),n=(0,e.settings.theme)(e,t);return n.editorContainer.nodeType&&(n.editorContainer.id=n.editorContainer.id||e.id+"_parent"),n.iframeContainer&&n.iframeContainer.nodeType&&(n.iframeContainer.id=n.iframeContainer.id||e.id+"_iframecontainer"),n.height=n.iframeHeight?n.iframeHeight:t.offsetHeight,n}(e):Uw(e)}(e);return e.editorContainer=t.editorContainer?t.editorContainer:null,Vw(e),e.inline?Nz(e):kz(e,t)},Rz=Xi.DOM,Dz=function(t){var e=t.settings,n=t.id;ra.setCode(Bf(t));var r=function(){Rz.unbind(j.window,"ready",r),t.render()};if(kr.Event.domLoaded){if(t.getElement()&&Nn.contentEditable){e.inline?t.inline=!0:(t.orgVisibility=t.getElement().style.visibility,t.getElement().style.visibility="hidden");var o=t.getElement().form||Rz.getParent(n,"form");o&&(t.formElement=o,e.hidden_input&&!Ge.isTextareaOrInput(t.getElement())&&(Rz.insertAfter(Rz.create("input",{type:"hidden",name:n}),n),t.hasHiddenInput=!0),t.formEventDelegate=function(e){t.fire(e.type,e)},Rz.bind(o,"submit reset",t.formEventDelegate),t.on("reset",function(){t.resetContent()}),!e.submit_patch||o.submit.nodeType||o.submit.length||o._mceOldSubmit||(o._mceOldSubmit=o.submit,o.submit=function(){return t.editorManager.triggerSave(),t.setDirty(!1),o._mceOldSubmit(o)})),t.windowManager=Bd(t),t.notificationManager=_d(t),"xml"===e.encoding&&t.on("GetContent",function(e){e.save&&(e.content=Rz.encode(e.content))}),e.add_form_submit_trigger&&t.on("submit",function(){t.initialized&&t.save()}),e.add_unload_trigger&&(t._beforeUnload=function(){!t.initialized||t.destroyed||t.isHidden()||t.save({format:"raw",no_events:!0,set_dirty:!1})},t.editorManager.on("BeforeUnload",t._beforeUnload)),t.editorManager.add(t),$w(t,t.suffix)}}else Rz.bind(j.window,"ready",r)},_z="data-mce-contenteditable",Bz=["design","readonly"],Oz=function(e,t){var n=t.firstChild,r=t.lastChild;return n&&"meta"===n.name&&(n=n.next),r&&"mce_marker"===r.attr("id")&&(r=r.prev),function(e,t){var n=e.getNonEmptyElements();return t&&(t.isEmpty(n)||function(e,t){return e.getBlockElements()[t.name]&&function(e){return e.firstChild&&e.firstChild===e.lastChild}(t)&&function(e){return"br"===e.name||"\xa0"===e.value}(t.firstChild)}(e,t))}(e,r)&&(r=r.prev),!(!n||n!==r)&&("ul"===n.name||"ol"===n.name)},Hz=function(e,o,i,t){function n(e){var t=Ds.fromRangeStart(i),n=rc(o.getRoot()),r=1===e?n.prev(t):n.next(t);return!r||rx(o,r.getNode())!==a}var r=function(e,t,n){var r=t.serialize(n);return function(e){var t=e.firstChild,n=e.lastChild;return t&&"META"===t.nodeName&&t.parentNode.removeChild(t),n&&"mce_marker"===n.id&&n.parentNode.removeChild(n),e}(e.createFragment(r))}(o,e,t),a=rx(o,i.startContainer),u=nx(ex(r.firstChild)),s=o.getRoot();return n(1)?ix(a,u,s):n(2)?function(e,t,n,r){return r.insertAfter(t.reverse(),e),ox(t[0],n)}(a,u,s,o):function(t,e,n,r){var o=function(e,t){var n=t.cloneRange(),r=t.cloneRange();return n.setStartBefore(e),r.setEndAfter(e),[n.cloneContents(),r.cloneContents()]}(t,r),i=t.parentNode;return i.insertBefore(o[0],t),Mn.each(e,function(e){i.insertBefore(e,t)}),i.insertBefore(o[1],t),i.removeChild(t),ox(e[e.length-1],n)}(a,u,s,i)},Pz=function(e,t){return!!rx(e,t)},Lz=Ge.matchNodeNames(["td","th"]),Vz=function(e,t){var n=function(e){var t;return"string"!=typeof e?(t=Mn.extend({paste:e.paste,data:{paste:e.paste}},e),{content:e.content,details:t}):{content:e,details:{}}}(t);ux(e,n.content,n.details)},Iz=function(e){ez(e,!1)||Lx(e,!1)||Ix(e,!1)||Fx(e,!1)||Dx(e,!1)||Kx(e)||_x(e,!1)||Ux(e,!1)||(sx(e,"Delete"),Tx(e))},Fz=function(e){Lx(e,!0)||Ix(e,!0)||Fx(e,!0)||Dx(e,!0)||Kx(e)||_x(e,!0)||Ux(e,!0)||sx(e,"ForwardDelete")},Uz={getFontSize:cx("font-size"),getFontFamily:q(function(e){return e.replace(/[\'\"\\]/g,"").replace(/,\s+/g,",")},cx("font-family")),toPt:function(e,t){return/[0-9.]+px$/.test(e)?function(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}(72*parseInt(e,10)/96,t||0)+"pt":e}},jz=Mn.each,qz=Mn.map,$z=Mn.inArray,Wz=(Kz.prototype.execCommand=function(t,n,r,e){var o,i,a=!1,u=this;if(!u.editor.removed){if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t)||e&&e.skip_focus?Jf(u.editor):u.editor.focus(),(e=u.editor.fire("BeforeExecCommand",{command:t,ui:n,value:r})).isDefaultPrevented())return!1;if(i=t.toLowerCase(),o=u.commands.exec[i])return o(i,n,r),u.editor.fire("ExecCommand",{command:t,ui:n,value:r}),!0;if(jz(this.editor.plugins,function(e){if(e.execCommand&&e.execCommand(t,n,r))return u.editor.fire("ExecCommand",{command:t,ui:n,value:r}),!(a=!0)}),a)return a;if(u.editor.theme&&u.editor.theme.execCommand&&u.editor.theme.execCommand(t,n,r))return u.editor.fire("ExecCommand",{command:t,ui:n,value:r}),!0;try{a=u.editor.getDoc().execCommand(t,n,r)}catch(s){}return!!a&&(u.editor.fire("ExecCommand",{command:t,ui:n,value:r}),!0)}},Kz.prototype.queryCommandState=function(e){var t;if(!this.editor.quirks.isHidden()&&!this.editor.removed){if(e=e.toLowerCase(),t=this.commands.state[e])return t(e);try{return this.editor.getDoc().queryCommandState(e)}catch(n){}return!1}},Kz.prototype.queryCommandValue=function(e){var t;if(!this.editor.quirks.isHidden()&&!this.editor.removed){if(e=e.toLowerCase(),t=this.commands.value[e])return t(e);try{return this.editor.getDoc().queryCommandValue(e)}catch(n){}}},Kz.prototype.addCommands=function(e,n){var r=this;n=n||"exec",jz(e,function(t,e){jz(e.toLowerCase().split(","),function(e){r.commands[n][e]=t})})},Kz.prototype.addCommand=function(e,o,i){var a=this;e=e.toLowerCase(),this.commands.exec[e]=function(e,t,n,r){return o.call(i||a.editor,t,n,r)}},Kz.prototype.queryCommandSupported=function(e){if(e=e.toLowerCase(),this.commands.exec[e])return!0;try{return this.editor.getDoc().queryCommandSupported(e)}catch(t){}return!1},Kz.prototype.addQueryStateHandler=function(e,t,n){var r=this;e=e.toLowerCase(),this.commands.state[e]=function(){return t.call(n||r.editor)}},Kz.prototype.addQueryValueHandler=function(e,t,n){var r=this;e=e.toLowerCase(),this.commands.value[e]=function(){return t.call(n||r.editor)}},Kz.prototype.hasCustomCommand=function(e){return e=e.toLowerCase(),!!this.commands.exec[e]},Kz.prototype.execNativeCommand=function(e,t,n){return t===undefined&&(t=!1),n===undefined&&(n=null),this.editor.getDoc().execCommand(e,t,n)},Kz.prototype.isFormatMatch=function(e){return this.editor.formatter.match(e)},Kz.prototype.toggleFormat=function(e,t){this.editor.formatter.toggle(e,t?{value:t}:undefined),this.editor.nodeChanged()},Kz.prototype.storeSelection=function(e){this.selectionBookmark=this.editor.selection.getBookmark(e)},Kz.prototype.restoreSelection=function(){this.editor.selection.moveToBookmark(this.selectionBookmark)},Kz.prototype.setupCommands=function(i){var a=this;function e(n){return function(){var e=i.selection.isCollapsed()?[i.dom.getParent(i.selection.getNode(),i.dom.isBlock)]:i.selection.getSelectedBlocks(),t=qz(e,function(e){return!!i.formatter.matchNode(e,n)});return-1!==$z(t,!0)}}this.addCommands({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){i.undoManager.add()},"Cut,Copy,Paste":function(e){var t,n=i.getDoc();try{a.execNativeCommand(e)}catch(o){t=!0}if("paste"!==e||n.queryCommandEnabled(e)||(t=!0),t||!n.queryCommandSupported(e)){var r=i.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");Nn.mac&&(r=r.replace(/Ctrl\+/g,"\u2318+")),i.notificationManager.open({text:r,type:"error"})}},unlink:function(){if(i.selection.isCollapsed()){var e=i.dom.getParent(i.selection.getStart(),"a");e&&i.dom.remove(e,!0)}else i.formatter.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"===t&&(t="justify"),jz("left,center,right,justify".split(","),function(e){t!==e&&i.formatter.remove("align"+e)}),"none"!==t&&a.toggleFormat("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;a.execNativeCommand(e),(t=i.dom.getParent(i.selection.getNode(),"ol,ul"))&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(a.storeSelection(),i.dom.split(n,t),a.restoreSelection()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){a.toggleFormat(e)},"ForeColor,HiliteColor":function(e,t,n){a.toggleFormat(e,n)},FontName:function(e,t,n){hx(i,n)},FontSize:function(e,t,n){!function(e,t){e.formatter.toggle("fontsize",{value:dx(e,t)}),e.nodeChanged()}(i,n)},RemoveFormat:function(e){i.formatter.remove(e)},mceBlockQuote:function(){a.toggleFormat("blockquote")},FormatBlock:function(e,t,n){return a.toggleFormat(n||"p")},mceCleanup:function(){var e=i.selection.getBookmark();i.setContent(i.getContent()),i.selection.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var r=n||i.selection.getNode();r!==i.getBody()&&(a.storeSelection(),i.dom.remove(r,!0),a.restoreSelection())},mceSelectNodeDepth:function(e,t,n){var r=0;i.dom.getParent(i.selection.getNode(),function(e){if(1===e.nodeType&&r++===n)return i.selection.select(e),!1},i.getBody())},mceSelectNode:function(e,t,n){i.selection.select(n)},mceInsertContent:function(e,t,n){Vz(i,n)},mceInsertRawHTML:function(e,t,n){i.selection.setContent("tiny_mce_marker");var r=i.getContent();i.setContent(r.replace(/tiny_mce_marker/g,function(){return n}))},mceInsertNewLine:function(e,t,n){gz(i,n)},mceToggleFormat:function(e,t,n){a.toggleFormat(n)},mceSetContent:function(e,t,n){i.setContent(n)},"Indent,Outdent":function(e){_C(i,e)},mceRepaint:function(){},InsertHorizontalRule:function(){i.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){i.hasVisual=!i.hasVisual,i.addVisual()},mceReplaceContent:function(e,t,n){i.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,i.selection.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=i.dom.getParent(i.selection.getNode(),"a"),n.href=n.href.replace(/ /g,"%20"),r&&n.href||i.formatter.remove("link"),n.href&&i.formatter.apply("link",n,r)},selectAll:function(){var e=i.dom.getParent(i.selection.getStart(),Ge.isContentEditableTrue);if(e){var t=i.dom.createRng();t.selectNodeContents(e),i.selection.setRng(t)}},"delete":function(){Iz(i)},forwardDelete:function(){Fz(i)},mceNewDocument:function(){i.setContent("")},InsertLineBreak:function(e,t,n){return lz(i,n),!0}}),a.addCommands({JustifyLeft:e("alignleft"),JustifyCenter:e("aligncenter"),JustifyRight:e("alignright"),JustifyFull:e("alignjustify"),"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return a.isFormatMatch(e)},mceBlockQuote:function(){return a.isFormatMatch("blockquote")},Outdent:function(){return RC(i)},"InsertUnorderedList,InsertOrderedList":function(e){var t=i.dom.getParent(i.selection.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),a.addCommands({Undo:function(){i.undoManager.undo()},Redo:function(){i.undoManager.redo()}}),a.addQueryValueHandler("FontName",function(){return function(t){return fx(t).fold(function(){return lx(t).map(function(e){return Uz.getFontFamily(t.getBody(),e)}).getOr("")},function(e){return Uz.getFontFamily(t.getBody(),e)})}(i)},this),a.addQueryValueHandler("FontSize",function(){return function(t){return fx(t).fold(function(){return lx(t).map(function(e){return Uz.getFontSize(t.getBody(),e)}).getOr("")},function(e){return Uz.getFontSize(t.getBody(),e)})}(i)},this)},Kz);function Kz(e){this.commands={state:{},exec:{},value:{}},this.editor=e,this.setupCommands(e)}var Xz=Mn.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel"," "),Yz=(Gz.isNative=function(e){return!!Xz[e.toLowerCase()]},Gz.prototype.fire=function(e,t){var n,r,o,i;if(e=e.toLowerCase(),(t=t||{}).type=e,t.target||(t.target=this.scope),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=a},t.stopPropagation=function(){t.isPropagationStopped=a},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=a},t.isDefaultPrevented=c,t.isPropagationStopped=c,t.isImmediatePropagationStopped=c),this.settings.beforeFire&&this.settings.beforeFire(t),n=this.bindings[e])for(r=0,o=n.length;r<o;r++){if((i=n[r]).once&&this.off(e,i.func),t.isImmediatePropagationStopped())return t.stopPropagation(),t;if(!1===i.func.call(this.scope,t))return t.preventDefault(),t}return t},Gz.prototype.on=function(e,t,n,r){var o,i,a;if(!1===t&&(t=c),t){var u={func:t};for(r&&Mn.extend(u,r),a=(i=e.toLowerCase().split(" ")).length;a--;)e=i[a],(o=this.bindings[e])||(o=this.bindings[e]=[],this.toggleEvent(e,!0)),n?o.unshift(u):o.push(u)}return this},Gz.prototype.off=function(e,t){var n,r,o,i,a;if(e)for(n=(i=e.toLowerCase().split(" ")).length;n--;){if(e=i[n],r=this.bindings[e],!e){for(o in this.bindings)this.toggleEvent(o,!1),delete this.bindings[o];return this}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),this.bindings[e]=r);else r.length=0;r.length||(this.toggleEvent(e,!1),delete this.bindings[e])}}else{for(e in this.bindings)this.toggleEvent(e,!1);this.bindings={}}return this},Gz.prototype.once=function(e,t,n){return this.on(e,t,n,{once:!0})},Gz.prototype.has=function(e){return e=e.toLowerCase(),!(!this.bindings[e]||0===this.bindings[e].length)},Gz);function Gz(e){this.bindings={},this.settings=e||{},this.scope=this.settings.scope||this,this.toggleEvent=this.settings.toggleEvent||c}function Jz(n){return n._eventDispatcher||(n._eventDispatcher=new Yz({scope:n,toggleEvent:function(e,t){Yz.isNative(e)&&n.toggleNativeEvent&&n.toggleNativeEvent(e,t)}})),n._eventDispatcher}function Qz(e,t){return"selectionchange"===t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=rE.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function Zz(e,t,n){!function(e){return!e.hidden&&!Gw(e)}(e)?Gw(e)&&function(e){var t=e.target;!function(e){return"click"===e.type}(e)||"A"!==t.tagName||Ah.metaKeyPressed(e)||e.preventDefault()}(n):e.fire(t,n)}function eE(i,a){var e,t;if(i.delegates||(i.delegates={}),!i.delegates[a]&&!i.removed)if(e=Qz(i,a),i.settings.event_root){if(tE||(tE={},i.editorManager.on("removeEditor",function(){var e;if(!i.editorManager.activeEditor&&tE){for(e in tE)i.dom.unbind(Qz(i,e));tE=null}})),tE[a])return;t=function(e){for(var t=e.target,n=i.editorManager.get(),r=n.length;r--;){var o=n[r].getBody();o!==t&&!rE.isChildOf(t,o)||Zz(n[r],a,e)}},tE[a]=t,rE.bind(e,a,t)}else t=function(e){Zz(i,a,e)},rE.bind(e,a,t),i.delegates[a]=t}var tE,nE={fire:function(e,t,n){if(this.removed&&"remove"!==e&&"detach"!==e)return t;var r=Jz(this).fire(e,t);if(!1!==n&&this.parent)for(var o=this.parent();o&&!r.isPropagationStopped();)o.fire(e,r,!1),o=o.parent();return r},on:function(e,t,n){return Jz(this).on(e,t,n)},off:function(e,t){return Jz(this).off(e,t)},once:function(e,t){return Jz(this).once(e,t)},hasEventListeners:function(e){return Jz(this).has(e)}},rE=Xi.DOM,oE=G(G({},nE),{bindPendingEventDelegates:function(){var t=this;Mn.each(t._pendingNativeEvents,function(e){eE(t,e)})},toggleNativeEvent:function(e,t){var n=this;"focus"!==e&&"blur"!==e&&(t?n.initialized?eE(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(Qz(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e,t=this,n=t.getBody(),r=t.dom;if(t.delegates){for(e in t.delegates)t.dom.unbind(Qz(t,e),e,t.delegates[e]);delete t.delegates}!t.inline&&n&&r&&(n.onload=null,r.unbind(t.getWin()),r.unbind(t.getDoc())),r&&(r.unbind(n),r.unbind(t.getContainer()))}}),iE=Mn.each,aE=Mn.explode,uE={f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123},sE=Mn.makeMap("alt,ctrl,shift,meta,access"),cE=(lE.prototype.add=function(e,n,r,o){var t,i=this;return"string"==typeof(t=r)?r=function(){i.editor.execCommand(t,!1,null)}:Mn.isArray(t)&&(r=function(){i.editor.execCommand(t[0],t[1],t[2])}),iE(aE(Mn.trim(e)),function(e){var t=i.createShortcut(e,n,r,o);i.shortcuts[t.id]=t}),!0},lE.prototype.remove=function(e){var t=this.createShortcut(e);return!!this.shortcuts[t.id]&&(delete this.shortcuts[t.id],!0)},lE.prototype.parseShortcut=function(e){var t,n,r={};for(n in iE(aE(e.toLowerCase(),"+"),function(e){e in sE?r[e]=!0:/^[0-9]{2,}$/.test(e)?r.keyCode=parseInt(e,10):(r.charCode=e.charCodeAt(0),r.keyCode=uE[e]||e.toUpperCase().charCodeAt(0))}),t=[r.keyCode],sE)r[n]?t.push(n):r[n]=!1;return r.id=t.join(","),r.access&&(r.alt=!0,Nn.mac?r.ctrl=!0:r.shift=!0),r.meta&&(Nn.mac?r.meta=!0:(r.ctrl=!0,r.meta=!1)),r},lE.prototype.createShortcut=function(e,t,n,r){var o;return(o=Mn.map(aE(e,">"),this.parseShortcut))[o.length-1]=Mn.extend(o[o.length-1],{func:n,scope:r||this.editor}),Mn.extend(o[0],{desc:this.editor.translate(t),subpatterns:o.slice(1)})},lE.prototype.hasModifier=function(e){return e.altKey||e.ctrlKey||e.metaKey},lE.prototype.isFunctionKey=function(e){return"keydown"===e.type&&112<=e.keyCode&&e.keyCode<=123},lE.prototype.matchShortcut=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},lE.prototype.executeShortcutAction=function(e){return e.func?e.func.call(e.scope):null},lE);function lE(e){this.shortcuts={},this.pendingPatterns=[],this.editor=e;var n=this;e.on("keyup keypress keydown",function(t){!n.hasModifier(t)&&!n.isFunctionKey(t)||t.isDefaultPrevented()||(iE(n.shortcuts,function(e){if(n.matchShortcut(t,e))return n.pendingPatterns=e.subpatterns.slice(0),"keydown"===t.type&&n.executeShortcutAction(e),!0}),n.matchShortcut(t,n.pendingPatterns[0])&&(1===n.pendingPatterns.length&&"keydown"===t.type&&n.executeShortcutAction(n.pendingPatterns[0]),n.pendingPatterns.shift()))})}var fE=Mn.each,dE=Mn.trim,hE="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),mE={ftp:21,http:80,https:443,mailto:25},gE=(pE.parseDataUri=function(e){var t,n=decodeURIComponent(e).split(","),r=/data:([^;]+)/.exec(n[0]);return r&&(t=r[1]),{type:t,data:n[1]}},pE.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t},pE.prototype.setPath=function(e){var t=/^(.*?)\/?(\w+)?$/.exec(e);this.path=t[0],this.directory=t[1],this.file=t[2],this.source="",this.getURI()},pE.prototype.toRelative=function(e){var t;if("./"===e)return e;var n=new pE(e,{base_uri:this});if("mce_host"!==n.host&&this.host!==n.host&&n.host||this.port!==n.port||this.protocol!==n.protocol&&""!==n.protocol)return n.getURI();var r=this.getURI(),o=n.getURI();return r===o||"/"===r.charAt(r.length-1)&&r.substr(0,r.length-1)===o?r:(t=this.toRelPath(this.path,n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),t)},pE.prototype.toAbsolute=function(e,t){var n=new pE(e,{base_uri:this});return n.getURI(t&&this.isSameOrigin(n))},pE.prototype.isSameOrigin=function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=mE[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},pE.prototype.toRelPath=function(e,t){var n,r,o,i=0,a="",u=e.substring(0,e.lastIndexOf("/")).split("/");if(n=t.split("/"),u.length>=n.length)for(r=0,o=u.length;r<o;r++)if(r>=n.length||u[r]!==n[r]){i=r+1;break}if(u.length<n.length)for(r=0,o=n.length;r<o;r++)if(r>=u.length||u[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=u.length-(i-1);r<o;r++)a+="../";for(r=i-1,o=n.length;r<o;r++)a+=r!==i-1?"/"+n[r]:n[r];return a},pE.prototype.toAbsPath=function(e,t){var n,r,o,i=0,a=[];r=/\/$/.test(t)?"/":"";var u=e.split("/"),s=t.split("/");for(fE(u,function(e){e&&a.push(e)}),u=a,n=s.length-1,a=[];0<=n;n--)0!==s[n].length&&"."!==s[n]&&(".."!==s[n]?0<i?i--:a.push(s[n]):i++);return 0!==(o=(n=u.length-i)<=0?a.reverse().join("/"):u.slice(0,n).join("/")+"/"+a.reverse().join("/")).indexOf("/")&&(o="/"+o),r&&o.lastIndexOf("/")!==o.length-1&&(o+=r),o},pE.prototype.getURI=function(e){var t;return void 0===e&&(e=!1),this.source&&!e||(t="",e||(this.protocol?t+=this.protocol+"://":t+="//",this.userInfo&&(t+=this.userInfo+"@"),this.host&&(t+=this.host),this.port&&(t+=":"+this.port)),this.path&&(t+=this.path),this.query&&(t+="?"+this.query),this.anchor&&(t+="#"+this.anchor),this.source=t),this.source},pE);function pE(e,t){e=dE(e),this.settings=t||{};var n=this.settings.base_uri,r=this;if(/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))r.source=e;else{var o=0===e.indexOf("//");if(0!==e.indexOf("/")||o||(e=(n&&n.protocol||"http")+"://mce_host"+e),!/^[\w\-]*:?\/\//.test(e)){var i=this.settings.base_uri?this.settings.base_uri.path:new pE(j.document.location.href).directory;if(this.settings.base_uri&&""==this.settings.base_uri.protocol)e="//mce_host"+r.toAbsPath(i,e);else{var a=/([^#?]*)([#?]?.*)/.exec(e);e=(n&&n.protocol||"http")+"://mce_host"+r.toAbsPath(i,a[1])+a[2]}}e=e.replace(/@@/g,"(mce_at)");var u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);fE(hE,function(e,t){var n=u[t];n=n&&n.replace(/\(mce_at\)/g,"@@"),r[e]=n}),n&&(r.protocol||(r.protocol=n.protocol),r.userInfo||(r.userInfo=n.userInfo),r.port||"mce_host"!==r.host||(r.port=n.port),r.host&&"mce_host"!==r.host||(r.host=n.host),r.source=""),o&&(r.protocol="")}}function vE(){var e=function(){function e(n,r){return function(e,t){return n[e.toLowerCase()]=G(G({},t),{type:r})}}var t={},n={},r={},o={},i={},a={},u={};return{addButton:e(t,"button"),addToggleButton:e(t,"togglebutton"),addMenuButton:e(t,"menubutton"),addSplitButton:e(t,"splitbutton"),addMenuItem:e(n,"menuitem"),addNestedMenuItem:e(n,"nestedmenuitem"),addToggleMenuItem:e(n,"togglemenuitem"),addAutocompleter:e(r,"autocompleter"),addContextMenu:e(i,"contextmenu"),addContextToolbar:e(a,"contexttoolbar"),addContextForm:e(a,"contextform"),addSidebar:e(u,"sidebar"),addIcon:function(e,t){return o[e.toLowerCase()]=t},getAll:function(){return{buttons:t,menuItems:n,icons:o,popups:r,contextMenus:i,contextToolbars:a,sidebars:u}}}}();return{addAutocompleter:e.addAutocompleter,addButton:e.addButton,addContextForm:e.addContextForm,addContextMenu:e.addContextMenu,addContextToolbar:e.addContextToolbar,addIcon:e.addIcon,addMenuButton:e.addMenuButton,addMenuItem:e.addMenuItem,addNestedMenuItem:e.addNestedMenuItem,addSidebar:e.addSidebar,addSplitButton:e.addSplitButton,addToggleButton:e.addToggleButton,addToggleMenuItem:e.addToggleMenuItem,getAll:e.getAll}}var yE=Xi.DOM,bE=Mn.extend,CE=Mn.each,wE=Mn.resolve,xE=Nn.ie,zE=(EE.prototype.render=function(){Dz(this)},EE.prototype.focus=function(e){ad(this,e)},EE.prototype.hasFocus=function(){return ud(this)},EE.prototype.execCallback=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r,o=this.settings[e];if(o)return this.callbackLookup&&(r=this.callbackLookup[e])&&(o=r.func,r=r.scope),"string"==typeof o&&(r=(r=o.replace(/\.\w+$/,""))?wE(r):0,o=wE(o),this.callbackLookup=this.callbackLookup||{},this.callbackLookup[e]={func:o,scope:r}),o.apply(r||this,Array.prototype.slice.call(arguments,1))},EE.prototype.translate=function(e){return ra.translate(e)},EE.prototype.getParam=function(e,t,n){return ef(this,e,t,n)},EE.prototype.nodeChanged=function(e){this._nodeChangeDispatcher.nodeChanged(e)},EE.prototype.addCommand=function(e,t,n){this.editorCommands.addCommand(e,t,n)},EE.prototype.addQueryStateHandler=function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},EE.prototype.addQueryValueHandler=function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},EE.prototype.addShortcut=function(e,t,n,r){this.shortcuts.add(e,t,n,r)},EE.prototype.execCommand=function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},EE.prototype.queryCommandState=function(e){return this.editorCommands.queryCommandState(e)},EE.prototype.queryCommandValue=function(e){return this.editorCommands.queryCommandValue(e)},EE.prototype.queryCommandSupported=function(e){return this.editorCommands.queryCommandSupported(e)},EE.prototype.show=function(){this.hidden&&(this.hidden=!1,this.inline?this.getBody().contentEditable="true":(yE.show(this.getContainer()),yE.hide(this.id)),this.load(),this.fire("show"))},EE.prototype.hide=function(){var e=this,t=e.getDoc();e.hidden||(xE&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable="false",e===e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(yE.hide(e.getContainer()),yE.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},EE.prototype.isHidden=function(){return!!this.hidden},EE.prototype.setProgressState=function(e,t){this.fire("ProgressState",{state:e,time:t})},EE.prototype.load=function(e){var t,n=this.getElement();if(this.removed)return"";if(n){(e=e||{}).load=!0;var r=Ge.isTextareaOrInput(n)?n.value:n.innerHTML;return t=this.setContent(r,e),e.element=n,e.no_events||this.fire("LoadContent",e),e.element=n=null,t}},EE.prototype.save=function(e){var t,n,r=this,o=r.getElement();if(o&&r.initialized&&!r.removed)return(e=e||{}).save=!0,e.element=o,e.content=r.getContent(e),e.no_events||r.fire("SaveContent",e),"raw"===e.format&&r.fire("RawSaveContent",e),t=e.content,Ge.isTextareaOrInput(o)?o.value=t:(!e.is_removing&&r.inline||(o.innerHTML=t),(n=yE.getParent(r.id,"form"))&&CE(n.elements,function(e){if(e.name===r.id)return e.value=t,!1})),e.element=o=null,!1!==e.set_dirty&&r.setDirty(!1),t},EE.prototype.setContent=function(e,t){return jl(this,e,t)},EE.prototype.getContent=function(e){return function(t,n){return void 0===n&&(n={}),k.from(t.getBody()).fold($("tree"===n.format?new ul("body",11):""),function(e){return ml(t,n,e)})}(this,e)},EE.prototype.insertContent=function(e,t){t&&(e=bE({content:e},t)),this.execCommand("mceInsertContent",!1,e)},EE.prototype.resetContent=function(e){e===undefined?jl(this,this.startContent,{format:"raw"}):jl(this,e),this.undoManager.reset(),this.setDirty(!1),this.nodeChanged()},EE.prototype.isDirty=function(){return!this.isNotDirty},EE.prototype.setDirty=function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!==t&&this.fire("dirty")},EE.prototype.getContainer=function(){return this.container||(this.container=yE.get(this.editorContainer||this.id+"_parent")),this.container},EE.prototype.getContentAreaContainer=function(){return this.contentAreaContainer},EE.prototype.getElement=function(){return this.targetElm||(this.targetElm=yE.get(this.id)),this.targetElm},EE.prototype.getWin=function(){var e;return this.contentWindow||(e=this.iframeElement)&&(this.contentWindow=e.contentWindow),this.contentWindow},EE.prototype.getDoc=function(){var e;return this.contentDocument||(e=this.getWin())&&(this.contentDocument=e.document),this.contentDocument},EE.prototype.getBody=function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},EE.prototype.convertURL=function(e,t,n){var r=this.settings;return r.urlconverter_callback?this.execCallback("urlconverter_callback",e,n,!0,t):!r.convert_urls||n&&"LINK"===n.nodeName||0===e.indexOf("file:")||0===e.length?e:r.relative_urls?this.documentBaseURI.toRelative(e):e=this.documentBaseURI.toAbsolute(e,r.remove_script_host)},EE.prototype.addVisual=function(e){var n,r=this,o=r.settings,i=r.dom;e=e||r.getBody(),r.hasVisual===undefined&&(r.hasVisual=o.visual),CE(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return n=o.visual_table_class||"mce-item-table",void((t=i.getAttrib(e,"border"))&&"0"!==t||!r.hasVisual?i.removeClass(e,n):i.addClass(e,n));case"A":return void(i.getAttrib(e,"href")||(t=i.getAttrib(e,"name")||e.id,n=o.visual_anchor_class||"mce-item-anchor",t&&r.hasVisual?i.addClass(e,n):i.removeClass(e,n)))}}),r.fire("VisualAid",{element:e,hasVisual:r.hasVisual})},EE.prototype.remove=function(){$l(this)},EE.prototype.destroy=function(e){Wl(this,e)},EE.prototype.uploadImages=function(e){return this.editorUpload.uploadImages(e)},EE.prototype._scanForImages=function(){return this.editorUpload.scanForImages()},EE.prototype.addButton=function(){throw new Error("editor.addButton has been removed in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead")},EE.prototype.addSidebar=function(){throw new Error("editor.addSidebar has been removed in tinymce 5x, use editor.ui.registry.addSidebar instead")},EE.prototype.addMenuItem=function(){throw new Error("editor.addMenuItem has been removed in tinymce 5x, use editor.ui.registry.addMenuItem instead")},EE.prototype.addContextToolbar=function(){throw new Error("editor.addContextToolbar has been removed in tinymce 5x, use editor.ui.registry.addContextToolbar instead")},EE);function EE(e,t,n){var r=this;this.plugins={},this.contentCSS=[],this.contentStyles=[],this.loadedCSS={},this.isNotDirty=!1,this.editorManager=n,this.documentBaseUrl=n.documentBaseURL,bE(this,oE),this.settings=Ql(this,e,this.documentBaseUrl,n.defaultSettings,t),this.settings.suffix&&(n.suffix=this.settings.suffix),this.suffix=n.suffix,this.settings.base_url&&n._setBaseUrl(this.settings.base_url),this.baseUri=n.baseURI,this.settings.referrer_policy&&(Qi.ScriptLoader._setReferrerPolicy(this.settings.referrer_policy),Xi.DOM.styleSheetLoader._setReferrerPolicy(this.settings.referrer_policy)),ga.languageLoad=this.settings.language_load,ga.baseURL=n.baseURL,this.id=e,this.setDirty(!1),this.documentBaseURI=new gE(this.settings.document_base_url,{base_uri:this.baseUri}),this.baseURI=this.baseUri,this.inline=!!this.settings.inline,this.shortcuts=new cE(this),this.editorCommands=new Wz(this),this.settings.cache_suffix&&(Nn.cacheSuffix=this.settings.cache_suffix.replace(/^[\?\&]+/,"")),this.ui={registry:vE()};var o=Zw(this);this.mode=o,this.setMode=o.set,n.fire("SetupEditor",{editor:this}),this.execCallback("setup",this),this.$=vi.overrideDefaults(function(){return{context:r.inline?r.getBody():r.getDoc(),element:r.getBody()}})}function NE(t){var n=t.type;DE(VE.get(),function(e){switch(n){case"scroll":e.fire("ScrollWindow",t);break;case"resize":e.fire("ResizeWindow",t)}})}function SE(e){e!==OE&&(e?vi(window).on("resize scroll",NE):vi(window).off("resize scroll",NE),OE=e)}function kE(t){var e=PE;delete HE[t.id];for(var n=0;n<HE.length;n++)if(HE[n]===t){HE.splice(n,1);break}return PE=y(PE,function(e){return t!==e}),VE.activeEditor===t&&(VE.activeEditor=0<PE.length?PE[0]:null),VE.focusedEditor===t&&(VE.focusedEditor=null),e.length!==PE.length}var TE,AE,ME=Xi.DOM,RE=Mn.explode,DE=Mn.each,_E=Mn.extend,BE=0,OE=!1,HE=[],PE=[],LE="CSS1Compat"!==j.document.compatMode,VE=G(G({},nE),{baseURI:null,baseURL:null,defaultSettings:{},documentBaseURL:null,suffix:null,$:vi,majorVersion:"5",minorVersion:"1.3",releaseDate:"2019-12-04",editors:HE,i18n:ra,activeEditor:null,focusedEditor:null,settings:{},setup:function(){var e,t,n="";t=gE.getDocumentBaseUrl(j.document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/"));var r=window.tinymce||window.tinyMCEPreInit;if(r)e=r.base||r.baseURL,n=r.suffix;else{for(var o=j.document.getElementsByTagName("script"),i=0;i<o.length;i++){var a;if(""!==(a=o[i].src||"")){var u=a.substring(a.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){-1!==u.indexOf(".min")&&(n=".min"),e=a.substring(0,a.lastIndexOf("/"));break}}}if(!e&&j.document.currentScript)-1!==(a=j.document.currentScript.src).indexOf(".min")&&(n=".min"),e=a.substring(0,a.lastIndexOf("/"))}this.baseURL=new gE(t).toAbsolute(e),this.documentBaseURL=t,this.baseURI=new gE(this.baseURL),this.suffix=n,nd(this)},overrideDefaults:function(e){var t,n;(t=e.base_url)&&this._setBaseUrl(t),n=e.suffix,e.suffix&&(this.suffix=n);var r=(this.defaultSettings=e).plugin_base_urls;for(var o in r)ga.PluginManager.urls[o]=r[o]},init:function(r){var n,u,s=this;u=Mn.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu"," ");function c(e){var t=e.id;return t||(t=(t=e.name)&&!ME.get(t)?e.name:ME.uniqueId(),e.setAttribute("id",t)),t}function l(e,t){return t.constructor===RegExp?t.test(e.className):ME.hasClass(e,t)}var f=function(e){n=e},e=function(){function n(e,t,n){var r=new zE(e,t,s);a.push(r),r.on("init",function(){++i===o.length&&f(a)}),r.targetElm=r.targetElm||n,r.render()}var o,i=0,a=[];ME.unbind(window,"ready",e),function(e){var t=r[e];if(t)t.apply(s,Array.prototype.slice.call(arguments,2))}("onpageload"),o=vi.unique(function(t){var e,n=[];if(Nn.browser.isIE()&&Nn.browser.version.major<11)return Fd.initError("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"),[];if(LE)return Fd.initError("Failed to initialize the editor as the document is not in standards mode. TinyMCE requires standards mode."),[];if(t.types)return DE(t.types,function(e){n=n.concat(ME.select(e.selector))}),n;if(t.selector)return ME.select(t.selector);if(t.target)return[t.target];switch(t.mode){case"exact":0<(e=t.elements||"").length&&DE(RE(e),function(t){var e;(e=ME.get(t))?n.push(e):DE(j.document.forms,function(e){DE(e.elements,function(e){e.name===t&&(t="mce_editor_"+BE++,ME.setAttrib(e,"id",t),n.push(e))})})});break;case"textareas":case"specific_textareas":DE(ME.select("textarea"),function(e){t.editor_deselector&&l(e,t.editor_deselector)||t.editor_selector&&!l(e,t.editor_selector)||n.push(e)})}return n}(r)),r.types?DE(r.types,function(t){Mn.each(o,function(e){return!ME.is(e,t.selector)||(n(c(e),_E({},r,t),e),!1)})}):(Mn.each(o,function(e){!function(e){e&&e.initialized&&!(e.getContainer()||e.getBody()).parentNode&&(kE(e),e.unbindAllNativeEvents(),e.destroy(!0),e.removed=!0,e=null)}(s.get(e.id))}),0===(o=Mn.grep(o,function(e){return!s.get(e.id)})).length?f([]):DE(o,function(e){!function(e,t){return e.inline&&t.tagName.toLowerCase()in u}(r,e)?n(c(e),r,e):Fd.initError("Could not initialize inline editor on invalid inline target element",e)}))};return s.settings=r,ME.bind(window,"ready",e),new Zt(function(t){n?t(n):f=function(e){t(e)}})},get:function(t){return 0===arguments.length?PE.slice(0):K(t)?g(PE,function(e){return e.id===t}).getOr(null):_(t)&&PE[t]?PE[t]:null},add:function(e){var n=this;return HE[e.id]===e||(null===n.get(e.id)&&(function(e){return"length"!==e}(e.id)&&(HE[e.id]=e),HE.push(e),PE.push(e)),SE(!0),n.activeEditor=e,n.fire("AddEditor",{editor:e}),TE||(TE=function(e){var t=n.fire("BeforeUnload");if(t.returnValue)return e.preventDefault(),e.returnValue=t.returnValue,t.returnValue},window.addEventListener("beforeunload",TE))),e},createEditor:function(e,t){return this.add(new zE(e,t,this))},remove:function(e){var t,n,r=this;if(e){if(!K(e))return n=e,M(r.get(n.id))?null:(kE(n)&&r.fire("RemoveEditor",{editor:n}),0===PE.length&&window.removeEventListener("beforeunload",TE),n.remove(),SE(0<PE.length),n);DE(ME.select(e),function(e){(n=r.get(e.id))&&r.remove(n)})}else for(t=PE.length-1;0<=t;t--)r.remove(PE[t])},execCommand:function(e,t,n){var r=this.get(n);switch(e){case"mceAddEditor":return this.get(n)||new zE(n,this.settings,this).render(),!0;case"mceRemoveEditor":return r&&r.remove(),!0;case"mceToggleEditor":return r?r.isHidden()?r.show():r.hide():this.execCommand("mceAddEditor",0,n),!0}return!!this.activeEditor&&this.activeEditor.execCommand(e,t,n)},triggerSave:function(){DE(PE,function(e){e.save()})},addI18n:function(e,t){ra.add(e,t)},translate:function(e){return ra.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!==e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e},_setBaseUrl:function(e){this.baseURL=new gE(this.documentBaseURL).toAbsolute(e.replace(/\/+$/,"")),this.baseURI=new gE(this.baseURL)}});function IE(n){return{walk:function(e,t){return Gc(n,e,t)},split:Cm,normalize:function(t){return ay(n,t).fold($(!1),function(e){return t.setStart(e.startContainer,e.startOffset),t.setEnd(e.endContainer,e.endOffset),!0})}}}VE.setup(),(AE=IE=IE||{}).compareRanges=hh,AE.getCaretRangeFromPoint=$v,AE.getSelectedNode=Wa,AE.getNode=Ka;function FE(e,t,n){var r,o,i,a,u,s;return r=t.x,o=t.y,i=e.w,a=e.h,u=t.w,s=t.h,"b"===(n=(n||"").split(""))[0]&&(o+=s),"r"===n[1]&&(r+=u),"c"===n[0]&&(o+=JE(s/2)),"c"===n[1]&&(r+=JE(u/2)),"b"===n[3]&&(o-=a),"r"===n[4]&&(r-=i),"c"===n[3]&&(o-=JE(a/2)),"c"===n[4]&&(r-=JE(i/2)),QE(r,o,i,a)}function UE(){}var jE,qE,$E,WE,KE=IE,XE=(jE={},qE={},{load:function(r,o){var i='Script at URL "'+o+'" failed to load',a='Script at URL "'+o+"\" did not call `tinymce.Resource.add('"+r+"', data)` within 1 second";if(jE[r]!==undefined)return jE[r];var e=new Zt(function(e,t){var n=function(e,t,n){function r(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];o||(o=!0,null!==i&&(j.clearTimeout(i),i=null),n.apply(null,e))}}void 0===n&&(n=1e3);var o=!1,i=null,a=r(e),u=r(t);return{start:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];o||null!==i||(i=j.setTimeout(function(){return u.apply(null,e)},n))},resolve:a,reject:u}}(e,t);qE[r]=n.resolve,Qi.ScriptLoader.loadScript(o,function(){return n.start(a)},function(){return n.reject(i)})});return jE[r]=e},add:function(e,t){qE[e]!==undefined&&(qE[e](t),delete qE[e]),jE[e]=Zt.resolve(t)}}),YE=Math.min,GE=Math.max,JE=Math.round,QE=function(e,t,n,r){return{x:e,y:t,w:n,h:r}},ZE={inflate:function(e,t,n){return QE(e.x-t,e.y-n,e.w+2*t,e.h+2*n)},relativePosition:FE,findBestRelativePosition:function(e,t,n,r){var o,i;for(i=0;i<r.length;i++)if((o=FE(e,t,r[i])).x>=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=GE(e.x,t.x),r=GE(e.y,t.y),o=YE(e.x+e.w,t.x+t.w),i=YE(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:QE(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=GE(0,t.x-u),o=GE(0,t.y-s),i=GE(0,c-f),a=GE(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),QE(u,s,(c-=i)-u,(l-=a)-s)},create:QE,fromClientRect:function(e){return QE(e.left,e.top,e.width,e.height)}},eN=Mn.each,tN=Mn.extend;UE.extend=$E=function(n){function r(){var e,t,n;if(!WE&&(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)}function t(){return this}function e(n,r){return function(){var e,t=this._super;return this._super=u[n],e=r.apply(this,arguments),this._super=t,e}}var o,i,a,u=this.prototype;for(i in WE=!0,o=new this,WE=!1,n.Mixins&&(eN(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),u.Mixins&&(n.Mixins=u.Mixins.concat(n.Mixins))),n.Methods&&eN(n.Methods.split(","),function(e){n[e]=t}),n.Properties&&eN(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&eN(n.Statics,function(e,t){r[t]=e}),n.Defaults&&u.Defaults&&(n.Defaults=tN({},u.Defaults,n.Defaults)),n)"function"==typeof(a=n[i])&&u[i]?o[i]=e(i,a):o[i]=a;return r.prototype=o,(r.constructor=r).extend=$E,r};var nN=Math.min,rN=Math.max,oN=Math.round,iN={serialize:function(e){var t=JSON.stringify(e);return K(t)?t.replace(/[\u0080-\uFFFF]/g,function(e){var t=e.charCodeAt(0).toString(16);return"\\u"+"0000".substring(t.length)+t}):t},parse:function(e){try{return JSON.parse(e)}catch(t){}}},aN={callbacks:{},count:0,send:function(t){var n=this,r=Xi.DOM,o=t.count!==undefined?t.count:n.count,i="tinymce_jsonp_"+o;n.callbacks[o]=function(e){r.remove(i),delete n.callbacks[o],t.callback(e)},r.add(r.doc.body,"script",{id:i,src:t.url,type:"text/javascript"}),n.count++}},uN=G(G({},nE),{send:function(e){var t,n=0,r=function(){!e.async||4===t.readyState||1e4<n++?(e.success&&n<1e4&&200===t.status?e.success.call(e.success_scope,""+t.responseText,t,e):e.error&&e.error.call(e.error_scope,1e4<n?"TIMED_OUT":"GENERAL",t,e),t=null):pn.setTimeout(r,10)};if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=!1!==e.async,e.data=e.data||"",uN.fire("beforeInitialize",{settings:e}),t=new j.XMLHttpRequest){if(t.overrideMimeType&&t.overrideMimeType(e.content_type),t.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(t.withCredentials=!0),e.content_type&&t.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&Mn.each(e.requestheaders,function(e){t.setRequestHeader(e.key,e.value)}),t.setRequestHeader("X-Requested-With","XMLHttpRequest"),(t=uN.fire("beforeSend",{xhr:t,settings:e}).xhr).send(e.data),!e.async)return r();pn.setTimeout(r,10)}}}),sN=Mn.extend,cN=(lN.sendRPC=function(e){return(new lN).send(e)},lN.prototype.send=function(e){var n=e.error,r=e.success,o=sN(this.settings,e);o.success=function(e,t){void 0===(e=iN.parse(e))&&(e={error:"JSON Parse error."}),e.error?n.call(o.error_scope||o.scope,e.error,t):r.call(o.success_scope||o.scope,e.result)},o.error=function(e,t){n&&n.call(o.error_scope||o.scope,e,t)},o.data=iN.serialize({id:e.id||"c"+this.count++,method:e.method,params:e.params}),o.content_type="application/json",uN.send(o)},lN);function lN(e){this.settings=sN({},e),this.count=0}var fN,dN,hN,mN;try{fN=j.window.localStorage}catch(yN){dN={},hN=[],mN={getItem:function(e){var t=dN[e];return t||null},setItem:function(e,t){hN.push(e),dN[e]=String(t)},key:function(e){return hN[e]},removeItem:function(t){hN=hN.filter(function(e){return e===t}),delete dN[t]},clear:function(){hN=[],dN={}},length:0},Object.defineProperty(mN,"length",{get:function(){return hN.length},configurable:!1,enumerable:!1}),fN=mN}var gN,pN={geom:{Rect:ZE},util:{Promise:Zt,Delay:pn,Tools:Mn,VK:Ah,URI:gE,Class:UE,EventDispatcher:Yz,Observable:nE,I18n:ra,XHR:uN,JSON:iN,JSONRequest:cN,JSONP:aN,LocalStorage:fN,Color:function(e){function t(e){var t;return"object"==typeof e?"r"in e?(u=e.r,s=e.g,c=e.b):"v"in e&&function(e,t,n){var r,o,i,a;if(e=(parseInt(e,10)||0)%360,t=parseInt(t,10)/100,n=parseInt(n,10)/100,t=rN(0,nN(t,1)),n=rN(0,nN(n,1)),0!==t){switch(r=e/60,i=(o=n*t)*(1-Math.abs(r%2-1)),a=n-o,Math.floor(r)){case 0:u=o,s=i,c=0;break;case 1:u=i,s=o,c=0;break;case 2:u=0,s=o,c=i;break;case 3:u=0,s=i,c=o;break;case 4:u=i,s=0,c=o;break;case 5:u=o,s=0,c=i;break;default:u=s=c=0}u=oN(255*(u+a)),s=oN(255*(s+a)),c=oN(255*(c+a))}else u=s=c=oN(255*n)}(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(u=parseInt(t[1],10),s=parseInt(t[2],10),c=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(u=parseInt(t[1],16),s=parseInt(t[2],16),c=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(u=parseInt(t[1]+t[1],16),s=parseInt(t[2]+t[2],16),c=parseInt(t[3]+t[3],16)),u=u<0?0:255<u?255:u,s=s<0?0:255<s?255:s,c=c<0?0:255<c?255:c,n}var n={},u=0,s=0,c=0;return e&&t(e),n.toRgb=function(){return{r:u,g:s,b:c}},n.toHsv=function(){return function(e,t,n){var r,o,i,a;return o=0,(i=nN(e/=255,nN(t/=255,n/=255)))===(a=rN(e,rN(t,n)))?{h:0,s:0,v:100*(o=i)}:(r=(a-i)/a,{h:oN(60*((e===i?3:n===i?1:5)-(e===i?t-n:n===i?e-t:n-e)/((o=a)-i))),s:oN(100*r),v:oN(100*o)})}(u,s,c)},n.toHex=function(){function e(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e}return"#"+e(u)+e(s)+e(c)},n.parse=t,n}},dom:{EventUtils:kr,Sizzle:Ao,DomQuery:vi,TreeWalker:yi,DOMUtils:Xi,ScriptLoader:Qi,RangeUtils:KE,Serializer:Ap,ControlSelection:Wp,BookmarkManager:Kp,Selection:ly,Event:kr.Event},html:{Styles:xr,Entities:ir,Node:ul,Schema:pr,SaxParser:of,DomParser:Np,Writer:gl,Serializer:pl},Env:Nn,AddOnManager:ga,Annotator:nl,Formatter:Cp,UndoManager:mm,EditorCommands:Wz,WindowManager:Bd,NotificationManager:_d,EditorObservable:oE,Shortcuts:cE,Editor:zE,FocusManager:Zf,EditorManager:VE,DOM:Xi.DOM,ScriptLoader:Qi.ScriptLoader,PluginManager:ga.PluginManager,ThemeManager:ga.ThemeManager,IconManager:Ud,Resource:XE,trim:Mn.trim,isArray:Mn.isArray,is:Mn.is,toArray:Mn.toArray,makeMap:Mn.makeMap,each:Mn.each,map:Mn.map,grep:Mn.grep,inArray:Mn.inArray,extend:Mn.extend,create:Mn.create,walk:Mn.walk,createNS:Mn.createNS,resolve:Mn.resolve,explode:Mn.explode,_addCacheSuffix:Mn._addCacheSuffix,isOpera:Nn.opera,isWebKit:Nn.webkit,isIE:Nn.ie,isGecko:Nn.gecko,isMac:Nn.mac},vN=Mn.extend(VE,pN);gN=vN,window.tinymce=gN,window.tinyMCE=gN,function(e){if("object"==typeof module)try{module.exports=e}catch(t){}}(vN)}(window);
\ No newline at end of file
+++ /dev/null
-<div class="container">
-<p style="font-weight: bold;">
-1 : Objet</p>
-<p>
-Les présentes « conditions générales d'utilisation »
-ont pour objet l'encadrement juridique des modalités de mise à
-disposition des services du site fld.lu
-et leur utilisation par « l'Utilisateur ».</p>
-<p>
-Les conditions générales d'utilisation doivent être acceptées par
-tout Utilisateur souhaitant accéder au site. Elles constituent le
-contrat entre le site et l'Utilisateur. L'accès au site par
-l'Utilisateur signifie son acceptation des présentes conditions
-générales d'utilisation.</p>
-<p>
- En cas de non-acceptation des conditions générales d'utilisation
- stipulées dans le présent contrat, l'Utilisateur se doit de
- renoncer à l'accès des services proposés par le site.</p>
-<p>La FLD se réserve le droit de modifier unilatéralement et
- à tout moment le contenu des présentes conditions générales
- d'utilisation.</p>
-<p style="font-weight: bold;">
-2 : Mentions légales</p>
-<p>
-L'édition du site fld.lu est
-assurée par le comité de la Féderation Luxembourgeoise de Darts dont le
-siège social est situé à 3 route d'Arlon - 8009 Strassen.</p>
-<p>
-Responsable de la publication Web est Kilian Saffran.</p>
-
-
-<p style="font-weight: bold;"> 3 :
-Définitions</p>
-<p>
-La présente clause a pour objet de définir les différents termes
-essentiels du contrat :</p>
-<ul><li><p>
- Utilisateur : ce terme désigne toute personne qui utilise le
- site ou l'un des services proposés par le site.</p>
- </li><li><p>Contenu
- utilisateur : ce sont les données transmises par l'Utilisateur
- au sein du site.</p>
- </li><li><p>Membre :
- l'Utilisateur qui est membre de la FLD est qui peut s'identifié au site.</p>
- </li><li><p>Identifiant
- et mot de passe : c'est l'ensemble des informations nécessaires
- à l'identification d'un Utilisateur sur le site. L'identifiant et
- le mot de passe permettent à l'Utilisateur d'accéder à des
- services réservés aux membres du site. Le mot de passe est
- confidentiel.</p>
-</li></ul><p style="font-weight: bold;"> 4 :
-accès aux services</p>
-<p>
-Le site permet à l'Utilisateur un accès gratuit aux services
-suivants :</p>
-<ul><li><p>
- Modifier ses données personnelles est les données du club;</p>
- </li><li><p>Transférer et télécharger les documents nécessaires pour le propre fonctionnement des activités de la Féderation;</p>
- </li><li><p>consulter les information et documents utiles et nécessaires pour le propre fonctionnement des activités de la Féderation ;</p>
- </li></ul><p>
-Le site est accessible gratuitement en tout lieu à tout Utilisateur
-ayant un accès à Internet. Tous les frais supportés par
-l'Utilisateur pour accéder au service (matériel informatique,
-logiciels, connexion Internet, etc.) sont à sa charge.</p>
-<p>
-Selon le cas :</p>
-<p>
-L'Utilisateur non membre n'a pas accès aux services réservés aux
-membres. Pour cela, il doit s'identifier à l'aide de son identifiant
-et de son mot de passe.</p>
-
-<p>
-Le site met en œuvre tous les moyens mis à sa disposition pour
-assurer un accès de qualité à ses services. L'obligation étant de
-moyens, le site ne s'engage pas à atteindre ce résultat.</p>
-<p>
-Tout événement dû à un cas de force majeure ayant pour
-conséquence un dysfonctionnement du réseau ou du serveur n'engage
-pas la responsabilité de fld.lu.</p>
-<p>
-L'accès aux services du site peut à tout moment faire l'objet d'une
-interruption, d'une suspension, d'une modification sans préavis pour
-une maintenance ou pour tout autre cas. L'Utilisateur s'oblige à ne
-réclamer aucune indemnisation suite à l'interruption, à la
-suspension ou à la modification du présent contrat.</p>
-<p>
-L'Utilisateur a la possibilité de contacter le site par messagerie
-électronique à l'adresse webmaster [ at ] fld.lu.
-</p>
-<p style="font-weight: bold;"> 5 :
-Propriété intellectuelle</p>
-<p>
-Les marques, logos, signes et tout autre contenu du site font l'objet
-d'une protection par le Code de la propriété intellectuelle et plus
-particulièrement par le droit d'auteur.</p>
-<p>
-L'Utilisateur sollicite l'autorisation préalable du site pour toute
-reproduction, publication, copie des différents contenus.</p>
-<p>
-L'Utilisateur s'engage à une utilisation des contenus du site dans
-un cadre strictement privé. Une utilisation des contenus à des fins
-commerciales est strictement interdite.</p>
-<p>
-Tout contenu mis en ligne par l'Utilisateur est de sa seule
-responsabilité. L'Utilisateur s'engage à ne pas mettre en ligne de
-contenus pouvant porter atteinte aux intérêts de tierces personnes.
-Tout recours en justice engagé par un tiers lésé contre le site
-sera pris en charge par l'Utilisateur.
-</p>
-<p>
-Le contenu de l'Utilisateur peut être à tout moment et pour
-n'importe quelle raison supprimé ou modifié par le site.
-L'Utilisateur ne reçoit aucune justification et notification
-préalablement à la suppression ou à la modification du contenu
-Utilisateur.</p>
-<p style="font-weight: bold;"> 6 :
-Données personnelles</p>
-<p>
-Les informations demandées à l'inscription au site sont
-nécessaires et obligatoires pour la création du compte de
-l'Utilisateur. En particulier, l'adresse électronique pourra être
-utilisée par le site pour l'administration, la gestion et
-l'animation du service.</p>
-<p>
-Le site assure à l'Utilisateur une collecte et un traitement
-d'informations personnelles dans le respect de la vie privée
-conformément à la loi européen des protection de données relative à
-l'informatique, aux fichiers et aux libertés.</p>
-<p>
-L'Utilisateur dispose d'un droit d'accès, de rectification, de
-suppression et d'opposition de ses données personnelles.
-L'Utilisateur exerce ce droit via :</p>
-<ul><li><p>
- Formulaire mis à disposition en Format PDF ;</p>
-
-</li></ul>
-<p style="font-weight: bold;"> 7 :
-Responsabilité et force majeure</p>
-<p>
-Les sources des informations diffusées sur le site sont réputées
-fiables. Toutefois, le site se réserve la faculté d'une
-non-garantie de la fiabilité des sources. Les informations données
-sur le site le sont à titre purement informatif. Ainsi,
-l'Utilisateur assume seul l'entière responsabilité de l'utilisation
-des informations et contenus du présent site.</p>
-<p>
-L'Utilisateur s'assure de garder son mot de passe secret. Toute
-divulgation du mot de passe, quelle que soit sa forme, est interdite.</p>
-<p>
-L'Utilisateur assume les risques liés à l'utilisation de son
-identifiant et mot de passe. Le site décline toute responsabilité.</p>
-<p>
-Tout usage du service par l'Utilisateur ayant directement ou
-indirectement pour conséquence des dommages doit faire l'objet d'une
-indemnisation au profit du site.</p>
-<p>
-Une garantie optimale de la sécurité et de la confidentialité des
-données transmises n'est pas assurée par le site. Toutefois, le
-site s'engage à mettre en œuvre tous les moyens nécessaires afin
-de garantir au mieux la sécurité et la confidentialité des
-données.</p>
-<p>
-La responsabilité du site ne peut être engagée en cas de force
-majeure ou du fait imprévisible et insurmontable d'un tiers.</p>
-<p style="font-weight: bold;"> 8 :
-Liens hypertextes</p>
-<p>
-De nombreux liens hypertextes sortants sont présents sur le site,
-cependant les pages web où mènent ces liens n'engagent en rien la
-responsabilité de fld.lu qui n'a
-pas le contrôle de ces liens.</p>
-<p>
-L'Utilisateur s'interdit donc à engager la responsabilité du site
-concernant le contenu et les ressources relatives à ces liens
-hypertextes sortants.</p>
-<p style="font-weight: bold;"> 9 :
-Évolution du contrat</p>
-<p>
-Le site se réserve à tout moment le droit de modifier les clauses
-stipulées dans le présent contrat.</p>
-<p style="font-weight: bold;"> 10 :
-Durée</p>
-<p>
-La durée du présent contrat est indéterminée. Le contrat produit
-ses effets à l'égard de l'Utilisateur à compter de l'utilisation
-du service.</p>
-<p style="font-weight: bold;"> 11 :
-Droit applicable et juridiction compétente</p>
-<p>
-La législation luxembourgeoise s'applique au présent contrat. En cas
-d'absence de résolution amiable d'un litige né entre les parties,
-seuls les tribunaux luxembourgeoises
-sont compétents.</p>
-
-<p style="font-weight: bold;"> 12 :
-Publication par l'Utilisateur</p>
-<p>
-Le site permet aux membres de publier les articles resp. nouveautés.</p>
-<p>
-Dans ses publications, le membre s'engage à respecter les règles
-de la Netiquette et les règles de droit en vigueur.</p>
-<p>
-Le site exerce une modération sur les publications et se réserve le droit de
-refuser leur mise en ligne, sans avoir à s'en justifier auprès du
-membre.</p>
-<p>
-Le membre reste titulaire de l'intégralité de ses droits de
-propriété intellectuelle. Mais en publiant une publication sur le
-site, il cède à la FLD le droit non exclusif et
-gratuit de représenter, reproduire, adapter, modifier, diffuser et
-distribuer sa publication, directement ou par un tiers autorisé,
-dans le monde entier, sur tout support (numérique ou physique), pour
-la durée de la propriété intellectuelle. Le Membre cède notamment
-le droit d'utiliser sa publication sur internet et sur les réseaux
-</div>
-
\ No newline at end of file
+++ /dev/null
-<div id="dlgcropper" class="modal">
-
- <div class="modal-content animate-top card-4">
- <header class="container">
- <!--<span onclick="document.getElementById('dlgcropper').style.display='none'; return false;"
- class="button display-topright">×</span>-->
- <h2 id="dlgpublish_title">Bild schneiden</h2>
- </header>
- <div class="container">
- <div class="img-container" id="imgcontainer">
- <img id="cropimage" style="width:75vw;" src="" alt="Picture">
- </div>
- </div>
- <footer class="container right-align padding-16">
- <input type="hidden" id="cropdata_field_id"/>
-
- <button class="button theme-l2 margin-right border" onclick="hidecroppermodal();return false;">OK</button>
- </footer>
- </div>
-</div>
-<script>
-// var cropBoxData;
-// var canvasData;
-// var tmpdata;
-// var cropper;
-// function CropImageDlg(objid){
-// //console.log("Crop Object ID:"+ objid);
-// var obj = document.getElementById(objid);
-// console.log(obj);
-// var file = obj.files[0];
-// console.log(file);
-// var fileName = file.name;
-// //console.log(file.type);
-// //$('.label-files_'+ objid).html(file.name);
-// if (!file.type.match('image.*')) {
-// //console.log("is not an image");
-// return false;
-// }
-// var reader = new FileReader();
-// reader.onload = (function(theFile) {
-// return function(e) {
-// //console.log("source:" + e.target.result);
-// document.getElementById("cropimage").setAttribute("src",e.target.result);
-// showcroppermodal();
-// };
-// })(file);
-// reader.readAsDataURL(file);
-// document.getElementById('cropdata_field_id').value = objid;
-
-// return false;
-// }
-
-// function showcroppermodal(){
-// tmpdata = document.getElementById("cropimage").getAttribute("src");
-// //var image = document.getElementById('cropimage');
-// cropper = new Croppr('#cropimage', {
-// aspectRatio: 1.28,
-// onCropEnd : function(value){
-// cropBoxData = value;
-// }
-// });
-// // cropper = new Cropper(image, {
-// // aspectRatio: 1 / 1,
-// // autoCropArea: 0.5,
-// // viewMode: 2,
-// // ready: function () {
-// // //Should set crop box data first here
-// // cropper.setCropBoxData(cropBoxData).setCanvasData(canvasData);
-// // }
-// // });
-// document.getElementById("dlgcropper").style.display = 'block';
-// return false;
-// }
-
-// function hidecroppermodal(){
-
-// //cropBoxData = cropper.getCropBoxData();
-// var canvas = document.getElementById('img_profile_photo_new');
-// canvas.innerHTML ='';
-// var crpimg = document.getElementsByClassName('croppr-image');
-// console.log("CANVAS");
-// var ximg = crpimg[0];
-// console.log(cropBoxData);
-// var ratiow = 1;
-// var ratioh = 1;
-// if(cropBoxData.width > 207){
-// ratiow = 207 / cropBoxData.width;
-// if(cropBoxData.height > 266) {
-// ratioh = 266 / cropBoxData.height;
-// }
-// //console.log("ratio;:" + ratio);
-// canvas.getContext("2d").drawImage(ximg, cropBoxData.x, cropBoxData.y, cropBoxData.width, cropBoxData.height, 0, 0, cropBoxData.width * ratiow, cropBoxData.height * ratioh);
-// //canvas.getContext("2d").drawImage(canvas, 0, 0, cropBoxData.width * ratio,cropBoxData.height * ratio);
-// //cropBoxData.x * ratio, * ratio , * ratio, );
-
-
-
-
-// document.getElementById('imgcontainer').innerHTML='<img id="cropimage" style="width:75vw;" src="" alt="Picture">';
-// //var data = canvas.toDataURL('image/png',0.92);
-// //console.log("DATA :" + data);
-// //var fieldid=document.getElementById('cropdata_field_id').value;
-// //console.log("FieldID:" + fieldid);
-// //document.getElementById("preview_" + fieldid).setAttribute("src",data);
-// //document.getElementById(fieldid).value = data;
-// //savefield(fieldid);
-// cropper = null;
-// document.getElementById("dlgcropper").style.display = 'none';
-// //console.log(cropBoxData);
-// //console.log(canvasData);
-// //document.getElementById('cropdata_field_id').value = "";
-// //document.getElementById("dlgcropper").style.display = 'none';
-// return false;
-// }
-
-// function LoadCropper(objid){
-// console.log("Preview load cropper!" + objid);
-// var objf = document.getElementById(objid);
-// document.getElementById('cropdata_field_id').value = objid;
-
-// if (objf.files.length > 0){
-// CropImageDlg(objid);
-// }
-// return false;
-// }
-// </script>
\ No newline at end of file
+++ /dev/null
-<div id="dlgpassword" class="modal">
-
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgpassword').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2>Passwuert änneren</h2>
- </header>
- <div class="container">
- <div id="msg">
- <div class="panel blue-grey padding">Dain Passwuert muss mindestens 10 Zeechen laang sin,<br>Grouss and kleng Buchstawen enthaalen,<br/>an mindestens 1 Zuel enthaalen</div>
- </div>
- <div class="container">
- <label for="userpassword" class="label">Neit Passwuert</label>
- <input class="input border" type="password" id="userpassword" name="userpassword" value="" />
- </div>
- <div class="container">
- <label for="userpassword" class="label">Neit Passwuert widderhuelen</label>
- <input class="input border" type="password" id="userpasswordcheck" name="userpasswordcheck" value="" />
- </div>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgpassword').style.display='none'; return false;">oofbriechen</button>
- <button class="button theme-l2 margin-right border" onclick="savepassword();return false;">Passwuert änneren</button>
- </footer>
- </div>
-</div>
-<script>
-function opendlgpassword(){
- document.getElementById("msg").innerHTML='<div class="panel blue-grey padding">Dain Passwuert muss mindestens <strong>10 Zeechen</strong> laang sin,<br/><strong>Grouss</strong>,<strong>kleng</strong> Buchstawen <br/>an <strong>mindestens 1 Zuel</strong> enthaalen</div>';
- document.getElementById('userpassword').value = "";
- document.getElementById('userpasswordcheck').value = "";
- document.getElementById('dlgpassword').style.display='block';
- return false;
-}
-
-function savepassword(){
- var pwd1 = document.getElementById('userpassword').value;
- var pwd2 = document.getElementById('userpasswordcheck').value;
- var errmsg = "";
- if (pwd1 == pwd2){
- errmsg = validatepassword(pwd1);
- } else {
- errmsg = "w.e.g 2 mol daat selwecht Passwuert agin";
- }
-
- if (errmsg == ""){
- req.reqdata('POST','index.cgi',{"fn":"savepassword","pwd":pwd1},pwdsaved);
- }else {
- document.getElementById("msg").innerHTML='<div class="panel red">'+ errmsg+'</div>';
- }
- return false;
-}
-
-function pwdsaved(data){
- console.log(data);
- document.getElementById('dlgpassword').style.display='none';
- return false;
-}
-
-function validatepassword(pwd){
- var errmsg = "";
- if (pwd.length < 10) {
- errmsg += "> op mannst <strong>10 Zeechen</strong><br/>";
- }
- if (/[a-z]/.test(pwd) == false) {
- errmsg += "> op mannst <strong>1 klengen Buchstaw</strong> fehlt<br/>";
- }
- if (/[A-Z]/.test(pwd) == false) {
- errmsg += "> op mannst <strong>1 groussen Buchstaw</strong> fehlt<br/>";
- }
- if (/[0-9]/.test(pwd) == false) {
- errmsg += "> op mannst <strong>1 Zuel</strong> fehlt<br/>";
- }
- return errmsg;
-}
-</script>
\ No newline at end of file
+++ /dev/null
-<div id="dlguploadfile" class="modal">
-
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlguploadfile').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2 id="dlgpublish_title">Fichier eroplueden</h2>
- </header>
- <div class="container">
- <form id="frm_uploadfile">
- [% fieldhidden("table","upload",'','') %]
- [% fieldhidden("row_id","upload","ident",'') %]
- [% fieldhidden("filetype","upload",'','') %]
- [% fieldfile("file","upload","Fichier auswielen",'','','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlguploadfile').style.display='none'; return false;">Oofbriechen</button>
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="savefileform('uploadfile');return false;">eroplueden</button>
- </div>
- </footer>
- </div>
-</div>
-<script>
- var afterformsaved = {};
- var flds ={"text":{},"files":{}};
- var senddata = "";
-function opendlgfileupload(tblname,filetype,rowid){
- flds ={"text":{},"files":{}};
- senddata = "";
- document.getElementById('table').value=tblname;
- document.getElementById('filetype').value=filetype;
- document.getElementById('row_id').value=rowid;
- document.getElementById('file').value='';
- document.getElementById('dlguploadfile').style.display = 'block';
-}
-function savefileform(){
- getformdata('uploadfile');
- //req.uploadform("upload.cgi","uploadfile",filesaved);
-}
-function filesaved(data){
- var sb = document.getElementById("snackbar");
- sb.className="show green";
- sb.innerHTML = 'den Fichier gouf gespaichert!';
- setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000);
- return false;
-}
-function getformdata(frmid){
- var frm = document.getElementById("frm_" + frmid);
- // console.log(frm);
- var frmdata = new FormData();
- // flds ={"text":{},"files":{}};
- for (var i = 0; i < frm.elements.length; i++) {
- var field = frm.elements[i];
- if ((field.tagName == "INPUT" || field.tagName == "SELECT" || field.tagName == "TEXTAREA")){
- if (field.classList.contains("tagedit")){
- var ndata = field.value.split(",");
- // flds['text'][field.id] = ndata;
- frmdata.append(field.id,ndata);
- } else if (field.tagName == "TEXTAREA" && field.classList.contains("richtextarea")){
-
- } else if ( field.tagName == "INPUT" && field.type == "file"){
- frmdata.append(field.id,field.files[0]);
- }else {
- frmdata.append(field.id,field.value);
- //flds['text'][field.id] = field.value;
- }
- }
- // console.log(field);
- }
- // for (var pair of frmdata.entries()) {
- // console.log(pair[0]+ ', ' + pair[1]);
- // }
- req.multipartform("upload.cgi",frmdata,multipartformsaved);
-}
-
-function multipartformsaved(data){
- //console.log(data);
- var sb = document.getElementById("snackbar");
- sb.className="show green";
- sb.innerHTML = 'Den Fichier gouf gespaichert!';
- setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000);
-
- document.getElementById('dlguploadfile').style.display = 'none';
- if (afterformsaved.action){
- afterformsaved.action(data);
- }
-
- return false;
-}
-
-</script>
\ No newline at end of file
+++ /dev/null
-
-<div id="dlgusername" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgusername').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2>Ännerung vum der E-Mail resp dem Login</h2>
- </header>
- <div class="container">
- <div id="nunmsg" ></div>
- <div class="container" id="newmail">
- [% fieldeditbox('newuseremail','onlydisplay','Nei E-Mail-Address','','','') %]
- </div>
- <div class="container" style="display:none;" id="vcode">
- [% fieldeditbox('verificationcode','users','Bestätegungs-Code','','','') %]
- <button class="button theme-l2 border" id="btnvalidateresend" onclick="resendemail();return false;">Code nach emol schecken</button>
- </div>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgusername').style.display='none'; return false;">oofbriechen</button>
- <button class="button theme-l2 margin-right border" id="btncheck" onclick="checkemail();return false;">iwwerpréifen</button>
- <button class="button theme-l2 align-right border" id="btnvalidate" style="display:none;" onclick="saveemail();return false;">Validéieren</button>
- </footer>
- </div>
-</div>
-<script>
-var newusername = "";
-
-function opendlgusername(){
- document.getElementById("newuseremail").value= '';
- document.getElementById("verificationcode").value= '';
- document.getElementById("nunmsg").innerHTML= '';
- document.getElementById('newmail').style.display='block';
- document.getElementById('vcode').style.display='none';
- document.getElementById('btncheck').style.display='inline';
- document.getElementById('btnvalidate').style.display='none';
- document.getElementById('dlgusername').style.display='block';
- return false;
-}
-
-function checkemail(){
- newusername = document.getElementById("newuseremail").value;
- if (validateEmail(newusername)){
- req.reqdata("POST","db.cgi",{"get":"userdata","filter":"username='"+ newusername+ "'"},checkmailreturn);
- }else {
- document.getElementById("nunmsg").innerHTML= '<div class="panel red">w.e.g. eng richteg email agin!</div>';
- }
- return false;
-}
-
-function checkmailreturn(data){
- console.log(data);
- if (data && data.sqldata.length > 0){
- document.getElementById("nunmsg").innerHTML= '<div class="panel red">Et existéiert schon een Kont matt deser E-mail!</div>';
- } else {
- resendcode();
- }
- return false;
-}
-
-function resendcode(){
- req.reqdata("POST","index.cgi",{"fn":"sendmailvcode","mail":newusername},mailsended);
- return false;
-}
-
-function mailsended(data){
- document.getElementById("nunmsg").innerHTML= '<div class="panel green">Mir hun dir eng E-Mail mam Code gescheckt op '+ newusername +'!</div>';
- document.getElementById('newmail').style.display='none';
- document.getElementById('vcode').style.display='block';
- document.getElementById('btncheck').style.display='none';
-
- document.getElementById('btnvalidate').style.display='inline';
- return false;
-}
-
-function saveemail(){
- req.reqdata("POST","index.cgi",{"fn":"savenewemail","email":newusername,"vcode":document.getElementById("verificationcode").value},mailreturncode);
- return false;
-}
-
-function mailreturncode(data){
- console.log(data);
- app.loadpage("module/[% module%]/[% pagename %].html",null);
-}
-
-function validateEmail(email) {
- var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(String(email).toLowerCase());
-}
-</script>
\ No newline at end of file
+++ /dev/null
-<head>
- <!-- Required meta tags -->
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <title>[% sitename %] - [% pagename %]</title>
- <meta name="language" content="fr">
- <meta name="author" content="DKS sarl">
- <meta name="publisher" content="DKS sarl">
- <meta name="copyright" content="DKS sarl">
- <meta name="robots" content="noindex,nofollow">
- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="-1" />
-
- <link rel="apple-touch-icon" sizes="57x57" href="img/favicon/apple-icon-57x57.png">
-<link rel="apple-touch-icon" sizes="60x60" href="img/favicon/apple-icon-60x60.png">
-<link rel="apple-touch-icon" sizes="72x72" href="img/favicon/apple-icon-72x72.png">
-<link rel="apple-touch-icon" sizes="76x76" href="img/favicon/apple-icon-76x76.png">
-<link rel="apple-touch-icon" sizes="114x114" href="img/favicon/apple-icon-114x114.png">
-<link rel="apple-touch-icon" sizes="120x120" href="img/favicon/apple-icon-120x120.png">
-<link rel="apple-touch-icon" sizes="144x144" href="img/favicon/apple-icon-144x144.png">
-<link rel="apple-touch-icon" sizes="152x152" href="img/favicon/apple-icon-152x152.png">
-<link rel="apple-touch-icon" sizes="180x180" href="img/favicon/apple-icon-180x180.png">
-<link rel="icon" type="image/png" sizes="192x192" href="img/favicon/android-icon-192x192.png">
-<link rel="icon" type="image/png" sizes="32x32" href="img/favicon/favicon-32x32.png">
-<link rel="icon" type="image/png" sizes="96x96" href="img/favicon/favicon-96x96.png">
-<link rel="icon" type="image/png" sizes="16x16" href="img/favicon/favicon-16x16.png">
-<link rel="stylesheet" href="[% abspath %]css/w3pro.css">
-
-</head>
\ No newline at end of file
+++ /dev/null
-<div id="snackbar"></div>
\ No newline at end of file
+++ /dev/null
-[% MACRO tabletoolbar(ident) BLOCK -%]
-
- <header class="top bar border-bottom theme-light">
- <button class="bar-item button border" onclick="add_[% ident %]();">Nei</button>
- <button class="bar-item button border" onclick="edit_[% ident %]();">EDIT</button>
- <button class="bar-item button border" onclick="duplicate_[% ident %]();">DUPL</button>
- <button class="bar-item button border" onclick="remove_[% ident %]();">DEL</button>
-</header>
-[% END -%]
\ No newline at end of file
+++ /dev/null
-[% USE DBI %]
-[% USE dksdb = DBI(dsn, dbuser, dbpassword) %]
-[% INCLUDE $page %]
+++ /dev/null
-[% USE dksdb = DBI(dsn, dbuser, dbpassword) %]
-[% #appaccess = dksdb.prepare("select ap.icon,ap.app,ap.name,ug.usergroup from useringroups uig join apps ap on (uig.id_group=ap.id_usergroup) join usergroups ug on (uig.id_group=ug.id) where uig.id_user=? group by ap.id,ug.id order by ap.sort;")%]
-[% USE date %]
-[% vstamp=date.format(date.now, '%d%m%Y%H%M%S') %]
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <title>[% sitename %] - [% pagename %]</title>
- <meta name="language" content="fr">
- <meta name="author" content="DKS sarl">
- <meta name="publisher" content="DKS sarl">
- <meta name="copyright" content="DKS sarl">
- <meta name="robots" content="noindex,nofollow">
-
- <link rel="apple-touch-icon" sizes="57x57" href="[% abspath %][% staticpath %]img/favicon/apple-icon-57x57.png">
-<link rel="apple-touch-icon" sizes="60x60" href="[% abspath %][% staticpath %]img/favicon/apple-icon-60x60.png">
-<link rel="apple-touch-icon" sizes="72x72" href="[% abspath %][% staticpath %]img/favicon/apple-icon-72x72.png">
-<link rel="apple-touch-icon" sizes="76x76" href="[% abspath %][% staticpath %]img/favicon/apple-icon-76x76.png">
-<link rel="apple-touch-icon" sizes="114x114" href="[% abspath %][% staticpath %]img/favicon/apple-icon-114x114.png">
-<link rel="apple-touch-icon" sizes="120x120" href="[% abspath %][% staticpath %]img/favicon/apple-icon-120x120.png">
-<link rel="apple-touch-icon" sizes="144x144" href="[% abspath %][% staticpath %]img/favicon/apple-icon-144x144.png">
-<link rel="apple-touch-icon" sizes="152x152" href="[% abspath %][% staticpath %]img/favicon/apple-icon-152x152.png">
-<link rel="apple-touch-icon" sizes="180x180" href="[% abspath %][% staticpath %]img/favicon/apple-icon-180x180.png">
-<link rel="icon" type="image/png" sizes="192x192" href="[% abspath %][% staticpath %]img/favicon/android-icon-192x192.png">
-<link rel="icon" type="image/png" sizes="32x32" href="[% abspath %][% staticpath %]img/favicon/favicon-32x32.png">
-<link rel="icon" type="image/png" sizes="96x96" href="[% abspath %][% staticpath %]img/favicon/favicon-96x96.png">
-<link rel="icon" type="image/png" sizes="16x16" href="[% abspath %][% staticpath %]img/favicon/favicon-16x16.png">
-<link rel="stylesheet" href="[% abspath %][% staticpath %]css/icons.css">
-<link rel="stylesheet" href="[% abspath %][% staticpath %]css/theme.css">
- <link rel="stylesheet" href="[% abspath %][% staticpath %]vendors/tabulator/css/tabulator_site.css?v=[% vstamp %]">
- <link rel="stylesheet" href="[% abspath %][% staticpath %]vendors/slimselect/slimselect.css?v=[% vstamp %]">
- <link rel="stylesheet" href="[% abspath %][% staticpath %]vendors/flatpickr/flatpickr.min.css?v=[% vstamp %]">
- <link rel="stylesheet" href="[% abspath %][% staticpath %]vendors/flatpickr/themes/airbnb.css?v=[% vstamp %]">
-
-</head>
-<body>
- <div class="display-container" id="main">
- [% INCLUDE $page %]
- </div>
- [% INCLUDE block/snackbar.tt %]
-<script type="text/javascript" src="[% abspath %][% staticpath %]js/app.js?v=[% vstamp %]"></script>
-<script type="text/javascript" src="[% abspath %][% staticpath %]js/request.js?v=[% vstamp %]"></script>
- <!-- <script type="text/javascript" src="[% abspath %][% staticpath %]js/module_global.js?v=[% vstamp %]"></script> -->
- <script type="text/javascript" src="[% abspath %][% staticpath %]js/formsave.js?v=[% vstamp %]"></script>
- <script type="text/javascript" src="[% abspath %][% staticpath %]js/form.js?v=[% vstamp %]"></script>
- <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/tabulator/js/tabulator.min.js?v=[% vstamp %]"></script>
- <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/moment/moment.min.js?v=[% vstamp %]"></script>
- <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/tinymce/js/tinymce/tinymce.min.js?v=[% vstamp %]"></script>
- <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/slimselect/slimselect.min.js?v=[% vstamp %]"></script>
- <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/flatpickr/flatpickr.min.js?v=[% vstamp %]"></script>
- <script type="text/javascript" src="[% abspath %][% staticpath %]vendors/flatpickr/l10n/fr.js?v=[% vstamp %]"></script>
- <!-- <script type="text/javascript" src="[% abspath %]vendors/croppr/croppr.js"></script> -->
-</body>
-</html>
-
+++ /dev/null
-[% lbl = {
- loginheading => "LEDF Site Login",
- login => "Login",
- password => "Mot de passe",
- sendlogin => "Connecter",
- linkpwdforgotten => "mot de passe oublié?"
-}
-%]
\ No newline at end of file
+++ /dev/null
-[% PROCESS "lang/${lang}.tt" %]
-<!DOCTYPE html>
-<html lang="[% lang %]">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>[% sitename %] - [% pagename %]</title>
- <meta name="language" content="fr">
- <meta name="author" content="DKS sarl">
- <meta name="publisher" content="DKS sarl">
- <meta name="copyright" content="DKS sarl">
- <meta name="robots" content="noindex,nofollow">
- <!--<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="-1" />-->
-
- <link rel="apple-touch-icon" sizes="57x57" href="img/favicon/apple-icon-57x57.png">
-<link rel="apple-touch-icon" sizes="60x60" href="img/favicon/apple-icon-60x60.png">
-<link rel="apple-touch-icon" sizes="72x72" href="img/favicon/apple-icon-72x72.png">
-<link rel="apple-touch-icon" sizes="76x76" href="img/favicon/apple-icon-76x76.png">
-<link rel="apple-touch-icon" sizes="114x114" href="img/favicon/apple-icon-114x114.png">
-<link rel="apple-touch-icon" sizes="120x120" href="img/favicon/apple-icon-120x120.png">
-<link rel="apple-touch-icon" sizes="144x144" href="img/favicon/apple-icon-144x144.png">
-<link rel="apple-touch-icon" sizes="152x152" href="img/favicon/apple-icon-152x152.png">
-<link rel="apple-touch-icon" sizes="180x180" href="img/favicon/apple-icon-180x180.png">
-<link rel="icon" type="image/png" sizes="192x192" href="img/favicon/android-icon-192x192.png">
-<link rel="icon" type="image/png" sizes="32x32" href="img/favicon/favicon-32x32.png">
-<link rel="icon" type="image/png" sizes="96x96" href="img/favicon/favicon-96x96.png">
-<link rel="icon" type="image/png" sizes="16x16" href="img/favicon/favicon-16x16.png">
-<link rel="stylesheet" href="[% abspath %][% staticpath %]css/theme.css">
-
- <style>
- body, html {
- height: 100%;
-}
-
-body {
- /* The image used */
- background-image: url("[% abspath %][% staticpath %]img/dartsxx.jpg");
-
- /* Full height */
- height: 100%;
-
- /* Center and scale the image nicely */
- background-position: center;
- background-repeat: no-repeat;
- background-size: cover;
-}
- </style>
-</head>
-<body>
-
- <div class="display-container">
- <div class="white" style="max-width: 320px; margin: auto;">
- <div class="container center padding-24">
- <img src="[% abspath%][% staticpath %]img/logo.png" style="height: 200px;" alt="logo">
- </div>
- <div>
- </div>
- [% IF pagename == 'register' && registration_enabled == '1' %]
- [% INCLUDE module/login/register.tt %]
- [% ELSIF pagename == 'forgotpassword' %]
- [% INCLUDE module/login/forgotpassword.tt %]
- [% ELSIF pagename == 'message' %]
- [% INCLUDE module/login/message.tt %]
- [% ELSIF pagename == 'validationcode' %]
- [% INCLUDE module/login/validationcode.tt %]
- [% ELSE %]
- [% INCLUDE module/login/login.tt %]
- [% END %]
- </div>
-
- </div>
-
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-[% MACRO fieldhidden(column,table,ident,value) BLOCK -%]
- <input type="hidden" class="data_[% table %]" id="[% column %]" name="[% IF ident %]ident_[% END %][% table %]_[% column %]" value="[% value %]">
-[% END -%]
-[% MACRO fieldeditbox(column,table,title,size,state,value,plhold) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]" >
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <input type="text" class="input border data_[% table %] [% IF state.length > 0 %][% state %][% END %] " id="[% column %]" name="[% table %]_[% column %]" value="[% value %]" [% IF plhold %]placeholder="[% plhold %]" [% END %] [% IF state.length > 0 %][% state %][% END %]/>
-
- </div>
-[% END -%]
-[% MACRO fieldfile(column,table,title,size,state,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]" >
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <input type="file" class="input border data_[% table %] [% IF state.length > 0 %][% state %][% END %] " id="[% column %]" name="[% table %]_[% column %]" value="[% value %]" [% IF state.length > 0 %][% state %][% END %]/>
-
- </div>
-[% END -%]
-[% MACRO fieldpasswordbox(column,table,title,size,state,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]" >
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <input type="password" class="input border data_[% table %] [% IF state.length > 0 %][% state %][% END %] " id="[% column %]" name="[% table %]_[% column %]" value="" [% IF state.length > 0 %][% state %][% END %]/>
-
- </div>
-[% END -%]
-[% MACRO fieldtagbox(column,table,title,size,state,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]" >
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <input type="text" class="input tagedit border data_[% table %] [% IF state.length > 0 %][% state %][% END %] " id="[% column %]" name="[% table %]_[% column %]" value="" [% IF state.length > 0 %][% state %][% END %]/>
-
- </div>
-[% END -%]
-[% MACRO fieldcheckbox(column,table,title,size,state,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]">
- <br/>
- <input class="check data_[% table %] [% IF state.length > 0 %][% state %][% END %]" id="[% column %]" name="[% table %]_[% column %]" value="[% value %]" type="checkbox" [% IF state.length > 0 %][% state %][% END %]>
- <label>[% title %]</label>
- </div>
-[% END -%]
-
-[% MACRO fieldemailbox(column,table,title,size,state,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]" >
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <input type="email" class="input border data_[% table %] [% IF state.length > 0 %][% state %][% END %] " id="[% column %]" name="[% table %]_[% column %]" value="" [% IF state.length > 0 %][% state %][% END %]/>
- </div>
-[% END -%]
-
-[% MACRO fieldselectbox(column,table,title,size,state,value) BLOCK -%]
- [% IF state.length > 0 %]
- [% fieldeditbox(column,table,title,size,state,value) %]
- [% ELSE %]
- <div class="container [% IF size %][% size %][% END %]">
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <select class="select border data_[% table %] [% IF state.length > 0 %][% state %][% END %]" id="[% column %]" data-selected="" value="" name="[% table %]_[% column %]" [% IF state.length > 0 %][% state %][% END %]>
-
- </select>
-
- </div>
- [% END %]
-[% END -%]
-[% MACRO fieldmultiselectbox(column,table,title,size,state,value) BLOCK -%]
- [% IF state.length > 0 %]
- [% fieldeditbox(column,table,title,size,state,value) %]
- [% ELSE %]
- <div class="container [% IF size %][% size %][% END %]">
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <select class="select border data_[% table %] [% IF state.length > 0 %][% state %][% END %]" id="[% column %]" data-selected="" multiple value="" name="[% table %]_[% column %]" [% IF state.length > 0 %][% state %][% END %]>
-
- </select>
-
- </div>
- [% END %]
-[% END -%]
-[% MACRO fielddatebox(column,table,title,size,state,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]">
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <input type="date" class="input border data_[% table %] datefield [% IF state.length > 0 %][% state %][% END %]" id="[% column %]" name="[% table %]_[% column %]" value="[% value %]" [% IF state.length > 0 %][% state %][% END %]]/>
-
- </div>
-[% END -%]
-[% MACRO fieldtextarea(column,table,title,size,state,height,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]" >
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <textarea class="input border data_[% table %] [% IF state.length > 0 %][% state %][% END %]" style="height: [% height %];" id="[% column %]" name="[% table %]_[% column %]"
- [% IF state.length > 0 %][% state %][% END %] >[% value %]</textarea>
- </div>
-[% END -%]
-[% MACRO fieldrichtextarea(column,table,title,size,state,height,value) BLOCK -%]
- <div class="container [% IF size %][% size %][% END %]" >
- <label for="[% table %]_[% column %]" class="label">[% title %]</label>
- <textarea class="input border data_[% table %] richeditarea [% IF state.length > 0 %][% state %][% END %]" style="height: [% height %];" id="[% column %]" name="[% table %]_[% column %]"
- [% IF state.length > 0 %][% state %][% END %] >[% value %]</textarea>
- </div>
-[% END -%]
-
-[% MACRO formsavebutton(formname,btnname,clbk) BLOCK -%]
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('[% formname %]',[% IF clbk.length > 0 %][% clbk %][%ELSE%]null[% END %]);return false;">[% btnname %]</button>
- </div>
-[% END -%]
-[% MACRO formsavetextfilebutton(formname,btnname) BLOCK -%]
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="savetextfile('[% formname %]');return false;">[% btnname %]</button>
- </div>
-[% END -%]
-[% MACRO formdlgsavebutton(formname,btnname,clbk) BLOCK -%]
- <button class="button blue-grey margin right-align" onclick="saveform('[% formname %]',[% IF clbk.length > 0 %][% clbk %][% ELSE %]null[% END %]);return false;">[% btnname %]</button>
-[% END -%]
-[% MACRO formsavefilebutton(formname,btnname,container) BLOCK -%]
-[% IF container.length > 0 %]
- <div class="container right-align">
- [% END %]
- <button class="button blue-grey margin" onclick="savefileform('[% formname %]');return false;">[% btnname %]</button>
-[% IF container.length > 0 %]
- </div>
-[% END %]
-[% END -%]
-
-
+++ /dev/null
-function initpage(){
- tbl = new Tabulator("#tbl_divisions", {
- height: "95vh",
- layout:"fitColumns",
- addRowPos:"top",
- selectable:1,
- columns:[
- {title:"Divisioun", field:"division"},
- {title:"Ranking", field:"ranking"},
- ],
-});
- gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"divisions"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function add(){
-
-}
-
-function edit(){
-
-}
-
-function remove(){
-
-}
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-[% INCLUDE "module/$module/toolbar.tt" %]
-<div class="container" id="tbl_divisions" style="margin-top: 50px;">
-</div>
-<div id="dlgdivisions" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgdivisions').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2 id="dlgpublish_title">Divisioun änneren / setzen</h2>
- </header>
- <div class="container">
- <form id="frm_divisions">
- [% fieldhidden("id","csdivisions",'ident','') %]
- [% fieldselectbox("season","csdivisions","Saison",'','','') %]
- [% fieldselectbox("ranking","csdivisions","Ranking",'','','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgdivisions').style.display='none'; return false;">Oofbriechen</button>
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('divisions');return false;">Spaicheren</button>
- </div>
- </footer>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-var sel_id_teamhome = null;
-var sel_id_teamguest = null;
-
-function initpage(){
- flatpickr(".datefield",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- "locale": "fr",
- });
- tbl = new Tabulator("#tbl_csgames", {
- height: "95vh",
- layout:"fitColumns",
- addRowPos:"top",
- selectable:1,
- columns:[
- {title:"Saison", field:"season",headerFilter:"input"},
- {title:"Division", field:"division",headerFilter:"input"},
- {title:"Spilldag", field:"playday",headerFilter:"input"},
- {title:"Datum", field:"dspplaydate",headerFilter:"input"},
- {title:"Team Home", field:"teamhome",headerFilter:"input"},
- {title:"Team Guest", field:"teamguest",headerFilter:"input"},
- {title:"Sets Team Home", field:"sets_teamhome"},
- {title:"Sets Team Guest", field:"sets_teamguest"},
- {title:"Validéiert",field:"validated"}
- ],
-});
- gettbldata();
- getdivisions();
- getseasons();
- getteamsbyseasondivision();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"games"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function add(){
- document.getElementById("id").value = "";
- document.getElementById('dlgcsgames').style.display='block';
- return false;
-}
-
-function edit(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- //console.log(uid);
- req.reqdata("POST","db.cgi",{"get":"games","filter":"id=" + uid},fillformgames);
- document.getElementById('dlgcsgames').style.display='block';
- return false;
-}
-
-function fillformgames(data){
- console.log("fillformgames");
- console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_csgames');
- for (var f in frm){
- //console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].classList.contains("richeditarea")){
- //console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- }
- return false;
-}
-
-function remove(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- if (confirm("Dass du secher dass du déi ausgewielten Rei läschen wëlls?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_csgames_id":udata[0].id},gettbldata);
- }
- return false;
-}
-
-
-function getdivisions(){
- req.reqdata("POST","db.cgi",{"get":"divisions"},filldivisions);
- return false;
-}
-function filldivisions(data){
- var divlist = [];
- var dividlist = {"":""};
- if (data && data.sqldata){
- for (var i in data.sqldata){
- divlist.push({value:data.sqldata[i].id,label:data.sqldata[i].division});
- dividlist[data.sqldata[i].id] = data.sqldata[i].division;
- }
- }
- if (document.getElementById('id_division').tagName == "SELECT"){
- sel_id_division = new Choices('#id_division',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : divlist,
- shouldSort: false,
- shouldSortItems: false
- });
- sel_id_division.setChoiceByValue(document.getElementById("id_division").dataset.selected);
-
- } else {
- document.getElementById('id_division').value = dividlist[document.getElementById('id_division').value];
- }
- document.getElementById("id_division").addEventListener("change",function(){
- getteamsbyseasondivision();
- });
- return false;
-}
-function getseasons(){
- req.reqdata("POST","db.cgi",{"get":"seasons"},fillseasons);
- return false;
-}
-function fillseasons(data){
-
- var seasonlist = [];
- var seasonidlist = {"":""};
- if (data && data.sqldata){
- for (var i in data.sqldata){
- seasonlist.push({value:data.sqldata[i].id,label:data.sqldata[i].season});
- seasonidlist[data.sqldata[i].id] = data.sqldata[i].season;
- }
- }
- if (document.getElementById('id_season').tagName == "SELECT"){
- sel_id_season = new Choices('#id_season',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : seasonlist,
- shouldSort: false,
- shouldSortItems: false
- });
- sel_id_season.setChoiceByValue(document.getElementById("id_season").dataset.selected);
-
- } else {
- document.getElementById('id_season').value = seasonidlist[document.getElementById('id_season').value];
- }
-
- document.getElementById("id_season").addEventListener("change",function(){
- getteamsbyseasondivision();
- });
- return false;
-}
-
-function closedlg(){
- gettbldata();
- document.getElementById('dlgcsgames').style.display='none';
-}
-
-function getteamsbyseasondivision(){
- var id_season = document.getElementById('id_season').value;
- var id_division = document.getElementById('id_division').value;
- req.reqdata("POST","db.cgi",{"get":"seasonranking","filter":" id_season="+id_season+" and id_division="+id_division},fillteams);
- return false;
-}
-
-function fillteams(data){
- var teamlist = [];
- var teamidlist = {"":""};
- //console.log(data);
- if (data && data.sqldata){
- for (var i in data.sqldata){
- teamlist.push({value:data.sqldata[i].id_team,label:data.sqldata[i].team});
- teamidlist[data.sqldata[i].id] = data.sqldata[i].teams;
- }
- }
- if (sel_id_teamhome){
- sel_id_teamhome.destroy();
- }
- if (sel_id_teamguest){
- sel_id_teamguest.destroy();
- }
- if (document.getElementById('id_teamhome').tagName == "SELECT"){
- sel_id_teamhome = new Choices('#id_teamhome',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : teamlist
- });
- sel_id_teamhome.setChoiceByValue(document.getElementById("id_teamhome").dataset.selected);
-
- } else {
- document.getElementById('id_teamhome').value = teamidlist[document.getElementById('id_teamhome').value];
- }
- if (document.getElementById('id_teamguest').tagName == "SELECT"){
- sel_id_teamguest = new Choices('#id_teamguest',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : teamlist
- });
- sel_id_teamguest.setChoiceByValue(document.getElementById("id_teamguest").dataset.selected);
-
- } else {
- document.getElementById('id_teamguest').value = teamidlist[document.getElementById('id_teamguest').value];
- }
- return false;
-}
-
-
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-[% INCLUDE "module/$module/toolbar.tt" %]
-<div class="container" id="tbl_csgames" style="margin-top: 50px;">
-</div>
-<div id="dlgcsgames" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgcsgames').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2 id="dlgpublish_title">Match änneren / setzen</h2>
- </header>
- <div class="container">
- <form id="frm_csgames">
- [% fieldhidden("id","csgames","ident",'') %]
- [% fieldselectbox("id_season","csgames","Saison",'half','','') %]
- [% fieldselectbox("id_division","csgames","Divisioun",'half','','') %]
- [% fieldeditbox("playday","csgames","Spilldag",'quarter','','') %]
- [% fielddatebox("playdate","csgames","Datum",'third','','') %]
- [% fieldselectbox("id_teamhome","csgames","Team Home",'threequarter','','') %]
- [% fieldeditbox("sets_teamhome","csgames","Sets Home",'quarter','','') %]
- [% fieldselectbox("id_teamguest","csgames","Team Guest",'threequarter','','') %]
- [% fieldeditbox("sets_teamguest","csgames","Sets Guest",'quarter','','') %]
- [% fieldcheckbox("validated","csgames","Validéiert",'','','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgcsgames').style.display='none'; return false;">Oofbriechen</button>
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('csgames',closedlg);return false;">Spaicheren</button>
- </div>
- </footer>
- </div>
-</div>
+++ /dev/null
-var tbl = null;
-var tag_highcheck = null;
-var tag_highscore = null;
-var tag_fastfinish = null;
-var sel_id_game = null;
-var sel_playday = null;
-var sel_id_member = null;
-var pdayidlist = [];
-var gameidlist = {};
-var clubidbymember = {};
-function initpage(){
- tag_highscore = new Choices('#highscore',{
- removeItems: true,
- removeItemButton: true,
- searchEnabled: false,
- addItems: true,
- addItemText: (value) => {
- return `Dreck 'Enter' <b>"${value}"</b> baizesetzen`;
- },
- });
- tag_fastfinish = new Choices('#fastfinish',{
- removeItems: true,
- removeItemButton: true,
- searchEnabled: false,
- addItems: true,
- addItemText: (value) => {
- return `Dreck 'Enter' <b>"${value}"</b> baizesetzen`;
- },
- });
- tag_highcheck = new Choices('#highcheck',{
- removeItems: true,
- removeItemButton: true,
- searchEnabled: false,
- addItems: true,
- addItemText: (value) => {
- return `Dreck 'Enter' <b>"${value}"</b> baizesetzen`;
- },
- });
- sel_playday = new Choices('#playday',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : [],
- shouldSort: false,
- shouldSortItems: false
- });
- sel_id_game = new Choices('#id_game',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : [],
- shouldSort: false,
- shouldSortItems: false
- });
- sel_id_member = new Choices('#id_member',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : [],
- shouldSort: false,
- shouldSortItems: false
- });
- tbl = new Tabulator("#tbl_cshighscores", {
- headerFilterPlaceholder:"filter...",
- height: "95vh",
- layout:"fitDataFill",
- selectable:1,
- responsiveLayout:"collapse",
- columns:[
- {title:"Spilldag", field:"playday",headerFilter:"number", headerFilterFunc:"=",sorter:"number", width: 50},
- {title:"Match", field:"game",headerFilter:"input",width: 200},
- {title:"Spiller", field:"player",headerFilter:"input",width: 200},
- {title:"Club", field:"club",headerFilter:"input",width: 150},
- {title:"High Score", field:"highscorelist"},
- {title:"Fast Finish", field:"fastfinishlist"},
- {title:"High Check", field:"highchecklist"},
- ],
-});
- gettbldata();
- getplaydays();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"highscores","filter":"season='[% season %]'"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function highscoresaved(){
- gettbldata();
- document.getElementById('dlgcshighscores').style.display='none';
-}
-
-function add(){
- tag_highscore.clearStore();
- tag_fastfinish.clearStore();
- tag_highcheck.clearStore();
- sel_id_member.clearStore();
- document.getElementById("id").value = "";
- document.getElementById("id_member").dataset.selected = "";
- getmembersbyteam();
- document.getElementById('dlgcshighscores').style.display='block';
-}
-
-function edit(){
- var udata = tbl.getSelectedData();
- if (udata.length == 0){ return; }
- var uid = udata[0].id;
- //console.log(udata[0]);
- sel_playday.setChoiceByValue(udata[0].playday);
- document.getElementById("id").value=udata[0].id;
- document.getElementById("id_game").dataset.selected = udata[0].id_game;
- //document.getElementById("id_club").value = udata[0].id_club;
- getgamesbyplayday();
- document.getElementById("id_member").dataset.selected = udata[0].id_member;
- getmembersbyteam();
- tag_fastfinish.clearStore();
- tag_highcheck.clearStore();
- tag_highscore.clearStore();
- if ((udata[0].highscore != null) && (udata[0].highscore != '[""]')){
- tag_highscore.setValue(JSON.parse(udata[0].highscore));
- }
- if ((udata[0].fastfinish != null) && (udata[0].fastfinish != '[""]')){
- tag_fastfinish.setValue(JSON.parse(udata[0].fastfinish));
- }
- if ((udata[0].highcheck != null) && (udata[0].highcheck != '[""]')){
- tag_highcheck.setValue(JSON.parse(udata[0].highcheck));
- }
- document.getElementById("id_club").value = udata[0].id_club;
- document.getElementById('dlgcshighscores').style.display='block';
-}
-
-function remove(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- if (confirm("Bass du secher dass déi ausgewielten Scores läschen wells?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_cshighscores_id":udata[0].id},gettbldata);
- }
-}
-
-function getplaydays(){
- req.reqdata("POST","db.cgi",{"get":"playdays","filter":"season='[% season%]'"},fillplaydays);
- return false;
-}
-function fillplaydays(data){
- var pdaylist = [];
- pdayidlist = {"":""};
- if (data && data.sqldata){
- for (var i in data.sqldata){
- pdaylist.push({value:data.sqldata[i].playday,label:data.sqldata[i].playday});
- pdayidlist[data.sqldata[i].playday] = data.sqldata[i].d;
- }
- }
- sel_playday.setChoices(pdaylist, 'value', 'label', true);
- document.getElementById("playday").addEventListener("change",function(){
- getgamesbyplayday();
- });
- return false;
-}
-
-function getgamesbyplayday(){
- var playday = document.getElementById('playday').value;
- req.reqdata("POST","db.cgi",{"get":"gameslist","filter":"season='[% season%]' and playday=" + playday},fillgameslist);
-}
-
-function fillgameslist(data){
- var gamelist = [];
- gameidlist = {};
- sel_id_game.clearStore();
- sel_id_member.clearStore();
- document.getElementById("id_club").value = "";
- if (data && data.sqldata){
- for (var i in data.sqldata){
- gamelist.push({value:data.sqldata[i].id,label:data.sqldata[i].game});
- gameidlist[data.sqldata[i].id] = data.sqldata[i];
- }
- }
- sel_id_game.setChoices(gamelist, 'value', 'label', true);
-
- document.getElementById("id_game").addEventListener("change",function(){
- getmembersbyteam();
- });
- if (document.getElementById("id_game").dataset.selected){
- sel_id_game.setChoiceByValue(document.getElementById("id_game").dataset.selected);
- }
- return false;
-}
-
-function getmembersbyteam(){
- var idgame = document.getElementById("id_game").value;
- //console.log(gameidlist[idgame]);
- if (idgame){
- req.reqdata("POST","db.cgi",{"get":"memberlist","filter":"id_club in (" + gameidlist[idgame].id_clubhome + "," + gameidlist[idgame].id_clubguest + ") and status='aktiv' "},fillmemberslist);
- }
-}
-
-function fillmemberslist(data){
- var memberslist = [];
- clubidbymember = {};
- sel_id_member.clearStore();
- document.getElementById("id_club").value = "";
-
- if (data && data.sqldata){
- for (var i in data.sqldata){
-
- memberslist.push({value:data.sqldata[i].id,label:'(' + data.sqldata[i].club + ') <strong>' + data.sqldata[i].surname + ' ' + data.sqldata[i].prename + '</strong>'});
- clubidbymember[data.sqldata[i].id] = data.sqldata[i].id_club;
- }
- }
- sel_id_member.setChoices(memberslist, 'value', 'label', true);
-
- document.getElementById("id_member").addEventListener("change",function(){
- setclubid();
- });
- if (document.getElementById("id_member").dataset.selected){
- sel_id_member.setChoiceByValue(document.getElementById("id_member").dataset.selected);
- }
- return false;
-}
-
-function setclubid(){
- var idm = document.getElementById("id_member").value;
- document.getElementById("id_club").value=clubidbymember[idm];
-}
-
-
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="top border-bottom theme-light">
-<div class="bar">
- <button class="bar-item button border blue-grey" onclick="app.loadpage('module/[% module %]/index.html','Championnat');return false;"><img src="[% abspath%]img/icons/target_white.svg" style="height: 24px;"/>Championnat</button>
-
- <div id="right_tlb">
- <button class="bar-item button border right red tlbbtnlist" onclick="remove();"><img src="[% abspath%]img/icons/remove_white.svg" style="height: 24px;"/></button>
- <button class="bar-item button border right blue-grey tlbbtnlist" onclick="edit();"><img src="[% abspath%]img/icons/edit_white.svg" style="height: 24px;"/></button>
- <button class="bar-item button border right blue-grey tlbbtnlist" onclick="add();"><img src="[% abspath%]img/icons/plus_white.svg" style="height: 24px;"/></button>
- </div>
-
-</div>
-</div>
-<div class="display-container">
-<div class="container" id="tbl_cshighscores" style="margin-top: 50px;"></div>
-<div id="dlgcshighscores" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgcshighscores').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2>Highscore androen</h2>
- </header>
- <div class="container">
- [% fieldselectbox("playday","display","Spilldag",'quarter','','') %]
- <form id="frm_cshighscores">
- [% fieldselectbox("id_game","cshighscores","Match",'','','') %]
- [% fieldhidden("id","cshighscores","ident",'') %]
- [% fieldhidden("id_club","cshighscores","",'') %]
- [% fieldselectbox("id_member","cshighscores","Spiller",'','','') %]
- [% fieldtagbox("highscore","cshighscores","High Score",'','','') %]
- [% fieldtagbox("fastfinish","cshighscores","Fast Finish",'','','') %]
- [% fieldtagbox("highcheck","cshighscores","High Check",'','','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light border" onclick="document.getElementById('dlgcshighscores').style.display='none'; return false;">Oofbriechen</button>
- <button class="button blue-grey margin" id="btnsavehighscore" onclick="saveform('cshighscores',highscoresaved);return false;">Spaicheren</button>
- </footer>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-var tbl = null;
-var afterformsaved = {};
-/*[% sid = session.id %]
-[% IF (session.usergroups.search('championship') != 1) %]
-[% qclub = dksdb.query("select id_club from vw_memberlist where id_user=$sid;") %]
-[% club = qclub.get_all() %]
-[% END %] */
-
-var idclub="[% club.0.id_club %]";
-function initpage(){
- tbl = new Tabulator("#tbl_csgames", {
- headerFilterPlaceholder:"filter...",
- height: "95vh",
- layout:"fitDataFill",
- selectable:1,
- responsiveLayout:"collapse",
- columns:[
- {title:"Spilldag", field:"playday",headerFilter:"number", headerFilterFunc:"=",sorter:"number", width: 50},
- {title:"Datum", field:"dspplaydate",headerFilter:"input", width: 120},
- {title:"Doheem", field:"teamhome",headerFilter:"input"},
- {title:"Auswärts", field:"teamguest",headerFilter:"input"},
- {title:"Sets Doheem", field:"sets_teamhome",width: 50},
- {title:"Sets Auswärts", field:"sets_teamguest",width: 50},
- {title:"Validéiert", field:"validated", width: 50,align:"center", formatter:"tickCross", sorter:"boolean"},
- {title:"Resultat Doheem", field:"result_teamhome",width: 100},
- {title:"SpillBou Doheem", field:"file_teamhome",formatter:"html",width: 150},
- {title:"Resultat Auswärts", field:"result_teamguest",width: 100},
- {title:"SpillBou Auswärts", field:"file_teamguest",formatter:"html",width: 150},
- ],
-});
- gettbldata();
-}
-
-function gettbldata(){
- /*[% IF club %]*/
- req.reqdata("POST","db.cgi",{"get":"games","filter":"season='[% season %]' and (id_clubhome=[% club.0.id_club %] or id_clubguest=[% club.0.id_club %])"},loadtbldata);
- /*[% ELSE %]*/
- req.reqdata("POST","db.cgi",{"get":"games","filter":"season='[% season %]'"},loadtbldata);
- /*[% END %]*/
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function closedlg(){
- gettbldata();
- document.getElementById('dlgcsgames').style.display='none';
-}
-
-function edit(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- if (udata.length == 0){ return; }
- document.getElementById("div_teamguest").style.display = 'block';
- document.getElementById("div_teamhome").style.display = 'block';
- document.getElementById("season").value=udata[0].season;
- document.getElementById("division").value=udata[0].division;
- document.getElementById("playday").value=udata[0].playday;
- document.getElementById("dspplaydate").value=udata[0].dspplaydate;
- document.getElementById("teamhome").value=udata[0].teamhome;
- document.getElementById("teamguest").value=udata[0].teamguest;
- document.getElementById("id_clubhome").value=udata[0].id_clubhome;
- document.getElementById("id_clubguest").value=udata[0].id_clubguest;
- document.getElementById("uploadclub").value=idclub;
- document.getElementById("id").value=udata[0].id;
- document.getElementById("upload_teamhome").value="";
- document.getElementById("upload_teamguest").value="";
- document.getElementById("result_teamhome").value="";
- document.getElementById("result_teamguest").value="";
- //if (idclub == ''){
- document.getElementById("sets_teamhome").value=udata[0].sets_teamhome;
- document.getElementById("sets_teamguest").value=udata[0].sets_teamguest;
- //}
-
- if (udata[0].validated=="1"){
-
- if (idclub == ''){ document.getElementById("validated").checked = true;}
- if (idclub != ''){
- document.getElementById("div_fld").style.display= 'block';
- document.getElementById("btnsavegame").style.display='none';
- }
-
- } else {
- document.getElementById("btnsavegame").style.display='inline';
- if (idclub == ''){ document.getElementById("validated").checked = false;}
- if (idclub != ''){ document.getElementById("div_fld").style.display= 'none'; }
- }
-
- if (idclub != ''){
- if (idclub != '' && idclub== udata[0].id_clubhome && udata[0].id_clubhome!=udata[0].id_clubguest){
-
- document.getElementById("div_teamguest").style.display = 'none';
- }
- if (idclub != '' && idclub== udata[0].id_clubguest && udata[0].id_clubhome!=udata[0].id_clubguest){
-
- document.getElementById("div_teamhome").style.display = 'none';
- }
- if (udata[0].validated == 1){
- document.getElementById("div_teamguest").style.display = 'none';
- document.getElementById("div_teamhome").style.display = 'none';
-
- }
- } else {
- document.getElementById("div_teamguest").style.display = 'block';
- document.getElementById("div_teamhome").style.display = 'block';
- }
-
- document.getElementById('dlgcsgames').style.display='block';
- return false;
-}
-
-function savegame(){
-
- var th = false;
- var tg = false;
- var rt =/\d+-\d+/;
- if (idclub != '' && idclub == document.getElementById('id_clubhome').value){
- var rth = document.getElementById('result_teamhome').value;
- var fth = document.getElementById('upload_teamhome').value;
- rth = rth.replace(' ','','g');
- //console.log("home do match " + rth.match(rt));
- if (rth != '' && fth != '' && (rth.match(rt))){
- th = true;
-
- }
- }
- if (idclub != '' && idclub == document.getElementById('id_clubguest').value){
- var rtg = document.getElementById('result_teamguest').value;
- var ftg = document.getElementById('upload_teamguest').value;
- rtg = rtg.replace(' ','','g');
- //console.log("guest do match " + rtg.match(rt));
- if (rtg != '' && ftg != '' && (rtg.match(rt))){
- tg = true;
- // console.log("guest does not match!");
-
- }
- }
- //console.log("TG" + tg + 'TH' + th);
- if (idclub == '' || th || tg){
- getformdata('csgames');
- }
-
- return false;
-}
-
-
-function filesaved(data){
- var sb = document.getElementById("snackbar");
- sb.className="show green";
- sb.innerHTML = 'den Spillstand gouf gespaichert!';
- setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000);
- return false;
-}
-function getformdata(frmid){
- var frm = document.getElementById("frm_" + frmid);
- // console.log(frm);
- var frmdata = new FormData();
- // flds ={"text":{},"files":{}};
- for (var i = 0; i < frm.elements.length; i++) {
- var field = frm.elements[i];
-
- if (field.tagName == "INPUT"){
- //console.log(field.id + " => " + field.type);
- if ( field.type == "file"){
- if (field.files[0]){
- frmdata.append(field.id,field.files[0]);
- }
- } else if (field.type == "checkbox"){
- if (field.checked == true){
- frmdata.append(field.id,1);
- } else {frmdata.append(field.id,'');}
- }
- else {
- if (field.value){
- frmdata.append(field.id,field.value);
- }
-
- //flds['text'][field.id] = field.value;
- }
- }
- // console.log(field);
- }
- for (var pair of frmdata.entries()) {
- console.log(pair[0]+ ', ' + pair[1]);
- }
- req.multipartform("upload.cgi",frmdata,multipartformsaved);
-}
-
-function multipartformsaved(data){
- //console.log(data);
- var sb = document.getElementById("snackbar");
- sb.className="show green";
- sb.innerHTML = 'Den Fichier gouf gespaichert!';
- setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000);
-
- document.getElementById('dlgcsgames').style.display = 'none';
- if (afterformsaved.action){
- afterformsaved.action(data);
- }
- gettbldata();
- return false;
-}
-
-function show_gameupload(gfile){
- var ts = Math.round((new Date()).getTime() / 1000);
- window.open("../data/championship/[% season%]/" + gfile + '?v='+ ts);
-}
-
-/*[% IF (session.usergroups.search('championship') == 1) %]*/
-
-function loadhighscores(){
- var udata = tbl.getSelectedData();
- //console.log(udata);
- if (udata.length > 0){
- var uid = udata[0].id;
- app.loadpage('[% module %]/highscores.html?id_game=' + udata[0].id,'Highscores');
- } else {
- app.loadpage('[% module %]/highscores.html','Highscores');
- }
-}
-
-function cleansets(){
- req.reqdata("POST","db.cgi",{"fn":"cleangamesets","params":document.getElementById("id").value},aftercleansets);
-}
-
-function aftercleansets(data){
- console.log(data);
- var sb = document.getElementById("snackbar");
- sb.className="show green";
- sb.innerHTML = 'Den Fichier gouf gespaichert!';
- setTimeout(function(){ sb.className = sb.className.replace("show green", ""); }, 3000);
-
- document.getElementById('dlgcsgames').style.display = 'none';
- gettbldata();
- return false;
-}
-/*[% END %]*/
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-[% inputdisabled = 'readonly' %]
-[% IF (session.usergroups.search('championship') == 1) %]
-[% inputdisabled = '' %]
-[% END %]
-<div class="bar moduletoolbar">
- <div class="bar-item PageHeadTitle">Championnat</div>
- <button class="bar-item toolbarbtn center" onclick="edit(); return false;"><span class="icon-edit" style="font-size: 16px;"></span><br/>Endstand androën</button>
- [% IF (session.usergroups.search('championship') == 1) %]
- <button class="bar-item toolbarbtn center" onclick="app.loadpage('[% module %]/ranking.html','Konfiguratioun Saison');return false;"><span class="icon-settings" style="font-size: 16px;"></span><br/>Konfiguratioun</button>
- <button class="bar-item toolbarbtn center" onclick="loadhighscores();return false;"><span class="icon-numberlist" style="font-size: 16px;"></span><br/>Highscores</button>
- [% END %]
-</div>
-<div class="display-container" id="tbl_csgames"></div>
-<div id="dlgcsgames" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgcsgames').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2>Endstand androën</h2>
- </header>
- <div class="container">
- [% fieldeditbox("season","display","Saison",'quarter','readonly','') %]
- [% fieldselectbox("division","display","Divisioun",'quarter','readonly','') %]
- [% fieldeditbox("playday","display","Spilldag",'quarter','readonly','') %]
- [% fieldeditbox("dspplaydate","display","Datum",'quarter','readonly','') %]
- [% fieldselectbox("teamhome","display","Doheem",'half','readonly','') %]
- [% fieldselectbox("teamguest","display","Auswärts",'half','readonly','') %]
- [% fieldhidden("id_clubhome","csgames","",'') %]
- [% fieldhidden("id_clubguest","csgames","",'') %]
- <form id="frm_csgames">
- [% fieldhidden("gameresult","form","",'1') %]
- [% fieldhidden("uploadclub","form","",'') %]
- [% fieldhidden("id","csgames","ident",'') %]
- [% IF (session.usergroups.search('championship') == 1) %]
- <div class="container" id="div_fld">
- [% fieldeditbox("sets_teamhome","csgames","Sets Doheem",'third','','') %]
- [% fieldeditbox("sets_teamguest","csgames","Sets Auswärts",'third','','') %]
- [% fieldcheckbox("validated","csgames","Validéiert",'third','','') %]
- </div>
- [% ELSE %]
- <div class="container" id="div_fld">
- [% fieldeditbox("sets_teamhome","csgames","Sets Doheem",'third','readonly','') %]
- [% fieldeditbox("sets_teamguest","csgames","Sets Auswärts",'third','readonly','') %]
- </div>
- [% END %]
-
- <div id="div_teamhome">
- [% fieldeditbox("result_teamhome","csgames","Endstand<br/>Doheem",'third','','','0-0') %]
- [% fieldfile("upload_teamhome","csgames","Spillbou<br/>Doheem","twothird",'') %]
- </div>
- <div id="div_teamguest">
- [% fieldeditbox("result_teamguest","csgames","Endstand<br/>Auswärts",'third','','','0-0') %]
- [% fieldfile("upload_teamguest","csgames","Spillbou<br/>Auswärts",'twothird','') %]
- </div>
- </form>
- </div>
- <footer class="container right-align padding-16">
- [% IF (session.usergroups.search('championship') == 1) %]
- <button class="button red border" onclick="cleansets(); return false;">Sets läschen</button>
- [% END %]
- <button class="button theme-light border" onclick="document.getElementById('dlgcsgames').style.display='none'; return false;">Oofbriechen</button>
- <button class="button blue-grey margin" id="btnsavegame" onclick="savegame();return false;">Spaicheren</button>
- </footer>
- </div>
-</div>
+++ /dev/null
-var tbl = null;
-var sel_id_team = null;
-var sel_id_division = null;
-var sel_id_season = null;
-function initpage(){
- tbl = new Tabulator("#tbl_csseasonranking", {
- height: "95vh",
- layout:"fitColumns",
- addRowPos:"top",
- selectable:1,
- columns:[
- {title:"Saison", field:"season",headerFilter:"input"},
- {title:"Division", field:"division",headerFilter:"input"},
- {title:"Team", field:"team",headerFilter:"input"},
- {title:"gespillt", field:"played"},
- {title:"Sets gewonnen", field:"setswon"},
- {title:"Sets verluer", field:"setslost"},
- {title:"Punkten", field:"points"}
- ],
-});
- gettbldata();
- getteams();
- getdivisions();
- getseasons();
-}
-
-
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"seasonranking"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function add(){
- var frm = document.querySelectorAll('.data_csseasonranking');
- for (var f in frm){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate("");
- } else {
- frm[f].value="";
- // if (frm[f].id == 'teams'){
- // locations_teams.clearStore();
- // }
- }
-
- }
- }
- document.getElementById('dlgcsseasonranking').style.display='block';
- return false;
-}
-
-function edit(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- //console.log(uid);
- req.reqdata("POST","db.cgi",{"get":"seasonranking","filter":"id=" + uid},fillformseasonranking);
- document.getElementById('dlgcsseasonranking').style.display='block';
- return false;
-}
-
-function fillformseasonranking(data){
- //console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_csseasonranking');
- for (var f in frm){
- //console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].classList.contains("richeditarea")){
- //console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- }
- return false;
-}
-
-function remove(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- if (confirm("Dass du secher dass du déi ausgewielten Rei läschen wëlls?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_csseasonranking_id":udata[0].id},gettbldata);
- }
- return false;
-}
-
-function getteams(){
- req.reqdata("POST","db.cgi",{"get":"teams"},fillteams);
- return false;
-}
-
-function fillteams(data){
- var teamlist = [];
- var teamidlist = {"":""};
- if (data && data.sqldata){
- for (var i in data.sqldata){
- teamlist.push({value:data.sqldata[i].id,label:data.sqldata[i].team});
- teamidlist[data.sqldata[i].id] = data.sqldata[i].teams;
- }
- }
- if (document.getElementById('id_team').tagName == "SELECT"){
- sel_id_team = new Choices('#id_team',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : teamlist
- });
- sel_id_team.setChoiceByValue(document.getElementById("id_team").dataset.selected);
-
- } else {
- document.getElementById('id_team').value = teamidlist[document.getElementById('id_team').value];
- }
- return false;
-}
-function getdivisions(){
- req.reqdata("POST","db.cgi",{"get":"divisions"},filldivisions);
- return false;
-}
-function filldivisions(data){
- var divlist = [];
- var dividlist = {"":""};
- if (data && data.sqldata){
- for (var i in data.sqldata){
- divlist.push({value:data.sqldata[i].id,label:data.sqldata[i].division});
- dividlist[data.sqldata[i].id] = data.sqldata[i].division;
- }
- }
- if (document.getElementById('id_division').tagName == "SELECT"){
- sel_id_division = new Choices('#id_division',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : divlist,
- shouldSort: false,
- shouldSortItems: false
- });
- sel_id_division.setChoiceByValue(document.getElementById("id_division").dataset.selected);
-
- } else {
- document.getElementById('id_division').value = dividlist[document.getElementById('id_division').value];
- }
- return false;
-}
-function getseasons(){
- req.reqdata("POST","db.cgi",{"get":"seasons"},fillseasons);
- return false;
-}
-function fillseasons(data){
-
- var seasonlist = [];
- var seasonidlist = {"":""};
- if (data && data.sqldata){
- for (var i in data.sqldata){
- seasonlist.push({value:data.sqldata[i].id,label:data.sqldata[i].season});
- seasonidlist[data.sqldata[i].id] = data.sqldata[i].season;
- }
- }
- if (document.getElementById('id_season').tagName == "SELECT"){
- sel_id_season = new Choices('#id_season',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : seasonlist,
- shouldSort: false,
- shouldSortItems: false
- });
- sel_id_season.setChoiceByValue(document.getElementById("id_season").dataset.selected);
-
- } else {
- document.getElementById('id_season').value = seasonidlist[document.getElementById('id_season').value];
- }
- return false;
-}
-
-function closedlg(){
- gettbldata();
- document.getElementById('dlgcsseasonranking').style.display='none';
-}
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-[% INCLUDE "module/$module/toolbar.tt" %]
-<div class="container" id="tbl_csseasonranking" style="margin-top: 50px;">
-</div>
-<div id="dlgcsseasonranking" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgcsseasonranking').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2 id="dlgpublish_title">Ranking änneren / setzen</h2>
- </header>
- <div class="container">
- <form id="frm_csseasonranking">
- [% fieldhidden("id","csseasonranking","ident",'') %]
- [% fieldselectbox("id_season","csseasonranking","Saison",'','','') %]
- [% fieldselectbox("id_division","csseasonranking","Divisioun",'','','') %]
- [% fieldselectbox("id_team","csseasonranking","Equipe",'','','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgcsseasonranking').style.display='none'; return false;">Oofbriechen</button>
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('csseasonranking',closedlg);return false;">Spaicheren</button>
- </div>
- </footer>
- </div>
-</div>
+++ /dev/null
-function initpage(){
- tbl = new Tabulator("#tbl_seasons", {
- height: "95vh",
- layout:"fitColumns",
- addRowPos:"top",
- selectable:1,
- columns:[
- {title:"Saison", field:"season"},
- ],
-});
- gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"seasons"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function add(){
-
-}
-
-function edit(){
-
-}
-
-function remove(){
-
-}
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-[% INCLUDE "module/$module/toolbar.tt" %]
-<div class="container" id="tbl_seasons" style="margin-top: 50px;">
-</div>
-<div id="dlgseasons" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgseasons').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2 id="dlgpublish_title">Saison änneren / setzen</h2>
- </header>
- <div class="container">
- <form id="frm_seasons">
- [% fieldhidden("id","csseasons",'ident','') %]
- [% fieldselectbox("season","csseasons","Saison",'','','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgseasons').style.display='none'; return false;">Oofbriechen</button>
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('seasons');return false;">Spaicheren</button>
- </div>
- </footer>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-function initpage(){
- tbl = new Tabulator("#tbl_teams", {
- height: "95vh",
- layout:"fitColumns",
- addRowPos:"top",
- selectable:1,
- columns:[
- {title:"Equipe", field:"team"},
- {title:"Club", field:"club"},
- ],
-});
- gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"teams"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function add(){
-
-}
-
-function edit(){
-
-}
-
-function remove(){
-
-}
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-[% INCLUDE "module/$module/toolbar.tt" %]
-<div class="container" id="tbl_teams" style="margin-top: 50px;">
-</div>
-<div id="dlgteams" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgteams').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2 id="dlgpublish_title">Saison änneren / setzen</h2>
- </header>
- <div class="container">
- <form id="frm_teams">
- [% fieldhidden("id","csteams",'ident','') %]
- [% fieldselectbox("team","csteams","Saison",'','','') %]
- [% fieldselectbox("id_club","csteams","Club",'','','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgteams').style.display='none'; return false;">Oofbriechen</button>
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('teams');return false;">Spaicheren</button>
- </div>
- </footer>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-<div class="top border-bottom theme-light">
-
-<div class="bar">
- <button class="bar-item button border blue-grey" onclick="app.loadpage('module/[% module%]/ranking.html',null);"><img src="[% abspath%]img/icons/target_white.svg" style="height: 24px;"/> Tabellen</button>
- <button class="bar-item button border blue-grey" onclick="app.loadpage('module/[% module%]/games.html',null);"><img src="[% abspath%]img/icons/calendar_white.svg" style="height: 24px;"/>Matcher</button>
- <button class="bar-item button border blue-grey" onclick="app.loadpage('module/[% module%]/seasons.html',null);"><img src="[% abspath%]img/icons/list_white.svg" style="height: 24px;"/>Saisonen</button>
- <button class="bar-item button border blue-grey" onclick="app.loadpage('module/[% module%]/divisions.html',null);"><img src="[% abspath%]img/icons/list_white.svg" style="height: 24px;"/>Divisiounen</button>
- <button class="bar-item button border blue-grey" onclick="app.loadpage('module/[% module%]/teams.html',null);"><img src="[% abspath%]img/icons/list_white.svg" style="height: 24px;"/>Teams</button>
-
-
- <button class="bar-item button border right red" onclick="remove();"><img src="[% abspath%]img/icons/remove_white.svg" style="height: 24px;"/></button>
- <!-- <button class="bar-item button border right blue-grey" onclick="duplicate();"><img src="[% abspath%]img/icons/duplicate_white.svg" style="height: 24px;"/></button> -->
- <button class="bar-item button border right blue-grey" onclick="edit();"><img src="[% abspath%]img/icons/edit_white.svg" style="height: 24px;"/></button>
- <button class="bar-item button border right blue-grey" onclick="add();"><img src="[% abspath%]img/icons/plus_white.svg" style="height: 24px;"/></button>
-
-</div>
-</div>
-
-
- <!--<div class="bar theme-l2">
- <a href="javascript:app.loadpage('module/[% module %]/index.html','Resultater');" class="bar-item button">Resultater</a>
- <a href="javascript:app.loadpage('module/[% module %]/seasons.html','Saisonen');" class="bar-item button">Saisonen</a>
- <a href="javascript:app.loadpage('module/[% module %]/divisions.html','Divisiounen');" class="bar-item button">Divisiounen</a>
- <a href="javascript:app.loadpage('module/[% module %]/teams.html','Equipen');" class="bar-item button">Equipen</a>
- <a href="javascript:app.loadpage('module/[% module %]/days.html','Spilldeg');" class="bar-item button">Spilldeg</a>
- <a href="javascript:app.loadpage('module/[% module %]/games.html','Matcher');" class="bar-item button">Matcher</a>
- </div>-->
+++ /dev/null
-
-
-
-
-
-function initpage() {
- club.inittable();
- club.initform();
-}
-let club = {
- tbl:null,
- current_club: "[% session.id_club %]"
- choices: {"id_president":null,"id_secretary":null,"id_tresorier":null,"location_teams":null,"club_emails":null},
- inittable: function() {
- club.tbl = new Tabulator("#tbl_locations", {
- selectable:1,
- //selectablePersistence:false, // disable rolling selection
- //responsiveLayout:"collapse",
- //autoResize:true,
- addRowPos:"top",
- layout:"fitDataStretch",
- //resizableRows:true,
- columns:[
- {title:"Numm", field:"location"},
- {title:"Address", field:"fulladdress",formatter:"html"},
- {title:"Equipen", field:"teamlist"},
- ],
- });
- club.gettbldata();
- },
- initform: function(){
- club.choices["location_teams"] = new SlimSelect({
- select: "#teams",
- //[% IF session.usergroups.search('fld') != 1 %]
- disabled : true,
- //[% END %]
- showSearch: false
- });
- club.choices["club_emails"] = new SlimSelect({
- select: "#teams",
- //[% IF session.usergroups.search('fld') != 1 %]
- disabled : true,
- //[% END %]
- showSearch: false
- });
- club.getclubdata();
- },
- gettbldata: function(){
- req.reqdata("POST","db.cgi",{"get":"locationlist","filter":"id_club=" + club.current_club +""},club.loadtbldata);
- },
- loadtbldata: function(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
- },
- getclubdata: function(){
- req.reqdata("POST","db.cgi",{"get":"clublist","filter":"id=" + clubid +""},club.fillformclub);
- },
- fillformclub: function(data){
- if (data && data.sqldata){
- form.fillformbydataclass2("clubs");
- var frm = document.querySelectorAll('.data_clubs');
- }
- },
- newlocation: function(){
- var frm = document.querySelectorAll('.data_locations');
- for (var f in frm){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate("");
- } else {
- frm[f].value="";
- if (frm[f].id == 'teams'){
- locations_teams.clearStore();
- }
- }
-
- }
- }
- document.getElementById("dlglocation").style.display = 'block';
- return false;
- },
- editlocation: function(){
- var selectedData = tbl.getSelectedData();
- //console.log(selectedData);
- if (selectedData && selectedData.length > 0){
- req.reqdata("POST","db.cgi",{"get":"locationlist","filter":"id=" + selectedData[0].id +""},showeditlocation);
- } else {
- showsnackbar("orange","Keen Spilluert ausgewielt!");
- }
-
- return false;
- },
- showeditlocation: function(data){
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_locations');
- for (var f in frm){
- //console.log(frm[f].id);
- if (data.sqldata[0][frm[f].id]){
- //console.log(frm[f].tagName + " " + frm[f].type + " " + frm[f].id);
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- //frm[f].flatpickr.setDate(data.sqldata[0][frm[f].id])
- }else {
- frm[f].value=data.sqldata[0][frm[f].id];
- if (frm[f].tagName == 'SELECT'){
- frm[f].dataset.selected = data.sqldata[0][frm[f].id];
- }
- if (frm[f].id == 'teams'){
- //console.log("is tagedit!");
- locations_teams.clearStore();
- locations_teams.setValue(JSON.parse(data.sqldata[0][frm[f].id]));
-
- }
- }
-
- }
- }
-
- }
- }
- document.getElementById("dlglocation").style.display = 'block';
- },
- getclubmembers: function(){
- req.reqdata("POST","db.cgi",{"get":"memberlist","filter":"id_club=" + clubid +" and status='aktiv'"},fillclubmembers);
- },
- fillclubmembers: function(data){
- var xlist = [{"value":"","label":""}];
- var idlist = {"":""};
- if (data && data.sqldata){
- for (var i in data.sqldata){
- xlist.push({value:data.sqldata[i].id,label:data.sqldata[i].surname + ' ' + data.sqldata[i].prename});
- idlist[data.sqldata[i].id] = data.sqldata[i].surname + ' ' + data.sqldata[i].prename
- }
- }
- console.log(xlist);
- if (document.getElementById('id_president').tagName == "SELECT"){
- sel_id_president = new Choices('#id_president',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : xlist
- });
- sel_id_president.setChoiceByValue(document.getElementById("id_president").dataset.selected);
-
- } else {
- document.getElementById('id_president').value = idlist[document.getElementById('id_president').value];
- }
- if (document.getElementById('id_secretaire').tagName == "SELECT"){
- sel_id_secretaire = new Choices('#id_secretaire',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices: xlist
- });
- sel_id_secretaire.setChoiceByValue(document.getElementById("id_secretaire").dataset.selected);
- }else {
- document.getElementById('id_secretaire').value = idlist[document.getElementById('id_secretaire').value];
-
- }
- if (document.getElementById('id_tresorier').tagName == "SELECT"){
- sel_id_tresorier = new Choices('#id_tresorier',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices: xlist
- });
- sel_id_tresorier.setChoiceByValue(document.getElementById("id_tresorier").dataset.selected);
- }else {
- document.getElementById('id_tresorier').value = idlist[document.getElementById('id_tresorier').value];
- }
-},
-
-deletelocation: function(){
- var selectedData = tbl.getSelectedData();
- console.log(selectedData);
- if (selectedData && selectedData.length > 0){
- if (confirm("desen Spilluert wierklech läschen?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_locations_id":selectedData[0].id},afterlocationupdate);
-
- }
-
- } else {
- showsnackbar("orange","Keen Spilluert ausgewielt!");
- }
-
- return false;
-},
-
-savelocation: function(){
- saveform('locations',afterlocationupdate);
- document.getElementById('dlglocation').style.display='none';
- return false;
-},
-
-
-afterlocationupdate: function(data){
- gettbldata();
-},
-
-
-
-}
\ No newline at end of file
+++ /dev/null
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Club</div>
- </div>
-</div>
-
-[% PROCESS macro/fields.tt %]
-[% #INCLUDE "module/$module/toolbar.tt" %]
-
-
-[% puserdef = dksdb.prepare("select ml.id_user from vw_licenselist ll join members ml on (ll.id_member=ml.id) where ll.id_club=? and ml.id_user=? and ll.yearin is not null and ll.yearout is null;") %]
-[% FOREACH ruserdef = puserdef.execute(2,session.id) %]
-[% IF ruserdef.id_user == session.id %]
- [% udef = ruserdef.id_user %]
-[% END %]
-[% END %]
-
-[% inputdisabled = 'readonly' %]
-[% IF ((session.usergroups.search('club') == 1 && udef == session.id) || (session.usergroups.search('fld') == 1)) %]
-[% inputdisabled = '' %]
-[% END %]
-<div class="display-container" style="margin-top: 50px;">
- <div class="row">
- <div class="col l10">
- <form id="frm_clubs">
- [% fieldhidden('id','clubs','ident') %]
- <div class="container padding-24 card margin">
- <div class="container">
- [% fieldeditbox('club','clubs','Numm vum Club','',inputdisabled) %]
- </div>
- <div class="container">
- <h4>Spilluerter</h4>
- <div class="container">
- [% IF inputdisabled == '' %]
- <button class="button blue-grey" onclick="newlocation();return false;">Neien Spilluert</button>
- <button class="button blue-grey" onclick="editlocation();return false;">Spilluert änneren</button>
- <button class="button red" id="btn_deletelocation" onclick="deletelocation();return false;">Spilluert läschen</button>
- [% END %]
- </div>
- <div class="container">
- <div id="tbl_locations"></div>
- </div>
- </div>
- <div class="container">
- <h4>Responsabel Memberen</h4>
- [% fieldselectbox('id_president','clubs','President','third',inputdisabled) %]
- [% fieldselectbox('id_secretaire','clubs','Sektretär','third',inputdisabled) %]
- [% fieldselectbox('id_tresorier','clubs','Trésorier','third',inputdisabled) %]
- </div>
- <div class="container">
- <h4>Courrier E-mail-Addressen</h4>
- [% fieldtagbox('emails','clubs','E-Mail-Addressen fir den Courrier','',inputdisabled) %]
- <h4>Courrier Facturations-Address</h4>
- [% fieldeditbox('surname','clubs','Numm','half',inputdisabled) %]
- [% fieldeditbox('prename','clubs','Virnumm','half',inputdisabled) %]
- [% fieldeditbox('address','clubs','Address','',inputdisabled) %]
- [% fieldeditbox('zip','clubs','CP','quarter',inputdisabled) %]
- [% fieldeditbox('city','clubs','Uerschaft','half',inputdisabled) %]
- [% fieldeditbox('country','clubs','Land','quarter',inputdisabled) %]
- </div>
- [% IF inputdisabled == '' %]
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('clubs');return false;">Spaicheren</button>
- </div>
- [% END %]
- </div>
- </form>
- </div>
- <div class="col l6">
-
- </div>
- </div>
-
-</div>
-<!-- DLG location -->
-<div id="dlglocation" class="modal">
-
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlglocation').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2>Spilluert</h2>
- </header>
-<div class="container">
- <form id="frm_locations">
- <h5>Spilluert fir</h5>
- [% fieldtagbox('teams','locations','Numm vun den Équipe(n)','','') %]
- <br/>
- [% fieldhidden('id','locations','ident') %]
- [% fieldhidden('id_club','locations','') %]
- [% fieldeditbox('location','locations','Numm','','') %]
- [% fieldeditbox('address','locations','Address','','') %]
- [% fieldeditbox('zip','locations','CP','quarter','') %]
- [% fieldeditbox('city','locations','Uerschaft','half','') %]
- [% fieldeditbox('country','locations','Land','quarter','') %]
- [% fieldeditbox('phone','locations','Telefon','','') %]
-
- </form>
- </div>
-<footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlglocation').style.display='none'; return false;">oofbriechen</button>
- <button class="button blue-grey margin" onclick="savelocation();return false;">Spaicheren</button>
-
- </footer>
- </div>
-</div>
-<!-- DLG location END -->
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
- clubmembers.inittable();
-}
-
-let clubmembers ={
- tbl: null,
- current_club: "[% session.id_club %]",
- inittable: function(){
- clubmembers.tbl = new Tabulator("#tbl_clubmembers", {
- height: "calc(100vh - 56px)",
- selectable:1,
- //selectablePersistence:false, // disable rolling selection
- //responsiveLayout:"collapse",
- //autoResize:true,
- //addRowPos:"top",
- layout:"fitDataStretch",
- resizableRows:true,
- columnHeaderSortMulti:false,
- rowClick:function(e, row){
- //var data = row.getData();
- //console.log(data);
- //idmember=data.id;
- //console.log(idmember);
- //loadmemberdata(idmember);
- //e - the click event object
- //row - row component
- },
- columns:[
- // {title:"Club", field:"club", sorter:"string",formatter:"html",headerFilter:"input"},
- {title:"Numm", field:"surname", sorter:"string"},
- {title:"Virnumm", field:"prename", sorter:"string"},
- {title:"Lizenz", field:"license", sorter:"string"},
- {title:"E-Mail", field:"username", sorter:"string"},
-
- // {title:"Status", field:"status", sorter:"string",headerFilter:"input"},
- ],
- //autoColumns:true,
- });
- clubmembers.gettbldata();
- },
- gettbldata: function(){
- req.reqdata("POST","db.cgi",{"get":"memberlist","filter":"id_club="+ clubmembers.current_club +" and status='aktiv' "},clubmembers.loadtbldata);
- },
- loadtbldata: function(data){
- if (data && data.sqldata){
- clubmembers.tbl.setData(data.sqldata);
- }
- },
-
- initform: function(){
-
- }
-}
\ No newline at end of file
+++ /dev/null
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Club-Memberen</div>
- </div>
-</div>
-<div id="tbl_clubmembers"></div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
-
-}
\ No newline at end of file
+++ /dev/null
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Clubs</div>
- </div>
-</div>
-<div id="tbl_clubs"></div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
-
-}
-let cupreg = {
-
-}
\ No newline at end of file
+++ /dev/null
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Club-Umeldung Coupe (Saison YYYY-YYYY)</div>
- </div>
-</div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
- clubmembers.inittable();
-}
-
-let clubmembers ={
- tbl: null,
- //current_club: "[% session.id_club %]",
- inittable: function(){
- clubmembers.tbl = new Tabulator("#tbl_fldmembers", {
- height: "calc(100vh - 56px)",
- selectable:1,
- //selectablePersistence:false, // disable rolling selection
- //responsiveLayout:"collapse",
- //autoResize:true,
- //addRowPos:"top",
- layout:"fitDataStretch",
- resizableRows:true,
- columnHeaderSortMulti:false,
- rowClick:function(e, row){
- //var data = row.getData();
- //console.log(data);
- //idmember=data.id;
- //console.log(idmember);
- //loadmemberdata(idmember);
- //e - the click event object
- //row - row component
- },
- columns:[
- {title:"Club", field:"club", sorter:"string",formatter:"html",headerFilter:"input"},
- {title:"Numm", field:"surname", sorter:"string",headerFilter:"input"},
- {title:"Virnumm", field:"prename", sorter:"string",headerFilter:"input"},
- {title:"Lizenz", field:"license", sorter:"string",headerFilter:"input"},
- {title:"E-Mail", field:"username", sorter:"string"},
- {title:"Status", field:"status", sorter:"string",headerFilter:"input"},
- ],
- //autoColumns:true,
- });
- clubmembers.gettbldata();
- },
- gettbldata: function(){
- req.reqdata("POST","db.cgi",{"get":"memberlist"},clubmembers.loadtbldata);
- },
- loadtbldata: function(data){
- if (data && data.sqldata){
- clubmembers.tbl.setData(data.sqldata);
- }
- },
-
- initform: function(){
-
- }
-}
\ No newline at end of file
+++ /dev/null
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Club-Memberen</div>
- </div>
-</div>
-<div id="tbl_fldmembers"></div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
-
-}
-
-let clubreg = {
-
-}
\ No newline at end of file
+++ /dev/null
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Club-Umeldung Saison YYYY-YYYY</div>
- </div>
-</div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-[% USE date %]
-[% vstamp=date.format(date.now, '%d%m%Y%H') %]
-<div class="display-container animate-opacity">
-<div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Dokumenter</div>
- [% IF session.usergroups.search('fld') == 1 %]
- <button class="bar-item toolbarbtn right" onclick="documents.add();"><span class="icon-plus" stlye="font-size: 20px;"></span>nei</button>
- [% END %]
-</div>
-</div>
-<div class="display-container" style="display: block; height: calc(100vh - 65px); overflow-y: scroll;">
- <ul class="ul">
- [% FOREACH doc=dksdb.query("select * from vw_documentlist order by filename;") %]
- <li class="bar ">
- [% IF session.usergroups.search('fld') == 1 %]
- <button onclick="documents.remove('[% doc.id %]');"
- class="bar-item toolbarbtn right text-red"><span class="icon-trash" style="width: 20px;"/></span>läschen</button>
- <button onclick="documents.edit('[% doc.id %]');"
- class="bar-item toolbarbtn right text-black"><span class="icon-edit" style="width: 20px;"/></span>änneren</button>
- [% END %]
- <a href="../data/[% doc.folder %]/[% doc.filename %]?v=[% vstamp %]" class="bar-item" target="_blank"><img src="[% IF doc.mimetype == 'application/pdf' %][% doc.thumbnail %][% ELSE %][% abspath %][% staticpath %]img/icons/file/[% doc.filetype %].png[% END %]" style="margin-right: 15px; width: 64px;"/> </a>
-
- <div class="bar-item">
- <a href="data/[% doc.folder %]/[% doc.filename %]?v=[% vstamp %]" target="_blank" class="large">[% doc.filename %]</a><br/>
- [% doc.description %]
- </div>
- </li>
- [% END %]
- </ul>
-</div>
-
-[% INCLUDE block/dlguploadfile.tt %]
-<div id="dlgeditdocument" class="modal">
-
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgeditdocument').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h3 id="dlgeditdocument_title">Fichier éditéieren</h3>
- </header>
- <div class="container">
- <form id="frm_editdocument">
- [% fieldhidden("id","documents",'ident','') %]
- [% fieldeditbox("filename","documents",'Fichier','','readonly') %]
- [% fieldrichtextarea("description","documents",'Beschreiwung','','200px;','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgeditdocument').style.display='none'; return false;">Oofbriechen</button>
- <button class="button blue-grey margin right-align" onclick="saveform('editdocument',closeeditdialog);return false;">Spaicheren</button>
-
- </footer>
- </div>
-</div>
-<script type="text/javascript" src="documents/[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
- documents.init();
-}
-
-let documents = {
- tbl: null,
- init: function(){
-
- tinymce.init({
- selector: '.richeditarea',
- branding: false,
- menubar:false,
- statusbar: false,
- forced_root_block : '',
- plugins: 'searchreplace autolink directionality visualblocks visualchars advlist lists textcolor colorpicker textpattern',
- toolbar: 'bold italic underline strikethrough forecolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat',
- image_advtab: true
- // //console.log(editor.getContent());
- });
- documents.tbl = new Tabulator("#tbl_documents", {
- height: "calc(100vh - 125px)",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- // responsiveLayout:"collapse",
- autoResize:true,
- layout:"fitDataFill",
- resizableRows:true,
- columnHeaderSortMulti:false,
- columns:[
- {title:"Thumb", field:"thumbnail",headerSort: false, formatter:"image", formatterParams:{height: 64}},
- {title:"Fichier", field:"filename", headerSort: false, formatter:"link"},
- {title:"Beschreiwung", field:"description",headerSort: false, formatter: "html"}
- ]
- });
- //documents.gettbldata();
- },
- // gettbldata: function (){
- // req.reqdata("POST","db.cgi",{"get":"documentlist","filter":"folder='documents' "},documents.loadtbldata);
- // },
- // loadtbldata:function (data){
- // //console.logconsole.log(data)
- // if (data && data.sqldata){
- // documents.tbl.setData(data.sqldata);
- // }
- // },
- afterformsaved : function (){
- app.loadpage('module/[% module %]/index.html');
- return false;
- },
- remove: function(id){
- if (confirm("Bass du secher dass du dëst Document läschen wëlls?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_documents_id":id},documents.closeeditdialog);
- }
- return false;
- },
- edit: function(id){
- req.reqdata("POST","db.cgi",{"get":"documents","filter":"id='"+ id + "'"},documents.openedit);
- return false;
- },
- add: function(){
- opendlgfileupload('documents','download_document','');
- return false;
- },
- openedit: function(data){
- //console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_documents');
- for (var f in frm){
- //console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].classList.contains("richeditarea")){
- //console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- document.getElementById('dlgeditdocument').style.display='block';
- }
- return false;
-},
-closeeditdialog: function(){
- document.getElementById('dlgeditdocument').style.display='none';
- app.loadpage('module/[% module %]/index.html');
-},
-thumbformatter: function(cell, formatterParams, onRendered){
- if (cell.getValue()){
- return '<img src="' + cell.getValue() + '" style="width: 64px;"/>';
- }
- return '';
-}
-}
\ No newline at end of file
+++ /dev/null
-function initpage(){
- tinymce.init({
- selector: '.richeditarea',
- branding: false,
- menubar:false,
- statusbar: false,
- forced_root_block : '',
- plugins: 'searchreplace autolink directionality visualblocks visualchars advlist lists textcolor colorpicker textpattern',
- toolbar: 'bold italic underline strikethrough forecolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat',
- image_advtab: true
- // //console.log(editor.getContent());
- });
-}
-
-afterformsaved = function (){
- parent.admin.loadpage('module/[% module %]/index.html');
- return false;
-}
-
-function deletedocument(id){
- if (confirm("Bass du secher dass du dëst Document läschen wëlls?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_documents_id":id},closeeditdialog);
- }
- return false;
-}
-
-function editdocument(id){
- req.reqdata("POST","db.cgi",{"get":"documents","filter":"id="+ id},openedit);
- return false;
-}
-
-function openedit(data){
- //console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_documents');
- for (var f in frm){
- //console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].classList.contains("richeditarea")){
- //console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- document.getElementById('dlgeditdocument').style.display='block';
- }
- return false;
-}
-
-function closeeditdialog(){
- document.getElementById('dlgeditdocument').style.display='none';
- parent.admin.loadpage('module/[% module %]/index.html');
-}
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="display-container animate-opacity panel" id="pnl_events">
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Event-Kalenner</div>
- <button class="bar-item toolbarbtn center" onclick="events.show();"><span class="icon-calendar" stlye="font-size: 20px;"></span>Events</button>
- <!--<button class="bar-item toolbarbtn center" onclick="seasons.show();"><span class="icon-season" stlye="font-size: 20px;"></span>Saisonen</button>-->
- <button class="bar-item toolbarbtn center" onclick="vacancies.show();"><span class="icon-Vacancy" stlye="font-size: 20px;"></span>Vakanzen</button>
- <button class="bar-item toolbarbtn right text-red" onclick="events.remove();"><span class="icon-trash" stlye="font-size: 20px;"></span>läschen</button>
- <button class="bar-item toolbarbtn right" onclick="events.edit();"><span class="icon-edit" stlye="font-size: 20px;"></span>edit.</button>
- <button class="bar-item toolbarbtn right" onclick="events.add();"><span class="icon-add" stlye="font-size: 20px;"></span>nei</button>
- </div>
- <div id="tbl_calendar"></div>
-</div>
-<div class="display-container animate-opacity panel" id="pnl_vacancies" style="display: none;">
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Vakanzen-Kalenner</div>
- <button class="bar-item toolbarbtn center" onclick="events.show();"><span class="icon-calendar" stlye="font-size: 20px;"></span>Events</button>
- <!--<button class="bar-item toolbarbtn center" onclick="seasons.show();"><span class="icon-season" stlye="font-size: 20px;"></span>Saisonen</button>-->
- <button class="bar-item toolbarbtn center" onclick="vacancies.show();"><span class="icon-Vacancy" stlye="font-size: 20px;"></span>Vakanzen</button>
- <button class="bar-item toolbarbtn right text-red" onclick="vacancies.remove();"><span class="icon-trash" stlye="font-size: 20px;"></span>läschen</button>
- <button class="bar-item toolbarbtn right" onclick="vacancies.edit();"><span class="icon-edit" stlye="font-size: 20px;"></span>edit.</button>
- <button class="bar-item toolbarbtn right" onclick="vacancies.add();"><span class="icon-add" stlye="font-size: 20px;"></span>nei</button>
- </div>
- <div id="tbl_vacancies"></div>
-</div>
-
-
-<div id="dlgevents" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container moduletoolbar">
- <span onclick="document.getElementById('dlgevents').style.display='none'; return false;"
- class="button display-topright"><span class="icon-close"></span></span>
- <h3 id="dlgpublish_title">Event</h3>
- </header>
- <div class="container">
- <form id="frm_events">
- [% fieldhidden("id","events","ident",'') %]
- [% fieldselectbox("season","events","Saison",'half','','') %]
- [% fieldselectbox("id_eventgroup","events","Kategorie",'half','','') %]
- [% fieldeditbox("title","events","Titel",'','','') %]
- [% fielddatebox("startdate","events","Datum vun",'half','','') %]
- [% fielddatebox("enddate","events","Datum bis",'half','','') %]
- [% fieldrichtextarea("description","events","Beschreiwung",'','','150px','') %]
- </form>
- </div>
- <footer class="container right-align dark-grey" style="margin-top: 10px;">
- <button class="button theme-light border" onclick="document.getElementById('dlgevents').style.display='none'; return false;">Oofbriechen</button>
- <button class="button blue-grey margin right-align" onclick="saveform('events',closeeditdialog);return false;">spaicheren</button>
- </footer>
- </div>
-</div>
-<script type="text/javascript" src="events/[% pagename %].js?v=[% vstamp %]"></script>
-<script type="text/javascript" src="events/vacancies.js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-
-let tbl = null;
-let sel_id_eventgroup = null;
-
-function initpage(){
-
- events.inittable();
- events.initform();
-}
-
-let events = {
- tbl: null,
- choices:{"id_eventgroup":{},"id_season":{}},
- initform: function(){
- flatpickr(".datefield",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- "locale": "fr",
- });
- tinymce.init({
- selector: '.richeditarea',
- plugins: 'paste importcss searchreplace autolink directionality code visualblocks visualchars link charmap advlist lists textpattern noneditable charmap emoticons',
-
- menubar: false,
- statusbar: false,
- toolbar: 'undo redo | bold italic underline strikethrough | fontsizeselect | alignleft aligncenter alignright alignjustify | numlist bullist | forecolor removeformat | charmap emoticons | link',
- toolbar_sticky: true,
- height: 150,
- language: 'de',
- content_css: [
- '[% abspath %][% staticpath %]css/theme.css'
- ],
- forced_root_block : '',
- branding: false,
- importcss_append: true,
- contextmenu: "link",
- });
- // sel_id_eventgroup = new Choices('#id_eventgroup',{
- // searchEnabled: false,
- // itemSelectText: 'auswielen...',
- // removeItemButton: true,
- // choices :[]
- // });
- events.getseasons();
- events.getcategories();
- },
- inittable: function(){
-
- events.tbl = new Tabulator("#tbl_calendar", {
- headerFilterPlaceholder:"filter...",
- height: "calc(100vh - 125px)",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- // responsiveLayout:"collapse",
- autoResize:true,
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- columns:[
- {title:"Saison", field:"season", sorter:"string",headerFilter:"input", width: 110},
- {title:"Kategorie", field:"groupname", sorter:"string",headerFilter:"input",width: 130},
- {title:"vun", field:"dspstartdate", sorter:"string",headerFilter:"input", width: 115},
- {title:"bis", field:"dspenddate", sorter:"string",headerFilter:"input", width: 115},
- {title:"Titel", field:"title", sorter:"string",headerFilter:"input"},
- {title:"Beschreiwung", field:"description",formatter:"html", sorter:"string",headerFilter:"input"},
- ],
- initialHeaderFilter:[
- {field:"season", value:"[% season %]"} //set the initial value of the header filter to "red"
- ]
-
- //autoColumns:true,
- });
-
- events.gettbldata();
- },
- gettbldata: function (){
- req.reqdata("POST","db.cgi",{"get":"eventlist"},events.loadtbldata);
- },
- loadtbldata:function (data){
- //console.logconsole.log(data)
- if (data && data.sqldata){
- events.tbl.setData(data.sqldata);
- }
- },
- closeeditdialog: function(){
- gettbldata();
- document.getElementById('dlgevents').style.display='none';
- gettbldata();
- },
- add:function (){
- let frm = document.querySelectorAll('.data_events');
- for (let f in frm){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || (frm[f].tagName == 'TEXTAREA')){
- if (frm[f].classList.contains("datefield")){
- if (frm[f]._flatpickr){
- frm[f]._flatpickr.clear();
- }
- } else if (frm[f].classList.contains("richeditarea")){
- //console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent("");
- }else {
- frm[f].value="";
-
- }
-
- }
- }
-
-
- document.getElementById("dlgevents").style.display = 'block';
-
- },
- edit: function (){
- let udata = events.tbl.getSelectedData();
- let uid = udata[0].id;
- //console.log(uid);
- req.reqdata("POST","db.cgi",{"get":"eventlist","filter":"id=" + uid},events.fillformevents);
-
- },
-
- fillformevents:function (data){
- //console.log(data);
- if (data && data.sqldata){
- let frm = document.querySelectorAll('.data_events');
- for (let f in frm){
- //console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].classList.contains("richeditarea")){
- // console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else if (frm[f].id == 'id_eventgroup'){
- sel_id_eventgroup.setChoiceByValue(data.sqldata[0][frm[f].id]);
- }
- else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- document.getElementById("dlgevents").style.display = 'block';
-
-
- }
- },
-
-
- remove: function (){
- let udata = events.tbl.getSelectedData();
- let uid = udata[0].id;
- //console.log(tbl.getSelectedData());
- if (confirm("Bass du secher dass déi ausgewielten Event läschen wells?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_event_id":udata[0].id},events.gettbldata);
- }
- },
- getseasons:function (){
- req.reqdata("POST","db.cgi",{"get":"seasons"},events.fillseasons);
- return false;
- },
-
- fillseasons: function (data){
-
- let seasonlist = [];
- let seasonidlist = {"":""};
- if (data && data.sqldata){
- for (let i in data.sqldata){
- seasonlist.push({value:data.sqldata[i].season,label:data.sqldata[i].season});
- seasonidlist[data.sqldata[i].id] = data.sqldata[i].season;
- }
- }
- if (document.getElementById('season').tagName == "SELECT"){
- sel_id_season = new Choices('#season',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- choices : seasonlist,
- shouldSort: false,
- shouldSortItems: false
- });
- sel_id_season.setChoiceByValue(document.getElementById("season").dataset.selected);
-
- } else {
- document.getElementById('season').value = seasonidlist[document.getElementById('season').value];
- }
- return false;
- },
-
- getcategories: function (){
- req.reqdata("POST","db.cgi",{"get":"eventgroups"},events.fillcategories);
- return false;
- },
-
- fillcategories:function (data){
-
- let catlist = [];
- if (data && data.sqldata){
- for (let i in data.sqldata){
- catlist.push({value:data.sqldata[i].id,label:data.sqldata[i].groupname});
- }
- }
- sel_id_eventgroup.setChoices(catlist, 'value', 'label', true);
-
- return false;
- }
-}
-
-// let seasons = {
-// tbl: null,
-// init: function(){
-
-// },
-// gettbldata: function (){
-// req.reqdata("POST","db.cgi",{"get":"seasons"},seasons.loadtbldata);
-// },
-// loadtbldata:function (data){
-// //console.logconsole.log(data)
-// if (data && data.sqldata){
-// events.tbl.setData(data.sqldata);
-// }
-// },
-
-// }
-
-
-
-
-
+++ /dev/null
-
-
-let vacanies = {
-
-}
-// var tbl = null;
-// var sel_id_eventgroup = null;
-// function initpage(){
-// flatpickr(".datefield",{altInput: true,
-// altFormat: "d.m.Y",
-// dateFormat: "Y-m-d",
-// "locale": "fr",
-// });
-// sel_id_eventgroup = new Choices('#id_eventgroup',{
-// searchEnabled: false,
-// itemSelectText: 'auswielen...',
-// removeItemButton: true,
-// choices :[]
-// });
-
-// tinymce.init({
-// selector: '.richeditarea',
-// plugins: 'paste importcss searchreplace autolink autoresize directionality code visualblocks visualchars link charmap advlist lists textpattern noneditable charmap emoticons',
-
-// menubar: false,
-// statusbar: false,
-// toolbar: 'undo redo | bold italic underline strikethrough | fontsizeselect | alignleft aligncenter alignright alignjustify | numlist bullist | forecolor removeformat | charmap emoticons | link',
-// toolbar_sticky: true,
-// min_height: 350,
-// language: 'de',
-// content_css: [
-// '[% abspath %]css/w3pro.css'
-// ],
-// forced_root_block : '',
-// branding: false,
-// importcss_append: true,
-// contextmenu: "link",
-// });
-
-// tbl = new Tabulator("#tbl_calendar", {
-// headerFilterPlaceholder:"filter...",
-// height: "93vh",
-// selectable:1,
-// selectablePersistence:false, // disable rolling selection
-// responsiveLayout:"collapse",
-// autoResize:true,
-// layout:"fitColumns",
-// resizableRows:true,
-// columnHeaderSortMulti:false,
-// columns:[
-// {title:"Saison", field:"season", sorter:"string",headerFilter:"input", width: 110},
-// {title:"Kategorie", field:"groupname", sorter:"string",headerFilter:"input",width: 130},
-// {title:"vun", field:"dspstartdate", sorter:"string",headerFilter:"input", width: 115},
-// {title:"bis", field:"dspenddate", sorter:"string",headerFilter:"input", width: 115},
-// {title:"Titel", field:"title", sorter:"string",headerFilter:"input"},
-// {title:"Beschreiwung", field:"description",formatter:"html", sorter:"string",headerFilter:"input"},
-// ],
-// initialHeaderFilter:[
-// {field:"season", value:"[% season %]"} //set the initial value of the header filter to "red"
-// ]
-
-// //autoColumns:true,
-// });
-// getseasons();
-// getcategories();
-// gettbldata();
-// }
-
-// function gettbldata(){
-// req.reqdata("POST","db.cgi",{"get":"eventlist"},loadtbldata);
-// }
-
-// function loadtbldata(data){
-// //console.logconsole.log(data)
-// if (data && data.sqldata){
-// tbl.setData(data.sqldata);
-// }
-// }
-
-// function closeeditdialog(){
-// gettbldata();
-// document.getElementById('dlgevents').style.display='none';
-// gettbldata();
-// }
-
-// function add(){
-// var frm = document.querySelectorAll('.data_events');
-// for (var f in frm){
-// if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || (frm[f].tagName == 'TEXTAREA')){
-// if (frm[f].classList.contains("datefield")){
-// if (frm[f]._flatpickr){
-// frm[f]._flatpickr.clear();
-// }
-// } else if (frm[f].classList.contains("richeditarea")){
-// //console.log(frm[f].id + " is richeditarea");
-// tinymce.get(frm[f].id).setContent("");
-// }else {
-// frm[f].value="";
-
-// }
-
-// }
-// }
-
-
-// document.getElementById("dlgevents").style.display = 'block';
-
-// }
-
-// function edit(){
-// var udata = tbl.getSelectedData();
-// var uid = udata[0].id;
-// //console.log(uid);
-// req.reqdata("POST","db.cgi",{"get":"eventlist","filter":"id=" + uid},fillformevents);
-
-// }
-
-// function fillformevents(data){
-// //console.log(data);
-// if (data && data.sqldata){
-// var frm = document.querySelectorAll('.data_events');
-// for (var f in frm){
-// //console.log(frm[f].classList);
-// if (data.sqldata[0][frm[f].id]){
-// if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
-// if (frm[f].classList.contains("datefield")){
-// frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
-// } else if (frm[f].classList.contains("richeditarea")){
-// // console.log(frm[f].id + " is richeditarea");
-// tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
-// } else if (frm[f].id == 'id_eventgroup'){
-// sel_id_eventgroup.setChoiceByValue(data.sqldata[0][frm[f].id]);
-// }
-// else {
-// frm[f].value=data.sqldata[0][frm[f].id];
-// }
-
-// }
-// }
-// }
-// document.getElementById("dlgevents").style.display = 'block';
-
-
-// }
-// }
-
-
-// function remove(){
-// var udata = tbl.getSelectedData();
-// var uid = udata[0].id;
-// //console.log(tbl.getSelectedData());
-// if (confirm("Bass du secher dass déi ausgewielten Event läschen wells?")){
-// req.reqdata("POST","db.cgi",{"del":"1","ident_event_id":udata[0].id},gettbldata);
-// }
-// }
-
-// function getseasons(){
-// req.reqdata("POST","db.cgi",{"get":"seasons"},fillseasons);
-// return false;
-// }
-
-// function fillseasons(data){
-
-// var seasonlist = [];
-// var seasonidlist = {"":""};
-// if (data && data.sqldata){
-// for (var i in data.sqldata){
-// seasonlist.push({value:data.sqldata[i].season,label:data.sqldata[i].season});
-// seasonidlist[data.sqldata[i].id] = data.sqldata[i].season;
-// }
-// }
-// if (document.getElementById('season').tagName == "SELECT"){
-// sel_id_season = new Choices('#season',{
-// searchEnabled: false,
-// itemSelectText: 'auswielen...',
-// choices : seasonlist,
-// shouldSort: false,
-// shouldSortItems: false
-// });
-// sel_id_season.setChoiceByValue(document.getElementById("season").dataset.selected);
-
-// } else {
-// document.getElementById('season').value = seasonidlist[document.getElementById('season').value];
-// }
-// return false;
-// }
-
-// function getcategories(){
-// req.reqdata("POST","db.cgi",{"get":"eventgroups"},fillcategories);
-// return false;
-// }
-
-// function fillcategories(data){
-
-// var catlist = [];
-// if (data && data.sqldata){
-// for (var i in data.sqldata){
-// catlist.push({value:data.sqldata[i].id,label:data.sqldata[i].groupname});
-// }
-// }
-// sel_id_eventgroup.setChoices(catlist, 'value', 'label', true);
-
-// return false;
-// }
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="display-container">
- <div class="bar theme-light">
- <button onclick="app.loadpage('module/[% module %]/transfer.html?doctype=newlicense','Nei Lizenz');" class=" button bar-item blue-grey border">Nei Lizenz</button>
- <button onclick="app.loadpage('module/[% module %]/transfer.html?doctype=transfer','Transfer');" class=" button blue-grey bar-item border">Transfer</button>
- <button onclick="app.loadpage('module/[% module %]/transfer.html?doctype=transferfree','Transfer');" class=" button blue-grey bar-item border">Transfer Libre</button>
- <button onclick="app.loadpage('module/[% module %]/transfer.html?doctype=transferwinter','Wanter Transfer');" class=" button blue-grey bar-item border">Wanter Transfer</button>
- <button class="bar-item button border right red" onclick="remove();"><img src="[% abspath%]img/icons/remove_white.svg" style="height: 24px;"/></button>
- <button class="bar-item button border right blue-grey" onclick="edit();"><img src="[% abspath%]img/icons/edit_white.svg" style="height: 24px;"/></button>
- </div>
- <div class="container" id="maintable">
- <div id="tbl_transfer"></div>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-var tbl = null;
-function initpage(){
- tbl = new Tabulator("#tbl_transfer", {
- height: "100vh",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- columns:[
- {title:"Club", field:"newclub",headerFilter:"input"},
- {title:"Numm", field:"surname",headerFilter:"input"},
- {title:"Virnumm", field:"prename",headerFilter:"input"},
- {title:"Type Demande", field:"documenttype",headerFilter:"input"},
- {title:"Datum", field:"statusdate", sorter:"date"},
- {title:"Status", field:"status", sorter:"string",formatter:"html"}
- ]
-});
-gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"transferlist"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-
-
-function edit(){
- var udata = tbl.getSelectedData();
- //var uid = udata[0].id;
- console.log(udata);
- app.loadpage('module/[% module %]/transfer.html?doctype=' + udata[0].documenttype + "&id=" + udata[0].id);
-}
-
-function remove(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- if (confirm("Bass du secher dass den ausgewielten Transfer läschen wells?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_transfer_id":udata[0].id},gettbldata);
- }
-}
\ No newline at end of file
+++ /dev/null
-
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <div class="bar-item"><img src="[% abspath %][% staticpath %]img/ledficon.svg" style="height: 40px"/></div>
- <!--<a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>-->
- <div class="bar-item PageHeadTitle">Lëtzebuerger Electronique Darts Federation</div>
- <a class="bar-item toolbarbtn right" href="javascript:app.logout(); "><span class="icon-logout" style="font-size: 24px;"></span>Logout</a>
- </div>
-</div>
-<div class="display-container">
- <div class="container">
- <div class="panel" id="msg"></div>
- </div>
- <div class="card">
- <header class="container grey">
- <span style="fot-weight: bold">Site</span>
- </header>
- <div class="bar">
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]news.html"><span class="icon-licplus" style="font-size: 24px;"/></span>News</a>
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]calendar.html"><span class="icon-licrenew" style="font-size: 24px;"/></span>Calendrier</a>
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]clubs.html"><span class="icon-club" style="font-size: 24px;"/></span>Clubs</a>
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]documents.html"><span class="icon-usergroup" style="font-size: 24px;"/></span>Documents</a>
-
- </div>
- </div>
-
- <div class="card">
- <header class="container grey">
- <h2>Administration</h2>
- </header>
- <div class="bar">
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]site/staticfiles.html"><span class="icon-licenses" style="font-size: 24px;"/></span>Static Files</a>
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]site/pages.html"><span class="icon-licrenew" style="font-size: 24px;"/></span>Webpages</a>
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]site/navigation.html"><span class="icon-drawer" style="font-size: 24px;"/></span>Navigation</a>
-
- </div>
- </div>
-
- <div class="card">
- <header class="container grey">
- <h2>Access</h2>
- </header>
- <div class="bar">
- <a class="bar-item toolbarbtn text-black" href="[% abspath %]admin/users.html"><span class="icon-sportresult" style="font-size: 24px;"/></span>Users</a>
- </div>
- </div>
- <div class="card">
- <header class="container grey">
- <h2>Profil</h2>
- </header>
- <div class="bar">
- <a class="bar-item toolbarbtn text-black" href=""><span class="icon-profile" style="font-size: 24px;"/></span>Perséinlech Donnéen</a>
- <a class="bar-item toolbarbtn text-black" href=""><span class="icon-access" style="font-size: 24px;"/></span>Passwuert änneren</a>
- <a class="bar-item toolbarbtn text-black" href=""><span class="icon-email" style="font-size: 24px;"/></span>E-Mail änneren</a>
-
- </div>
- </div>
-
-</div>
-<script type="text/javascript" src="index/[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
-
-}
\ No newline at end of file
+++ /dev/null
-function initpage(){
-
-}
\ No newline at end of file
+++ /dev/null
-
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Lizenzen</div>
- </div>
-</div>
-
-<div class="display-container">
-<div id="clublist" class="container">
-<ul class="ul">
-[% FOREACH clubs=dksdb.query("select cl.id,cl.club,replace(cl.club,'''','\\''') as clublink,cl.link,cl.logo,count(distinct(lic.id)) as licenses,count(distinct(cst.id)) as teams
-from vw_clublist cl
-left join vw_licenselist lic on (cl.id=lic.id_club)
-left join vw_locationlist loc on (cl.id = loc.id_club)
-left join (select ct.* from csteams ct join csseasonranking csr on (csr.id_team=ct.id and csr.id_season=2)) cst on (cl.id=cst.id_club)
-where lic.status='aktiv' and (cl.status is null or cl.status='individual')
-group by cl.id,cl.club,cl.link,cl.logo order by cl.club;"); %]
-
- <li class="bar hover-grey" onclick="app.loadpage('module/[% module %]/licenses.html?id=[% clubs.id %]','[% clubs.clublink %]');" style="cursor: pointer;">
- <img src="[% abspath %]../media/clubs/[% IF clubs.logo %][% clubs.logo %][% ELSE %]logo_club.png[% END %]" alt="Logo [% clubs.club %]" class="bar-item" style="margin-right: 15px; width: 100px;">
- <div class="bar-item ">
- <span class="xlarge">[% clubs.club %]</span>
- <strong>Lizenzen:</strong> <span>[% clubs.licenses %]</span> <strong>Équipen:</strong> <span>[% clubs.teams %]</span>
- </div>
- </li>
-
-[% END %]
-</ul>
-</div>
-</div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
-
+++ /dev/null
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Lizenz-Ufroën</div>
- </div>
-</div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
-
-}
\ No newline at end of file
+++ /dev/null
-<div class="display-container margin">
- <div class="row">
-
-[% qclubs = dksdb.prepare("select ml.id,ml.link,ml.prename,ml.surname,ml.status,ll.license,ml.nationality,to_char(ml.birthday,'DD.MM.YYYY') as dspbirthday,ml.profile_photo,extract(epoch from ml.modified) as modified from vw_licenselist ll join members ml on (ll.id_member=ml.id) where ll.id_club=? and ll.yearin is not null and ll.yearout is null
-order by ml.surname,prename;") %]
-[% FOREACH cl = qclubs.execute(params.id) %]
-
-<div class="card margin">
- <div class="container theme padding-small"><h3>[% cl.prename %] [% cl.surname %]</h3></div>
- <div class="row">
- <div class="container half padding-24 border-right"><img src="[% abspath %][% IF cl.profile_photo %]data/members/[% cl.profile_photo %]?upd=[% cl.modified %][% ELSE %]data/noprofileimg.png[% END %]" style="height: 200px;" />
- <table class="table"><tbody>
- [% IF cl.status == "suspended" %]<tr><th colspan="2"><span class="text-red">License suspendue</span></th></tr>[% END %]
-
- <tr><th style="width: 160px;"><strong>Lizenz: </strong></th><td>[% cl.license %]</td></tr>
- <tr><th><strong>Nationalitéit: </strong></th><td>[% cl.nationality %]</td></tr>
- <tr><th><strong>Geburtsdatum: </strong></th><td>[% cl.dspbirthday %]</td></tr>
- </tbody></table>
- </div>
- <div class="container half padding-24" >
- <table class="table"><tbody>
- [% licenses = dksdb.prepare("select lic.*,cl.club,cl.status as clubstatus from licenses lic left join clubs cl on (lic.id_club=cl.id) where id_member=? order by lic.yearin desc,lic.yearout desc;") %]
- [% FOREACH lic = dksdb.execute(cl.id) %]
- <tr>
- <td style="width: 170px;">[% lic.club %]</td>
- <td class="text-bold"><strong>[% lic.yearin %] [% IF lic.yearout %] - [% lic.yearout %][% END %]</strong></td>
-
- </tr>
- [% END %]
- </tbody>
- </table>
- </div>
-</div>
-</div>
-
-[% END %]
-</div>
-</div>
-<script>
-[% IF params.id %]
-var clubid=[% params.id %];
-[% END %]
-</script>
-
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
+++ /dev/null
-var tbl = null;
-var tbllic = null;
-var idmember=null;
-var iduser="[% session.id %]";
-function initpage(){
-
- flatpickr(".datefield",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- "locale": "fr",
- });
- tbl = new Tabulator("#tbl_members", {
- height: "100vh",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- rowClick:function(e, row){
- var data = row.getData();
- //console.log(data);
- idmember=data.id;
- //console.log(idmember);
- loadmemberdata(idmember);
- //e - the click event object
- //row - row component
- },
- columns:[
- // {title:"Club", field:"club", sorter:"string",formatter:"html",headerFilter:"input"},
- {title:"Numm", field:"surname", sorter:"string",headerFilter:"input"},
- {title:"Virnumm", field:"prename", sorter:"string",headerFilter:"input"},
- // {title:"Status", field:"status", sorter:"string",headerFilter:"input"},
- ],
- initialHeaderFilter:[
- {field:"status", value:"active"} //set the initial value of the header filter to "red"
- ]
-
- //autoColumns:true,
-});
-tbllic = new Tabulator("#tbl_license", {
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- // rowClick:function(e, row){
- // var data = row.getData();
- // console.log(data);
- // idmember=row.id;
- // loadmemberdata(row.id);
- // //e - the click event object
- // //row - row component
- // },
- columns:[
- {title:"Lizenz", field:"license", sorter:"number"},
- {title:"vun", field:"yearin", sorter:"number"},
- {title:"bis", field:"yearout", sorter:"number"},
- {title:"Club", field:"club", sorter:"string",formatter:"html"}
- ],
- //autoColumns:true,
-});
- gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"memberlist","filter":"id_club in (select id_club from vw_memberlist where id="+ iduser +") "},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function loadmemberdata(id){
- //console.log(id);
- req.reqdata("POST","db.cgi",{"get":"memberdata","filter":"id="+id},fillformmember);
- req.reqdata("POST","db.cgi",{"get":"licenselist","filter":"id_member="+id},filllicensetable);
- req.reqdata("POST","db.cgi",{"get":"userstatus","filter":"id="+id},filluserstaus);
-}
-
-function fillformmember(data){
- //console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_members');
- for (var f in frm){
- //console.log(frm[f].id);
- if (data.sqldata[0][frm[f].id]){
- //console.log(frm[f].tagName + " " + frm[f].type + " " + frm[f].id);
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- //frm[f].flatpickr.setDate(data.sqldata[0][frm[f].id])
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- }
-}
-
-function filllicensetable(data){
- //console.log("License DATA");
- //console.log(data.sqldata);
- if (data && data.sqldata){
- tbllic.setData(data.sqldata);
- }
-}
-
-function filluserstaus(data){
-
-}
+++ /dev/null
-
-[% PROCESS macro/fields.tt %]
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Club-Memberen</div>
- </div>
-</div>
-<div class="display-container">
-
- <div class="row">
- <div class="col l6">
- <div id="tbl_members"></div>
- </div>
- <div class="col l6 " style="height: 100vh; overflow-y: scroll;">
- [% #tabletoolbar('member') %]
- <div class="container padding-24 card">
- <form>
- <h3>Perséinlech Donnéen</h3>
- <div class="row-padding">
- [% fieldeditbox('surname','members','Numm','half','') %]
- [% fieldeditbox('prename','members','Virnumm','half','') %]
- [% fieldeditbox('address','members','Address','','') %]
- [% fieldeditbox('zip','members','CP','quarter','') %]
- [% fieldeditbox('city','members','Uerschaft','threequarter','') %]
- [% fieldeditbox('country','members','Land','third','') %]
- [% fieldeditbox('email','members','E-Mail','third','','') %]
- [% fieldeditbox('phone','members','Telefon','third','') %]
- [% fieldeditbox('nationality','members','Nationalitéit','third','') %]
- [% fielddatebox('birthday','members','Gebuertsdatum','third','') %]
- [% fielddatebox('entrydate','members','Datum 1st Lizenz','third','') %]
- </div>
- </div>
- <div class="container padding-24 card">
- <h3>Photo</h3>
- <div class="container">
- <div class="cell-row">
- <div class="container cell">
- <h4>Validéiert Photo</h4>
- <img src="[% abspath %]img/no-image-icon.png" style="width: 50%;" />
- </div>
-
- <div class="container cell">
- <h4>Nei Photo</h4>
- <img src="[% abspath %]img/no-image-icon.png" style="width: 50%;" />
- <input type="file" />
- <button class="button green">Validéieren</button><button class="button red">Refuséieren</button>
- </div>
- </div>
- </div>
- </div>
- <div class="container padding-24 card">
- <h3>Benotzer-Kont</h3>
- <div class="container">
- <div><strong>Status</strong><span id="userstatus"></span></div>
- <button class="button green">aktivéieren</button>
- <button class="button red">blockéieren</button>
- <button class="button orange">neit Passwuert schecken</button>
- </div>
- </div>
- <div class="container card">
- <h3>Lizenz</h3>
- <div class="container">
- <div id="tbl_license"></div>
- </div>
- </div>
- </div>
- </div>
- <script>
-[% IF params.id %]
-var clubid=[% params.id %];
-[% END %]
-</script>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-function initpage(){
- newlicense.initform();
-}
-
-let newlicense = {
- current_panel: "basedata",
- selects:{"id_club":null,"country":null},
- initform: function(){
- newlicense.selects["id_club"] = new SlimSelect({
- select: "#id_club",
- //[% IF session.usergroups.search('fld') != 1 %]
- disabled : true,
- //[% END %]
- showSearch: false
- });
- newlicense.selects["country"] = new SlimSelect({
- select: "#country",
- showSearch: false
- });
- flatpickr("#birthday",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- "locale": "fr",
- weekNumbers: false
- });
- newlicense.getclubs();
- newlicense.fillcountries();
- },
- // viewpanel(pnlname){
- // if (newlicense.current_panel == 'basedata'){
-
- // }
- // if (newlicense.current_panel == 'photo'){
-
- // }
- // if (newlicense.current_panel == 'signature'){
-
- // }
- // newlicense.current_panel = pnlname;
- // app.viewpanel(pnlname);
- // return false;
- // },
- save: function(){
-
- },
-
- fillcountries: function(){
- let countries = [{"value":"LUX","text":"Lëtzebuerg"},{"value":"DEU","text":"Daitschland"},{"value":"FRA","text":"Frankraich"},{"value":"BEL","text":"Belge"},{"value":"NED","text":"Holland"}];
- form.fillselectlist(newlicense.selects["country"],countries,"value","text");
- },
- getclubs: function(){
- req.reqdata("POST","db.cgi",{"get":"clublist","filter":" status is null;"},newlicense.fillclubs);
- },
- fillclubs: function(data){
- console.log(data);
- form.fillselectlist(newlicense.selects["id_club"],data.sqldata,"id","club",[% session.id_club %]);
- }
-}
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Nei Lizenz</div>
- </div>
-</div>
-<div class="display-container" style="display: block; height: calc(100vh - 60px); overflow-y: scroll;">
- <form id="frm_newlicense">
- [% fieldselectbox('id_club','transfer','Club','','') %]
- <div class="bar sectiontoolbar">
- <div class="bar-item SectionHeadTitle">Perséinlech Donnéeen vum Demandeur</div>
- </div>
- <div class="container">
- [% fieldhidden('id','transfer','ident','') %]
- [% fieldhidden('documenttype','transfer','','newlicense') %]
- [% fieldeditbox('surname','transfer','Numm','half','') %]
- [% fieldeditbox('prename','transfer','Virnumm','half','') %]
- [% fieldeditbox('address','transfer','Address','','') %]
- [% fieldeditbox('zip','transfer','CP','quarter','') %]
- [% fieldeditbox('city','transfer','Uerschaft','half','') %]
- [% fieldselectbox('country','transfer','Land','quarter','') %]
- [% fieldeditbox('phone','transfer','Telefon','half','') %]
- [% fieldeditbox('email','transfer','E-Mail','half','') %]
- [% fieldeditbox('nationality','transfer','Nationalitéit','half','') %]
- [% fielddatebox('birthday','transfer','Gebuertsdatum','half','') %]
-
- </div>
-
-
- <div class="bar sectiontoolbar">
- <div class="bar-item SectionHeadTitle">Photo</div>
- </div>
- <div class="bar sectiontoolbar">
- <div class="bar-item SectionHeadTitle">Ennerschrëften</div>
- </div>
- <div class="bar footertoolbar">
- <button class="bar-item toolbarbtn right" onclick="newlicense.send();return false;"><span class="icon-send"></span>Lizenz ufroën</button>
- <button class="bar-item toolbarbtn right" onclick="newlicense.save();return false;"><span class="icon-save"></span>Spaicheren</button>
- <button class="bar-item toolbarbtn right" onclick="newlicense.downloadpdf();return false;"><span class="icon-pdf"></span>PDF eroofluden</button>
- </div>
-
- </form>
-</div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-[% udef = 0 %]
-
-[% puserdef = dksdb.prepare("select ml.id_user from vw_licenselist ll join members ml on (ll.id_member=ml.id) where ll.id_club=? and ml.id_user=? and ll.yearin is not null and ll.yearout is null;") %]
-[% FOREACH ruserdef = puserdef.execute(params.id,session.id) %]
-[% IF ruserdef.id_user == session.id %]
- [% udef = ruserdef.id_user %]
-[% END %]
-[% END %]
-<header class="top bar border-bottom theme-light">
- <button class="bar-item button border" onclick="loadlicenses();">Lizenzen</button>
- <button class="bar-item button border" onclick="loadclub();">Club</button>
-[% IF (session.othergroups.search('club') == 1 && udef == session.id) %]
-
- <button class="bar-item button border" onclick="loadmembers();">Memberen</button>
-
-[% END %]
-</header>
+++ /dev/null
-
-var editor_id="[% session.id %]";
-
-
-var sel_newclub;
-function initpage(){
- console.log("Init Transfer");
- flatpickr(".datefield",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- "locale": "fr",
- });
- // sel_newclub = new Choices('#id_newclub',{
- // searchEnabled: false,
- // itemSelectText: 'auswielen...',
- // choices : []
- // });
- if (document.getElementById("id_newclub")){
- var nclid = document.getElementById("id_newclub");
- if (nclid.tagName == "SELECT"){
- getclublist();
- }
- }
- if (document.getElementById("id").value != ""){
- gettransferdata(document.getElementById("id").value);
- }
-
-
-}
-
-function getclublist(){
- console.log("load clublist 1");
- //req.reqdata("POST","db.cgi","locationlist","filter":"id_club=" + clubid +""},loadtbldata);
- req.reqdata("POST","db.cgi",{"get":"clublist","filter":"status is null or status='individual'"},loadclublist);
-}
-function loadclublist(data){
- document.getElementById("id_newclub").innerHTML ='';
- console.log("load clublist");
- var xlist = [];
- var strlist = "";
- if (data && data.sqldata){
- for (var i in data.sqldata){
- strlist += '<option value="'+data.sqldata[i].id+'">'+data.sqldata[i].club+'</option>';
- //xlist.push({value:data.sqldata[i].id,label:data.sqldata[i].club });
- }
- }
- document.getElementById("id_newclub").innerHTML = strlist;
- //sel_newclub.setChoices(xlist, 'value', 'label', true);
-}
-
-function gettransferdata(tid){
- req.reqdata("POST","db.cgi",{"get":"transferdata","filter":"id='"+ tid +"'"},filltransferform);
-}
-
-function filltransferform(data){
- console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_transfer');
- for (var f in frm){
- console.log(frm[f].id);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- }
- else if (frm[f].id == "id_newclub"){
- if (sel_newclub){
- console.log("set choice")
- sel_newclub.setChoiceByValue(data.sqldata[0][frm[f].id]);
- }else {
- console.log("set select value");
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
-
- }
- else if (frm[f].classList.contains("richeditarea")){
-
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- //document.getElementById("title").addEventListener("change", onchangetitle);
- }
-}
-
-function saveuserdata(){
- var flds = [];
- flds = getformcontent('requesterclub',flds);
- flds = getformcontent('userdata',flds);
- flds["fn"] = "saveform";
- console.log(flds);
- req.reqdata("POST","index.cgi",flds,afteruserdatasaved);
-
-}
-
-function afteruserdatasaved(data){
- console.log(data);
- if (data && data.id){
- document.getElementById("id").value=data.id;
- }
- formsaved({});
-}
-function getmemberslist(){
- req.reqdata("db.cgi","memberslist","",loadmemberslist);
-}
-
-function aftertransfersaved(data){
- console.log("transfer saved");
- console.log(data);
-}
-
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="display-container" >
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Transfer</div>
- </div>
-</div>
-<div class="container">
-
-</div>
-<form id="frm_transfer">
- <div class="row card padding-24">
- [% fieldselectbox('id_newclub','transfer','Fir den Club','third','') %]
- [% IF dtk == 'newlicense' %]
- [% #fieldfile('transferfile','transfer','Formulaire Nei Lizenz (PDF)','third','','') %]
- [% #fieldfile('transferphoto','transfer','Foto','third','','') %]
- [% END %]
- </div>
- </form>
- [% IF dtk == 'newlicense' %]
- <div class="row card padding-24">
- <div class="container">
- <h3>Perséinlech Donnéen vum Demandeur</h3>
- </div>
-
- <div class="container">
- <form id="frm_userdata">
- [% fieldhidden('id','transfer','ident',tid) %]
- [% fieldhidden('documenttype','transfer','',dtk) %]
- [% fieldeditbox('surname','transfer','Numm','half','') %]
- [% fieldeditbox('prename','transfer','Virnumm','half','') %]
- [% fieldeditbox('address','transfer','Address','','') %]
- [% fieldeditbox('zip','transfer','CP','quarter','') %]
- [% fieldeditbox('city','transfer','Uerschaft','half','') %]
- [% fieldeditbox('country','transfer','Land','quarter','') %]
- </div>
- <div class="container">
- [% fieldeditbox('phone','transfer','Telefon','half','') %]
- [% fieldeditbox('email','transfer','E-Mail','half','') %]
- [% fieldeditbox('nationality','transfer','Nationalitéit','half','') %]
- [% fielddatebox('birthday','transfer','Gebuertsdatum','half','') %]
- </div>
- </form>
-
- <div class="container right-align">
- <button class="button blue-grey" onclick="saveuserdata();return false;">spaichern</button>
- </div>
- </div>
-
- <div class="row card padding-24">
- <div class="container"><h3>Accord neien Club</h3></div>
- <div class="container">
- [% fieldhidden('newclub_id_president','transfer') %]
- [% fieldeditbox('newclub_presidentname','onlydisplay','President','quarter','readonly') %]
- [% fielddatebox('newclub_sigdate_president','transfer','Datum','quarter','') %]
- [% fieldpasswordbox('newclub_president_sig','transfer','Passwuert','quarter','') %]
- <div class="container right-align quarter padding-24">
- <button class="button blue-grey "> Ënnerschreiwen (Président)</button>
- </div>
- </div>
-
- <div class="container">
- [% fieldhidden('newclub_id_tresorier','transfer') %]
- [% fieldeditbox('newclub_tresoriername','onlydisplay','Trésorier','quarter','readonly') %]
- [% fielddatebox('newclub_sigdate_trresorier','transfer','Datum','quarter','') %]
- [% fieldpasswordbox('newclub_tresorier_sig','transfer','Passwuert','quarter','') %]
- <div class="container right-align quarter padding-24">
- <button class="button blue-grey" > Ënnerschreiwen (Trésorier)</button>
- </div>
- </div>
-
- </div>
- [% END %]
-
-
- [% IF dtk == 'transfer' || dtk == 'transferfree' || dtk == 'transferwinter' %]
- <div class="row card padding-24">
- <div class="container">
-
- [% fieldselectbox('id_member','transfer','Auswiel Member','half','') %]
- [% fieldeditbox('license','transfer','Lizenz','quarter','readonly') %]
- <div class="container">
- [% fieldrichtextarea('note','member','Remarque (aktuellen Club)','','readonly','100px','') %]
- </div>
- </div>
- </div>
- <div class="row card padding-24">
- <div class="container"><h3>Accord neien Club</h3></div>
- <div class="container">
- [% fieldhidden('newclub_id_president','transfer') %]
- [% fieldeditbox('newclub_presidentname','onlydisplay','President','quarter','readonly') %]
- [% fielddatebox('newclub_sigdate_president','transfer','Datum','quarter','') %]
- [% fieldpasswordbox('newclub_president_sig','transfer','Passwuert','quarter','') %]
- <div class="container right-align quarter padding-24">
- <button class="button blue-grey "> Ënnerschreiwen (Président)</button>
- </div>
- </div>
-
- <div class="container">
- [% fieldhidden('newclub_id_tresorier','transfer') %]
- [% fieldeditbox('newclub_tresoriername','onlydisplay','Trésorier','quarter','readonly') %]
- [% fielddatebox('newclub_sigdate_trresorier','transfer','Datum','quarter','') %]
- [% fieldpasswordbox('newclub_tresorier_sig','transfer','Passwuert','quarter','') %]
- <div class="container right-align quarter padding-24">
- <button class="button blue-grey" > Ënnerschreiwen (Trésorier)</button>
- </div>
- </div>
-
- </div>
- [% IF dtk == 'transfer' || dtk == 'transferwinter' %]
- <div class="row card padding-24">
- <div class="container"><h3>Accord/Signatur aalen Club</h3></div>
- <div class="container">
- [% fieldhidden('oldclub_id_president','transfer') %]
- [% fieldeditbox('oldclub_presidentname','onlydisplay','President','quarter','readonly') %]
- [% fielddatebox('oldclub_sigdate_president','transfer','Datum','quarter','') %]
- [% fieldpasswordbox('oldclub_president_sig','transfer','Passwuert','quarter','') %]
- <div class="container right-align quarter padding-24">
- <button class="button blue-grey "> Ënnerschreiwen (Président)</button>
- </div>
- </div>
-
- <div class="container">
- [% fieldhidden('oldclub_id_tresorier','transfer') %]
- [% fieldeditbox('oldclub_tresoriername','onlydisplay','Trésorier','quarter','readonly') %]
- [% fielddatebox('oldclub_sigdate_trresorier','transfer','Datum','quarter','') %]
- [% fieldpasswordbox('oldclub_tresorier_sig','transfer','Passwuert','quarter','') %]
- <div class="container right-align quarter padding-24">
- <button class="button blue-grey" > Ënnerschreiwen (Trésorier)</button>
- </div>
- </div>
-
- </div>
- [% END %]
- [% END %]
-
- [% #END %]
- [% #IF dtk == 'transfer' || dtk == 'freetransfer' || dtk == 'wintertransfer' %]
- <!--
- <div class="container">
- <h3>Accord/Signatur aalen Club</h3>
- </div>
- <div class="container">
- [% fieldhidden('id_oldclub','transfer') %]
- [% fieldeditbox('oldclub_name','onlydisplay','Club','','readonly') %]
- </div>
-
- <div class="container">
- [% fieldhidden('oldclub_id_president','transfer') %]
- [% fieldeditbox('oldclub_presidentname','onlydisplay','President','quarter','readonly') %]
- [% fielddatebox('oldclub_sigdate_president','transfer','Datum','quarter','') %]
- [% fieldeditbox('oldclub_president_license_check','transfer','Lizenz-Nummer vum Président','quarter','') %]
- [% fieldpasswordbox('oldclub_president_sig','transfer','Passwuert vum Président','quarter','') %]
- </div>
- <div class="container right-align padding-24">
- <button class="button blue-grey" > Ënnerschreiwen (Président)</button>
- </div>
- <div class="container">
- [% fieldhidden('oldclub_id_tresorier','transfer') %]
- [% fieldeditbox('oldclub_tresoriername','onlydisplay','Trésorier','quarter','readonly') %]
- [% fielddatebox('oldclub_sigdate_trresorier','transfer','Datum','quarter','') %]
- [% fieldeditbox('oldclub_tresorier_license_check','transfer','Lizenz-Nummer vum trésorier','quarter','') %]
- [% fieldpasswordbox('oldclub_president_sig','transfer','Passwuert vum Trésorier','quarter','') %]
- </div>
- <div class="container right-align padding-24">
- <button class="button blue-grey" > Ënnerschreiwen (Trésorier)</button>
- </div>
- <div class="container">
- <div class="container">
- [% fieldcheckbox('refused_oldclub','transfer','Refus','','') %]
- [% fieldtextarea('oldclub_note','transfer','Note (obligatoresch beim Refus)','','','100px','') %]
- </div>
- </div>
- </div> -->
- [% #END %]
- [% fldro = 'readonly' %]
- [% IF session.usergroups.search('fld') == 1 %]
- [% fldro = '' %]
- [% END %]
- <h3>Accord/Signatur FLD</h3>
- </div>
- <form id="frm_fld">
- <div class="container">
- [% fieldeditbox('license','transfer','Nei Lizenz-Nummer','quarter',fldro) %]
- </div>
- <div class="container">
-
- [% fielddatebox('fld_sigdate','transfer','Datum','quarter',fldro) %]
-
- [% fieldselectbox('fld_id_member','transfer','FLD-Member','quarter','readonly') %]
- [% fieldpasswordbox('fld_member_sig','transfer',"Passwuert",'quarter',fldro) %]
- </div>
-
- <div class="container">
- <div class="container">
- [% fieldcheckbox('refused_fld','transfer','Refus','',fldro) %]
- [% fieldtextarea('fld_note','transfer','Note (obligatoresch beim Refus)','','','100px',fldro) %]
- </div>
- </div>
- </form>
- [% IF fldro == '' %]
- <div class="container right-align padding-24">
- <button class="button blue-grey" onclick="savefld();return false;"> Ënnerschreiwen (FLD)</button>
- </div>
- [% END %]
- </div>
-
-
-</div>
-</div>
-<script type="text/javascript" src="[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-<div class="container">
- <h4>Passwuert vergiess?</h4>
- <h6 >Een Neit Passwuert ufroën</h6>
- </div>
- <form method="POST">
- <div class="container">
- <label for="email" class="label">E-mail</label>
-
- <input type="text" class="input border" id="email" name="email" required>
-
- </div>
-
- <div class="container padding-16">
- <button type="submit" name="btnforgotpassword" class="button theme" >Oofschecken</button>
- </div>
- <div class="container padding-24">
- <a href="[% basepath %]/login.html" class="text-primary">Zreck zum Login</a>
- </div>
-
- </form>
\ No newline at end of file
+++ /dev/null
-
-<div class="container">
- <h4>[% lbl.loginheading %]</h4>
- <!--<h6 class="text-blue">Wëllkomm zreck</h6>-->
- </div>
- <form name="frmlogin" method="POST" id="frmlogin">
- <div class="container">
- <label for="username" class="label">[% lbl.login %]</label>
- <input class="input border" type="text" id="login" name="login">
- </div>
- <div class="container">
- <label for="password" class="label">[% lbl.password %]</label>
- <input class="input border" type="password" id="password" name="password">
- </div>
- <div class="container padding-16">
- <button type="submit" name="btnlogin" class="theme-dark button" >[% lbl.sendlogin %]</button>
- </div>
- <div class="container padding-16">
- <a href="[% abspath %]forgotpassword.html">[% lbl.linkpwdforgotten %]</a>
- </div>
- [% IF registration_enabled == '1' %]
- <div class="container padding-16">
- Du hues dain Kont nach net aktivéiert? <br/><a href="[% basepath %]/register.html" class="text-primary">Kont aktivéieren</a>
- </div>
- [% END %]
- </form>
\ No newline at end of file
+++ /dev/null
-<div class="panel [% messagetype %]">[% message %]</div>
- <div class="container">
- <a href="[% basepath %]/login.html" class="text-primary">Zreck zum Login</a>
- </div>
- [% IF registration_enabled == '1' %]
- <div class="container">
- <a href="[% basepath %]/register.html" class="text-primary">Kont aktivéieren</a>
- </div>
- [% END %]
- <div class="container">
- <a href="[% basepath %]/forgotpassword.html" class="text-primary">Passwuert vergiess?</a>
- </div>
\ No newline at end of file
+++ /dev/null
-<div class="container">
- <h4>Du hues dain Kont nach nët aktivéiert?</h4>
- <h6 class="font-weight-light">Wanns du bei der FLD eng Lizenz hues, kruten déi Responsabel vun dengem Club Donnéen gescheckt, déi's du brauchs fir dain Kont ze aktivéieren! </h6>
- </div>
- <form method="POST" >
- <div class="container">
- <label class="label">Lizenz-Nummer</label>
- <input type="text" class="input border" name="license" placeholder="Lizenz-Nummer" required>
-
- </div>
-
- <div class="container">
- <label class="label">E-mail</label>
- <input type="email" class="input border" name="email" placeholder="E-mail" required>
-
- </div>
- <div class="container">
- <label class="label">Régistréierungs-Code</label>
- <input type="text" class="input border" name="regcode" placeholder="Régistréierungs-Code" required>
-
- </div>
- <div class="container">
- <input class="check" id="terms" name="terms" value="1" type="checkbox" required>
- <label>Ech acceptéieren d'<button class="button text-blue-grey" style="padding: 0px;" onclick="document.getElementById('dlgcgu').style.display='block';">Conditions générales d'utilisation</button></label>
- </div>
- <div class="container padding-16">
- <button type="submit" name="btnregister" class="button theme">Kont aktivéieren</button>
- </div>
- <div class="container padding-24">
- du hues dain Kont schon aktivéiert? <a href="[% abspath %]login.html" class="text-primary">Zrëck zum Login</a>
- </div>
- </form>
-
-<div id="dlgcgu" class="modal"> <div class="modal-content animate-top card-4">
-
-
- <header class="container">
- <span onclick="document.getElementById('dlgcgu').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2 id="dlgpublish_title">Conditions générales d'utilisation du site fld.lu</h2>
- </header>
- <div class="container">
- [% INCLUDE block/cgu.tt %]
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgcgu').style.display='none'; return false;">OK</button>
-
- </footer>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-
-<div class="container">
- <h4>E-Mail Validatioun</h4>
- <h6 >Mir hun dir eng E-Mail matt engem Code gescheckt, fir deng E-Mail-Address ze bestätegen!<br></h6>
- </div>
- <div class="panel [% messagetype %]">[% message %]</div>
- <form method="POST">
- <div class="container">
- <label for="text" class="label">Code</label>
-
- <input type="text" class="input border" id="vcode" name="vcode" required>
-
- </div>
-
- <div class="container padding-16">
- <button type="submit" name="btnvalidateemail" class="button theme" >E-Mail validéieren</button>
- </div>
- </form>
- <div class="container padding-24">
- <a href="[% basepath %]/login.html" class="text-primary">Zreck zum Login</a>
- </div>
-
- </form>
\ No newline at end of file
+++ /dev/null
-<div id="dlgeditdocument" class="modal">
-
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgeditdocument').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h3 id="dlgeditdocument_title">Fichier éditéieren</h3>
- </header>
- <div class="container">
- <form id="frm_editdocument">
- [% fieldhidden("id","documents",'ident','') %]
- [% fieldeditbox("filename","documents",'Fichier','','readonly') %]
- [% fieldrichtextarea("description","documents",'Beschreiwung','','200px;','') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <button class="button theme-light margin-right border" onclick="document.getElementById('dlgeditdocument').style.display='none'; return false;">Oofbriechen</button>
- <button class="button blue-grey margin right-align" onclick="saveform('editdocument',closeeditdialog);return false;">Spaicheren</button>
- </footer>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-var tbl = null;
-var cfolder = 'media';
-function initpage(){
- tbl = new Tabulator("#tbl_media", {
- headerFilterPlaceholder:"filter...",
- height: "93vh",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- rowDblClick:function(e, row){
- var r = row.getData();
- if (r.type == 'dir'){
- cfolder= r.path;
- gettbldata(cfolder);
- }
- },
- columns:[
- {title:'<button class="button block border blue-grey" style="padding: 2px;" onclick="folderup();return false;" id="folderup"><img src="../../img/icons/file/folderup_white.svg" style="height: 30px; "/></button>', field:"thumb",headerSort:false, titleFormatter:"html",width: 50,formatter:"html"},
- {title:"Name", field:"name", sorter:"string",headerFilter:"input"},
- {title:"Gréisst", field:"hrsize",headerSort:false,align:"right", sorter:"number",width: 110},
- {title:"Typ", field:"mimetype", sorter:"string",headerFilter:"input", width: 115},
- {title:"Dimensioun", field:"dimension", sorter:"number", width: 100},
- ],
-
- //autoColumns:true,
-});
-gettbldata(cfolder);
- // tinymce.init({
- // selector: '.richeditarea',
- // branding: false,
- // menubar:false,
- // statusbar: false,
- // plugins: 'searchreplace autolink directionality visualblocks visualchars advlist lists textcolor colorpicker textpattern',
- // toolbar: 'bold italic underline strikethrough forecolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat',
- // image_advtab: true
- // // //console.log(editor.getContent());
- // });
-}
-
-function gettbldata(folder){
- req.reqdata("POST","file.cgi",{"fn":"list","folder":folder},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data){
- tbl.setData(data);
- }
-}
-
-function folderup(){
- console.log("folderup");
- var p = cfolder.lastIndexOf('/');
- if (p > 0){
- cfolder = cfolder.substring(0,cfolder.lastIndexOf('/'));
- console.log("Folder up: " + cfolder);
- gettbldata(cfolder);
- }
-}
-// afterformsaved = function (){
-// app.loadpage('module/[% module %]/index.html');
-// return false;
-// }
-
-// function deletedocument(id){
-// if (confirm("Bass du secher dass du dëst Document läschen wëlls?")){
-// req.reqdata("POST","db.cgi",{"del":"1","ident_documents_id":id},closeeditdialog);
-// }
-// return false;
-// }
-
-// function editdocument(id){
-// req.reqdata("POST","db.cgi",{"get":"documents","filter":"id="+ id},openedit);
-// return false;
-// }
-
-// function openedit(data){
-// //console.log(data);
-// if (data && data.sqldata){
-// var frm = document.querySelectorAll('.data_documents');
-// for (var f in frm){
-// //console.log(frm[f].classList);
-// if (data.sqldata[0][frm[f].id]){
-// if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
-// if (frm[f].classList.contains("datefield")){
-// frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
-// } else if (frm[f].classList.contains("richeditarea")){
-// //console.log(frm[f].id + " is richeditarea");
-// tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
-// } else {
-// frm[f].value=data.sqldata[0][frm[f].id];
-// }
-
-// }
-// }
-// }
-// document.getElementById('dlgeditdocument').style.display='block';
-// }
-// return false;
-// }
-
-// function closeeditdialog(){
-// document.getElementById('dlgeditdocument').style.display='none';
-// app.loadpage('module/[% module %]/index.html');
-// }
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-
-<div class="display-container">
- <div class="bar theme-light">
-
- <button class="button blue-grey border" onclick="add(); return false;"><img src="[% abspath%]img/icons/pictures_white.svg" style="width: 20px;"/></button>
- <button class="button red right border" onclick="delete(); return false;"><img src="[% abspath%]img/icons/remove_white.svg" style="width: 20px;"/></button>
- <button class="button blue-grey right border" onclick="edit(); return false;"><img src="[% abspath%]img/icons/edit_white.svg" style="width: 20px;"/></button>
- <button class="button blue-grey right border" onclick="add(); return false;"><img src="[% abspath%]img/icons/plus_white.svg" style="width: 20px;"/></button>
- <button class="button blue-grey right border" onclick="addfolder(); return false;"><img src="[% abspath%]img/icons/folder_add_white.svg" style="width: 20px;"/></button>
- </div>
- <div id="tbl_media"></div>
-</div>
-[% INCLUDE block/dlguploadfile.tt %]
-[% INCLUDE "module/$module/dlgeditdocument.tt" %]
\ No newline at end of file
+++ /dev/null
-var tbl = null;
-var tbllic = null;
-var idmember=null;
-function initpage(){
-
- flatpickr(".datefield",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- "locale": "fr",
- });
- tbl = new Tabulator("#tbl_members", {
- height: "100vh",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- rowDblClick:function(e, row){
- var data = row.getData();
- //console.log(data);
- idmember=data.id;
- //console.log(idmember);
- loadmemberdata(idmember);
-
- //e - the click event object
- //row - row component
- },
- columns:[
- {title:"Club", field:"club", sorter:"string",formatter:"html",headerFilter:"input"},
- {title:"Numm", field:"surname", sorter:"string",headerFilter:"input"},
- {title:"Virnumm", field:"prename", sorter:"string",headerFilter:"input"},
- {title:"Status Lizenz", field:"status", sorter:"string",headerFilter:"input"},
- ],
- initialHeaderFilter:[
- {field:"status", value:"aktiv"} //set the initial value of the header filter to "red"
- ]
-
- //autoColumns:true,
-});
-tbllic = new Tabulator("#tbl_license", {
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- // rowClick:function(e, row){
- // var data = row.getData();
- // console.log(data);
- // idmember=row.id;
- // loadmemberdata(row.id);
- // //e - the click event object
- // //row - row component
- // },
- columns:[
- {title:"Lizenz", field:"license", sorter:"number"},
- {title:"vun", field:"yearin", sorter:"number"},
- {title:"bis", field:"yearout", sorter:"number"},
- {title:"Club", field:"club", sorter:"string",formatter:"html"}
- ],
- //autoColumns:true,
-});
- gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"memberlist"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function loadmemberdata(id){
- //console.log(id);
- document.getElementById("member_toolbar").style.display = 'block';
- document.getElementById("pnlmemberlist").style.display = 'none';
- document.getElementById("pnlmemberdata").style.display = 'block';
- req.reqdata("POST","db.cgi",{"get":"memberdata","filter":"id="+id},fillformmember);
- req.reqdata("POST","db.cgi",{"get":"licenselist","filter":"id_member="+id},filllicensetable);
- req.reqdata("POST","db.cgi",{"get":"userstatus","filter":"id="+id},filluserstaus);
-}
-
-function fillformmember(data){
- //console.log(data);
- if (data && data.sqldata){
- for (var i in data.sqldata[0]){
- if (document.getElementById("members_" + i)){
- document.getElementById("members_" + i).value
- }
- }
- var frm = document.querySelectorAll('.data_members');
- for (var f in frm){
- //console.log(frm[f].id);
- if (data.sqldata[0][frm[f].id]){
- //console.log(frm[f].tagName + " " + frm[f].type + " " + frm[f].id);
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- //frm[f].flatpickr.setDate(data.sqldata[0][frm[f].id])
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
-
- // if frm[f].id
- // if (data.sqldata[0][])
- // frm[f].value=
- }
- if (document.getElementById("profile_photo").value != ""){
- document.getElementById('img_profile_photo').src='../../data/members/' + document.getElementById("profile_photo").value;
- }
- // console.log(frm);
- }
-}
-
-function filllicensetable(data){
- //console.log("License DATA");
- //console.log(data.sqldata);
- if (data && data.sqldata){
- tbllic.setData(data.sqldata);
- }
-}
-
-function filluserstaus(data){
-
-}
-
-function loadlist(){
- document.getElementById("member_toolbar").style.display = 'none';
- document.getElementById("pnlmemberdata").style.display = 'none';
- document.getElementById("pnlmemberlist").style.display = 'block';
-
-}
-
+++ /dev/null
-
-[% PROCESS macro/fields.tt %]
-<div class="display-container">
-
- <div id="pnlmemberlist">
- <div id="tbl_members"></div>
- </div>
-
- <div id="pnlmemberdata">
- <header class="top bar border-bottom theme-light" id="member_toolbar" style="display: none;">
- <button class="bar-item button border" onclick="loadlist(); return false;">Zreck zur Lëscht</button>
- <button class="bar-item button border right" onclick="">
- </header>
-
- <div class="container padding-24 card margin-bottom" style="margin-top: 50px;">
- <form id="frm_members">
- <h3>Perséinlech Donnéen</h3>
- <div class="row-padding">
- <div class="container">
-
- [% fieldhidden('id','members','ident') %]
- [% fieldeditbox('surname','members','Numm','half','') %]
- [% fieldeditbox('prename','members','Virnumm','half','') %]
- [% fieldeditbox('address','members','Address','','') %]
- [% fieldeditbox('zip','members','CP','quarter','') %]
- [% fieldeditbox('city','members','Uerschaft','half','') %]
- [% fieldeditbox('country','members','Land','quarter','') %]
- </div>
- <div class="container">
- [% fieldeditbox('phone','members','Telefon','third','') %]
- [% fieldeditbox('nationality','members','Nationalitéit','third','') %]
- [% fielddatebox('birthday','members','Gebuertsdatum','third','') %]
- </div>
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('members');return false;">Spaicheren</button>
- </div>
- </div>
- </form>
- </div>
- <div class="container padding-24 card margin-bottom">
- <form id="frm_users">
- <h3>Benotzer-Kont</h3>
-
- <div class="container">
- [% fieldhidden('users','id','ident') %]
- [% fieldemailbox('username','users','E-Mail (Login)','','','','') %]
- </div>
- <div class="container">
- <h4>Accès <small> Status: <span class="text-green">aktiv</span></small></h4>
- <div class="container">
- <div class="container third">
- <input class="check" id="useringroups_idgroup" data-ident_useringroups_id="3" data-id_user="" value="1" type="checkbox">
- <label>Accès Club</label>
- </div>
- <div class="container third">
- <input class="check" id="useringroups_idgroup" data-ident_useringroups_id="2" data-id_user="" value="1" type="checkbox">
- <label>Accès FLD</label>
- </div>
- </div>
- <div class="container margin">
- <button class="button blue-grey" id="btnsaveuser" onclick="formsave('users');return false;">spaicheren</button>
- <button class="button green" id="btnsetactive" style="display:none;">aktivéieren</button>
- <button class="button red" id="btnblockuser" style="display: none;">blockéieren</button>
- <button class="button orange" id="btnsendnewpassword" style="display:none;">neit Passwuert schecken</button>
- </div>
- </div>
- </form>
- </div>
- <div class="container padding-24 card">
- <h3>Photo</h3>
- <div class="row-padding">
- <form id="frm_picture">
- [% fieldhidden('profile_photo','members') %]
- [% fieldhidden('members','link','ident') %]
- <div class="container half">
- <h4>Aktuell (validéiert) Photo</h4>
- <img src="[% abspath %]data/noprofileimg.png" class="border" style="max-width: 207px;max-height: 266px;" id="img_profile_photo" />
- </div>
-
- <div class="container half">
- <h4>Nei Photo</h4>
-
-
- <canvas class="border" style="width: 207px;height: 266px;" id="img_profile_photo_new"></canvas>
- <input type="file" id="file_newprofile_photo" class="input" data-filepath="" onchange="LoadCropper('file_newprofile_photo'); return false;"/>
- <button class="button blue-grey" onclick="upload_picture('picture');return false;">Nei Photo eroplueden</button>
- <button class="button red">Nei Photo läschen</button>
- </div>
- </form>
- </div>
- </div>
- [% INCLUDE block/dlgcropper.tt %]
- <div class="container padding-24 card">
- <h3>Lizenz</h3>
- <div class="container">
- <div id="tbl_license"></div>
- </div>
- </div>
-
- </div>
-
-</div>
+++ /dev/null
-var tbl = null;
-function initpage(){
- // flatpickr(".datefield",{altInput: true,
- // altFormat: "d.m.Y",
- // dateFormat: "Y-m-d",
- // "locale": "fr",
- // });
- tinymce.init({
- selector: '.richeditarea',
- branding: false,
- menubar:false,
- statusbar: false,
- plugins: 'searchreplace autolink directionality visualblocks visualchars advlist lists textcolor colorpicker textpattern',
- toolbar: 'bold italic underline strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat',
- image_advtab: true,
- forced_root_block : '',
- // init_instance_callback: function (editor) {
- // editor.on('blur', function (e) {
- // //console.log('Editor was blurred!');
- // //console.log(e.target.id);
- // $("#" + e.target.id).html(editor.getContent());
- // //console.log(editor.getContent());
- // // if (savefield){
- // // savefield(e.target.id);
- // // }
- // });
- // }
- });
- tbl = new Tabulator("#tbl_mailings", {
- height: "100vh",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- columns:[
- {title:"Sujet", field:"title"},
- {title:"Datum verscheckt", field:"dspsendate"},
- {title:"Sender", field:"sender"},
- {title:"Empfänger", field:"receipients"}
- ],
- //autoColumns:true,
-});
- gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"mailinglist"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function viewtable(){
- document.getElementById("mailingform").style.display = 'none';
- document.getElementById("mailingtable").style.display = 'block';
-}
-
-function add(){
- document.getElementById("mailingtable").style.display = 'none';
- document.getElementById("mailingform").style.display = 'block';
-
- //app.loadpage('module/[% module %]/form_webnews.html','Neien Member');
-}
-
-function edit(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- document.getElementById("mailingtable").style.display = 'none';
- document.getElementById("mialingform").style.display = 'block';
- //app.loadpage('module/[% module %]/form_webnews.html?id='+uid,'News éditeieren');
- //console.log(tbl.getSelectedData());
-}
-
-function duplicate(){
- //console.log(tbl.getSelectedData());
-}
-
-function remove(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- //console.log(tbl.getSelectedData());
-}
-
\ No newline at end of file
+++ /dev/null
-[% INCLUDE "module/$module/tbltoolbar.tt" %]
-[% PROCESS macro/fields.tt %]
-<div id="mailingtable">
-<table id="tbl_mailings" style="margin-top: 42px;">
- <thead>
- <tr>
-
- <th>Sujet</th>
- <th>Verscheckt den</th>
- <th>Sender</th>
- <th>Empfänger</th>
- </tr>
- </thead>
- <tbody>
-
-</tbody>
-</table>
-</div>
-<div id="mailingform" style="display: none; margin-top: 42px;" >
- <div class="container">
- <form id="frm_mailings">
- [% fieldhidden('id','mailings','ident') %]
- [% fieldselectbox('id_sender','mailings','Sender','','') %]
- [% fieldselectbox('receipient_groups','mailings','Empfänger','','') %]
- [% fieldeditbox('subject','mailings','Titel','','') %]
- [% fieldrichtextarea('body','mailings','Message','','','200px','') %]
- <div class="container right-align">
- <button class="button blue-grey margin" onclick="saveform('mailings');return false;">[% btnname %]</button>
- <button class="button blue-grey margin" onclick="sendmailing();return false;">Verschecken</button>
- </div>
-
-</form>
-</div>
-</div>
\ No newline at end of file
+++ /dev/null
-<div class="top border-bottom">
-
-<div class="bar">
- <button class="bar-item button border blue-grey" onclick="viewtable();"><img src="[% abspath%]img/icons/inbox_white.svg" style="height: 24px;"/> Messagen</button>
- <button class="bar-item button border right red" onclick="remove();"><img src="[% abspath%]img/icons/remove_white.svg" style="height: 24px;"/></button>
- <button class="bar-item button border right blue-grey" onclick="duplicate();"><img src="[% abspath%]img/icons/duplicate_white.svg" style="height: 24px;"/></button>
- <button class="bar-item button border right blue-grey" onclick="edit();"><img src="[% abspath%]img/icons/edit_white.svg" style="height: 24px;"/></button>
- <button class="bar-item button border right blue-grey" onclick="add();"><img src="[% abspath%]img/icons/plus_white.svg" style="height: 24px;"/></button>
-
-</div>
-</div>
\ No newline at end of file
+++ /dev/null
-
-[% PROCESS macro/fields.tt %]
- <div class="bar moduletoolbar">
- <div class="bar-item PageHeadTitle">Profil</div>
- </div>
-<div class="display-container" style="height: calc(100vh - 110px);overflow-y: scroll;">
- <div class="container padding-24 card margin-bottom">
- <form id="frm_users">
- <h3>Benotzer-Kont</h3>
- <div class="row-padding">
- <div class="container half">
- [% #fieldhidden('users','id','ident') %]
- [% fieldeditbox('username','users','E-Mail (Login)','','readonly','') %]
- <div class="container">
- <button class="button blue-grey margin" onclick="opendlgusername();return false;">E-mail (Login) änneren</button>
- </div>
- </div>
- <div class="container half margin-top padding">
-
- <button class="button blue-grey" onclick="opendlgpassword();return false;">Passwuert änneren</button>
- </div>
- </div>
- </form>
- </div>
-
- <div class="container padding-24 card margin-bottom">
- <form id="frm_members">
- <h3>Perséinlech Donnéen</h3>
- <div class="row-padding">
- <div class="container">
-
- [% fieldhidden('id','members','ident') %]
- [% fieldeditbox('surname','members','Numm','half','readonly') %]
- [% fieldeditbox('prename','members','Virnumm','half','readonly') %]
- [% fieldeditbox('address','members','Address','','readonly') %]
- [% fieldeditbox('zip','members','CP','quarter','readonly') %]
- [% fieldeditbox('city','members','Uerschaft','half','readonly') %]
- [% fieldeditbox('country','members','Land','quarter','readonly') %]
- </div>
- <div class="container">
- [% fieldeditbox('phone','members','Telefon','third','readonly') %]
- [% fieldeditbox('nationality','members','Nationalitéit','third','readonly') %]
- [% fielddatebox('birthday','members','Gebuertsdatum','third','readonly') %]
- </div>
- <!--<div class="container right-align">
- <button class="button blue-grey margin" onclick="//saveform('members');return false;">Spaicheren</button>
- </div>-->
- </div>
- </form>
- </div>
- <div class="container padding-24 card">
- <h3>Photo</h3>
- <div class="row-padding">
- <form id="frm_picture">
- [% fieldhidden('profile_photo','members') %]
- [% fieldhidden('members','link','ident') %]
- <div class="container half">
- <h4>Aktuell Photo</h4>
- <img src="[% abspath %]data/noprofileimg.png" class="border" style="max-width: 207px;max-height: 266px;" id="img_profile_photo" />
- </div>
-
- <div class="container half">
- <h4>Nei Photo</h4>
- <div class="panel light-blue padding-16">Fir d'Photo auszetauschen, scheckt w.e.g. är nei Photo via E-Mail un <br/><a href="webmaster@fld.lu">webmaster@fld.<br/>lu</a><br/>Vergiesst w.e.g. Net Lizenz-Nummer an Numm vum Spiller matt unzegin</div>
- <!--<img class="border" style="width: 207px;height: 266px;" id="img_profile_photo_new" />
- <input type="file" id="profile_newphoto" name="profile_photo" class="input" />
- <button class="button blue-grey" onclick="upload_picture('picture');return false;">Nei Photo eroplueden</button>
- <button class="button red">Nei Photo läschen</button>-->
- </div>
- </form>
- </div>
- </div>
-</div>
- [% #INCLUDE block/dlgcropper.tt %]
- [% INCLUDE block/dlgpassword.tt %]
- [% INCLUDE block/dlgusername.tt %]
- <script type="text/javascript" src="profile/[% pagename %].js?v=[% vstamp %]"></script>
-
-
+++ /dev/null
-var iduser="[% session.id %]";
-
-function initpage(){
- flatpickr(".datefield",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- "locale": "fr",
- });
- loadmemberdata(iduser);
- loadaccountdata(iduser);
-}
-
-function loadaccountdata(id){
- req.reqdata("POST","db.cgi",{"get":"userdata","filter":"id="+id},fillformaccount);
-}
-function loadmemberdata(id){
- req.reqdata("POST","db.cgi",{"get":"memberdata","filter":"id_user="+id},fillformmember);
-}
-function fillformaccount(data){
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_users');
- for (var f in frm){
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
- }
- }
- }
- }
-}
-
-
-function fillformmember(data){
- // console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_members');
- for (var f in frm){
- // console.log(frm[f].tagName);
- // console.log(frm[f].id);
- if (data.sqldata[0][frm[f].id]){
- //console.log(frm[f].tagName + " " + frm[f].type + " " + frm[f].id);
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
-
- }
- if (document.getElementById("profile_photo").value != ""){
- document.getElementById("img_profile_photo").src = '../../data/members/' + document.getElementById("profile_photo").value+ "?upd="+ data.sqldata[0].modified;
- }
- // console.log(frm);
- }
-}
-
-
+++ /dev/null
-var tbl = null;
-
-function initpage(){
- // flatpickr(".datefield",{altInput: true,
- // altFormat: "d.m.Y",
- // dateFormat: "Y-m-d",
- // "locale": "fr",
- // });
-
- tbl = new Tabulator("#tbl_rankings", {
- height: "95vh",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- columns:[
- {title:"Positioun", field:"seasonrank", sorter:"number"},
- {title:"surname", field:"Numm", sorter:"string",editor:"input",headerFilter:"input"},
- {title:"prename", field:"virnumm", storter:"html",editor:"input",headerFilter:"input"},
- {title:"saison", field:"season", storter:"html",editor:"input",headerFilter:"input"},
- {title:"1 Ranglëscht", field:"rl1", sorter:"number",editor:"input",width: 100},
- {title:"2 Ranglëscht", field:"rl2", sorter:"number",editor:"input",width: 100},
- {title:"3 Ranglëscht", field:"rl3", sorter:"number",editor:"input",width: 100},
- {title:"4 Ranglëscht", field:"rl4", sorter:"number",editor:"input",width: 100},
- {title:"5 Ranglëscht", field:"rl5", sorter:"number",editor:"input",width: 100},
- {title:"6 Ranglëscht", field:"rl6", sorter:"number",editor:"input",width: 100},
- {title:"7 Ranglëscht", field:"rl7", sorter:"number",editor:"input",width: 100},
- {title:"Total", field:"total", sorter:"number",width: 100}
- ],
- //autoColumns:true,
-});
- gettbldata();
-}
-
-// function getrankingscategories(){
-// req.reqdata("POST","db.cgi",{"get":"memberlist","filter":"id_club=" + clubid +" and status='aktiv'"},fillclubmembers);
-// }
-
-
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"rankings"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function viewtable(){
- document.getElementById("rankingsform").style.display = 'none';
- document.getElementById("rankingstable").style.display = 'block';
-}
-
-function add(){
-
- // var frm = document.querySelectorAll('.data_rankings');
- // for (var f in frm){
- // if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
- // if (frm[f].classList.contains("datefield")){
- // frm[f]._flatpickr.setDate("");
- // } else {
- // frm[f].value="";
- // // if (frm[f].id == 'teams'){
- // // locations_teams.clearStore();
- // // }
- // }
-
- // }
- // }
- // document.getElementById("rankingstable").style.display = 'none';
- // document.getElementById("rankingsform").style.display = 'block';
- // displayeditbuttons('block');
-}
-
-function edit(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- console.log(uid);
- req.reqdata("POST","db.cgi",{"get":"rankingslist","filter":"id=" + uid},fillformrankings);
- document.getElementById("rankingstable").style.display = 'none';
- document.getElementById("rankingsform").style.display = 'block';
- displayeditbuttons('block');
- //app.loadpage('module/[% module %]/form_webrankings.html?id='+uid,'rankings éditeieren');
- //console.log(tbl.getSelectedData());
-}
-
-function fillformrankings(data){
- console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_rankings');
- for (var f in frm){
- console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].classList.contains("richeditarea")){
- console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- }
-}
-
-function duplicate(){
- console.log(tbl.getSelectedData());
-}
-
-function remove(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- console.log(tbl.getSelectedData());
- if (confirm("Bass du secher dass déi ausgewielten rankings läschen wells?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_rankings_id":udata[0].id},gettbldata);
- }
-}
-
\ No newline at end of file
+++ /dev/null
-
- [% INCLUDE "module/$module/tbltoolbar.tt" %]
-<div id="newstable">
-<table id="tbl_ranking" style="margin-top: 42px;">
-</tbody>
-</table>
-</div>
-
+++ /dev/null
-<div class="top border-bottom theme-light">
-
-<div class="bar">
- <button class="bar-item button border blue-grey" onclick="viewtable();"><img src="[% abspath%]img/icons/newspaper_white.svg" style="height: 24px;"/> Raglëschten</button>
- <button class="bar-item button border right red tlbbtnlist" onclick="remove();"><img src="[% abspath%]img/icons/remove_white.svg" style="height: 24px;"/></button>
-
-
- <button class="bar-item button border right blue-grey tlbbtnlist" onclick="add();"><img src="[% abspath%]img/icons/plus_white.svg" style="height: 24px;"/></button>
-
-</div>
-</div>
-<script>
-function displayeditbuttons(dsp){
- var tblbtns = document.getElementsByClassName("tlbbtnlist");
- console.log(tblbtns);
- for (var k in tblbtns){
- tblbtns[k].style.display = dsp;
- }
- return false;
-}
-</script>
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="display-container animate-opacity">
-<div class="bar moduletoolbar">
- <div class="bar-item PageHeadTitle">Memberen</div>
- <button class="bar-item toolbarbtn center" onclick="newlicense();"><span class="icon-plus" style="font-size: 16px;"></span><br/>Nei Lizenz</button>
- <button class="bar-item toolbarbtn center" onclick="newtransfer();"><span class="icon-transfer" style="font-size: 16px;"></span><br/>Transfer</button>
- <button class="bar-item toolbarbtn center" onclick="myclub();"><span class="icon-club" style="font-size: 16px;"></span><br/>Main Club</button>
- [% IF (session.usergroups.search('fld') == 1) %]
- <button class="bar-item toolbarbtn center" onclick="myclub();"><span class="icon-table" style="font-size: 16px;"></span><br/>FLD Memberen</button>
- <button class="bar-item toolbarbtn right" onclick="setusergroups();"><span class="icon-usergroup" style="font-size: 16px;"></span><br/>Berechegungen</button>
- <button class="bar-item toolbarbtn right" onclick="setlogin();"><span class="icon-access" style="font-size: 16px;"></span><br/>Login</button>
- [% END %]
-</div>
-<div class="container" style="display: block;height: calc(100vh-300px); overflow-y: scroll;">
-<div class="row">
-[% FOREACH cl=dksdb.query("select * from vw_clublist;") %]
- <div class="container">
- <div class="card">
- <header class="container">
- <h3>[% cl.club %]</h3>
- </header>
- <div class="container">
- <img src="[% IF cl.logo %]../media/clubs/[% cl.logo %][% ELSE %]../media/clubs/logo_club.png[% END %]" style="height: 96px;">
- <div class="container">Lizenzen: <strong>[% cl.licenses %]</strong></div>
-
- </div>
-
- </div>
- </div>
-[% END %]
-</div>
-</div>
-</div>
-[% IF (session.usergroups.search('fld') == 1) %]
-<div id="dlgusergroups" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlgusergroups').style.display='none'; return false;"
- class="button display-topright"><span class="icon-close"></span></span>
- <h2>Benotzer Accès</h2>
- </header>
- <div class="container">
- [% fieldeditbox("surname","display","Numm",'half','readonly','') %]
- [% fieldeditbox("prename","display","Virnumm",'half','readonly','') %]
- <form id="frm_usergroups">
- [% fieldhidden("id","users","ident",'') %]
- [% fieldmultiselectbox("usergroup_ids","useringroups","Accès",'','','') %]
-
- </form>
- </div>
- <footer class="container right-align padding-16">
-
- <button class="button theme-light border" onclick="document.getElementById('dlgusergroups').style.display='none'; return false;">Oofbriechen</button>
- <button class="button blue-grey margin" onclick="saveusergroupsform();return false;">Spaicheren</button>
- </footer>
- </div>
-</div>
-<div id="dlglogin" class="modal">
- <div class="modal-content animate-top card-4">
- <header class="container">
- <span onclick="document.getElementById('dlglogin').style.display='none'; return false;"
- class="button display-topright">×</span>
- <h2>Benotzer E-Mail</h2>
- </header>
- <div class="container">
- <div id="nunmsg" ></div>
- [% fieldeditbox("surname","display","Numm",'half','readonly','') %]
- [% fieldeditbox("prename","display","Virnumm",'half','readonly','') %]
- <form id="frm_users">
- [% fieldhidden("id","users","ident",'') %]
- [% fieldeditbox("username","users","Login / E-Mail",'','','') %]
- [% fieldcheckbox("blocked","users","Login blockéieren",'','','1') %]
- </form>
- </div>
- <footer class="container right-align padding-16">
- <!--<button class="button orange border" onclick="sendnewpassword(); return false;">neit Passwuert schecken</button>-->
- <button class="button theme-light border" onclick="document.getElementById('dlglogin').style.display='none'; return false;">Oofbriechen</button>
- <button class="button blue-grey margin" onclick="checkemail();return false;">Spaicheren</button>
- </footer>
- </div>
-</div>
-[% END %]
+++ /dev/null
-
-/* [% sid = session.id %]
-[% IF (session.usergroups.search('fld') != 1) %]
-[% qclub = dksdb.query("select id_club from vw_userlist where id=$sid;") %]
-[% club = qclub.get_all() %]
-[% END %] */
-var tbl= null;
-var sid = "[% session.id %]";
-var sel_usergroups = null;
-
-//var idclub="[% club.0.id_club %]";
-function initpage(){
- /* [% IF (session.usergroups.search('fld') == 1) %] */
- sel_usergroups = new Choices('#usergroup_ids',{
- searchEnabled: false,
- itemSelectText: 'auswielen...',
- removeItemButton: true,
- choices : []
- });
- tbl = new Tabulator("#tbl_users", {
- height: "calc(100vh - 170px)",
- headerFilterPlaceholder:"filter...",
- layout:"fitDataFill",
- selectable:1,
- initialSort:[
- {column:"club", dir:"asc"} //then sort by this second
- ],
- groupBy:["club"],
- groupStartOpen:[false],
- groupHeader:[function(value, count, data){ return value;}],
-
- //responsiveLayout:"collapse",
- columns:[
- {title:"Club", field:"club",headerFilter:"input",download:true,visible: false},
- {title:"Numm", field:"surname",headerFilter:"input",download:true},
- {title:"Virnumm", field:"prename",headerFilter:"input",download:true},
- {title:"Lizenz",field:"license",download:true, headerSort: false},
- {title:"Accès",field:"group_ids",download:true,headerFilter:"input", headerSort: false},
- {title:"E-mail",field:"username",download:true, headerSort: false},
- {title:"Reg.Code", field:"regcode",download:true, headerSort: false},
- {title:"Blockéiert", field:"blocked", headerSort: false,formatter:"tickCross", formatterParams:{
- allowEmpty:true,
- allowTruthy:true,
- crossElement:"",
- }},
- ],
-});
-
- getusergroups();
- /* [% ELSE %] */
- tbl = new Tabulator("#tbl_users", {
- headerFilterPlaceholder:"filter...",
- height: "calc(100vh - 200px);",
- layout:"fitDataFill",
- selectable:1,
- responsiveLayout:"collapse",
- columns:[
- {title:"Club", field:"club"},
- {title:"Numm", field:"surname",headerFilter:"input",download:true},
- {title:"Virnumm", field:"prename",headerFilter:"input",download:true},
- {title:"Lizenz",field:"license",download:true},
- {title:"Accès",field:"group_ids",download:true},
- {title:"E-mail",field:"username",download:true},
- {title:"Reg.Code", field:"regcode",download:true},
- ],
-});
- /* [% END %] */
- gettbldata();
-}
-
-function gettbldata(){
- // [% IF (session.usergroups.search('fld') == 1) %]
- req.reqdata("POST","db.cgi",{"get":"userlist","filter":"status='aktiv'"},loadtbldata);
- // [% ELSE %]
- req.reqdata("POST","db.cgi",{"get":"userlist","filter":"status='aktiv' and id_club=[% club.0.id_club %]"},loadtbldata);
- // [% END %]
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-// function xlsxexport(){
-// tbl.download("xlsx", "fld.lu_Benotzer.xlsx", {sheetName:"Memberen"});
-// }
-
-// function pdfexport(){
-// tbl.download("pdf", "fld.lu_Benotzer.pdf", {
-// orientation:"landscape",
-
-// jsPDF:{
-// unit:"mm",
-// },
-// autoTable(doc){
-// doc.text("Benotzer Site fld.lu", 10, 10);
-// // styles: {
-// // fillColor: [100, 255, 255]
-// // },
-// // columnStyles: {
-// // id: {fillColor: 255}
-// // },
-// return {
-// margin: {top: 20},
-// }
-
-// },
-// documentProcessing:function(doc){
-// //carry out an action on the doc object
-// }
-// });
-// }
-
-// [% IF (session.usergroups.search('fld') == 1) %]
- function setusergroups(){
- var udata = tbl.getSelectedData();
- if (udata[0]){
- var uid = udata[0].id;
- req.reqdata("POST","db.cgi",{"get":"userdata","filter":"id=" + uid},fillusergroupform);
- }
- }
- function fillusergroupform(data){
-
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_users,.data_display,.data_useringroups');
- for (var f in frm){
-
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')) {
- if (frm[f].id == "usergroup_ids"){
-
- var argrp = data.sqldata[0][frm[f].id].split(",");
- //console.log(argrp);
- sel_usergroups.setChoiceByValue(argrp);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
- }
- }
- }
- document.getElementById('dlgusergroups').style.display='block';
- }
-
- }
-
- function getusergroups(){
- req.reqdata("POST","db.cgi",{"get":"usergroups"},fillusergroups);
- return false;
- }
- function fillusergroups(data){
- var pug = [];
- if (data && data.sqldata){
- for (var i in data.sqldata){
- pug.push({value:data.sqldata[i].id,label:data.sqldata[i].groupname});
- }
- }
- sel_usergroups.setChoices(pug, 'value', 'label', true);
-
- return false;
- }
-
- function saveusergroupsform(){
- var flds = getformcontent("usergroups",{});
- //console.log(flds);
-
- req.reqdata("POST","db.cgi",{"fn":"setgroupaccess","params": flds.ident_users_id + ",'{" + flds.useringroups_usergroup_ids.join(',') +"}'"},ugsaved);
- return false;
- }
-
- function ugsaved(data){
- //console.log(data);
- gettbldata();
- document.getElementById('dlgusergroups').style.display='none';
- formsaved(null);
- }
-
- function setlogin(){
- var udata = tbl.getSelectedData();
- document.getElementById("nunmsg").innerHTML = ''
- if (udata[0]){
- var uid = udata[0].id;
- req.reqdata("POST","db.cgi",{"get":"userdata","filter":"id=" + uid},fillloginform);
- }
- }
- function fillloginform(data){
- document.getElementById("blocked").checked = false;
- document.getElementById("username").value = "";
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_users,.data_display,.data_useringroups');
- for (var f in frm){
-
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')) {
-
- if (frm[f].type == "checkbox"){
- document.getElementById("blocked").checked = true;
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
- }
- }
- }
- document.getElementById('dlglogin').style.display='block';
- }
- }
-
- function setusername(){
- var flds = getformcontent("users",{});
- //console.log(flds);
- flds["set"] = 1;
- req.reqdata("POST","db.cgi",flds,loginsaved);
- return false;
- }
-
- function loginsaved(data){
- //console.log(data);
- gettbldata();
- document.getElementById('dlglogin').style.display='none';
- formsaved(null);
- }
- function ugsaved(data){
- //console.log(data);
- gettbldata();
- document.getElementById('dlgusergroups').style.display='none';
- formsaved(null);
- }
-
- function sendnewpassword(){
- var flds = getformcontent("login",{});
- //console.log(flds);
- return false;
- }
-
- function checkemail(){
- var newusername = document.getElementById("username").value;
- //console.log("username: " + newusername);
- if (validateEmail(newusername)){
- req.reqdata("POST","db.cgi",{"get":"userdata","filter":"username='"+ newusername+ "' and id != " + document.getElementById("id").value},checkmailreturn);
- }else {
- document.getElementById("nunmsg").innerHTML= '<div class="panel red">w.e.g. eng richteg email agin!</div>';
- }
- return false;
- }
-
- function checkmailreturn(data){
- console.log(data);
- if (data && data.sqldata.length > 0){
- document.getElementById("nunmsg").innerHTML= '<div class="panel red">Et existéiert schon een aaneren Kont matt deser E-mail!</div>';
- } else {
- setusername();
- }
- return false;
- }
-
- function validateEmail(email) {
- var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(String(email).toLowerCase());
- }
-// [% END %]
\ No newline at end of file
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="display-container panel" id="pnl_newstable">
- <div class="bar border-bottom toolbar">
- <a class="bar-item toolbarbtn" href="[% abspath %]index.html" ><span class="icon-back"></span>zerëck</a>
- <div class="bar-item PageHeadTitle">Websait News</div>
- [% IF (session.usergroups.search('fld') == 1) %]
- <button class="bar-item toolbarbtn right text-red" onclick="webnews.remove();"><span class="icon-trash" style="font-size: 16px;"/></span>läschen</button>
- <button class="bar-item toolbarbtn right" onclick="webnews.edit();"><span class="icon-edit" style="font-size: 16px;"/></span>éditéieren</button>
- <button class="bar-item toolbarbtn right" onclick="webnews.add();"><span class="icon-plus" style="font-size: 16px;"/></span>nei</button>
- [% END %]
- </div>
- <div id="tbl_news"></div>
-</div>
-<div class="panel display-container" id="pnl_newsform" style="display: none;" >
-<div class="bar border-bottom toolbar">
- <button class="bar-item toolbarbtn" onclick="app.viewpanel('newstable');" ><span class="icon-back"></span>zerëck</button>
- <div class="bar-item PageHeadTitle">News Artikel</div>
- </div>
-<form id="frm_news">
- <div class="container">
- <form id="frm_news">
- [% fieldhidden('id','news','ident') %]
- [% fieldeditbox('title','news','Titel','','') %]
- [% fieldeditbox('link','news','Link Websait (ouni .html)','','') %]
- [% fieldmultiselectbox('categories','news','Publikatioun op','','') %]
- [% fielddatebox('publishdate','news','Datum Publikation','half','') %]
- [% fielddatebox('unpublishdate','news','Datum Publikation bis','half','') %]
-
- [% fieldrichtextarea('newspart1','news','Short News (Frontpage + News)','','','300px','') %]
- [% fieldrichtextarea('newspart2','news','Supplément News (Just News)','','','500px','') %]
- [% formsavebutton('news','Spaicheren','') %]
-</form>
-</div>
-</div>
-[% INCLUDE block/dlguploadfile.tt %]
-<script type="text/javascript" src="webnews/[% pagename %].js?v=[% vstamp %]"></script>
\ No newline at end of file
+++ /dev/null
-var tbl = null;
-var sel_category=null;
-function initpage(){
- webnews.inittable();
- webnews.initform();
-}
-let webnews = {
- tbl: null,
- choices: {"categories":null},
- inittable: function(){
- webnews.tbl = new Tabulator("#tbl_news", {
- height: "calc(100vh - 65px)",
- selectable:1,
- // selectablePersistence:false,
- // responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitDataFill",
- resizableRows:true,
- columnHeaderSortMulti:false,
- columns:[
-
- {title:"Titel", field:"title", formatter:"html",responsive:0, width: 400},
- {title:"Datum vun", field:"dsppublishdate",headerSort:"datetime",width: 100},
- {title:"Datum bis", field:"dspunpublishdate",headerSort:"datetime",width: 100},
- {title:"Kategorie", field:"categorylist", headerSort:false,width: 140},
- ],
- });
- webnews.gettbldata();
- },
- initform: function(){
- flatpickr(".datefield",{altInput: true,
- altFormat: "d.m.Y",
- dateFormat: "Y-m-d",
- allowInput: true,
- "locale": "fr",
- });
- tinymce.init({
- selector: '.richeditarea',
- plugins: 'preview paste importcss searchreplace autolink directionality code visualblocks visualchars fullscreen image link media template table charmap hr nonbreaking anchor advlist lists wordcount imagetools textpattern noneditable charmap emoticons autoresize ',
- imagetools_cors_hosts: ['picsum.photos'],
- menubar: 'file edit view insert format tools table',
- toolbar: 'undo redo | bold italic underline strikethrough | fontsizeselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor removeformat | charmap emoticons | fullscreen preview | insertfile image media link anchor',
- toolbar_sticky: true,
- language: 'de',
- // content_css: [
- // '[% abspath %]/backoffice/css/w3pro.css'
- // ],
- forced_root_block : '',
- min_height: 350,
- branding: false,
- importcss_append: true,
- image_advtab: true,
- image_title: true,
- automatic_uploads: true,
- file_picker_types: 'image',
- file_picker_callback: function (cb, value, meta) {
- var input = document.createElement('input');
- input.setAttribute('type', 'file');
- input.setAttribute('accept', 'image/*');
- input.onchange = function () {
- var file = this.files[0];
-
- var reader = new FileReader();
- reader.onload = function () {
- var id = 'blobid' + (new Date()).getTime();
- var blobCache = tinymce.activeEditor.editorUpload.blobCache;
- var base64 = reader.result.split(',')[1];
- var blobInfo = blobCache.create(id, file, base64);
- blobCache.add(blobInfo);
- cb(blobInfo.blobUri(), { title: file.name });
- };
- reader.readAsDataURL(file);
- };
-
- input.click();
-
- },
- image_caption: true,
- noneditable_noneditable_class: "mceNonEditable",
- contextmenu: "link image imagetools table",
- });
- webnews.choices["categories"] = new SlimSelect({
- select: "#categories",
- showSearch: false,
- data: [{ value: 'News', text: 'News' },
- { value: 'Frontpage', text: 'Frontpage' }]
- });
- // webnews.choices["categories"] = sel_category = new Choices('#categories',{
- // searchEnabled: false,
- // itemSelectText: 'auswielen...',
- // removeItemButton: true,
- // choices : [{ value: 'News', label: 'News' },
- // { value: 'Frontpage', label: 'Frontpage' }]
- // });
- },
- gettbldata: function (){
- req.reqdata("POST","db.cgi",{"get":"newslist"},webnews.loadtbldata);
- },
- loadtbldata: function (data){
- if (data && data.sqldata){
- webnews.tbl.setData(data.sqldata);
- }
- },
- // getnewscategories: function(){
- // req.reqdata("POST","db.cgi",{"get":"memberlist","filter":"id_club=" + clubid +" and status='aktiv'"},fillclubmembers);
- // },
- viewtable: function(){
- gettbldata();
- document.getElementById("newsform").style.display = 'none';
- document.getElementById("newstable").style.display = 'block';
- displayeditbuttons('block');
- },
-
- add: function(){
- var frm = document.querySelectorAll('.data_news');
- for (var f in frm){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || (frm[f].tagName == 'TEXTAREA')){
- if (frm[f].classList.contains("datefield")){
- if (frm[f]._flatpickr){
- frm[f]._flatpickr.clear();
- }
- } else if (frm[f].id == "categories"){
- //sel_category.clearStore();
-
- sel_category.setChoiceByValue(['News','Frontpage']);
- }else if (frm[f].classList.contains("richeditarea")){
- tinymce.get(frm[f].id).setContent("");
- }else {
- frm[f].value="";
- }
-
- }
- }
- document.getElementById("title").addEventListener("change", onchangetitle);
- document.getElementById("newstable").style.display = 'none';
- document.getElementById("newsform").style.display = 'block';
- //displayeditbuttons('none');
- },
-
- edit: function(){
- var udata = webnews.tbl.getSelectedData();
- if (udata[0]){
- req.reqdata("POST","db.cgi",{"get":"newslist","filter":"id=" + udata[0].id},webnews.fillformnews);
- app.viewpanel("newsform");
- }
- },
-
- fillformnews: function(data){
- //console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_news');
- for (var f in frm){
- //console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].id == "categories"){
- //sel_category.setChoiceByValue(JSON.parse(data.sqldata[0][frm[f].id]));
- } else if (frm[f].classList.contains("richeditarea")){
-
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- document.getElementById("title").addEventListener("change", webnews.onchangetitle);
- }
- },
-
- onchangetitle: function(){
- var link = document.getElementById("link");
- link.value = unaccent(document.getElementById("title").value);
- },
-
- remove: function(){
- var udata = tbl.getSelectedData();
- if (udata[0]){
- if (confirm("Bass du secher dass déi ausgewielten News läschen wells?")){
- req.reqdata("POST","db.cgi",{"del":"1","ident_news_id":udata[0].id},webnews.gettbldata);
- }
- }
- },
- unaccent: function(text){
- text = text.toLowerCase();
- text = text.replace(/[á|à|â|ã|ä|å|ā|ă|ą]/g,"a");
- text = text.replace(/[è|é|ê|ë|ē|ĕ|ė|ę|ě]/g,"e");
- text = text.replace(/[ì|í|î|ï|ì|ĩ|ī|ĭ]/g,"i");
- text = text.replace(/[ò|ó|ô|õ|ö|ō|ŏ|ő]/g,"o");
- text = text.replace(/[ù|ú|û|ü|ũ|ū|ŭ|ů]/g,"u");
- text = text.replace(/ß/g,"ss");
- text = text.replace(/ç/g,"c");
- text = text.replace(/œ/g,"oe");
- text = text.replace(/[\W]+/g,"-");
- return text;
- }
-}
-
-
-
-
-// var afterformsaved = {
-// action: function(data){
-// //console.log(data);
-// if (data.result.p.relpath){
-// document.getElementById('image').value=data.result.p.relpath;
-// if (document.getElementById("image").value != ''){
-// document.getElementById("slider_img").src='../../../' + document.getElementById("image").value;
-// }
-// }
-
-// }
-// }
-
-
-
-
-
-
-
+++ /dev/null
-[% PROCESS macro/fields.tt %]
-<div class="top border-bottom theme-light">
-
-<div class="bar">
- <button class="bar-item button border blue-grey" onclick="viewtable();"><img src="[% abspath%]img/icons/globe_white.svg" style="height: 24px;"/> Websaiten Lëscht</button>
- <!-- <button class="bar-item button border right red tlbbtnlist" onclick="remove();"><img src="[% abspath%]img/icons/remove_white.svg" style="height: 24px;"/></button> -->
- <!-- <button class="bar-item button border right blue-grey" onclick="duplicate();"><img src="[% abspath%]img/icons/duplicate_white.svg" style="height: 24px;"/></button> -->
- <button class="bar-item button border right blue-grey tlbbtnlist" onclick="edit();"><img src="[% abspath%]img/icons/edit_white.svg" style="height: 24px;"/></button>
- <!-- <button class="bar-item button border right blue-grey tlbbtnlist" onclick="add();"><img src="[% abspath%]img/icons/plus_white.svg" style="height: 24px;"/></button> -->
- <!-- <button class="bar-item button border right blue-grey tlbbtnlist" onclick="viewcode();"><img src="[% abspath%]img/icons/code.svg" style="height: 24px;"/></button> -->
-</div>
-</div>
-<script>
-function displayeditbuttons(dsp){
- var tblbtns = document.getElementsByClassName("tlbbtnlist");
- console.log(tblbtns);
- for (var k in tblbtns){
- tblbtns[k].style.display = dsp;
- }
- return false;
-}
-</script>
-
-<div id="websitestable">
-<table id="tbl_websites" style="margin-top: 42px;"></table>
-</div>
-<div id="websitesform" style="display: none; margin-top: 42px;" >
- <div class="container">
- <form id="frm_websites">
- [% fieldhidden('id','websites','ident') %]
- <div class="row">
- [% fieldeditbox('title','websites','Titel','threequarter','') %]
- [% fieldcheckbox('active','websites','Aktiv','quarter','','1') %]
-
- </div>
- <div class="row">
- [% fieldcheckbox('sitemenu','websites','ass am Menu','quarter','','1') %]
- [% fieldeditbox('menutext','websites','Menu Numm','quarter','') %]
- [% fieldeditbox('menuparent','websites','Numm Submenu','quarter','') %]
- [% fieldeditbox('menuorder','websites','Menu Positioun','quarter','') %]
- </div>
- <div class="row">
- [% fieldeditbox('file','websites','Link','threequarter','readonly') %]
- [% fieldcheckbox('is_frontpage','websites','Ass 1st Sait','quarter','readonly','1') %]
- </div>
- [% fieldtextarea('description','websites','Beschreiwung','','','100px','') %]
- [% formsavebutton('websites','Spaicheren','container') %]
-</form>
-</div>
-</div>
-<div id="websitesfile" style="display: none; margin-top: 42px;">
-<form id="frm_file">
- [% fieldhidden('filepath','file','') %]
- <pre id="file_editor" id="filesource" name="file_filesource"></pre>
-</div>
\ No newline at end of file
+++ /dev/null
-var tbl = null;
-var sel_category=null;
-function initpage(){
-
- tbl = new Tabulator("#tbl_websites", {
- height: "95vh",
- selectable:1,
- selectablePersistence:false, // disable rolling selection
- responsiveLayout:"collapse",
- autoResize:true,
- addRowPos:"top",
- layout:"fitColumns",
- resizableRows:true,
- columnHeaderSortMulti:false,
- columns:[
- {title:"Titel", field:"title", formatter:"html"},
- {title:"Menu", field:"dspmenu", formatter:"html",width: 250},
- {title:"Positioun", field:"menuorder", formatter:"html",width: 50},
- {title:"Frontpage", field:"is_frontpage",formatter:"tickCross", width:50},
- {title:"Aktiv", field:"active",formatter:"boolean",formatter:"tickCross", width:50}
- ],
- //autoColumns:true,
-});
- gettbldata();
-}
-
-function gettbldata(){
- req.reqdata("POST","db.cgi",{"get":"websiteslist"},loadtbldata);
-}
-
-function loadtbldata(data){
- if (data && data.sqldata){
- tbl.setData(data.sqldata);
- }
-}
-
-function viewtable(){
- document.getElementById("websitesform").style.display = 'none';
- document.getElementById("websitestable").style.display = 'block';
- displayeditbuttons('block');
-}
-
-// function add(){
-// var frm = document.querySelectorAll('.data_websites');
-// for (var f in frm){
-// if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT')){
-// if (frm[f].classList.contains("datefield")){
-// frm[f]._flatpickr.setDate("");
-// } else {
-// frm[f].value="";
-// // if (frm[f].id == 'teams'){
-// // locations_teams.clearStore();
-// // }
-// }
-
-// }
-// }
-// document.getElementById("websitestable").style.display = 'none';
-// document.getElementById("websitesform").style.display = 'block';
-// displayeditbuttons('none');
-// }
-
-function edit(){
- var udata = tbl.getSelectedData();
- var uid = udata[0].id;
- console.log(uid);
- req.reqdata("POST","db.cgi",{"get":"websiteslist","filter":"id=" + uid},fillformwebsites);
- document.getElementById("websitestable").style.display = 'none';
- document.getElementById("websitesform").style.display = 'block';
- displayeditbuttons('none');
- //app.loadpage('module/[% module %]/form_webwebsites.html?id='+uid,'websites éditeieren');
- //console.log(tbl.getSelectedData());
-}
-
-function fillformwebsites(data){
- console.log(data);
- if (data && data.sqldata){
- var frm = document.querySelectorAll('.data_websites.data_websites');
- for (var f in frm){
- console.log(frm[f].classList);
- if (data.sqldata[0][frm[f].id]){
- if ((frm[f].tagName == 'INPUT') || (frm[f].tagName == 'SELECT') || frm[f].tagName == 'TEXTAREA'){
- if (frm[f].classList.contains("datefield")){
- frm[f]._flatpickr.setDate(data.sqldata[0][frm[f].id]);
- } else if (frm[f].classList.contains("richeditarea")){
- console.log(frm[f].id + " is richeditarea");
- tinymce.get(frm[f].id).setContent(data.sqldata[0][frm[f].id]);
- } else if (frm[f].tagName == 'TEXTAREA'){
- frm[f].innerHTML = data.sqldata[0][frm[f].id];
- } else if (frm[f].type == 'checkbox'){
- if (data.sqldata[0][frm[f].id] == '1'){
- frm[f].checked = true;
- } else {
- frm[f].checked = false;
- }
- }
- else {
- frm[f].value=data.sqldata[0][frm[f].id];
- }
-
- }
- }
- }
- }
-}
-
-
-// function remove(){
-// var udata = tbl.getSelectedData();
-// var uid = udata[0].id;
-// console.log(tbl.getSelectedData());
-// }
-
-// function viewcode(){
-// var udata = tbl.getSelectedData();
-// var uid = udata[0].id;
-// console.log(uid);
-// document.getElementById("websitestable").style.display = 'none';
-// document.getElementById("websitesfile").style.display = 'block';
-// displayeditbuttons('none');
-// }
-
+++ /dev/null
-#!/usr/local/bin/perl
-
-use strict;
-use FindBin qw/$Bin $RealBin/;
-use lib ($RealBin.'/lib/perl5');
-use lib ($RealBin.'/lib');
-use lib ($RealBin.'/backoffice/lib/perl5');
-use lib ($RealBin.'/backoffice/lib');
-use CGI;
-use CGI::Cookie;
-#use CGI::Carp qw/fatalsToBrowser/;
-use File::Basename;
-use File::Path qw/make_path/;
-use JSON::PP;
-use Image::Size;
-use dksconfig qw/$sitecfg/;
-use dksdb;
-
-use session;
-use sendemail;
-my $cgi = new CGI();
-my $scriptpath = $cgi->url(-absolute => 1);
-my $p = ();
-my @params = $cgi->param();
-if ($cgi->request_method() eq "POST"){
- foreach my $pe (@params){
- $p->{$pe} = $cgi->param($pe);
- }
-}
-my $html->{result} = ();
-$p->{sid} = $cgi->cookie($sitecfg->{cookiename});
-my $se = session->new();
-my $sess = $se->getsession($p->{sid});
-print $cgi->header(-type=>"application/json", -charset => "utf-8");
-if ($sess == undef){
- $html->{error} = "No Authorisation";
- print JSON::PP::encode_json($html);
- exit(0);
-}
-my $utime = time();
-my $db = dksdb->new();
-
-if (exists($p->{file}) && exists($p->{filetype})){
-
- my $basepath = dirname(dirname($ENV{SCRIPT_FILENAME}));
- my $filepath = "";
- my $suffix = substr($p->{file},rindex($p->{file},'.')+1);
- if ($p->{filetype} eq "download_document"){
- $filepath = 'data/documents/'.$p->{file};
- }
- if ($p->{filetype} eq "news_image"){
- if ($suffix eq 'jpg' || $suffix eq 'png'){
- $filepath = '../media/news/'.$p->{file};
- $p->{relpath} = 'media/news/'.$p->{file};
- }
- }
- if ($p->{filetype} eq "rankinglist_result"){
- if ($suffix eq 'xlsx'){
- $filepath = 'data/rankinglist/'.$p->{file};
- }
- }
- #mogrify -thumbnail x300 -background white *.png
- #ls -1 members_sized/*.png | awk -F\/ '{print "composite -gravity southeast wm_fld.png members_sized/"$(NF)" members/"$(NF)}' | sh
- # if ($p->{upload_filetype} eq "new_profile_photo"){
- # my $sql = "select link from members where id=".$p->{id_member}.";";
- # my $ml = $db->dbquerysorted($sql);
- # $filepath = 'data/members/'.$ml->{0}->{link}.'/'.$ml->{0}->{link}.'_new.'.$suffix;
- # } elsif ($p->{upload_filetype} eq "profile_photo"){
- # my $sql = "select link from members where id=".$p->{id_member}.";";
- # my $ml = $db->dbquerysorted($sql);
- # $filepath = 'data/members/'.$ml->{0}->{link}.'/'.$ml->{0}->{link}.'_new.'.$suffix;
- # } elsif ($p->{upload_filetype} eq "spillbou"){
- # $filepath = 'data/championnat/'.$p->{season}.'_'.$p->{playday}.'_'.$p->{team}.'.'.$suffix;
- # } elsif ($p->{upload_filetype} eq "member_document"){
- # my $sql = "select link from members where id=".$p->{id_member}.";";
- # my $ml = $db->dbquerysorted($sql);
- # $filepath = 'data/members/'.$ml->{0}->{link}.'/'.$p->{upload_file}.'_'.$utime.$suffix;
- # } elsif ($p->{upload_filetype} eq "clublogo_new"){
- # my $sql = "select link from clubs where id=".$p->{id_club}.";";
- # my $cl = $db->dbquerysorted($sql);
- # $filepath = 'data/clubs/'.$cl->{0}->{link}.'/'.$cl->{0}->{link}.'_new.'.$suffix;
- # } elsif ($p->{upload_filetype} eq "clublogo"){
- # my $sql = "select link from clubs where id=".$p->{id_club}.";";
- # my $cl = $db->dbquerysorted($sql);
- # $filepath = 'data/clubs/'.$cl->{0}->{link}.'/'.$cl->{0}->{link}.'.'.$suffix;
- # }elsif ($p->{upload_filetype} eq "website_image"){
- # $basepath = $ENV{"DOCUMENT_ROOT"};
- # $filepath = 'images/'.$p->{folder}.'/'.$p->{upload_file};
- if ($filepath ne ""){
- $p->{path} = $basepath.'/'.$filepath;
- $p->{suffix} = $suffix;
- my $fh = $cgi->upload('file');
- open(NF,">".$basepath.'/'.$filepath);
- binmode NF;
- while (<$fh>) {
- print NF;
- }
- close(NF);
- if ($p->{filetype} eq "download_document"){
- if ($suffix eq 'png' || $suffix eq 'jpg' || $suffix eq 'pdf'){
- system('convert -thumbnail x128 -background white -alpha remove "'.$basepath.'/'.$filepath.'" "'.$basepath.'/thumb/'.$filepath.'.thumb.png"');
- }
-
- if ($p->{row_id} eq ""){
- my $dx = $db->dbquerysorted("select id from documents where filename='".basename($filepath)."' and folder='documents'");
- if (keys(%{$dx}) == 0){
- my $sql = "INSERT INTO documents (filename,folder,filetype) VALUES ('".basename($filepath)."','documents','".$suffix."');";
- $db->dbexec($sql);
- }
- }
- }
- if ($p->{filetype} eq "news_image"){
- my ($pwidth,$pheight) =imgsize($p->{path});
- my $width=0;
- my $height =0;
- my $density = 72;
- if ($pwidth>700){
- $width = 700;
- } elsif ($height > 380) {
- $height = 380;
- }
- if ($height == 0){
- $height = ($pheight/$pwidth) * $width;
- }
- elsif ($width == 0) {
- $width = ($pwidth/$pheight) * $height;
- }
- if ($height > 380){
- $height = 380;
- $width = ($width/$height) * $height;
- }
- system("mogrify -resize ".$width."x".$height." -density ".$density." ".$p->{path});
- }
- if ($p->{filetype} eq "rankinglist_result"){
-
- }
-
- # if ($p->{upload_filetype} eq "new_profile_photo"){
- # #convert!
- # $db->dbexec("update members set new_profile_photo='".$filepath."' where id=".$p->{id_member}.";");
- # $html->{result}->{new_profile_photo}= $filepath;
- # } elsif ($p->{upload_filetype} eq "profile_photo"){
- # #convert!
- # $db->dbexec("update members set profile_photo='".$filepath."' where id=".$p->{id_member}.";");
- # $html->{result}->{new_profile_photo}= $filepath;
- # } elsif ($p->{upload_filetype} eq "spillbou"){
- # $db->dbexec("update csresult set upload_team".$p->{team}."='".$filepath."' where id=;");
- # } elsif ($p->{upload_filetype} eq "member_document"){
-
- # } elsif ($p->{upload_filetype} eq "clublogo_new"){
-
- # } elsif ($p->{upload_filetype} eq "clublogo"){
-
- # } elsif ($p->{upload_filetype} eq "website_image"){
-
- # } els
- }
-}
-if (exists($p->{gameresult})){
- my $basepath = dirname(dirname($ENV{SCRIPT_FILENAME}));
- my $csdir = "data/championship/";
- my $gmid = $p->{id};
- my $cdata = $db->dbquerybykey("id","select * from vw_games where id=".$gmid);
- if (exists($p->{upload_teamhome}) && $p->{upload_teamhome} ne ""){
- my $suffix = substr($p->{upload_teamhome},rindex($p->{upload_teamhome},'.')+1);
- my $fh = $cgi->upload('upload_teamhome');
- my $filepath = $basepath.'/'.$csdir.'/'.$cdata->{$gmid}->{season}.'/'.$cdata->{$gmid}->{playday}.'_'.$cdata->{$gmid}->{link_teamhome}.'.'.$suffix;
- open(NF,">".$filepath);
- binmode NF;
- while (<$fh>) {
- print NF;
- }
- close(NF);
- if (($sess->{usergroups} !~ /championship/ ) && ($p->{result_teamhome})){
- $db->dbexec("UPDATE csgames set upload_teamhome='".basename($filepath)."',result_teamhome='".$p->{result_teamhome}."' WHERE id=".$gmid);
- } elsif ($sess->{usergroups} =~ /championship/ ){
- $db->dbexec("UPDATE csgames set upload_teamhome='".basename($filepath)."' WHERE id=".$gmid);
- }
- }
- if (exists($p->{upload_teamguest}) && $p->{upload_teamguest} ne ""){
- my $suffix = substr($p->{upload_teamguest},rindex($p->{upload_teamguest},'.')+1);
- my $fh = $cgi->upload('upload_teamguest');
- my $filepath = $basepath.'/'.$csdir.'/'.$cdata->{$gmid}->{season}.'/'.$cdata->{$gmid}->{playday}.'_'.$cdata->{$gmid}->{link_teamguest}.'.'.$suffix;
- open(NF,">".$filepath);
- binmode NF;
- while (<$fh>) {
- print NF;
- }
- close(NF);
- if (($sess->{usergroups} !~ /championship/ ) && ($p->{result_teamguest})){
- $db->dbexec("UPDATE csgames set upload_teamguest='".basename($filepath)."',result_teamguest='".$p->{result_teamguest}."' WHERE id=".$gmid);
- } elsif ($sess->{usergroups} =~ /championship/ ){
- $db->dbexec("UPDATE csgames set upload_teamguest='".basename($filepath)."' WHERE id=".$gmid);
- }
- }
- if ($sess->{usergroups} =~ /championship/ ){
- my @upd = ();
- if (exists($p->{validated})){
- if ($p->{validated} eq "1"){push(@upd,"validated=true");} else {push(@upd,"validated=null");}
- }
- if (exists($p->{result_teamhome})){
- push(@upd,"result_teamhome='".$p->{result_teamhome}."'");
- }
- if (exists($p->{result_teamguest})){
- push(@upd,"result_teamguest='".$p->{result_teamguest}."'");
- }
- if (exists($p->{sets_teamhome})){
- push(@upd,"sets_teamhome='".$p->{sets_teamhome}."'");
- }
- if (exists($p->{sets_teamguest})){
- push(@upd,"sets_teamguest='".$p->{sets_teamguest}."'");
- }
- $db->dbexec("UPDATE csgames set ".join(",",@upd)." where id=".$gmid);
- }
- $cdata = $db->dbquerybykey("id","select * from vw_games where id=".$gmid);
- if (($sess->{usergroups} !~ /championship/ ) && ($cdata->{$gmid}->{result_teamhome} eq $cdata->{$gmid}->{result_teamguest}) && ($cdata->{$gmid}->{validated} ne "1")){
-
- # my $pth = "null";
- # my $ptg = "null";
- my @x = ();
- if (($p->{sets_teamhome} ne "") && ($p->{sets_teamguest} ne "")){
- push(@x,$p->{sets_teamhome});
- push(@x,$p->{sets_teamguest});
- } else {
- @x= split("-",$cdata->{$gmid}->{result_teamhome});
- }
-
- $db->dbexec("update csgames set sets_teamhome=".$x[0].", sets_teamguest=".$x[1]." WHERE id=".$gmid.";");
- }
-
- $cdata = $db->dbquerybykey("id","select * from vw_games where id=".$gmid);
- if (($cdata->{$gmid}->{sets_teamhome} eq "") || ($cdata->{$gmid}->{sets_teamguest} eq "")){
- $db->dbexec("update csgames set sets_teamhome=null, sets_teamguest=null,points_teamhome=null,points_teamguest=null,validated=null WHERE id=".$gmid.";");
- }else {
- my $pth = "null";
- my $ptg = "null";
- if (int($cdata->{$gmid}->{sets_teamhome}) > int($cdata->{$gmid}->{sets_teamguest})){$pth = 3;$ptg=0;} else {$pth = 0;$ptg=3;}
- if (int($cdata->{$gmid}->{sets_teamhome}) == int($cdata->{$gmid}->{sets_teamguest})){$pth = 1; $ptg = 1;}
- $db->dbexec("update csgames set points_teamhome=".$pth.",points_teamguest=".$ptg." WHERE id=".$gmid.";");
- }
- $db->dbexec("select * from setcsranking('".$cdata->{$gmid}->{id_season}."','".$cdata->{$gmid}->{id_division}."');");
-}
-my $js = JSON::PP->new();
-$js->allow_blessed(1);
-# open(NF,">upload.txt");
-# print NF $js->utf8->encode($p);
-# print NF $js->utf8->encode($sess);
-# close(NF);
-$html->{result}->{p} = $p;
-print $js->utf8->encode($p);
\ No newline at end of file
+++ /dev/null
-#!C:\Strawberry\perl\bin\perl.exe
-
-use strict;
-use warnings;
-
-use Crypt::CBC;
-use MIME::Base64;
-use Digest::MD5 qw(md5_hex md5);
-
-my $plainText = "testtest";
-my $id = "aabb";
-
-my $iv = substr(md5_hex($id), 0, 16);
-print $iv."\n";
-my $cipher = Crypt::CBC->new(
- -key => substr(md5($id),0,16),
- -iv => $iv,
- -cipher => 'Cipher::AES',
- -literal_key => 1,
- -header => "none",
- -padding => "standard",
- -keysize => 16
- );
-
-
-my $encrypted = $cipher->encrypt($plainText);
-my $base64 = encode_base64($encrypted);
-print "Enc:".$encrypted."\n";
-print("Ciphertext(b64):$base64\n");
+++ /dev/null
-#SetEnv PERL5LIB "/usr/home/dksalu/public_html/perl5"
-RewriteEngine on
-DirectoryIndex index.php index.html
-AddHandler cgi-script .cgi
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
-RewriteRule "^(.*)$" "index.php" [NC,L,QSA]
+++ /dev/null
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="ledf" horiz-adv-x="1024">
-<font-face units-per-em="1024" ascent="960" descent="-64" />
-<missing-glyph horiz-adv-x="1024" />
-<glyph unicode=" " horiz-adv-x="512" d="" />
-<glyph unicode="" glyph-name="envelop" d="M928 832h-832c-52.8 0-96-43.2-96-96v-640c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v640c0 52.8-43.2 96-96 96zM398.74 409.628l-270.74-210.892v501.642l270.74-290.75zM176.38 704h671.24l-335.62-252-335.62 252zM409.288 398.302l102.712-110.302 102.71 110.302 210.554-270.302h-626.528l210.552 270.302zM625.26 409.628l270.74 290.75v-501.642l-270.74 210.892z" />
-<glyph unicode="" glyph-name="location" d="M512 960c-176.732 0-320-143.268-320-320 0-320 320-704 320-704s320 384 320 704c0 176.732-143.27 320-320 320zM512 448c-106.040 0-192 85.96-192 192s85.96 192 192 192 192-85.96 192-192-85.96-192-192-192z" />
-<glyph unicode="" glyph-name="map2" d="M672 768l-320 128-352-128v-768l352 128 320-128 352 128v768l-352-128zM384 814.27l256-102.4v-630.138l-256 102.398v630.14zM64 723.172l256 93.090v-631.8l-256-93.088v631.798zM960 172.828l-256-93.092v631.8l256 93.090v-631.798z" />
-<glyph unicode="" glyph-name="calendar" d="M320 576h128v-128h-128zM512 576h128v-128h-128zM704 576h128v-128h-128zM128 192h128v-128h-128zM320 192h128v-128h-128zM512 192h128v-128h-128zM320 384h128v-128h-128zM512 384h128v-128h-128zM704 384h128v-128h-128zM128 384h128v-128h-128zM832 960v-64h-128v64h-448v-64h-128v64h-128v-1024h960v1024h-128zM896 0h-832v704h832v-704z" />
-<glyph unicode="" glyph-name="menu" d="M64 768h896v-192h-896zM64 512h896v-192h-896zM64 256h896v-192h-896z" />
-</font></defs></svg>
\ No newline at end of file
+++ /dev/null
-@font-face {
- font-family: 'ledf';
- src:
- url('fonts/ledf.ttf?d9kavb') format('truetype'),
- url('fonts/ledf.woff?d9kavb') format('woff'),
- url('fonts/ledf.svg?d9kavb#ledf') format('svg');
- font-weight: normal;
- font-style: normal;
- font-display: block;
-}
-
-[class^="icon-"], [class*=" icon-"] {
- /* use !important to prevent issues with browser extensions that change fonts */
- font-family: 'ledf' !important;
- speak: never;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
-
- /* Better Font Rendering =========== */
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-envelop:before {
- content: "\e945";
-}
-.icon-location:before {
- content: "\e947";
-}
-.icon-map2:before {
- content: "\e94c";
-}
-.icon-calendar:before {
- content: "\e953";
-}
-.icon-menu:before {
- content: "\e9bd";
-}
+++ /dev/null
-/* W3PRO.CSS 4.13 June 2019 by Jan Egil and Borge Refsnes */
-html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
-/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
-html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
-html,body {-webkit-user-select: none;-ms-user-select: none;user-select: none;-moz-user-select:none;}
-article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
-audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
-audio:not([controls]){display:none;height:0}[hidden],template{display:none}
-a{background-color:transparent}a:active,a:hover{outline-width:0}
-abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
-b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
-small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
-sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
-code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
-button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
-button,input{overflow:visible}button,select{text-transform:none}
-button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
-button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
-button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
-fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
-legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
-[type=checkbox],[type=radio]{padding:0}
-[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
-[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
-[type=search]::-webkit-search-decoration{-webkit-appearance:none}
-::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
-/* End extract */
-/* html,body {
- background-color: #52638e;
-} */
-html,body{font-family:Verdana,sans-serif;font-size:9pt;line-height:1.5}html{overflow-x:hidden}
-h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.serif{font-family:serif}
-h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin: 0}.wide{letter-spacing:4px}
-hr{border:0;border-top:1px solid #eee;margin:20px 0}
-.img{max-width:100%;height:auto; vertical-align:middle}a{color:inherit}
-.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
-.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
-.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
-.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
-.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
-.table th:first-child,.table td:first-child,.table-all th:first-child,.table-all td:first-child{padding-left:16px}
-.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap ;border-radius: 3px;}
-.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
-.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
-.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;opacity:0.3}.disabled *,:disabled *{pointer-events:none}
-.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
-.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
-.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
-.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
-.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
-.input{padding:2px;display:block;border: 0;border-bottom: 1px solid #ccc;width:100%;background-color: #fff;}/*#e8f0fe*/
-.select{padding:2px 0; display:block;width:100%;border:1px solid #ccc;background-color: #fff;}
-.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
-.dropdown-hover:hover .dropdown-content{display:block; }
-.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
-.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
-.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
-.check,.radio{width:24px;height:24px;position:relative;top:6px}
-.sidebar{height:100%;width:160px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
-.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
-.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
-.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
-.main,#main{transition:margin-left .4s}
-.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
-.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
-.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}
-.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
-.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
-.bar .button{white-space:normal}
-.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
-.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
-.responsive{display:block;overflow-x:auto}
-.container:after,.container:before,.datapanel:after,.datapanel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
-.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
-.col,.half,.third,.twothird,.threequarter,.quarter,.fifth,.twofifth,.threefifth,.fourfifth{float:left;width:100%}
-.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}
-.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}
-.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}
-@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}.fifth{width:20%;min-width:100px}
-.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}
-.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}.twofifth{width:40%}.threefifth{width:60%}.fourfifth{width:80%}}
-@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}
-.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}
-.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}
-.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}
-.content,.auto{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}
-.cell-row{display:table;width:100%}.cell{display:table-cell}
-.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}
-.hide{display:none!important}.show-block,.show{display:block!important}.show-inline-block{display:inline-block!important}
-@media (max-width:1205px){.auto{max-width:95%}}
-@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}
-.dropdown-hover.mobile .dropdown-content,.dropdown-click.mobile .dropdown-content{position:relative}
-.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-hover.mobile,.dropdown-click.mobile{text-align:center}
-.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button,.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button{width:100%}}
-@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}
-@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}}
-@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}
-@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}}
-.top,.bottom{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}
-.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
-.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}
-.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}
-.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
-.display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
-.display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
-.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
-.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}
-.display-position{position:absolute}
-.circle{border-radius:50%}
-.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}
-.row-padding,.row-padding>.half,.row-padding>.third,.row-padding>.twothird,.row-padding>.threequarter,.row-padding>.quarter,.row-padding>.col{padding:0 8px}
-.container,.datapanel{padding:0.01em 8px}.datapanel{margin-top:8px;margin-bottom:8px}
-.code,.codespan{font-family:Consolas,"courier new";font-size:16px}
-.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
-.codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
-/* .card,.card-2{} */
-.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
-.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
-.animate-fading{animation:fading 2s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
-.animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.animate-top{position:relative;animation:animatetop 1s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
-.animate-bottom{position:relative;animation:animatebottom 1s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
-.animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
-.animate-input{transition:width 0.4s ease-in-out}.animate-input:focus{width:100%!important}
-.opacity,.hover-opacity:hover{opacity:0.60}.opacity-off,.hover-opacity-off:hover{opacity:1}
-.opacity-max{opacity:0.25}.opacity-min{opacity:0.75}
-.greyscale-max,.grayscale-max,.hover-greyscale:hover,.hover-grayscale:hover{filter:grayscale(100%)}
-.greyscale,.grayscale{filter:grayscale(75%)}.greyscale-min,.grayscale-min{filter:grayscale(50%)}
-.sepia{filter:sepia(75%)}.sepia-max,.hover-sepia:hover{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}
-.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}
-.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}
-.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}
-.border-0{border:0!important}.border{border:1px solid #ccc!important}
-.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}
-.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}
-.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}
-.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}
-.section,.code{margin-top:16px!important;margin-bottom:16px!important}
-.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}
-.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}
-.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}
-.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}
-.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}
-.padding-64{padding-top:64px!important;padding-bottom:64px!important}
-.left{float:left!important}.right{float:right!important}
-.button:hover{color:#fff!important;background-color:#343434!important}
-.transparent,.hover-none:hover{background-color:transparent!important}
-.hover-none:hover{box-shadow:none!important}
-/* DEFAULT COLORS */
-.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}
-.aqua,.hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
-.blue,.hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
-.light-blue,.hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
-.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}
-.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
-.blue-grey,.hover-blue-grey:hover{color:#fff!important;background-color:#607d8b!important}
-.green,.hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
-.light-green,.hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
-.indigo,.hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
-.khaki,.hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
-.lime,.hover-lime:hover{color:#000!important;background-color:#cddc39!important}
-.orange,.hover-orange:hover{color:#000!important;background-color:#ff9800!important}
-.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
-.pink,.hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
-.purple,.hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
-.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
-.red,.hover-red:hover{color:#fff!important;background-color:#f44336!important}
-.sand,.hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
-.teal,.hover-teal:hover{color:#fff!important;background-color:#009688!important}
-.yellow,.hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
-.white,.hover-white:hover{color:#000!important;background-color:#fff!important}
-.black,.hover-black:hover{color:#fff!important;background-color:#000!important}
-.grey,.hover-grey:hover{color:#000!important;background-color:#c6c6c6!important}
-.light-grey,.hover-light-grey:hover{color:#000!important;background-color:#f1f1f1!important}
-.dark-grey,.hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}
-.pale-red,.hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.pale-green,.hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important}
-.pale-yellow,.hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.pale-blue,.hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important}
-.text-align-right { text-align: right;}
-.text-amber,.hover-text-amber:hover{color:#ffc107!important}
-.text-aqua,.hover-text-aqua:hover{color:#00ffff!important}
-.text-blue,.hover-text-blue:hover{color:#2196F3!important}
-.text-light-blue,.hover-text-light-blue:hover{color:#87CEEB!important}
-.text-brown,.hover-text-brown:hover{color:#795548!important}
-.text-cyan,.hover-text-cyan:hover{color:#00bcd4!important}
-.text-blue-grey,.hover-text-blue-grey:hover{color:#607d8b!important}
-.text-green,.hover-text-green:hover{color:#4CAF50!important}
-.text-light-green,.hover-text-light-green:hover{color:#8bc34a!important}
-.text-indigo,.hover-text-indigo:hover{color:#3f51b5!important}
-.text-khaki,.hover-text-khaki:hover{color:#b4aa50!important}
-.text-lime,.hover-text-lime:hover{color:#cddc39!important}
-.text-orange,.hover-text-orange:hover{color:#ff9800!important}
-.text-deep-orange,.hover-text-deep-orange:hover{color:#ff5722!important}
-.text-pink,.hover-text-pink:hover{color:#e91e63!important}
-.text-purple,.hover-text-purple:hover{color:#9c27b0!important}
-.text-deep-purple,.hover-text-deep-purple:hover{color:#673ab7!important}
-.text-red,.hover-text-red:hover{color:#f44336!important}
-.text-sand,.hover-text-sand:hover{color:#fdf5e6!important}
-.text-teal,.hover-text-teal:hover{color:#009688!important}
-.text-yellow,.hover-text-yellow:hover{color:#d2be0e!important}
-.text-white,.hover-text-white:hover{color:#fff!important}
-.text-black,.hover-text-black:hover{color:#000!important}
-.text-grey,.hover-text-grey:hover{color:#757575!important}
-.text-light-grey,.hover-text-light-grey:hover{color:#f1f1f1!important}
-.text-dark-grey,.hover-text-dark-grey:hover{color:#3a3a3a!important}
-.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}
-.border-aqua,.hover-border-aqua:hover{border-color:#00ffff!important}
-.border-blue,.hover-border-blue:hover{border-color:#2196F3!important}
-.border-light-blue,.hover-border-light-blue:hover{border-color:#87CEEB!important}
-.border-brown,.hover-border-brown:hover{border-color:#795548!important}
-.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}
-.border-blue-grey,.hover-blue-grey:hover{border-color:#607d8b!important}
-.border-green,.hover-border-green:hover{border-color:#4CAF50!important}
-.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}
-.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}
-.border-khaki,.hover-border-khaki:hover{border-color:#f0e68c!important}
-.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}
-.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}
-.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}
-.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}
-.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}
-.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}
-.border-red,.hover-border-red:hover{border-color:#f44336!important}
-.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}
-.border-teal,.hover-border-teal:hover{border-color:#009688!important}
-.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}
-.border-white,.hover-border-white:hover{border-color:#fff!important}
-.border-black,.hover-border-black:hover{border-color:#000!important}
-.border-grey,.hover-border-grey:hover{border-color:#9e9e9e!important}
-.border-light-grey,.hover-border-light-grey:hover{border-color:#f1f1f1!important}
-.border-dark-grey,.hover-border-dark-grey:hover{border-color:#616161!important}
-.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}
-.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffd7!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}
-/* DEFAULT THEME */
-.theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.theme-d5 {color:#fff !important; background-color:#24457a !important}
-
-.theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.theme-dark {color:#fff !important; background-color:#24457a !important}
-.theme-action {color:#fff !important; background-color:#24457a !important}
-
-.theme {color:#fff !important; background-color:#6a92d3 !important}
-.text-theme {color:#6a92d3 !important}
-.border-theme {border-color:#6a92d3 !important}
-
-.hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.hover-text-theme:hover {color:#6a92d3 !important}
-.hover-border-theme:hover {border-color:#6a92d3 !important}
-
-/* .label { color: #000; font-size: 8pt;} */
-/* #main {margin-left: 210px;} */
-/* @media (max-width:768px){
- #sidebar { display: none;}
- #main { margin-left: 0px;}
-} */
-
-.table {
- table-layout: fixed;
-}
-
-.text-line-through { text-decoration: line-through; }
-
-#snackbar {
- visibility: hidden;
- min-width: 250px;
- margin-left: -125px;
- background-color: #333;
- color: #fff;
- text-align: center;
-
- padding: 16px;
- position: fixed;
- z-index: 1;
- left: 50%;
- bottom: 30px;
- font-size: 17px;
-}
-
-#snackbar.show {
- visibility: visible;
- -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
- animation: fadein 0.5s, fadeout 0.5s 2.5s;
-}
-
-@-webkit-keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@keyframes fadein {
- from {bottom: 0; opacity: 0;}
- to {bottom: 30px; opacity: 1;}
-}
-
-@-webkit-keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-@keyframes fadeout {
- from {bottom: 30px; opacity: 1;}
- to {bottom: 0; opacity: 0;}
-}
-
-.tabulator-header-filter > input {
- background-color: #fff;
- border: 1px solid #ccc;
- font-weight: normal;
-}
-
-.readonly {
- pointer-events:none;
- color: #000!important;
- background-color: #d3d3d3!important;
-}
-
-
-
-.right-side-bg {
- background: url("../img/bg1.jpg");
- background-size: cover;
- min-height: 100vh;
-}
-
-
-
-
-/* .mceContentBody {
- background: #fff;
- color:#000;
-} */
-
-/* .tabulator-row-even {
- background-color: #757575;
-} */
-
-
-button
-{
- background-color: #f4f4f4;
- border: 1pt solid #cccccc;
- font-size: 10pt;
- color: #000;
- line-height: 1line;
- text-align: center;
-}
-button:hover
-{
- background-color: #343434;
-}
-button:pressed
-{
- background-color: #343434;
-}
-button:focus
-{
- background-color: #343434;
-}
-
-header
-{
- background-color: #fff;
- box-sizing: border-box;
-}
-
-
-
-
-::-webkit-input-placeholder
-{
- color: rgba(60.3922%,60.3922%,60.3922%,1);
-}
-
-
-textarea
-{
- background-color: #fff;
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- font-size: 11pt;
- color: #000;
- line-height: 1line;
- text-align: left;
- /* margin-top: 0.88em;
- margin-right: 0.75em;
- margin-bottom: 0.63em;
- margin-left: 0.75em;
- top: 0pt;
- right: 30pt;
- bottom: 0pt;
- left: 0pt;
- position: absolute;
- box-sizing: border-box; */
-}
-textarea:focus
-{
- border-top-color: rgba(0%,43.9216%,81.1765%,1);
- border-right-color: rgba(0%,43.9216%,81.1765%,1);
- border-bottom-color: rgba(0%,43.9216%,81.1765%,1);
- border-left-color: rgba(0%,43.9216%,81.1765%,1);
-}
-textarea:placeholder
-{
- color: rgba(80%,80%,80%,1);
-}
-/* textarea .text
-{
-
-} */
-textarea .scrollbar_track
-{
- width: 30pt;
- top: 0pt;
- right: 0pt;
- bottom: 0pt;
- position: absolute;
- box-sizing: border-box;
-}
-
-
-footer
-{
- background-color: #fff;
- box-sizing: border-box;
-}
-
-
-div.group_container
-{
- background-color: #e3e3e3;
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- padding-top: 4px;
- padding-bottom: 8px;
-}
-
-/* Custom Styles */
-.ListView_Default
-{
-
- background-color: rgba(0%,0%,0%,0);
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
-
- color: #000;
- text-align: left;
- margin-top: 2pt;
- margin-right: 2pt;
- margin-bottom: 2pt;
- margin-left: 2pt;
-}
-
-
-button.btnNavigation
-{
-
- background-color: rgba(0%,0%,0%,0);
-
-
- font-weight: bold;
- font-size: 10pt;
- color: #fff;
- padding-top: 0pt;
- padding-right: 0pt;
- padding-bottom: 0pt;
- padding-left: 0pt;
-}
-
-div.PageListHeader
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- color: #fff;
-
-}
-div.PageListHeader .inner_border
-{
- padding-top: 5pt;
- padding-right: 5pt;
- padding-bottom: 5pt;
- padding-left: 5pt;
-}
-
-.moduletoolbar
-{
- background-color: #293146;
- color: #fff;
-}
-
-div.BodySectionHeader
-{
-
- font-weight: bold;
-}
-
-button.Button_ImgPlacer
-{
-
- background-color: rgba(0%,0%,0%,0);
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
-
-
- font-weight: bold;
- font-size: 10pt;
- color: #fff;
-}
-button.Button_ImgPlacer .inner_border
-{
- padding-top: 0pt;
- padding-right: 0pt;
- padding-bottom: 0pt;
- padding-left: 0pt;
-}
-
-
-div.PageHeadTitle
-{
- font-size: 18pt;
- color: #fff;
-}
-
-div.ListView_SectionHeader
-{
-
- background-color: rgba(22.3529%,26.6667%,38.4314%,1);
-
-}
-
-button.toolbarbtn
-{
- border: 0.5px solid #c6c6c6;
-
- background-color: rgba(0%,0%,0%,0);
-
- color: #fff;
-}
-button.toolbarbtn:hover
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-button.toolbarbtn:pressed
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-button.toolbarbtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-a.toolbarbtn
-{
- border: 0.5px solid #c6c6c6;
- background-color: rgba(0%,0%,0%,0);
- color: #fff;
- text-decoration: none!important;
- font-size: 13pt!important;
-}
-a.toolbarbtn:hover
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-a.toolbarbtn:pressed
-{
-
- background-color: rgba(20.3922%,20.3922%,20.3922%,1);
-
-}
-butaton.toolbarbtn:focus
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
-}
-
-
-div.ListView_Header
-{
- border-top-color: rgba(80%,80%,80%,1);
- border-right-color: rgba(80%,80%,80%,1);
- border-bottom-color: rgba(80%,80%,80%,1);
- border-left-color: rgba(80%,80%,80%,1);
- border-top-style: solid;
- border-right-style: solid;
- border-bottom-style: solid;
- border-left-style: solid;
- border-top-width: 1pt;
- border-right-width: 1pt;
- border-bottom-width: 1pt;
- border-left-width: 1pt;
- font-weight: normal;
- color: #fff;
-
-}
-div.ListView_Header .inner_border
-{
- padding-top: 2pt;
- padding-right: 2pt;
- padding-bottom: 2pt;
- padding-left: 2pt;
-}
-
-div.toolbar
-{
- /* */
- /* background-color: rgba(32.1569%,38.8235%,55.6863%,1); */
- background-color: #003268;
- /* */
-}
-
-div.FooterLabel
-{
- color: #fff;
-}
-
-button.Buttom_BodyNav:hover
-{
-
- background-color: rgb(141, 141, 141);
-
- /* color: #fff; */
-}
-
-
-/* div.portalpanel {
- display: -webkit-box;
- width: 100%;
-} */
-
-/* .portal{
- width: 100%;
- table-layout: fixed;
- border-collapse: collapse;
-}
-
-.portal tbody{
-display:block;
-width: 100%;
-overflow-y: scroll;
-
-}
-
-.portal thead tr,.portal tfoot tr {
- display: block;
- width: 100%;
-
-}
-
-.portal thead,.portal tfoot {
-background: #384462;
-color:#fff;
-}
-
-.portal th, .portal td {
-padding: 5px;
-text-align: left;
-width: 100%;
- border: 1px solid #c6c6c6;
-
-}
-
-.portal tbody tr:nth-child(even) {
- background-color: rgb(247, 247, 247);
-}
-
-.portal tbody tr:hover{
- background-color: #959fb9;
-}
-
-.portal_selected {
- background-color: #acacac!important;
-} */
-
-
-
-
-::-webkit-scrollbar {
--webkit-appearance: none;
-width: 10px;
-}
-
-::-webkit-scrollbar-track {
- background-color: rgba(80%, 80%, 80%, .5);
-}
-
-::-webkit-scrollbar-thumb {
-border-radius: 0px;
-background-color: rgba(0, 0, 0, .5);
--webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
-}
-
-div.portaltextheader {
- padding: 2px;
- border: 1px solid white;
-}
-
-
-
-
-
-select {
- /* -webkit-appearance: none; */
- display: block;
- color: #000;
- line-height: 1line;
- text-align: left;
- padding: 3.5px;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- margin: 0;
- border: 0;
- border-bottom: 1px solid #cccccc;
- /* box-shadow: 0 1px 0 1px rgba(0,0,0,.04); */
- border-radius: 0px;
- font-weight: normal;
- font-size: 11pt;
- background-color: #fff;
- /* background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right .7em top 50%, 0 0;
- background-size: .65em auto, 100%; */
-}
-
-
-/* option {
- appearance: none;
- border: 1px solid 0070cf;
- padding: 2px;
-} */
-select:focus
-{
- outline: 1px solid #3a6fc3;
- /* border: 1px solid #3a6fc3; */
- /* border-radius: unset; */
-}
-
-
-::-webkit-select-placeholder
-{
- color: #9a9a9a;
-}
-
-div.DataFooter{
- background: #384462;
-}
-.input-sum{padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D; }
-
-
-.currency-sum {padding:2px;display:block;border: 1px solid #ccc;width:100%;background-color: #4D4D4D;}
-
-.currency-sum,.currency-sum:read-only {
- display: block;
- color: #fff;
- padding: 2px;
- padding-right: 12px;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- margin: 0;
- border: 1px solid #ccc;
- border-radius: unset;
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- background-color: #4D4D4D;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20fill=%22white%22%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%3C/svg%3E');
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-
-
-
-/* input[type=date]::-webkit-inner-spin-button,
-input[type=date]::-webkit-outer-spin-button {
- display: none;
-} */
-
-:focus {
- outline: unset;
-}
-
-input
-{
- background-color: #ffffff;
- border: 0;
- border-bottom: 1px solid #cccccc;
- font-weight: normal;
- font-size: 11pt;
- color: #000000;
- line-height: 1line;
- text-align: left;
- width:100%;
- padding:2px;
- display:block;
- border-radius: 3px;
-}
-/* input:focus
-{
- border: #0070cf;
-} */
-
-input:focus {
- border: 1px solid #3a6fc3;
- border-radius: unset;
-}
-
-input[readonly=true]{
- color: #000!important;
- background-color: #d3d3d3!important;
-}
-
-/* input[type=number]::-webkit-inner-spin-button,
-input[type=number]::-webkit-outer-spin-button {
- -webkit-appearance: none;
- margin: 0;
-} */
-/* input[type=checkbox]{
- appearance: none;
- display:inline-block;
- font-size: 24px!important;
- border: 1px solid green;
-} */
-
-input[class=currency] {
- padding: 2px;
- padding-right: 12px;
- text-align: right;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-input[class=currency]:read-only {
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22225%22%20height=%22300%22%3E%3Cpath%20stroke=%22none%22%20d=%22m%20224.99996,16.22698%20-8.11342,36.41161%20q%20-24.14255,-19.78892%20-54.61741,-19.78892%20-41.3588,0%20-65.00658,23.74671%20-23.647774,23.7467%20-28.397115,53.23215%20l%20134.960355,0%20-5.14505,26.71508%20-132.981532,0%20-0.395848,7.71771%200.395848,18.20566%20127.242642,0%20-5.14505,26.71508%20-117.941954,0%20q%207.519719,40.17154%2032.552754,59.06997%2025.03303,18.89844%2056.49745,18.89844%2037.20302,0%2057.98149,-19.59107%20l%200,40.9631%20Q%20192.34828,300%20162.26913,300%2053.034301,300%2030.474864,189.18206%20l%20-30.474864,0%205.738751,-26.71508%2020.580475,0%20q%20-0.395708,-4.74934%20-0.395708,-17.80995%20l%200,-8.11342%20-25.923518,0%205.738751,-26.71508%2023.152999,0%20Q%2039.181988,55.21112%2076.583149,27.60556%20113.98417,0%20163.06069,0%20199.868,0%20224.99996,16.22698%20z%22%20/%3E%0A%3C/svg%3E'),
- linear-gradient(to bottom, #d3d3d3 0%,#d3d3d3 100%);
-}
-
-input[class=percent] {
- padding: 2px;
- padding-right: 12px;
- text-align: right;
- background-image: url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22256%22%20height=%22232%22%20version=%221.0%22%3E%3Cg%20transform=%22translate(-112.3674,-128.3649)%22%3E%3Cpath%20style=%22fill:black;fill-opacity:1;stroke:none%22%20d=%22M%20317.1674,257.53698%20C%20308.53463,257.53708%20301.73774,261.20839%20296.77671,268.55094%20C%20291.91449,275.89365%20289.48349,286.1138%20289.48368,299.2114%20C%20289.48349,312.11067%20291.91449,322.2812%20296.77671,329.72303%20C%20301.73774,337.06568%20308.53463,340.737%20317.1674,340.73698%20C%20325.60128,340.737%20332.24934,337.06568%20337.11159,329.72303%20C%20342.07258,322.2812%20344.5532,312.11067%20344.55345,299.2114%20C%20344.5532,286.21302%20342.07258,276.04249%20337.11159,268.69977%20C%20332.24934,261.25801%20325.60128,257.53708%20317.1674,257.53698%20M%20317.1674,238.63466%20C%20332.84469,238.63477%20345.29739,244.09213%20354.52554,255.00675%20C%20363.75318,265.92157%20368.36713,280.65644%20368.3674,299.2114%20C%20368.36713,317.76648%20363.70357,332.50135%20354.37671,343.41605%20C%20345.14855,354.23156%20332.74546,359.6393%20317.1674,359.63931%20C%20301.29123,359.6393%20288.7393,354.23156%20279.51159,343.41605%20C%20270.28351,332.50135%20265.66956,317.76648%20265.66973,299.2114%20C%20265.66956,280.55721%20270.28351,265.82234%20279.51159,255.00675%20C%20288.83853,244.09213%20301.39045,238.63477%20317.1674,238.63466%20M%20163.5674,147.9928%20C%20155.03401,147.993%20148.28673,151.71393%20143.32554,159.15559%20C%20138.46349,166.49841%20136.03248,176.61933%20136.03252,189.51838%20C%20136.03248,202.61621%20138.46349,212.83635%20143.32554,220.17884%20C%20148.18751,227.52161%20154.93479,231.19292%20163.5674,231.1928%20C%20172.19989,231.19292%20178.94717,227.52161%20183.80926,220.17884%20C%20188.77041,212.83635%20191.25103,202.61621%20191.25113,189.51838%20C%20191.25103,176.71856%20188.77041,166.59764%20183.80926,159.15559%20C%20178.84794,151.71393%20172.10066,147.993%20163.5674,147.9928%20M%20297.9674,129.09047%20L%20321.78136,129.09047%20L%20182.7674,359.63931%20L%20158.95345,359.63931%20L%20297.9674,129.09047%20M%20163.5674,129.09047%20C%20179.24484,129.0907%20191.74715,134.54806%20201.07438,145.46256%20C%20210.4014,156.27827%20215.06496,170.96352%20215.06508,189.51838%20C%20215.06496,208.27201%20210.4014,223.05649%20201.07438,233.87187%20C%20191.84638,244.68748%20179.34406,250.09523%20163.5674,250.09512%20C%20147.79061,250.09523%20135.28829,244.68748%20126.06043,233.87187%20C%20116.93172,222.95727%20112.36739,208.17279%20112.3674,189.51838%20C%20112.36739,171.06275%20116.98134,156.37749%20126.20926,145.46256%20C%20135.43713,134.54806%20147.88983,129.0907%20163.5674,129.09047%22%20/%3E%3C/g%3E%3C/svg%3E'),
- linear-gradient(to bottom, #fff 0%,#fff 100%);
- background-repeat: no-repeat, repeat;
- background-position: right 2px top 50%, 0 0;
- background-size: 9px auto, 100%;
-}
-
-
-label {
- height: 12.8px!important;
- color: #757575;
- font-size: 8pt;
-}
-
-
-
-input[type="checkbox"] {
- display: block;
- -webkit-appearance:none;/* Hides the default checkbox style */
- height:29.66px;
- width:29.66px;
- cursor:pointer;
- position:relative;
- -webkit-transition: .15s;
- border-radius: unset;
- border: 1px solid #cccccc;
- background-color:#fff;
- }
-
- input[type="checkbox"]:checked {
- background-color:green;
- }
-
- input[type="checkbox"]:before, input[type="checkbox"]:checked:before {
- position:absolute;
- top:0;
- left:0;
- width:100%;
- height:100%;
- line-height:2em;
- text-align:center;
- color:#fff;
- content: '';
- }
-
- input[type="checkbox"]:checked:before {
- font-size: 11pt;
- content: '✔';
- }
-
- input[type="checkbox"]:hover:before {
- background:rgba(255,255,255,0.3);
- }
-
-
- body.mceContentBody {
- background:#e8f0fe;
- color:#000;
-}
-
-/* .mceContentBody {
- background: #e8f0fe;
- color:#000;
-} */
-
-/* .tabulator-row-even {
- background-color: #757575;
-} */
-
-
-input:hover:enabled , select:hover:enabled {
- outline: 1px solid #607d8b;
- outline-offset: -1px;
- /* Opera/IE 8+ */
-}
-input:focus:enabled, select:focus:enabled {
- outline: 1px solid #607d8b;
- outline-offset: -1px;
- /* Opera/IE 8+ */
-}
-
-input[type="time"]::-webkit-calendar-picker-indicator {
- display: none;
-}
-
-.border-bottom {
- border-bottom: 2px solid #00bcd4;
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
\ No newline at end of file
+++ /dev/null
-{
- "name": "App",
- "icons": [
- {
- "src": "\/android-icon-36x36.png",
- "sizes": "36x36",
- "type": "image\/png",
- "density": "0.75"
- },
- {
- "src": "\/android-icon-48x48.png",
- "sizes": "48x48",
- "type": "image\/png",
- "density": "1.0"
- },
- {
- "src": "\/android-icon-72x72.png",
- "sizes": "72x72",
- "type": "image\/png",
- "density": "1.5"
- },
- {
- "src": "\/android-icon-96x96.png",
- "sizes": "96x96",
- "type": "image\/png",
- "density": "2.0"
- },
- {
- "src": "\/android-icon-144x144.png",
- "sizes": "144x144",
- "type": "image\/png",
- "density": "3.0"
- },
- {
- "src": "\/android-icon-192x192.png",
- "sizes": "192x192",
- "type": "image\/png",
- "density": "4.0"
- }
- ]
-}
\ No newline at end of file
+++ /dev/null
-#!/usr/local/bin/perl
-
-use strict;
-use FindBin qw/$Bin $RealBin/;
-#use lib ('app/lib/perl5');
-use lib ($RealBin.'/website/lib');
-use lib ($RealBin.'/lib');
-use File::Basename;
-use Template;
-# use Template::Constants qw( :debug );
-use CGI;
-use CGI::Carp qw/fatalsToBrowser/;
-use dksconfig qw($sitecfg);
-#use FindBin qw($Bin $RealBin);
-
-use Data::Dumper;
-use JSON::PP;
-use URI::Encode qw /uri_encode/;
-
-
-my $cgi = new CGI();
-my $p=();
-my $vars = $sitecfg;
-my @params = $cgi->param();
-foreach my $pp (@params){
- $p->{$pp} = $cgi->param($pp);
-}
-
-$vars->{filepath} = substr($cgi->url({-absolute=>1}),length($vars->{basepath})+1);
-$vars->{baseurl} = $cgi->url({-base=>1}).$vars->{basepath};
-$vars->{url} = $cgi->url({-full=>1});
-$vars->{encodedurl} = uri_encode($vars->{url},{encode_reserved => 1});
-
-if ($vars->{filepath} ne ""){
- $vars->{page} = $vars->{filepath};
- $vars->{page} =~ s/html$/tt/;
-
-}
-$vars->{abspath} = "";
-$vars->{pagelink} = basename($vars->{page});
-$vars->{pagelink} =~ s/\.tt$//;
-
-
-#}
-#$p->{dirname} = dirname($0);
-#if (!exists($p))
-#$p->{baseurl} = $cgi->url({-base=>1});
-#$p->{pathinfo} =
-#$p->{basepath} = ;
-
-# if (!exists($p->{sid}))
-# {
-# $p->{sid} = $cgi->cookie('juridig');
-# }
-# my $se = session->new();
-# my $sesdata = $se->getsession($p->{sid});
-# if (!exists($sesdata->{usersession})){
-# $p->{page} = "login";
-# }
-print $cgi->header(-type=>'text/html', -charset=>"utf-8");
-my $template = Template->new({INCLUDE_PATH => [$sitecfg->{tmplpath}]});
-my @lv = split(/\//,$vars->{filepath});
-my $absnum = scalar(@lv)-1;
-$vars->{abspath} = "";
-for (my $i=0;$i<$absnum;$i++){
- $vars->{abspath} .= "../";
-}
-$vars->{params} = $p;
-$vars->{pageshort} = $vars->{page};
-$vars->{page} = 'page/'.$vars->{page};
-
-$vars->{pagename} = basename($vars->{page});
-
-# $vars->{dbconn} = 'DBI:SQLite:dbname=fld.sqlite';
-$vars->{pagename} =~ s/\.tt$//;
-#print Dumper($vars);
-if (! -e $sitecfg->{tmplpath}.'/'.$vars->{page}){
- mkdir(dirname(dirname($0).'/tmpl/'.$vars->{page}));
- open(NP,">".dirname($0).'/tmpl/'.$vars->{page});
- print NP $vars->{page};
- close(NP);
-}
-#print Dumper($vars);
-my $skl = "index.tt";#dirname($vars->{page});
-if (-e $sitecfg->{tmplpath}.'/'.basename($vars->{page})){
- $skl = basename($vars->{page});
-}
-# print Dumper($template);
-$template->process($skl,$vars) || die "Template process failed: ", $template->error(), "\n";
-
-
+++ /dev/null
-<?php
- require('lib/vendor/mustache/mustache/src/Mustache/Autoloader.php');
- Mustache_Autoloader::register();
-
- require("lib/config.php");
- require("lib/database.php");
-
- $vars = array();
- $vars["page"] = 'home.html';
- if ($_SERVER["REQUEST_URI"] != $cfg["basepath"]){
- $vars["filepath"] = $_SERVER["REQUEST_URI"];
- $vars["page"] = substr($vars["filepath"],strlen($cfg["basepath"]));
- }
- $vars["contenttype"] = "text/html";
- if (substr($vars["page"],-3) == "css"){
- $vars["contenttype"] = "text/css";
- } elseif (substr($vars["page"],-2) == "js"){
- $vars["contenttype"] = "text/javascript";
- }
- header('Content-Type: '.$vars["contenttype"]);
-
- if (!file_exists($cfg["templatepath"].'/pages/'.$vars["page"].'.mustache'))
- {
- $vars["page"] = 'error.html';
- }
- if (file_exists($cfg["templatepath"].'/pages/'.$vars["page"].'json')){
- $db = new database($cfg["db"]);
- $tmpdata = file_get_contents($cfg["templatepath"].'/pages/'.$vars["page"].'json');
- try {
- $vars["data"] = json_decode($tmpdata,true);
- foreach ($vars["data"] as $key => $value) {
- if ($value["sql"]){
- if ($value["sqltype"] == "query"){
- $vars["data"][$key] = $db->query($value["sql"]);
- } elseif ($value["sqltype"] == "queryarray"){
- $vars["data"][$key] = $db->queryarray($value["sql"]);
- }
- }
- }
- } catch(JsonException $je){
- fwrite(STDERR, "JSON ERROR: ".$je->getMessage()."\n");
- }
-
- }
- $vars["page"] = 'pages/'.$vars["page"];
- $m = new Mustache_Engine(array(
- 'loader' => new Mustache_Loader_FilesystemLoader($cfg["templatepath"]),
- 'partials_loader' => new Mustache_Loader_FilesystemLoader($cfg["templatepath"].'/blocks'),
- 'escape' => function($value) {
- return $value;
- },
- 'entity_flags' => ENT_HTML5
-
- ));
-
- $vars["pagedata"] = $m->render($vars["page"],$vars);
-
- $mainsite = $m->render('index.html',$vars);
- echo $mainsite;
- // echo "<pre>".print_r($vars).print_r($_SERVER["REQUEST_URI"])."</pre>";
-?>
\ No newline at end of file
+++ /dev/null
-function togglemenu(){
- var mnu = document.getElementById("mobilemenu");
- if (mnu.style.display == 'none'){
- mnu.style.display = 'block';
- } else {
- mnu.style.display = 'none';
- }
-}
\ No newline at end of file
+++ /dev/null
-{
- "require":{
- "mustache/mustache":"2.13.0"
- }
-}
\ No newline at end of file
+++ /dev/null
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
- "This file is @generated automatically"
- ],
- "content-hash": "92525a9a1d7680bb4e3111b321d46087",
- "packages": [
- {
- "name": "mustache/mustache",
- "version": "v2.13.0",
- "source": {
- "type": "git",
- "url": "https://github.com/bobthecow/mustache.php.git",
- "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/e95c5a008c23d3151d59ea72484d4f72049ab7f4",
- "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2.4"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "~1.11",
- "phpunit/phpunit": "~3.7|~4.0|~5.0"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Mustache": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Justin Hileman",
- "email": "justin@justinhileman.info",
- "homepage": "http://justinhileman.com"
- }
- ],
- "description": "A Mustache implementation in PHP.",
- "homepage": "https://github.com/bobthecow/mustache.php",
- "keywords": [
- "mustache",
- "templating"
- ],
- "time": "2019-11-23T21:40:31+00:00"
- }
- ],
- "packages-dev": [],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": [],
- "platform-dev": [],
- "plugin-api-version": "1.1.0"
-}
+++ /dev/null
-<?php
- $cfg = array(
- "basepath" => "/ledf_lu/",
- "templatepath" => "tmpl/",
- "db"=> array(
- "type" => "pgsql",
- "host" => "sql12.your-server.de",
- "dbname" => "ledflu_db",
- "user" => "ledflu_user",
- "password" => "znWA9s3cgjEsRsWZ",
- ),
- );
-?>
\ No newline at end of file
+++ /dev/null
-<?php
-class database {
- private $conn;
- private $dbconf;
- protected function __construct($pdbconf){
- $this->dbconf = $pdbconf;
- try {
- //'mysql:host=<localhost>;dbname=<database>', $user, password
- //'sqlite:/opt/databases/mydb.sq3
- //pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass
- $this->conn = new PDO($this->dbconf["type"].':host='.$this->dbconf["host"].';port=5432;dbname='.$this->dbconf["dbname"],$this->dbconf["user"],$this->dbconf["password"]);
- } catch(PDOException $e){
- fwrite(STDERR, "Connectio Error: ".$e->getMessage()."\n");
- }
- }
-
- protected function securetext($text){
- return str_replace("'","''",$text);
- }
- protected function value($text){
- if (($text == "") || ($text == null)){
- return 'null';
- }
- return "'".$text."'";
- }
-
- protected function query($sql){
- try {
- if ($this->conn){
- return $this->conn->query($sql);
- }
- } catch(PDOException $e){
- fwrite(STDERR, "QUERY ERROR: ".$sql."\n");
- }
- return null;
- }
-
- protected function queryarray($sql){
- $result = null;
- try {
- if ($this->conn){
- $sth = $this->link->prepare($sql);
- $sth->execute();
- $result = $sth->fetchAll(PDO::FETCH_ASSOC);
- return $result;
- }
- } catch (PDOException $e){
- fwrite(STDERR, "QUERYARRAY ERROR: ".$sql."\n");
- }
- return $result;
- }
-
- protected function exec($sql){
- try {
- if ($this->conn){
- return $this->exec($sql);
- }
- } catch (PDOException $e){
- fwrite(STDERR, "EXEC ERROR: ".$sql."\n");
- }
- return -1;
- }
-
- protected function __destruct(){
- $this->conn = null;
- }
-}
-?>
\ No newline at end of file
+++ /dev/null
-package dksconfig;
-
-use strict;
-# use lib ('./lib/perl5');
-# use lib ('./lib');
-# use lib ('./');
-use File::Basename;
-use Exporter 'import';
-our @EXPORT_OK = qw($sitecfg);
-
-our $sitecfg ={
- # cookiename => 'potlu',
- # dbtype => 'PgPP',
- dsn => 'DBI:PgPP:dbname=websites_db;host=localhost',
- dbschema => 'ledf',
- dbuser => 'websites_user',
- dbpassword => 'websites_pwd',
- page => 'index.tt',
- pagename => 'index',
- basepath => substr(dirname($0),length($ENV{"DOCUMENT_ROOT"})),
- # datapath => substr((exists($ENV{"SCRIPT_FILENAME"})?dirname($ENV{"SCRIPT_FILENAME"}):dirname($0)),length($ENV{"DOCUMENT_ROOT"})).'/data/',
- # apidatapath => substr((exists($ENV{"SCRIPT_FILENAME"})?dirname(dirname($ENV{"SCRIPT_FILENAME"})):dirname(dirname($0))),length($ENV{"DOCUMENT_ROOT"})).'/data/',
- docroot => $ENV{"DOCUMENT_ROOT"},
- # registration_enabled => '0',
- # default_group => 'users',
- tmplpath => dirname($0).'/tmpl'
- # sitename => 'Accès - Client',
- # mail => {
- # server => "mail.your-server.de",
- # port => "587",
- # user => 'ksaffran@dks.lu',
- # password => "FB1ia1ka",
- # from => 'support@dks.lu',
- # templates => {
- # user_registration => "Confirmation requis pour votre création de compte sur pot.lu",
- # user_forgotpasswd => "Nouveau mot de passe pour le site pot.lu",
- # user_verification => "Validation de votre Email pour le site pot.lu",
- # user_newpassword => "coordonnées d'accès de votre compte sur pot.lu"
- # }
- # }
-};
-
-1;
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html>
-<html dir="ltr" lang="fr">
- <head>
- <meta charset="utf-8">
-
- <title>LEDF - Letzebuerger Elecronique Darts Federation</title>
- <meta name="author" content="Kilian Saffran - DKS sarl">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <!-- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="0" /> -->
- <meta name="robots" content="noindex,nofollow">
- <link rel="apple-touch-icon" sizes="57x57" href="img/favicon/apple-icon-57x57.png">
-<link rel="apple-touch-icon" sizes="60x60" href="img/favicon/apple-icon-60x60.png">
-<link rel="apple-touch-icon" sizes="72x72" href="img/favicon/apple-icon-72x72.png">
-<link rel="apple-touch-icon" sizes="76x76" href="img/favicon/apple-icon-76x76.png">
-<link rel="apple-touch-icon" sizes="114x114" href="img/favicon/apple-icon-114x114.png">
-<link rel="apple-touch-icon" sizes="120x120" href="img/favicon/apple-icon-120x120.png">
-<link rel="apple-touch-icon" sizes="144x144" href="img/favicon/apple-icon-144x144.png">
-<link rel="apple-touch-icon" sizes="152x152" href="img/favicon/apple-icon-152x152.png">
-<link rel="apple-touch-icon" sizes="180x180" href="img/favicon/apple-icon-180x180.png">
-<link rel="icon" type="image/png" sizes="192x192" href="img/favicon/android-icon-192x192.png">
-<link rel="icon" type="image/png" sizes="32x32" href="img/favicon/favicon-32x32.png">
-<link rel="icon" type="image/png" sizes="96x96" href="img/favicon/favicon-96x96.png">
-<link rel="icon" type="image/png" sizes="16x16" href="img/favicon/favicon-16x16.png">
-<link rel="manifest" href="img/favicon/manifest.json">
-<meta name="msapplication-TileColor" content="#ffffff">
-<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
-<meta name="theme-color" content="#ffffff">
- <link rel="stylesheet" href="css/icons.css?v=1">
- <link rel="stylesheet" href="css/theme.css?v=1">
- <style>
-
- .bgimg {
- background-image: url('img/bg.png');
- min-height: 100%;
- background-position: center;
- background-size: cover;
- }
- </style>
- </head>
- <body>
-
- <div class="top hide-small hide-medium">
- <div class="bar black" style="border-bottom: 2px solid #00bcd4;">
- <div class="bar-item"><span class="xlarge">L.E.D.F.</span><br><small>Lëtzebuerger Electronique Darts Federation</small></div>
- </div>
- </div>
- <div class="top hide-large">
- <div class="bar black" style="border-bottom: 2px solid #00bcd4;">
- <div class="bar-item"><span class="xlarge">L.E.D.F.</span><br><small>Lëtzebuerger Electronique Darts Federation</small></div>
-
- </div>
-
- </div>
- <div class="display-container bgimg" style="height: calc(100vh - 70px);margin-top: 70px; overflow-y: scroll;">
- <div class="row center" style="min-height: 500px; width: 100%;">
- <div class="text-red" style="margin-top: 100px;"><h1>Comming Soon - Site Under Construction</h1></div>
- </div>
- <div class="row dark-grey" style="margin-top: 10px;border-top: 2px solid #00bcd4;">
- <div class="third" style="padding: 20px;">
- <address><span class="font-weight: bold;">Lëtzebuerger Electronique Darts Federation ASBL</span><br>
- 6, rue des Alliés<br/>
-L-4412 Belvaux</address>
- </div>
- </div>
- <div class="row center padding-large dark-grey">
- Powered by <a href="https://www.dks.lu" target="_blank">DKS s.à r.l.</a>
- </div>
- </div>
-
-
-
- <script src="js/site.js"></script>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html>
-<html dir="ltr" lang="fr">
- <head>
- <meta charset="utf-8">
-
- <title>LEDF - Letzebuerger Elecronique Darts Federation</title>
- <meta name="author" content="Kilian Saffran - DKS sarl">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <!-- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="0" /> -->
- <meta name="robots" content="index,follow">
- <link rel="apple-touch-icon" sizes="57x57" href="img/favicon/apple-icon-57x57.png">
-<link rel="apple-touch-icon" sizes="60x60" href="img/favicon/apple-icon-60x60.png">
-<link rel="apple-touch-icon" sizes="72x72" href="img/favicon/apple-icon-72x72.png">
-<link rel="apple-touch-icon" sizes="76x76" href="img/favicon/apple-icon-76x76.png">
-<link rel="apple-touch-icon" sizes="114x114" href="img/favicon/apple-icon-114x114.png">
-<link rel="apple-touch-icon" sizes="120x120" href="img/favicon/apple-icon-120x120.png">
-<link rel="apple-touch-icon" sizes="144x144" href="img/favicon/apple-icon-144x144.png">
-<link rel="apple-touch-icon" sizes="152x152" href="img/favicon/apple-icon-152x152.png">
-<link rel="apple-touch-icon" sizes="180x180" href="img/favicon/apple-icon-180x180.png">
-<link rel="icon" type="image/png" sizes="192x192" href="img/favicon/android-icon-192x192.png">
-<link rel="icon" type="image/png" sizes="32x32" href="img/favicon/favicon-32x32.png">
-<link rel="icon" type="image/png" sizes="96x96" href="img/favicon/favicon-96x96.png">
-<link rel="icon" type="image/png" sizes="16x16" href="img/favicon/favicon-16x16.png">
-<link rel="manifest" href="img/favicon/manifest.json">
-<meta name="msapplication-TileColor" content="#ffffff">
-<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
-<meta name="theme-color" content="#ffffff">
- <link rel="stylesheet" href="css/icons.css?v=1">
- <link rel="stylesheet" href="css/theme.css?v=1">
- <style>
-
- .bgimg {
- background-image: url('img/bg.png');
- min-height: 100%;
- background-position: center;
- background-size: cover;
- }
- </style>
- </head>
- <body>
-
- <div class="top hide-small hide-medium">
- <div class="bar black" style="border-bottom: 2px solid #00bcd4;">
- <div class="bar-item"><span class="xlarge">L.E.D.F.</span><br><small>Lëtzebuerger Electronique Darts Federation</small></div>
- <a class="bar-item toolbarbtn" href="home.html">Home</a>
- <a class="bar-item toolbarbtn" href="news.html">Nouveautés</a>
- <a class="bar-item toolbarbtn" href="calendrier.html">Calendrier</a>
- <a class="bar-item toolbarbtn" href="clubs.html">Clubs</a>
- <a class="bar-item toolbarbtn" href="championnat.html">Championnat</a>
- <a class="bar-item toolbarbtn" href="listederang.html">Liste de Rang</a>
- <a class="bar-item toolbarbtn" href="coupe.html">Coupe</a>
- </div>
- </div>
- <div class="top hide-large">
- <div class="bar black" style="border-bottom: 2px solid #00bcd4;">
- <div class="bar-item"><span class="xlarge">L.E.D.F.</span><br><small>Lëtzebuerger Electronique Darts Federation</small></div>
- <button class="button bar-item right" onclick="togglemenu();"><span class="xxlarge icon-menu"></span></button>
- </div>
- <div class="bar-block black" id="mobilemenu" style="display: none;">
- <a class="bar-item toolbarbtn border-bottom" href="home.html">Home</a>
- <a class="bar-item toolbarbtn border-bottom" href="news.html">Nouveautés</a>
- <a class="bar-item toolbarbtn border-bottom" href="calendrier.html">Calendrier</a>
- <a class="bar-item toolbarbtn border-bottom" href="clubs.html">Clubs</a>
- <a class="bar-item toolbarbtn border-bottom" href="championnat.html">Championnat</a>
- <a class="bar-item toolbarbtn border-bottom" href="listederang.html">Liste de Rang</a>
- <a class="bar-item toolbarbtn border-bottom" href="coupe.html">Coupe</a>
- </div>
- </div>
- <div class="display-container bgimg" style="height: calc(100vh - 70px);margin-top: 70px; overflow-y: scroll;">
- <div class="row" style="min-height: 500px;">
- {{pagedata}}
- </div>
- <div class="row dark-grey" style="margin-top: 10px;border-top: 2px solid #00bcd4;">
- <div class="third" style="padding: 20px;">
- <address><span class="font-weight: bold;">Lëtzebuerger Electronique Darts Federation ASBL</span><br>
- 6, rue des Alliés<br/>
-L-4412 Belvaux</address>
- </div>
- <div class="third" style="padding: 20px;">
- <div class="bar-block">
- <a class="bar-item button" href="federation.html">La Fédération</a>
- <a class="bar-item button" href="documents.html">Documents</a>
- </div>
- </div>
- <div class="third" style="padding: 20px;">
- <div class="bar-block">
- <a class="bar-item button" href="impressum.html">Impressum</a>
- <a class="bar-item button" href="terms.html">Conditions Générales</a>
- <a class="bar-item button" href="privacy.html">Protection des données</a>
- </div>
- </div>
- </div>
- <div class="row center padding-large dark-grey">
- Powered by <a href="https://www.dks.lu" target="_blank">DKS s.à r.l.</a>
- </div>
- </div>
-
-
-
- <script src="js/site.js"></script>
-</body>
-</html>
+++ /dev/null
-[% FOREACH ilbl= dksdb.query("select id,${lang} as lbl from labels;") %]
-[% lbl.${ilbl.item('id')} = ilbl.item('lbl') %]
-[% END %]
\ No newline at end of file
+++ /dev/null
-{
- "dayscol1":{"sqltype":"queryarray","sql":"SELECT id, to_char(daydate,'DD.MM.YYYY') as daydate, calendar, calgroup, calpublisstart, calpublishend, to_char(calstartime,'HH24:MI') as calstarttime, to_char(calendtime,'HH24:MI') as calendtime, caltitle, caldescription, callocation, callocationaddress FROM calendar WHERE calendar=(select prefvalue from config where pref='season') and calgroup='aller' order by daydate asc;"},
- "dayscol2":{"sqltype":"queryarray","sql":"SELECT id, to_char(daydate,'DD.MM.YYYY') as daydate, calendar, calgroup, calpublisstart, calpublishend, to_char(calstartime,'HH24:MI') as calstarttime, to_char(calendtime,'HH24:MI') as calendtime, caltitle, caldescription, callocation, callocationaddress FROM calendar WHERE calendar=(select prefvalue from config where pref='season') and calgroup='retoour' order by daydate asc;"}
-}
+++ /dev/null
-<div class="container margin black">
-<div class="bar black">
- <div class="bar-item"><h3>Calendrier Saison 2020-2021</h3></div>
-</div>
-</div>
-
-<div class="container padding-large half">
- <div class="container white" style="opacity: 0.7;">
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY <a href="#" class="text-blue">(<span class="icon-map2"></span> location)</small></a></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity:1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY <a href="#" class="text-blue">(<span class="icon-map2"></span> location)</small></a></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity:1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large half">
- <div class="container white" style="opacity: 0.7;">
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY <a href="#" class="text-blue">(<span class="icon-map2"></span> location)</small></a></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity:1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY <a href="#" class="text-blue">(<span class="icon-map2"></span> location)</small></a></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity:1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- </div>
-</div>
+++ /dev/null
-
-<div class="twothird">
- <div class="container padding-large">
- <div class="bar black">
- <div class="bar-item">Résultats (Jounée X)</div>
- </div>
- <div class="container white" style="opacity: 0.7;">
- <div class="bar black">
- <div class="bar-item">division nationale </div>
- </div>
- <table class="table table-all">
- <thead>
- <tr><th>Team home</th><th>Team visiteur</th><th style="width: 80px;">Résultat</th></tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- </tbody>
- </table>
- <div class="bar black">
- <div class="bar-item">division d'honneur </div>
- </div>
- <table class="table table-all">
- <thead>
- <tr><th>Team home</th><th>Team visiteur</th><th style="width: 80px;">Résultat</th></tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- </tbody>
- </table>
- <div class="bar black">
- <div class="bar-item">division 1 </div>
- </div>
- <table class="table table-all">
- <thead>
- <tr><th>Team home</th><th>Team visiteur</th><th style="width: 80px;">Résultat</th></tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- <tr><td>Team 1</td><td>Team 2</td><td class="right-align">00 - 00</td></tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="container padding-large">
- <div class="bar black">
- <div class="bar-item">Classement </div>
- </div>
- <div class="container white" style="opacity: 0.7;">
- <div class="bar black">
- <div class="bar-item">division nationale </div>
- </div>
- <table class="table table-all">
- <thead>
- <tr>
- <th class="right-align">PL</th>
- <th>TEAM</th>
- <th class="right-align">GESP</th>
- <th class="right-align">GEW</th>
- <th class="right-align">GL</th>
- <th class="right-align">VRL</th>
- <th class="right-align">SCORE</th>
- <th class="right-align">DIF</th>
- <th class="right-align">SETS</th>
- <th class="right-align">DIF</th>
- <th class="right-align">PKT</th>
- </tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- </tbody>
- </table>
- <div class="bar black">
- <div class="bar-item">division nationale </div>
- </div>
- <table class="table table-all">
- <thead>
- <tr>
- <th class="right-align">PL</th>
- <th>TEAM</th>
- <th class="right-align">GESP</th>
- <th class="right-align">GEW</th>
- <th class="right-align">GL</th>
- <th class="right-align">VRL</th>
- <th class="right-align">SCORE</th>
- <th class="right-align">DIF</th>
- <th class="right-align">SETS</th>
- <th class="right-align">DIF</th>
- <th class="right-align">PKT</th>
- </tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- </tbody>
- </table>
- <div class="bar black">
- <div class="bar-item">division nationale </div>
- </div>
- <table class="table table-all">
- <thead>
- <tr>
- <th class="right-align">PL</th>
- <th>TEAM</th>
- <th class="right-align">GESP</th>
- <th class="right-align">GEW</th>
- <th class="right-align">GL</th>
- <th class="right-align">VRL</th>
- <th class="right-align">SCORE</th>
- <th class="right-align">DIF</th>
- <th class="right-align">SETS</th>
- <th class="right-align">DIF</th>
- <th class="right-align">PKT</th>
- </tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- <tr>
- <td class="right-align" style="width: 20px;">1 </td>
- <td>Team name</td>
- <td class="right-align">0</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">00</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- <td class="right-align">000</td>
- <td class="right-align">000 - 000</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
-
- <div class="container white" style="opacity: 0.7;">
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity:1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity:1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <div class="container white large">
- <a href="#">Journée 1</a>
- </div>
- </div>
- </div>
-</div>
-
-
+++ /dev/null
-<div class="container margin black">
-<div class="bar black">
- <div class="bar-item"><h3>Clubs</h3></div>
-</div>
-</div>
-
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt;"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
-<div class="container padding-large third">
- <div class="card container card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <header class="padding"><h3>EDC Club</h3></header>
- <div class="container white " style="padding-bottom: 10px;">
- <div class="quarter">
- <img src="img/club.png" style="width: 100%;" alt="club">
- </div>
- <div class="half">
- <h4>Salle de jeu</h4>
- <address>Café Nom du café<br/>1, rue Principale<br/>L-0000 Ville</adress>
- </div>
- <div>
- <a href="#"><span class="icon-map2" style="font-size: 30pt"></span></a>
- </div>
- </div>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-page/documents.tt
\ No newline at end of file
+++ /dev/null
-<h1 class="text-red">Sorry Site does not exist!</h1>
\ No newline at end of file
+++ /dev/null
-<div class="container margin black">
-<div class="bar black">
- <div class="bar-item"><h3>Le Comité</h3></div>
-</div>
-</div>
-<div class="row">
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Président</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Vize-Président</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Secrétaire</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Trésorier</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Directeur Sportif</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Membre</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Membre</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Membre</span></footer>
- </div>
-</div>
-<div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span><br/><span class="large" style="font-style: italic;">Membre</span></footer>
- </div>
-</div>
-</div>
-<br/>
-<div class="container margin black">
-<div class="bar black">
- <div class="bar-item"><h3>Le Tribunal</h3></div>
-</div>
-</div>
-<div class="row">
- <div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span></footer>
- </div>
- </div>
- <div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span></footer>
- </div>
- </div>
- <div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span></footer>
- </div>
- </div>
- <div class="container padding-large quarter">
- <div class="card container" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 0.8;">
- <div class="container white center" style="padding-bottom: 10px;">
- <img src="img/person.jpg" style="height: 150px;" >
- </div>
- <footer class="center"><span class="large">Nom Prénom</span></footer>
- </div>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-
-<div class="container padding-large twothird">
- <div class="bar black">
- <div class="bar-item">la féderation vous invite:</div>
- </div>
- <div class="container">
- <img src="img/news.png" style="width: 100%; opacity: 0.7;"/>
- </div>
- </div>
- <div class="container padding-large third">
- <div class="bar black">
- <div class="bar-item">prochaines événements:</div>
- </div>
- <div class="container white" style="opacity: 0.7;">
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity:1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- <div class="card" style="border-bottom: 1px solid #c6c6c6; margin-top: 5px; margin-bottom: 5px; opacity: 1;">
- <header><small>DD.MM.YYYY</small></header>
- <div class="container white large">
- Championnnat
- </div>
- </div>
- </div>
- </div>
+++ /dev/null
-page/impressum.tt
\ No newline at end of file
+++ /dev/null
-<div class="container margin black">
- <div class="bar black">
- <div class="bar-item"><h3>Saison 2020-2021</h3></div>
- </div>
- </div>
-<div class="half">
- <div class="container padding-large">
- <div class="bar black">
- <div class="bar-item">Liste de rang Hommes</div>
- </div>
- <div class="container white" style="opacity: 0.7;">
- <table class="table table-all">
- <thead>
- <tr>
- <th style="width: 50px;" class="right-align">#</th>
- <th>Nom</th>
- <th style="width: 50px;" class="right-align">RL1</th>
- <th style="width: 50px;" class="right-align">RL2</th>
- <th style="width: 50px;" class="right-align">RL3</th>
- <th style="width: 50px;" class="right-align">RL4</th>
- <th style="width: 50px;" class="right-align">RL5</th>
- <th style="width: 50px;" class="right-align">RL6</th>
- <th style="width: 50px;" class="right-align">RL7</th>
- <th style="width: 70px" class="right-align">Points</th>
- </tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
-</div>
-<div class="half">
- <div class="container padding-large">
- <div class="bar black">
- <div class="bar-item">Liste de rang Dammes</div>
- </div>
- <div class="container white" style="opacity: 0.7;">
- <table class="table table-all">
- <thead>
- <tr>
- <th style="width: 50px;" class="right-align">#</th>
- <th>Nom</th>
- <th style="width: 50px;" class="right-align">RL1</th>
- <th style="width: 50px;" class="right-align">RL2</th>
- <th style="width: 50px;" class="right-align">RL3</th>
- <th style="width: 50px;" class="right-align">RL4</th>
- <th style="width: 50px;" class="right-align">RL5</th>
- <th style="width: 50px;" class="right-align">RL6</th>
- <th style="width: 50px;" class="right-align">RL7</th>
- <th style="width: 70px" class="right-align">Points</th>
- </tr>
- </thead>
- <tbody class="bordered hoverable">
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- <tr>
- <td class="right-align">#</td>
- <td>Nom Prénom</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 50px;" class="right-align">0</td>
- <td style="width: 70px" class="right-align">0</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
-</div>
\ No newline at end of file
+++ /dev/null
-<div class="container padding-large">
- <div class="bar black">
- <div class="bar-item"><h3>TEST News</h3></div>
- <div class="bar-item right"><small>Publié le:<br/>00.00.0000</small></div>
- </div>
- <div class="container white" style="opacity: 0.8;">
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla condimentum interdum mauris et laoreet. Curabitur ut aliquam neque. Nam tristique tempor ex eu semper. Quisque efficitur dictum justo nec viverra. Cras est eros, rhoncus id nulla nec, dignissim iaculis magna. Donec laoreet mattis dolor, sit amet convallis elit efficitur ac. Ut sed sollicitudin ante. Donec id felis in justo condimentum ultrices vel quis metus. Duis finibus facilisis viverra. Vestibulum vestibulum justo ac ex ultrices vehicula. Duis pulvinar, purus sed varius sollicitudin, ligula risus cursus urna, sit amet cursus eros quam in lacus. Aenean volutpat, erat ut finibus gravida, dui quam suscipit lectus, sed vestibulum arcu diam a augue. Donec id eros id velit molestie rhoncus. Sed eu erat blandit, hendrerit turpis pulvinar, tincidunt mi. Quisque tincidunt sem quis neque aliquet, nec dictum nunc rhoncus. Mauris at elit facilisis, lacinia lectus ut, luctus ex.</p>
-
-<p>Curabitur euismod purus quis ipsum volutpat, sit amet dapibus quam eleifend. Sed dictum, ante fringilla suscipit condimentum, metus lorem feugiat quam, sit amet tristique enim nulla id turpis. Ut vitae elementum ligula, at egestas metus. Etiam fermentum efficitur eros, feugiat tempor ligula accumsan id. Fusce sed aliquet nibh, et sagittis ante. Quisque in tincidunt sapien. Nulla fermentum leo blandit velit semper, ut vehicula quam vestibulum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nullam congue, est nec dictum tempor, tortor nisl vestibulum tellus, quis sollicitudin ipsum arcu id nibh. Ut ut arcu malesuada, imperdiet tellus quis, ornare est. Nulla luctus lobortis commodo. Sed id ex placerat purus consequat lobortis.</p>
- </div>
- </div>
\ No newline at end of file
+++ /dev/null
-<div class="container padding-16 white" style="opacity: 0.8;">
-<h2>Privacy Policy of <span class="website_url">ledf.lu</span></h2>
-
-<p>At <span class="website_name">L.E.D.F.</span>, we collect and manage user data according to the following Privacy Policy.</p>
-
-<h3>Data Collected</h3>
-
-<p>We collect information you provide directly to us. For example, we collect information when you create an account, subscribe, participate in any interactive features of our services, fill out a form, request customer support or otherwise communicate with us. The types of information we may collect include your name, email address, postal address, credit card information and other contact or identifying information you choose to provide.</p>
-
-<p>We collect anonymous data from every visitor of the Website to monitor traffic and fix bugs. For example, we collect information like web requests, the data sent in response to such requests, the Internet Protocol address, the browser type, the browser language, and a timestamp for the request.</p>
-
-<p>We also use various technologies to collect information, and this may include sending cookies to your computer. Cookies are small data files stored on your hard drive or in your device memory that helps us to improve our services and your experience, see which areas and features of our services are popular and count visits. We may also collect information using web beacons (also known as "tracking pixels"). Web beacons are electronic images that may be used in our services or emails and to track count visits or understand usage and campaign effectiveness.</p>
-
-<h3>Use of the Data</h3>
-
-<p>We only use your personal information to provide you the <span class="website_name">L.E.D.F.</span> services or to communicate with you about the Website or the services. </p>
-
-<p>We employ industry standard techniques to protect against unauthorized access of data about you that we store, including personal information.</p>
-
-<p>We do not share personal information you have provided to us without your consent, unless:</p>
-
-<ul>
-<li>Doing so is appropriate to carry out your own request</li>
-<li>We believe it's needed to enforce our legal agreements or that is legally required</li>
-<li>We believe it's needed to detect, prevent or address fraud, security or technical issues</li>
-</ul>
-
-<h3>Sharing of Data</h3>
-
-<p>We don't share your personal information with third parties. Aggregated, anonymized data is periodically transmitted to external services to help us improve the Website and service.</p>
-
-<p>We may allow third parties to provide analytics services. These third parties may use cookies, web beacons and other technologies to collect information about your use of the services and other websites, including your IP address, web browser, pages viewed, time spent on pages, links clicked and conversion information.</p>
-
-<p>We also use social buttons provided by services like Twitter, Google+, LinkedIn and Facebook. Your use of these third party services is entirely optional. We are not responsible for the privacy policies and/or practices of these third party services, and you are responsible for reading and understanding those third party services' privacy policies.</p>
-
-<h3>Cookies</h3>
-
-<p>We may use cookies on our site to remember your preferences.</p>
-
-<p>For more general information on cookies, please read <a href="https://www.cookieconsent.com/what-are-cookies/">"What Are Cookies"</a>.</p>
-
-<h3>Opt-Out, Communication Preferences</h3>
-
-<p>You may modify your communication preferences and/or opt-out from specific communications at any time. Please specify and adjust your preferences.</p>
-
-<h3>Security</h3>
-
-<p>We take reasonable steps to protect personally identifiable information from loss, misuse, and unauthorized access, disclosure, alteration, or destruction. But, you should keep in mind that no Internet transmission is ever completely secure or error-free. In particular, email sent to or from the Sites may not be secure.</p>
-
-<h3>Changes to the Privacy Policy</h3>
-
-<p>We may amend this Privacy Policy from time to time. Use of information we collect now is subject to the Privacy Policy in effect at the time such information is used.</p>
-
-<p>If we make major changes in the way we collect or use information, we will notify you by posting an announcement on the Website or sending you an email.</p>
-</div>
\ No newline at end of file
+++ /dev/null
-<div class="container white margin" style="opacity: 0.8;">
- <h2>Terms of Use of <span class="website_url">ledf.lu</span></h2>
-
-<p>Welcome to the <span class="website_name">L.E.D.F.</span> website (the "Website").</p>
-
-<p><span class="website_name">L.E.D.F.</span> provides this Website and Services (located at <span class="website_url">ledf.lu</span>) to you subject to the notices, terms, and conditions set forth in these terms (the "Terms of Use"). In addition, when you use any of our Services, you will be subject to the rules, guidelines, policies, terms, and conditions applicable to such service, and they are incorporated into this Terms of Use by this reference.</p>
-
-<p>These Terms of Use are effective as of <span class="date">[DATE]</span>.</p>
-
-<p>Your eligibility for use of the Website is contingent upon meeting the following conditions:</p>
-
-<ul>
-<li>You are at least 18 years of age</li>
-<li>You use the Website and Services according to these Terms of Use and all applicable laws and regulations determined by the state and country of residence</li>
-<li>You provide complete and accurate registration information and maintain accurate registration information on the Webite</li>
-<li>You agree and understand that <span class="website_name">L.E.D.F.</span> may, at any time, and without prior notice, revoke and/or cancel your access if you fail to meet these criteria or violate any portion of these Terms of Use</li>
-</ul>
-
-<h3>Use of this Website</h3>
-
-<p>In connection with your use of our Website, you must act responsibly and exercise good judgment. Without limiting the foregoing, you will not:</p>
-
-<ul>
-<li>Violate any local, state, provincial, national, or other law or regulation, or any order of a court</li>
-<li>Infringe the rights of any person or entity, including without limitation, their intellectual property, privacy, publicity or contractual rights</li>
-<li>Interfere with or damage our Services, including, without limitation, through the use of viruses, cancel bots, Trojan horses, harmful code, flood pings, denial-of-service attacks, packet or IP spoofing, forged routing or electronic mail address information or similar methods or technology</li>
-<li>Use automated scripts to collect information or otherwise interact with the Services or the Website</li>
-<li>Enter into this agreement on behalf of another person or entity without consent or the legal capacity to make such agreements as a representative of an organization or entity</li>
-</ul>
-
-<h3>Intellectual Property</h3>
-
-<p>All code, text, software, scripts, graphics, files, photos, images, logos, and materials contained on this Website, or within the Services, are the sole property of <span class="website_name">L.E.D.F.</span>.</p>
-
-<p>Unauthorized use of any materials contained on this Website or within the Service may violate copyright laws, trademark laws, the laws of privacy and publicity, and/or other regulations and statutes. If you believe that any of the materials infringe on any third party's rights, please contact <span class="website_name">L.E.D.F.</span> immediately at the address provided below.</p>
-
-<h3>Third Party Websites</h3>
-
-<p>Our Website may link you to other sites on the Internet or otherwise include references to information, documents, software, materials and/or services provided by other parties. These websites may contain information or material that some people may find inappropriate or offensive.</p>
-
-<p>These other websites and parties are not under our control, and you acknowledge that we are not responsible for the accuracy, copyright compliance, legality, decency, or any other aspect of the content of such sites, nor are we responsible for errors or omissions in any references to other parties or their products and services. The inclusion of such a link or reference is provided merely as a convenience and does not imply endorsement of, or association with, the Website or party by us, or any warranty of any kind, either express or implied.</p>
-
-<h3>Disclaimer of Warranty and Limitation of Liability</h3>
-
-<p>The Website is provided "AS IS." appfigures, its suppliers, officers, directors, employees, and agents exclude and disclaim all representations and warranties, express or implied, related to this Website or in connection with the Services. You exclude <span class="website_name">L.E.D.F.</span> from all liability for damages related to or arising out of the use of this Website.</p>
-
-<h3>Changes to these Terms of Use</h3>
-
-<p><span class="website_name">L.E.D.F.</span> retains the right to, at any time, modify or discontinue, any or all parts of the Website without notice.</p>
-
-<p>Additionally, <span class="website_name">L.E.D.F.</span> reserves the right, in its sole discretion, to modify these Terms of Use at any time, effective by posting new terms on the Website with the date of modification. You are responsible for reading and understanding the terms of this agreement prior to registering with, or using the Service. Your use of the Website and/or Services after any such modification has been published constitutes your acceptance of the new terms as modified in these Terms of Use.</p>
-
-<h3>Governing Law</h3>
-
-<p>These Terms of Use and any dispute or claim arising out of, or related to them, shall be governed by and construed in accordance with the internal laws of the <span class="country">lu</span> without giving effect to any choice or conflict of law provision or rule.</p>
-
-<p>Any legal suit, action or proceeding arising out of, or related to, these Terms of Use or the Website shall be instituted exclusively in the federal courts of <span class="country">lu</span>.</p>
-</div>
\ No newline at end of file